diff --git a/dist/bundle.js b/dist/bundle.js
index a66d2e4..a0601c0 100644
--- a/dist/bundle.js
+++ b/dist/bundle.js
@@ -97,6 +97,17 @@ eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * jQ
/***/ }),
+/***/ "./node_modules/js-cookie/src/js.cookie.js":
+/*!*************************************************!*\
+ !*** ./node_modules/js-cookie/src/js.cookie.js ***!
+ \*************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * JavaScript Cookie v2.2.0\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader = false;\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (true) {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api (key, value, attributes) {\n\t\t\tvar result;\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Write\n\n\t\t\tif (arguments.length > 1) {\n\t\t\t\tattributes = extend({\n\t\t\t\t\tpath: '/'\n\t\t\t\t}, api.defaults, attributes);\n\n\t\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\t\tvar expires = new Date();\n\t\t\t\t\texpires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);\n\t\t\t\t\tattributes.expires = expires;\n\t\t\t\t}\n\n\t\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\t\ttry {\n\t\t\t\t\tresult = JSON.stringify(value);\n\t\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\t\tvalue = result;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\n\t\t\t\tif (!converter.write) {\n\t\t\t\t\tvalue = encodeURIComponent(String(value))\n\t\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\t\t\t\t} else {\n\t\t\t\t\tvalue = converter.write(value, key);\n\t\t\t\t}\n\n\t\t\t\tkey = encodeURIComponent(String(key));\n\t\t\t\tkey = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);\n\t\t\t\tkey = key.replace(/[\\(\\)]/g, escape);\n\n\t\t\t\tvar stringifiedAttributes = '';\n\n\t\t\t\tfor (var attributeName in attributes) {\n\t\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName];\n\t\t\t\t}\n\t\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t\t}\n\n\t\t\t// Read\n\n\t\t\tif (!key) {\n\t\t\t\tresult = {};\n\t\t\t}\n\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all. Also prevents odd result when\n\t\t\t// calling \"get()\"\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar rdecode = /(%[0-9A-Z]{2})+/g;\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!this.json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = parts[0].replace(rdecode, decodeURIComponent);\n\t\t\t\t\tcookie = converter.read ?\n\t\t\t\t\t\tconverter.read(cookie, name) : converter(cookie, name) ||\n\t\t\t\t\t\tcookie.replace(rdecode, decodeURIComponent);\n\n\t\t\t\t\tif (this.json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tresult = cookie;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!key) {\n\t\t\t\t\t\tresult[name] = cookie;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tapi.set = api;\n\t\tapi.get = function (key) {\n\t\t\treturn api.call(api, key);\n\t\t};\n\t\tapi.getJSON = function () {\n\t\t\treturn api.apply({\n\t\t\t\tjson: true\n\t\t\t}, [].slice.call(arguments));\n\t\t};\n\t\tapi.defaults = {};\n\n\t\tapi.remove = function (key, attributes) {\n\t\t\tapi(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvanMtY29va2llL3NyYy9qcy5jb29raWUuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvanMtY29va2llL3NyYy9qcy5jb29raWUuanM/YTc4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEphdmFTY3JpcHQgQ29va2llIHYyLjIuMFxuICogaHR0cHM6Ly9naXRodWIuY29tL2pzLWNvb2tpZS9qcy1jb29raWVcbiAqXG4gKiBDb3B5cmlnaHQgMjAwNiwgMjAxNSBLbGF1cyBIYXJ0bCAmIEZhZ25lciBCcmFja1xuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKi9cbjsoZnVuY3Rpb24gKGZhY3RvcnkpIHtcblx0dmFyIHJlZ2lzdGVyZWRJbk1vZHVsZUxvYWRlciA9IGZhbHNlO1xuXHRpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0ZGVmaW5lKGZhY3RvcnkpO1xuXHRcdHJlZ2lzdGVyZWRJbk1vZHVsZUxvYWRlciA9IHRydWU7XG5cdH1cblx0aWYgKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jykge1xuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRcdHJlZ2lzdGVyZWRJbk1vZHVsZUxvYWRlciA9IHRydWU7XG5cdH1cblx0aWYgKCFyZWdpc3RlcmVkSW5Nb2R1bGVMb2FkZXIpIHtcblx0XHR2YXIgT2xkQ29va2llcyA9IHdpbmRvdy5Db29raWVzO1xuXHRcdHZhciBhcGkgPSB3aW5kb3cuQ29va2llcyA9IGZhY3RvcnkoKTtcblx0XHRhcGkubm9Db25mbGljdCA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdHdpbmRvdy5Db29raWVzID0gT2xkQ29va2llcztcblx0XHRcdHJldHVybiBhcGk7XG5cdFx0fTtcblx0fVxufShmdW5jdGlvbiAoKSB7XG5cdGZ1bmN0aW9uIGV4dGVuZCAoKSB7XG5cdFx0dmFyIGkgPSAwO1xuXHRcdHZhciByZXN1bHQgPSB7fTtcblx0XHRmb3IgKDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFyIGF0dHJpYnV0ZXMgPSBhcmd1bWVudHNbIGkgXTtcblx0XHRcdGZvciAodmFyIGtleSBpbiBhdHRyaWJ1dGVzKSB7XG5cdFx0XHRcdHJlc3VsdFtrZXldID0gYXR0cmlidXRlc1trZXldO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG5cblx0ZnVuY3Rpb24gaW5pdCAoY29udmVydGVyKSB7XG5cdFx0ZnVuY3Rpb24gYXBpIChrZXksIHZhbHVlLCBhdHRyaWJ1dGVzKSB7XG5cdFx0XHR2YXIgcmVzdWx0O1xuXHRcdFx0aWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBXcml0ZVxuXG5cdFx0XHRpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcblx0XHRcdFx0YXR0cmlidXRlcyA9IGV4dGVuZCh7XG5cdFx0XHRcdFx0cGF0aDogJy8nXG5cdFx0XHRcdH0sIGFwaS5kZWZhdWx0cywgYXR0cmlidXRlcyk7XG5cblx0XHRcdFx0aWYgKHR5cGVvZiBhdHRyaWJ1dGVzLmV4cGlyZXMgPT09ICdudW1iZXInKSB7XG5cdFx0XHRcdFx0dmFyIGV4cGlyZXMgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0XHRcdGV4cGlyZXMuc2V0TWlsbGlzZWNvbmRzKGV4cGlyZXMuZ2V0TWlsbGlzZWNvbmRzKCkgKyBhdHRyaWJ1dGVzLmV4cGlyZXMgKiA4NjRlKzUpO1xuXHRcdFx0XHRcdGF0dHJpYnV0ZXMuZXhwaXJlcyA9IGV4cGlyZXM7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBXZSdyZSB1c2luZyBcImV4cGlyZXNcIiBiZWNhdXNlIFwibWF4LWFnZVwiIGlzIG5vdCBzdXBwb3J0ZWQgYnkgSUVcblx0XHRcdFx0YXR0cmlidXRlcy5leHBpcmVzID0gYXR0cmlidXRlcy5leHBpcmVzID8gYXR0cmlidXRlcy5leHBpcmVzLnRvVVRDU3RyaW5nKCkgOiAnJztcblxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdHJlc3VsdCA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcblx0XHRcdFx0XHRpZiAoL15bXFx7XFxbXS8udGVzdChyZXN1bHQpKSB7XG5cdFx0XHRcdFx0XHR2YWx1ZSA9IHJlc3VsdDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHt9XG5cblx0XHRcdFx0aWYgKCFjb252ZXJ0ZXIud3JpdGUpIHtcblx0XHRcdFx0XHR2YWx1ZSA9IGVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcodmFsdWUpKVxuXHRcdFx0XHRcdFx0LnJlcGxhY2UoLyUoMjN8MjR8MjZ8MkJ8M0F8M0N8M0V8M0R8MkZ8M0Z8NDB8NUJ8NUR8NUV8NjB8N0J8N0R8N0MpL2csIGRlY29kZVVSSUNvbXBvbmVudCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dmFsdWUgPSBjb252ZXJ0ZXIud3JpdGUodmFsdWUsIGtleSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRrZXkgPSBlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGtleSkpO1xuXHRcdFx0XHRrZXkgPSBrZXkucmVwbGFjZSgvJSgyM3wyNHwyNnwyQnw1RXw2MHw3QykvZywgZGVjb2RlVVJJQ29tcG9uZW50KTtcblx0XHRcdFx0a2V5ID0ga2V5LnJlcGxhY2UoL1tcXChcXCldL2csIGVzY2FwZSk7XG5cblx0XHRcdFx0dmFyIHN0cmluZ2lmaWVkQXR0cmlidXRlcyA9ICcnO1xuXG5cdFx0XHRcdGZvciAodmFyIGF0dHJpYnV0ZU5hbWUgaW4gYXR0cmlidXRlcykge1xuXHRcdFx0XHRcdGlmICghYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXSkge1xuXHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHN0cmluZ2lmaWVkQXR0cmlidXRlcyArPSAnOyAnICsgYXR0cmlidXRlTmFtZTtcblx0XHRcdFx0XHRpZiAoYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHN0cmluZ2lmaWVkQXR0cmlidXRlcyArPSAnPScgKyBhdHRyaWJ1dGVzW2F0dHJpYnV0ZU5hbWVdO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiAoZG9jdW1lbnQuY29va2llID0ga2V5ICsgJz0nICsgdmFsdWUgKyBzdHJpbmdpZmllZEF0dHJpYnV0ZXMpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBSZWFkXG5cblx0XHRcdGlmICgha2V5KSB7XG5cdFx0XHRcdHJlc3VsdCA9IHt9O1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBUbyBwcmV2ZW50IHRoZSBmb3IgbG9vcCBpbiB0aGUgZmlyc3QgcGxhY2UgYXNzaWduIGFuIGVtcHR5IGFycmF5XG5cdFx0XHQvLyBpbiBjYXNlIHRoZXJlIGFyZSBubyBjb29raWVzIGF0IGFsbC4gQWxzbyBwcmV2ZW50cyBvZGQgcmVzdWx0IHdoZW5cblx0XHRcdC8vIGNhbGxpbmcgXCJnZXQoKVwiXG5cdFx0XHR2YXIgY29va2llcyA9IGRvY3VtZW50LmNvb2tpZSA/IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOyAnKSA6IFtdO1xuXHRcdFx0dmFyIHJkZWNvZGUgPSAvKCVbMC05QS1aXXsyfSkrL2c7XG5cdFx0XHR2YXIgaSA9IDA7XG5cblx0XHRcdGZvciAoOyBpIDwgY29va2llcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHR2YXIgcGFydHMgPSBjb29raWVzW2ldLnNwbGl0KCc9Jyk7XG5cdFx0XHRcdHZhciBjb29raWUgPSBwYXJ0cy5zbGljZSgxKS5qb2luKCc9Jyk7XG5cblx0XHRcdFx0aWYgKCF0aGlzLmpzb24gJiYgY29va2llLmNoYXJBdCgwKSA9PT0gJ1wiJykge1xuXHRcdFx0XHRcdGNvb2tpZSA9IGNvb2tpZS5zbGljZSgxLCAtMSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdHZhciBuYW1lID0gcGFydHNbMF0ucmVwbGFjZShyZGVjb2RlLCBkZWNvZGVVUklDb21wb25lbnQpO1xuXHRcdFx0XHRcdGNvb2tpZSA9IGNvbnZlcnRlci5yZWFkID9cblx0XHRcdFx0XHRcdGNvbnZlcnRlci5yZWFkKGNvb2tpZSwgbmFtZSkgOiBjb252ZXJ0ZXIoY29va2llLCBuYW1lKSB8fFxuXHRcdFx0XHRcdFx0Y29va2llLnJlcGxhY2UocmRlY29kZSwgZGVjb2RlVVJJQ29tcG9uZW50KTtcblxuXHRcdFx0XHRcdGlmICh0aGlzLmpzb24pIHtcblx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdGNvb2tpZSA9IEpTT04ucGFyc2UoY29va2llKTtcblx0XHRcdFx0XHRcdH0gY2F0Y2ggKGUpIHt9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aWYgKGtleSA9PT0gbmFtZSkge1xuXHRcdFx0XHRcdFx0cmVzdWx0ID0gY29va2llO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aWYgKCFrZXkpIHtcblx0XHRcdFx0XHRcdHJlc3VsdFtuYW1lXSA9IGNvb2tpZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHt9XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fVxuXG5cdFx0YXBpLnNldCA9IGFwaTtcblx0XHRhcGkuZ2V0ID0gZnVuY3Rpb24gKGtleSkge1xuXHRcdFx0cmV0dXJuIGFwaS5jYWxsKGFwaSwga2V5KTtcblx0XHR9O1xuXHRcdGFwaS5nZXRKU09OID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0cmV0dXJuIGFwaS5hcHBseSh7XG5cdFx0XHRcdGpzb246IHRydWVcblx0XHRcdH0sIFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7XG5cdFx0fTtcblx0XHRhcGkuZGVmYXVsdHMgPSB7fTtcblxuXHRcdGFwaS5yZW1vdmUgPSBmdW5jdGlvbiAoa2V5LCBhdHRyaWJ1dGVzKSB7XG5cdFx0XHRhcGkoa2V5LCAnJywgZXh0ZW5kKGF0dHJpYnV0ZXMsIHtcblx0XHRcdFx0ZXhwaXJlczogLTFcblx0XHRcdH0pKTtcblx0XHR9O1xuXG5cdFx0YXBpLndpdGhDb252ZXJ0ZXIgPSBpbml0O1xuXG5cdFx0cmV0dXJuIGFwaTtcblx0fVxuXG5cdHJldHVybiBpbml0KGZ1bmN0aW9uICgpIHt9KTtcbn0pKTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/js-cookie/src/js.cookie.js\n");
+
+/***/ }),
+
/***/ "./src/domain/globals.ts":
/*!*******************************!*\
!*** ./src/domain/globals.ts ***!
@@ -105,7 +116,7 @@ eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * jQ
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Globals\", function() { return Globals; });\n/*\r\n This program is free software: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see .\r\n */\r\nvar Globals = /** @class */ (function () {\r\n function Globals() {\r\n }\r\n Globals.registerTheme = function (name, styleClass) {\r\n if (Globals.themes.some(function (value) { return value.name === name; })) {\r\n console.log(\"Theme with name '\" + name + \"' already registered; ignoring register request for styleClass '\" + styleClass + \"'.\");\r\n }\r\n else {\r\n Globals.themes.push({\r\n name: name,\r\n styleClass: styleClass\r\n });\r\n }\r\n };\r\n Globals.hasThemes = function () {\r\n return Globals.themes.length > 0;\r\n };\r\n Globals.hasMultipleThemes = function () {\r\n return Globals.themes.length > 1;\r\n };\r\n Globals.getFirstTheme = function () {\r\n return Globals.getTheme(0);\r\n };\r\n Globals.getTheme = function (index) {\r\n return Globals.themes[index];\r\n };\r\n Globals.getThemes = function () {\r\n return Globals.themes;\r\n };\r\n Globals.registerLayout = function (layout) {\r\n var available = Globals.layouts.some(function (element) {\r\n if (layout.code === element.code) {\r\n console.error(\"Error: Language code '\" + layout.code + \"' cannot be registered for layout '\" + layout.prettyName + \"' \\n because it is already registered for layout '\" + element.prettyName + \"'!\");\r\n return false;\r\n }\r\n return true;\r\n });\r\n if (available) {\r\n Globals.layouts.push(layout);\r\n }\r\n };\r\n Globals.hasLayouts = function () {\r\n return Globals.layouts.length > 0;\r\n };\r\n Globals.hasMultipleLayouts = function () {\r\n return Globals.layouts.length > 1;\r\n };\r\n Globals.getFirstLayout = function () {\r\n return Globals.layouts[0];\r\n };\r\n Globals.getLayouts = function () {\r\n return Globals.layouts;\r\n };\r\n Globals.layouts = [];\r\n Globals.themes = [];\r\n return Globals;\r\n}());\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvZG9tYWluL2dsb2JhbHMudHMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvZG9tYWluL2dsb2JhbHMudHM/MGU2NiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG5cbiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG4gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQge0xheW91dH0gZnJvbSBcIi4vbGF5b3V0XCI7XG5pbXBvcnQge1RoZW1lfSBmcm9tIFwiLi90aGVtZVwiO1xuXG5leHBvcnQgY2xhc3MgR2xvYmFscyB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgbGF5b3V0czogTGF5b3V0W10gPSBbXTtcbiAgICBwcml2YXRlIHN0YXRpYyB0aGVtZXM6IFRoZW1lW10gPSBbXTtcblxuICAgIHN0YXRpYyByZWdpc3RlclRoZW1lKG5hbWU6IHN0cmluZywgc3R5bGVDbGFzczogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChHbG9iYWxzLnRoZW1lcy5zb21lKHZhbHVlID0+IHZhbHVlLm5hbWUgPT09IG5hbWUpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgVGhlbWUgd2l0aCBuYW1lICcke25hbWV9JyBhbHJlYWR5IHJlZ2lzdGVyZWQ7IGlnbm9yaW5nIHJlZ2lzdGVyIHJlcXVlc3QgZm9yIHN0eWxlQ2xhc3MgJyR7c3R5bGVDbGFzc30nLmApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBHbG9iYWxzLnRoZW1lcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3NcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGhhc1RoZW1lcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEdsb2JhbHMudGhlbWVzLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgc3RhdGljIGhhc011bHRpcGxlVGhlbWVzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gR2xvYmFscy50aGVtZXMubGVuZ3RoID4gMTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0Rmlyc3RUaGVtZSgpOiBUaGVtZSB7XG4gICAgICAgIHJldHVybiBHbG9iYWxzLmdldFRoZW1lKDApO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRUaGVtZShpbmRleDogbnVtYmVyKTogVGhlbWUge1xuICAgICAgICByZXR1cm4gR2xvYmFscy50aGVtZXNbaW5kZXhdO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRUaGVtZXMoKTogVGhlbWVbXSB7XG4gICAgICAgIHJldHVybiBHbG9iYWxzLnRoZW1lcztcbiAgICB9XG5cbiAgICBzdGF0aWMgcmVnaXN0ZXJMYXlvdXQobGF5b3V0OiBMYXlvdXQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYXZhaWxhYmxlID0gR2xvYmFscy5sYXlvdXRzLnNvbWUoZWxlbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGxheW91dC5jb2RlID09PSBlbGVtZW50LmNvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIGBFcnJvcjogTGFuZ3VhZ2UgY29kZSAnJHtsYXlvdXQuY29kZX0nIGNhbm5vdCBiZSByZWdpc3RlcmVkIGZvciBsYXlvdXQgJyR7bGF5b3V0LnByZXR0eU5hbWV9JyBcbiAgICAgICAgICAgICAgICAgICAgICAgICBiZWNhdXNlIGl0IGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBmb3IgbGF5b3V0ICcke2VsZW1lbnQucHJldHR5TmFtZX0nIWBcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGF2YWlsYWJsZSkge1xuICAgICAgICAgICAgR2xvYmFscy5sYXlvdXRzLnB1c2gobGF5b3V0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBoYXNMYXlvdXRzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gR2xvYmFscy5sYXlvdXRzLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgc3RhdGljIGhhc011bHRpcGxlTGF5b3V0cygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEdsb2JhbHMubGF5b3V0cy5sZW5ndGggPiAxO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRGaXJzdExheW91dCgpOiBMYXlvdXQge1xuICAgICAgICByZXR1cm4gR2xvYmFscy5sYXlvdXRzWzBdO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRMYXlvdXRzKCk6IExheW91dFtdIHtcbiAgICAgICAgcmV0dXJuIEdsb2JhbHMubGF5b3V0cztcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7OztBQWFBO0FBS0E7QUFBQTtBQW1FQTtBQS9EQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBakVBO0FBQ0E7QUFpRUE7QUFBQTtBQW5FQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/domain/globals.ts\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Globals\", function() { return Globals; });\n/*\r\n This program is free software: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see .\r\n */\r\nvar Globals = /** @class */ (function () {\r\n function Globals() {\r\n }\r\n Globals.registerTheme = function (name, styleClass) {\r\n if (Globals.themes.some(function (value) { return value.name === name; })) {\r\n console.log(\"Theme with name '\" + name + \"' already registered; ignoring register request for styleClass '\" + styleClass + \"'.\");\r\n }\r\n else {\r\n Globals.themes.push({\r\n name: name,\r\n styleClass: styleClass\r\n });\r\n }\r\n };\r\n Globals.hasThemes = function () {\r\n return Globals.themes.length > 0;\r\n };\r\n Globals.hasMultipleThemes = function () {\r\n return Globals.themes.length > 1;\r\n };\r\n Globals.getFirstTheme = function () {\r\n return Globals.getTheme(0);\r\n };\r\n Globals.getTheme = function (index) {\r\n return Globals.themes[index];\r\n };\r\n Globals.getThemes = function () {\r\n return Globals.themes;\r\n };\r\n Globals.registerLayout = function (layout) {\r\n var available = !Globals.layouts.some(function (element) {\r\n if (layout.code === element.code) {\r\n console.error(\"Error: Language code '\" + layout.code + \"' cannot be registered for layout '\" + layout.prettyName + \"' \\n because it is already registered for layout '\" + element.prettyName + \"'!\");\r\n console.log(\"globals.ts\", \"REJECTING LAYOUT\", layout.code, Globals.layouts);\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (available) {\r\n console.log(\"globals.ts\", \"registering layout\", layout.code, layout);\r\n Globals.layouts.push(layout);\r\n }\r\n else {\r\n console.log(\"globals.ts\", \"NOT registering layout\", layout.code, layout);\r\n }\r\n };\r\n Globals.hasLayouts = function () {\r\n return Globals.layouts.length > 0;\r\n };\r\n Globals.hasMultipleLayouts = function () {\r\n return Globals.layouts.length > 1;\r\n };\r\n Globals.getFirstLayout = function () {\r\n return Globals.layouts[0];\r\n };\r\n Globals.getLayouts = function () {\r\n return Globals.layouts;\r\n };\r\n Globals.layouts = [];\r\n Globals.themes = [];\r\n return Globals;\r\n}());\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvZG9tYWluL2dsb2JhbHMudHMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvZG9tYWluL2dsb2JhbHMudHM/MGU2NiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG5cbiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG4gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQge0xheW91dH0gZnJvbSBcIi4vbGF5b3V0XCI7XG5pbXBvcnQge1RoZW1lfSBmcm9tIFwiLi90aGVtZVwiO1xuXG5leHBvcnQgY2xhc3MgR2xvYmFscyB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgbGF5b3V0czogTGF5b3V0W10gPSBbXTtcbiAgICBwcml2YXRlIHN0YXRpYyB0aGVtZXM6IFRoZW1lW10gPSBbXTtcblxuICAgIHN0YXRpYyByZWdpc3RlclRoZW1lKG5hbWU6IHN0cmluZywgc3R5bGVDbGFzczogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChHbG9iYWxzLnRoZW1lcy5zb21lKHZhbHVlID0+IHZhbHVlLm5hbWUgPT09IG5hbWUpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgVGhlbWUgd2l0aCBuYW1lICcke25hbWV9JyBhbHJlYWR5IHJlZ2lzdGVyZWQ7IGlnbm9yaW5nIHJlZ2lzdGVyIHJlcXVlc3QgZm9yIHN0eWxlQ2xhc3MgJyR7c3R5bGVDbGFzc30nLmApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBHbG9iYWxzLnRoZW1lcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3NcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGhhc1RoZW1lcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEdsb2JhbHMudGhlbWVzLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgc3RhdGljIGhhc011bHRpcGxlVGhlbWVzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gR2xvYmFscy50aGVtZXMubGVuZ3RoID4gMTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0Rmlyc3RUaGVtZSgpOiBUaGVtZSB7XG4gICAgICAgIHJldHVybiBHbG9iYWxzLmdldFRoZW1lKDApO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRUaGVtZShpbmRleDogbnVtYmVyKTogVGhlbWUge1xuICAgICAgICByZXR1cm4gR2xvYmFscy50aGVtZXNbaW5kZXhdO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRUaGVtZXMoKTogVGhlbWVbXSB7XG4gICAgICAgIHJldHVybiBHbG9iYWxzLnRoZW1lcztcbiAgICB9XG5cbiAgICBzdGF0aWMgcmVnaXN0ZXJMYXlvdXQobGF5b3V0OiBMYXlvdXQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYXZhaWxhYmxlID0gIUdsb2JhbHMubGF5b3V0cy5zb21lKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChsYXlvdXQuY29kZSA9PT0gZWxlbWVudC5jb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICBgRXJyb3I6IExhbmd1YWdlIGNvZGUgJyR7bGF5b3V0LmNvZGV9JyBjYW5ub3QgYmUgcmVnaXN0ZXJlZCBmb3IgbGF5b3V0ICcke2xheW91dC5wcmV0dHlOYW1lfScgXG4gICAgICAgICAgICAgICAgICAgICAgICAgYmVjYXVzZSBpdCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgZm9yIGxheW91dCAnJHtlbGVtZW50LnByZXR0eU5hbWV9JyFgXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZ2xvYmFscy50c1wiLCBcIlJFSkVDVElORyBMQVlPVVRcIiwgbGF5b3V0LmNvZGUsIEdsb2JhbHMubGF5b3V0cyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIGlmIChhdmFpbGFibGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZ2xvYmFscy50c1wiLCBcInJlZ2lzdGVyaW5nIGxheW91dFwiLCBsYXlvdXQuY29kZSwgbGF5b3V0KTtcbiAgICAgICAgICAgIEdsb2JhbHMubGF5b3V0cy5wdXNoKGxheW91dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImdsb2JhbHMudHNcIiwgXCJOT1QgcmVnaXN0ZXJpbmcgbGF5b3V0XCIsIGxheW91dC5jb2RlLCBsYXlvdXQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGhhc0xheW91dHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBHbG9iYWxzLmxheW91dHMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBzdGF0aWMgaGFzTXVsdGlwbGVMYXlvdXRzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gR2xvYmFscy5sYXlvdXRzLmxlbmd0aCA+IDE7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldEZpcnN0TGF5b3V0KCk6IExheW91dCB7XG4gICAgICAgIHJldHVybiBHbG9iYWxzLmxheW91dHNbMF07XG4gICAgfVxuXG4gICAgc3RhdGljIGdldExheW91dHMoKTogTGF5b3V0W10ge1xuICAgICAgICByZXR1cm4gR2xvYmFscy5sYXlvdXRzO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7O0FBYUE7QUFLQTtBQUFBO0FBdUVBO0FBbkVBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBckVBO0FBQ0E7QUFxRUE7QUFBQTtBQXZFQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/domain/globals.ts\n");
/***/ }),
@@ -141,7 +152,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _domain_globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./domain/globals */ \"./src/domain/globals.ts\");\n/* harmony import */ var _theme_autodetector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme-autodetector */ \"./src/theme-autodetector.ts\");\n/* harmony import */ var _uhr__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./uhr */ \"./src/uhr.ts\");\n/* harmony import */ var _layout_layout_de_ch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./layout/layout-de_ch */ \"./src/layout/layout-de_ch.ts\");\n/*\r\n This program is free software: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see .\r\n */\r\n\r\n\r\n\r\n\r\n// First things first: discover included themes and register them\r\nObject(_theme_autodetector__WEBPACK_IMPORTED_MODULE_1__[\"autodetectThemes\"])();\r\n// Now register some layouts\r\n_domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].registerLayout(_layout_layout_de_ch__WEBPACK_IMPORTED_MODULE_3__[\"Layout_de_CH\"]);\r\n$.widget(\"fritteli.uhr\", {\r\n \"options\": {\r\n width: '100%',\r\n status: 'on',\r\n language: 'de_CH',\r\n theme: _domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].getFirstTheme().styleClass,\r\n force: false,\r\n controls: true,\r\n cookiePath: undefined,\r\n autoresize: true,\r\n mode: 'normal'\r\n },\r\n \"start\": function () {\r\n this.__fritteli_uhr_instance.start();\r\n },\r\n \"stop\": function () {\r\n this.__fritteli_uhr_instance.stop();\r\n },\r\n \"toggle\": function () {\r\n this.__fritteli_uhr_instance.toggle();\r\n },\r\n \"language\": function (key) {\r\n this.__fritteli_uhr_instance.setLanguage(key);\r\n },\r\n \"theme\": function (styleClass) {\r\n this.__fritteli_uhr_instance.setTheme(styleClass);\r\n },\r\n \"time\": function (time) {\r\n this.__fritteli_uhr_instance.setTime(time);\r\n },\r\n \"mode\": function (mode) {\r\n this.__fritteli_uhr_instance.setMode(mode);\r\n },\r\n \"width\": function (width) {\r\n this.__fritteli_uhr_instance.setWidth(width);\r\n },\r\n // constructor method\r\n \"_create\": function () {\r\n this.__fritteli_uhr_instance = new _uhr__WEBPACK_IMPORTED_MODULE_2__[\"Uhr\"](this);\r\n },\r\n // destructor method\r\n \"_destroy\": function () {\r\n this.__fritteli_uhr_instance.destroy();\r\n },\r\n \"__fritteli_uhr_instance\": null\r\n});\r\n$.fritteli.uhr.register = _domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].registerLayout;\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvaW5kZXgudHMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXgudHM/ZmZiNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG5cbiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG4gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQge0dsb2JhbHN9IGZyb20gXCIuL2RvbWFpbi9nbG9iYWxzXCI7XG5pbXBvcnQge2F1dG9kZXRlY3RUaGVtZXN9IGZyb20gXCIuL3RoZW1lLWF1dG9kZXRlY3RvclwiO1xuaW1wb3J0IHtVaHJ9IGZyb20gXCIuL3VoclwiO1xuaW1wb3J0IHtXaWRnZXRQcm90b3R5cGV9IGZyb20gXCIuL3dpZGdldC93aWRnZXQtcHJvdG90eXBlXCI7XG5pbXBvcnQge0xheW91dH0gZnJvbSBcIi4vZG9tYWluL2xheW91dFwiO1xuaW1wb3J0IHtMYXlvdXRfZGVfQ0h9IGZyb20gXCIuL2xheW91dC9sYXlvdXQtZGVfY2hcIjtcblxuLy8gRmlyc3QgdGhpbmdzIGZpcnN0OiBkaXNjb3ZlciBpbmNsdWRlZCB0aGVtZXMgYW5kIHJlZ2lzdGVyIHRoZW1cbmF1dG9kZXRlY3RUaGVtZXMoKTtcblxuLy8gTm93IHJlZ2lzdGVyIHNvbWUgbGF5b3V0c1xuR2xvYmFscy5yZWdpc3RlckxheW91dChMYXlvdXRfZGVfQ0gpO1xuXG4kLndpZGdldChcImZyaXR0ZWxpLnVoclwiLCB7XG4gICAgXCJvcHRpb25zXCI6IHtcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgc3RhdHVzOiAnb24nLFxuICAgICAgICBsYW5ndWFnZTogJ2RlX0NIJyxcbiAgICAgICAgdGhlbWU6IEdsb2JhbHMuZ2V0Rmlyc3RUaGVtZSgpLnN0eWxlQ2xhc3MsXG4gICAgICAgIGZvcmNlOiBmYWxzZSxcbiAgICAgICAgY29udHJvbHM6IHRydWUsXG4gICAgICAgIGNvb2tpZVBhdGg6IHVuZGVmaW5lZCxcbiAgICAgICAgYXV0b3Jlc2l6ZTogdHJ1ZSxcbiAgICAgICAgbW9kZTogJ25vcm1hbCdcbiAgICB9LFxuICAgIFwic3RhcnRcIjogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLl9fZnJpdHRlbGlfdWhyX2luc3RhbmNlLnN0YXJ0KCk7XG4gICAgfSxcbiAgICBcInN0b3BcIjogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLl9fZnJpdHRlbGlfdWhyX2luc3RhbmNlLnN0b3AoKTtcbiAgICB9LFxuICAgIFwidG9nZ2xlXCI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5fX2ZyaXR0ZWxpX3Vocl9pbnN0YW5jZS50b2dnbGUoKTtcbiAgICB9LFxuICAgIFwibGFuZ3VhZ2VcIjogZnVuY3Rpb24gKGtleTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX19mcml0dGVsaV91aHJfaW5zdGFuY2Uuc2V0TGFuZ3VhZ2Uoa2V5KTtcbiAgICB9LFxuICAgIFwidGhlbWVcIjogZnVuY3Rpb24gKHN0eWxlQ2xhc3M6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9fZnJpdHRlbGlfdWhyX2luc3RhbmNlLnNldFRoZW1lKHN0eWxlQ2xhc3MpO1xuICAgIH0sXG4gICAgXCJ0aW1lXCI6IGZ1bmN0aW9uICh0aW1lOiBEYXRlKSB7XG4gICAgICAgIHRoaXMuX19mcml0dGVsaV91aHJfaW5zdGFuY2Uuc2V0VGltZSh0aW1lKTtcbiAgICB9LFxuICAgIFwibW9kZVwiOiBmdW5jdGlvbiAobW9kZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX19mcml0dGVsaV91aHJfaW5zdGFuY2Uuc2V0TW9kZShtb2RlKTtcbiAgICB9LFxuICAgIFwid2lkdGhcIjogZnVuY3Rpb24gKHdpZHRoOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fX2ZyaXR0ZWxpX3Vocl9pbnN0YW5jZS5zZXRXaWR0aCh3aWR0aCk7XG4gICAgfSxcbiAgICAvLyBjb25zdHJ1Y3RvciBtZXRob2RcbiAgICBcIl9jcmVhdGVcIjogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLl9fZnJpdHRlbGlfdWhyX2luc3RhbmNlID0gbmV3IFVocih0aGlzKTtcbiAgICB9LFxuICAgIC8vIGRlc3RydWN0b3IgbWV0aG9kXG4gICAgXCJfZGVzdHJveVwiOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuX19mcml0dGVsaV91aHJfaW5zdGFuY2UuZGVzdHJveSgpO1xuICAgIH0sXG4gICAgXCJfX2ZyaXR0ZWxpX3Vocl9pbnN0YW5jZVwiOiBudWxsXG59IGFzIFdpZGdldFByb3RvdHlwZSk7XG5cbiQuZnJpdHRlbGkudWhyLnJlZ2lzdGVyID0gR2xvYmFscy5yZWdpc3RlckxheW91dDtcblxuZGVjbGFyZSBuYW1lc3BhY2UgJCB7XG4gICAgY29uc3QgZnJpdHRlbGk6IEZyaXR0ZWxpO1xuICAgIGNvbnN0IHdpZGdldDogSlF1ZXJ5VUkuV2lkZ2V0O1xuXG4gICAgaW50ZXJmYWNlIEZyaXR0ZWxpIHtcbiAgICAgICAgdWhyOiBVaHI7XG4gICAgfVxuXG4gICAgaW50ZXJmYWNlIFVociB7XG4gICAgICAgIHJlZ2lzdGVyOiAobGF5b3V0OiBMYXlvdXQpID0+IHZvaWQ7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7QUFhQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/index.ts\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _domain_globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./domain/globals */ \"./src/domain/globals.ts\");\n/* harmony import */ var _theme_autodetector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme-autodetector */ \"./src/theme-autodetector.ts\");\n/* harmony import */ var _uhr__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./uhr */ \"./src/uhr.ts\");\n/* harmony import */ var _layout_layout_de_ch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./layout/layout-de_ch */ \"./src/layout/layout-de_ch.ts\");\n/* harmony import */ var _layout_layout_de_ch_genau__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./layout/layout-de_ch_genau */ \"./src/layout/layout-de_ch_genau.ts\");\n/*\r\n This program is free software: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see .\r\n */\r\n\r\n\r\n\r\n\r\n\r\n// First things first: discover included themes and register them\r\nObject(_theme_autodetector__WEBPACK_IMPORTED_MODULE_1__[\"autodetectThemes\"])();\r\n// Now register some layouts\r\n_domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].registerLayout(_layout_layout_de_ch__WEBPACK_IMPORTED_MODULE_3__[\"Layout_de_CH\"]);\r\n_domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].registerLayout(_layout_layout_de_ch_genau__WEBPACK_IMPORTED_MODULE_4__[\"Layout_de_CH_genau\"]);\r\n$.widget(\"fritteli.uhr\", {\r\n \"options\": {\r\n width: '100%',\r\n status: 'on',\r\n language: 'de_CH',\r\n theme: _domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].getFirstTheme().styleClass,\r\n force: false,\r\n controls: true,\r\n cookiePath: undefined,\r\n autoresize: true,\r\n mode: 'normal'\r\n },\r\n \"start\": function () {\r\n this.__fritteli_uhr_instance.start();\r\n },\r\n \"stop\": function () {\r\n this.__fritteli_uhr_instance.stop();\r\n },\r\n \"toggle\": function () {\r\n this.__fritteli_uhr_instance.toggle();\r\n },\r\n \"language\": function (key) {\r\n this.__fritteli_uhr_instance.setLanguage(key);\r\n },\r\n \"theme\": function (styleClass) {\r\n this.__fritteli_uhr_instance.setTheme(styleClass);\r\n },\r\n \"time\": function (time) {\r\n this.__fritteli_uhr_instance.setTime(time);\r\n },\r\n \"mode\": function (mode) {\r\n this.__fritteli_uhr_instance.setMode(mode);\r\n },\r\n \"width\": function (width) {\r\n this.__fritteli_uhr_instance.setWidth(width);\r\n },\r\n // constructor method\r\n \"_create\": function () {\r\n this.__fritteli_uhr_instance = new _uhr__WEBPACK_IMPORTED_MODULE_2__[\"Uhr\"](this);\r\n },\r\n // destructor method\r\n \"_destroy\": function () {\r\n this.__fritteli_uhr_instance.destroy();\r\n },\r\n \"__fritteli_uhr_instance\": null\r\n});\r\n$.fritteli.uhr.register = _domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].registerLayout;\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvaW5kZXgudHMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXgudHM/ZmZiNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG5cbiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG4gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQge0dsb2JhbHN9IGZyb20gXCIuL2RvbWFpbi9nbG9iYWxzXCI7XG5pbXBvcnQge2F1dG9kZXRlY3RUaGVtZXN9IGZyb20gXCIuL3RoZW1lLWF1dG9kZXRlY3RvclwiO1xuaW1wb3J0IHtVaHJ9IGZyb20gXCIuL3VoclwiO1xuaW1wb3J0IHtXaWRnZXRQcm90b3R5cGV9IGZyb20gXCIuL3dpZGdldC93aWRnZXQtcHJvdG90eXBlXCI7XG5pbXBvcnQge0xheW91dH0gZnJvbSBcIi4vZG9tYWluL2xheW91dFwiO1xuaW1wb3J0IHtMYXlvdXRfZGVfQ0h9IGZyb20gXCIuL2xheW91dC9sYXlvdXQtZGVfY2hcIjtcbmltcG9ydCB7TGF5b3V0X2RlX0NIX2dlbmF1fSBmcm9tIFwiLi9sYXlvdXQvbGF5b3V0LWRlX2NoX2dlbmF1XCI7XG5cbi8vIEZpcnN0IHRoaW5ncyBmaXJzdDogZGlzY292ZXIgaW5jbHVkZWQgdGhlbWVzIGFuZCByZWdpc3RlciB0aGVtXG5hdXRvZGV0ZWN0VGhlbWVzKCk7XG5cbi8vIE5vdyByZWdpc3RlciBzb21lIGxheW91dHNcbkdsb2JhbHMucmVnaXN0ZXJMYXlvdXQoTGF5b3V0X2RlX0NIKTtcbkdsb2JhbHMucmVnaXN0ZXJMYXlvdXQoTGF5b3V0X2RlX0NIX2dlbmF1KTtcblxuJC53aWRnZXQoXCJmcml0dGVsaS51aHJcIiwge1xuICAgIFwib3B0aW9uc1wiOiB7XG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIHN0YXR1czogJ29uJyxcbiAgICAgICAgbGFuZ3VhZ2U6ICdkZV9DSCcsXG4gICAgICAgIHRoZW1lOiBHbG9iYWxzLmdldEZpcnN0VGhlbWUoKS5zdHlsZUNsYXNzLFxuICAgICAgICBmb3JjZTogZmFsc2UsXG4gICAgICAgIGNvbnRyb2xzOiB0cnVlLFxuICAgICAgICBjb29raWVQYXRoOiB1bmRlZmluZWQsXG4gICAgICAgIGF1dG9yZXNpemU6IHRydWUsXG4gICAgICAgIG1vZGU6ICdub3JtYWwnXG4gICAgfSxcbiAgICBcInN0YXJ0XCI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5fX2ZyaXR0ZWxpX3Vocl9pbnN0YW5jZS5zdGFydCgpO1xuICAgIH0sXG4gICAgXCJzdG9wXCI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5fX2ZyaXR0ZWxpX3Vocl9pbnN0YW5jZS5zdG9wKCk7XG4gICAgfSxcbiAgICBcInRvZ2dsZVwiOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuX19mcml0dGVsaV91aHJfaW5zdGFuY2UudG9nZ2xlKCk7XG4gICAgfSxcbiAgICBcImxhbmd1YWdlXCI6IGZ1bmN0aW9uIChrZXk6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9fZnJpdHRlbGlfdWhyX2luc3RhbmNlLnNldExhbmd1YWdlKGtleSk7XG4gICAgfSxcbiAgICBcInRoZW1lXCI6IGZ1bmN0aW9uIChzdHlsZUNsYXNzOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fX2ZyaXR0ZWxpX3Vocl9pbnN0YW5jZS5zZXRUaGVtZShzdHlsZUNsYXNzKTtcbiAgICB9LFxuICAgIFwidGltZVwiOiBmdW5jdGlvbiAodGltZTogRGF0ZSkge1xuICAgICAgICB0aGlzLl9fZnJpdHRlbGlfdWhyX2luc3RhbmNlLnNldFRpbWUodGltZSk7XG4gICAgfSxcbiAgICBcIm1vZGVcIjogZnVuY3Rpb24gKG1vZGU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9fZnJpdHRlbGlfdWhyX2luc3RhbmNlLnNldE1vZGUobW9kZSk7XG4gICAgfSxcbiAgICBcIndpZHRoXCI6IGZ1bmN0aW9uICh3aWR0aDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX19mcml0dGVsaV91aHJfaW5zdGFuY2Uuc2V0V2lkdGgod2lkdGgpO1xuICAgIH0sXG4gICAgLy8gY29uc3RydWN0b3IgbWV0aG9kXG4gICAgXCJfY3JlYXRlXCI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5fX2ZyaXR0ZWxpX3Vocl9pbnN0YW5jZSA9IG5ldyBVaHIodGhpcyk7XG4gICAgfSxcbiAgICAvLyBkZXN0cnVjdG9yIG1ldGhvZFxuICAgIFwiX2Rlc3Ryb3lcIjogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLl9fZnJpdHRlbGlfdWhyX2luc3RhbmNlLmRlc3Ryb3koKTtcbiAgICB9LFxuICAgIFwiX19mcml0dGVsaV91aHJfaW5zdGFuY2VcIjogbnVsbFxufSBhcyBXaWRnZXRQcm90b3R5cGUpO1xuXG4kLmZyaXR0ZWxpLnVoci5yZWdpc3RlciA9IEdsb2JhbHMucmVnaXN0ZXJMYXlvdXQ7XG5cbmRlY2xhcmUgbmFtZXNwYWNlICQge1xuICAgIGNvbnN0IGZyaXR0ZWxpOiBGcml0dGVsaTtcbiAgICBjb25zdCB3aWRnZXQ6IEpRdWVyeVVJLldpZGdldDtcblxuICAgIGludGVyZmFjZSBGcml0dGVsaSB7XG4gICAgICAgIHVocjogVWhyO1xuICAgIH1cblxuICAgIGludGVyZmFjZSBVaHIge1xuICAgICAgICByZWdpc3RlcjogKGxheW91dDogTGF5b3V0KSA9PiB2b2lkO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7QUFhQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/index.ts\n");
/***/ }),
@@ -153,7 +164,19 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dom
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Layout_de_CH\", function() { return Layout_de_CH; });\n/*\r\n This program is free software: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see .\r\n */\r\nvar es_isch = { 1: [1, 2, 4, 5, 6, 7] };\r\nvar ab = { 4: [1, 2] };\r\nvar vor = { 3: [9, 10, 11] };\r\nvar haubi = { 4: [4, 5, 6, 7, 8] };\r\nvar fuef = { 1: [9, 10, 11] };\r\nvar zae = { 2: [9, 10, 11] };\r\nvar viertu = { 2: [1, 2, 3, 4, 5, 6] };\r\nvar zwaenzg = { 3: [1, 2, 3, 4, 5, 6] };\r\nvar Layout_de_CH = {\r\n code: 'de_CH',\r\n hours: {\r\n '0,12': { 10: [1, 2, 3, 4, 5, 6] },\r\n '1,13': { 5: [1, 2, 3] },\r\n '2,14': { 5: [4, 5, 6, 7] },\r\n '3,15': { 5: [9, 10, 11] },\r\n '4,16': { 6: [1, 2, 3, 4, 5] },\r\n '5,17': { 6: [6, 7, 8, 9] },\r\n '6,18': { 7: [1, 2, 3, 4, 5, 6] },\r\n '7,19': { 7: [7, 8, 9, 10, 11] },\r\n '8,20': { 8: [1, 2, 3, 4, 5] },\r\n '9,21': { 8: [6, 7, 8, 9] },\r\n '10,22': { 9: [1, 2, 3, 4] },\r\n '11,23': { 9: [8, 9, 10, 11] }\r\n },\r\n letters: [\r\n 'ESKISCHAFÜF',\r\n 'VIERTUBFZÄÄ',\r\n 'ZWÄNZGSIVOR',\r\n 'ABOHAUBIEGE',\r\n 'EISZWÖISDRÜ',\r\n 'VIERIFÜFIQT',\r\n 'SÄCHSISIBNI',\r\n 'ACHTINÜNIEL',\r\n 'ZÄNIERBEUFI',\r\n 'ZWÖUFINAUHR'\r\n ],\r\n minutes: {\r\n \"5,6,7,8,9\": [fuef, ab],\r\n \"10,11,12,13,14\": [zae, ab],\r\n \"15,16,17,18,19\": [viertu, ab],\r\n \"20,21,22,23,24\": [zwaenzg, ab],\r\n \"25,26,27,28,29\": [fuef, vor, haubi],\r\n \"30,31,32,33,34\": haubi,\r\n \"35,36,37,38,39\": [fuef, ab, haubi],\r\n \"40,41,42,43,44\": [zwaenzg, vor],\r\n \"45,46,47,48,49\": [viertu, vor],\r\n \"50,51,52,53,54\": [zae, vor],\r\n \"55,56,57,58,59\": [fuef, vor]\r\n },\r\n permanent: es_isch,\r\n prettyName: 'Bärndütsch',\r\n version: 2\r\n};\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGF5b3V0L2xheW91dC1kZV9jaC50cy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9sYXlvdXQvbGF5b3V0LWRlX2NoLnRzP2E2ODIiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuXG4gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cblxuIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHtMYXlvdXQsIFdvcmREZWZpbml0aW9ufSBmcm9tIFwiLi4vZG9tYWluL2xheW91dFwiO1xuXG5jb25zdCBlc19pc2NoOiBXb3JkRGVmaW5pdGlvbiA9IHsxOiBbMSwgMiwgNCwgNSwgNiwgN119O1xuY29uc3QgYWIgPSB7NDogWzEsIDJdfTtcbmNvbnN0IHZvciA9IHszOiBbOSwgMTAsIDExXX07XG5jb25zdCBoYXViaSA9IHs0OiBbNCwgNSwgNiwgNywgOF19O1xuY29uc3QgZnVlZiA9IHsxOiBbOSwgMTAsIDExXX07XG5jb25zdCB6YWUgPSB7MjogWzksIDEwLCAxMV19O1xuY29uc3QgdmllcnR1ID0gezI6IFsxLCAyLCAzLCA0LCA1LCA2XX07XG5jb25zdCB6d2FlbnpnID0gezM6IFsxLCAyLCAzLCA0LCA1LCA2XX07XG5cbmV4cG9ydCBjb25zdCBMYXlvdXRfZGVfQ0g6IExheW91dCA9IHtcbiAgICBjb2RlOiAnZGVfQ0gnLFxuICAgIGhvdXJzOiB7XG4gICAgICAgICcwLDEyJzogezEwOiBbMSwgMiwgMywgNCwgNSwgNl19LFxuICAgICAgICAnMSwxMyc6IHs1OiBbMSwgMiwgM119LFxuICAgICAgICAnMiwxNCc6IHs1OiBbNCwgNSwgNiwgN119LFxuICAgICAgICAnMywxNSc6IHs1OiBbOSwgMTAsIDExXX0sXG4gICAgICAgICc0LDE2JzogezY6IFsxLCAyLCAzLCA0LCA1XX0sXG4gICAgICAgICc1LDE3JzogezY6IFs2LCA3LCA4LCA5XX0sXG4gICAgICAgICc2LDE4Jzogezc6IFsxLCAyLCAzLCA0LCA1LCA2XX0sXG4gICAgICAgICc3LDE5Jzogezc6IFs3LCA4LCA5LCAxMCwgMTFdfSxcbiAgICAgICAgJzgsMjAnOiB7ODogWzEsIDIsIDMsIDQsIDVdfSxcbiAgICAgICAgJzksMjEnOiB7ODogWzYsIDcsIDgsIDldfSxcbiAgICAgICAgJzEwLDIyJzogezk6IFsxLCAyLCAzLCA0XX0sXG4gICAgICAgICcxMSwyMyc6IHs5OiBbOCwgOSwgMTAsIDExXX1cbiAgICB9LFxuICAgIGxldHRlcnM6IFtcbiAgICAgICAgJ0VTS0lTQ0hBRsOcRicsXG4gICAgICAgICdWSUVSVFVCRlrDhMOEJyxcbiAgICAgICAgJ1pXw4ROWkdTSVZPUicsXG4gICAgICAgICdBQk9IQVVCSUVHRScsXG4gICAgICAgICdFSVNaV8OWSVNEUsOcJyxcbiAgICAgICAgJ1ZJRVJJRsOcRklRVCcsXG4gICAgICAgICdTw4RDSFNJU0lCTkknLFxuICAgICAgICAnQUNIVElOw5xOSUVMJyxcbiAgICAgICAgJ1rDhE5JRVJCRVVGSScsXG4gICAgICAgICdaV8OWVUZJTkFVSFInXG4gICAgXSxcbiAgICBtaW51dGVzOiB7XG4gICAgICAgIFwiNSw2LDcsOCw5XCI6IFtmdWVmLCBhYl0sXG4gICAgICAgIFwiMTAsMTEsMTIsMTMsMTRcIjogW3phZSwgYWJdLFxuICAgICAgICBcIjE1LDE2LDE3LDE4LDE5XCI6IFt2aWVydHUsIGFiXSxcbiAgICAgICAgXCIyMCwyMSwyMiwyMywyNFwiOiBbendhZW56ZywgYWJdLFxuICAgICAgICBcIjI1LDI2LDI3LDI4LDI5XCI6IFtmdWVmLCB2b3IsIGhhdWJpXSxcbiAgICAgICAgXCIzMCwzMSwzMiwzMywzNFwiOiBoYXViaSxcbiAgICAgICAgXCIzNSwzNiwzNywzOCwzOVwiOiBbZnVlZiwgYWIsIGhhdWJpXSxcbiAgICAgICAgXCI0MCw0MSw0Miw0Myw0NFwiOiBbendhZW56Zywgdm9yXSxcbiAgICAgICAgXCI0NSw0Niw0Nyw0OCw0OVwiOiBbdmllcnR1LCB2b3JdLFxuICAgICAgICBcIjUwLDUxLDUyLDUzLDU0XCI6IFt6YWUsIHZvcl0sXG4gICAgICAgIFwiNTUsNTYsNTcsNTgsNTlcIjogW2Z1ZWYsIHZvcl1cblxuICAgIH0sXG4gICAgcGVybWFuZW50OiBlc19pc2NoLFxuICAgIHByZXR0eU5hbWU6ICdCw6RybmTDvHRzY2gnLFxuICAgIHZlcnNpb246IDJcbn07XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7OztBQWFBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/layout/layout-de_ch.ts\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Layout_de_CH\", function() { return Layout_de_CH; });\n/*\r\n This program is free software: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see .\r\n */\r\nvar es_isch = { 1: [1, 2, 4, 5, 6, 7] };\r\nvar ab = { 4: [1, 2] };\r\nvar vor = { 3: [9, 10, 11] };\r\nvar haubi = { 4: [4, 5, 6, 7, 8] };\r\nvar fuef = { 1: [9, 10, 11] };\r\nvar zae = { 2: [9, 10, 11] };\r\nvar viertu = { 2: [1, 2, 3, 4, 5, 6] };\r\nvar zwaenzg = { 3: [1, 2, 3, 4, 5, 6] };\r\nvar Layout_de_CH = {\r\n code: 'de_CH',\r\n hours: {\r\n '0,12': { 10: [1, 2, 3, 4, 5, 6] },\r\n '1,13': { 5: [1, 2, 3] },\r\n '2,14': { 5: [4, 5, 6, 7] },\r\n '3,15': { 5: [9, 10, 11] },\r\n '4,16': { 6: [1, 2, 3, 4, 5] },\r\n '5,17': { 6: [6, 7, 8, 9] },\r\n '6,18': { 7: [1, 2, 3, 4, 5, 6] },\r\n '7,19': { 7: [7, 8, 9, 10, 11] },\r\n '8,20': { 8: [1, 2, 3, 4, 5] },\r\n '9,21': { 8: [6, 7, 8, 9] },\r\n '10,22': { 9: [1, 2, 3, 4] },\r\n '11,23': { 9: [8, 9, 10, 11] }\r\n },\r\n letters: [\r\n 'ESKISCHAFÜF',\r\n 'VIERTUBFZÄÄ',\r\n 'ZWÄNZGSIVOR',\r\n 'ABOHAUBIEGE',\r\n 'EISZWÖISDRÜ',\r\n 'VIERIFÜFIQT',\r\n 'SÄCHSISIBNI',\r\n 'ACHTINÜNIEL',\r\n 'ZÄNIERBEUFI',\r\n 'ZWÖUFINAUHR'\r\n ],\r\n minutes: {\r\n \"5,6,7,8,9\": [fuef, ab],\r\n \"10,11,12,13,14\": [zae, ab],\r\n \"15,16,17,18,19\": [viertu, ab],\r\n \"20,21,22,23,24\": [zwaenzg, ab],\r\n \"25,26,27,28,29\": [fuef, vor, haubi],\r\n \"30,31,32,33,34\": haubi,\r\n \"35,36,37,38,39\": [fuef, ab, haubi],\r\n \"40,41,42,43,44\": [zwaenzg, vor],\r\n \"45,46,47,48,49\": [viertu, vor],\r\n \"50,51,52,53,54\": [zae, vor],\r\n \"55,56,57,58,59\": [fuef, vor]\r\n },\r\n permanent: es_isch,\r\n prettyName: 'Bärndütsch',\r\n version: 2\r\n};\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGF5b3V0L2xheW91dC1kZV9jaC50cy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9sYXlvdXQvbGF5b3V0LWRlX2NoLnRzP2E2ODIiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuXG4gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cblxuIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHtMYXlvdXQsIFdvcmREZWZpbml0aW9ufSBmcm9tIFwiLi4vZG9tYWluL2xheW91dFwiO1xuXG5jb25zdCBlc19pc2NoOiBXb3JkRGVmaW5pdGlvbiA9IHsxOiBbMSwgMiwgNCwgNSwgNiwgN119O1xuY29uc3QgYWI6IFdvcmREZWZpbml0aW9uID0gezQ6IFsxLCAyXX07XG5jb25zdCB2b3I6IFdvcmREZWZpbml0aW9uID0gezM6IFs5LCAxMCwgMTFdfTtcbmNvbnN0IGhhdWJpOiBXb3JkRGVmaW5pdGlvbiA9IHs0OiBbNCwgNSwgNiwgNywgOF19O1xuY29uc3QgZnVlZjogV29yZERlZmluaXRpb24gPSB7MTogWzksIDEwLCAxMV19O1xuY29uc3QgemFlOiBXb3JkRGVmaW5pdGlvbiA9IHsyOiBbOSwgMTAsIDExXX07XG5jb25zdCB2aWVydHU6IFdvcmREZWZpbml0aW9uID0gezI6IFsxLCAyLCAzLCA0LCA1LCA2XX07XG5jb25zdCB6d2FlbnpnOiBXb3JkRGVmaW5pdGlvbiA9IHszOiBbMSwgMiwgMywgNCwgNSwgNl19O1xuXG5leHBvcnQgY29uc3QgTGF5b3V0X2RlX0NIOiBMYXlvdXQgPSB7XG4gICAgY29kZTogJ2RlX0NIJyxcbiAgICBob3Vyczoge1xuICAgICAgICAnMCwxMic6IHsxMDogWzEsIDIsIDMsIDQsIDUsIDZdfSxcbiAgICAgICAgJzEsMTMnOiB7NTogWzEsIDIsIDNdfSxcbiAgICAgICAgJzIsMTQnOiB7NTogWzQsIDUsIDYsIDddfSxcbiAgICAgICAgJzMsMTUnOiB7NTogWzksIDEwLCAxMV19LFxuICAgICAgICAnNCwxNic6IHs2OiBbMSwgMiwgMywgNCwgNV19LFxuICAgICAgICAnNSwxNyc6IHs2OiBbNiwgNywgOCwgOV19LFxuICAgICAgICAnNiwxOCc6IHs3OiBbMSwgMiwgMywgNCwgNSwgNl19LFxuICAgICAgICAnNywxOSc6IHs3OiBbNywgOCwgOSwgMTAsIDExXX0sXG4gICAgICAgICc4LDIwJzogezg6IFsxLCAyLCAzLCA0LCA1XX0sXG4gICAgICAgICc5LDIxJzogezg6IFs2LCA3LCA4LCA5XX0sXG4gICAgICAgICcxMCwyMic6IHs5OiBbMSwgMiwgMywgNF19LFxuICAgICAgICAnMTEsMjMnOiB7OTogWzgsIDksIDEwLCAxMV19XG4gICAgfSxcbiAgICBsZXR0ZXJzOiBbXG4gICAgICAgICdFU0tJU0NIQUbDnEYnLFxuICAgICAgICAnVklFUlRVQkZaw4TDhCcsXG4gICAgICAgICdaV8OETlpHU0lWT1InLFxuICAgICAgICAnQUJPSEFVQklFR0UnLFxuICAgICAgICAnRUlTWlfDlklTRFLDnCcsXG4gICAgICAgICdWSUVSSUbDnEZJUVQnLFxuICAgICAgICAnU8OEQ0hTSVNJQk5JJyxcbiAgICAgICAgJ0FDSFRJTsOcTklFTCcsXG4gICAgICAgICdaw4ROSUVSQkVVRkknLFxuICAgICAgICAnWlfDllVGSU5BVUhSJ1xuICAgIF0sXG4gICAgbWludXRlczoge1xuICAgICAgICBcIjUsNiw3LDgsOVwiOiBbZnVlZiwgYWJdLFxuICAgICAgICBcIjEwLDExLDEyLDEzLDE0XCI6IFt6YWUsIGFiXSxcbiAgICAgICAgXCIxNSwxNiwxNywxOCwxOVwiOiBbdmllcnR1LCBhYl0sXG4gICAgICAgIFwiMjAsMjEsMjIsMjMsMjRcIjogW3p3YWVuemcsIGFiXSxcbiAgICAgICAgXCIyNSwyNiwyNywyOCwyOVwiOiBbZnVlZiwgdm9yLCBoYXViaV0sXG4gICAgICAgIFwiMzAsMzEsMzIsMzMsMzRcIjogaGF1YmksXG4gICAgICAgIFwiMzUsMzYsMzcsMzgsMzlcIjogW2Z1ZWYsIGFiLCBoYXViaV0sXG4gICAgICAgIFwiNDAsNDEsNDIsNDMsNDRcIjogW3p3YWVuemcsIHZvcl0sXG4gICAgICAgIFwiNDUsNDYsNDcsNDgsNDlcIjogW3ZpZXJ0dSwgdm9yXSxcbiAgICAgICAgXCI1MCw1MSw1Miw1Myw1NFwiOiBbemFlLCB2b3JdLFxuICAgICAgICBcIjU1LDU2LDU3LDU4LDU5XCI6IFtmdWVmLCB2b3JdXG4gICAgfSxcbiAgICBwZXJtYW5lbnQ6IGVzX2lzY2gsXG4gICAgcHJldHR5TmFtZTogJ0LDpHJuZMO8dHNjaCcsXG4gICAgdmVyc2lvbjogMlxufTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7O0FBYUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/layout/layout-de_ch.ts\n");
+
+/***/ }),
+
+/***/ "./src/layout/layout-de_ch_genau.ts":
+/*!******************************************!*\
+ !*** ./src/layout/layout-de_ch_genau.ts ***!
+ \******************************************/
+/*! exports provided: Layout_de_CH_genau */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Layout_de_CH_genau\", function() { return Layout_de_CH_genau; });\n/*\r\n This program is free software: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see .\r\n */\r\nvar es_isch = { 1: [1, 2, 4, 5, 6, 7] };\r\nvar genau = { 3: [7, 8, 9, 10, 11] };\r\nvar ab = { 4: [4, 5] };\r\nvar vor = { 4: [1, 2, 3] };\r\nvar haubi = { 4: [7, 8, 9, 10, 11] };\r\nvar fuef = { 1: [9, 10, 11] };\r\nvar zae = { 2: [9, 10, 11] };\r\nvar viertu = { 2: [1, 2, 3, 4, 5, 6] };\r\nvar zwaenzg = { 3: [1, 2, 3, 4, 5, 6] };\r\nvar Layout_de_CH_genau = {\r\n code: 'de_CH_genau',\r\n hours: {\r\n \"0,12\": { 10: [1, 2, 3, 4, 5, 6] },\r\n \"1,13\": { 5: [1, 2, 3] },\r\n \"2,14\": { 5: [4, 5, 6, 7] },\r\n \"3,15\": { 5: [9, 10, 11] },\r\n \"4,16\": { 6: [1, 2, 3, 4, 5] },\r\n \"5,17\": { 6: [6, 7, 8, 9] },\r\n \"6,18\": { 7: [1, 2, 3, 4, 5, 6] },\r\n \"7,19\": { 7: [7, 8, 9, 10, 11] },\r\n \"8,20\": { 8: [1, 2, 3, 4, 5] },\r\n \"9,21\": { 8: [6, 7, 8, 9] },\r\n \"10,22\": { 9: [1, 2, 3, 4] },\r\n \"11,23\": { 9: [8, 9, 10, 11] }\r\n },\r\n letters: [\r\n 'ESKISCHAFÜF',\r\n 'VIERTUBFZÄÄ',\r\n 'ZWÄNZGGENAU',\r\n 'VORABOHAUBI',\r\n 'EISZWÖISDRÜ',\r\n 'VIERIFÜFIQT',\r\n 'SÄCHSISIBNI',\r\n 'ACHTINÜNIEL',\r\n 'ZÄNIERBEUFI',\r\n 'ZWÖUFINAUHR'\r\n ],\r\n minutes: {\r\n \"0\": genau,\r\n \"5,6,7,8,9\": [fuef, ab],\r\n \"10,11,12,13,14\": [zae, ab],\r\n \"15,16,17,18,19\": [viertu, ab],\r\n \"20,21,22,23,24\": [zwaenzg, ab],\r\n \"25,26,27,28,29\": [fuef, vor, haubi],\r\n \"30,31,32,33,34\": haubi,\r\n \"35,36,37,38,39\": [fuef, ab, haubi],\r\n \"40,41,42,43,44\": [zwaenzg, vor],\r\n \"45,46,47,48,49\": [viertu, vor],\r\n \"50,51,52,53,54\": [zae, vor],\r\n \"55,56,57,58,59\": [fuef, vor]\r\n },\r\n permanent: es_isch,\r\n prettyName: 'Bärndütsch (genau)',\r\n version: 2\r\n};\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbGF5b3V0L2xheW91dC1kZV9jaF9nZW5hdS50cy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9sYXlvdXQvbGF5b3V0LWRlX2NoX2dlbmF1LnRzP2VjZmMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuXG4gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cblxuIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHtMYXlvdXQsIFdvcmREZWZpbml0aW9ufSBmcm9tIFwiLi4vZG9tYWluL2xheW91dFwiO1xuXG5jb25zdCBlc19pc2NoIDogV29yZERlZmluaXRpb249IHsxOiBbMSwgMiwgNCwgNSwgNiwgN119O1xuY29uc3QgZ2VuYXU6IFdvcmREZWZpbml0aW9uID0gezM6IFs3LCA4LCA5LCAxMCwgMTFdfTtcbmNvbnN0IGFiIDogV29yZERlZmluaXRpb249IHs0OiBbNCwgNV19O1xuY29uc3Qgdm9yOiBXb3JkRGVmaW5pdGlvbiA9IHs0OiBbMSwgMiwgM119O1xuY29uc3QgaGF1YmkgOiBXb3JkRGVmaW5pdGlvbj0gezQ6IFs3LCA4LCA5LCAxMCwgMTFdfTtcbmNvbnN0IGZ1ZWY6IFdvcmREZWZpbml0aW9uID0gezE6IFs5LCAxMCwgMTFdfTtcbmNvbnN0IHphZSA6IFdvcmREZWZpbml0aW9uPSB7MjogWzksIDEwLCAxMV19O1xuY29uc3QgdmllcnR1OiBXb3JkRGVmaW5pdGlvbiA9IHsyOiBbMSwgMiwgMywgNCwgNSwgNl19O1xuY29uc3QgendhZW56ZzogV29yZERlZmluaXRpb24gPSB7MzogWzEsIDIsIDMsIDQsIDUsIDZdfTtcblxuZXhwb3J0IGNvbnN0IExheW91dF9kZV9DSF9nZW5hdTogTGF5b3V0ID0ge1xuICAgIGNvZGU6ICdkZV9DSF9nZW5hdScsXG4gICAgaG91cnM6IHtcbiAgICAgICAgXCIwLDEyXCI6IHsxMDogWzEsIDIsIDMsIDQsIDUsIDZdfSxcbiAgICAgICAgXCIxLDEzXCI6IHs1OiBbMSwgMiwgM119LFxuICAgICAgICBcIjIsMTRcIjogezU6IFs0LCA1LCA2LCA3XX0sXG4gICAgICAgIFwiMywxNVwiOiB7NTogWzksIDEwLCAxMV19LFxuICAgICAgICBcIjQsMTZcIjogezY6IFsxLCAyLCAzLCA0LCA1XX0sXG4gICAgICAgIFwiNSwxN1wiOiB7NjogWzYsIDcsIDgsIDldfSxcbiAgICAgICAgXCI2LDE4XCI6IHs3OiBbMSwgMiwgMywgNCwgNSwgNl19LFxuICAgICAgICBcIjcsMTlcIjogezc6IFs3LCA4LCA5LCAxMCwgMTFdfSxcbiAgICAgICAgXCI4LDIwXCI6IHs4OiBbMSwgMiwgMywgNCwgNV19LFxuICAgICAgICBcIjksMjFcIjogezg6IFs2LCA3LCA4LCA5XX0sXG4gICAgICAgIFwiMTAsMjJcIjogezk6IFsxLCAyLCAzLCA0XX0sXG4gICAgICAgIFwiMTEsMjNcIjogezk6IFs4LCA5LCAxMCwgMTFdfVxuICAgIH0sXG4gICAgbGV0dGVyczogW1xuICAgICAgICAnRVNLSVNDSEFGw5xGJyxcbiAgICAgICAgJ1ZJRVJUVUJGWsOEw4QnLFxuICAgICAgICAnWlfDhE5aR0dFTkFVJyxcbiAgICAgICAgJ1ZPUkFCT0hBVUJJJyxcbiAgICAgICAgJ0VJU1pXw5ZJU0RSw5wnLFxuICAgICAgICAnVklFUklGw5xGSVFUJyxcbiAgICAgICAgJ1PDhENIU0lTSUJOSScsXG4gICAgICAgICdBQ0hUSU7DnE5JRUwnLFxuICAgICAgICAnWsOETklFUkJFVUZJJyxcbiAgICAgICAgJ1pXw5ZVRklOQVVIUidcbiAgICBdLFxuICAgIG1pbnV0ZXM6IHtcbiAgICAgICAgXCIwXCI6IGdlbmF1LFxuICAgICAgICBcIjUsNiw3LDgsOVwiOiBbZnVlZiwgYWJdLFxuICAgICAgICBcIjEwLDExLDEyLDEzLDE0XCI6IFt6YWUsIGFiXSxcbiAgICAgICAgXCIxNSwxNiwxNywxOCwxOVwiOiBbdmllcnR1LCBhYl0sXG4gICAgICAgIFwiMjAsMjEsMjIsMjMsMjRcIjogW3p3YWVuemcsIGFiXSxcbiAgICAgICAgXCIyNSwyNiwyNywyOCwyOVwiOiBbZnVlZiwgdm9yLCBoYXViaV0sXG4gICAgICAgIFwiMzAsMzEsMzIsMzMsMzRcIjogaGF1YmksXG4gICAgICAgIFwiMzUsMzYsMzcsMzgsMzlcIjogW2Z1ZWYsIGFiLCBoYXViaV0sXG4gICAgICAgIFwiNDAsNDEsNDIsNDMsNDRcIjogW3p3YWVuemcsIHZvcl0sXG4gICAgICAgIFwiNDUsNDYsNDcsNDgsNDlcIjogW3ZpZXJ0dSwgdm9yXSxcbiAgICAgICAgXCI1MCw1MSw1Miw1Myw1NFwiOiBbemFlLCB2b3JdLFxuICAgICAgICBcIjU1LDU2LDU3LDU4LDU5XCI6IFtmdWVmLCB2b3JdXG4gICAgfSxcbiAgICBwZXJtYW5lbnQ6IGVzX2lzY2gsXG4gICAgcHJldHR5TmFtZTogJ0LDpHJuZMO8dHNjaCAoZ2VuYXUpJyxcbiAgICB2ZXJzaW9uOiAyXG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7QUFhQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/layout/layout-de_ch_genau.ts\n");
/***/ }),
@@ -165,7 +188,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UhrRenderer\", function() { return UhrRenderer; });\n/* harmony import */ var _domain_letter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./domain/letter */ \"./src/domain/letter.ts\");\n/*\r\n This program is free software: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see .\r\n */\r\n\r\nvar UhrRendererV2Delegate = /** @class */ (function () {\r\n function UhrRendererV2Delegate(layout) {\r\n this.layout = layout;\r\n }\r\n UhrRendererV2Delegate.prototype.parse = function () {\r\n var letters = [];\r\n this.layout.letters.forEach(function (lineString) {\r\n var line = [];\r\n for (var c = 0; c < lineString.length; c++) {\r\n line.push(new _domain_letter__WEBPACK_IMPORTED_MODULE_0__[\"Letter\"](lineString[c]));\r\n }\r\n letters.push(line);\r\n });\r\n this.parseArrayOrObject(letters, 'on', this.layout.permanent);\r\n if (typeof this.layout.seconds !== 'undefined' && this.layout.seconds !== null) {\r\n this.parseTimeDefinition(letters, 'second', this.layout.seconds);\r\n }\r\n else {\r\n this.parseTimeDefinition(letters, 'second', UhrRendererV2Delegate.seconds);\r\n }\r\n this.parseTimeDefinition(letters, 'minute', this.layout.minutes);\r\n this.parseTimeDefinition(letters, 'hour', this.layout.hours);\r\n return letters;\r\n };\r\n ;\r\n UhrRendererV2Delegate.prototype.parseObject = function (letters, styleClass, object) {\r\n if (typeof object !== 'undefined' && object !== null) {\r\n Object.keys(object)\r\n .map(function (key) { return Number(key); })\r\n .forEach(function (y) { return object[y].forEach(function (x) { return letters[y - 1][x - 1].addStyle(styleClass); }); });\r\n }\r\n };\r\n UhrRendererV2Delegate.prototype.parseArrayOrObject = function (letters, styleClass, input) {\r\n var _this = this;\r\n if (typeof input !== 'undefined' && input !== null) {\r\n if (Array.isArray(input)) {\r\n input.forEach(function (item) { return _this.parseObject(letters, styleClass, item); });\r\n }\r\n else {\r\n this.parseObject(letters, styleClass, input);\r\n }\r\n }\r\n };\r\n UhrRendererV2Delegate.prototype.parseTimeDefinition = function (letters, styleClass, definition) {\r\n var _this = this;\r\n if (typeof definition !== 'undefined' && definition !== null) {\r\n Object.keys(definition).forEach(function (listString) {\r\n var timeValues = listString.split(',');\r\n var highlightLetters = definition[listString];\r\n timeValues.forEach(function (timeValue) { return _this.parseArrayOrObject(letters, styleClass + timeValue, highlightLetters); });\r\n });\r\n }\r\n };\r\n UhrRendererV2Delegate.vorne0 = {\r\n 3: [2, 3, 4],\r\n 4: [1, 5],\r\n 5: [1, 4, 5],\r\n 6: [1, 3, 5],\r\n 7: [1, 2, 5],\r\n 8: [1, 5],\r\n 9: [2, 3, 4]\r\n };\r\n UhrRendererV2Delegate.hinten0 = {\r\n 3: [8, 9, 10],\r\n 4: [7, 11],\r\n 5: [7, 10, 11],\r\n 6: [7, 9, 11],\r\n 7: [7, 8, 11],\r\n 8: [7, 11],\r\n 9: [8, 9, 10]\r\n };\r\n UhrRendererV2Delegate.vorne1 = {\r\n 3: [3],\r\n 4: [2, 3],\r\n 5: [3],\r\n 6: [3],\r\n 7: [3],\r\n 8: [3],\r\n 9: [2, 3, 4]\r\n };\r\n UhrRendererV2Delegate.hinten1 = {\r\n 3: [9],\r\n 4: [8, 9],\r\n 5: [9],\r\n 6: [9],\r\n 7: [9],\r\n 8: [9],\r\n 9: [8, 9, 10]\r\n };\r\n UhrRendererV2Delegate.vorne2 = {\r\n 3: [2, 3, 4],\r\n 4: [1, 5],\r\n 5: [5],\r\n 6: [4],\r\n 7: [3],\r\n 8: [2],\r\n 9: [1, 2, 3, 4, 5]\r\n };\r\n UhrRendererV2Delegate.hinten2 = {\r\n 3: [8, 9, 10],\r\n 4: [7, 11],\r\n 5: [11],\r\n 6: [10],\r\n 7: [9],\r\n 8: [8],\r\n 9: [7, 8, 9, 10, 11]\r\n };\r\n UhrRendererV2Delegate.vorne3 = {\r\n 3: [1, 2, 3, 4, 5],\r\n 4: [4],\r\n 5: [3],\r\n 6: [4],\r\n 7: [5],\r\n 8: [1, 5],\r\n 9: [2, 3, 4]\r\n };\r\n UhrRendererV2Delegate.hinten3 = {\r\n 3: [7, 8, 9, 10, 11],\r\n 4: [10],\r\n 5: [9],\r\n 6: [10],\r\n 7: [11],\r\n 8: [7, 11],\r\n 9: [8, 9, 10]\r\n };\r\n UhrRendererV2Delegate.vorne4 = {\r\n 3: [4],\r\n 4: [3, 4],\r\n 5: [2, 4],\r\n 6: [1, 4],\r\n 7: [1, 2, 3, 4, 5],\r\n 8: [4],\r\n 9: [4]\r\n };\r\n UhrRendererV2Delegate.hinten4 = {\r\n 3: [10],\r\n 4: [9, 10],\r\n 5: [8, 10],\r\n 6: [7, 10],\r\n 7: [7, 8, 9, 10, 11],\r\n 8: [10],\r\n 9: [10]\r\n };\r\n UhrRendererV2Delegate.vorne5 = {\r\n 3: [1, 2, 3, 4, 5],\r\n 4: [1],\r\n 5: [1, 2, 3, 4],\r\n 6: [5],\r\n 7: [5],\r\n 8: [1, 5],\r\n 9: [2, 3, 4]\r\n };\r\n UhrRendererV2Delegate.hinten5 = {\r\n 3: [7, 8, 9, 10, 11],\r\n 4: [7],\r\n 5: [7, 8, 9, 10],\r\n 6: [11],\r\n 7: [11],\r\n 8: [7, 11],\r\n 9: [8, 9, 10]\r\n };\r\n UhrRendererV2Delegate.hinten6 = {\r\n 3: [9, 10],\r\n 4: [8],\r\n 5: [7],\r\n 6: [7, 8, 9, 10],\r\n 7: [7, 11],\r\n 8: [7, 11],\r\n 9: [8, 9, 10]\r\n };\r\n UhrRendererV2Delegate.hinten7 = {\r\n 3: [7, 8, 9, 10, 11],\r\n 4: [11],\r\n 5: [10],\r\n 6: [9],\r\n 7: [8],\r\n 8: [8],\r\n 9: [8]\r\n };\r\n UhrRendererV2Delegate.hinten8 = {\r\n 3: [8, 9, 10],\r\n 4: [7, 11],\r\n 5: [7, 11],\r\n 6: [8, 9, 10],\r\n 7: [7, 11],\r\n 8: [7, 11],\r\n 9: [8, 9, 10]\r\n };\r\n UhrRendererV2Delegate.hinten9 = {\r\n 3: [8, 9, 10],\r\n 4: [7, 11],\r\n 5: [7, 11],\r\n 6: [8, 9, 10, 11],\r\n 7: [11],\r\n 8: [10],\r\n 9: [8, 9]\r\n };\r\n UhrRendererV2Delegate.seconds = {\r\n \"0\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten0],\r\n \"1\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten1],\r\n \"2\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten2],\r\n \"3\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten3],\r\n \"4\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten4],\r\n \"5\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten5],\r\n \"6\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten6],\r\n \"7\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten7],\r\n \"8\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten8],\r\n \"9\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten9],\r\n \"10\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten0],\r\n \"11\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten1],\r\n \"12\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten2],\r\n \"13\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten3],\r\n \"14\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten4],\r\n \"15\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten5],\r\n \"16\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten6],\r\n \"17\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten7],\r\n \"18\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten8],\r\n \"19\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten9],\r\n \"20\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten0],\r\n \"21\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten1],\r\n \"22\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten2],\r\n \"23\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten3],\r\n \"24\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten4],\r\n \"25\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten5],\r\n \"26\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten6],\r\n \"27\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten7],\r\n \"28\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten8],\r\n \"29\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten9],\r\n \"30\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten0],\r\n \"31\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten1],\r\n \"32\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten2],\r\n \"33\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten3],\r\n \"34\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten4],\r\n \"35\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten5],\r\n \"36\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten6],\r\n \"37\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten7],\r\n \"38\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten8],\r\n \"39\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten9],\r\n \"40\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten0],\r\n \"41\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten1],\r\n \"42\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten2],\r\n \"43\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten3],\r\n \"44\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten4],\r\n \"45\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten5],\r\n \"46\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten6],\r\n \"47\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten7],\r\n \"48\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten8],\r\n \"49\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten9],\r\n \"50\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten0],\r\n \"51\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten1],\r\n \"52\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten2],\r\n \"53\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten3],\r\n \"54\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten4],\r\n \"55\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten5],\r\n \"56\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten6],\r\n \"57\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten7],\r\n \"58\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten8],\r\n \"59\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten9]\r\n };\r\n return UhrRendererV2Delegate;\r\n}());\r\n/**\r\n * Hilfsklasse zum Rendern der Uhr.\r\n * @param layout Layout-Objekt, das gerendert werden soll.\r\n * @param renderarea Das jQuery-gewrappte HTML-Element, auf dem gerendert werden soll.\r\n */\r\nvar UhrRenderer = /** @class */ (function () {\r\n function UhrRenderer(layout, renderarea /*FIXME any: jQuery-wrapped HTML element*/) {\r\n this.layout = layout;\r\n this.renderarea = renderarea;\r\n }\r\n UhrRenderer.prototype.render = function (beforeshow) {\r\n var _this = this;\r\n if (this.layout.parsed === undefined) {\r\n if (this.layout.version === 2) {\r\n var delegate = new UhrRendererV2Delegate(this.layout);\r\n var parsedLayout = delegate.parse();\r\n Object.defineProperty(this.layout, \"parsed\", {\r\n \"value\": parsedLayout,\r\n \"writable\": false,\r\n \"configurable\": false\r\n });\r\n }\r\n else {\r\n console.warn(\"Unknown layout version: '\" + this.layout.version + \"', expecting '2'\");\r\n return;\r\n }\r\n }\r\n var letters = this.layout.parsed;\r\n this.renderarea.fadeOut('fast', function () {\r\n _this.renderarea.empty();\r\n letters.forEach(function (line, index, array) {\r\n line.forEach(function (letter) { return _this.renderarea.append(letter.toString()); });\r\n if (index < array.length - 1) {\r\n _this.renderarea.append('
');\r\n }\r\n });\r\n if (typeof beforeshow === 'function') {\r\n beforeshow();\r\n }\r\n _this.renderarea.fadeIn('fast');\r\n });\r\n };\r\n ;\r\n return UhrRenderer;\r\n}());\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVuZGVyZXIudHMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvcmVuZGVyZXIudHM/NWUwZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG5cbiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG4gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQge0xheW91dCwgVGltZURlZmluaXRpb24sIFdvcmREZWZpbml0aW9ufSBmcm9tIFwiLi9kb21haW4vbGF5b3V0XCI7XG5pbXBvcnQge0xldHRlcn0gZnJvbSBcIi4vZG9tYWluL2xldHRlclwiO1xuXG5jbGFzcyBVaHJSZW5kZXJlclYyRGVsZWdhdGUge1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHZvcm5lMDogV29yZERlZmluaXRpb24gPSB7XG4gICAgICAgIDM6IFsyLCAzLCA0XSxcbiAgICAgICAgNDogWzEsIDVdLFxuICAgICAgICA1OiBbMSwgNCwgNV0sXG4gICAgICAgIDY6IFsxLCAzLCA1XSxcbiAgICAgICAgNzogWzEsIDIsIDVdLFxuICAgICAgICA4OiBbMSwgNV0sXG4gICAgICAgIDk6IFsyLCAzLCA0XVxuICAgIH07XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgaGludGVuMDogV29yZERlZmluaXRpb24gPSB7XG4gICAgICAgIDM6IFs4LCA5LCAxMF0sXG4gICAgICAgIDQ6IFs3LCAxMV0sXG4gICAgICAgIDU6IFs3LCAxMCwgMTFdLFxuICAgICAgICA2OiBbNywgOSwgMTFdLFxuICAgICAgICA3OiBbNywgOCwgMTFdLFxuICAgICAgICA4OiBbNywgMTFdLFxuICAgICAgICA5OiBbOCwgOSwgMTBdXG4gICAgfTtcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSB2b3JuZTE6IFdvcmREZWZpbml0aW9uID0ge1xuICAgICAgICAzOiBbM10sXG4gICAgICAgIDQ6IFsyLCAzXSxcbiAgICAgICAgNTogWzNdLFxuICAgICAgICA2OiBbM10sXG4gICAgICAgIDc6IFszXSxcbiAgICAgICAgODogWzNdLFxuICAgICAgICA5OiBbMiwgMywgNF1cbiAgICB9O1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGhpbnRlbjE6IFdvcmREZWZpbml0aW9uID0ge1xuICAgICAgICAzOiBbOV0sXG4gICAgICAgIDQ6IFs4LCA5XSxcbiAgICAgICAgNTogWzldLFxuICAgICAgICA2OiBbOV0sXG4gICAgICAgIDc6IFs5XSxcbiAgICAgICAgODogWzldLFxuICAgICAgICA5OiBbOCwgOSwgMTBdXG4gICAgfTtcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSB2b3JuZTI6IFdvcmREZWZpbml0aW9uID0ge1xuICAgICAgICAzOiBbMiwgMywgNF0sXG4gICAgICAgIDQ6IFsxLCA1XSxcbiAgICAgICAgNTogWzVdLFxuICAgICAgICA2OiBbNF0sXG4gICAgICAgIDc6IFszXSxcbiAgICAgICAgODogWzJdLFxuICAgICAgICA5OiBbMSwgMiwgMywgNCwgNV1cbiAgICB9O1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGhpbnRlbjI6IFdvcmREZWZpbml0aW9uID0ge1xuICAgICAgICAzOiBbOCwgOSwgMTBdLFxuICAgICAgICA0OiBbNywgMTFdLFxuICAgICAgICA1OiBbMTFdLFxuICAgICAgICA2OiBbMTBdLFxuICAgICAgICA3OiBbOV0sXG4gICAgICAgIDg6IFs4XSxcbiAgICAgICAgOTogWzcsIDgsIDksIDEwLCAxMV1cbiAgICB9O1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHZvcm5lMzogV29yZERlZmluaXRpb24gPSB7XG4gICAgICAgIDM6IFsxLCAyLCAzLCA0LCA1XSxcbiAgICAgICAgNDogWzRdLFxuICAgICAgICA1OiBbM10sXG4gICAgICAgIDY6IFs0XSxcbiAgICAgICAgNzogWzVdLFxuICAgICAgICA4OiBbMSwgNV0sXG4gICAgICAgIDk6IFsyLCAzLCA0XVxuICAgIH07XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgaGludGVuMzogV29yZERlZmluaXRpb24gPSB7XG4gICAgICAgIDM6IFs3LCA4LCA5LCAxMCwgMTFdLFxuICAgICAgICA0OiBbMTBdLFxuICAgICAgICA1OiBbOV0sXG4gICAgICAgIDY6IFsxMF0sXG4gICAgICAgIDc6IFsxMV0sXG4gICAgICAgIDg6IFs3LCAxMV0sXG4gICAgICAgIDk6IFs4LCA5LCAxMF1cbiAgICB9O1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHZvcm5lNDogV29yZERlZmluaXRpb24gPSB7XG4gICAgICAgIDM6IFs0XSxcbiAgICAgICAgNDogWzMsIDRdLFxuICAgICAgICA1OiBbMiwgNF0sXG4gICAgICAgIDY6IFsxLCA0XSxcbiAgICAgICAgNzogWzEsIDIsIDMsIDQsIDVdLFxuICAgICAgICA4OiBbNF0sXG4gICAgICAgIDk6IFs0XVxuICAgIH07XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgaGludGVuNDogV29yZERlZmluaXRpb24gPSB7XG4gICAgICAgIDM6IFsxMF0sXG4gICAgICAgIDQ6IFs5LCAxMF0sXG4gICAgICAgIDU6IFs4LCAxMF0sXG4gICAgICAgIDY6IFs3LCAxMF0sXG4gICAgICAgIDc6IFs3LCA4LCA5LCAxMCwgMTFdLFxuICAgICAgICA4OiBbMTBdLFxuICAgICAgICA5OiBbMTBdXG4gICAgfTtcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSB2b3JuZTU6IFdvcmREZWZpbml0aW9uID0ge1xuICAgICAgICAzOiBbMSwgMiwgMywgNCwgNV0sXG4gICAgICAgIDQ6IFsxXSxcbiAgICAgICAgNTogWzEsIDIsIDMsIDRdLFxuICAgICAgICA2OiBbNV0sXG4gICAgICAgIDc6IFs1XSxcbiAgICAgICAgODogWzEsIDVdLFxuICAgICAgICA5OiBbMiwgMywgNF1cbiAgICB9O1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGhpbnRlbjU6IFdvcmREZWZpbml0aW9uID0ge1xuICAgICAgICAzOiBbNywgOCwgOSwgMTAsIDExXSxcbiAgICAgICAgNDogWzddLFxuICAgICAgICA1OiBbNywgOCwgOSwgMTBdLFxuICAgICAgICA2OiBbMTFdLFxuICAgICAgICA3OiBbMTFdLFxuICAgICAgICA4OiBbNywgMTFdLFxuICAgICAgICA5OiBbOCwgOSwgMTBdXG4gICAgfTtcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBoaW50ZW42OiBXb3JkRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgMzogWzksIDEwXSxcbiAgICAgICAgNDogWzhdLFxuICAgICAgICA1OiBbN10sXG4gICAgICAgIDY6IFs3LCA4LCA5LCAxMF0sXG4gICAgICAgIDc6IFs3LCAxMV0sXG4gICAgICAgIDg6IFs3LCAxMV0sXG4gICAgICAgIDk6IFs4LCA5LCAxMF1cbiAgICB9O1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGhpbnRlbjc6IFdvcmREZWZpbml0aW9uID0ge1xuICAgICAgICAzOiBbNywgOCwgOSwgMTAsIDExXSxcbiAgICAgICAgNDogWzExXSxcbiAgICAgICAgNTogWzEwXSxcbiAgICAgICAgNjogWzldLFxuICAgICAgICA3OiBbOF0sXG4gICAgICAgIDg6IFs4XSxcbiAgICAgICAgOTogWzhdXG4gICAgfTtcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBoaW50ZW44OiBXb3JkRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgMzogWzgsIDksIDEwXSxcbiAgICAgICAgNDogWzcsIDExXSxcbiAgICAgICAgNTogWzcsIDExXSxcbiAgICAgICAgNjogWzgsIDksIDEwXSxcbiAgICAgICAgNzogWzcsIDExXSxcbiAgICAgICAgODogWzcsIDExXSxcbiAgICAgICAgOTogWzgsIDksIDEwXVxuICAgIH07XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgaGludGVuOTogV29yZERlZmluaXRpb24gPSB7XG4gICAgICAgIDM6IFs4LCA5LCAxMF0sXG4gICAgICAgIDQ6IFs3LCAxMV0sXG4gICAgICAgIDU6IFs3LCAxMV0sXG4gICAgICAgIDY6IFs4LCA5LCAxMCwgMTFdLFxuICAgICAgICA3OiBbMTFdLFxuICAgICAgICA4OiBbMTBdLFxuICAgICAgICA5OiBbOCwgOV1cbiAgICB9O1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHNlY29uZHM6IFRpbWVEZWZpbml0aW9uID0ge1xuICAgICAgICBcIjBcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTAsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW4wXSxcbiAgICAgICAgXCIxXCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUwLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuMV0sXG4gICAgICAgIFwiMlwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMCwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjJdLFxuICAgICAgICBcIjNcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTAsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW4zXSxcbiAgICAgICAgXCI0XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUwLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuNF0sXG4gICAgICAgIFwiNVwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMCwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjVdLFxuICAgICAgICBcIjZcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTAsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW42XSxcbiAgICAgICAgXCI3XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUwLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuN10sXG4gICAgICAgIFwiOFwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMCwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjhdLFxuICAgICAgICBcIjlcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTAsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW45XSxcbiAgICAgICAgXCIxMFwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMSwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjBdLFxuICAgICAgICBcIjExXCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUxLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuMV0sXG4gICAgICAgIFwiMTJcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTEsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW4yXSxcbiAgICAgICAgXCIxM1wiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMSwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjNdLFxuICAgICAgICBcIjE0XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUxLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuNF0sXG4gICAgICAgIFwiMTVcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTEsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW41XSxcbiAgICAgICAgXCIxNlwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMSwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjZdLFxuICAgICAgICBcIjE3XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUxLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuN10sXG4gICAgICAgIFwiMThcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTEsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW44XSxcbiAgICAgICAgXCIxOVwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMSwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjldLFxuICAgICAgICBcIjIwXCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUyLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuMF0sXG4gICAgICAgIFwiMjFcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTIsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW4xXSxcbiAgICAgICAgXCIyMlwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMiwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjJdLFxuICAgICAgICBcIjIzXCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUyLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuM10sXG4gICAgICAgIFwiMjRcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTIsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW40XSxcbiAgICAgICAgXCIyNVwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMiwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjVdLFxuICAgICAgICBcIjI2XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUyLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuNl0sXG4gICAgICAgIFwiMjdcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTIsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW43XSxcbiAgICAgICAgXCIyOFwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMiwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjhdLFxuICAgICAgICBcIjI5XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUyLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuOV0sXG4gICAgICAgIFwiMzBcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTMsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW4wXSxcbiAgICAgICAgXCIzMVwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMywgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjFdLFxuICAgICAgICBcIjMyXCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUzLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuMl0sXG4gICAgICAgIFwiMzNcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTMsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW4zXSxcbiAgICAgICAgXCIzNFwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMywgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjRdLFxuICAgICAgICBcIjM1XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUzLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuNV0sXG4gICAgICAgIFwiMzZcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTMsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW42XSxcbiAgICAgICAgXCIzN1wiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMywgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjddLFxuICAgICAgICBcIjM4XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUzLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuOF0sXG4gICAgICAgIFwiMzlcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTMsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW45XSxcbiAgICAgICAgXCI0MFwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lNCwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjBdLFxuICAgICAgICBcIjQxXCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmU0LCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuMV0sXG4gICAgICAgIFwiNDJcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTQsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW4yXSxcbiAgICAgICAgXCI0M1wiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lNCwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjNdLFxuICAgICAgICBcIjQ0XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmU0LCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuNF0sXG4gICAgICAgIFwiNDVcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTQsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW41XSxcbiAgICAgICAgXCI0NlwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lNCwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjZdLFxuICAgICAgICBcIjQ3XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmU0LCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuN10sXG4gICAgICAgIFwiNDhcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTQsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW44XSxcbiAgICAgICAgXCI0OVwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lNCwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjldLFxuICAgICAgICBcIjUwXCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmU1LCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuMF0sXG4gICAgICAgIFwiNTFcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTUsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW4xXSxcbiAgICAgICAgXCI1MlwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lNSwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjJdLFxuICAgICAgICBcIjUzXCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmU1LCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuM10sXG4gICAgICAgIFwiNTRcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTUsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW40XSxcbiAgICAgICAgXCI1NVwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lNSwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjVdLFxuICAgICAgICBcIjU2XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmU1LCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuNl0sXG4gICAgICAgIFwiNTdcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTUsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW43XSxcbiAgICAgICAgXCI1OFwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lNSwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjhdLFxuICAgICAgICBcIjU5XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmU1LCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuOV1cbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBsYXlvdXQ6IExheW91dCkge1xuICAgIH1cblxuICAgIHB1YmxpYyBwYXJzZSgpOiBMZXR0ZXJbXVtdIHtcbiAgICAgICAgY29uc3QgbGV0dGVyczogTGV0dGVyW11bXSA9IFtdO1xuICAgICAgICB0aGlzLmxheW91dC5sZXR0ZXJzLmZvckVhY2gobGluZVN0cmluZyA9PiB7XG4gICAgICAgICAgICBjb25zdCBsaW5lOiBMZXR0ZXJbXSA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgYyA9IDA7IGMgPCBsaW5lU3RyaW5nLmxlbmd0aDsgYysrKSB7XG4gICAgICAgICAgICAgICAgbGluZS5wdXNoKG5ldyBMZXR0ZXIobGluZVN0cmluZ1tjXSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0dGVycy5wdXNoKGxpbmUpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wYXJzZUFycmF5T3JPYmplY3QobGV0dGVycywgJ29uJywgdGhpcy5sYXlvdXQucGVybWFuZW50KTtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxheW91dC5zZWNvbmRzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmxheW91dC5zZWNvbmRzICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnBhcnNlVGltZURlZmluaXRpb24obGV0dGVycywgJ3NlY29uZCcsIHRoaXMubGF5b3V0LnNlY29uZHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wYXJzZVRpbWVEZWZpbml0aW9uKGxldHRlcnMsICdzZWNvbmQnLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuc2Vjb25kcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wYXJzZVRpbWVEZWZpbml0aW9uKGxldHRlcnMsICdtaW51dGUnLCB0aGlzLmxheW91dC5taW51dGVzKTtcbiAgICAgICAgdGhpcy5wYXJzZVRpbWVEZWZpbml0aW9uKGxldHRlcnMsICdob3VyJywgdGhpcy5sYXlvdXQuaG91cnMpO1xuICAgICAgICByZXR1cm4gbGV0dGVycztcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBwYXJzZU9iamVjdChsZXR0ZXJzOiBMZXR0ZXJbXVtdLCBzdHlsZUNsYXNzOiBzdHJpbmcsIG9iamVjdDogV29yZERlZmluaXRpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvYmplY3QgIT09ICd1bmRlZmluZWQnICYmIG9iamVjdCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMob2JqZWN0KVxuICAgICAgICAgICAgICAgIC5tYXAoa2V5ID0+IE51bWJlcihrZXkpKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKFxuICAgICAgICAgICAgICAgICAgICB5ID0+IG9iamVjdFt5XS5mb3JFYWNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgeCA9PiBsZXR0ZXJzW3kgLSAxXVt4IC0gMV0uYWRkU3R5bGUoc3R5bGVDbGFzcylcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcnNlQXJyYXlPck9iamVjdChsZXR0ZXJzOiBMZXR0ZXJbXVtdLCBzdHlsZUNsYXNzOiBzdHJpbmcsIGlucHV0OiBXb3JkRGVmaW5pdGlvbiB8IFdvcmREZWZpbml0aW9uW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ3VuZGVmaW5lZCcgJiYgaW5wdXQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGlucHV0KSkge1xuICAgICAgICAgICAgICAgIGlucHV0LmZvckVhY2goaXRlbSA9PiB0aGlzLnBhcnNlT2JqZWN0KGxldHRlcnMsIHN0eWxlQ2xhc3MsIGl0ZW0pKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJzZU9iamVjdChsZXR0ZXJzLCBzdHlsZUNsYXNzLCBpbnB1dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcnNlVGltZURlZmluaXRpb24obGV0dGVyczogTGV0dGVyW11bXSwgc3R5bGVDbGFzczogc3RyaW5nLCBkZWZpbml0aW9uOiBUaW1lRGVmaW5pdGlvbik6IHZvaWQge1xuICAgICAgICBpZiAodHlwZW9mIGRlZmluaXRpb24gIT09ICd1bmRlZmluZWQnICYmIGRlZmluaXRpb24gIT09IG51bGwpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGRlZmluaXRpb24pLmZvckVhY2gobGlzdFN0cmluZyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGltZVZhbHVlczogc3RyaW5nW10gPSBsaXN0U3RyaW5nLnNwbGl0KCcsJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgaGlnaGxpZ2h0TGV0dGVyczogV29yZERlZmluaXRpb24gfCBXb3JkRGVmaW5pdGlvbltdID0gZGVmaW5pdGlvbltsaXN0U3RyaW5nXTtcbiAgICAgICAgICAgICAgICB0aW1lVmFsdWVzLmZvckVhY2godGltZVZhbHVlID0+IHRoaXMucGFyc2VBcnJheU9yT2JqZWN0KGxldHRlcnMsIHN0eWxlQ2xhc3MgKyB0aW1lVmFsdWUsIGhpZ2hsaWdodExldHRlcnMpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEhpbGZza2xhc3NlIHp1bSBSZW5kZXJuIGRlciBVaHIuXG4gKiBAcGFyYW0gbGF5b3V0ICAgICBMYXlvdXQtT2JqZWt0LCBkYXMgZ2VyZW5kZXJ0IHdlcmRlbiBzb2xsLlxuICogQHBhcmFtIHJlbmRlcmFyZWEgRGFzIGpRdWVyeS1nZXdyYXBwdGUgSFRNTC1FbGVtZW50LCBhdWYgZGVtIGdlcmVuZGVydCB3ZXJkZW4gc29sbC5cbiAqL1xuZXhwb3J0IGNsYXNzIFVoclJlbmRlcmVyIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxheW91dDogTGF5b3V0LCBwcml2YXRlIHJlbmRlcmFyZWE6IGFueS8qRklYTUUgYW55OiBqUXVlcnktd3JhcHBlZCBIVE1MIGVsZW1lbnQqLykge1xuICAgIH1cblxuICAgIHJlbmRlcihiZWZvcmVzaG93PzogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5sYXlvdXQucGFyc2VkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmxheW91dC52ZXJzaW9uID09PSAyKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVsZWdhdGU6IFVoclJlbmRlcmVyVjJEZWxlZ2F0ZSA9IG5ldyBVaHJSZW5kZXJlclYyRGVsZWdhdGUodGhpcy5sYXlvdXQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZExheW91dDogTGV0dGVyW11bXSA9IGRlbGVnYXRlLnBhcnNlKCk7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMubGF5b3V0LCBcInBhcnNlZFwiLCB7XG4gICAgICAgICAgICAgICAgICAgIFwidmFsdWVcIjogcGFyc2VkTGF5b3V0LFxuICAgICAgICAgICAgICAgICAgICBcIndyaXRhYmxlXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcImNvbmZpZ3VyYWJsZVwiOiBmYWxzZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFVua25vd24gbGF5b3V0IHZlcnNpb246ICcke3RoaXMubGF5b3V0LnZlcnNpb259JywgZXhwZWN0aW5nICcyJ2ApO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsZXR0ZXJzOiBMZXR0ZXJbXVtdID0gdGhpcy5sYXlvdXQucGFyc2VkO1xuICAgICAgICB0aGlzLnJlbmRlcmFyZWEuZmFkZU91dCgnZmFzdCcsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyYXJlYS5lbXB0eSgpO1xuICAgICAgICAgICAgbGV0dGVycy5mb3JFYWNoKChsaW5lLCBpbmRleCwgYXJyYXkpID0+IHtcbiAgICAgICAgICAgICAgICBsaW5lLmZvckVhY2gobGV0dGVyID0+IHRoaXMucmVuZGVyYXJlYS5hcHBlbmQobGV0dGVyLnRvU3RyaW5nKCkpKTtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPCBhcnJheS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyYXJlYS5hcHBlbmQoJzxici8+Jyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGJlZm9yZXNob3cgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBiZWZvcmVzaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmFyZWEuZmFkZUluKCdmYXN0Jyk7XG4gICAgICAgIH0pO1xuICAgIH07XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7O0FBYUE7QUFHQTtBQUVBO0FBZ05BO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcFFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF3REE7QUFBQTtBQUVBOzs7O0FBSUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTs7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/renderer.ts\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UhrRenderer\", function() { return UhrRenderer; });\n/* harmony import */ var _domain_letter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./domain/letter */ \"./src/domain/letter.ts\");\n/*\r\n This program is free software: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see .\r\n */\r\n\r\nvar UhrRendererV2Delegate = /** @class */ (function () {\r\n function UhrRendererV2Delegate(layout) {\r\n this.layout = layout;\r\n }\r\n UhrRendererV2Delegate.prototype.parse = function () {\r\n var letters = [];\r\n this.layout.letters.forEach(function (lineString) {\r\n var line = [];\r\n for (var c = 0; c < lineString.length; c++) {\r\n line.push(new _domain_letter__WEBPACK_IMPORTED_MODULE_0__[\"Letter\"](lineString[c]));\r\n }\r\n letters.push(line);\r\n });\r\n this.parseArrayOrObject(letters, 'on', this.layout.permanent);\r\n if (typeof this.layout.seconds !== 'undefined' && this.layout.seconds !== null) {\r\n this.parseTimeDefinition(letters, 'second', this.layout.seconds);\r\n }\r\n else {\r\n this.parseTimeDefinition(letters, 'second', UhrRendererV2Delegate.seconds);\r\n }\r\n this.parseTimeDefinition(letters, 'minute', this.layout.minutes);\r\n this.parseTimeDefinition(letters, 'hour', this.layout.hours);\r\n console.log(\"renderer.ts\", \"parsed layout\", this.layout.code, this.layout, letters);\r\n return letters;\r\n };\r\n ;\r\n UhrRendererV2Delegate.prototype.parseObject = function (letters, styleClass, object) {\r\n if (typeof object !== 'undefined' && object !== null) {\r\n Object.keys(object)\r\n .map(function (key) { return Number(key); })\r\n .forEach(function (y) { return object[y].forEach(function (x) { return letters[y - 1][x - 1].addStyle(styleClass); }); });\r\n }\r\n };\r\n UhrRendererV2Delegate.prototype.parseArrayOrObject = function (letters, styleClass, input) {\r\n var _this = this;\r\n if (typeof input !== 'undefined' && input !== null) {\r\n if (Array.isArray(input)) {\r\n input.forEach(function (item) { return _this.parseObject(letters, styleClass, item); });\r\n }\r\n else {\r\n this.parseObject(letters, styleClass, input);\r\n }\r\n }\r\n };\r\n UhrRendererV2Delegate.prototype.parseTimeDefinition = function (letters, styleClass, definition) {\r\n var _this = this;\r\n if (typeof definition !== 'undefined' && definition !== null) {\r\n Object.keys(definition).forEach(function (listString) {\r\n var timeValues = listString.split(',');\r\n var highlightLetters = definition[listString];\r\n timeValues.forEach(function (timeValue) { return _this.parseArrayOrObject(letters, styleClass + timeValue, highlightLetters); });\r\n });\r\n }\r\n };\r\n UhrRendererV2Delegate.vorne0 = {\r\n 3: [2, 3, 4],\r\n 4: [1, 5],\r\n 5: [1, 4, 5],\r\n 6: [1, 3, 5],\r\n 7: [1, 2, 5],\r\n 8: [1, 5],\r\n 9: [2, 3, 4]\r\n };\r\n UhrRendererV2Delegate.hinten0 = {\r\n 3: [8, 9, 10],\r\n 4: [7, 11],\r\n 5: [7, 10, 11],\r\n 6: [7, 9, 11],\r\n 7: [7, 8, 11],\r\n 8: [7, 11],\r\n 9: [8, 9, 10]\r\n };\r\n UhrRendererV2Delegate.vorne1 = {\r\n 3: [3],\r\n 4: [2, 3],\r\n 5: [3],\r\n 6: [3],\r\n 7: [3],\r\n 8: [3],\r\n 9: [2, 3, 4]\r\n };\r\n UhrRendererV2Delegate.hinten1 = {\r\n 3: [9],\r\n 4: [8, 9],\r\n 5: [9],\r\n 6: [9],\r\n 7: [9],\r\n 8: [9],\r\n 9: [8, 9, 10]\r\n };\r\n UhrRendererV2Delegate.vorne2 = {\r\n 3: [2, 3, 4],\r\n 4: [1, 5],\r\n 5: [5],\r\n 6: [4],\r\n 7: [3],\r\n 8: [2],\r\n 9: [1, 2, 3, 4, 5]\r\n };\r\n UhrRendererV2Delegate.hinten2 = {\r\n 3: [8, 9, 10],\r\n 4: [7, 11],\r\n 5: [11],\r\n 6: [10],\r\n 7: [9],\r\n 8: [8],\r\n 9: [7, 8, 9, 10, 11]\r\n };\r\n UhrRendererV2Delegate.vorne3 = {\r\n 3: [1, 2, 3, 4, 5],\r\n 4: [4],\r\n 5: [3],\r\n 6: [4],\r\n 7: [5],\r\n 8: [1, 5],\r\n 9: [2, 3, 4]\r\n };\r\n UhrRendererV2Delegate.hinten3 = {\r\n 3: [7, 8, 9, 10, 11],\r\n 4: [10],\r\n 5: [9],\r\n 6: [10],\r\n 7: [11],\r\n 8: [7, 11],\r\n 9: [8, 9, 10]\r\n };\r\n UhrRendererV2Delegate.vorne4 = {\r\n 3: [4],\r\n 4: [3, 4],\r\n 5: [2, 4],\r\n 6: [1, 4],\r\n 7: [1, 2, 3, 4, 5],\r\n 8: [4],\r\n 9: [4]\r\n };\r\n UhrRendererV2Delegate.hinten4 = {\r\n 3: [10],\r\n 4: [9, 10],\r\n 5: [8, 10],\r\n 6: [7, 10],\r\n 7: [7, 8, 9, 10, 11],\r\n 8: [10],\r\n 9: [10]\r\n };\r\n UhrRendererV2Delegate.vorne5 = {\r\n 3: [1, 2, 3, 4, 5],\r\n 4: [1],\r\n 5: [1, 2, 3, 4],\r\n 6: [5],\r\n 7: [5],\r\n 8: [1, 5],\r\n 9: [2, 3, 4]\r\n };\r\n UhrRendererV2Delegate.hinten5 = {\r\n 3: [7, 8, 9, 10, 11],\r\n 4: [7],\r\n 5: [7, 8, 9, 10],\r\n 6: [11],\r\n 7: [11],\r\n 8: [7, 11],\r\n 9: [8, 9, 10]\r\n };\r\n UhrRendererV2Delegate.hinten6 = {\r\n 3: [9, 10],\r\n 4: [8],\r\n 5: [7],\r\n 6: [7, 8, 9, 10],\r\n 7: [7, 11],\r\n 8: [7, 11],\r\n 9: [8, 9, 10]\r\n };\r\n UhrRendererV2Delegate.hinten7 = {\r\n 3: [7, 8, 9, 10, 11],\r\n 4: [11],\r\n 5: [10],\r\n 6: [9],\r\n 7: [8],\r\n 8: [8],\r\n 9: [8]\r\n };\r\n UhrRendererV2Delegate.hinten8 = {\r\n 3: [8, 9, 10],\r\n 4: [7, 11],\r\n 5: [7, 11],\r\n 6: [8, 9, 10],\r\n 7: [7, 11],\r\n 8: [7, 11],\r\n 9: [8, 9, 10]\r\n };\r\n UhrRendererV2Delegate.hinten9 = {\r\n 3: [8, 9, 10],\r\n 4: [7, 11],\r\n 5: [7, 11],\r\n 6: [8, 9, 10, 11],\r\n 7: [11],\r\n 8: [10],\r\n 9: [8, 9]\r\n };\r\n UhrRendererV2Delegate.seconds = {\r\n \"0\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten0],\r\n \"1\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten1],\r\n \"2\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten2],\r\n \"3\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten3],\r\n \"4\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten4],\r\n \"5\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten5],\r\n \"6\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten6],\r\n \"7\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten7],\r\n \"8\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten8],\r\n \"9\": [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten9],\r\n \"10\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten0],\r\n \"11\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten1],\r\n \"12\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten2],\r\n \"13\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten3],\r\n \"14\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten4],\r\n \"15\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten5],\r\n \"16\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten6],\r\n \"17\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten7],\r\n \"18\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten8],\r\n \"19\": [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten9],\r\n \"20\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten0],\r\n \"21\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten1],\r\n \"22\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten2],\r\n \"23\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten3],\r\n \"24\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten4],\r\n \"25\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten5],\r\n \"26\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten6],\r\n \"27\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten7],\r\n \"28\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten8],\r\n \"29\": [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten9],\r\n \"30\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten0],\r\n \"31\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten1],\r\n \"32\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten2],\r\n \"33\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten3],\r\n \"34\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten4],\r\n \"35\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten5],\r\n \"36\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten6],\r\n \"37\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten7],\r\n \"38\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten8],\r\n \"39\": [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten9],\r\n \"40\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten0],\r\n \"41\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten1],\r\n \"42\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten2],\r\n \"43\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten3],\r\n \"44\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten4],\r\n \"45\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten5],\r\n \"46\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten6],\r\n \"47\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten7],\r\n \"48\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten8],\r\n \"49\": [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten9],\r\n \"50\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten0],\r\n \"51\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten1],\r\n \"52\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten2],\r\n \"53\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten3],\r\n \"54\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten4],\r\n \"55\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten5],\r\n \"56\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten6],\r\n \"57\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten7],\r\n \"58\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten8],\r\n \"59\": [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten9]\r\n };\r\n return UhrRendererV2Delegate;\r\n}());\r\n/**\r\n * Hilfsklasse zum Rendern der Uhr.\r\n * @param layout Layout-Objekt, das gerendert werden soll.\r\n * @param renderarea Das jQuery-gewrappte HTML-Element, auf dem gerendert werden soll.\r\n */\r\nvar UhrRenderer = /** @class */ (function () {\r\n function UhrRenderer(layout, renderarea /*FIXME any: jQuery-wrapped HTML element*/) {\r\n this.layout = layout;\r\n this.renderarea = renderarea;\r\n }\r\n UhrRenderer.prototype.render = function (beforeshow) {\r\n var _this = this;\r\n if (this.layout.parsed === undefined) {\r\n if (this.layout.version === 2) {\r\n var delegate = new UhrRendererV2Delegate(this.layout);\r\n var parsedLayout = delegate.parse();\r\n console.log(\"renderer.ts\", \"got parsed layout\", parsedLayout);\r\n Object.defineProperty(this.layout, \"parsed\", {\r\n \"value\": parsedLayout,\r\n \"writable\": false,\r\n \"configurable\": false\r\n });\r\n }\r\n else {\r\n console.warn(\"Unknown layout version: '\" + this.layout.version + \"', expecting '2'\");\r\n return;\r\n }\r\n }\r\n var letters = this.layout.parsed;\r\n this.renderarea.fadeOut('fast', function () {\r\n _this.renderarea.empty();\r\n letters.forEach(function (line, index, array) {\r\n line.forEach(function (letter) { return _this.renderarea.append(letter.toString()); });\r\n if (index < array.length - 1) {\r\n _this.renderarea.append('
');\r\n }\r\n });\r\n if (typeof beforeshow === 'function') {\r\n beforeshow();\r\n }\r\n _this.renderarea.fadeIn('fast');\r\n });\r\n };\r\n ;\r\n return UhrRenderer;\r\n}());\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVuZGVyZXIudHMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvcmVuZGVyZXIudHM/NWUwZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG5cbiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG4gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQge0xheW91dCwgVGltZURlZmluaXRpb24sIFdvcmREZWZpbml0aW9ufSBmcm9tIFwiLi9kb21haW4vbGF5b3V0XCI7XG5pbXBvcnQge0xldHRlcn0gZnJvbSBcIi4vZG9tYWluL2xldHRlclwiO1xuXG5jbGFzcyBVaHJSZW5kZXJlclYyRGVsZWdhdGUge1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHZvcm5lMDogV29yZERlZmluaXRpb24gPSB7XG4gICAgICAgIDM6IFsyLCAzLCA0XSxcbiAgICAgICAgNDogWzEsIDVdLFxuICAgICAgICA1OiBbMSwgNCwgNV0sXG4gICAgICAgIDY6IFsxLCAzLCA1XSxcbiAgICAgICAgNzogWzEsIDIsIDVdLFxuICAgICAgICA4OiBbMSwgNV0sXG4gICAgICAgIDk6IFsyLCAzLCA0XVxuICAgIH07XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgaGludGVuMDogV29yZERlZmluaXRpb24gPSB7XG4gICAgICAgIDM6IFs4LCA5LCAxMF0sXG4gICAgICAgIDQ6IFs3LCAxMV0sXG4gICAgICAgIDU6IFs3LCAxMCwgMTFdLFxuICAgICAgICA2OiBbNywgOSwgMTFdLFxuICAgICAgICA3OiBbNywgOCwgMTFdLFxuICAgICAgICA4OiBbNywgMTFdLFxuICAgICAgICA5OiBbOCwgOSwgMTBdXG4gICAgfTtcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSB2b3JuZTE6IFdvcmREZWZpbml0aW9uID0ge1xuICAgICAgICAzOiBbM10sXG4gICAgICAgIDQ6IFsyLCAzXSxcbiAgICAgICAgNTogWzNdLFxuICAgICAgICA2OiBbM10sXG4gICAgICAgIDc6IFszXSxcbiAgICAgICAgODogWzNdLFxuICAgICAgICA5OiBbMiwgMywgNF1cbiAgICB9O1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGhpbnRlbjE6IFdvcmREZWZpbml0aW9uID0ge1xuICAgICAgICAzOiBbOV0sXG4gICAgICAgIDQ6IFs4LCA5XSxcbiAgICAgICAgNTogWzldLFxuICAgICAgICA2OiBbOV0sXG4gICAgICAgIDc6IFs5XSxcbiAgICAgICAgODogWzldLFxuICAgICAgICA5OiBbOCwgOSwgMTBdXG4gICAgfTtcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSB2b3JuZTI6IFdvcmREZWZpbml0aW9uID0ge1xuICAgICAgICAzOiBbMiwgMywgNF0sXG4gICAgICAgIDQ6IFsxLCA1XSxcbiAgICAgICAgNTogWzVdLFxuICAgICAgICA2OiBbNF0sXG4gICAgICAgIDc6IFszXSxcbiAgICAgICAgODogWzJdLFxuICAgICAgICA5OiBbMSwgMiwgMywgNCwgNV1cbiAgICB9O1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGhpbnRlbjI6IFdvcmREZWZpbml0aW9uID0ge1xuICAgICAgICAzOiBbOCwgOSwgMTBdLFxuICAgICAgICA0OiBbNywgMTFdLFxuICAgICAgICA1OiBbMTFdLFxuICAgICAgICA2OiBbMTBdLFxuICAgICAgICA3OiBbOV0sXG4gICAgICAgIDg6IFs4XSxcbiAgICAgICAgOTogWzcsIDgsIDksIDEwLCAxMV1cbiAgICB9O1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHZvcm5lMzogV29yZERlZmluaXRpb24gPSB7XG4gICAgICAgIDM6IFsxLCAyLCAzLCA0LCA1XSxcbiAgICAgICAgNDogWzRdLFxuICAgICAgICA1OiBbM10sXG4gICAgICAgIDY6IFs0XSxcbiAgICAgICAgNzogWzVdLFxuICAgICAgICA4OiBbMSwgNV0sXG4gICAgICAgIDk6IFsyLCAzLCA0XVxuICAgIH07XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgaGludGVuMzogV29yZERlZmluaXRpb24gPSB7XG4gICAgICAgIDM6IFs3LCA4LCA5LCAxMCwgMTFdLFxuICAgICAgICA0OiBbMTBdLFxuICAgICAgICA1OiBbOV0sXG4gICAgICAgIDY6IFsxMF0sXG4gICAgICAgIDc6IFsxMV0sXG4gICAgICAgIDg6IFs3LCAxMV0sXG4gICAgICAgIDk6IFs4LCA5LCAxMF1cbiAgICB9O1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHZvcm5lNDogV29yZERlZmluaXRpb24gPSB7XG4gICAgICAgIDM6IFs0XSxcbiAgICAgICAgNDogWzMsIDRdLFxuICAgICAgICA1OiBbMiwgNF0sXG4gICAgICAgIDY6IFsxLCA0XSxcbiAgICAgICAgNzogWzEsIDIsIDMsIDQsIDVdLFxuICAgICAgICA4OiBbNF0sXG4gICAgICAgIDk6IFs0XVxuICAgIH07XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgaGludGVuNDogV29yZERlZmluaXRpb24gPSB7XG4gICAgICAgIDM6IFsxMF0sXG4gICAgICAgIDQ6IFs5LCAxMF0sXG4gICAgICAgIDU6IFs4LCAxMF0sXG4gICAgICAgIDY6IFs3LCAxMF0sXG4gICAgICAgIDc6IFs3LCA4LCA5LCAxMCwgMTFdLFxuICAgICAgICA4OiBbMTBdLFxuICAgICAgICA5OiBbMTBdXG4gICAgfTtcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSB2b3JuZTU6IFdvcmREZWZpbml0aW9uID0ge1xuICAgICAgICAzOiBbMSwgMiwgMywgNCwgNV0sXG4gICAgICAgIDQ6IFsxXSxcbiAgICAgICAgNTogWzEsIDIsIDMsIDRdLFxuICAgICAgICA2OiBbNV0sXG4gICAgICAgIDc6IFs1XSxcbiAgICAgICAgODogWzEsIDVdLFxuICAgICAgICA5OiBbMiwgMywgNF1cbiAgICB9O1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGhpbnRlbjU6IFdvcmREZWZpbml0aW9uID0ge1xuICAgICAgICAzOiBbNywgOCwgOSwgMTAsIDExXSxcbiAgICAgICAgNDogWzddLFxuICAgICAgICA1OiBbNywgOCwgOSwgMTBdLFxuICAgICAgICA2OiBbMTFdLFxuICAgICAgICA3OiBbMTFdLFxuICAgICAgICA4OiBbNywgMTFdLFxuICAgICAgICA5OiBbOCwgOSwgMTBdXG4gICAgfTtcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBoaW50ZW42OiBXb3JkRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgMzogWzksIDEwXSxcbiAgICAgICAgNDogWzhdLFxuICAgICAgICA1OiBbN10sXG4gICAgICAgIDY6IFs3LCA4LCA5LCAxMF0sXG4gICAgICAgIDc6IFs3LCAxMV0sXG4gICAgICAgIDg6IFs3LCAxMV0sXG4gICAgICAgIDk6IFs4LCA5LCAxMF1cbiAgICB9O1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGhpbnRlbjc6IFdvcmREZWZpbml0aW9uID0ge1xuICAgICAgICAzOiBbNywgOCwgOSwgMTAsIDExXSxcbiAgICAgICAgNDogWzExXSxcbiAgICAgICAgNTogWzEwXSxcbiAgICAgICAgNjogWzldLFxuICAgICAgICA3OiBbOF0sXG4gICAgICAgIDg6IFs4XSxcbiAgICAgICAgOTogWzhdXG4gICAgfTtcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBoaW50ZW44OiBXb3JkRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgMzogWzgsIDksIDEwXSxcbiAgICAgICAgNDogWzcsIDExXSxcbiAgICAgICAgNTogWzcsIDExXSxcbiAgICAgICAgNjogWzgsIDksIDEwXSxcbiAgICAgICAgNzogWzcsIDExXSxcbiAgICAgICAgODogWzcsIDExXSxcbiAgICAgICAgOTogWzgsIDksIDEwXVxuICAgIH07XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgaGludGVuOTogV29yZERlZmluaXRpb24gPSB7XG4gICAgICAgIDM6IFs4LCA5LCAxMF0sXG4gICAgICAgIDQ6IFs3LCAxMV0sXG4gICAgICAgIDU6IFs3LCAxMV0sXG4gICAgICAgIDY6IFs4LCA5LCAxMCwgMTFdLFxuICAgICAgICA3OiBbMTFdLFxuICAgICAgICA4OiBbMTBdLFxuICAgICAgICA5OiBbOCwgOV1cbiAgICB9O1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHNlY29uZHM6IFRpbWVEZWZpbml0aW9uID0ge1xuICAgICAgICBcIjBcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTAsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW4wXSxcbiAgICAgICAgXCIxXCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUwLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuMV0sXG4gICAgICAgIFwiMlwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMCwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjJdLFxuICAgICAgICBcIjNcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTAsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW4zXSxcbiAgICAgICAgXCI0XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUwLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuNF0sXG4gICAgICAgIFwiNVwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMCwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjVdLFxuICAgICAgICBcIjZcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTAsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW42XSxcbiAgICAgICAgXCI3XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUwLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuN10sXG4gICAgICAgIFwiOFwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMCwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjhdLFxuICAgICAgICBcIjlcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTAsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW45XSxcbiAgICAgICAgXCIxMFwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMSwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjBdLFxuICAgICAgICBcIjExXCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUxLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuMV0sXG4gICAgICAgIFwiMTJcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTEsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW4yXSxcbiAgICAgICAgXCIxM1wiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMSwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjNdLFxuICAgICAgICBcIjE0XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUxLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuNF0sXG4gICAgICAgIFwiMTVcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTEsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW41XSxcbiAgICAgICAgXCIxNlwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMSwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjZdLFxuICAgICAgICBcIjE3XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUxLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuN10sXG4gICAgICAgIFwiMThcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTEsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW44XSxcbiAgICAgICAgXCIxOVwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMSwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjldLFxuICAgICAgICBcIjIwXCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUyLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuMF0sXG4gICAgICAgIFwiMjFcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTIsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW4xXSxcbiAgICAgICAgXCIyMlwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMiwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjJdLFxuICAgICAgICBcIjIzXCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUyLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuM10sXG4gICAgICAgIFwiMjRcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTIsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW40XSxcbiAgICAgICAgXCIyNVwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMiwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjVdLFxuICAgICAgICBcIjI2XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUyLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuNl0sXG4gICAgICAgIFwiMjdcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTIsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW43XSxcbiAgICAgICAgXCIyOFwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMiwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjhdLFxuICAgICAgICBcIjI5XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUyLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuOV0sXG4gICAgICAgIFwiMzBcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTMsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW4wXSxcbiAgICAgICAgXCIzMVwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMywgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjFdLFxuICAgICAgICBcIjMyXCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUzLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuMl0sXG4gICAgICAgIFwiMzNcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTMsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW4zXSxcbiAgICAgICAgXCIzNFwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMywgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjRdLFxuICAgICAgICBcIjM1XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUzLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuNV0sXG4gICAgICAgIFwiMzZcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTMsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW42XSxcbiAgICAgICAgXCIzN1wiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lMywgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjddLFxuICAgICAgICBcIjM4XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmUzLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuOF0sXG4gICAgICAgIFwiMzlcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTMsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW45XSxcbiAgICAgICAgXCI0MFwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lNCwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjBdLFxuICAgICAgICBcIjQxXCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmU0LCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuMV0sXG4gICAgICAgIFwiNDJcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTQsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW4yXSxcbiAgICAgICAgXCI0M1wiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lNCwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjNdLFxuICAgICAgICBcIjQ0XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmU0LCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuNF0sXG4gICAgICAgIFwiNDVcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTQsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW41XSxcbiAgICAgICAgXCI0NlwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lNCwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjZdLFxuICAgICAgICBcIjQ3XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmU0LCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuN10sXG4gICAgICAgIFwiNDhcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTQsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW44XSxcbiAgICAgICAgXCI0OVwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lNCwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjldLFxuICAgICAgICBcIjUwXCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmU1LCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuMF0sXG4gICAgICAgIFwiNTFcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTUsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW4xXSxcbiAgICAgICAgXCI1MlwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lNSwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjJdLFxuICAgICAgICBcIjUzXCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmU1LCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuM10sXG4gICAgICAgIFwiNTRcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTUsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW40XSxcbiAgICAgICAgXCI1NVwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lNSwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjVdLFxuICAgICAgICBcIjU2XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmU1LCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuNl0sXG4gICAgICAgIFwiNTdcIjogW1VoclJlbmRlcmVyVjJEZWxlZ2F0ZS52b3JuZTUsIFVoclJlbmRlcmVyVjJEZWxlZ2F0ZS5oaW50ZW43XSxcbiAgICAgICAgXCI1OFwiOiBbVWhyUmVuZGVyZXJWMkRlbGVnYXRlLnZvcm5lNSwgVWhyUmVuZGVyZXJWMkRlbGVnYXRlLmhpbnRlbjhdLFxuICAgICAgICBcIjU5XCI6IFtVaHJSZW5kZXJlclYyRGVsZWdhdGUudm9ybmU1LCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuaGludGVuOV1cbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBsYXlvdXQ6IExheW91dCkge1xuICAgIH1cblxuICAgIHB1YmxpYyBwYXJzZSgpOiBMZXR0ZXJbXVtdIHtcbiAgICAgICAgY29uc3QgbGV0dGVyczogTGV0dGVyW11bXSA9IFtdO1xuICAgICAgICB0aGlzLmxheW91dC5sZXR0ZXJzLmZvckVhY2gobGluZVN0cmluZyA9PiB7XG4gICAgICAgICAgICBjb25zdCBsaW5lOiBMZXR0ZXJbXSA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgYyA9IDA7IGMgPCBsaW5lU3RyaW5nLmxlbmd0aDsgYysrKSB7XG4gICAgICAgICAgICAgICAgbGluZS5wdXNoKG5ldyBMZXR0ZXIobGluZVN0cmluZ1tjXSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0dGVycy5wdXNoKGxpbmUpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wYXJzZUFycmF5T3JPYmplY3QobGV0dGVycywgJ29uJywgdGhpcy5sYXlvdXQucGVybWFuZW50KTtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxheW91dC5zZWNvbmRzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmxheW91dC5zZWNvbmRzICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnBhcnNlVGltZURlZmluaXRpb24obGV0dGVycywgJ3NlY29uZCcsIHRoaXMubGF5b3V0LnNlY29uZHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wYXJzZVRpbWVEZWZpbml0aW9uKGxldHRlcnMsICdzZWNvbmQnLCBVaHJSZW5kZXJlclYyRGVsZWdhdGUuc2Vjb25kcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wYXJzZVRpbWVEZWZpbml0aW9uKGxldHRlcnMsICdtaW51dGUnLCB0aGlzLmxheW91dC5taW51dGVzKTtcbiAgICAgICAgdGhpcy5wYXJzZVRpbWVEZWZpbml0aW9uKGxldHRlcnMsICdob3VyJywgdGhpcy5sYXlvdXQuaG91cnMpO1xuICAgICAgICBjb25zb2xlLmxvZyhcInJlbmRlcmVyLnRzXCIsIFwicGFyc2VkIGxheW91dFwiLCB0aGlzLmxheW91dC5jb2RlLCB0aGlzLmxheW91dCwgbGV0dGVycyk7XG4gICAgICAgIHJldHVybiBsZXR0ZXJzO1xuICAgIH07XG5cbiAgICBwcml2YXRlIHBhcnNlT2JqZWN0KGxldHRlcnM6IExldHRlcltdW10sIHN0eWxlQ2xhc3M6IHN0cmluZywgb2JqZWN0OiBXb3JkRGVmaW5pdGlvbik6IHZvaWQge1xuICAgICAgICBpZiAodHlwZW9mIG9iamVjdCAhPT0gJ3VuZGVmaW5lZCcgJiYgb2JqZWN0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhvYmplY3QpXG4gICAgICAgICAgICAgICAgLm1hcChrZXkgPT4gTnVtYmVyKGtleSkpXG4gICAgICAgICAgICAgICAgLmZvckVhY2goXG4gICAgICAgICAgICAgICAgICAgIHkgPT4gb2JqZWN0W3ldLmZvckVhY2goXG4gICAgICAgICAgICAgICAgICAgICAgICB4ID0+IGxldHRlcnNbeSAtIDFdW3ggLSAxXS5hZGRTdHlsZShzdHlsZUNsYXNzKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcGFyc2VBcnJheU9yT2JqZWN0KGxldHRlcnM6IExldHRlcltdW10sIHN0eWxlQ2xhc3M6IHN0cmluZywgaW5wdXQ6IFdvcmREZWZpbml0aW9uIHwgV29yZERlZmluaXRpb25bXSk6IHZvaWQge1xuICAgICAgICBpZiAodHlwZW9mIGlucHV0ICE9PSAndW5kZWZpbmVkJyAmJiBpbnB1dCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQuZm9yRWFjaChpdGVtID0+IHRoaXMucGFyc2VPYmplY3QobGV0dGVycywgc3R5bGVDbGFzcywgaXRlbSkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnNlT2JqZWN0KGxldHRlcnMsIHN0eWxlQ2xhc3MsIGlucHV0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcGFyc2VUaW1lRGVmaW5pdGlvbihsZXR0ZXJzOiBMZXR0ZXJbXVtdLCBzdHlsZUNsYXNzOiBzdHJpbmcsIGRlZmluaXRpb246IFRpbWVEZWZpbml0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgZGVmaW5pdGlvbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoZGVmaW5pdGlvbikuZm9yRWFjaChsaXN0U3RyaW5nID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aW1lVmFsdWVzOiBzdHJpbmdbXSA9IGxpc3RTdHJpbmcuc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgICBjb25zdCBoaWdobGlnaHRMZXR0ZXJzOiBXb3JkRGVmaW5pdGlvbiB8IFdvcmREZWZpbml0aW9uW10gPSBkZWZpbml0aW9uW2xpc3RTdHJpbmddO1xuICAgICAgICAgICAgICAgIHRpbWVWYWx1ZXMuZm9yRWFjaCh0aW1lVmFsdWUgPT4gdGhpcy5wYXJzZUFycmF5T3JPYmplY3QobGV0dGVycywgc3R5bGVDbGFzcyArIHRpbWVWYWx1ZSwgaGlnaGxpZ2h0TGV0dGVycykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogSGlsZnNrbGFzc2UgenVtIFJlbmRlcm4gZGVyIFVoci5cbiAqIEBwYXJhbSBsYXlvdXQgICAgIExheW91dC1PYmpla3QsIGRhcyBnZXJlbmRlcnQgd2VyZGVuIHNvbGwuXG4gKiBAcGFyYW0gcmVuZGVyYXJlYSBEYXMgalF1ZXJ5LWdld3JhcHB0ZSBIVE1MLUVsZW1lbnQsIGF1ZiBkZW0gZ2VyZW5kZXJ0IHdlcmRlbiBzb2xsLlxuICovXG5leHBvcnQgY2xhc3MgVWhyUmVuZGVyZXIge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbGF5b3V0OiBMYXlvdXQsIHByaXZhdGUgcmVuZGVyYXJlYTogYW55LypGSVhNRSBhbnk6IGpRdWVyeS13cmFwcGVkIEhUTUwgZWxlbWVudCovKSB7XG4gICAgfVxuXG4gICAgcmVuZGVyKGJlZm9yZXNob3c/OiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmxheW91dC5wYXJzZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMubGF5b3V0LnZlcnNpb24gPT09IDIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWxlZ2F0ZTogVWhyUmVuZGVyZXJWMkRlbGVnYXRlID0gbmV3IFVoclJlbmRlcmVyVjJEZWxlZ2F0ZSh0aGlzLmxheW91dCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyc2VkTGF5b3V0OiBMZXR0ZXJbXVtdID0gZGVsZWdhdGUucGFyc2UoKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInJlbmRlcmVyLnRzXCIsIFwiZ290IHBhcnNlZCBsYXlvdXRcIiwgcGFyc2VkTGF5b3V0KTtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5sYXlvdXQsIFwicGFyc2VkXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiBwYXJzZWRMYXlvdXQsXG4gICAgICAgICAgICAgICAgICAgIFwid3JpdGFibGVcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwiY29uZmlndXJhYmxlXCI6IGZhbHNlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVW5rbm93biBsYXlvdXQgdmVyc2lvbjogJyR7dGhpcy5sYXlvdXQudmVyc2lvbn0nLCBleHBlY3RpbmcgJzInYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxldHRlcnM6IExldHRlcltdW10gPSB0aGlzLmxheW91dC5wYXJzZWQ7XG4gICAgICAgIHRoaXMucmVuZGVyYXJlYS5mYWRlT3V0KCdmYXN0JywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJhcmVhLmVtcHR5KCk7XG4gICAgICAgICAgICBsZXR0ZXJzLmZvckVhY2goKGxpbmUsIGluZGV4LCBhcnJheSkgPT4ge1xuICAgICAgICAgICAgICAgIGxpbmUuZm9yRWFjaChsZXR0ZXIgPT4gdGhpcy5yZW5kZXJhcmVhLmFwcGVuZChsZXR0ZXIudG9TdHJpbmcoKSkpO1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCA8IGFycmF5Lmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJhcmVhLmFwcGVuZCgnPGJyLz4nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgYmVmb3Jlc2hvdyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGJlZm9yZXNob3coKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucmVuZGVyYXJlYS5mYWRlSW4oJ2Zhc3QnKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7QUFhQTtBQUdBO0FBRUE7QUFnTkE7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUVBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXJRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBeURBO0FBQUE7QUFFQTs7OztBQUlBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTs7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/renderer.ts\n");
/***/ }),
@@ -189,18 +212,19 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Uhr\", function() { return Uhr; });\n/* harmony import */ var _domain_globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./domain/globals */ \"./src/domain/globals.ts\");\n/* harmony import */ var _renderer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./renderer */ \"./src/renderer.ts\");\n/* harmony import */ var _domain_layout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./domain/layout */ \"./src/domain/layout.ts\");\n/*\r\n This program is free software: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see .\r\n */\r\n\r\n\r\n\r\nvar Uhr = /** @class */ (function () {\r\n function Uhr(widgetInstance) {\r\n this.widgetInstance = widgetInstance;\r\n this.timer = null;\r\n this.currentMinute = null;\r\n var userTime = this.widgetInstance.options.time;\r\n if (this.widgetInstance.options.time === undefined) {\r\n this.widgetInstance.options.time = new Date();\r\n }\r\n this.parseHash();\r\n this.setupHTML();\r\n this.wireFunctionality();\r\n if (userTime !== undefined) {\r\n this.setTime(userTime);\r\n }\r\n }\r\n Uhr.prototype.destroy = function () {\r\n if (!!this.timer) {\r\n window.clearInterval(this.timer);\r\n this.timer = null;\r\n }\r\n this.widgetInstance.element\r\n .removeAttr('style')\r\n .removeAttr('class')\r\n .empty();\r\n $(\"#uhr-configlink\" + this.widgetInstance.uuid).remove();\r\n $(\"#uhr-controlpanel\" + this.widgetInstance.uuid).remove();\r\n };\r\n Uhr.prototype.start = function () {\r\n var _this = this;\r\n if (!this.isOn()) {\r\n this.timer = window.setInterval(function () {\r\n _this.widgetInstance.options.time = new Date();\r\n _this.update();\r\n }, 1000);\r\n this.update();\r\n this.setCookie('uhr-status', 'on');\r\n }\r\n };\r\n Uhr.prototype.stop = function () {\r\n if (this.isOn()) {\r\n window.clearInterval(this.timer);\r\n this.timer = null;\r\n this.update();\r\n this.setCookie('uhr-status', 'off');\r\n }\r\n };\r\n Uhr.prototype.toggle = function () {\r\n if (this.isOn()) {\r\n this.stop();\r\n }\r\n else {\r\n this.start();\r\n }\r\n };\r\n Uhr.prototype.setLanguage = function (key) {\r\n var _this = this;\r\n if (key !== this.widgetInstance.options.language) {\r\n this.widgetInstance.options.language = key;\r\n var renderer = new _renderer__WEBPACK_IMPORTED_MODULE_1__[\"UhrRenderer\"](this.getCurrentLayout(), this.widgetInstance.element.find('.letterarea'));\r\n renderer.render(function () {\r\n _this.currentMinute = -1;\r\n _this.update();\r\n });\r\n this.setCookie('uhr-language', key);\r\n this.update();\r\n }\r\n };\r\n Uhr.prototype.setTheme = function (styleClass) {\r\n if (styleClass !== this.widgetInstance.options.theme) {\r\n this.widgetInstance.element.removeClass(this.widgetInstance.options.theme).addClass(styleClass);\r\n $(\"#uhr-onoffswitch\" + this.widgetInstance.uuid).removeClass(this.widgetInstance.options.theme).addClass(styleClass);\r\n this.widgetInstance.options.theme = styleClass;\r\n this.setCookie('uhr-theme', styleClass);\r\n }\r\n };\r\n Uhr.prototype.setTime = function (time) {\r\n this.currentMinute = null;\r\n if (time === null) {\r\n this.widgetInstance.options.time = new Date();\r\n }\r\n else {\r\n if (this.timer !== null) {\r\n window.clearInterval(this.timer);\r\n }\r\n this.widgetInstance.options.time = time;\r\n }\r\n this.update();\r\n };\r\n Uhr.prototype.setMode = function (mode) {\r\n this.widgetInstance.options.mode = mode;\r\n this.currentMinute = null;\r\n this.update();\r\n this.setCookie('uhr-mode', mode);\r\n };\r\n Uhr.prototype.setWidth = function (width) {\r\n var e = this.widgetInstance.element;\r\n e.css('width', width);\r\n var realWidth = e.width();\r\n e.width(realWidth);\r\n e.height(realWidth);\r\n e.css('font-size', (realWidth / 40) + 'px');\r\n };\r\n Uhr.prototype.setupHTML = function () {\r\n var e = this.widgetInstance.element;\r\n // Base clock area\r\n e.addClass('uhr')\r\n .empty()\r\n .append('')\r\n .append('')\r\n .append('')\r\n .append('')\r\n .append('
')\r\n .append('');\r\n this.setWidth(this.widgetInstance.options.width);\r\n if (this.widgetInstance.options.controls) {\r\n var controlpanel = $(\"\");\r\n var content = $('');\r\n controlpanel.append(content);\r\n // on/off switch\r\n var toggleSwitch = $(\"\");\r\n toggleSwitch.append(\"\");\r\n toggleSwitch.append(\"\");\r\n content.append(toggleSwitch);\r\n // time mode switch\r\n var modeSwitch = $(\"\");\r\n modeSwitch.append(\"\");\r\n modeSwitch.append(\"\");\r\n content.append(modeSwitch);\r\n // language chooser\r\n if (_domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].hasMultipleLayouts()) {\r\n var languageChooser_1 = $(\"\");\r\n _domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].getLayouts().forEach(function (layout) {\r\n languageChooser_1.append(\"\");\r\n });\r\n content.append(languageChooser_1);\r\n }\r\n // theme chooser\r\n if (_domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].hasMultipleThemes()) {\r\n var themeChooser_1 = $(\"\");\r\n _domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].getThemes().forEach(function (theme) {\r\n themeChooser_1.append(\"\");\r\n });\r\n content.append(themeChooser_1);\r\n }\r\n var closebutton = $(\"\");\r\n //FIXME deprecated?!\r\n closebutton.on('click', function () {\r\n $(\"#uhr-controlpanel\" + this.uuid).hide('fast');\r\n }.bind(this.widgetInstance));\r\n content.append(closebutton);\r\n e.after(controlpanel);\r\n controlpanel.hide();\r\n var configlink = $(\"\");\r\n // FIXME deprecated!?\r\n configlink.on('click', function () {\r\n this.toggleConfigScreen();\r\n }.bind(this));\r\n e.after(configlink);\r\n }\r\n };\r\n ;\r\n Uhr.prototype.wireFunctionality = function () {\r\n var _this = this;\r\n // on/off switch\r\n var toggleSwitch = $(\"#uhr-onoffswitch-checkbox\" + this.widgetInstance.uuid);\r\n // FIXME deprecated!?\r\n toggleSwitch.on('click', function () { return _this.toggle(); });\r\n var status = this.getCookie('uhr-status');\r\n if (status === undefined || this.widgetInstance.options.force) {\r\n status = this.widgetInstance.options.status;\r\n }\r\n toggleSwitch.prop('checked', status === 'on');\r\n if (status === 'on') {\r\n this.start();\r\n }\r\n else {\r\n this.stop();\r\n }\r\n // time mode switch\r\n var modeSwitch = $(\"#uhr-modeswitch-checkbox\" + this.widgetInstance.uuid);\r\n // FIXME deprecated!?\r\n modeSwitch.on('click', function () {\r\n if (_this.widgetInstance.options.mode === 'seconds') {\r\n _this.setMode('normal');\r\n }\r\n else {\r\n _this.setMode('seconds');\r\n }\r\n });\r\n var mode = this.getCookie('uhr-mode');\r\n if (mode === undefined || this.widgetInstance.options.force) {\r\n mode = this.widgetInstance.options.mode;\r\n }\r\n modeSwitch.prop('checked', mode !== 'seconds');\r\n if (mode === 'seconds') {\r\n this.setMode('seconds');\r\n }\r\n else {\r\n this.setMode('normal');\r\n }\r\n // language chooser\r\n var languageChooser = $(\"#uhr-languagechooser\" + this.widgetInstance.uuid);\r\n // FIXME deprecated!?\r\n languageChooser.on('change', function () {\r\n var languageKey = $(\"#uhr-languagechooser\" + _this.widgetInstance.uuid).val();\r\n _this.setLanguage(languageKey);\r\n });\r\n var selectedLayout = this.getCookie('uhr-language');\r\n if (selectedLayout === undefined || this.widgetInstance.options.force) {\r\n selectedLayout = this.widgetInstance.options.language;\r\n }\r\n var found = _domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].getLayouts().some(function (item) { return selectedLayout === item.code; });\r\n if (!found) {\r\n var fallbackLanguage = void 0;\r\n if (_domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].hasLayouts()) {\r\n fallbackLanguage = _domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].getFirstLayout().code;\r\n }\r\n else {\r\n fallbackLanguage = '';\r\n }\r\n console.warn(\"Language '\" + selectedLayout + \"' not found! Using fallback '\" + fallbackLanguage + \"'.\");\r\n selectedLayout = fallbackLanguage;\r\n }\r\n languageChooser.val(selectedLayout);\r\n this.widgetInstance.options.language = \"\";\r\n this.setLanguage(selectedLayout);\r\n // theme chooser\r\n var themeChooser = $(\"#uhr-themechooser\" + this.widgetInstance.uuid);\r\n // FIXME deprecated!?\r\n themeChooser.on('change', function () {\r\n var themeKey = $(\"#uhr-themechooser\" + _this.widgetInstance.uuid).val();\r\n _this.setTheme(themeKey);\r\n });\r\n var selectedTheme = this.getCookie('uhr-theme');\r\n if (selectedTheme === undefined || this.widgetInstance.options.force) {\r\n selectedTheme = this.widgetInstance.options.theme;\r\n }\r\n found = _domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].getThemes().some(function (item) { return selectedTheme === item.styleClass; });\r\n if (!found) {\r\n var fallbackTheme = _domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].getFirstTheme().styleClass;\r\n console.warn(\"Theme '\" + selectedTheme + \"' not found! Using fallback '\" + fallbackTheme + \"'.\");\r\n selectedTheme = fallbackTheme;\r\n }\r\n themeChooser.val(selectedTheme);\r\n this.widgetInstance.options.theme = \"\";\r\n this.setTheme(selectedTheme);\r\n if (this.widgetInstance.options.autoresize) {\r\n // FIXME deprecated!?\r\n $(window).on('resize', function () {\r\n var $e = _this.widgetInstance.element;\r\n var $parent = $e.parent();\r\n var $window = $(window);\r\n var parentWidth = $parent.width();\r\n var parentHeight = $parent.height();\r\n var windowWidth = $window.width();\r\n var windowHeight = $window.height();\r\n var size = Math.min(parentWidth, parentHeight, windowWidth, windowHeight) + \"px\";\r\n _this.setWidth(size);\r\n });\r\n }\r\n };\r\n Uhr.prototype.isOn = function () {\r\n return this.timer !== null;\r\n };\r\n Uhr.prototype.getCookie = function (cookieName) {\r\n return $.cookie(cookieName + this.widgetInstance.uuid);\r\n };\r\n Uhr.prototype.setCookie = function (cookieName, cookieValue) {\r\n var options;\r\n if (this.widgetInstance.options.cookiePath !== undefined) {\r\n options = { expires: 365, path: this.widgetInstance.options.cookiePath };\r\n }\r\n else {\r\n options = { expires: 365 };\r\n }\r\n $.cookie(cookieName + this.widgetInstance.uuid, cookieValue, options);\r\n };\r\n Uhr.prototype.update = function () {\r\n if (this.isOn()) {\r\n var time = this.widgetInstance.options.time;\r\n if (!this.getCurrentLayout().hasOwnProperty('seconds') && this.widgetInstance.options.mode !== 'seconds') {\r\n if (time.getMinutes() === this.currentMinute) {\r\n return;\r\n }\r\n this.currentMinute = time.getMinutes();\r\n }\r\n this.show(time);\r\n }\r\n else {\r\n this.clear();\r\n this.currentMinute = -1;\r\n }\r\n };\r\n Uhr.prototype.show = function (time) {\r\n var second = this.getSecond(time);\r\n var dotMinute = this.getDotMinute(time);\r\n var hour = this.getHour(time);\r\n var coarseMinute = this.getCoarseMinute(time);\r\n this.clear();\r\n if (this.widgetInstance.options.mode === 'seconds') {\r\n this.highlight(\"second\" + second);\r\n }\r\n else {\r\n this.highlight('on');\r\n for (var i = 1; i <= dotMinute; i++) {\r\n this.highlight(\"dot\" + i);\r\n }\r\n this.highlight(\"minute\" + coarseMinute);\r\n this.highlight(\"hour\" + hour);\r\n }\r\n };\r\n Uhr.prototype.clear = function () {\r\n this.widgetInstance.element.find('.item').removeClass('active');\r\n };\r\n Uhr.prototype.highlight = function (itemClass) {\r\n this.widgetInstance.element.find(\".item.\" + itemClass).addClass('active');\r\n };\r\n Uhr.prototype.getSecond = function (time) {\r\n if (typeof this.getCurrentLayout().getSeconds === 'function') {\r\n return this.getCurrentLayout().getSeconds(time);\r\n }\r\n return time.getSeconds();\r\n };\r\n ;\r\n Uhr.prototype.getDotMinute = function (date) {\r\n if (typeof this.getCurrentLayout().getDotMinute === 'function') {\r\n return this.getCurrentLayout().getDotMinute(date);\r\n }\r\n return date.getMinutes() % 5;\r\n };\r\n ;\r\n Uhr.prototype.getCoarseMinute = function (date) {\r\n if (typeof this.getCurrentLayout().getCoarseMinute === 'function') {\r\n return this.getCurrentLayout().getCoarseMinute(date);\r\n }\r\n return date.getMinutes();\r\n };\r\n ;\r\n Uhr.prototype.getHour = function (date) {\r\n if (typeof this.getCurrentLayout().getHour === 'function') {\r\n return this.getCurrentLayout().getHour(date);\r\n }\r\n var hour = date.getHours();\r\n if (date.getMinutes() >= 25) {\r\n return (hour + 1) % 24;\r\n }\r\n return hour;\r\n };\r\n ;\r\n Uhr.prototype.parseHash = function () {\r\n var _this = this;\r\n var hash = window.location.hash;\r\n if (hash !== undefined && hash.charAt(0) === '#') {\r\n hash = hash.substring(1);\r\n hash = decodeURIComponent(hash);\r\n var params = hash.split('&');\r\n params.forEach(function (element) {\r\n var pair = element.split('=');\r\n var key = pair[0];\r\n var value = pair[1];\r\n switch (key) {\r\n case 'l':\r\n case 'language':\r\n _this.widgetInstance.options.language = value;\r\n _this.widgetInstance.options.force = true;\r\n break;\r\n case 't':\r\n case 'theme':\r\n _this.widgetInstance.options.theme = value;\r\n _this.widgetInstance.options.force = true;\r\n break;\r\n case 'm':\r\n case 'mode':\r\n _this.widgetInstance.options.mode = value;\r\n _this.widgetInstance.options.force = true;\r\n break;\r\n case 's':\r\n case 'status':\r\n _this.widgetInstance.options.status = value;\r\n _this.widgetInstance.options.force = true;\r\n break;\r\n }\r\n });\r\n }\r\n };\r\n Uhr.prototype.getCurrentLayout = function () {\r\n var _this = this;\r\n var matchingLanguages = _domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].getLayouts().filter(function (element) { return element.code === _this.widgetInstance.options.language; }, this);\r\n if (matchingLanguages.length > 0) {\r\n return matchingLanguages[0];\r\n }\r\n // fallback: return empty object\r\n return _domain_layout__WEBPACK_IMPORTED_MODULE_2__[\"EMPTY_LAYOUT\"];\r\n };\r\n ;\r\n return Uhr;\r\n}());\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdWhyLnRzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL3Voci50cz9iOTVjIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cblxuIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG5cbiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7V2lkZ2V0UHJvdG90eXBlfSBmcm9tIFwiLi93aWRnZXQvd2lkZ2V0LXByb3RvdHlwZVwiO1xuaW1wb3J0IHtHbG9iYWxzfSBmcm9tIFwiLi9kb21haW4vZ2xvYmFsc1wiO1xuaW1wb3J0IHtVaHJSZW5kZXJlcn0gZnJvbSBcIi4vcmVuZGVyZXJcIjtcbmltcG9ydCB7RU1QVFlfTEFZT1VULCBMYXlvdXR9IGZyb20gXCIuL2RvbWFpbi9sYXlvdXRcIjtcblxuZXhwb3J0IGNsYXNzIFVociB7XG5cbiAgICBwcml2YXRlIHRpbWVyOiBudW1iZXIgPSBudWxsO1xuICAgIHByaXZhdGUgY3VycmVudE1pbnV0ZTogbnVtYmVyID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgd2lkZ2V0SW5zdGFuY2U6IFdpZGdldFByb3RvdHlwZSkge1xuICAgICAgICBjb25zdCB1c2VyVGltZSA9IHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy50aW1lO1xuICAgICAgICBpZiAodGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLnRpbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLnRpbWUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFyc2VIYXNoKCk7XG4gICAgICAgIHRoaXMuc2V0dXBIVE1MKCk7XG4gICAgICAgIHRoaXMud2lyZUZ1bmN0aW9uYWxpdHkoKTtcbiAgICAgICAgaWYgKHVzZXJUaW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VGltZSh1c2VyVGltZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAoISF0aGlzLnRpbWVyKSB7XG4gICAgICAgICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTtcbiAgICAgICAgICAgIHRoaXMudGltZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2UuZWxlbWVudFxuICAgICAgICAgICAgLnJlbW92ZUF0dHIoJ3N0eWxlJylcbiAgICAgICAgICAgIC5yZW1vdmVBdHRyKCdjbGFzcycpXG4gICAgICAgICAgICAuZW1wdHkoKTtcbiAgICAgICAgJChgI3Voci1jb25maWdsaW5rJHt0aGlzLndpZGdldEluc3RhbmNlLnV1aWR9YCkucmVtb3ZlKCk7XG4gICAgICAgICQoYCN1aHItY29udHJvbHBhbmVsJHt0aGlzLndpZGdldEluc3RhbmNlLnV1aWR9YCkucmVtb3ZlKCk7XG4gICAgfVxuXG4gICAgc3RhcnQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc09uKCkpIHtcbiAgICAgICAgICAgIHRoaXMudGltZXIgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy50aW1lID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5zZXRDb29raWUoJ3Voci1zdGF0dXMnLCAnb24nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0b3AoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzT24oKSkge1xuICAgICAgICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7XG4gICAgICAgICAgICB0aGlzLnRpbWVyID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgICAgICAgICB0aGlzLnNldENvb2tpZSgndWhyLXN0YXR1cycsICdvZmYnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPbigpKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3AoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldExhbmd1YWdlKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChrZXkgIT09IHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy5sYW5ndWFnZSkge1xuICAgICAgICAgICAgdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLmxhbmd1YWdlID0ga2V5O1xuICAgICAgICAgICAgY29uc3QgcmVuZGVyZXIgPSBuZXcgVWhyUmVuZGVyZXIodGhpcy5nZXRDdXJyZW50TGF5b3V0KCksIHRoaXMud2lkZ2V0SW5zdGFuY2UuZWxlbWVudC5maW5kKCcubGV0dGVyYXJlYScpKTtcbiAgICAgICAgICAgIHJlbmRlcmVyLnJlbmRlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TWludXRlID0gLTE7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZXRDb29raWUoJ3Voci1sYW5ndWFnZScsIGtleSk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0VGhlbWUoc3R5bGVDbGFzczogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChzdHlsZUNsYXNzICE9PSB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMudGhlbWUpIHtcbiAgICAgICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2UuZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMudGhlbWUpLmFkZENsYXNzKHN0eWxlQ2xhc3MpO1xuICAgICAgICAgICAgJChgI3Voci1vbm9mZnN3aXRjaCR7dGhpcy53aWRnZXRJbnN0YW5jZS51dWlkfWApLnJlbW92ZUNsYXNzKHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy50aGVtZSkuYWRkQ2xhc3Moc3R5bGVDbGFzcyk7XG4gICAgICAgICAgICB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMudGhlbWUgPSBzdHlsZUNsYXNzO1xuICAgICAgICAgICAgdGhpcy5zZXRDb29raWUoJ3Voci10aGVtZScsIHN0eWxlQ2xhc3MpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0VGltZSh0aW1lOiBEYXRlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudE1pbnV0ZSA9IG51bGw7XG4gICAgICAgIGlmICh0aW1lID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMudGltZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy50aW1lciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMudGltZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLnRpbWUgPSB0aW1lO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuXG4gICAgc2V0TW9kZShtb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLm1vZGUgPSBtb2RlO1xuICAgICAgICB0aGlzLmN1cnJlbnRNaW51dGUgPSBudWxsO1xuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgICAgICB0aGlzLnNldENvb2tpZSgndWhyLW1vZGUnLCBtb2RlKTtcbiAgICB9XG5cbiAgICBzZXRXaWR0aCh3aWR0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGUgPSB0aGlzLndpZGdldEluc3RhbmNlLmVsZW1lbnQ7XG4gICAgICAgIGUuY3NzKCd3aWR0aCcsIHdpZHRoKTtcbiAgICAgICAgY29uc3QgcmVhbFdpZHRoID0gZS53aWR0aCgpO1xuICAgICAgICBlLndpZHRoKHJlYWxXaWR0aCk7XG4gICAgICAgIGUuaGVpZ2h0KHJlYWxXaWR0aCk7XG4gICAgICAgIGUuY3NzKCdmb250LXNpemUnLCAocmVhbFdpZHRoIC8gNDApICsgJ3B4Jyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXR1cEhUTUwoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGU6IEpRdWVyeTxIVE1MRWxlbWVudD4gPSB0aGlzLndpZGdldEluc3RhbmNlLmVsZW1lbnQ7XG4gICAgICAgIC8vIEJhc2UgY2xvY2sgYXJlYVxuICAgICAgICBlLmFkZENsYXNzKCd1aHInKVxuICAgICAgICAgICAgLmVtcHR5KClcbiAgICAgICAgICAgIC5hcHBlbmQoJzxzcGFuIGNsYXNzPVwiaXRlbSBkb3QgZG90MVwiPjwvc3Bhbj4nKVxuICAgICAgICAgICAgLmFwcGVuZCgnPHNwYW4gY2xhc3M9XCJpdGVtIGRvdCBkb3QyXCI+PC9zcGFuPicpXG4gICAgICAgICAgICAuYXBwZW5kKCc8c3BhbiBjbGFzcz1cIml0ZW0gZG90IGRvdDNcIj48L3NwYW4+JylcbiAgICAgICAgICAgIC5hcHBlbmQoJzxzcGFuIGNsYXNzPVwiaXRlbSBkb3QgZG90NFwiPjwvc3Bhbj4nKVxuICAgICAgICAgICAgLmFwcGVuZCgnPGRpdiBjbGFzcz1cImxldHRlcmFyZWFcIj48L2Rpdj4nKVxuICAgICAgICAgICAgLmFwcGVuZCgnPGRpdiBjbGFzcz1cInJlZmxlY3Rpb25cIj48L2Rpdj4nKTtcblxuICAgICAgICB0aGlzLnNldFdpZHRoKHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy53aWR0aCk7XG5cbiAgICAgICAgaWYgKHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy5jb250cm9scykge1xuICAgICAgICAgICAgY29uc3QgY29udHJvbHBhbmVsID0gJChgPGRpdiBjbGFzcz1cInVoci1jb250cm9scGFuZWxcIiBpZD1cInVoci1jb250cm9scGFuZWwke3RoaXMud2lkZ2V0SW5zdGFuY2UudXVpZH1cIj48L2Rpdj5gKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSAkKCc8ZGl2IGNsYXNzPVwiY29udGVudFwiPjwvZGl2PicpO1xuICAgICAgICAgICAgY29udHJvbHBhbmVsLmFwcGVuZChjb250ZW50KTtcbiAgICAgICAgICAgIC8vIG9uL29mZiBzd2l0Y2hcbiAgICAgICAgICAgIGNvbnN0IHRvZ2dsZVN3aXRjaCA9ICQoYDxkaXYgY2xhc3M9XCJvbm9mZnN3aXRjaFwiIGlkPVwidWhyLW9ub2Zmc3dpdGNoJHt0aGlzLndpZGdldEluc3RhbmNlLnV1aWR9XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICB0b2dnbGVTd2l0Y2guYXBwZW5kKGA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJvbm9mZnN3aXRjaC1jaGVja2JveFwiIGlkPVwidWhyLW9ub2Zmc3dpdGNoLWNoZWNrYm94JHt0aGlzLndpZGdldEluc3RhbmNlLnV1aWR9XCIgY2hlY2tlZD1cImNoZWNrZWRcIiAvPmApO1xuICAgICAgICAgICAgdG9nZ2xlU3dpdGNoLmFwcGVuZChgPGxhYmVsIGNsYXNzPVwib25vZmZzd2l0Y2gtbGFiZWxcIiBmb3I9XCJ1aHItb25vZmZzd2l0Y2gtY2hlY2tib3gke3RoaXMud2lkZ2V0SW5zdGFuY2UudXVpZH1cIj48ZGl2IGNsYXNzPVwib25vZmZzd2l0Y2gtaW5uZXJcIj48L2Rpdj48ZGl2IGNsYXNzPVwib25vZmZzd2l0Y2gtc3dpdGNoXCI+PC9kaXY+PC9sYWJlbD5gKTtcbiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kKHRvZ2dsZVN3aXRjaCk7XG5cbiAgICAgICAgICAgIC8vIHRpbWUgbW9kZSBzd2l0Y2hcbiAgICAgICAgICAgIGNvbnN0IG1vZGVTd2l0Y2ggPSAkKGA8ZGl2IGNsYXNzPVwib25vZmZzd2l0Y2hcIiBpZD1cInVoci1tb2Rlc3dpdGNoJHt0aGlzLndpZGdldEluc3RhbmNlLnV1aWR9XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICBtb2RlU3dpdGNoLmFwcGVuZChgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNsYXNzPVwib25vZmZzd2l0Y2gtY2hlY2tib3hcIiBpZD1cInVoci1tb2Rlc3dpdGNoLWNoZWNrYm94JHt0aGlzLndpZGdldEluc3RhbmNlLnV1aWR9XCIgY2hlY2tlZD1cImNoZWNrZWRcIiAvPmApO1xuICAgICAgICAgICAgbW9kZVN3aXRjaC5hcHBlbmQoYDxsYWJlbCBjbGFzcz1cIm9ub2Zmc3dpdGNoLWxhYmVsXCIgZm9yPVwidWhyLW1vZGVzd2l0Y2gtY2hlY2tib3gke3RoaXMud2lkZ2V0SW5zdGFuY2UudXVpZH1cIj48ZGl2IGNsYXNzPVwibW9kZXN3aXRjaC1pbm5lclwiPjwvZGl2PjxkaXYgY2xhc3M9XCJvbm9mZnN3aXRjaC1zd2l0Y2hcIj48L2Rpdj48L2xhYmVsPmApO1xuICAgICAgICAgICAgY29udGVudC5hcHBlbmQobW9kZVN3aXRjaCk7XG4gICAgICAgICAgICAvLyBsYW5ndWFnZSBjaG9vc2VyXG4gICAgICAgICAgICBpZiAoR2xvYmFscy5oYXNNdWx0aXBsZUxheW91dHMoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhbmd1YWdlQ2hvb3NlciA9ICQoYDxzZWxlY3QgaWQ9XCJ1aHItbGFuZ3VhZ2VjaG9vc2VyJHt0aGlzLndpZGdldEluc3RhbmNlLnV1aWR9XCI+PC9zZWxlY3Q+YCk7XG4gICAgICAgICAgICAgICAgR2xvYmFscy5nZXRMYXlvdXRzKCkuZm9yRWFjaChsYXlvdXQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZUNob29zZXIuYXBwZW5kKGA8b3B0aW9uIHZhbHVlPVwiJHtsYXlvdXQuY29kZX1cIj4ke2xheW91dC5wcmV0dHlOYW1lfTwvb3B0aW9uPmApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kKGxhbmd1YWdlQ2hvb3Nlcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIHRoZW1lIGNob29zZXJcbiAgICAgICAgICAgIGlmIChHbG9iYWxzLmhhc011bHRpcGxlVGhlbWVzKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGVtZUNob29zZXIgPSAkKGA8c2VsZWN0IGlkPVwidWhyLXRoZW1lY2hvb3NlciR7dGhpcy53aWRnZXRJbnN0YW5jZS51dWlkfVwiPjwvc2VsZWN0PmApO1xuICAgICAgICAgICAgICAgIEdsb2JhbHMuZ2V0VGhlbWVzKCkuZm9yRWFjaCh0aGVtZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoZW1lQ2hvb3Nlci5hcHBlbmQoYDxvcHRpb24gdmFsdWU9XCIke3RoZW1lLnN0eWxlQ2xhc3N9XCI+JHt0aGVtZS5uYW1lfTwvb3B0aW9uPmApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kKHRoZW1lQ2hvb3Nlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjbG9zZWJ1dHRvbiA9ICQoYDxhIGNsYXNzPVwidWhyLWNsb3NlY29udHJvbHBhbmVsXCIgaWQ9XCJ1aHItY2xvc2Vjb250cm9scGFuZWwke3RoaXMud2lkZ2V0SW5zdGFuY2UudXVpZH1cIj48L2E+YCk7XG4gICAgICAgICAgICAvL0ZJWE1FIGRlcHJlY2F0ZWQ/IVxuICAgICAgICAgICAgY2xvc2VidXR0b24ub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICQoYCN1aHItY29udHJvbHBhbmVsJHt0aGlzLnV1aWR9YCkuaGlkZSgnZmFzdCcpO1xuICAgICAgICAgICAgfS5iaW5kKHRoaXMud2lkZ2V0SW5zdGFuY2UpKTtcbiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kKGNsb3NlYnV0dG9uKTtcbiAgICAgICAgICAgIGUuYWZ0ZXIoY29udHJvbHBhbmVsKTtcbiAgICAgICAgICAgIGNvbnRyb2xwYW5lbC5oaWRlKCk7XG4gICAgICAgICAgICBjb25zdCBjb25maWdsaW5rID0gJChgPGEgY2xhc3M9XCJ1aHItY29uZmlnbGlua1wiIGlkPVwidWhyLWNvbmZpZ2xpbmske3RoaXMud2lkZ2V0SW5zdGFuY2UudXVpZH1cIj48L2E+YCk7XG4gICAgICAgICAgICAvLyBGSVhNRSBkZXByZWNhdGVkIT9cbiAgICAgICAgICAgIGNvbmZpZ2xpbmsub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlQ29uZmlnU2NyZWVuKCk7XG4gICAgICAgICAgICB9LmJpbmQodGhpcykpO1xuICAgICAgICAgICAgZS5hZnRlcihjb25maWdsaW5rKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBwcml2YXRlIHdpcmVGdW5jdGlvbmFsaXR5KCk6IHZvaWQge1xuICAgICAgICAvLyBvbi9vZmYgc3dpdGNoXG4gICAgICAgIGNvbnN0IHRvZ2dsZVN3aXRjaCA9ICQoYCN1aHItb25vZmZzd2l0Y2gtY2hlY2tib3gke3RoaXMud2lkZ2V0SW5zdGFuY2UudXVpZH1gKTtcbiAgICAgICAgLy8gRklYTUUgZGVwcmVjYXRlZCE/XG4gICAgICAgIHRvZ2dsZVN3aXRjaC5vbignY2xpY2snLCAoKSA9PiB0aGlzLnRvZ2dsZSgpKTtcbiAgICAgICAgbGV0IHN0YXR1cyA9IHRoaXMuZ2V0Q29va2llKCd1aHItc3RhdHVzJyk7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMuZm9yY2UpIHtcbiAgICAgICAgICAgIHN0YXR1cyA9IHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy5zdGF0dXM7XG4gICAgICAgIH1cbiAgICAgICAgdG9nZ2xlU3dpdGNoLnByb3AoJ2NoZWNrZWQnLCBzdGF0dXMgPT09ICdvbicpO1xuICAgICAgICBpZiAoc3RhdHVzID09PSAnb24nKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0b3AoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRpbWUgbW9kZSBzd2l0Y2hcbiAgICAgICAgY29uc3QgbW9kZVN3aXRjaCA9ICQoYCN1aHItbW9kZXN3aXRjaC1jaGVja2JveCR7dGhpcy53aWRnZXRJbnN0YW5jZS51dWlkfWApO1xuICAgICAgICAvLyBGSVhNRSBkZXByZWNhdGVkIT9cbiAgICAgICAgbW9kZVN3aXRjaC5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLm1vZGUgPT09ICdzZWNvbmRzJykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TW9kZSgnbm9ybWFsJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TW9kZSgnc2Vjb25kcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBsZXQgbW9kZSA9IHRoaXMuZ2V0Q29va2llKCd1aHItbW9kZScpO1xuICAgICAgICBpZiAobW9kZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy5mb3JjZSkge1xuICAgICAgICAgICAgbW9kZSA9IHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy5tb2RlO1xuICAgICAgICB9XG4gICAgICAgIG1vZGVTd2l0Y2gucHJvcCgnY2hlY2tlZCcsIG1vZGUgIT09ICdzZWNvbmRzJyk7XG4gICAgICAgIGlmIChtb2RlID09PSAnc2Vjb25kcycpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0TW9kZSgnc2Vjb25kcycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRNb2RlKCdub3JtYWwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGxhbmd1YWdlIGNob29zZXJcbiAgICAgICAgY29uc3QgbGFuZ3VhZ2VDaG9vc2VyID0gJChgI3Voci1sYW5ndWFnZWNob29zZXIke3RoaXMud2lkZ2V0SW5zdGFuY2UudXVpZH1gKTtcbiAgICAgICAgLy8gRklYTUUgZGVwcmVjYXRlZCE/XG4gICAgICAgIGxhbmd1YWdlQ2hvb3Nlci5vbignY2hhbmdlJywgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGFuZ3VhZ2VLZXkgPSAkKGAjdWhyLWxhbmd1YWdlY2hvb3NlciR7dGhpcy53aWRnZXRJbnN0YW5jZS51dWlkfWApLnZhbCgpIGFzIHN0cmluZztcbiAgICAgICAgICAgIHRoaXMuc2V0TGFuZ3VhZ2UobGFuZ3VhZ2VLZXkpO1xuICAgICAgICB9KTtcbiAgICAgICAgbGV0IHNlbGVjdGVkTGF5b3V0ID0gdGhpcy5nZXRDb29raWUoJ3Voci1sYW5ndWFnZScpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRMYXlvdXQgPT09IHVuZGVmaW5lZCB8fCB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMuZm9yY2UpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkTGF5b3V0ID0gdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLmxhbmd1YWdlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBmb3VuZCA9IEdsb2JhbHMuZ2V0TGF5b3V0cygpLnNvbWUoaXRlbSA9PiBzZWxlY3RlZExheW91dCA9PT0gaXRlbS5jb2RlKTtcbiAgICAgICAgaWYgKCFmb3VuZCkge1xuICAgICAgICAgICAgbGV0IGZhbGxiYWNrTGFuZ3VhZ2U7XG4gICAgICAgICAgICBpZiAoR2xvYmFscy5oYXNMYXlvdXRzKCkpIHtcbiAgICAgICAgICAgICAgICBmYWxsYmFja0xhbmd1YWdlID0gR2xvYmFscy5nZXRGaXJzdExheW91dCgpLmNvZGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZhbGxiYWNrTGFuZ3VhZ2UgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgTGFuZ3VhZ2UgJyR7c2VsZWN0ZWRMYXlvdXR9JyBub3QgZm91bmQhIFVzaW5nIGZhbGxiYWNrICcke2ZhbGxiYWNrTGFuZ3VhZ2V9Jy5gKTtcbiAgICAgICAgICAgIHNlbGVjdGVkTGF5b3V0ID0gZmFsbGJhY2tMYW5ndWFnZTtcbiAgICAgICAgfVxuICAgICAgICBsYW5ndWFnZUNob29zZXIudmFsKHNlbGVjdGVkTGF5b3V0KTtcbiAgICAgICAgdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLmxhbmd1YWdlID0gXCJcIjtcbiAgICAgICAgdGhpcy5zZXRMYW5ndWFnZShzZWxlY3RlZExheW91dCk7XG5cbiAgICAgICAgLy8gdGhlbWUgY2hvb3NlclxuICAgICAgICBjb25zdCB0aGVtZUNob29zZXIgPSAkKGAjdWhyLXRoZW1lY2hvb3NlciR7dGhpcy53aWRnZXRJbnN0YW5jZS51dWlkfWApO1xuICAgICAgICAvLyBGSVhNRSBkZXByZWNhdGVkIT9cbiAgICAgICAgdGhlbWVDaG9vc2VyLm9uKCdjaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0aGVtZUtleSA9ICQoYCN1aHItdGhlbWVjaG9vc2VyJHt0aGlzLndpZGdldEluc3RhbmNlLnV1aWR9YCkudmFsKCkgYXMgc3RyaW5nO1xuICAgICAgICAgICAgdGhpcy5zZXRUaGVtZSh0aGVtZUtleSk7XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgc2VsZWN0ZWRUaGVtZSA9IHRoaXMuZ2V0Q29va2llKCd1aHItdGhlbWUnKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkVGhlbWUgPT09IHVuZGVmaW5lZCB8fCB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMuZm9yY2UpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkVGhlbWUgPSB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMudGhlbWU7XG4gICAgICAgIH1cbiAgICAgICAgZm91bmQgPSBHbG9iYWxzLmdldFRoZW1lcygpLnNvbWUoaXRlbSA9PiBzZWxlY3RlZFRoZW1lID09PSBpdGVtLnN0eWxlQ2xhc3MpO1xuICAgICAgICBpZiAoIWZvdW5kKSB7XG4gICAgICAgICAgICBjb25zdCBmYWxsYmFja1RoZW1lID0gR2xvYmFscy5nZXRGaXJzdFRoZW1lKCkuc3R5bGVDbGFzcztcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgVGhlbWUgJyR7c2VsZWN0ZWRUaGVtZX0nIG5vdCBmb3VuZCEgVXNpbmcgZmFsbGJhY2sgJyR7ZmFsbGJhY2tUaGVtZX0nLmApO1xuICAgICAgICAgICAgc2VsZWN0ZWRUaGVtZSA9IGZhbGxiYWNrVGhlbWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhlbWVDaG9vc2VyLnZhbChzZWxlY3RlZFRoZW1lKTtcbiAgICAgICAgdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLnRoZW1lID0gXCJcIjtcbiAgICAgICAgdGhpcy5zZXRUaGVtZShzZWxlY3RlZFRoZW1lKTtcbiAgICAgICAgaWYgKHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy5hdXRvcmVzaXplKSB7XG4gICAgICAgICAgICAvLyBGSVhNRSBkZXByZWNhdGVkIT9cbiAgICAgICAgICAgICQod2luZG93KS5vbigncmVzaXplJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0ICRlID0gdGhpcy53aWRnZXRJbnN0YW5jZS5lbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0ICRwYXJlbnQgPSAkZS5wYXJlbnQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCAkd2luZG93ID0gJCh3aW5kb3cpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFdpZHRoID0gJHBhcmVudC53aWR0aCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudEhlaWdodCA9ICRwYXJlbnQuaGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgd2luZG93V2lkdGggPSAkd2luZG93LndpZHRoKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gJHdpbmRvdy5oZWlnaHQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzaXplID0gYCR7TWF0aC5taW4ocGFyZW50V2lkdGgsIHBhcmVudEhlaWdodCwgd2luZG93V2lkdGgsIHdpbmRvd0hlaWdodCl9cHhgO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0V2lkdGgoc2l6ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNPbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGltZXIgIT09IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb29raWUoY29va2llTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICQuY29va2llKGNvb2tpZU5hbWUgKyB0aGlzLndpZGdldEluc3RhbmNlLnV1aWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q29va2llKGNvb2tpZU5hbWU6IHN0cmluZywgY29va2llVmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBsZXQgb3B0aW9ucztcbiAgICAgICAgaWYgKHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy5jb29raWVQYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7ZXhwaXJlczogMzY1LCBwYXRoOiB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMuY29va2llUGF0aH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvcHRpb25zID0ge2V4cGlyZXM6IDM2NX07XG4gICAgICAgIH1cbiAgICAgICAgJC5jb29raWUoY29va2llTmFtZSArIHRoaXMud2lkZ2V0SW5zdGFuY2UudXVpZCwgY29va2llVmFsdWUsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc09uKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRpbWUgPSB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMudGltZTtcbiAgICAgICAgICAgIGlmICghdGhpcy5nZXRDdXJyZW50TGF5b3V0KCkuaGFzT3duUHJvcGVydHkoJ3NlY29uZHMnKSAmJiB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMubW9kZSAhPT0gJ3NlY29uZHMnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRpbWUuZ2V0TWludXRlcygpID09PSB0aGlzLmN1cnJlbnRNaW51dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRNaW51dGUgPSB0aW1lLmdldE1pbnV0ZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2hvdyh0aW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE1pbnV0ZSA9IC0xO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93KHRpbWU6IERhdGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2Vjb25kID0gdGhpcy5nZXRTZWNvbmQodGltZSk7XG4gICAgICAgIGNvbnN0IGRvdE1pbnV0ZSA9IHRoaXMuZ2V0RG90TWludXRlKHRpbWUpO1xuICAgICAgICBjb25zdCBob3VyID0gdGhpcy5nZXRIb3VyKHRpbWUpO1xuICAgICAgICBjb25zdCBjb2Fyc2VNaW51dGUgPSB0aGlzLmdldENvYXJzZU1pbnV0ZSh0aW1lKTtcbiAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICBpZiAodGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLm1vZGUgPT09ICdzZWNvbmRzJykge1xuICAgICAgICAgICAgdGhpcy5oaWdobGlnaHQoYHNlY29uZCR7c2Vjb25kfWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oaWdobGlnaHQoJ29uJyk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBkb3RNaW51dGU7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0KGBkb3Qke2l9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmhpZ2hsaWdodChgbWludXRlJHtjb2Fyc2VNaW51dGV9YCk7XG4gICAgICAgICAgICB0aGlzLmhpZ2hsaWdodChgaG91ciR7aG91cn1gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2UuZWxlbWVudC5maW5kKCcuaXRlbScpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZ2hsaWdodChpdGVtQ2xhc3M6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLndpZGdldEluc3RhbmNlLmVsZW1lbnQuZmluZChgLml0ZW0uJHtpdGVtQ2xhc3N9YCkuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2Vjb25kKHRpbWU6IERhdGUpOiBudW1iZXIge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZ2V0Q3VycmVudExheW91dCgpLmdldFNlY29uZHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEN1cnJlbnRMYXlvdXQoKS5nZXRTZWNvbmRzKHRpbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aW1lLmdldFNlY29uZHMoKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBnZXREb3RNaW51dGUoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5nZXRDdXJyZW50TGF5b3V0KCkuZ2V0RG90TWludXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDdXJyZW50TGF5b3V0KCkuZ2V0RG90TWludXRlKGRhdGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRlLmdldE1pbnV0ZXMoKSAlIDU7XG4gICAgfTtcblxuICAgIHByaXZhdGUgZ2V0Q29hcnNlTWludXRlKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZ2V0Q3VycmVudExheW91dCgpLmdldENvYXJzZU1pbnV0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q3VycmVudExheW91dCgpLmdldENvYXJzZU1pbnV0ZShkYXRlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0ZS5nZXRNaW51dGVzKCk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgZ2V0SG91cihkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmdldEN1cnJlbnRMYXlvdXQoKS5nZXRIb3VyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDdXJyZW50TGF5b3V0KCkuZ2V0SG91cihkYXRlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBob3VyID0gZGF0ZS5nZXRIb3VycygpO1xuICAgICAgICBpZiAoZGF0ZS5nZXRNaW51dGVzKCkgPj0gMjUpIHtcbiAgICAgICAgICAgIHJldHVybiAoaG91ciArIDEpICUgMjQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgfTtcblxuICAgIHByaXZhdGUgcGFyc2VIYXNoKCk6IHZvaWQge1xuICAgICAgICBsZXQgaGFzaDogc3RyaW5nID0gd2luZG93LmxvY2F0aW9uLmhhc2g7XG4gICAgICAgIGlmIChoYXNoICE9PSB1bmRlZmluZWQgJiYgaGFzaC5jaGFyQXQoMCkgPT09ICcjJykge1xuICAgICAgICAgICAgaGFzaCA9IGhhc2guc3Vic3RyaW5nKDEpO1xuICAgICAgICAgICAgaGFzaCA9IGRlY29kZVVSSUNvbXBvbmVudChoYXNoKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtczogc3RyaW5nW10gPSBoYXNoLnNwbGl0KCcmJyk7XG4gICAgICAgICAgICBwYXJhbXMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYWlyOiBzdHJpbmdbXSA9IGVsZW1lbnQuc3BsaXQoJz0nKTtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBwYWlyWzBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcGFpclsxXTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdsJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbGFuZ3VhZ2UnOlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLmxhbmd1YWdlID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMuZm9yY2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3QnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICd0aGVtZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMudGhlbWUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy5mb3JjZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ21vZGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLm1vZGUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy5mb3JjZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N0YXR1cyc6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMuc3RhdHVzID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMuZm9yY2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEN1cnJlbnRMYXlvdXQoKTogTGF5b3V0IHtcbiAgICAgICAgY29uc3QgbWF0Y2hpbmdMYW5ndWFnZXM6IExheW91dFtdID0gR2xvYmFscy5nZXRMYXlvdXRzKCkuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudC5jb2RlID09PSB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMubGFuZ3VhZ2UsIHRoaXMpO1xuICAgICAgICBpZiAobWF0Y2hpbmdMYW5ndWFnZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG1hdGNoaW5nTGFuZ3VhZ2VzWzBdO1xuICAgICAgICB9XG4gICAgICAgIC8vIGZhbGxiYWNrOiByZXR1cm4gZW1wdHkgb2JqZWN0XG4gICAgICAgIHJldHVybiBFTVBUWV9MQVlPVVQ7XG4gICAgfTtcbn1cblxuZGVjbGFyZSBmdW5jdGlvbiAkKHNlbGVjdG9yOiBhbnkpOiBKUXVlcnk7XG5cbmRlY2xhcmUgbmFtZXNwYWNlICQge1xuICAgIGNvbnN0IGNvb2tpZTogQ29va2llO1xuXG4gICAgaW50ZXJmYWNlIENvb2tpZSB7XG4gICAgICAgIC8vIHJlYWQgYWxsIGNvb2tpZXNcbiAgICAgICAgKCk6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9XG5cbiAgICAgICAgLy8gcmVhZCBuYW1lZCBjb29raWVcbiAgICAgICAgKGNvb2tpZU5hbWU6IHN0cmluZyk6IHN0cmluZztcblxuICAgICAgICAvLyBzZXQgY29va2llIHdpdGggb3B0aW9uYWwgb3B0aW9uc1xuICAgICAgICAoY29va2llTmFtZTogc3RyaW5nLCBjb29raWVWYWx1ZTogc3RyaW5nLCBjb29raWVPcHRpb25zPzogYW55KTogc3RyaW5nO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7O0FBYUE7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBQUtBO0FBQUE7QUFIQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBOzsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/uhr.ts\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Uhr\", function() { return Uhr; });\n/* harmony import */ var _domain_globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./domain/globals */ \"./src/domain/globals.ts\");\n/* harmony import */ var _renderer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./renderer */ \"./src/renderer.ts\");\n/* harmony import */ var _domain_layout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./domain/layout */ \"./src/domain/layout.ts\");\n/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! js-cookie */ \"./node_modules/js-cookie/src/js.cookie.js\");\n/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(js_cookie__WEBPACK_IMPORTED_MODULE_3__);\n/*\r\n This program is free software: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see .\r\n */\r\n\r\n\r\n\r\n\r\nvar Uhr = /** @class */ (function () {\r\n function Uhr(widgetInstance) {\r\n this.widgetInstance = widgetInstance;\r\n this.timer = null;\r\n this.currentMinute = null;\r\n var userTime = this.widgetInstance.options.time;\r\n if (this.widgetInstance.options.time === undefined) {\r\n this.widgetInstance.options.time = new Date();\r\n }\r\n this.parseHash();\r\n this.setupHTML();\r\n this.wireFunctionality();\r\n if (userTime !== undefined) {\r\n this.setTime(userTime);\r\n }\r\n }\r\n Uhr.prototype.destroy = function () {\r\n if (!!this.timer) {\r\n window.clearInterval(this.timer);\r\n this.timer = null;\r\n }\r\n this.widgetInstance.element\r\n .removeAttr('style')\r\n .removeAttr('class')\r\n .empty();\r\n $(\"#uhr-configlink\" + this.widgetInstance.uuid).remove();\r\n $(\"#uhr-controlpanel\" + this.widgetInstance.uuid).remove();\r\n };\r\n Uhr.prototype.start = function () {\r\n var _this = this;\r\n if (!this.isOn()) {\r\n this.timer = window.setInterval(function () {\r\n _this.widgetInstance.options.time = new Date();\r\n _this.update();\r\n }, 1000);\r\n this.update();\r\n this.setCookie('uhr-status', 'on');\r\n }\r\n };\r\n Uhr.prototype.stop = function () {\r\n if (this.isOn()) {\r\n window.clearInterval(this.timer);\r\n this.timer = null;\r\n this.update();\r\n this.setCookie('uhr-status', 'off');\r\n }\r\n };\r\n Uhr.prototype.toggle = function () {\r\n if (this.isOn()) {\r\n this.stop();\r\n }\r\n else {\r\n this.start();\r\n }\r\n };\r\n Uhr.prototype.setLanguage = function (key) {\r\n var _this = this;\r\n if (key !== this.widgetInstance.options.language) {\r\n this.widgetInstance.options.language = key;\r\n var renderer = new _renderer__WEBPACK_IMPORTED_MODULE_1__[\"UhrRenderer\"](this.getCurrentLayout(), this.widgetInstance.element.find('.letterarea'));\r\n renderer.render(function () {\r\n _this.currentMinute = -1;\r\n _this.update();\r\n });\r\n this.setCookie('uhr-language', key);\r\n this.update();\r\n }\r\n };\r\n Uhr.prototype.setTheme = function (styleClass) {\r\n if (styleClass !== this.widgetInstance.options.theme) {\r\n this.widgetInstance.element.removeClass(this.widgetInstance.options.theme).addClass(styleClass);\r\n $(\"#uhr-onoffswitch\" + this.widgetInstance.uuid).removeClass(this.widgetInstance.options.theme).addClass(styleClass);\r\n this.widgetInstance.options.theme = styleClass;\r\n this.setCookie('uhr-theme', styleClass);\r\n }\r\n };\r\n Uhr.prototype.setTime = function (time) {\r\n this.currentMinute = null;\r\n if (time === null) {\r\n this.widgetInstance.options.time = new Date();\r\n }\r\n else {\r\n if (this.timer !== null) {\r\n window.clearInterval(this.timer);\r\n }\r\n this.widgetInstance.options.time = time;\r\n }\r\n this.update();\r\n };\r\n Uhr.prototype.setMode = function (mode) {\r\n this.widgetInstance.options.mode = mode;\r\n this.currentMinute = null;\r\n this.update();\r\n this.setCookie('uhr-mode', mode);\r\n };\r\n Uhr.prototype.setWidth = function (width) {\r\n var e = this.widgetInstance.element;\r\n e.css('width', width);\r\n var realWidth = e.width();\r\n e.width(realWidth);\r\n e.height(realWidth);\r\n e.css('font-size', (realWidth / 40) + 'px');\r\n };\r\n Uhr.prototype.setupHTML = function () {\r\n var _this = this;\r\n var e = this.widgetInstance.element;\r\n // Base clock area\r\n e.addClass('uhr')\r\n .empty()\r\n .append('')\r\n .append('')\r\n .append('')\r\n .append('')\r\n .append('')\r\n .append('');\r\n this.setWidth(this.widgetInstance.options.width);\r\n if (this.widgetInstance.options.controls) {\r\n var controlpanel = $(\"\");\r\n var content = $('');\r\n controlpanel.append(content);\r\n // on/off switch\r\n var toggleSwitch = $(\"\");\r\n toggleSwitch.append(\"\");\r\n toggleSwitch.append(\"\");\r\n content.append(toggleSwitch);\r\n // time mode switch\r\n var modeSwitch = $(\"\");\r\n modeSwitch.append(\"\");\r\n modeSwitch.append(\"\");\r\n content.append(modeSwitch);\r\n // language chooser\r\n if (_domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].hasMultipleLayouts()) {\r\n var languageChooser_1 = $(\"\");\r\n _domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].getLayouts().forEach(function (layout) {\r\n languageChooser_1.append(\"\");\r\n });\r\n content.append(languageChooser_1);\r\n }\r\n // theme chooser\r\n if (_domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].hasMultipleThemes()) {\r\n var themeChooser_1 = $(\"\");\r\n _domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].getThemes().forEach(function (theme) {\r\n themeChooser_1.append(\"\");\r\n });\r\n content.append(themeChooser_1);\r\n }\r\n var closebutton = $(\"\");\r\n //FIXME deprecated?!\r\n closebutton.on('click', function () { return $(\"#uhr-controlpanel\" + _this.widgetInstance.uuid).hide('fast'); });\r\n content.append(closebutton);\r\n e.after(controlpanel);\r\n controlpanel.hide();\r\n var configlink = $(\"\");\r\n // FIXME deprecated!?\r\n configlink.on('click', function () { return _this.toggleConfigScreen(); });\r\n e.after(configlink);\r\n }\r\n };\r\n ;\r\n Uhr.prototype.wireFunctionality = function () {\r\n var _this = this;\r\n // on/off switch\r\n var toggleSwitch = $(\"#uhr-onoffswitch-checkbox\" + this.widgetInstance.uuid);\r\n // FIXME deprecated!?\r\n toggleSwitch.on('click', function () { return _this.toggle(); });\r\n var status = this.getCookie('uhr-status');\r\n if (status === undefined || this.widgetInstance.options.force) {\r\n status = this.widgetInstance.options.status;\r\n }\r\n toggleSwitch.prop('checked', status === 'on');\r\n if (status === 'on') {\r\n this.start();\r\n }\r\n else {\r\n this.stop();\r\n }\r\n // time mode switch\r\n var modeSwitch = $(\"#uhr-modeswitch-checkbox\" + this.widgetInstance.uuid);\r\n // FIXME deprecated!?\r\n modeSwitch.on('click', function () {\r\n if (_this.widgetInstance.options.mode === 'seconds') {\r\n _this.setMode('normal');\r\n }\r\n else {\r\n _this.setMode('seconds');\r\n }\r\n });\r\n var mode = this.getCookie('uhr-mode');\r\n if (mode === undefined || this.widgetInstance.options.force) {\r\n mode = this.widgetInstance.options.mode;\r\n }\r\n modeSwitch.prop('checked', mode !== 'seconds');\r\n if (mode === 'seconds') {\r\n this.setMode('seconds');\r\n }\r\n else {\r\n this.setMode('normal');\r\n }\r\n // language chooser\r\n var languageChooser = $(\"#uhr-languagechooser\" + this.widgetInstance.uuid);\r\n // FIXME deprecated!?\r\n languageChooser.on('change', function () {\r\n var languageKey = $(\"#uhr-languagechooser\" + _this.widgetInstance.uuid).val();\r\n _this.setLanguage(languageKey);\r\n });\r\n var selectedLayout = this.getCookie('uhr-language');\r\n if (selectedLayout === undefined || this.widgetInstance.options.force) {\r\n selectedLayout = this.widgetInstance.options.language;\r\n }\r\n var found = _domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].getLayouts().some(function (item) { return selectedLayout === item.code; });\r\n if (!found) {\r\n var fallbackLanguage = void 0;\r\n if (_domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].hasLayouts()) {\r\n fallbackLanguage = _domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].getFirstLayout().code;\r\n }\r\n else {\r\n fallbackLanguage = '';\r\n }\r\n console.warn(\"Language '\" + selectedLayout + \"' not found! Using fallback '\" + fallbackLanguage + \"'.\");\r\n selectedLayout = fallbackLanguage;\r\n }\r\n languageChooser.val(selectedLayout);\r\n this.widgetInstance.options.language = \"\";\r\n this.setLanguage(selectedLayout);\r\n // theme chooser\r\n var themeChooser = $(\"#uhr-themechooser\" + this.widgetInstance.uuid);\r\n // FIXME deprecated!?\r\n themeChooser.on('change', function () {\r\n var themeKey = $(\"#uhr-themechooser\" + _this.widgetInstance.uuid).val();\r\n _this.setTheme(themeKey);\r\n });\r\n var selectedTheme = this.getCookie('uhr-theme');\r\n if (selectedTheme === undefined || this.widgetInstance.options.force) {\r\n selectedTheme = this.widgetInstance.options.theme;\r\n }\r\n found = _domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].getThemes().some(function (item) { return selectedTheme === item.styleClass; });\r\n if (!found) {\r\n var fallbackTheme = _domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].getFirstTheme().styleClass;\r\n console.warn(\"Theme '\" + selectedTheme + \"' not found! Using fallback '\" + fallbackTheme + \"'.\");\r\n selectedTheme = fallbackTheme;\r\n }\r\n themeChooser.val(selectedTheme);\r\n this.widgetInstance.options.theme = \"\";\r\n this.setTheme(selectedTheme);\r\n if (this.widgetInstance.options.autoresize) {\r\n // FIXME deprecated!?\r\n $(window).on('resize', function () {\r\n var $e = _this.widgetInstance.element;\r\n var $parent = $e.parent();\r\n var $window = $(window);\r\n var parentWidth = $parent.width();\r\n var parentHeight = $parent.height();\r\n var windowWidth = $window.width();\r\n var windowHeight = $window.height();\r\n var size = Math.min(parentWidth, parentHeight, windowWidth, windowHeight) + \"px\";\r\n _this.setWidth(size);\r\n });\r\n }\r\n };\r\n Uhr.prototype.isOn = function () {\r\n return this.timer !== null;\r\n };\r\n Uhr.prototype.getCookie = function (cookieName) {\r\n return js_cookie__WEBPACK_IMPORTED_MODULE_3__[\"get\"](cookieName + this.widgetInstance.uuid);\r\n };\r\n Uhr.prototype.setCookie = function (cookieName, cookieValue) {\r\n var options;\r\n if (this.widgetInstance.options.cookiePath !== undefined) {\r\n options = { expires: 365, path: this.widgetInstance.options.cookiePath };\r\n }\r\n else {\r\n options = { expires: 365 };\r\n }\r\n js_cookie__WEBPACK_IMPORTED_MODULE_3__[\"set\"](cookieName + this.widgetInstance.uuid, cookieValue, options);\r\n };\r\n Uhr.prototype.update = function () {\r\n if (this.isOn()) {\r\n var time = this.widgetInstance.options.time;\r\n if (!this.getCurrentLayout().hasOwnProperty('seconds') && this.widgetInstance.options.mode !== 'seconds') {\r\n if (time.getMinutes() === this.currentMinute) {\r\n return;\r\n }\r\n this.currentMinute = time.getMinutes();\r\n }\r\n this.show(time);\r\n }\r\n else {\r\n this.clear();\r\n this.currentMinute = -1;\r\n }\r\n };\r\n Uhr.prototype.show = function (time) {\r\n var second = this.getSecond(time);\r\n var dotMinute = this.getDotMinute(time);\r\n var hour = this.getHour(time);\r\n var coarseMinute = this.getCoarseMinute(time);\r\n this.clear();\r\n if (this.widgetInstance.options.mode === 'seconds') {\r\n this.highlight(\"second\" + second);\r\n }\r\n else {\r\n this.highlight('on');\r\n for (var i = 1; i <= dotMinute; i++) {\r\n this.highlight(\"dot\" + i);\r\n }\r\n this.highlight(\"minute\" + coarseMinute);\r\n this.highlight(\"hour\" + hour);\r\n }\r\n };\r\n Uhr.prototype.clear = function () {\r\n this.widgetInstance.element.find('.item').removeClass('active');\r\n };\r\n Uhr.prototype.highlight = function (itemClass) {\r\n this.widgetInstance.element.find(\".item.\" + itemClass).addClass('active');\r\n };\r\n Uhr.prototype.getSecond = function (time) {\r\n if (typeof this.getCurrentLayout().getSeconds === 'function') {\r\n return this.getCurrentLayout().getSeconds(time);\r\n }\r\n return time.getSeconds();\r\n };\r\n ;\r\n Uhr.prototype.getDotMinute = function (date) {\r\n if (typeof this.getCurrentLayout().getDotMinute === 'function') {\r\n return this.getCurrentLayout().getDotMinute(date);\r\n }\r\n return date.getMinutes() % 5;\r\n };\r\n ;\r\n Uhr.prototype.getCoarseMinute = function (date) {\r\n if (typeof this.getCurrentLayout().getCoarseMinute === 'function') {\r\n return this.getCurrentLayout().getCoarseMinute(date);\r\n }\r\n return date.getMinutes();\r\n };\r\n ;\r\n Uhr.prototype.getHour = function (date) {\r\n if (typeof this.getCurrentLayout().getHour === 'function') {\r\n return this.getCurrentLayout().getHour(date);\r\n }\r\n var hour = date.getHours();\r\n if (date.getMinutes() >= 25) {\r\n return (hour + 1) % 24;\r\n }\r\n return hour;\r\n };\r\n ;\r\n Uhr.prototype.toggleConfigScreen = function () {\r\n $(\"#uhr-controlpanel\" + this.widgetInstance.uuid).toggle('fast');\r\n };\r\n ;\r\n Uhr.prototype.parseHash = function () {\r\n var _this = this;\r\n var hash = window.location.hash;\r\n if (hash !== undefined && hash.charAt(0) === '#') {\r\n hash = hash.substring(1);\r\n hash = decodeURIComponent(hash);\r\n var params = hash.split('&');\r\n params.forEach(function (element) {\r\n var pair = element.split('=');\r\n var key = pair[0];\r\n var value = pair[1];\r\n switch (key) {\r\n case 'l':\r\n case 'language':\r\n _this.widgetInstance.options.language = value;\r\n _this.widgetInstance.options.force = true;\r\n break;\r\n case 't':\r\n case 'theme':\r\n _this.widgetInstance.options.theme = value;\r\n _this.widgetInstance.options.force = true;\r\n break;\r\n case 'm':\r\n case 'mode':\r\n _this.widgetInstance.options.mode = value;\r\n _this.widgetInstance.options.force = true;\r\n break;\r\n case 's':\r\n case 'status':\r\n _this.widgetInstance.options.status = value;\r\n _this.widgetInstance.options.force = true;\r\n break;\r\n }\r\n });\r\n }\r\n };\r\n Uhr.prototype.getCurrentLayout = function () {\r\n var _this = this;\r\n var matchingLanguages = _domain_globals__WEBPACK_IMPORTED_MODULE_0__[\"Globals\"].getLayouts().filter(function (element) { return element.code === _this.widgetInstance.options.language; }, this);\r\n if (matchingLanguages.length > 0) {\r\n return matchingLanguages[0];\r\n }\r\n // fallback: return empty object\r\n return _domain_layout__WEBPACK_IMPORTED_MODULE_2__[\"EMPTY_LAYOUT\"];\r\n };\r\n ;\r\n return Uhr;\r\n}());\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdWhyLnRzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL3Voci50cz9iOTVjIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cblxuIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG5cbiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7V2lkZ2V0UHJvdG90eXBlfSBmcm9tIFwiLi93aWRnZXQvd2lkZ2V0LXByb3RvdHlwZVwiO1xuaW1wb3J0IHtHbG9iYWxzfSBmcm9tIFwiLi9kb21haW4vZ2xvYmFsc1wiO1xuaW1wb3J0IHtVaHJSZW5kZXJlcn0gZnJvbSBcIi4vcmVuZGVyZXJcIjtcbmltcG9ydCB7RU1QVFlfTEFZT1VULCBMYXlvdXR9IGZyb20gXCIuL2RvbWFpbi9sYXlvdXRcIjtcbmltcG9ydCAqIGFzIENvb2tpZXMgZnJvbSBcImpzLWNvb2tpZVwiO1xuXG5leHBvcnQgY2xhc3MgVWhyIHtcblxuICAgIHByaXZhdGUgdGltZXI6IG51bWJlciA9IG51bGw7XG4gICAgcHJpdmF0ZSBjdXJyZW50TWludXRlOiBudW1iZXIgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB3aWRnZXRJbnN0YW5jZTogV2lkZ2V0UHJvdG90eXBlKSB7XG4gICAgICAgIGNvbnN0IHVzZXJUaW1lID0gdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLnRpbWU7XG4gICAgICAgIGlmICh0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMudGltZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMudGltZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wYXJzZUhhc2goKTtcbiAgICAgICAgdGhpcy5zZXR1cEhUTUwoKTtcbiAgICAgICAgdGhpcy53aXJlRnVuY3Rpb25hbGl0eSgpO1xuICAgICAgICBpZiAodXNlclRpbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zZXRUaW1lKHVzZXJUaW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICghIXRoaXMudGltZXIpIHtcbiAgICAgICAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMudGltZXIpO1xuICAgICAgICAgICAgdGhpcy50aW1lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy53aWRnZXRJbnN0YW5jZS5lbGVtZW50XG4gICAgICAgICAgICAucmVtb3ZlQXR0cignc3R5bGUnKVxuICAgICAgICAgICAgLnJlbW92ZUF0dHIoJ2NsYXNzJylcbiAgICAgICAgICAgIC5lbXB0eSgpO1xuICAgICAgICAkKGAjdWhyLWNvbmZpZ2xpbmske3RoaXMud2lkZ2V0SW5zdGFuY2UudXVpZH1gKS5yZW1vdmUoKTtcbiAgICAgICAgJChgI3Voci1jb250cm9scGFuZWwke3RoaXMud2lkZ2V0SW5zdGFuY2UudXVpZH1gKS5yZW1vdmUoKTtcbiAgICB9XG5cbiAgICBzdGFydCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzT24oKSkge1xuICAgICAgICAgICAgdGhpcy50aW1lciA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLnRpbWUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgICAgICAgICB9LCAxMDAwKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgICAgICAgICB0aGlzLnNldENvb2tpZSgndWhyLXN0YXR1cycsICdvbicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RvcCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPbigpKSB7XG4gICAgICAgICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTtcbiAgICAgICAgICAgIHRoaXMudGltZXIgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0Q29va2llKCd1aHItc3RhdHVzJywgJ29mZicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc09uKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGFydCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0TGFuZ3VhZ2Uoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKGtleSAhPT0gdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLmxhbmd1YWdlKSB7XG4gICAgICAgICAgICB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMubGFuZ3VhZ2UgPSBrZXk7XG4gICAgICAgICAgICBjb25zdCByZW5kZXJlciA9IG5ldyBVaHJSZW5kZXJlcih0aGlzLmdldEN1cnJlbnRMYXlvdXQoKSwgdGhpcy53aWRnZXRJbnN0YW5jZS5lbGVtZW50LmZpbmQoJy5sZXR0ZXJhcmVhJykpO1xuICAgICAgICAgICAgcmVuZGVyZXIucmVuZGVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRNaW51dGUgPSAtMTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnNldENvb2tpZSgndWhyLWxhbmd1YWdlJywga2V5KTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRUaGVtZShzdHlsZUNsYXNzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHN0eWxlQ2xhc3MgIT09IHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy50aGVtZSkge1xuICAgICAgICAgICAgdGhpcy53aWRnZXRJbnN0YW5jZS5lbGVtZW50LnJlbW92ZUNsYXNzKHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy50aGVtZSkuYWRkQ2xhc3Moc3R5bGVDbGFzcyk7XG4gICAgICAgICAgICAkKGAjdWhyLW9ub2Zmc3dpdGNoJHt0aGlzLndpZGdldEluc3RhbmNlLnV1aWR9YCkucmVtb3ZlQ2xhc3ModGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLnRoZW1lKS5hZGRDbGFzcyhzdHlsZUNsYXNzKTtcbiAgICAgICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy50aGVtZSA9IHN0eWxlQ2xhc3M7XG4gICAgICAgICAgICB0aGlzLnNldENvb2tpZSgndWhyLXRoZW1lJywgc3R5bGVDbGFzcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRUaW1lKHRpbWU6IERhdGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50TWludXRlID0gbnVsbDtcbiAgICAgICAgaWYgKHRpbWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy50aW1lID0gbmV3IERhdGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRpbWVyICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMudGltZSA9IHRpbWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICB9XG5cbiAgICBzZXRNb2RlKG1vZGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMubW9kZSA9IG1vZGU7XG4gICAgICAgIHRoaXMuY3VycmVudE1pbnV0ZSA9IG51bGw7XG4gICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgICAgIHRoaXMuc2V0Q29va2llKCd1aHItbW9kZScsIG1vZGUpO1xuICAgIH1cblxuICAgIHNldFdpZHRoKHdpZHRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZSA9IHRoaXMud2lkZ2V0SW5zdGFuY2UuZWxlbWVudDtcbiAgICAgICAgZS5jc3MoJ3dpZHRoJywgd2lkdGgpO1xuICAgICAgICBjb25zdCByZWFsV2lkdGggPSBlLndpZHRoKCk7XG4gICAgICAgIGUud2lkdGgocmVhbFdpZHRoKTtcbiAgICAgICAgZS5oZWlnaHQocmVhbFdpZHRoKTtcbiAgICAgICAgZS5jc3MoJ2ZvbnQtc2l6ZScsIChyZWFsV2lkdGggLyA0MCkgKyAncHgnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwSFRNTCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZTogSlF1ZXJ5PEhUTUxFbGVtZW50PiA9IHRoaXMud2lkZ2V0SW5zdGFuY2UuZWxlbWVudDtcbiAgICAgICAgLy8gQmFzZSBjbG9jayBhcmVhXG4gICAgICAgIGUuYWRkQ2xhc3MoJ3VocicpXG4gICAgICAgICAgICAuZW1wdHkoKVxuICAgICAgICAgICAgLmFwcGVuZCgnPHNwYW4gY2xhc3M9XCJpdGVtIGRvdCBkb3QxXCI+PC9zcGFuPicpXG4gICAgICAgICAgICAuYXBwZW5kKCc8c3BhbiBjbGFzcz1cIml0ZW0gZG90IGRvdDJcIj48L3NwYW4+JylcbiAgICAgICAgICAgIC5hcHBlbmQoJzxzcGFuIGNsYXNzPVwiaXRlbSBkb3QgZG90M1wiPjwvc3Bhbj4nKVxuICAgICAgICAgICAgLmFwcGVuZCgnPHNwYW4gY2xhc3M9XCJpdGVtIGRvdCBkb3Q0XCI+PC9zcGFuPicpXG4gICAgICAgICAgICAuYXBwZW5kKCc8ZGl2IGNsYXNzPVwibGV0dGVyYXJlYVwiPjwvZGl2PicpXG4gICAgICAgICAgICAuYXBwZW5kKCc8ZGl2IGNsYXNzPVwicmVmbGVjdGlvblwiPjwvZGl2PicpO1xuXG4gICAgICAgIHRoaXMuc2V0V2lkdGgodGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLndpZHRoKTtcblxuICAgICAgICBpZiAodGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLmNvbnRyb2xzKSB7XG4gICAgICAgICAgICBjb25zdCBjb250cm9scGFuZWwgPSAkKGA8ZGl2IGNsYXNzPVwidWhyLWNvbnRyb2xwYW5lbFwiIGlkPVwidWhyLWNvbnRyb2xwYW5lbCR7dGhpcy53aWRnZXRJbnN0YW5jZS51dWlkfVwiPjwvZGl2PmApO1xuICAgICAgICAgICAgY29uc3QgY29udGVudCA9ICQoJzxkaXYgY2xhc3M9XCJjb250ZW50XCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICBjb250cm9scGFuZWwuYXBwZW5kKGNvbnRlbnQpO1xuICAgICAgICAgICAgLy8gb24vb2ZmIHN3aXRjaFxuICAgICAgICAgICAgY29uc3QgdG9nZ2xlU3dpdGNoID0gJChgPGRpdiBjbGFzcz1cIm9ub2Zmc3dpdGNoXCIgaWQ9XCJ1aHItb25vZmZzd2l0Y2gke3RoaXMud2lkZ2V0SW5zdGFuY2UudXVpZH1cIj48L2Rpdj5gKTtcbiAgICAgICAgICAgIHRvZ2dsZVN3aXRjaC5hcHBlbmQoYDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjbGFzcz1cIm9ub2Zmc3dpdGNoLWNoZWNrYm94XCIgaWQ9XCJ1aHItb25vZmZzd2l0Y2gtY2hlY2tib3gke3RoaXMud2lkZ2V0SW5zdGFuY2UudXVpZH1cIiBjaGVja2VkPVwiY2hlY2tlZFwiIC8+YCk7XG4gICAgICAgICAgICB0b2dnbGVTd2l0Y2guYXBwZW5kKGA8bGFiZWwgY2xhc3M9XCJvbm9mZnN3aXRjaC1sYWJlbFwiIGZvcj1cInVoci1vbm9mZnN3aXRjaC1jaGVja2JveCR7dGhpcy53aWRnZXRJbnN0YW5jZS51dWlkfVwiPjxkaXYgY2xhc3M9XCJvbm9mZnN3aXRjaC1pbm5lclwiPjwvZGl2PjxkaXYgY2xhc3M9XCJvbm9mZnN3aXRjaC1zd2l0Y2hcIj48L2Rpdj48L2xhYmVsPmApO1xuICAgICAgICAgICAgY29udGVudC5hcHBlbmQodG9nZ2xlU3dpdGNoKTtcblxuICAgICAgICAgICAgLy8gdGltZSBtb2RlIHN3aXRjaFxuICAgICAgICAgICAgY29uc3QgbW9kZVN3aXRjaCA9ICQoYDxkaXYgY2xhc3M9XCJvbm9mZnN3aXRjaFwiIGlkPVwidWhyLW1vZGVzd2l0Y2gke3RoaXMud2lkZ2V0SW5zdGFuY2UudXVpZH1cIj48L2Rpdj5gKTtcbiAgICAgICAgICAgIG1vZGVTd2l0Y2guYXBwZW5kKGA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJvbm9mZnN3aXRjaC1jaGVja2JveFwiIGlkPVwidWhyLW1vZGVzd2l0Y2gtY2hlY2tib3gke3RoaXMud2lkZ2V0SW5zdGFuY2UudXVpZH1cIiBjaGVja2VkPVwiY2hlY2tlZFwiIC8+YCk7XG4gICAgICAgICAgICBtb2RlU3dpdGNoLmFwcGVuZChgPGxhYmVsIGNsYXNzPVwib25vZmZzd2l0Y2gtbGFiZWxcIiBmb3I9XCJ1aHItbW9kZXN3aXRjaC1jaGVja2JveCR7dGhpcy53aWRnZXRJbnN0YW5jZS51dWlkfVwiPjxkaXYgY2xhc3M9XCJtb2Rlc3dpdGNoLWlubmVyXCI+PC9kaXY+PGRpdiBjbGFzcz1cIm9ub2Zmc3dpdGNoLXN3aXRjaFwiPjwvZGl2PjwvbGFiZWw+YCk7XG4gICAgICAgICAgICBjb250ZW50LmFwcGVuZChtb2RlU3dpdGNoKTtcbiAgICAgICAgICAgIC8vIGxhbmd1YWdlIGNob29zZXJcbiAgICAgICAgICAgIGlmIChHbG9iYWxzLmhhc011bHRpcGxlTGF5b3V0cygpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFuZ3VhZ2VDaG9vc2VyID0gJChgPHNlbGVjdCBpZD1cInVoci1sYW5ndWFnZWNob29zZXIke3RoaXMud2lkZ2V0SW5zdGFuY2UudXVpZH1cIj48L3NlbGVjdD5gKTtcbiAgICAgICAgICAgICAgICBHbG9iYWxzLmdldExheW91dHMoKS5mb3JFYWNoKGxheW91dCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlQ2hvb3Nlci5hcHBlbmQoYDxvcHRpb24gdmFsdWU9XCIke2xheW91dC5jb2RlfVwiPiR7bGF5b3V0LnByZXR0eU5hbWV9PC9vcHRpb24+YCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmQobGFuZ3VhZ2VDaG9vc2VyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gdGhlbWUgY2hvb3NlclxuICAgICAgICAgICAgaWYgKEdsb2JhbHMuaGFzTXVsdGlwbGVUaGVtZXMoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoZW1lQ2hvb3NlciA9ICQoYDxzZWxlY3QgaWQ9XCJ1aHItdGhlbWVjaG9vc2VyJHt0aGlzLndpZGdldEluc3RhbmNlLnV1aWR9XCI+PC9zZWxlY3Q+YCk7XG4gICAgICAgICAgICAgICAgR2xvYmFscy5nZXRUaGVtZXMoKS5mb3JFYWNoKHRoZW1lID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhlbWVDaG9vc2VyLmFwcGVuZChgPG9wdGlvbiB2YWx1ZT1cIiR7dGhlbWUuc3R5bGVDbGFzc31cIj4ke3RoZW1lLm5hbWV9PC9vcHRpb24+YCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmQodGhlbWVDaG9vc2VyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGNsb3NlYnV0dG9uID0gJChgPGEgY2xhc3M9XCJ1aHItY2xvc2Vjb250cm9scGFuZWxcIiBpZD1cInVoci1jbG9zZWNvbnRyb2xwYW5lbCR7dGhpcy53aWRnZXRJbnN0YW5jZS51dWlkfVwiPjwvYT5gKTtcbiAgICAgICAgICAgIC8vRklYTUUgZGVwcmVjYXRlZD8hXG4gICAgICAgICAgICBjbG9zZWJ1dHRvbi5vbignY2xpY2snLCAoKSA9PiAkKGAjdWhyLWNvbnRyb2xwYW5lbCR7dGhpcy53aWRnZXRJbnN0YW5jZS51dWlkfWApLmhpZGUoJ2Zhc3QnKSk7XG4gICAgICAgICAgICBjb250ZW50LmFwcGVuZChjbG9zZWJ1dHRvbik7XG4gICAgICAgICAgICBlLmFmdGVyKGNvbnRyb2xwYW5lbCk7XG4gICAgICAgICAgICBjb250cm9scGFuZWwuaGlkZSgpO1xuICAgICAgICAgICAgY29uc3QgY29uZmlnbGluayA9ICQoYDxhIGNsYXNzPVwidWhyLWNvbmZpZ2xpbmtcIiBpZD1cInVoci1jb25maWdsaW5rJHt0aGlzLndpZGdldEluc3RhbmNlLnV1aWR9XCI+PC9hPmApO1xuICAgICAgICAgICAgLy8gRklYTUUgZGVwcmVjYXRlZCE/XG4gICAgICAgICAgICBjb25maWdsaW5rLm9uKCdjbGljaycsICgpID0+IHRoaXMudG9nZ2xlQ29uZmlnU2NyZWVuKCkpO1xuICAgICAgICAgICAgZS5hZnRlcihjb25maWdsaW5rKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBwcml2YXRlIHdpcmVGdW5jdGlvbmFsaXR5KCk6IHZvaWQge1xuICAgICAgICAvLyBvbi9vZmYgc3dpdGNoXG4gICAgICAgIGNvbnN0IHRvZ2dsZVN3aXRjaCA9ICQoYCN1aHItb25vZmZzd2l0Y2gtY2hlY2tib3gke3RoaXMud2lkZ2V0SW5zdGFuY2UudXVpZH1gKTtcbiAgICAgICAgLy8gRklYTUUgZGVwcmVjYXRlZCE/XG4gICAgICAgIHRvZ2dsZVN3aXRjaC5vbignY2xpY2snLCAoKSA9PiB0aGlzLnRvZ2dsZSgpKTtcbiAgICAgICAgbGV0IHN0YXR1cyA9IHRoaXMuZ2V0Q29va2llKCd1aHItc3RhdHVzJyk7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMuZm9yY2UpIHtcbiAgICAgICAgICAgIHN0YXR1cyA9IHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy5zdGF0dXM7XG4gICAgICAgIH1cbiAgICAgICAgdG9nZ2xlU3dpdGNoLnByb3AoJ2NoZWNrZWQnLCBzdGF0dXMgPT09ICdvbicpO1xuICAgICAgICBpZiAoc3RhdHVzID09PSAnb24nKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0b3AoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRpbWUgbW9kZSBzd2l0Y2hcbiAgICAgICAgY29uc3QgbW9kZVN3aXRjaCA9ICQoYCN1aHItbW9kZXN3aXRjaC1jaGVja2JveCR7dGhpcy53aWRnZXRJbnN0YW5jZS51dWlkfWApO1xuICAgICAgICAvLyBGSVhNRSBkZXByZWNhdGVkIT9cbiAgICAgICAgbW9kZVN3aXRjaC5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLm1vZGUgPT09ICdzZWNvbmRzJykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TW9kZSgnbm9ybWFsJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TW9kZSgnc2Vjb25kcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBsZXQgbW9kZSA9IHRoaXMuZ2V0Q29va2llKCd1aHItbW9kZScpO1xuICAgICAgICBpZiAobW9kZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy5mb3JjZSkge1xuICAgICAgICAgICAgbW9kZSA9IHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy5tb2RlO1xuICAgICAgICB9XG4gICAgICAgIG1vZGVTd2l0Y2gucHJvcCgnY2hlY2tlZCcsIG1vZGUgIT09ICdzZWNvbmRzJyk7XG4gICAgICAgIGlmIChtb2RlID09PSAnc2Vjb25kcycpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0TW9kZSgnc2Vjb25kcycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRNb2RlKCdub3JtYWwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGxhbmd1YWdlIGNob29zZXJcbiAgICAgICAgY29uc3QgbGFuZ3VhZ2VDaG9vc2VyID0gJChgI3Voci1sYW5ndWFnZWNob29zZXIke3RoaXMud2lkZ2V0SW5zdGFuY2UudXVpZH1gKTtcbiAgICAgICAgLy8gRklYTUUgZGVwcmVjYXRlZCE/XG4gICAgICAgIGxhbmd1YWdlQ2hvb3Nlci5vbignY2hhbmdlJywgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGFuZ3VhZ2VLZXkgPSAkKGAjdWhyLWxhbmd1YWdlY2hvb3NlciR7dGhpcy53aWRnZXRJbnN0YW5jZS51dWlkfWApLnZhbCgpIGFzIHN0cmluZztcbiAgICAgICAgICAgIHRoaXMuc2V0TGFuZ3VhZ2UobGFuZ3VhZ2VLZXkpO1xuICAgICAgICB9KTtcbiAgICAgICAgbGV0IHNlbGVjdGVkTGF5b3V0ID0gdGhpcy5nZXRDb29raWUoJ3Voci1sYW5ndWFnZScpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRMYXlvdXQgPT09IHVuZGVmaW5lZCB8fCB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMuZm9yY2UpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkTGF5b3V0ID0gdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLmxhbmd1YWdlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBmb3VuZCA9IEdsb2JhbHMuZ2V0TGF5b3V0cygpLnNvbWUoaXRlbSA9PiBzZWxlY3RlZExheW91dCA9PT0gaXRlbS5jb2RlKTtcbiAgICAgICAgaWYgKCFmb3VuZCkge1xuICAgICAgICAgICAgbGV0IGZhbGxiYWNrTGFuZ3VhZ2U7XG4gICAgICAgICAgICBpZiAoR2xvYmFscy5oYXNMYXlvdXRzKCkpIHtcbiAgICAgICAgICAgICAgICBmYWxsYmFja0xhbmd1YWdlID0gR2xvYmFscy5nZXRGaXJzdExheW91dCgpLmNvZGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZhbGxiYWNrTGFuZ3VhZ2UgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgTGFuZ3VhZ2UgJyR7c2VsZWN0ZWRMYXlvdXR9JyBub3QgZm91bmQhIFVzaW5nIGZhbGxiYWNrICcke2ZhbGxiYWNrTGFuZ3VhZ2V9Jy5gKTtcbiAgICAgICAgICAgIHNlbGVjdGVkTGF5b3V0ID0gZmFsbGJhY2tMYW5ndWFnZTtcbiAgICAgICAgfVxuICAgICAgICBsYW5ndWFnZUNob29zZXIudmFsKHNlbGVjdGVkTGF5b3V0KTtcbiAgICAgICAgdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLmxhbmd1YWdlID0gXCJcIjtcbiAgICAgICAgdGhpcy5zZXRMYW5ndWFnZShzZWxlY3RlZExheW91dCk7XG5cbiAgICAgICAgLy8gdGhlbWUgY2hvb3NlclxuICAgICAgICBjb25zdCB0aGVtZUNob29zZXIgPSAkKGAjdWhyLXRoZW1lY2hvb3NlciR7dGhpcy53aWRnZXRJbnN0YW5jZS51dWlkfWApO1xuICAgICAgICAvLyBGSVhNRSBkZXByZWNhdGVkIT9cbiAgICAgICAgdGhlbWVDaG9vc2VyLm9uKCdjaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0aGVtZUtleSA9ICQoYCN1aHItdGhlbWVjaG9vc2VyJHt0aGlzLndpZGdldEluc3RhbmNlLnV1aWR9YCkudmFsKCkgYXMgc3RyaW5nO1xuICAgICAgICAgICAgdGhpcy5zZXRUaGVtZSh0aGVtZUtleSk7XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgc2VsZWN0ZWRUaGVtZSA9IHRoaXMuZ2V0Q29va2llKCd1aHItdGhlbWUnKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkVGhlbWUgPT09IHVuZGVmaW5lZCB8fCB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMuZm9yY2UpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkVGhlbWUgPSB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMudGhlbWU7XG4gICAgICAgIH1cbiAgICAgICAgZm91bmQgPSBHbG9iYWxzLmdldFRoZW1lcygpLnNvbWUoaXRlbSA9PiBzZWxlY3RlZFRoZW1lID09PSBpdGVtLnN0eWxlQ2xhc3MpO1xuICAgICAgICBpZiAoIWZvdW5kKSB7XG4gICAgICAgICAgICBjb25zdCBmYWxsYmFja1RoZW1lID0gR2xvYmFscy5nZXRGaXJzdFRoZW1lKCkuc3R5bGVDbGFzcztcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgVGhlbWUgJyR7c2VsZWN0ZWRUaGVtZX0nIG5vdCBmb3VuZCEgVXNpbmcgZmFsbGJhY2sgJyR7ZmFsbGJhY2tUaGVtZX0nLmApO1xuICAgICAgICAgICAgc2VsZWN0ZWRUaGVtZSA9IGZhbGxiYWNrVGhlbWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhlbWVDaG9vc2VyLnZhbChzZWxlY3RlZFRoZW1lKTtcbiAgICAgICAgdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLnRoZW1lID0gXCJcIjtcbiAgICAgICAgdGhpcy5zZXRUaGVtZShzZWxlY3RlZFRoZW1lKTtcbiAgICAgICAgaWYgKHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy5hdXRvcmVzaXplKSB7XG4gICAgICAgICAgICAvLyBGSVhNRSBkZXByZWNhdGVkIT9cbiAgICAgICAgICAgICQod2luZG93KS5vbigncmVzaXplJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0ICRlID0gdGhpcy53aWRnZXRJbnN0YW5jZS5lbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0ICRwYXJlbnQgPSAkZS5wYXJlbnQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCAkd2luZG93ID0gJCh3aW5kb3cpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFdpZHRoID0gJHBhcmVudC53aWR0aCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudEhlaWdodCA9ICRwYXJlbnQuaGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgd2luZG93V2lkdGggPSAkd2luZG93LndpZHRoKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gJHdpbmRvdy5oZWlnaHQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzaXplID0gYCR7TWF0aC5taW4ocGFyZW50V2lkdGgsIHBhcmVudEhlaWdodCwgd2luZG93V2lkdGgsIHdpbmRvd0hlaWdodCl9cHhgO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0V2lkdGgoc2l6ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNPbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGltZXIgIT09IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb29raWUoY29va2llTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIENvb2tpZXMuZ2V0KGNvb2tpZU5hbWUgKyB0aGlzLndpZGdldEluc3RhbmNlLnV1aWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q29va2llKGNvb2tpZU5hbWU6IHN0cmluZywgY29va2llVmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBsZXQgb3B0aW9ucztcbiAgICAgICAgaWYgKHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy5jb29raWVQYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7ZXhwaXJlczogMzY1LCBwYXRoOiB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMuY29va2llUGF0aH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvcHRpb25zID0ge2V4cGlyZXM6IDM2NX07XG4gICAgICAgIH1cbiAgICAgICAgQ29va2llcy5zZXQoY29va2llTmFtZSArIHRoaXMud2lkZ2V0SW5zdGFuY2UudXVpZCwgY29va2llVmFsdWUsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc09uKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRpbWUgPSB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMudGltZTtcbiAgICAgICAgICAgIGlmICghdGhpcy5nZXRDdXJyZW50TGF5b3V0KCkuaGFzT3duUHJvcGVydHkoJ3NlY29uZHMnKSAmJiB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMubW9kZSAhPT0gJ3NlY29uZHMnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRpbWUuZ2V0TWludXRlcygpID09PSB0aGlzLmN1cnJlbnRNaW51dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRNaW51dGUgPSB0aW1lLmdldE1pbnV0ZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2hvdyh0aW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE1pbnV0ZSA9IC0xO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93KHRpbWU6IERhdGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2Vjb25kID0gdGhpcy5nZXRTZWNvbmQodGltZSk7XG4gICAgICAgIGNvbnN0IGRvdE1pbnV0ZSA9IHRoaXMuZ2V0RG90TWludXRlKHRpbWUpO1xuICAgICAgICBjb25zdCBob3VyID0gdGhpcy5nZXRIb3VyKHRpbWUpO1xuICAgICAgICBjb25zdCBjb2Fyc2VNaW51dGUgPSB0aGlzLmdldENvYXJzZU1pbnV0ZSh0aW1lKTtcbiAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICBpZiAodGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLm1vZGUgPT09ICdzZWNvbmRzJykge1xuICAgICAgICAgICAgdGhpcy5oaWdobGlnaHQoYHNlY29uZCR7c2Vjb25kfWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oaWdobGlnaHQoJ29uJyk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBkb3RNaW51dGU7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0KGBkb3Qke2l9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmhpZ2hsaWdodChgbWludXRlJHtjb2Fyc2VNaW51dGV9YCk7XG4gICAgICAgICAgICB0aGlzLmhpZ2hsaWdodChgaG91ciR7aG91cn1gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2UuZWxlbWVudC5maW5kKCcuaXRlbScpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZ2hsaWdodChpdGVtQ2xhc3M6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLndpZGdldEluc3RhbmNlLmVsZW1lbnQuZmluZChgLml0ZW0uJHtpdGVtQ2xhc3N9YCkuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2Vjb25kKHRpbWU6IERhdGUpOiBudW1iZXIge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZ2V0Q3VycmVudExheW91dCgpLmdldFNlY29uZHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEN1cnJlbnRMYXlvdXQoKS5nZXRTZWNvbmRzKHRpbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aW1lLmdldFNlY29uZHMoKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBnZXREb3RNaW51dGUoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5nZXRDdXJyZW50TGF5b3V0KCkuZ2V0RG90TWludXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDdXJyZW50TGF5b3V0KCkuZ2V0RG90TWludXRlKGRhdGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRlLmdldE1pbnV0ZXMoKSAlIDU7XG4gICAgfTtcblxuICAgIHByaXZhdGUgZ2V0Q29hcnNlTWludXRlKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZ2V0Q3VycmVudExheW91dCgpLmdldENvYXJzZU1pbnV0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q3VycmVudExheW91dCgpLmdldENvYXJzZU1pbnV0ZShkYXRlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0ZS5nZXRNaW51dGVzKCk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgZ2V0SG91cihkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmdldEN1cnJlbnRMYXlvdXQoKS5nZXRIb3VyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDdXJyZW50TGF5b3V0KCkuZ2V0SG91cihkYXRlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBob3VyID0gZGF0ZS5nZXRIb3VycygpO1xuICAgICAgICBpZiAoZGF0ZS5nZXRNaW51dGVzKCkgPj0gMjUpIHtcbiAgICAgICAgICAgIHJldHVybiAoaG91ciArIDEpICUgMjQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgfTtcblxuICAgIHByaXZhdGUgdG9nZ2xlQ29uZmlnU2NyZWVuKCkge1xuICAgICAgICAkKGAjdWhyLWNvbnRyb2xwYW5lbCR7dGhpcy53aWRnZXRJbnN0YW5jZS51dWlkfWApLnRvZ2dsZSgnZmFzdCcpO1xuICAgIH07XG5cbiAgICBwcml2YXRlIHBhcnNlSGFzaCgpOiB2b2lkIHtcbiAgICAgICAgbGV0IGhhc2g6IHN0cmluZyA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoO1xuICAgICAgICBpZiAoaGFzaCAhPT0gdW5kZWZpbmVkICYmIGhhc2guY2hhckF0KDApID09PSAnIycpIHtcbiAgICAgICAgICAgIGhhc2ggPSBoYXNoLnN1YnN0cmluZygxKTtcbiAgICAgICAgICAgIGhhc2ggPSBkZWNvZGVVUklDb21wb25lbnQoaGFzaCk7XG4gICAgICAgICAgICBjb25zdCBwYXJhbXM6IHN0cmluZ1tdID0gaGFzaC5zcGxpdCgnJicpO1xuICAgICAgICAgICAgcGFyYW1zLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFpcjogc3RyaW5nW10gPSBlbGVtZW50LnNwbGl0KCc9Jyk7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gcGFpclswXTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhaXJbMV07XG4gICAgICAgICAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbCc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2xhbmd1YWdlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy5sYW5ndWFnZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLmZvcmNlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICd0JzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAndGhlbWUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLnRoZW1lID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMuZm9yY2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdtb2RlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2Uub3B0aW9ucy5tb2RlID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndpZGdldEluc3RhbmNlLm9wdGlvbnMuZm9yY2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdzdGF0dXMnOlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLnN0YXR1cyA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLmZvcmNlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDdXJyZW50TGF5b3V0KCk6IExheW91dCB7XG4gICAgICAgIGNvbnN0IG1hdGNoaW5nTGFuZ3VhZ2VzOiBMYXlvdXRbXSA9IEdsb2JhbHMuZ2V0TGF5b3V0cygpLmZpbHRlcihlbGVtZW50ID0+IGVsZW1lbnQuY29kZSA9PT0gdGhpcy53aWRnZXRJbnN0YW5jZS5vcHRpb25zLmxhbmd1YWdlLCB0aGlzKTtcbiAgICAgICAgaWYgKG1hdGNoaW5nTGFuZ3VhZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaGluZ0xhbmd1YWdlc1swXTtcbiAgICAgICAgfVxuICAgICAgICAvLyBmYWxsYmFjazogcmV0dXJuIGVtcHR5IG9iamVjdFxuICAgICAgICByZXR1cm4gRU1QVFlfTEFZT1VUO1xuICAgIH07XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7QUFhQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFLQTtBQUFBO0FBSEE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBOzsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/uhr.ts\n");
/***/ }),
/***/ 0:
-/*!****************************!*\
- !*** multi ./src/index.ts ***!
- \****************************/
+/*!*****************************************************************!*\
+ !*** multi ./src/index.ts ./node_modules/jquery/dist/jquery.js ***!
+ \*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
-module.exports = __webpack_require__(/*! ./src/index.ts */"./src/index.ts");
+__webpack_require__(/*! ./src/index.ts */"./src/index.ts");
+module.exports = __webpack_require__(/*! ./node_modules/jquery/dist/jquery.js */"./node_modules/jquery/dist/jquery.js");
/***/ })
diff --git a/index.html b/index.html
index 68deb84..4b1266e 100644
--- a/index.html
+++ b/index.html
@@ -21,18 +21,27 @@ along with this program. If not, see .
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
-
+
+
+
+