Free javascript Hosting


assent.js

Uploaded on Jan 24 2022 17:57 by ast

/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "https://coreid-test.assently.com/embed/";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 169);
/******/ })
/************************************************************************/
/******/ ({

/***/ 169:
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__(79);
module.exports = __webpack_require__(170);


/***/ }),

/***/ 170:
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.init = undefined;\n\nvar _providerHelpers = __webpack_require__(171);\n\nvar providerHelpers = _interopRequireWildcard(_providerHelpers);\n\nvar _cookieHelpers = __webpack_require__(80);\n\nvar cookieHelpers = _interopRequireWildcard(_cookieHelpers);\n\nvar _preloadHelpers = __webpack_require__(172);\n\nvar preloadHelpers = _interopRequireWildcard(_preloadHelpers);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar CORE_ID_GLOBAL_NAME = 'coreid_client';\n\nvar coreid = void 0;\nvar coreIdParams = void 0;\nvar content = void 0;\n\nfunction init(params) {\n // Call preloader to load images when the script is loaded. \n // On the second call the will be taken from cache (304 expected instead of 200).\n preloadHelpers.addLoadEvent(preloadHelpers.initPreload(\"https://coreid-test.assently.com\" + '/embed'));\n\n // TODO: check that config includes everything needed\n coreIdParams = params;\n //Works but needs to be made pretty\n if (getQueryString('id') && getQueryString('status')) {\n var decodedJwtToken = { provider: \"unknown\" };\n\n var jwtToken = getQueryString('identityToken');\n\n if (jwtToken) {\n decodedJwtToken = deconstructJWT(jwtToken);\n }\n\n var request_success = false;\n var request_status = getQueryString('status');\n if (request_status === 'authenticated') {\n request_success = true;\n }\n\n coreIdParams.callback({\n provider: decodedJwtToken.provider,\n success: request_success,\n token: jwtToken,\n type: request_status,\n id: getQueryString('id'),\n errorMessage: getQueryString('errorMessage')\n });\n }\n\n // return coreid for easy chaining\n return coreid;\n}\n\nvar getQueryString = function getQueryString(field, url) {\n var href = url ? url : window.location.href;\n var reg = new RegExp('[?&]' + field + '=([^&#]*)', 'i');\n var string = reg.exec(href);\n return string ? string[1] : null;\n};\n\nfunction deconstructJWT(token) {\n var segments = token.split(\".\");\n if (!segments instanceof Array || segments.length !== 3) {\n throw new Error(\"Invalid JWT\");\n }\n var claims = segments[1];\n return JSON.parse(decodeURIComponent(escape(window.atob(claims))));\n};\n\nfunction start() {\n // Communicate between iframe and this script (in page)\n window.addEventListener('message', recieveMessage, false);\n\n var _coreIdParams = coreIdParams,\n _coreIdParams$injectI = _coreIdParams.injectIntoNode,\n injectIntoNode = _coreIdParams$injectI === undefined ? document.body : _coreIdParams$injectI,\n config = _coreIdParams.config,\n callback = _coreIdParams.callback,\n token = _coreIdParams.token;\n\n var showAsModal = injectIntoNode === document.body;\n var injectNodeIsString = typeof injectIntoNode === \"string\";\n var rootNode = injectNodeIsString ? document.querySelector(injectIntoNode) : injectIntoNode;\n\n // Add parameter to style\n config.showAsModal = showAsModal;\n\n // Update provder if can detect from last usage or browser language. If not keep config settings.\n /*\n Rules for selecting the country and provider.\n 1. Detect by cookie (last used option)\n 2. Detect by browser language for country usage\n 3. Take it as default from client configuration\n */\n var lastUsedProvider = cookieHelpers.getCookie(\"usedProvider\", document.cookie);\n var detectedLanguage = providerHelpers.getBrowserLanguage();\n\n var checkedLocation = providerHelpers.checkRegionByLanguage(config.allowedEids, detectedLanguage);\n var checkedLastUsedProvider = providerHelpers.checkLastUsedProvider(config.allowedEids, lastUsedProvider);\n var isEnbledPovider = providerHelpers.IsEnabled(config.mode, checkedLastUsedProvider);\n // Check for provider based on cookie\n\n if (checkedLastUsedProvider && isEnbledPovider) {\n if (config.provider == undefined) {\n Object.defineProperty(config, 'provider', {\n value: '',\n writable: true,\n enumerable: true\n });\n }\n config.provider = checkedLastUsedProvider;\n }\n\n // Check for country based on browser language\n else if (checkedLocation) {\n if (config.location == undefined) {\n Object.defineProperty(config, 'location', {\n value: '',\n writable: true,\n enumerable: true\n });\n }\n config.location = checkedLocation;\n }\n\n // Config will be passed to iframe as an base 64 encoded string\n var configHash = window.btoa(unescape(encodeURIComponent(JSON.stringify(config))));\n // in order to be able to return after autostarting some clients on mobile browsers,\n // url of current page must be passed along to the embed client.\n var embedUrl = window.location.href;\n var iframe = document.createElement('IFRAME');\n\n iframe.className = 'coreid-embed-iframe';\n iframe.name = 'coreid-embed-iframe';\n\n if (!isBrowserWhiteListed()) {\n var xmlHttp = new XMLHttpRequest();\n var requestNonceUrl = \"https://coreid-test.assently.com\" + '/embed/nonce?token=' + coreIdParams.token;\n xmlHttp.onreadystatechange = function () {\n if (xmlHttp.readyState == 4 && xmlHttp.status == 201) {\n var nonce = xmlHttp.responseText;\n iframe.src = \"https://coreid-test.assently.com\" + '/embed/client?config=' + encodeURIComponent(configHash) + '&token=' + encodeURIComponent(coreIdParams.token) + '&nonce=' + nonce + '&embedUrl=' + encodeURIComponent(embedUrl);\n } else {\n console.log(xmlHttp.statusText);\n }\n };\n xmlHttp.open(\"POST\", requestNonceUrl, true); // true for asynchronous\n xmlHttp.setRequestHeader('Access-Control-Allow-Origin', '*');\n xmlHttp.send(null);\n } else {\n iframe.src = \"https://coreid-test.assently.com\" + '/embed/client?config=' + encodeURIComponent(configHash) + '&token=' + encodeURIComponent(coreIdParams.token) + '&embedUrl=' + encodeURIComponent(embedUrl);\n }\n\n var modalStyle = [\n // ['-webkit-tap-highlight-color', 'transparent'],\n ['background', 'rgba(0,0,0,0.005)'], ['border', '0px none transparent'], ['display', 'block'], ['height', '100%'], ['left', '0px'], ['margin', '0px'], ['overflowX', 'hidden'], ['overflowY', 'auto'], ['padding', '0px'], ['position', 'fixed'], ['top', '0px'], ['visibility', 'visible'], ['width', '100%'], ['zIndex', '2147483647']];\n\n var inlineStyle = [['background', 'transparent'], ['border', '0px none transparent'], ['display', 'block'], ['padding', '0px']];\n\n var theStyle = showAsModal ? modalStyle : inlineStyle;\n\n // copy each rule separately, iframe.style is readonly in strict mode\n theStyle.forEach(function (rule) {\n return iframe.style[rule[0]] = rule[1];\n });\n rootNode.appendChild(iframe);\n\n content = iframe;\n // return coreid for easy chaining\n return coreid;\n}\n\nfunction close() {\n if (content) {\n content.parentNode.removeChild(content);\n content = null;\n }\n}\n\nfunction recieveMessage(evt) {\n // For Chrome, the origin property is in the event.originalEvent object.\n var origin = evt.origin || evt.originalEvent.origin;\n var data = evt.data;\n\n // Only listen to messages from our server\n\n if (origin !== \"https://coreid-test.assently.com\") {\n return;\n }\n\n if (data.type === \"coreId-location\") {\n //request to open an URL.\n var tempUrl = data.url;\n console.log(\"Opening url in 1000 ms:\", tempUrl);\n setTimeout(function () {\n window.location.href = tempUrl;\n }, 2000);\n }\n\n if (data.type === \"cancelled\") {\n // remove UI\n close();\n }\n\n if (data.type === 'cookie-message') {\n cookieHelpers.setCookie('usedProvider', data.value, 30);\n }\n\n if (data.type === \"tupas\") {\n var form = document.createElement(\"form\");\n form.setAttribute(\"method\", \"post\");\n form.setAttribute(\"action\", data.serviceUrl);\n\n for (var key in data.servicePayload) {\n if (data.servicePayload.hasOwnProperty(key)) {\n var hiddenField = document.createElement(\"input\");\n hiddenField.setAttribute(\"type\", \"hidden\");\n hiddenField.setAttribute(\"name\", key);\n hiddenField.setAttribute(\"value\", data.servicePayload[key]);\n\n form.appendChild(hiddenField);\n }\n }\n\n document.body.appendChild(form);\n form.submit();\n } else {\n // trigger callback with data\n coreIdParams.callback(data);\n }\n}\n\nfunction isBrowserWhiteListed() {\n var whiteList = ['Chrome/', 'Firefox/', 'Safari/',\n // IE\n ';MSIE ', '; MSIE ', ', MSIE ', 'Trident/7.0; rv:11.0'];\n\n // var whiteList = []\n var userAgent = navigator.userAgent;\n\n for (var i = 0; i < whiteList.length; i++) {\n if (userAgent.indexOf(whiteList[i]) != -1) {\n return true;\n }\n }\n\n return false;\n}\n\nwindow[CORE_ID_GLOBAL_NAME] = coreid = {\n VERSION: \"1.0.0\",\n init: init,\n start: start,\n close: close\n};\n\nexports.init = init;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcwLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3NyYy9jb3JlaWQuanM/MTUxYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwcm92aWRlckhlbHBlcnMgZnJvbSAnc3JjL2hlbHBlcnMvcHJvdmlkZXItaGVscGVycyc7XG5pbXBvcnQgKiBhcyBjb29raWVIZWxwZXJzIGZyb20gJ3NyYy9oZWxwZXJzL2Nvb2tpZS1oZWxwZXJzJztcbmltcG9ydCAqIGFzIHByZWxvYWRIZWxwZXJzIGZyb20gJ3NyYy9oZWxwZXJzL3ByZWxvYWQtaGVscGVycyc7XG5cbmNvbnN0IENPUkVfSURfR0xPQkFMX05BTUUgPSAnY29yZWlkX2NsaWVudCc7XG5cbmxldCBjb3JlaWQ7IFxubGV0IGNvcmVJZFBhcmFtcztcbmxldCBjb250ZW50O1xuXG5mdW5jdGlvbiBpbml0KHBhcmFtcykge1xuICAvLyBDYWxsIHByZWxvYWRlciB0byBsb2FkIGltYWdlcyB3aGVuIHRoZSBzY3JpcHQgaXMgbG9hZGVkLiBcbiAgLy8gT24gdGhlIHNlY29uZCBjYWxsIHRoZSB3aWxsIGJlIHRha2VuIGZyb20gY2FjaGUgKDMwNCBleHBlY3RlZCBpbnN0ZWFkIG9mIDIwMCkuXG4gIHByZWxvYWRIZWxwZXJzLmFkZExvYWRFdmVudChwcmVsb2FkSGVscGVycy5pbml0UHJlbG9hZChDT1JFSURfQ0xJRU5UX1NFUlZFUiArICcvZW1iZWQnKSk7XG5cbiAgLy8gVE9ETzogY2hlY2sgdGhhdCBjb25maWcgaW5jbHVkZXMgZXZlcnl0aGluZyBuZWVkZWRcbiAgY29yZUlkUGFyYW1zID0gcGFyYW1zO1xuICAvL1dvcmtzIGJ1dCBuZWVkcyB0byBiZSBtYWRlIHByZXR0eVxuICBpZihnZXRRdWVyeVN0cmluZygnaWQnKSAmJiBnZXRRdWVyeVN0cmluZygnc3RhdHVzJykpXG4gIHtcbiAgICB2YXIgZGVjb2RlZEp3dFRva2VuID0geyBwcm92aWRlcjogXCJ1bmtub3duXCIgfTtcblxuICAgIHZhciBqd3RUb2tlbiA9IGdldFF1ZXJ5U3RyaW5nKCdpZGVudGl0eVRva2VuJyk7XG5cbiAgICBpZihqd3RUb2tlbikgeyBcbiAgICAgIGRlY29kZWRKd3RUb2tlbiA9IGRlY29uc3RydWN0SldUKGp3dFRva2VuKTsgXG4gICAgfVxuXG4gICAgdmFyIHJlcXVlc3Rfc3VjY2VzcyA9IGZhbHNlO1xuICAgIHZhciByZXF1ZXN0X3N0YXR1cyA9IGdldFF1ZXJ5U3RyaW5nKCdzdGF0dXMnKTtcbiAgICBpZihyZXF1ZXN0X3N0YXR1cyA9PT0gJ2F1dGhlbnRpY2F0ZWQnKSB7IHJlcXVlc3Rfc3VjY2VzcyA9IHRydWU7fVxuICAgIFxuICAgIGNvcmVJZFBhcmFtcy5jYWxsYmFjayh7IFxuICAgICAgcHJvdmlkZXI6IGRlY29kZWRKd3RUb2tlbi5wcm92aWRlciwgXG4gICAgICBzdWNjZXNzOiByZXF1ZXN0X3N1Y2Nlc3MsIFxuICAgICAgdG9rZW46IGp3dFRva2VuLCBcbiAgICAgIHR5cGU6IHJlcXVlc3Rfc3RhdHVzLFxuICAgICAgaWQ6IGdldFF1ZXJ5U3RyaW5nKCdpZCcpLFxuICAgICAgZXJyb3JNZXNzYWdlOiBnZXRRdWVyeVN0cmluZygnZXJyb3JNZXNzYWdlJylcbiAgICB9KVxuICB9XG5cbiAgXG4gIC8vIHJldHVybiBjb3JlaWQgZm9yIGVhc3kgY2hhaW5pbmdcbiAgcmV0dXJuIGNvcmVpZDtcbn1cblxudmFyIGdldFF1ZXJ5U3RyaW5nID0gZnVuY3Rpb24gKCBmaWVsZCwgdXJsICkge1xuICAgIHZhciBocmVmID0gdXJsID8gdXJsIDogd2luZG93LmxvY2F0aW9uLmhyZWY7XG4gICAgdmFyIHJlZyA9IG5ldyBSZWdFeHAoICdbPyZdJyArIGZpZWxkICsgJz0oW14mI10qKScsICdpJyApO1xuICAgIHZhciBzdHJpbmcgPSByZWcuZXhlYyhocmVmKTtcbiAgICByZXR1cm4gc3RyaW5nID8gc3RyaW5nWzFdIDogbnVsbDtcbn07XG5cbmZ1bmN0aW9uIGRlY29uc3RydWN0SldUKHRva2VuKSB7XG4gICAgdmFyIHNlZ21lbnRzID0gdG9rZW4uc3BsaXQoXCIuXCIpO1xuICAgIGlmICghc2VnbWVudHMgaW5zdGFuY2VvZiBBcnJheSB8fCBzZWdtZW50cy5sZW5ndGggIT09IDMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgSldUXCIpO1xuICAgIH1cbiAgICB2YXIgY2xhaW1zID0gc2VnbWVudHNbMV07XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZSh3aW5kb3cuYXRvYihjbGFpbXMpKSkpO1xufTtcblxuZnVuY3Rpb24gc3RhcnQoKSB7XG4gIC8vIENvbW11bmljYXRlIGJldHdlZW4gaWZyYW1lIGFuZCB0aGlzIHNjcmlwdCAoaW4gcGFnZSlcbiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCByZWNpZXZlTWVzc2FnZSwgZmFsc2UpO1xuXG4gIGNvbnN0IHsgaW5qZWN0SW50b05vZGUgPSBkb2N1bWVudC5ib2R5LCBjb25maWcsIGNhbGxiYWNrLCB0b2tlbiB9ID0gY29yZUlkUGFyYW1zO1xuICBjb25zdCBzaG93QXNNb2RhbCA9IGluamVjdEludG9Ob2RlID09PSBkb2N1bWVudC5ib2R5O1xuICBjb25zdCBpbmplY3ROb2RlSXNTdHJpbmcgPSB0eXBlb2YgaW5qZWN0SW50b05vZGUgPT09IFwic3RyaW5nXCI7XG4gIGNvbnN0IHJvb3ROb2RlID0gaW5qZWN0Tm9kZUlzU3RyaW5nID8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihpbmplY3RJbnRvTm9kZSkgOiBpbmplY3RJbnRvTm9kZTtcblxuICAvLyBBZGQgcGFyYW1ldGVyIHRvIHN0eWxlXG4gIGNvbmZpZy5zaG93QXNNb2RhbCA9IHNob3dBc01vZGFsO1xuXG4gIC8vIFVwZGF0ZSBwcm92ZGVyIGlmIGNhbiBkZXRlY3QgZnJvbSBsYXN0IHVzYWdlIG9yIGJyb3dzZXIgbGFuZ3VhZ2UuIElmIG5vdCBrZWVwIGNvbmZpZyBzZXR0aW5ncy5cbiAgLypcbiAgUnVsZXMgZm9yIHNlbGVjdGluZyB0aGUgY291bnRyeSBhbmQgcHJvdmlkZXIuXG4gIDEuIERldGVjdCBieSBjb29raWUgKGxhc3QgdXNlZCBvcHRpb24pXG4gIDIuIERldGVjdCBieSBicm93c2VyIGxhbmd1YWdlIGZvciBjb3VudHJ5IHVzYWdlXG4gIDMuIFRha2UgaXQgYXMgZGVmYXVsdCBmcm9tIGNsaWVudCBjb25maWd1cmF0aW9uXG4gICovXG4gIHZhciBsYXN0VXNlZFByb3ZpZGVyID0gY29va2llSGVscGVycy5nZXRDb29raWUoXCJ1c2VkUHJvdmlkZXJcIiwgZG9jdW1lbnQuY29va2llKTtcbiAgdmFyIGRldGVjdGVkTGFuZ3VhZ2UgPSAgcHJvdmlkZXJIZWxwZXJzLmdldEJyb3dzZXJMYW5ndWFnZSgpO1xuXG4gIHZhciBjaGVja2VkTG9jYXRpb24gPSBwcm92aWRlckhlbHBlcnMuY2hlY2tSZWdpb25CeUxhbmd1YWdlKGNvbmZpZy5hbGxvd2VkRWlkcywgZGV0ZWN0ZWRMYW5ndWFnZSk7XG4gIHZhciBjaGVja2VkTGFzdFVzZWRQcm92aWRlciA9IHByb3ZpZGVySGVscGVycy5jaGVja0xhc3RVc2VkUHJvdmlkZXIoY29uZmlnLmFsbG93ZWRFaWRzLCBsYXN0VXNlZFByb3ZpZGVyKTtcbiAgdmFyIGlzRW5ibGVkUG92aWRlciA9ICBwcm92aWRlckhlbHBlcnMuSXNFbmFibGVkKGNvbmZpZy5tb2RlLCBjaGVja2VkTGFzdFVzZWRQcm92aWRlcik7XG4gIC8vIENoZWNrIGZvciBwcm92aWRlciBiYXNlZCBvbiBjb29raWVcbiAgXG4gIGlmKGNoZWNrZWRMYXN0VXNlZFByb3ZpZGVyICYmIGlzRW5ibGVkUG92aWRlcikge1xuICAgIGlmKGNvbmZpZy5wcm92aWRlciA9PSB1bmRlZmluZWQpIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25maWcsICdwcm92aWRlcicsIHtcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbmZpZy5wcm92aWRlciA9IGNoZWNrZWRMYXN0VXNlZFByb3ZpZGVyO1xuICB9XG4gIFxuICAvLyBDaGVjayBmb3IgY291bnRyeSBiYXNlZCBvbiBicm93c2VyIGxhbmd1YWdlXG4gIGVsc2UgaWYoY2hlY2tlZExvY2F0aW9uKSB7XG4gICAgaWYoY29uZmlnLmxvY2F0aW9uID09IHVuZGVmaW5lZCkge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbmZpZywgJ2xvY2F0aW9uJywge1xuICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uZmlnLmxvY2F0aW9uID0gY2hlY2tlZExvY2F0aW9uO1xuICB9XG4gIFxuICAvLyBDb25maWcgd2lsbCBiZSBwYXNzZWQgdG8gaWZyYW1lIGFzIGFuIGJhc2UgNjQgZW5jb2RlZCBzdHJpbmdcbiAgY29uc3QgY29uZmlnSGFzaCA9IHdpbmRvdy5idG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjb25maWcpKSkpO1xuICAvLyBpbiBvcmRlciB0byBiZSBhYmxlIHRvIHJldHVybiBhZnRlciBhdXRvc3RhcnRpbmcgc29tZSBjbGllbnRzIG9uIG1vYmlsZSBicm93c2VycyxcbiAgLy8gdXJsIG9mIGN1cnJlbnQgcGFnZSBtdXN0IGJlIHBhc3NlZCBhbG9uZyB0byB0aGUgZW1iZWQgY2xpZW50LlxuICBjb25zdCBlbWJlZFVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICBjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdJRlJBTUUnKTtcblxuICBpZnJhbWUuY2xhc3NOYW1lID0gJ2NvcmVpZC1lbWJlZC1pZnJhbWUnO1xuICBpZnJhbWUubmFtZSA9ICdjb3JlaWQtZW1iZWQtaWZyYW1lJztcbiAgXG4gIGlmICghaXNCcm93c2VyV2hpdGVMaXN0ZWQoKSkge1xuICAgICAgIHZhciB4bWxIdHRwID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgICAgdmFyIHJlcXVlc3ROb25jZVVybCA9IENPUkVJRF9DTElFTlRfU0VSVkVSICsgJy9lbWJlZC9ub25jZT90b2tlbj0nICsgY29yZUlkUGFyYW1zLnRva2VuXG4gICAgICAgeG1sSHR0cC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKHhtbEh0dHAucmVhZHlTdGF0ZSA9PSA0ICYmIHhtbEh0dHAuc3RhdHVzID09IDIwMSlcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YXIgbm9uY2UgPSB4bWxIdHRwLnJlc3BvbnNlVGV4dDtcbiAgICAgICAgICAgIGlmcmFtZS5zcmMgID0gQ09SRUlEX0NMSUVOVF9TRVJWRVIgKyAnL2VtYmVkL2NsaWVudD9jb25maWc9JyArIGVuY29kZVVSSUNvbXBvbmVudChjb25maWdIYXNoKSArICcmdG9rZW49JyArIGVuY29kZVVSSUNvbXBvbmVudChjb3JlSWRQYXJhbXMudG9rZW4pICsgJyZub25jZT0nICsgbm9uY2UgKyAnJmVtYmVkVXJsPScrZW5jb2RlVVJJQ29tcG9uZW50KGVtYmVkVXJsKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHhtbEh0dHAuc3RhdHVzVGV4dClcbiAgICAgICAgICB9XG4gICAgfVxuICAgIHhtbEh0dHAub3BlbihcIlBPU1RcIiwgcmVxdWVzdE5vbmNlVXJsICwgdHJ1ZSk7IC8vIHRydWUgZm9yIGFzeW5jaHJvbm91c1xuICAgIHhtbEh0dHAuc2V0UmVxdWVzdEhlYWRlcignQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJywgJyonKTtcbiAgICB4bWxIdHRwLnNlbmQobnVsbCk7XG4gIH1cbiAgZWxzZVxuICB7XG4gICAgaWZyYW1lLnNyYyAgPSBDT1JFSURfQ0xJRU5UX1NFUlZFUiArICcvZW1iZWQvY2xpZW50P2NvbmZpZz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGNvbmZpZ0hhc2gpICsgJyZ0b2tlbj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGNvcmVJZFBhcmFtcy50b2tlbikgKyAnJmVtYmVkVXJsPScrZW5jb2RlVVJJQ29tcG9uZW50KGVtYmVkVXJsKTtcbiAgfVxuXG4gIGNvbnN0IG1vZGFsU3R5bGUgPSBbXG4gICAgLy8gWyctd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3InLCAndHJhbnNwYXJlbnQnXSxcbiAgICBbJ2JhY2tncm91bmQnLCAncmdiYSgwLDAsMCwwLjAwNSknXSxcbiAgICBbJ2JvcmRlcicsICcwcHggbm9uZSB0cmFuc3BhcmVudCddLFxuICAgIFsnZGlzcGxheScsICdibG9jayddLFxuICAgIFsnaGVpZ2h0JywgJzEwMCUnXSxcbiAgICBbJ2xlZnQnLCAnMHB4J10sXG4gICAgWydtYXJnaW4nLCAnMHB4J10sXG4gICAgWydvdmVyZmxvd1gnLCAnaGlkZGVuJ10sXG4gICAgWydvdmVyZmxvd1knLCAnYXV0byddLFxuICAgIFsncGFkZGluZycsICcwcHgnXSxcbiAgICBbJ3Bvc2l0aW9uJywgJ2ZpeGVkJ10sXG4gICAgWyd0b3AnLCAnMHB4J10sXG4gICAgWyd2aXNpYmlsaXR5JywgJ3Zpc2libGUnXSxcbiAgICBbJ3dpZHRoJywgJzEwMCUnXSxcbiAgICBbJ3pJbmRleCcsICcyMTQ3NDgzNjQ3J10sXG4gIF07XG5cbiAgY29uc3QgaW5saW5lU3R5bGUgPSBbXG4gICAgWydiYWNrZ3JvdW5kJywgJ3RyYW5zcGFyZW50J10sXG4gICAgWydib3JkZXInLCAnMHB4IG5vbmUgdHJhbnNwYXJlbnQnXSxcbiAgICBbJ2Rpc3BsYXknLCAnYmxvY2snXSxcbiAgICBbJ3BhZGRpbmcnLCAnMHB4J10sXG4gIF07XG5cbiAgY29uc3QgdGhlU3R5bGUgPSBzaG93QXNNb2RhbCA/IG1vZGFsU3R5bGUgOiBpbmxpbmVTdHlsZTtcblxuICAvLyBjb3B5IGVhY2ggcnVsZSBzZXBhcmF0ZWx5LCBpZnJhbWUuc3R5bGUgaXMgcmVhZG9ubHkgaW4gc3RyaWN0IG1vZGVcbiAgdGhlU3R5bGUuZm9yRWFjaCgocnVsZSkgPT4gaWZyYW1lLnN0eWxlW3J1bGVbMF1dID0gcnVsZVsxXSk7XG4gIHJvb3ROb2RlLmFwcGVuZENoaWxkKGlmcmFtZSk7XG5cbiAgY29udGVudCA9IGlmcmFtZTtcbiAgLy8gcmV0dXJuIGNvcmVpZCBmb3IgZWFzeSBjaGFpbmluZ1xuICByZXR1cm4gY29yZWlkO1xufVxuXG5mdW5jdGlvbiBjbG9zZSgpIHtcbiAgaWYgKGNvbnRlbnQpIHtcbiAgICBjb250ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY29udGVudCk7XG4gICAgY29udGVudCA9IG51bGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVjaWV2ZU1lc3NhZ2UoZXZ0KSB7XG4gIC8vIEZvciBDaHJvbWUsIHRoZSBvcmlnaW4gcHJvcGVydHkgaXMgaW4gdGhlIGV2ZW50Lm9yaWdpbmFsRXZlbnQgb2JqZWN0LlxuICBjb25zdCBvcmlnaW4gPSBldnQub3JpZ2luIHx8IGV2dC5vcmlnaW5hbEV2ZW50Lm9yaWdpbjtcbiAgY29uc3QgeyBkYXRhIH0gPSBldnQ7XG5cbiAgLy8gT25seSBsaXN0ZW4gdG8gbWVzc2FnZXMgZnJvbSBvdXIgc2VydmVyXG4gIGlmIChvcmlnaW4gIT09IENPUkVJRF9DTElFTlRfU0VSVkVSKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGRhdGEudHlwZSA9PT0gXCJjb3JlSWQtbG9jYXRpb25cIil7XG4gICAgLy9yZXF1ZXN0IHRvIG9wZW4gYW4gVVJMLlxuICAgIHZhciB0ZW1wVXJsID0gZGF0YS51cmw7XG4gICAgY29uc29sZS5sb2coXCJPcGVuaW5nIHVybCBpbiAxMDAwIG1zOlwiLHRlbXBVcmwpO1xuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXt3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRlbXBVcmw7fSwyMDAwKTtcbiAgfVxuXG4gIGlmIChkYXRhLnR5cGUgPT09IFwiY2FuY2VsbGVkXCIpIHtcbiAgICAvLyByZW1vdmUgVUlcbiAgICBjbG9zZSgpO1xuICB9XG5cbiAgaWYoZGF0YS50eXBlID09PSAnY29va2llLW1lc3NhZ2UnKSB7XG4gICAgY29va2llSGVscGVycy5zZXRDb29raWUoJ3VzZWRQcm92aWRlcicsIGRhdGEudmFsdWUsIDMwKTtcbiAgfVxuXG4gIGlmKGRhdGEudHlwZSA9PT0gXCJ0dXBhc1wiKSB7XG4gICAgdmFyIGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZm9ybVwiKTtcbiAgICBmb3JtLnNldEF0dHJpYnV0ZShcIm1ldGhvZFwiLCBcInBvc3RcIik7XG4gICAgZm9ybS5zZXRBdHRyaWJ1dGUoXCJhY3Rpb25cIiwgZGF0YS5zZXJ2aWNlVXJsKTtcblxuICAgIGZvcih2YXIga2V5IGluIGRhdGEuc2VydmljZVBheWxvYWQpIHtcbiAgICAgICAgaWYoZGF0YS5zZXJ2aWNlUGF5bG9hZC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICB2YXIgaGlkZGVuRmllbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIik7XG4gICAgICAgICAgICBoaWRkZW5GaWVsZC5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsIFwiaGlkZGVuXCIpO1xuICAgICAgICAgICAgaGlkZGVuRmllbGQuc2V0QXR0cmlidXRlKFwibmFtZVwiLCBrZXkpO1xuICAgICAgICAgICAgaGlkZGVuRmllbGQuc2V0QXR0cmlidXRlKFwidmFsdWVcIiwgZGF0YS5zZXJ2aWNlUGF5bG9hZFtrZXldKTtcblxuICAgICAgICAgICAgZm9ybS5hcHBlbmRDaGlsZChoaWRkZW5GaWVsZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pO1xuICAgIGZvcm0uc3VibWl0KCk7XG4gIH0gZWxzZSB7XG4gICAgLy8gdHJpZ2dlciBjYWxsYmFjayB3aXRoIGRhdGFcbiAgICBjb3JlSWRQYXJhbXMuY2FsbGJhY2soZGF0YSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNCcm93c2VyV2hpdGVMaXN0ZWQoKXtcbiAgdmFyIHdoaXRlTGlzdCA9IFsnQ2hyb21lLycsXG4gICAgJ0ZpcmVmb3gvJyxcbiAgICAnU2FmYXJpLycsXG4gICAgLy8gSUVcbiAgICAnO01TSUUgJyxcbiAgICAnOyBNU0lFICcsXG4gICAgJywgTVNJRSAnLFxuICAgICdUcmlkZW50LzcuMDsgcnY6MTEuMCddXG5cbi8vICAgdmFyIHdoaXRlTGlzdCA9IFtdXG4gIHZhciB1c2VyQWdlbnQgPSBuYXZpZ2F0b3IudXNlckFnZW50O1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgd2hpdGVMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHVzZXJBZ2VudC5pbmRleE9mKHdoaXRlTGlzdFtpXSkgIT0gLTEpXG4gICAge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG53aW5kb3dbQ09SRV9JRF9HTE9CQUxfTkFNRV0gPSBjb3JlaWQgPSB7XG4gIFZFUlNJT046IENPUkVfSURfVkVSU0lPTixcbiAgaW5pdDogaW5pdCxcbiAgc3RhcnQ6IHN0YXJ0LFxuICBjbG9zZTogY2xvc2UsXG59O1xuXG5leHBvcnQgeyBpbml0IH07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gc3JjL2NvcmVpZC5qcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7QUFEQTtBQUNBO0FBQUE7QUFDQTtBQURBO0FBQ0E7QUFBQTtBQUNBO0FBREE7QUFDQTs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFRQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFYQTtBQWFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFDQTtBQUlBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFDQTtBQU1BIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///170\n");

/***/ }),

/***/ 171:
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getBrowserLanguage = getBrowserLanguage;\nexports.checkRegionByLanguage = checkRegionByLanguage;\nexports.checkLastUsedProvider = checkLastUsedProvider;\nexports.IsEnabled = IsEnabled;\n\nvar _data = __webpack_require__(55);\n\nfunction getBrowserLanguage() {\n var userLang = navigator.language || navigator.userLanguage;\n\n return userLang;\n}\n\nfunction checkRegionByLanguage(configAllowed, languageCode) {\n var detectedRegion = '';\n\n switch (languageCode) {\n case 'sv':\n detectedRegion = 'sv';\n break;\n case 'sv-sv':\n detectedRegion = 'sv';\n break;\n case 'sv-fi':\n detectedRegion = 'fi';\n break;\n case 'no':\n detectedRegion = 'no';\n break;\n case 'nb':\n detectedRegion = 'no';\n break;\n case 'nn':\n detectedRegion = 'no';\n break;\n case 'fi':\n detectedRegion = 'fi';\n break;\n case 'da':\n detectedRegion = 'dk';\n break;\n default:\n detectedRegion = '';\n break;\n }\n\n // Check if region is has allowed providers\n var isAllowed = function isAllowed(currentValue, searchedValue) {\n return currentValue.indexOf(searchedValue) > 0;\n };\n var isIncluded = configAllowed.some(function (item) {\n return isAllowed(item, detectedRegion);\n });\n\n if (configAllowed.indexOf('*') > 0 || configAllowed.indexOf(detectedRegion) > 0 || isIncluded) return detectedRegion;\n\n return '';\n}\n\nfunction checkLastUsedProvider(configAllowed, lastUsedProvider) {\n if (configAllowed.indexOf(lastUsedProvider) > 0) {\n return lastUsedProvider;\n }\n\n if (lastUsedProvider && configAllowed.indexOf('*') > 0) return lastUsedProvider;\n\n return '';\n}\n\nfunction IsEnabled(mode, providerName) {\n var provider = _data.eids.filter(function (item) {\n return item.id === providerName;\n })[0];\n\n if (typeof provider === \"undefined\") {\n return false;\n };\n if (typeof provider[mode] === \"undefined\") {\n return false;\n };\n\n return provider[mode];\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcxLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3NyYy9oZWxwZXJzL3Byb3ZpZGVyLWhlbHBlcnMuanM/NWI5MCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2VpZHN9IGZyb20gJ3NyYy9kYXRhLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJyb3dzZXJMYW5ndWFnZSgpIHtcbiAgICB2YXIgdXNlckxhbmcgPSBuYXZpZ2F0b3IubGFuZ3VhZ2UgfHwgbmF2aWdhdG9yLnVzZXJMYW5ndWFnZTtcbiAgXG4gICAgcmV0dXJuIHVzZXJMYW5nO1xufVxuICAgIFxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUmVnaW9uQnlMYW5ndWFnZShjb25maWdBbGxvd2VkLCBsYW5ndWFnZUNvZGUpXG57XG4gIHZhciBkZXRlY3RlZFJlZ2lvbiA9ICcnO1xuXG4gIHN3aXRjaChsYW5ndWFnZUNvZGUpIHtcbiAgICBjYXNlICdzdic6XG4gICAgICBkZXRlY3RlZFJlZ2lvbiA9ICdzdic7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdzdi1zdic6XG4gICAgICBkZXRlY3RlZFJlZ2lvbiA9ICdzdic7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdzdi1maSc6XG4gICAgICBkZXRlY3RlZFJlZ2lvbiA9ICdmaSc7XG4gICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbm8nOlxuICAgICAgZGV0ZWN0ZWRSZWdpb24gPSAnbm8nO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbmInOlxuICAgICAgZGV0ZWN0ZWRSZWdpb24gPSAnbm8nO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbm4nOlxuICAgICAgZGV0ZWN0ZWRSZWdpb24gPSAnbm8nO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZmknOlxuICAgICAgZGV0ZWN0ZWRSZWdpb24gPSAnZmknO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZGEnOlxuICAgICAgZGV0ZWN0ZWRSZWdpb24gPSAnZGsnO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGRldGVjdGVkUmVnaW9uID0gJyc7XG4gICAgICBicmVhaztcbiAgfVxuICBcbiAgLy8gQ2hlY2sgaWYgcmVnaW9uIGlzIGhhcyBhbGxvd2VkIHByb3ZpZGVyc1xuICBjb25zdCBpc0FsbG93ZWQgPSAoY3VycmVudFZhbHVlLCBzZWFyY2hlZFZhbHVlKSA9PiBjdXJyZW50VmFsdWUuaW5kZXhPZihzZWFyY2hlZFZhbHVlKSA+IDA7XG4gIHZhciBpc0luY2x1ZGVkID0gY29uZmlnQWxsb3dlZC5zb21lKGl0ZW0gPT4gaXNBbGxvd2VkKGl0ZW0sIGRldGVjdGVkUmVnaW9uKSk7XG5cbiAgaWYgKGNvbmZpZ0FsbG93ZWQuaW5kZXhPZignKicpID4gMCB8fCBjb25maWdBbGxvd2VkLmluZGV4T2YoZGV0ZWN0ZWRSZWdpb24pID4gMCB8fCBpc0luY2x1ZGVkKSByZXR1cm4gZGV0ZWN0ZWRSZWdpb247XG5cbiAgcmV0dXJuICcnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tMYXN0VXNlZFByb3ZpZGVyKGNvbmZpZ0FsbG93ZWQsIGxhc3RVc2VkUHJvdmlkZXIpXG57XG4gIGlmKGNvbmZpZ0FsbG93ZWQuaW5kZXhPZihsYXN0VXNlZFByb3ZpZGVyKSA+IDApIHtcbiAgICAgcmV0dXJuIGxhc3RVc2VkUHJvdmlkZXI7XG4gIH1cblxuICBpZiAobGFzdFVzZWRQcm92aWRlciAmJiBjb25maWdBbGxvd2VkLmluZGV4T2YoJyonKSA+IDApIHJldHVybiBsYXN0VXNlZFByb3ZpZGVyO1xuICBcbiAgcmV0dXJuICcnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gSXNFbmFibGVkKG1vZGUsIHByb3ZpZGVyTmFtZSkge1xuICB2YXIgcHJvdmlkZXIgPSBlaWRzLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuICAgIHJldHVybiAoaXRlbS5pZCA9PT0gcHJvdmlkZXJOYW1lKVxuICB9KVswXTtcblxuICBpZigodHlwZW9mIHByb3ZpZGVyID09PSBcInVuZGVmaW5lZFwiKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcbiAgaWYodHlwZW9mKHByb3ZpZGVyW21vZGVdKSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiBmYWxzZVxuICB9O1xuXG4gIHJldHVybiBwcm92aWRlclttb2RlXTtcbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gc3JjL2hlbHBlcnMvcHJvdmlkZXItaGVscGVycy5qcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQTtBQU1BO0FBMkNBO0FBV0E7QUFDQTtBQS9EQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUEzQkE7QUFDQTtBQTZCQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///171\n");

/***/ }),

/***/ 172:
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.initPreload = initPreload;\nexports.addLoadEvent = addLoadEvent;\n\nvar _data = __webpack_require__(55);\n\nfunction preload(logoSource) {\n\n for (var i = 0; i < logoSource.length; i++) {\n var image = document.createElement(\"img\");\n image.setAttribute('src', logoSource[i]);\n image = null;\n }\n};\n\nfunction initPreload(baseAddress) {\n var logos = _data.eids.map(function (item) {\n return baseAddress + item.logo.substring(1, item.logo.length);\n });\n var extraList = [baseAddress + '/fi-bankid-static/coreid.png', baseAddress + '/fi-bankid-static/S-Pankki.png', baseAddress + '/fi-bankid-static/Saasto.png', baseAddress + '/fi-bankid-static/POP.png', baseAddress + '/fi-bankid-static/OP.png', baseAddress + '/fi-bankid-static/OmaSp.png', baseAddress + '/fi-bankid-static/NORDEA.png', baseAddress + '/fi-bankid-static/Handelsbanken.png', baseAddress + '/fi-bankid-static/DanskeBank.png', baseAddress + '/fi-bankid-static/Alandsbanken.png', baseAddress + '/fi-bankid-static/Aktia.png', baseAddress + '/fi-bankid-static/mobiilivarmenne.png', baseAddress + '/fi-bankid-static/S-Pankki.png', baseAddress + '/fi-bankid-static/Saasto.png'];\n\n logos = logos.concat(extraList);\n preload(logos);\n};\n\nfunction addLoadEvent(func) {\n var oldonload = window.onload;\n if (typeof window.onload != 'function') {\n window.onload = func;\n } else {\n window.onload = function () {\n if (oldonload) {\n oldonload();\n }\n func();\n };\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcyLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3NyYy9oZWxwZXJzL3ByZWxvYWQtaGVscGVycy5qcz9kNGE3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZWlkc30gZnJvbSAnc3JjL2RhdGEuanMnO1xuXG5mdW5jdGlvbiBwcmVsb2FkKGxvZ29Tb3VyY2UpIHtcbiAgICBcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxvZ29Tb3VyY2UubGVuZ3RoOyBpKyspIHsgICAgICAgIFxuICAgICAgICB2YXIgaW1hZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW1nXCIpO1xuICAgICAgICBpbWFnZS5zZXRBdHRyaWJ1dGUoJ3NyYycsIGxvZ29Tb3VyY2VbaV0pO1xuICAgICAgICBpbWFnZSA9IG51bGw7XG4gICAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRQcmVsb2FkKGJhc2VBZGRyZXNzKSB7XG4gICAgdmFyIGxvZ29zID0gZWlkcy5tYXAoaXRlbSA9PiBiYXNlQWRkcmVzcyArIGl0ZW0ubG9nby5zdWJzdHJpbmcoMSxpdGVtLmxvZ28ubGVuZ3RoKSk7XG4gICAgdmFyIGV4dHJhTGlzdCA9IFtiYXNlQWRkcmVzcyArICcvZmktYmFua2lkLXN0YXRpYy9jb3JlaWQucG5nJyxcbiAgICBiYXNlQWRkcmVzcyArICcvZmktYmFua2lkLXN0YXRpYy9TLVBhbmtraS5wbmcnLFxuICAgIGJhc2VBZGRyZXNzICsgJy9maS1iYW5raWQtc3RhdGljL1NhYXN0by5wbmcnLFxuICAgIGJhc2VBZGRyZXNzICsgJy9maS1iYW5raWQtc3RhdGljL1BPUC5wbmcnLFxuICAgIGJhc2VBZGRyZXNzICsgJy9maS1iYW5raWQtc3RhdGljL09QLnBuZycsXG4gICAgYmFzZUFkZHJlc3MgKyAnL2ZpLWJhbmtpZC1zdGF0aWMvT21hU3AucG5nJyxcbiAgICBiYXNlQWRkcmVzcyArICcvZmktYmFua2lkLXN0YXRpYy9OT1JERUEucG5nJyxcbiAgICBiYXNlQWRkcmVzcyArICcvZmktYmFua2lkLXN0YXRpYy9IYW5kZWxzYmFua2VuLnBuZycsXG4gICAgYmFzZUFkZHJlc3MgKyAnL2ZpLWJhbmtpZC1zdGF0aWMvRGFuc2tlQmFuay5wbmcnLFxuICAgIGJhc2VBZGRyZXNzICsgJy9maS1iYW5raWQtc3RhdGljL0FsYW5kc2Jhbmtlbi5wbmcnLFxuICAgIGJhc2VBZGRyZXNzICsgJy9maS1iYW5raWQtc3RhdGljL0FrdGlhLnBuZycsXG4gICAgYmFzZUFkZHJlc3MgKyAnL2ZpLWJhbmtpZC1zdGF0aWMvbW9iaWlsaXZhcm1lbm5lLnBuZycsXG4gICAgYmFzZUFkZHJlc3MgKyAnL2ZpLWJhbmtpZC1zdGF0aWMvUy1QYW5ra2kucG5nJyxcbiAgICBiYXNlQWRkcmVzcyArICcvZmktYmFua2lkLXN0YXRpYy9TYWFzdG8ucG5nJ107XG5cbiAgICBsb2dvcyA9IGxvZ29zLmNvbmNhdChleHRyYUxpc3QpO1xuICAgIHByZWxvYWQobG9nb3MpO1xufTtcbiAgIFxuZXhwb3J0IGZ1bmN0aW9uIGFkZExvYWRFdmVudChmdW5jKSB7XG4gICAgdmFyIG9sZG9ubG9hZCA9IHdpbmRvdy5vbmxvYWQ7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cub25sb2FkICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmM7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaWYgKG9sZG9ubG9hZCkge1xuICAgICAgICAgICAgICAgIG9sZG9ubG9hZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuYygpO1xuICAgICAgICB9XG4gICAgfVxufTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gc3JjL2hlbHBlcnMvcHJlbG9hZC1oZWxwZXJzLmpzIl0sIm1hcHBpbmdzIjoiOzs7OztBQVdBO0FBcUJBO0FBQ0E7QUFqQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQWNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///172\n");

/***/ }),

/***/ 55:
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/* global module */\n// Use CommonJS format because this file will also be required by webpack\n\nvar MAJOR_VERSION = 1;\nvar MINOR_VERSION = 0;\nvar PATCH_VERSION = 0;\n\nmodule.exports.MAJOR_VERSION = MAJOR_VERSION;\nmodule.exports.MINOR_VERSION = MINOR_VERSION;\nmodule.exports.PATCH_VERSION = PATCH_VERSION;\nmodule.exports.VERSION = MAJOR_VERSION + '.' + MINOR_VERSION + '.' + PATCH_VERSION;\n\nmodule.exports.locations = [{\n id: \"fi\",\n //name: \"Finland\",\n nameen: \"Finland\",\n namesv: \"Finland\",\n namefi: \"Suomi\",\n nameno: \"Finland\",\n namedk: 'Finland',\n eids: ['fi-mv', 'fi-vrk', 'fi-bankid'] // list of available EIDs\n}, {\n id: \"se\",\n //name: \"Sweden\",\n nameen: \"Sweden\",\n namesv: \"Sverige\",\n namefi: \"Ruotsi\",\n nameno: \"Sverige\",\n namedk: 'Sverige',\n eids: ['se-bankid', 'se-eidas', 'se-siths-osif', 'se-frejaeidplus'] // list of available EIDs\n}, {\n id: \"no\",\n //name: \"Norway\",\n nameen: \"Norway\",\n namesv: \"Norge\",\n namefi: \"Norja\",\n nameno: \"Norge\",\n namedk: 'Norge',\n eids: ['no-bankid', 'no-bankid-mobile'] // list of available EIDs\n}, {\n id: 'dk',\n nameen: 'Denmark',\n namesv: 'Danmark',\n namefi: 'Tanska',\n nameno: 'Danmark',\n namedk: 'Danmark',\n eids: ['dk-nemid']\n}];\n\n// NOTE: Added auth an sign true for all providers due to the PO request.\n// All available EIDs, app root tag name must match this (in index.tag)\nmodule.exports.eids = [{ id: 'se-bankid', name: 'BankID', logo: './se-bankid-static/icon_64x64@2x.png', auth: true, sign: true, wildCardAllowed: true }, { id: 'fi-bankid', name: 'Pankkitunnisteet', logo: './fi-bankid-static/coreid.png', auth: true, sign: true, wildCardAllowed: true }, { id: 'fi-mv', name: 'Mobiilivarmenne', logo: './fi-mv-static/mobiilivarmenne.png', auth: true, sign: true, wildCardAllowed: true }, { id: 'no-bankid', name: 'BankID', logo: './no-bankid-static/BankID_Main_Logo.svg', auth: true, sign: true, signFormat: ['text'], wildCardAllowed: true }, { id: 'no-bankid-mobile', name: 'BankID mobile', logo: './no-bankid-mobile-static/ico_bimotp.svg', auth: true, sign: true, signFormat: ['text'], wildCardAllowed: true }, { id: 'fi-vrk', name: 'Väestörekisterikeskus', logo: './fi-vrk-static/logo.png', auth: true, sign: true, wildCardAllowed: true }, {\n id: 'dk-nemid',\n name: 'NemID',\n logo: './dk-nemid-static/nemid_black.png',\n auth: true, sign: true,\n wildCardAllowed: true\n}, { id: 'se-eidas', name: 'eIDAS', logo: './se-eidas-static/flag_yellow_low.svg', auth: true, sign: false, wildCardAllowed: true }, { id: 'se-siths-osif', name: 'SITHS - Säker IT inom Hälso- och Sjukvård', logo: './se-siths-osif-static/coreid.svg', auth: true, sign: true, wildCardAllowed: true }, { id: 'se-frejaeidplus', name: 'FREJA eID', logo: './se-frejaeidplus-static/Freja_eID_logo.svg', auth: true, sign: true, wildCardAllowed: false }];\nmodule.exports.languages = [{\n id: 'en',\n Name: 'English',\n AlloweEids: ['se-bankid', 'se-eidas', 'se-siths-osif', 'fi-mv', 'fi-tupas', 'fi-vrk', 'no-bankid', 'no-bankid-mobile', 'fi-bankid', 'se-frejaeidplus'],\n errors: {\n api_unavailable: 'Cannot connect to backend servers, please try again.',\n generic: 'Something went wrong, please try again.'\n },\n Title: 'Login',\n SignTitle: 'Sign',\n SelectCountry: 'Select country',\n SelectEid: 'Select your eID',\n ChangeCountry: 'Change Country',\n Cancel: 'Cancel',\n SocialSecurityNo: 'Enter your National ID Number',\n SocialSecurityNoPlaceholder: 'YYMMDDNNNN',\n Continue: 'Continue',\n SeBankidStartAppMessage: 'Start the BankID App',\n SeBankidUseCurrentDeviceMessage: 'Use BankID on this device',\n SeBankidUseOtherDeviceMessage: 'Use BankID on another device',\n SeBankidUseQRCodeMessage: 'QR Code',\n SeBankidCancelQRCodeMessage: 'Use National ID Number',\n SeBankidStartMessage1: 'Trying to start your BankID App',\n SeBankidStartMessage2: 'Launch the BankID App manually if it does not launch automatically.',\n SeBankidStartMessage3: 'Launch BankID App on the device you want to use.',\n SeBankidStartMessage4: 'The BankID App is still waiting to launch automatically...',\n SeBankidStartMessage5: 'Still waiting for the BankID App to be launched on the other device ...',\n SeBankidStartMessage6: 'The BankID App has been launched, looking for BankID',\n SeBankidStartMessage7: 'If a few seconds have passed and still no BankID has been found, you probably don’t have a BankID which can be used for the transaction on this device.',\n SeBankidStartMessage8: 'Enter your security code in the BankID App and select Identify or Sign.',\n SeBankidErrorMessage1: 'BankID transaction failed',\n SeBankidErrorMessage2: 'An identification or signing for this personal number is already started. Please try again.',\n SeBankidErrorMessage3: 'Internal error. Please try again.',\n SeBankidErrorMessage4: 'Update your BankID App and try again.',\n SeBankidErrorMessage5: 'The BankID App is not responding. Please check that the program is started and that you have internet access. If you don’t have a valid BankID you can get one from your bank. Try again.',\n SeBankidErrorMessage6: 'The BankID you are trying to use is revoked or too old. Please use another BankID or order a new one from your internet bank.',\n SeBankidErrorMessage7: 'Action cancelled.',\n SeBankidErrorMessage8: 'Action cancelled. Please try again.',\n SeBankidErrorMessage9: 'The BankID App couldn’t be found on your computer or mobile device. Please install it and order a BankID from your internet bank.',\n TryAgain: 'Try again',\n Finish: 'Finish',\n OperationFailed: 'We apologize, an error occurred and the identification could not be completed. Please try again later.',\n ChangeEid: 'Change eID',\n FiMvTelephone: 'Phone number',\n FiMvTelephonePlaceholder: 'e.g 044 1440144',\n FiMvAntiJammingCode: 'Anti-spam code',\n FiMvAntiJammingCodePlaceholder: 'Optional',\n FiMvErrorMessageGeneric: 'Something went wrong! Please try again.',\n FiMvErrorCode: 'Error code: ',\n FiMvError_1011: 'User and provided spam codes do not match', //using a spamcode when user doesnt have one registered, or the wrong one\n FiMvError_1050: 'Can\\'t connect to Mobiilivarmenne', // this is probably because the servers IP isnt whitelisted\n FiMvError_1051: 'Incorrect format',\n FiMvError_1052: 'Unknown user',\n FiMvError_1053: 'Unregistered user',\n FiMvError_1054: 'Incompatible SIM card',\n FiMvError_1012: 'Spam code is required for this request',\n FiMvError_2080: 'Time limit exceeded, please try again',\n FiMvStartMessage1: 'Starting...',\n FiMvStartMessage2: 'Waiting for authentication',\n FiMvStartSign: 'Waiting for signature, signature request arrives at the device with the code:',\n FiMvStartMessage3: 'Identification failed.',\n Leave: 'Leave',\n NoBankId_Authentication: 'Identification',\n NoBankId_Signing: 'Signing',\n NoBankId_MobileInputLabel: 'Phone number and date of birth',\n NoBankId_PhonePlaceholder: '8 digits',\n NoBankId_DobPlaceholder: 'ddmmyy',\n NoBankId_PhoneHint: 'Phone number',\n NoBankId_DobHint: 'Date of birth',\n NoBankId_ReferenceWords: 'Reference word',\n NoBankId_FollowMobileInstructions: 'Follow the instruction on your mobile',\n NoBankId_MobileSuccess: 'Identification is complete',\n NoBankId_MobileFail: 'An error has occured',\n NoBankId_MobileFailHelpText: 'Please try again.',\n NoBankId_WebClientSuccess: 'Identification is complete',\n NoBankidMessage1: 'STARTED',\n NoBankidMessage2: 'AUTHENTICATED',\n NoBankidMessage3: 'AUTHENTICATION FAILED',\n NoBankidMessage4: 'AN ERROR OCCURED',\n NoBankidSelectOtherCountry: 'Select other country',\n SeSithsOsifStartMessage1: 'Start security software',\n SeSithsOsifStartMessage2: 'You have to accept that the security software \"Net iD\" can be launched. The browser has displayed a notification to which you should press \"Allow\" to continue.',\n SeSithsOsifStartMessage3: 'Opens security software',\n SeSithsOsifStartMessage4: 'Verifying...',\n SeSithsOsifErrorMessage1: 'Identification failed',\n SeSithsOsifErrorMessage1B: 'Signing failed',\n SeSithsOsifErrorMessage2: 'The security software Net iD does not start. Make sure the software is installed and that you are using a supported browser: Internet Explorer 10.',\n SeSithsOsifErrorMessage3: 'Could not communicate with the security software. It may be because you have an old version installed or the browser has blocked access. Please check your installation.',\n SeSithsOsifErrorMessage4: 'The security software is too old. Please update to the latest version.',\n SeSithsOsifErrorMessage5: 'The user cancelled the operation in the security software.',\n SeSithsOsifErrorMessage6: 'The security software could not allocate enough memory. Try to close some applications before trying again.',\n SeSithsOsifErrorMessage7: 'The security software is too old. Please update to the latest version.',\n SeSithsOsifErrorMessage8: 'An internal error has occurred.',\n SeSithsOsifErrorMessage9: 'A secure connection could not be established.',\n SeSithsOsifErrorMessage10: 'Insert the eID card in your reader and make sure that the card reader is properly connected.',\n SeSithsOsifErrorMessage11: 'The eID has expired. Contact your eID provider',\n SeSithsOsifErrorMessage12: 'The eID has been revoked and can not be used. Contact your eID provider.',\n SeSithsOsifErrorMessage13: 'The eID is faulty. Contact your eID provider.',\n SeSithsOsifErrorMessage14: 'The eID is about to expire and must be renewed. Contact your eID provider.',\n SeSithsOsifErrorMessage15: 'A technical error occurred at the eID provider. Please try again later.',\n SeSithsOsifErrorMessage16: 'Provider\\'s verification service is temporarily unavailable, please try again later.',\n SelectLanguage: 'Select language',\n FiTupasStartMessage1: 'Starting...',\n FiTupasStartMessage2: 'Waiting for authentication, transaction ID: ',\n FiTupasStartMessage3: 'Authentication failed.',\n nemid: {\n errors: {\n APP001: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n APP002: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n APP003: 'A technical error has occurred. Please contact <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID support</a>.',\n APP004: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n APP007: 'A technical error has occurred. Contact Assently.',\n APP008: 'A technical error has occurred. Contact Assently.',\n APP009: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n APP010: 'A technical error has occurred. Please try again.',\n AUTH001: 'Your NemID is blocked. Please contact <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID support</a>.',\n AUTH003: 'Login succeeded but you have no bank agreement. Please contact your bank for more details.',\n AUTH004: 'Your NemID is temporarily locked and you cannot log on until the 8 hour time lock has been lifted.',\n AUTH005: 'Your NemID is temporarily locked and you cannot log on until the 8 hour time lock has been lifted.',\n AUTH006: 'Your NemID is blocked. Please contact <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID support</a>.',\n AUTH007: 'Your NemID password is blocked due to too many failed password attempts. Please contact <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID support</a>.',\n AUTH008: 'Your NemID is not active and you need support to issue a new activation password to activate. Please contact <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID support</a>.',\n AUTH009: 'A technical error has occurred. Please try again.',\n AUTH010: 'A technical error has occurred. Please try again, and ensure that only one NemID login is running.',\n AUTH011: 'NemID login on mobile does not support authentication using a temporary password. Please contact <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID support</a> to have a new temporary password issued. Thereafter, please try again.',\n AUTH012: 'A technical error has occurred. Please try again.',\n AUTH013: 'A technical error has occurred. Please try again.',\n AUTH017: 'Something in the browser environment has caused NemID to stop working. This could be because of an incompatible plugin, too restrictive privacy settings or other environment factors. Please try deactivating plugins, resetting your browser settings or try using a different browser.',\n CAN001: 'You have cancelled the activation of NemID after submitting the activation password. Your activation password is no longer valid, and you must request a new activation password before you can activate and use NemID. You can order your new activation password via <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID Support</a>',\n CAN002: 'You have cancelled login.',\n CAN003: 'The connection to the application has timed out or has been interrupted by another app. Please try again.',\n CAN004: 'The session is cancelled. Please try again.',\n LIB002: 'A technical error has occurred due to network issues. Please try again. Contact Assently if the problem persists.',\n LOCK001: 'You have used the wrong user ID or password too many times. Your NemID is now blocked for 8 hours after which you can try again. If you have forgotten your password you can find support <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">here</a>.',\n LOCK002: 'You have used a wrong password too many times. Your NemID is blocked and cannot be used. To get help with this problem, Please contact <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID support</a>.',\n LOCK003: 'You have entered a wrong NemID key too many times. Your NemID is blocked and cannot be used. Please contact <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID support</a>.',\n SRV001: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n SRV002: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n SRV003: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n SRV004: 'A technical error has occurred. Please contact <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID support</a>.',\n SRV005: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n SRV006: 'Time limit exceeded. Please try again.',\n SRV007: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n SRV008: 'A technical error has occurred. Contact Assently.',\n SRV009: 'You have attempted to log in with an IVR user on the NemID mobile login. This is not supported.',\n SRV010: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n OCES001: 'You only have NemID for online banking. If you wish to use NemID for other public or private services, you must <a href=\"https://service.nemid.nu/dkda/bestil_nemid/bestil_offentlig_digital_signatur_til_dit_nemid/\">affiliate a public digital signature</a> to your NemID.',\n OCES002: 'If you wish to use NemID for other services than online banking, you have to affiliate a public digital signature to your NemID. You can do this by starting the regular NemID order flow, which will then order the needed public digital signature. <a href=\"https://service.nemid.nu/dkda/bestil_nemid/\">Request NemID</a>.',\n OCES003: 'You have attempted to log on using a NemID with no public digital signature. If you previously have logged on to our service using your NemID, the error can be due to having more than one NemID and having used a different NemID than normally.',\n OCES004: 'You can only use this NemID for your online banking service.',\n OCES005: 'Issuing your public digital signature failed. Please try again. If the problem persists <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">contact NemID support</a>',\n OCES006: 'You currently don’t have an active public digital signature (OCES certificate) affiliated with your NemID. To get this, start the regular NemID order flow after which you will be asked to affiliate a public digital signature with your current NemID. <a href=\"https://service.nemid.nu/dkda/bestil_nemid/\">Request NemID</a>.'\n },\n otp: 'Code card / Code app',\n codefile: 'Code file',\n selectmethod: 'Select method'\n },\n vrk: {\n sign: 'Sign',\n sign_promise: 'I hereby sign the following text:',\n select_certificate: 'Select certificate for signing',\n certificate_selection_cancelled: 'Certificate selection cancelled. Please try again.',\n preparing_signature: 'Preparing signature...',\n enter: 'Enter your',\n pin2: 'PIN2',\n no_implementation: 'No plugin or extension for signing found.',\n no_implementation_details: 'For details see: https://www.id.ee/index.php?id=30466',\n document_signed: 'Document signed',\n certificate_error: 'No certificates available.',\n try_again_message: 'Please try again',\n technical_error: 'Technical error.',\n auth_started: 'Process started. waiting for certificate...',\n sign_started: 'Process started. waiting for signature...',\n signature_request: 'Select certificate',\n check_certificate: 'Verifying...',\n auth_notvalid: 'Invalid signature',\n challenge_started: 'Process started...',\n errors: {\n 400: 'Make sure the card is inserted correctly.',\n 401: 'Incorrect certificate or PIN, please try again.',\n 403: 'Something went wrong, please try again.',\n 413: 'Signature content was too big.',\n 500: 'Something went wrong, please try again.',\n 501: 'Something went wrong, please try again.',\n g000: 'Something went wrong, please contact support.'\n }\n },\n frejaid: {\n FrejaStartAppMessage: 'Launch Freja eID App on the device you want to use and scan this QR code.',\n frejaidCancelQRCodeMessage: 'Cancel transaction.',\n FrejaStartAppMessage1: 'Start Freja eID app on this device',\n frejaeidUseOnAnotherDeviceMessage: 'Use Freja eID on another device',\n frejaeidUseOnSameDeviceMessage: 'Use Freja eID on this device',\n startQRMessage: 'Start QR',\n frejaeidTransactionFailedMessage: 'transaction failed',\n frejaeidTransactionExpiredMessage: 'Action expired',\n frejaeidTransactionCancelledMessage: 'Action cancelled',\n frejaeidTransactionRejectedMessage: 'Action rejected',\n frejaeidEnterSecurityCodeMessage: 'Enter your security code in the Freja eID App',\n frejaeidContinueWithMessage: 'Continue with',\n frejaeidStartMessage1: \"Trying to start your Freja eID App\",\n frejaeidStartMessage2: \"Launch the Freja eID App manually if it does not launch automatically\",\n frejaeidStartMessage3: 'Launch Freja eID App on the device you want to use',\n SocialSecurityNoPlaceholder: 'YYMMDDNNNN',\n frejaInternalError: 'Internal error. Please try again.'\n }\n}, {\n id: 'sv',\n Name: 'Svenska',\n AlloweEids: ['se-bankid', 'se-eidas', 'se-siths-osif', 'fi-mv', 'fi-bankid', 'se-frejaeidplus'],\n errors: {\n api_unavailable: 'Kan inte ansluta till backend-servrar, försök igen.',\n generic: 'Någonting gick fel. Vänligen försök igen.'\n },\n Title: 'Logga in',\n SignTitle: 'Underteckna',\n SelectCountry: 'Välj land',\n SelectEid: 'Välj din e-legitimation',\n ChangeCountry: 'Byt land',\n Cancel: 'Avbryt',\n SocialSecurityNo: 'Ange ditt personnummer',\n SocialSecurityNoPlaceholder: 'ÅÅMMDDNNNN',\n Continue: 'Fortsätt',\n SeBankidStartAppMessage: 'Starta BankID-appen',\n SeBankidUseCurrentDeviceMessage: 'Använd BankID på denna enhet',\n SeBankidUseOtherDeviceMessage: 'Använd BankID på en annan enhet',\n SeBankidUseQRCodeMessage: 'QR-kod',\n SeBankidCancelQRCodeMessage: 'Använd personnummer',\n SeBankidStartMessage1: 'Försöker starta BankID-appen',\n SeBankidStartMessage2: 'Starta appen själv om den inte startar automatiskt.',\n SeBankidStartMessage3: 'Starta BankID-appen på den enhet du vill använda.',\n SeBankidStartMessage4: 'BankID-appen har inte startat automatiskt ännu...',\n SeBankidStartMessage5: 'Väntar fortfarande på att du ska starta BankID-appen på den andra enheten...',\n SeBankidStartMessage6: 'BankID-appen är startad, söker efter BankID...',\n SeBankidStartMessage7: 'Om det har gått några sekunder och inget BankID har hittats finns det sannolikt inget BankID på denna enhet som kan användas för transaktionen.',\n SeBankidStartMessage8: 'Skriv in din säkerhetskod i BankID-appen och välj Legitimera eller Skriv under.',\n SeBankidErrorMessage1: 'BankID-transaktionen misslyckades',\n SeBankidErrorMessage2: 'En identifiering eller underskrift för det här personnumret är redan påbörjad. Försök igen.',\n SeBankidErrorMessage3: 'Internt tekniskt fel. Försök igen.',\n SeBankidErrorMessage4: 'Uppdatera din BankID-app innan du försöker igen.',\n SeBankidErrorMessage5: 'BankID-appen svarar inte. Kontrollera att den är startad och att du har internetanslutning. Om du inte har något giltigt BankID kan du hämta ett hos din Bank. Försök sedan igen.',\n SeBankidErrorMessage6: 'Det BankID du försöker använda är för gammalt eller spärrat. Använd ett annat BankID eller hämta ett nytt hos din internetbank.',\n SeBankidErrorMessage7: 'Åtgärden avbruten.',\n SeBankidErrorMessage8: 'Åtgärden avbruten. Försök igen om en liten stund.',\n SeBankidErrorMessage9: 'BankID-appen verkar inte finnas i din dator eller telefon. Installera den och hämta ett BankID hos din internetbank.',\n TryAgain: 'Försök igen',\n Finish: 'Avsluta',\n OperationFailed: 'Vi beklagar, men ett fel inträffade och legitimeringen kunde inte genomföras. Vänligen försök igen senare.',\n ChangeEid: 'Byt e-leg',\n FiMvTelephone: 'Telefonnummer',\n FiMvTelephonePlaceholder: 'e.g 044 1440144',\n FiMvAntiJammingCode: 'Anti-spamkod',\n FiMvAntiJammingCodePlaceholder: 'Frivilligt',\n FiMvStartMessage1: 'Startar...',\n FiMvStartMessage2: 'Väntar på autentisering, verifiera koden i din telefon:',\n FiMvStartSign: 'Väntar på signering, verifiera koden i din telefon:',\n FiMvStartMessage3: 'Identifiering misslyckades',\n Leave: 'Lämna',\n NoBankidMessage1: 'STARTED',\n NoBankidMessage2: 'AUTHENTICATED',\n NoBankidMessage3: 'AUTENTISERING MISSLYCKADES.',\n NoBankidMessage4: 'ETT FEL UPPSTOD',\n NoBankidSelectOtherCountry: 'Välj annat land',\n SeSithsOsifStartMessage1: 'Startar säkerhetsprogrammet',\n SeSithsOsifStartMessage2: 'Du behöver godkänna att säkerhetsprogrammet \"Net iD\" körs. Webbläsaren har ställt en fråga till dig där du ska svara \"tillåt\" för att kunna fortsätta.',\n SeSithsOsifStartMessage3: 'Öppnar säkerhetsprogrammet',\n SeSithsOsifStartMessage4: 'Verifierar',\n SeSithsOsifErrorMessage1: 'Legitimeringen misslyckades',\n SeSithsOsifErrorMessage1B: 'Signeringen misslyckades',\n SeSithsOsifErrorMessage2: 'Säkerhetsprogrammet Net iD startar inte. Se till att du installerat programmet och att du använder en webbläsare som stödjs: Internet Explorer 10',\n SeSithsOsifErrorMessage3: 'Kunde inte kommunicera med säkerhetsprogrammet. Det kan bero på att du har en för gammal version installerad eller på att webbläsaren blockerat åtkomst. Vänligen kontrollera din installation.',\n SeSithsOsifErrorMessage4: 'Säkerhetsprogrammet är för gammalt. Vänligen uppdatera till den senaste versionen.',\n SeSithsOsifErrorMessage5: 'Användaren avbröt i säkerhetsprogrammet.',\n SeSithsOsifErrorMessage6: 'Säkerhetsprogrammet kunde inte allokera nog minne. Testa att stänga några program innan du försöker igen.',\n SeSithsOsifErrorMessage7: 'Säkerhetsprogrammet är för gammalt. Vänligen uppdatera till den senaste versionen.',\n SeSithsOsifErrorMessage8: 'Ett internt fel har uppstått.',\n SeSithsOsifErrorMessage9: 'En säker anslutning kunde inte garanteras.',\n SeSithsOsifErrorMessage10: 'Sätt in e-legitimationen i kortläsaren och försäkra dig om att kortläsaren är ansluten.',\n SeSithsOsifErrorMessage11: 'E-legitimationen har löpt ut.Kontakta utgivaren.',\n SeSithsOsifErrorMessage12: 'E-legitimationen har återkallats och kan inte användas. Kontakta utgivaren.',\n SeSithsOsifErrorMessage13: 'E-legitimationen är felaktig. Kontakta utgivaren.',\n SeSithsOsifErrorMessage14: 'E-legitimationen går snart ut och bör förnyas snarast. Kontakta utgivaren.',\n SeSithsOsifErrorMessage15: 'Ett tekniskt fel uppstod hos e-legitimationsutgivaren, försök igen lite senare.',\n SeSithsOsifErrorMessage16: 'Utgivarens verifieringstjänst är tillfälligt otilgänglig, försök igen lite senare.',\n SelectLanguage: 'Välj språk',\n FiTupasStartMessage1: 'Startar...',\n FiTupasStartMessage2: 'Väntar på att identifieringen ska slutföras, transaktions-ID: ',\n FiTupasStartMessage3: 'Identifieringen misslyckades.',\n Mobiilid: {\n Authentication: 'Authentication'\n }\n}, {\n id: 'fi',\n Name: 'Suomi',\n AlloweEids: ['fi-mv', 'fi-vrk', 'fi-bankid'],\n errors: {\n api_unavailable: 'Yhteyden muodostaminen backend-palvelimiin, yritä uudelleen.',\n generic: 'Jotain meni pieleen, yritä uudelleen.'\n },\n Title: 'Tunnistaudu',\n SignTitle: 'Allekirjoita',\n SelectCountry: 'Valitse maa',\n SelectEid: 'Valitse tunnistustapa',\n ChangeCountry: 'Vaihda maata',\n Cancel: 'Peruuta',\n SocialSecurityNo: 'Anna sosiaaliturvatunnuksesi',\n SocialSecurityNoPlaceholder: 'VVKKPPNNNN',\n Continue: 'Jatka',\n SeBankidStartAppMessage: 'Starta BankID sovellus',\n SeBankidUseCurrentDeviceMessage: 'Käytä BankID:tä tällä laitteella',\n SeBankidUseOtherDeviceMessage: 'Käytä BankID toisella laitteella',\n SeBankidUseQRCodeMessage: 'QR code',\n SeBankidCancelQRCodeMessage: 'Use National ID Number',\n SeBankidStartMessage1: 'Käynnistä BankID sovellus...',\n SeBankidStartMessage2: 'Käynnistä sovellus itse, jos se ei käynnisty automaattisesti.',\n SeBankidStartMessage3: 'Käynnistä BankID sovellus laitteessa, jota haluat käyttää.',\n SeBankidStartMessage4: 'BankID sovellus ei ole käynnistynyt automaattisesti vielä...',\n SeBankidStartMessage5: 'Odotetaan, että BankID käynnistyy toisessa laitteessa...',\n SeBankidStartMessage6: 'BankID sovellus on käynnistynyt, haetaan BankID:tä...',\n SeBankidStartMessage7: 'Jos muutaman sekunnin kuluttua BankID:tä ei löydy, tällä laitteella ei todennäköisesti ole BankID:tä, jota voidaan käyttää vahvistukseen',\n SeBankidStartMessage8: 'BankID sovellus on käynnissä. Tunnistaudu turvakoodillasi.',\n SeBankidErrorMessage1: 'Vahvistaminen epäonnistui.',\n SeBankidErrorMessage2: 'Vahvistaminen on käynnissä toisessa istunnossa. Odota hetki ennen uutta yritystä.',\n SeBankidErrorMessage3: 'Syynä oli sisäinen virhe BankID:n järjestelmässä. Yritä uudelleen hetken kuluttua.',\n SeBankidErrorMessage4: 'Päivitä BankID sovellus ennen uutta yritystä.',\n SeBankidErrorMessage5: 'Yhteyden aikakatkaisu. Tarkista, että BankID sovellus käynnistyy ja että Internet-yhteytesi on kunnossa.',\n SeBankidErrorMessage6: 'Syötetty BankID on vanhentunut tai estetty. Käytä eri BankID:tä tai lataa uusi pankistasi.',\n SeBankidErrorMessage7: 'Keskeytit BankID -sovelluksen vahvistuksen.',\n SeBankidErrorMessage8: 'Toimenpide keskeytetty. Yritä uudelleen hetken kuluttua.',\n SeBankidErrorMessage9: 'BankID sovellus ei käynnistynyt. Varmista, että sinulla on toimiva BankID ja Viimeaikaiset Tilaajat versio BankID sovelluksesta asennettuna laitteeseen ennen uutta yritystä.',\n TryAgain: 'Yritä uudelleen',\n Finish: 'Viimeistellään',\n OperationFailed: 'Pahoittelemme, mutta tapahtui virhe ja vahvistusta ei voitu toteuttaa. Yritä uudelleen myöhemmin.',\n ChangeEid: 'Vaihda eID tunnistustapa',\n FiMvTelephone: 'Puhelinnumero',\n FiMvTelephonePlaceholder: 'esim 044 1440144',\n FiMvAntiJammingCode: 'Häirinnän estokoodi',\n FiMvAntiJammingCodePlaceholder: 'Valinnainen',\n FiMvStartMessage1: 'Aloitetaan...',\n FiMvStartMessage2: 'ODOTTAA TODENNUSTA, Allekirjoituspyyntö saapuu laitteeseesi tunnuksella:',\n FiMvStartSign: 'ODOTTAA ALLEKIRJOITUSTA, Allekirjoituspyyntö saapuu laitteeseesi tunnuksella:',\n FiMvStartMessage3: 'Tunnistaminen epäonnistui.',\n FiMvErrorMessageGeneric: 'Something went wrong! Please try again.',\n FiMvErrorCode: 'Error code: ',\n FiMvError_1011: 'Invalid NoSpamCode', //using a spamcode when user doesnt have one registered, or the wrong one\n FiMvError_1050: 'Can\\'t connect to Mobiilivarmenne', // this is probably because the servers IP isnt whitelisted\n FiMvError_1051: 'Incorrect format',\n FiMvError_1052: 'Unknown user',\n FiMvError_1053: 'Unregistered user',\n FiMvError_1054: 'Incompatible SIM card',\n FiMvError_2080: 'Time limit exceeded, please try again',\n Leave: 'Poistu',\n NoBankidMessage1: 'ALKOI',\n NoBankidMessage2: 'VAHVISTETTU',\n NoBankidMessage3: 'VARMENNUS EPÄONNISTUI',\n NoBankidMessage4: 'TAPAHTUI VIRHE',\n NoBankidSelectOtherCountry: 'Valitse toinen maa',\n SeSithsOsifStartMessage1: 'Käynnistä tietoturvaohjelmisto',\n SeSithsOsifStartMessage2: 'Sinun on hyväksyttävä \"Net ID\" on käynnissä. Selain pyytää lupaasi, johon tulee vastata \"Salli\" jatkaaksesi.',\n SeSithsOsifStartMessage3: 'Avaa turvallisuusohjelmisto',\n SeSithsOsifStartMessage4: 'Varmistetaan...',\n SeSithsOsifErrorMessage1: 'Vahvistus epäonnistui.',\n SeSithsOsifErrorMessage1B: 'Allekirjoitus epäonnistui.',\n SeSithsOsifErrorMessage2: 'Tietoturvaohjelmisto Net iD ei käynnisty. Varmista, että ohjelmisto on asennettu ja että käytät tuettua selainta: Internet Explorer 10.',\n SeSithsOsifErrorMessage3: 'Tietoturvaohjelmiston kanssa ei voitu kommunikoida. Tämä voi johtua vanhasta versiosta tai selain esti pääsyn. Ole hyvä ja tarkista asennus.',\n SeSithsOsifErrorMessage4: 'Tietoturvaohjelmisto on liian vanha. Päivitä uusimpaan versioon.',\n SeSithsOsifErrorMessage5: 'Käyttäjä peruutti turvallisuustarkistuksen.',\n SeSithsOsifErrorMessage6: 'Tietoturvaohjelmistolle ei ole riittävästi muistia. Yritä sulkea joitakin sovelluksia ja yritä uudelleen.',\n SeSithsOsifErrorMessage7: 'Tietoturvaohjelmisto on liian vanha. Päivitä uusimpaan versioon.',\n SeSithsOsifErrorMessage8: 'Tapahtui sisäinen virhe.',\n SeSithsOsifErrorMessage9: 'Suojattua yhteyttä ei voida taata.',\n SeSithsOsifErrorMessage10: 'Syötä eID-kortin lukija ja varmista, että kortinlukija on liitetty.',\n SeSithsOsifErrorMessage11: 'eID tunnisteesi on vanhentunut. Ota yhteyttä ao. julkaisijaan.',\n SeSithsOsifErrorMessage12: 'eID tunnisteesi on estetty eikä sitä voida käyttää. Ota yhteyttä julkaisijaan.',\n SeSithsOsifErrorMessage13: 'eID tunnisteesi on virheellinen. Ota yhteyttä ao. julkaisijaan.',\n SeSithsOsifErrorMessage14: 'eID tunnisteesi on päättymässä ja se on uusittava pikaisesti. Ota yhteyttä ao. julkaisijaan.',\n SeSithsOsifErrorMessage15: 'Tekninen virhe eID julkaisijassa, yritä myöhemmin uudelleen.',\n SeSithsOsifErrorMessage16: 'Julkaisijan todentamispalvelu on tilapäisesti saavuttamattomissa, yritä myöhemmin uudelleen.',\n SelectLanguage: 'Valitse kieli',\n FiTupasStartMessage1: 'Aloitetaan...',\n FiTupasStartMessage2: 'ODOTTAA TODENNUSTA, transaction id: ',\n FiTupasStartMessage3: 'Tunnistaminen epäonnistui.',\n Mobiilid: {\n Authentication: 'Authentication'\n },\n vrk: {\n sign: 'Sign',\n sign_promise: 'I hereby sign the following text:',\n select_certificate: 'Select certificate for signing',\n certificate_selection_cancelled: 'Certificate selection cancelled. Please try again.',\n preparing_signature: 'Preparing signature...',\n enter: 'Enter your',\n pin2: 'PIN2',\n no_implementation: 'No plugin or extension for signing found.',\n no_implementation_details: 'For details see: https://www.id.ee/index.php?id=36598',\n document_signed: 'Document signed',\n certificate_error: 'No certificates available.',\n try_again_message: 'Please try again',\n technical_error: 'Technical error.',\n auth_started: 'Process started. waiting for certificate...',\n sign_started: 'Process started. waiting for signature...',\n signature_request: 'Select certificate',\n check_certificate: 'Verifying...',\n auth_notvalid: 'Invalid signature',\n challenge_started: 'Process started...',\n errors: {\n 400: 'Make sure the card is inserted correctly.',\n 401: 'Incorrect certificate or PIN, please try again.',\n 403: 'Something went wrong, please try again.',\n 413: 'Signature content was too big.',\n 500: 'Something went wrong, please try again.',\n 501: 'Something went wrong, please try again.',\n g000: 'Something went wrong, please contact support.'\n }\n }\n}, {\n id: 'no',\n Name: 'Norwegian',\n AlloweEids: ['no-bankid', 'no-bankid-mobile'],\n errors: {\n api_unavailable: 'Kan ikke koble til tjener, prøv igjen.',\n generic: 'Noe gikk galt, prøv igjen.'\n },\n Title: 'Logg inn',\n SignTitle: 'Signer',\n SelectCountry: 'Velg land',\n SelectEid: 'Velg din eID',\n ChangeCountry: 'Endre land',\n Cancel: 'Avbryt',\n SocialSecurityNo: 'Skriv inn ditt personnummer',\n SocialSecurityNoPlaceholder: 'YYMMDDNNNN',\n Continue: 'Fortsette',\n SeBankidStartAppMessage: 'Starta BankID-appen',\n SeBankidUseCurrentDeviceMessage: 'Bruk BankID på denne enheten',\n SeBankidUseOtherDeviceMessage: 'Bruk BankID på en annen enhet',\n SeBankidUseQRCodeMessage: 'QR code',\n SeBankidCancelQRCodeMessage: 'Bruk personnummer',\n SeBankidStartMessage1: 'Begynn BankID app ... ',\n SeBankidStartMessage2: 'Start app selv om det ikke starter automatisk.',\n SeBankidStartMessage3: 'Start BankID app på enheten du vil bruke.',\n SeBankidStartMessage4: 'BankID app har ikke startet automatisk ennå...',\n SeBankidStartMessage5: 'Venter på å starte BankID app på den andre enheten ...',\n SeBankidStartMessage6: 'BankID app har startet, leter etter BankID',\n SeBankidStartMessage7: 'Hvis det har gått noen sekunder uten at BankID er funnet, har du sannsynligvis ikke BankID på denne enheten som kan brukes for legitimering',\n SeBankidStartMessage8: 'BankID appen kjører. Identifisere deg med sikkerhetskoden.',\n SeBankidErrorMessage1: 'Legitimering mislyktes.',\n SeBankidErrorMessage2: 'En legitimering gå for deg i en annen økt. Vent en stund før du prøver igjen.',\n SeBankidErrorMessage3: 'Årsaken var en intern svikt i BankID infrastruktur. Vennligst prøv igjen om noen minutter.',\n SeBankidErrorMessage4: 'Oppdater BankID app før du prøver igjen.',\n SeBankidErrorMessage5: 'Legitimering ble ikke ferdig i tide. Sjekk at BankID app starter, og at du har en Internett-tilkobling.',\n SeBankidErrorMessage6: 'BankID prøver å bruke er for gammel eller blokkert. Bruk en annen BankID eller laste ned en ny en fra banken din.',\n SeBankidErrorMessage7: 'Du avbrøt legitimering av BankID-app.',\n SeBankidErrorMessage8: 'Operasjonen avbrutt. Prøv igjen om en liten stund.',\n SeBankidErrorMessage9: 'BankID app startet ikke. Sørg for at du er en gyldig BankID og Nye Abonnenter versjon av BankID app installert på enheten før du prøver igjen.',\n TryAgain: 'Prøv igjen',\n Finish: 'Avslutt',\n OperationFailed: 'Vi beklager, men det oppstod en feil og legitimasjon kunne ikke gjennomføres. Prøv igjen senere.',\n ChangeEid: 'Endre eID',\n FiMvTelephone: 'Telefonnummer',\n FiMvTelephonePlaceholder: 'e.g 044 1440144',\n FiMvAntiJammingCode: 'Anti-jamming kode nr',\n FiMvAntiJammingCodePlaceholder: 'Valgfri',\n FiMvStartMessage1: 'Starter... ',\n FiMvStartMessage2: 'VENTER PÅ GODKJENNING, transaction id: no',\n FiMvStartMessage3: 'Identifikasjon mislyktes.',\n Leave: 'Forlat',\n NoBankId_Authentication: 'Identifisering',\n NoBankId_Signing: 'Signering',\n NoBankId_MobileInputLabel: 'Mobilnummer og fødelsedato',\n NoBankId_PhonePlaceholder: '8 siffer',\n NoBankId_DobPlaceholder: 'ddmmåå',\n NoBankId_PhoneHint: 'Mobilnummer',\n NoBankId_DobHint: 'Fødelsedato',\n NoBankId_ReferenceWOrds: 'Referanseord',\n NoBankId_FollowMobileInstructions: 'Følg instruksene på din mobil',\n NoBankId_MobileSuccess: 'Identifisering er fullført',\n NoBankidMessage1: 'I GANG',\n NoBankidMessage2: 'Autentisert',\n NoBankidMessage3: 'GODKJENNING MISLYKTES',\n NoBankidMessage4: 'EN FEIL OPPSTOD',\n NoBankidSelectOtherCountry: 'Velg andre land',\n SeSithsOsifStartMessage1: 'Begynn sikkerhet app',\n SeSithsOsifStartMessage2: 'Du må godta sikkerhets \"Net iD\" er i gang. Nettleseren har et spørsmål til deg som du bør svare \"Tillat\" for å fortsette.',\n SeSithsOsifStartMessage3: 'Åpner sikkerhet app',\n SeSithsOsifStartMessage4: 'Verifing...',\n SeSithsOsifErrorMessage1: 'Legitimering mislyktes.',\n SeSithsOsifErrorMessage1B: 'Signering mislyktes.',\n SeSithsOsifErrorMessage2: 'Sikkerhetsprogramvaren Net iD starter ikke. Kontroller at programvaren er installert, og at du bruker en støttet nettleser: Internet Explorer 10.',\n SeSithsOsifErrorMessage3: 'Kunne ikke kommunisere med sikkerhetsprogramvare. Det kan være fordi du har en gammel versjon installert eller nettleseren sperret tilgangen. Sjekk installasjonen.',\n SeSithsOsifErrorMessage4: 'Sikkerheten programvaren er for gammel. Oppdater til den nyeste versjonen.',\n SeSithsOsifErrorMessage5: 'Brukeren avbrøt sikkerhetsprogrammet.',\n SeSithsOsifErrorMessage6: 'Den sikkerhetsprogramvare kan ikke tildele nok minne. Prøv å lukke noen programmer før du prøver igjen.',\n SeSithsOsifErrorMessage7: 'Sikkerheten programvaren er for gammel. Oppdater til den nyeste versjonen.',\n SeSithsOsifErrorMessage8: 'En intern feil har oppstått.',\n SeSithsOsifErrorMessage9: 'En sikker tilkobling kan ikke garanteres.',\n SeSithsOsifErrorMessage10: 'Sett inn eID-kortleser og sørg for at kortleseren er tilkoblet.',\n SeSithsOsifErrorMessage11: 'eID er utløpt ut.Kontakta utgiver.',\n SeSithsOsifErrorMessage12: 'eID har blitt trukket tilbake, og kan ikke brukes. Kontakt utgiveren.',\n SeSithsOsifErrorMessage13: 'eID er felaktig.Kontakta utgiver.',\n SeSithsOsifErrorMessage14: 'eID er i ferd med å utløpe, og må fornyes snarest. Kontakt utgiveren.',\n SeSithsOsifErrorMessage15: 'Det oppstod en teknisk feil med eID utgiver, prøv igjen senere.',\n SeSithsOsifErrorMessage16: 'Forlagets verifisering tjenesten er midlertidig otilgänglig, prøv igjen senere.',\n SelectLanguage: 'Velg språk',\n FiTupasStartMessage1: 'Starter... ',\n FiTupasStartMessage2: 'VENTER PÅ GODKJENNING, transaction id: no',\n FiTupasStartMessage3: 'Identifikasjon mislyktes.',\n Mobiilid: {\n Authentication: 'Authentication'\n }\n}, {\n id: 'da',\n name: 'Danish',\n AlloweEids: ['dk-nemid'],\n Title: 'Log på',\n SignTitle: 'Underskriv',\n ChangeEid: 'Skifte eID',\n Cancel: 'Afbryd',\n Continue: 'Fortsæt',\n ChangeCountry: 'Skift land',\n nemid: {\n otp: 'Nøglekort / Nøgleapp',\n codefile: 'Nøglefil',\n selectmethod: 'Vælg din metode',\n errors: {\n APP001: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n APP002: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n APP003: 'A technical error has occurred. Please contact <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID support</a>.',\n APP004: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n APP007: 'A technical error has occurred. Contact Assently.',\n APP008: 'A technical error has occurred. Contact Assently.',\n APP009: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n APP010: 'A technical error has occurred. Please try again.',\n AUTH001: 'Your NemID is blocked. Please contact <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID support</a>.',\n AUTH003: 'Login succeeded but you have no bank agreement. Please contact your bank for more details.',\n AUTH004: 'Your NemID is temporarily locked and you cannot log on until the 8 hour time lock has been lifted.',\n AUTH005: 'Your NemID is temporarily locked and you cannot log on until the 8 hour time lock has been lifted.',\n AUTH006: 'Your NemID is blocked. Please contact <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID support</a>.',\n AUTH007: 'Your NemID password is blocked due to too many failed password attempts. Please contact <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID support</a>.',\n AUTH008: 'Your NemID is not active and you need support to issue a new activation password to activate. Please contact <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID support</a>.',\n AUTH009: 'A technical error has occurred. Please try again.',\n AUTH010: 'A technical error has occurred. Please try again, and ensure that only one NemID login is running.',\n AUTH011: 'NemID login on mobile does not support authentication using a temporary password. Please contact <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID support</a> to have a new temporary password issued. Thereafter, please try again.',\n AUTH012: 'A technical error has occurred. Please try again.',\n AUTH013: 'A technical error has occurred. Please try again.',\n AUTH017: 'Something in the browser environment has caused NemID to stop working. This could be because of an incompatible plugin, too restrictive privacy settings or other environment factors. Please try deactivating plugins, resetting your browser settings or try using a different browser.',\n CAN001: 'You have cancelled the activation of NemID after submitting the activation password. Your activation password is no longer valid, and you must request a new activation password before you can activate and use NemID. You can order your new activation password via <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID Support</a>',\n CAN002: 'You have cancelled login.',\n CAN003: 'The connection to the application has timed out or has been interrupted by another app. Please try again.',\n CAN004: 'The session is cancelled. Please try again.',\n LIB002: 'A technical error has occurred due to network issues. Please try again. Contact Assently if the problem persists.',\n LOCK001: 'You have used the wrong user ID or password too many times. Your NemID is now blocked for 8 hours after which you can try again. If you have forgotten your password you can find support <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">here</a>.',\n LOCK002: 'You have used a wrong password too many times. Your NemID is blocked and cannot be used. To get help with this problem, Please contact <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID support</a>.',\n LOCK003: 'You have entered a wrong NemID key too many times. Your NemID is blocked and cannot be used. Please contact <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID support</a>.',\n SRV001: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n SRV002: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n SRV003: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n SRV004: 'A technical error has occurred. Please contact <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">NemID support</a>.',\n SRV005: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n SRV006: 'Time limit exceeded. Please try again.',\n SRV007: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n SRV008: 'A technical error has occurred. Contact Assently.',\n SRV009: 'You have attempted to log in with an IVR user on the NemID mobile login. This is not supported.',\n SRV010: 'A technical error has occurred. Please try again. Contact Assently if the problem persists.',\n OCES001: 'You only have NemID for online banking. If you wish to use NemID for other public or private services, you must <a href=\"https://service.nemid.nu/dkda/bestil_nemid/bestil_offentlig_digital_signatur_til_dit_nemid/\">affiliate a public digital signature</a> to your NemID.',\n OCES002: 'If you wish to use NemID for other services than online banking, you have to affiliate a public digital signature to your NemID. You can do this by starting the regular NemID order flow, which will then order the needed public digital signature. <a href=\"https://service.nemid.nu/dkda/bestil_nemid/\">Request NemID</a>.',\n OCES003: 'You have attempted to log on using a NemID with no public digital signature. If you previously have logged on to our service using your NemID, the error can be due to having more than one NemID and having used a different NemID than normally.',\n OCES004: 'You can only use this NemID for your online banking service.',\n OCES005: 'Issuing your public digital signature failed. Please try again. If the problem persists <a href=\"https://www.nemid.nu/dk-da/faa_hjaelp_til_dit_nemid/kontakt/support_og_kontakt/\">contact NemID support</a>',\n OCES006: 'You currently don’t have an active public digital signature (OCES certificate) affiliated with your NemID. To get this, start the regular NemID order flow after which you will be asked to affiliate a public digital signature with your current NemID. <a href=\"https://service.nemid.nu/dkda/bestil_nemid/\">Request NemID</a>.'\n }\n }\n}];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL2RhdGEuanM/YmU5OSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgbW9kdWxlICovXG4vLyBVc2UgQ29tbW9uSlMgZm9ybWF0IGJlY2F1c2UgdGhpcyBmaWxlIHdpbGwgYWxzbyBiZSByZXF1aXJlZCBieSB3ZWJwYWNrXG5cbnZhciBNQUpPUl9WRVJTSU9OID0gMTtcbnZhciBNSU5PUl9WRVJTSU9OID0gMDtcbnZhciBQQVRDSF9WRVJTSU9OID0gMDtcblxubW9kdWxlLmV4cG9ydHMuTUFKT1JfVkVSU0lPTiA9IE1BSk9SX1ZFUlNJT047XG5tb2R1bGUuZXhwb3J0cy5NSU5PUl9WRVJTSU9OID0gTUlOT1JfVkVSU0lPTjtcbm1vZHVsZS5leHBvcnRzLlBBVENIX1ZFUlNJT04gPSBQQVRDSF9WRVJTSU9OO1xubW9kdWxlLmV4cG9ydHMuVkVSU0lPTiA9IE1BSk9SX1ZFUlNJT04gKyAnLicgKyBNSU5PUl9WRVJTSU9OICsgJy4nICsgUEFUQ0hfVkVSU0lPTjtcblxubW9kdWxlLmV4cG9ydHMubG9jYXRpb25zID0gW1xuICB7XG4gICAgaWQ6IFwiZmlcIixcbiAgICAvL25hbWU6IFwiRmlubGFuZFwiLFxuICAgIG5hbWVlbjogXCJGaW5sYW5kXCIsXG4gICAgbmFtZXN2OiBcIkZpbmxhbmRcIixcbiAgICBuYW1lZmk6IFwiU3VvbWlcIixcbiAgICBuYW1lbm86IFwiRmlubGFuZFwiLFxuICAgIG5hbWVkazogJ0ZpbmxhbmQnLFxuICAgIGVpZHM6IFsnZmktbXYnLCdmaS12cmsnLCAnZmktYmFua2lkJ10sIC8vIGxpc3Qgb2YgYXZhaWxhYmxlIEVJRHNcbiAgfSxcbiAge1xuICAgIGlkOiBcInNlXCIsXG4gICAgLy9uYW1lOiBcIlN3ZWRlblwiLFxuICAgIG5hbWVlbjogXCJTd2VkZW5cIixcbiAgICBuYW1lc3Y6IFwiU3ZlcmlnZVwiLFxuICAgIG5hbWVmaTogXCJSdW90c2lcIixcbiAgICBuYW1lbm86IFwiU3ZlcmlnZVwiLFxuICAgIG5hbWVkazogJ1N2ZXJpZ2UnLFxuICAgIGVpZHM6IFsnc2UtYmFua2lkJywnc2UtZWlkYXMnLCAnc2Utc2l0aHMtb3NpZicsJ3NlLWZyZWphZWlkcGx1cyddLCAvLyBsaXN0IG9mIGF2YWlsYWJsZSBFSURzXG4gIH0sXG4gIHtcbiAgICBpZDogXCJub1wiLFxuICAgIC8vbmFtZTogXCJOb3J3YXlcIixcbiAgICBuYW1lZW46IFwiTm9yd2F5XCIsXG4gICAgbmFtZXN2OiBcIk5vcmdlXCIsXG4gICAgbmFtZWZpOiBcIk5vcmphXCIsXG4gICAgbmFtZW5vOiBcIk5vcmdlXCIsXG4gICAgbmFtZWRrOiAnTm9yZ2UnLFxuICAgIGVpZHM6IFsnbm8tYmFua2lkJywgJ25vLWJhbmtpZC1tb2JpbGUnXSwgLy8gbGlzdCBvZiBhdmFpbGFibGUgRUlEc1xuICB9LFxuICB7XG4gICAgaWQ6ICdkaycsXG4gICAgbmFtZWVuOiAnRGVubWFyaycsXG4gICAgbmFtZXN2OiAnRGFubWFyaycsXG4gICAgbmFtZWZpOiAnVGFuc2thJyxcbiAgICBuYW1lbm86ICdEYW5tYXJrJyxcbiAgICBuYW1lZGs6ICdEYW5tYXJrJyxcbiAgICBlaWRzOiBbJ2RrLW5lbWlkJ10sXG4gIH0sXG5dO1xuXG4vLyBOT1RFOiBBZGRlZCBhdXRoIGFuIHNpZ24gdHJ1ZSBmb3IgYWxsIHByb3ZpZGVycyBkdWUgdG8gdGhlIFBPIHJlcXVlc3QuXG4vLyBBbGwgYXZhaWxhYmxlIEVJRHMsIGFwcCByb290IHRhZyBuYW1lIG11c3QgbWF0Y2ggdGhpcyAoaW4gaW5kZXgudGFnKVxubW9kdWxlLmV4cG9ydHMuZWlkcyA9IFtcbiAgeyBpZDogJ3NlLWJhbmtpZCcsICBuYW1lOiAnQmFua0lEJywgbG9nbzonLi9zZS1iYW5raWQtc3RhdGljL2ljb25fNjR4NjRAMngucG5nJywgYXV0aDogdHJ1ZSwgc2lnbjogdHJ1ZSwgd2lsZENhcmRBbGxvd2VkOiB0cnVlIH0sXG4gIHsgaWQ6ICdmaS1iYW5raWQnLCBuYW1lOiAnUGFua2tpdHVubmlzdGVldCcsIGxvZ286ICcuL2ZpLWJhbmtpZC1zdGF0aWMvY29yZWlkLnBuZycsIGF1dGg6IHRydWUsIHNpZ246IHRydWUsIHdpbGRDYXJkQWxsb3dlZDogdHJ1ZSAgfSxcbiAgeyBpZDogJ2ZpLW12JywgICAgICBuYW1lOiAnTW9iaWlsaXZhcm1lbm5lJywgbG9nbzonLi9maS1tdi1zdGF0aWMvbW9iaWlsaXZhcm1lbm5lLnBuZycsIGF1dGg6IHRydWUsIHNpZ246IHRydWUgLCB3aWxkQ2FyZEFsbG93ZWQ6IHRydWUgfSxcbiAgeyBpZDogJ25vLWJhbmtpZCcsICBuYW1lOiAnQmFua0lEJywgbG9nbzonLi9uby1iYW5raWQtc3RhdGljL0JhbmtJRF9NYWluX0xvZ28uc3ZnJywgYXV0aDogdHJ1ZSwgc2lnbjogdHJ1ZSwgc2lnbkZvcm1hdDogWyd0ZXh0J10sIHdpbGRDYXJkQWxsb3dlZDogdHJ1ZSB9LFxuICB7IGlkOiAnbm8tYmFua2lkLW1vYmlsZScsIG5hbWU6ICdCYW5rSUQgbW9iaWxlJywgbG9nbzogJy4vbm8tYmFua2lkLW1vYmlsZS1zdGF0aWMvaWNvX2JpbW90cC5zdmcnLCBhdXRoOiB0cnVlLCBzaWduOiB0cnVlLCBzaWduRm9ybWF0OiBbJ3RleHQnXSwgd2lsZENhcmRBbGxvd2VkOiB0cnVlIH0sXG4gIHsgaWQ6ICdmaS12cmsnLCBuYW1lOiAnVsOkZXN0w7ZyZWtpc3RlcmlrZXNrdXMnLCBsb2dvOiAnLi9maS12cmstc3RhdGljL2xvZ28ucG5nJywgYXV0aDogdHJ1ZSwgc2lnbjogdHJ1ZSwgd2lsZENhcmRBbGxvd2VkOiB0cnVlIH0sXG4gIHtcbiAgICBpZDogJ2RrLW5lbWlkJyxcbiAgICBuYW1lOiAnTmVtSUQnLFxuICAgIGxvZ286ICcuL2RrLW5lbWlkLXN0YXRpYy9uZW1pZF9ibGFjay5wbmcnLFxuICAgIGF1dGg6IHRydWUsIHNpZ246IHRydWUsXG4gICAgd2lsZENhcmRBbGxvd2VkOiB0cnVlXG4gIH0sXG4gIHsgaWQ6ICdzZS1laWRhcycsIG5hbWU6ICdlSURBUycsIGxvZ286ICcuL3NlLWVpZGFzLXN0YXRpYy9mbGFnX3llbGxvd19sb3cuc3ZnJywgYXV0aDogdHJ1ZSwgc2lnbjogZmFsc2UsIHdpbGRDYXJkQWxsb3dlZDogdHJ1ZSB9LFxuICB7IGlkOiAnc2Utc2l0aHMtb3NpZicsIG5hbWU6ICdTSVRIUyAtIFPDpGtlciBJVCBpbm9tIEjDpGxzby0gb2NoIFNqdWt2w6VyZCcsIGxvZ286ICcuL3NlLXNpdGhzLW9zaWYtc3RhdGljL2NvcmVpZC5zdmcnLCBhdXRoOiB0cnVlLCBzaWduOiB0cnVlLCB3aWxkQ2FyZEFsbG93ZWQ6IHRydWUgfSxcbiAge2lkOiAnc2UtZnJlamFlaWRwbHVzJywgbmFtZTogJ0ZSRUpBIGVJRCcsIGxvZ286ICcuL3NlLWZyZWphZWlkcGx1cy1zdGF0aWMvRnJlamFfZUlEX2xvZ28uc3ZnJywgYXV0aDogdHJ1ZSwgc2lnbjogdHJ1ZSwgd2lsZENhcmRBbGxvd2VkOiBmYWxzZSB9LFxuXTtcbm1vZHVsZS5leHBvcnRzLmxhbmd1YWdlcyA9IFtcbiAge1xuICAgIGlkOiAnZW4nLFxuICAgIE5hbWU6ICdFbmdsaXNoJyxcbiAgICBBbGxvd2VFaWRzOlsnc2UtYmFua2lkJywgJ3NlLWVpZGFzJywgJ3NlLXNpdGhzLW9zaWYnLCAnZmktbXYnLCAnZmktdHVwYXMnLCAnZmktdnJrJywgJ25vLWJhbmtpZCcsICduby1iYW5raWQtbW9iaWxlJywgJ2ZpLWJhbmtpZCcsICdzZS1mcmVqYWVpZHBsdXMnXSxcbiAgICBlcnJvcnM6IHtcbiAgICAgIGFwaV91bmF2YWlsYWJsZTogJ0Nhbm5vdCBjb25uZWN0IHRvIGJhY2tlbmQgc2VydmVycywgcGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgICAgZ2VuZXJpYzogJ1NvbWV0aGluZyB3ZW50IHdyb25nLCBwbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgfSxcbiAgICBUaXRsZTonTG9naW4nLFxuICAgIFNpZ25UaXRsZTogJ1NpZ24nLFxuICAgIFNlbGVjdENvdW50cnk6J1NlbGVjdCBjb3VudHJ5JyxcbiAgICBTZWxlY3RFaWQ6ICdTZWxlY3QgeW91ciBlSUQnLFxuICAgIENoYW5nZUNvdW50cnk6ICdDaGFuZ2UgQ291bnRyeScsXG4gICAgQ2FuY2VsOidDYW5jZWwnLFxuICAgIFNvY2lhbFNlY3VyaXR5Tm86ICdFbnRlciB5b3VyIE5hdGlvbmFsIElEIE51bWJlcicsXG4gICAgU29jaWFsU2VjdXJpdHlOb1BsYWNlaG9sZGVyOiAnWVlNTURETk5OTicsXG4gICAgQ29udGludWU6J0NvbnRpbnVlJyxcbiAgICBTZUJhbmtpZFN0YXJ0QXBwTWVzc2FnZTonU3RhcnQgdGhlIEJhbmtJRCBBcHAnLFxuICAgIFNlQmFua2lkVXNlQ3VycmVudERldmljZU1lc3NhZ2U6J1VzZSBCYW5rSUQgb24gdGhpcyBkZXZpY2UnLFxuICAgIFNlQmFua2lkVXNlT3RoZXJEZXZpY2VNZXNzYWdlOidVc2UgQmFua0lEIG9uIGFub3RoZXIgZGV2aWNlJyxcbiAgICBTZUJhbmtpZFVzZVFSQ29kZU1lc3NhZ2U6J1FSIENvZGUnLFxuICAgIFNlQmFua2lkQ2FuY2VsUVJDb2RlTWVzc2FnZTonVXNlIE5hdGlvbmFsIElEIE51bWJlcicsXG4gICAgU2VCYW5raWRTdGFydE1lc3NhZ2UxOidUcnlpbmcgdG8gc3RhcnQgeW91ciBCYW5rSUQgQXBwJyxcbiAgICBTZUJhbmtpZFN0YXJ0TWVzc2FnZTI6J0xhdW5jaCB0aGUgQmFua0lEIEFwcCBtYW51YWxseSBpZiBpdCBkb2VzIG5vdCBsYXVuY2ggYXV0b21hdGljYWxseS4nLFxuICAgIFNlQmFua2lkU3RhcnRNZXNzYWdlMzonTGF1bmNoIEJhbmtJRCBBcHAgb24gdGhlIGRldmljZSB5b3Ugd2FudCB0byB1c2UuJyxcbiAgICBTZUJhbmtpZFN0YXJ0TWVzc2FnZTQ6J1RoZSBCYW5rSUQgQXBwIGlzIHN0aWxsIHdhaXRpbmcgdG8gbGF1bmNoIGF1dG9tYXRpY2FsbHkuLi4nLFxuICAgIFNlQmFua2lkU3RhcnRNZXNzYWdlNTonU3RpbGwgd2FpdGluZyBmb3IgdGhlIEJhbmtJRCBBcHAgdG8gYmUgbGF1bmNoZWQgb24gdGhlIG90aGVyIGRldmljZSAuLi4nLFxuICAgIFNlQmFua2lkU3RhcnRNZXNzYWdlNjonVGhlIEJhbmtJRCBBcHAgaGFzIGJlZW4gbGF1bmNoZWQsIGxvb2tpbmcgZm9yIEJhbmtJRCcsXG4gICAgU2VCYW5raWRTdGFydE1lc3NhZ2U3OidJZiBhIGZldyBzZWNvbmRzIGhhdmUgcGFzc2VkIGFuZCBzdGlsbCBubyBCYW5rSUQgaGFzIGJlZW4gZm91bmQsIHlvdSBwcm9iYWJseSBkb27igJl0IGhhdmUgYSBCYW5rSUQgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIHRoZSB0cmFuc2FjdGlvbiBvbiB0aGlzIGRldmljZS4nLFxuICAgIFNlQmFua2lkU3RhcnRNZXNzYWdlODonRW50ZXIgeW91ciBzZWN1cml0eSBjb2RlIGluIHRoZSBCYW5rSUQgQXBwIGFuZCBzZWxlY3QgSWRlbnRpZnkgb3IgU2lnbi4nLFxuICAgIFNlQmFua2lkRXJyb3JNZXNzYWdlMTonQmFua0lEIHRyYW5zYWN0aW9uIGZhaWxlZCcsXG4gICAgU2VCYW5raWRFcnJvck1lc3NhZ2UyOidBbiBpZGVudGlmaWNhdGlvbiBvciBzaWduaW5nIGZvciB0aGlzIHBlcnNvbmFsIG51bWJlciBpcyBhbHJlYWR5IHN0YXJ0ZWQuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICBTZUJhbmtpZEVycm9yTWVzc2FnZTM6J0ludGVybmFsIGVycm9yLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgU2VCYW5raWRFcnJvck1lc3NhZ2U0OidVcGRhdGUgeW91ciBCYW5rSUQgQXBwIGFuZCB0cnkgYWdhaW4uJyxcbiAgICBTZUJhbmtpZEVycm9yTWVzc2FnZTU6J1RoZSBCYW5rSUQgQXBwIGlzIG5vdCByZXNwb25kaW5nLiBQbGVhc2UgY2hlY2sgdGhhdCB0aGUgcHJvZ3JhbSBpcyBzdGFydGVkIGFuZCB0aGF0IHlvdSBoYXZlIGludGVybmV0IGFjY2Vzcy4gSWYgeW91IGRvbuKAmXQgaGF2ZSBhIHZhbGlkIEJhbmtJRCB5b3UgY2FuIGdldCBvbmUgZnJvbSB5b3VyIGJhbmsuIFRyeSBhZ2Fpbi4nLFxuICAgIFNlQmFua2lkRXJyb3JNZXNzYWdlNjonVGhlIEJhbmtJRCB5b3UgYXJlIHRyeWluZyB0byB1c2UgaXMgcmV2b2tlZCBvciB0b28gb2xkLiBQbGVhc2UgdXNlIGFub3RoZXIgQmFua0lEIG9yIG9yZGVyIGEgbmV3IG9uZSBmcm9tIHlvdXIgaW50ZXJuZXQgYmFuay4nLFxuICAgIFNlQmFua2lkRXJyb3JNZXNzYWdlNzonQWN0aW9uIGNhbmNlbGxlZC4nLFxuICAgIFNlQmFua2lkRXJyb3JNZXNzYWdlODonQWN0aW9uIGNhbmNlbGxlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgIFNlQmFua2lkRXJyb3JNZXNzYWdlOTonVGhlIEJhbmtJRCBBcHAgY291bGRu4oCZdCBiZSBmb3VuZCBvbiB5b3VyIGNvbXB1dGVyIG9yIG1vYmlsZSBkZXZpY2UuIFBsZWFzZSBpbnN0YWxsIGl0IGFuZCBvcmRlciBhIEJhbmtJRCBmcm9tIHlvdXIgaW50ZXJuZXQgYmFuay4nLFxuICAgIFRyeUFnYWluOiAnVHJ5IGFnYWluJyxcbiAgICBGaW5pc2g6ICdGaW5pc2gnLFxuICAgIE9wZXJhdGlvbkZhaWxlZDonV2UgYXBvbG9naXplLCBhbiBlcnJvciBvY2N1cnJlZCBhbmQgdGhlIGlkZW50aWZpY2F0aW9uIGNvdWxkIG5vdCBiZSBjb21wbGV0ZWQuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJyxcbiAgICBDaGFuZ2VFaWQ6J0NoYW5nZSBlSUQnLFxuICAgIEZpTXZUZWxlcGhvbmU6J1Bob25lIG51bWJlcicsXG4gICAgRmlNdlRlbGVwaG9uZVBsYWNlaG9sZGVyOidlLmcgMDQ0IDE0NDAxNDQnLFxuICAgIEZpTXZBbnRpSmFtbWluZ0NvZGU6J0FudGktc3BhbSBjb2RlJyxcbiAgICBGaU12QW50aUphbW1pbmdDb2RlUGxhY2Vob2xkZXI6J09wdGlvbmFsJyxcbiAgICBGaU12RXJyb3JNZXNzYWdlR2VuZXJpYzogJ1NvbWV0aGluZyB3ZW50IHdyb25nISBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgRmlNdkVycm9yQ29kZTogJ0Vycm9yIGNvZGU6ICcsXG4gICAgRmlNdkVycm9yXzEwMTE6ICdVc2VyIGFuZCBwcm92aWRlZCBzcGFtIGNvZGVzIGRvIG5vdCBtYXRjaCcsIC8vdXNpbmcgYSBzcGFtY29kZSB3aGVuIHVzZXIgZG9lc250IGhhdmUgb25lIHJlZ2lzdGVyZWQsIG9yIHRoZSB3cm9uZyBvbmVcbiAgICBGaU12RXJyb3JfMTA1MDogJ0NhblxcJ3QgY29ubmVjdCB0byBNb2JpaWxpdmFybWVubmUnLCAvLyB0aGlzIGlzIHByb2JhYmx5IGJlY2F1c2UgdGhlIHNlcnZlcnMgSVAgaXNudCB3aGl0ZWxpc3RlZFxuICAgIEZpTXZFcnJvcl8xMDUxOiAnSW5jb3JyZWN0IGZvcm1hdCcsXG4gICAgRmlNdkVycm9yXzEwNTI6ICdVbmtub3duIHVzZXInLFxuICAgIEZpTXZFcnJvcl8xMDUzOiAnVW5yZWdpc3RlcmVkIHVzZXInLFxuICAgIEZpTXZFcnJvcl8xMDU0OiAnSW5jb21wYXRpYmxlIFNJTSBjYXJkJyxcbiAgICBGaU12RXJyb3JfMTAxMjogJ1NwYW0gY29kZSBpcyByZXF1aXJlZCBmb3IgdGhpcyByZXF1ZXN0JyxcbiAgICBGaU12RXJyb3JfMjA4MDogJ1RpbWUgbGltaXQgZXhjZWVkZWQsIHBsZWFzZSB0cnkgYWdhaW4nLFxuICAgIEZpTXZTdGFydE1lc3NhZ2UxOidTdGFydGluZy4uLicsXG4gICAgRmlNdlN0YXJ0TWVzc2FnZTI6ICdXYWl0aW5nIGZvciBhdXRoZW50aWNhdGlvbicsXG4gICAgRmlNdlN0YXJ0U2lnbjogJ1dhaXRpbmcgZm9yIHNpZ25hdHVyZSwgc2lnbmF0dXJlIHJlcXVlc3QgYXJyaXZlcyBhdCB0aGUgZGV2aWNlIHdpdGggdGhlIGNvZGU6JyxcbiAgICBGaU12U3RhcnRNZXNzYWdlMzonSWRlbnRpZmljYXRpb24gZmFpbGVkLicsXG4gICAgTGVhdmU6J0xlYXZlJyxcbiAgICBOb0JhbmtJZF9BdXRoZW50aWNhdGlvbjogJ0lkZW50aWZpY2F0aW9uJyxcbiAgICBOb0JhbmtJZF9TaWduaW5nOiAnU2lnbmluZycsXG4gICAgTm9CYW5rSWRfTW9iaWxlSW5wdXRMYWJlbDogJ1Bob25lIG51bWJlciBhbmQgZGF0ZSBvZiBiaXJ0aCcsXG4gICAgTm9CYW5rSWRfUGhvbmVQbGFjZWhvbGRlcjogJzggZGlnaXRzJyxcbiAgICBOb0JhbmtJZF9Eb2JQbGFjZWhvbGRlcjogJ2RkbW15eScsXG4gICAgTm9CYW5rSWRfUGhvbmVIaW50OiAnUGhvbmUgbnVtYmVyJyxcbiAgICBOb0JhbmtJZF9Eb2JIaW50OiAnRGF0ZSBvZiBiaXJ0aCcsXG4gICAgTm9CYW5rSWRfUmVmZXJlbmNlV29yZHM6ICdSZWZlcmVuY2Ugd29yZCcsXG4gICAgTm9CYW5rSWRfRm9sbG93TW9iaWxlSW5zdHJ1Y3Rpb25zOiAnRm9sbG93IHRoZSBpbnN0cnVjdGlvbiBvbiB5b3VyIG1vYmlsZScsXG4gICAgTm9CYW5rSWRfTW9iaWxlU3VjY2VzczogJ0lkZW50aWZpY2F0aW9uIGlzIGNvbXBsZXRlJyxcbiAgICBOb0JhbmtJZF9Nb2JpbGVGYWlsOiAnQW4gZXJyb3IgaGFzIG9jY3VyZWQnLFxuICAgIE5vQmFua0lkX01vYmlsZUZhaWxIZWxwVGV4dDogJ1BsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICBOb0JhbmtJZF9XZWJDbGllbnRTdWNjZXNzOiAnSWRlbnRpZmljYXRpb24gaXMgY29tcGxldGUnLFxuICAgIE5vQmFua2lkTWVzc2FnZTE6J1NUQVJURUQnLFxuICAgIE5vQmFua2lkTWVzc2FnZTI6J0FVVEhFTlRJQ0FURUQnLFxuICAgIE5vQmFua2lkTWVzc2FnZTM6J0FVVEhFTlRJQ0FUSU9OIEZBSUxFRCcsXG4gICAgTm9CYW5raWRNZXNzYWdlNDonQU4gRVJST1IgT0NDVVJFRCcsXG4gICAgTm9CYW5raWRTZWxlY3RPdGhlckNvdW50cnk6J1NlbGVjdCBvdGhlciBjb3VudHJ5JyxcbiAgICBTZVNpdGhzT3NpZlN0YXJ0TWVzc2FnZTE6J1N0YXJ0IHNlY3VyaXR5IHNvZnR3YXJlJyxcbiAgICBTZVNpdGhzT3NpZlN0YXJ0TWVzc2FnZTI6J1lvdSBoYXZlIHRvIGFjY2VwdCB0aGF0IHRoZSBzZWN1cml0eSBzb2Z0d2FyZSBcIk5ldCBpRFwiIGNhbiBiZSBsYXVuY2hlZC4gVGhlIGJyb3dzZXIgaGFzIGRpc3BsYXllZCBhIG5vdGlmaWNhdGlvbiB0byB3aGljaCB5b3Ugc2hvdWxkIHByZXNzIFwiQWxsb3dcIiB0byBjb250aW51ZS4nLFxuICAgIFNlU2l0aHNPc2lmU3RhcnRNZXNzYWdlMzonT3BlbnMgc2VjdXJpdHkgc29mdHdhcmUnLFxuICAgIFNlU2l0aHNPc2lmU3RhcnRNZXNzYWdlNDonVmVyaWZ5aW5nLi4uJyxcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTE6J0lkZW50aWZpY2F0aW9uIGZhaWxlZCcsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2UxQjonU2lnbmluZyBmYWlsZWQnLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlMjonVGhlIHNlY3VyaXR5IHNvZnR3YXJlIE5ldCBpRCBkb2VzIG5vdCBzdGFydC4gTWFrZSBzdXJlIHRoZSBzb2Z0d2FyZSBpcyBpbnN0YWxsZWQgYW5kIHRoYXQgeW91IGFyZSB1c2luZyBhIHN1cHBvcnRlZCBicm93c2VyOiBJbnRlcm5ldCBFeHBsb3JlciAxMC4nLCBcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTM6J0NvdWxkIG5vdCBjb21tdW5pY2F0ZSB3aXRoIHRoZSBzZWN1cml0eSBzb2Z0d2FyZS4gSXQgbWF5IGJlIGJlY2F1c2UgeW91IGhhdmUgYW4gb2xkIHZlcnNpb24gaW5zdGFsbGVkIG9yIHRoZSBicm93c2VyIGhhcyBibG9ja2VkIGFjY2Vzcy4gUGxlYXNlIGNoZWNrIHlvdXIgaW5zdGFsbGF0aW9uLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2U0OidUaGUgc2VjdXJpdHkgc29mdHdhcmUgaXMgdG9vIG9sZC4gUGxlYXNlIHVwZGF0ZSB0byB0aGUgbGF0ZXN0IHZlcnNpb24uJyxcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTU6J1RoZSB1c2VyIGNhbmNlbGxlZCB0aGUgb3BlcmF0aW9uIGluIHRoZSBzZWN1cml0eSBzb2Z0d2FyZS4nLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlNjonVGhlIHNlY3VyaXR5IHNvZnR3YXJlIGNvdWxkIG5vdCBhbGxvY2F0ZSBlbm91Z2ggbWVtb3J5LiBUcnkgdG8gY2xvc2Ugc29tZSBhcHBsaWNhdGlvbnMgYmVmb3JlIHRyeWluZyBhZ2Fpbi4nLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlNzonVGhlIHNlY3VyaXR5IHNvZnR3YXJlIGlzIHRvbyBvbGQuIFBsZWFzZSB1cGRhdGUgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2U4OidBbiBpbnRlcm5hbCBlcnJvciBoYXMgb2NjdXJyZWQuJyxcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTk6J0Egc2VjdXJlIGNvbm5lY3Rpb24gY291bGQgbm90IGJlIGVzdGFibGlzaGVkLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2UxMDonSW5zZXJ0IHRoZSBlSUQgY2FyZCBpbiB5b3VyIHJlYWRlciBhbmQgbWFrZSBzdXJlIHRoYXQgdGhlIGNhcmQgcmVhZGVyIGlzIHByb3Blcmx5IGNvbm5lY3RlZC4nLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlMTE6J1RoZSBlSUQgaGFzIGV4cGlyZWQuIENvbnRhY3QgeW91ciBlSUQgcHJvdmlkZXInLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlMTI6J1RoZSBlSUQgaGFzIGJlZW4gcmV2b2tlZCBhbmQgY2FuIG5vdCBiZSB1c2VkLiBDb250YWN0IHlvdXIgZUlEIHByb3ZpZGVyLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2UxMzonVGhlIGVJRCBpcyBmYXVsdHkuIENvbnRhY3QgeW91ciBlSUQgcHJvdmlkZXIuJyxcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTE0OidUaGUgZUlEIGlzIGFib3V0IHRvIGV4cGlyZSBhbmQgbXVzdCBiZSByZW5ld2VkLiBDb250YWN0IHlvdXIgZUlEIHByb3ZpZGVyLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2UxNTonQSB0ZWNobmljYWwgZXJyb3Igb2NjdXJyZWQgYXQgdGhlIGVJRCBwcm92aWRlci4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlMTY6J1Byb3ZpZGVyXFwncyB2ZXJpZmljYXRpb24gc2VydmljZSBpcyB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZSwgcGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nLFxuICAgIFNlbGVjdExhbmd1YWdlOidTZWxlY3QgbGFuZ3VhZ2UnLFxuICAgIEZpVHVwYXNTdGFydE1lc3NhZ2UxOidTdGFydGluZy4uLicsXG4gICAgRmlUdXBhc1N0YXJ0TWVzc2FnZTI6J1dhaXRpbmcgZm9yIGF1dGhlbnRpY2F0aW9uLCB0cmFuc2FjdGlvbiBJRDogJyxcbiAgICBGaVR1cGFzU3RhcnRNZXNzYWdlMzonQXV0aGVudGljYXRpb24gZmFpbGVkLicsXG4gICAgbmVtaWQ6IHtcbiAgICAgIGVycm9yczoge1xuICAgICAgICBBUFAwMDE6ICdBIHRlY2huaWNhbCBlcnJvciBoYXMgb2NjdXJyZWQuIFBsZWFzZSB0cnkgYWdhaW4uIENvbnRhY3QgQXNzZW50bHkgaWYgdGhlIHByb2JsZW0gcGVyc2lzdHMuJyxcbiAgICAgICAgQVBQMDAyOiAnQSB0ZWNobmljYWwgZXJyb3IgaGFzIG9jY3VycmVkLiBQbGVhc2UgdHJ5IGFnYWluLiBDb250YWN0IEFzc2VudGx5IGlmIHRoZSBwcm9ibGVtIHBlcnNpc3RzLicsXG4gICAgICAgIEFQUDAwMzogJ0EgdGVjaG5pY2FsIGVycm9yIGhhcyBvY2N1cnJlZC4gUGxlYXNlIGNvbnRhY3QgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm5lbWlkLm51L2RrLWRhL2ZhYV9oamFlbHBfdGlsX2RpdF9uZW1pZC9rb250YWt0L3N1cHBvcnRfb2dfa29udGFrdC9cIj5OZW1JRCBzdXBwb3J0PC9hPi4nLFxuICAgICAgICBBUFAwMDQ6ICdBIHRlY2huaWNhbCBlcnJvciBoYXMgb2NjdXJyZWQuIFBsZWFzZSB0cnkgYWdhaW4uIENvbnRhY3QgQXNzZW50bHkgaWYgdGhlIHByb2JsZW0gcGVyc2lzdHMuJyxcbiAgICAgICAgQVBQMDA3OiAnQSB0ZWNobmljYWwgZXJyb3IgaGFzIG9jY3VycmVkLiBDb250YWN0IEFzc2VudGx5LicsXG4gICAgICAgIEFQUDAwODogJ0EgdGVjaG5pY2FsIGVycm9yIGhhcyBvY2N1cnJlZC4gQ29udGFjdCBBc3NlbnRseS4nLFxuICAgICAgICBBUFAwMDk6ICdBIHRlY2huaWNhbCBlcnJvciBoYXMgb2NjdXJyZWQuIFBsZWFzZSB0cnkgYWdhaW4uIENvbnRhY3QgQXNzZW50bHkgaWYgdGhlIHByb2JsZW0gcGVyc2lzdHMuJyxcbiAgICAgICAgQVBQMDEwOiAnQSB0ZWNobmljYWwgZXJyb3IgaGFzIG9jY3VycmVkLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgICAgIEFVVEgwMDE6ICdZb3VyIE5lbUlEIGlzIGJsb2NrZWQuIFBsZWFzZSBjb250YWN0IDxhIGhyZWY9XCJodHRwczovL3d3dy5uZW1pZC5udS9kay1kYS9mYWFfaGphZWxwX3RpbF9kaXRfbmVtaWQva29udGFrdC9zdXBwb3J0X29nX2tvbnRha3QvXCI+TmVtSUQgc3VwcG9ydDwvYT4uJyxcbiAgICAgICAgQVVUSDAwMzogJ0xvZ2luIHN1Y2NlZWRlZCBidXQgeW91IGhhdmUgbm8gYmFuayBhZ3JlZW1lbnQuIFBsZWFzZSBjb250YWN0IHlvdXIgYmFuayBmb3IgbW9yZSBkZXRhaWxzLicsXG4gICAgICAgIEFVVEgwMDQ6ICdZb3VyIE5lbUlEIGlzIHRlbXBvcmFyaWx5IGxvY2tlZCBhbmQgeW91IGNhbm5vdCBsb2cgb24gdW50aWwgdGhlIDggaG91ciB0aW1lIGxvY2sgaGFzIGJlZW4gbGlmdGVkLicsXG4gICAgICAgIEFVVEgwMDU6ICdZb3VyIE5lbUlEIGlzIHRlbXBvcmFyaWx5IGxvY2tlZCBhbmQgeW91IGNhbm5vdCBsb2cgb24gdW50aWwgdGhlIDggaG91ciB0aW1lIGxvY2sgaGFzIGJlZW4gbGlmdGVkLicsXG4gICAgICAgIEFVVEgwMDY6ICdZb3VyIE5lbUlEIGlzIGJsb2NrZWQuIFBsZWFzZSBjb250YWN0IDxhIGhyZWY9XCJodHRwczovL3d3dy5uZW1pZC5udS9kay1kYS9mYWFfaGphZWxwX3RpbF9kaXRfbmVtaWQva29udGFrdC9zdXBwb3J0X29nX2tvbnRha3QvXCI+TmVtSUQgc3VwcG9ydDwvYT4uJyxcbiAgICAgICAgQVVUSDAwNzogJ1lvdXIgTmVtSUQgcGFzc3dvcmQgaXMgYmxvY2tlZCBkdWUgdG8gdG9vIG1hbnkgZmFpbGVkIHBhc3N3b3JkIGF0dGVtcHRzLiBQbGVhc2UgY29udGFjdCA8YSBocmVmPVwiaHR0cHM6Ly93d3cubmVtaWQubnUvZGstZGEvZmFhX2hqYWVscF90aWxfZGl0X25lbWlkL2tvbnRha3Qvc3VwcG9ydF9vZ19rb250YWt0L1wiPk5lbUlEIHN1cHBvcnQ8L2E+LicsXG4gICAgICAgIEFVVEgwMDg6ICdZb3VyIE5lbUlEIGlzIG5vdCBhY3RpdmUgYW5kIHlvdSBuZWVkIHN1cHBvcnQgdG8gaXNzdWUgYSBuZXcgYWN0aXZhdGlvbiBwYXNzd29yZCB0byBhY3RpdmF0ZS4gUGxlYXNlIGNvbnRhY3QgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm5lbWlkLm51L2RrLWRhL2ZhYV9oamFlbHBfdGlsX2RpdF9uZW1pZC9rb250YWt0L3N1cHBvcnRfb2dfa29udGFrdC9cIj5OZW1JRCBzdXBwb3J0PC9hPi4nLFxuICAgICAgICBBVVRIMDA5OiAnQSB0ZWNobmljYWwgZXJyb3IgaGFzIG9jY3VycmVkLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgICAgIEFVVEgwMTA6ICdBIHRlY2huaWNhbCBlcnJvciBoYXMgb2NjdXJyZWQuIFBsZWFzZSB0cnkgYWdhaW4sIGFuZCBlbnN1cmUgdGhhdCBvbmx5IG9uZSBOZW1JRCBsb2dpbiBpcyBydW5uaW5nLicsXG4gICAgICAgIEFVVEgwMTE6ICdOZW1JRCBsb2dpbiBvbiBtb2JpbGUgZG9lcyBub3Qgc3VwcG9ydCBhdXRoZW50aWNhdGlvbiB1c2luZyBhIHRlbXBvcmFyeSBwYXNzd29yZC4gUGxlYXNlIGNvbnRhY3QgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm5lbWlkLm51L2RrLWRhL2ZhYV9oamFlbHBfdGlsX2RpdF9uZW1pZC9rb250YWt0L3N1cHBvcnRfb2dfa29udGFrdC9cIj5OZW1JRCBzdXBwb3J0PC9hPiB0byBoYXZlIGEgbmV3IHRlbXBvcmFyeSBwYXNzd29yZCBpc3N1ZWQuIFRoZXJlYWZ0ZXIsIHBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICAgICAgQVVUSDAxMjogJ0EgdGVjaG5pY2FsIGVycm9yIGhhcyBvY2N1cnJlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgICAgICBBVVRIMDEzOiAnQSB0ZWNobmljYWwgZXJyb3IgaGFzIG9jY3VycmVkLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgICAgIEFVVEgwMTc6ICdTb21ldGhpbmcgaW4gdGhlIGJyb3dzZXIgZW52aXJvbm1lbnQgaGFzIGNhdXNlZCBOZW1JRCB0byBzdG9wIHdvcmtpbmcuIFRoaXMgY291bGQgYmUgYmVjYXVzZSBvZiBhbiBpbmNvbXBhdGlibGUgcGx1Z2luLCB0b28gcmVzdHJpY3RpdmUgcHJpdmFjeSBzZXR0aW5ncyBvciBvdGhlciBlbnZpcm9ubWVudCBmYWN0b3JzLiBQbGVhc2UgdHJ5IGRlYWN0aXZhdGluZyBwbHVnaW5zLCByZXNldHRpbmcgeW91ciBicm93c2VyIHNldHRpbmdzIG9yIHRyeSB1c2luZyBhIGRpZmZlcmVudCBicm93c2VyLicsXG4gICAgICAgIENBTjAwMTogJ1lvdSBoYXZlIGNhbmNlbGxlZCB0aGUgYWN0aXZhdGlvbiBvZiBOZW1JRCBhZnRlciBzdWJtaXR0aW5nIHRoZSBhY3RpdmF0aW9uIHBhc3N3b3JkLiBZb3VyIGFjdGl2YXRpb24gcGFzc3dvcmQgaXMgbm8gbG9uZ2VyIHZhbGlkLCBhbmQgeW91IG11c3QgcmVxdWVzdCBhIG5ldyBhY3RpdmF0aW9uIHBhc3N3b3JkIGJlZm9yZSB5b3UgY2FuIGFjdGl2YXRlIGFuZCB1c2UgTmVtSUQuIFlvdSBjYW4gb3JkZXIgeW91ciBuZXcgYWN0aXZhdGlvbiBwYXNzd29yZCB2aWEgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm5lbWlkLm51L2RrLWRhL2ZhYV9oamFlbHBfdGlsX2RpdF9uZW1pZC9rb250YWt0L3N1cHBvcnRfb2dfa29udGFrdC9cIj5OZW1JRCBTdXBwb3J0PC9hPicsXG4gICAgICAgIENBTjAwMjogJ1lvdSBoYXZlIGNhbmNlbGxlZCBsb2dpbi4nLFxuICAgICAgICBDQU4wMDM6ICdUaGUgY29ubmVjdGlvbiB0byB0aGUgYXBwbGljYXRpb24gaGFzIHRpbWVkIG91dCBvciBoYXMgYmVlbiBpbnRlcnJ1cHRlZCBieSBhbm90aGVyIGFwcC4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgICAgICBDQU4wMDQ6ICdUaGUgc2Vzc2lvbiBpcyBjYW5jZWxsZWQuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICAgICAgTElCMDAyOiAnQSB0ZWNobmljYWwgZXJyb3IgaGFzIG9jY3VycmVkIGR1ZSB0byBuZXR3b3JrIGlzc3Vlcy4gUGxlYXNlIHRyeSBhZ2Fpbi4gQ29udGFjdCBBc3NlbnRseSBpZiB0aGUgcHJvYmxlbSBwZXJzaXN0cy4nLFxuICAgICAgICBMT0NLMDAxOiAnWW91IGhhdmUgdXNlZCB0aGUgd3JvbmcgdXNlciBJRCBvciBwYXNzd29yZCB0b28gbWFueSB0aW1lcy4gWW91ciBOZW1JRCBpcyBub3cgYmxvY2tlZCBmb3IgOCBob3VycyBhZnRlciB3aGljaCB5b3UgY2FuIHRyeSBhZ2Fpbi4gSWYgeW91IGhhdmUgZm9yZ290dGVuIHlvdXIgcGFzc3dvcmQgeW91IGNhbiBmaW5kIHN1cHBvcnQgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm5lbWlkLm51L2RrLWRhL2ZhYV9oamFlbHBfdGlsX2RpdF9uZW1pZC9rb250YWt0L3N1cHBvcnRfb2dfa29udGFrdC9cIj5oZXJlPC9hPi4nLFxuICAgICAgICBMT0NLMDAyOiAnWW91IGhhdmUgdXNlZCBhIHdyb25nIHBhc3N3b3JkIHRvbyBtYW55IHRpbWVzLiBZb3VyIE5lbUlEIGlzIGJsb2NrZWQgYW5kIGNhbm5vdCBiZSB1c2VkLiBUbyBnZXQgaGVscCB3aXRoIHRoaXMgcHJvYmxlbSwgUGxlYXNlIGNvbnRhY3QgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm5lbWlkLm51L2RrLWRhL2ZhYV9oamFlbHBfdGlsX2RpdF9uZW1pZC9rb250YWt0L3N1cHBvcnRfb2dfa29udGFrdC9cIj5OZW1JRCBzdXBwb3J0PC9hPi4nLFxuICAgICAgICBMT0NLMDAzOiAnWW91IGhhdmUgZW50ZXJlZCBhIHdyb25nIE5lbUlEIGtleSB0b28gbWFueSB0aW1lcy4gWW91ciBOZW1JRCBpcyBibG9ja2VkIGFuZCBjYW5ub3QgYmUgdXNlZC4gUGxlYXNlIGNvbnRhY3QgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm5lbWlkLm51L2RrLWRhL2ZhYV9oamFlbHBfdGlsX2RpdF9uZW1pZC9rb250YWt0L3N1cHBvcnRfb2dfa29udGFrdC9cIj5OZW1JRCBzdXBwb3J0PC9hPi4nLFxuICAgICAgICBTUlYwMDE6ICdBIHRlY2huaWNhbCBlcnJvciBoYXMgb2NjdXJyZWQuIFBsZWFzZSB0cnkgYWdhaW4uIENvbnRhY3QgQXNzZW50bHkgaWYgdGhlIHByb2JsZW0gcGVyc2lzdHMuJyxcbiAgICAgICAgU1JWMDAyOiAnQSB0ZWNobmljYWwgZXJyb3IgaGFzIG9jY3VycmVkLiBQbGVhc2UgdHJ5IGFnYWluLiBDb250YWN0IEFzc2VudGx5IGlmIHRoZSBwcm9ibGVtIHBlcnNpc3RzLicsXG4gICAgICAgIFNSVjAwMzogJ0EgdGVjaG5pY2FsIGVycm9yIGhhcyBvY2N1cnJlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4gQ29udGFjdCBBc3NlbnRseSBpZiB0aGUgcHJvYmxlbSBwZXJzaXN0cy4nLFxuICAgICAgICBTUlYwMDQ6ICdBIHRlY2huaWNhbCBlcnJvciBoYXMgb2NjdXJyZWQuIFBsZWFzZSBjb250YWN0IDxhIGhyZWY9XCJodHRwczovL3d3dy5uZW1pZC5udS9kay1kYS9mYWFfaGphZWxwX3RpbF9kaXRfbmVtaWQva29udGFrdC9zdXBwb3J0X29nX2tvbnRha3QvXCI+TmVtSUQgc3VwcG9ydDwvYT4uJyxcbiAgICAgICAgU1JWMDA1OiAnQSB0ZWNobmljYWwgZXJyb3IgaGFzIG9jY3VycmVkLiBQbGVhc2UgdHJ5IGFnYWluLiBDb250YWN0IEFzc2VudGx5IGlmIHRoZSBwcm9ibGVtIHBlcnNpc3RzLicsXG4gICAgICAgIFNSVjAwNjogJ1RpbWUgbGltaXQgZXhjZWVkZWQuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICAgICAgU1JWMDA3OiAnQSB0ZWNobmljYWwgZXJyb3IgaGFzIG9jY3VycmVkLiBQbGVhc2UgdHJ5IGFnYWluLiBDb250YWN0IEFzc2VudGx5IGlmIHRoZSBwcm9ibGVtIHBlcnNpc3RzLicsXG4gICAgICAgIFNSVjAwODogJ0EgdGVjaG5pY2FsIGVycm9yIGhhcyBvY2N1cnJlZC4gQ29udGFjdCBBc3NlbnRseS4nLFxuICAgICAgICBTUlYwMDk6ICdZb3UgaGF2ZSBhdHRlbXB0ZWQgdG8gbG9nIGluIHdpdGggYW4gSVZSIHVzZXIgb24gdGhlIE5lbUlEIG1vYmlsZSBsb2dpbi4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkLicsXG4gICAgICAgIFNSVjAxMDogJ0EgdGVjaG5pY2FsIGVycm9yIGhhcyBvY2N1cnJlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4gQ29udGFjdCBBc3NlbnRseSBpZiB0aGUgcHJvYmxlbSBwZXJzaXN0cy4nLFxuICAgICAgICBPQ0VTMDAxOiAnWW91IG9ubHkgaGF2ZSBOZW1JRCBmb3Igb25saW5lIGJhbmtpbmcuIElmIHlvdSB3aXNoIHRvIHVzZSBOZW1JRCBmb3Igb3RoZXIgcHVibGljIG9yIHByaXZhdGUgc2VydmljZXMsIHlvdSBtdXN0IDxhIGhyZWY9XCJodHRwczovL3NlcnZpY2UubmVtaWQubnUvZGtkYS9iZXN0aWxfbmVtaWQvYmVzdGlsX29mZmVudGxpZ19kaWdpdGFsX3NpZ25hdHVyX3RpbF9kaXRfbmVtaWQvXCI+YWZmaWxpYXRlIGEgcHVibGljIGRpZ2l0YWwgc2lnbmF0dXJlPC9hPiB0byB5b3VyIE5lbUlELicsXG4gICAgICAgIE9DRVMwMDI6ICdJZiB5b3Ugd2lzaCB0byB1c2UgTmVtSUQgZm9yIG90aGVyIHNlcnZpY2VzIHRoYW4gb25saW5lIGJhbmtpbmcsIHlvdSBoYXZlIHRvIGFmZmlsaWF0ZSBhIHB1YmxpYyBkaWdpdGFsIHNpZ25hdHVyZSB0byB5b3VyIE5lbUlELiBZb3UgY2FuIGRvIHRoaXMgYnkgc3RhcnRpbmcgdGhlIHJlZ3VsYXIgTmVtSUQgb3JkZXIgZmxvdywgd2hpY2ggd2lsbCB0aGVuIG9yZGVyIHRoZSBuZWVkZWQgcHVibGljIGRpZ2l0YWwgc2lnbmF0dXJlLiA8YSBocmVmPVwiaHR0cHM6Ly9zZXJ2aWNlLm5lbWlkLm51L2RrZGEvYmVzdGlsX25lbWlkL1wiPlJlcXVlc3QgTmVtSUQ8L2E+LicsXG4gICAgICAgIE9DRVMwMDM6ICdZb3UgaGF2ZSBhdHRlbXB0ZWQgdG8gbG9nIG9uIHVzaW5nIGEgTmVtSUQgd2l0aCBubyBwdWJsaWMgZGlnaXRhbCBzaWduYXR1cmUuIElmIHlvdSBwcmV2aW91c2x5IGhhdmUgbG9nZ2VkIG9uIHRvIG91ciBzZXJ2aWNlIHVzaW5nIHlvdXIgTmVtSUQsIHRoZSBlcnJvciBjYW4gYmUgZHVlIHRvIGhhdmluZyBtb3JlIHRoYW4gb25lIE5lbUlEIGFuZCBoYXZpbmcgdXNlZCBhIGRpZmZlcmVudCBOZW1JRCB0aGFuIG5vcm1hbGx5LicsXG4gICAgICAgIE9DRVMwMDQ6ICdZb3UgY2FuIG9ubHkgdXNlIHRoaXMgTmVtSUQgZm9yIHlvdXIgb25saW5lIGJhbmtpbmcgc2VydmljZS4nLFxuICAgICAgICBPQ0VTMDA1OiAnSXNzdWluZyB5b3VyIHB1YmxpYyBkaWdpdGFsIHNpZ25hdHVyZSBmYWlsZWQuIFBsZWFzZSB0cnkgYWdhaW4uIElmIHRoZSBwcm9ibGVtIHBlcnNpc3RzIDxhIGhyZWY9XCJodHRwczovL3d3dy5uZW1pZC5udS9kay1kYS9mYWFfaGphZWxwX3RpbF9kaXRfbmVtaWQva29udGFrdC9zdXBwb3J0X29nX2tvbnRha3QvXCI+Y29udGFjdCBOZW1JRCBzdXBwb3J0PC9hPicsXG4gICAgICAgIE9DRVMwMDY6ICdZb3UgY3VycmVudGx5IGRvbuKAmXQgaGF2ZSBhbiBhY3RpdmUgcHVibGljIGRpZ2l0YWwgc2lnbmF0dXJlIChPQ0VTIGNlcnRpZmljYXRlKSBhZmZpbGlhdGVkIHdpdGggeW91ciBOZW1JRC4gVG8gZ2V0IHRoaXMsIHN0YXJ0IHRoZSByZWd1bGFyIE5lbUlEIG9yZGVyIGZsb3cgYWZ0ZXIgd2hpY2ggeW91IHdpbGwgYmUgYXNrZWQgdG8gYWZmaWxpYXRlIGEgcHVibGljIGRpZ2l0YWwgc2lnbmF0dXJlIHdpdGggeW91ciBjdXJyZW50IE5lbUlELiA8YSBocmVmPVwiaHR0cHM6Ly9zZXJ2aWNlLm5lbWlkLm51L2RrZGEvYmVzdGlsX25lbWlkL1wiPlJlcXVlc3QgTmVtSUQ8L2E+LicsXG4gICAgICB9LFxuICAgICAgb3RwOiAnQ29kZSBjYXJkIC8gQ29kZSBhcHAnLFxuICAgICAgY29kZWZpbGU6ICdDb2RlIGZpbGUnLFxuICAgICAgc2VsZWN0bWV0aG9kOiAnU2VsZWN0IG1ldGhvZCcsXG4gICAgfSxcbiAgICB2cms6IHtcbiAgICAgIHNpZ246ICdTaWduJyxcbiAgICAgIHNpZ25fcHJvbWlzZTogJ0kgaGVyZWJ5IHNpZ24gdGhlIGZvbGxvd2luZyB0ZXh0OicsXG4gICAgICBzZWxlY3RfY2VydGlmaWNhdGU6ICdTZWxlY3QgY2VydGlmaWNhdGUgZm9yIHNpZ25pbmcnLFxuICAgICAgY2VydGlmaWNhdGVfc2VsZWN0aW9uX2NhbmNlbGxlZDogJ0NlcnRpZmljYXRlIHNlbGVjdGlvbiBjYW5jZWxsZWQuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICAgIHByZXBhcmluZ19zaWduYXR1cmU6ICdQcmVwYXJpbmcgc2lnbmF0dXJlLi4uJyxcbiAgICAgIGVudGVyOiAnRW50ZXIgeW91cicsXG4gICAgICBwaW4yOiAnUElOMicsXG4gICAgICBub19pbXBsZW1lbnRhdGlvbjogJ05vIHBsdWdpbiBvciBleHRlbnNpb24gZm9yIHNpZ25pbmcgZm91bmQuJyxcbiAgICAgIG5vX2ltcGxlbWVudGF0aW9uX2RldGFpbHM6ICdGb3IgZGV0YWlscyBzZWU6IGh0dHBzOi8vd3d3LmlkLmVlL2luZGV4LnBocD9pZD0zMDQ2NicsXG4gICAgICBkb2N1bWVudF9zaWduZWQ6ICdEb2N1bWVudCBzaWduZWQnLFxuICAgICAgY2VydGlmaWNhdGVfZXJyb3IgOiAnTm8gY2VydGlmaWNhdGVzIGF2YWlsYWJsZS4nLFxuICAgICAgdHJ5X2FnYWluX21lc3NhZ2U6J1BsZWFzZSB0cnkgYWdhaW4nLFxuICAgICAgdGVjaG5pY2FsX2Vycm9yIDogJ1RlY2huaWNhbCBlcnJvci4nLFxuICAgICAgYXV0aF9zdGFydGVkOiAnUHJvY2VzcyBzdGFydGVkLiB3YWl0aW5nIGZvciBjZXJ0aWZpY2F0ZS4uLicsXG4gICAgICBzaWduX3N0YXJ0ZWQ6ICdQcm9jZXNzIHN0YXJ0ZWQuIHdhaXRpbmcgZm9yIHNpZ25hdHVyZS4uLicsXG4gICAgICBzaWduYXR1cmVfcmVxdWVzdDogJ1NlbGVjdCBjZXJ0aWZpY2F0ZScsXG4gICAgICBjaGVja19jZXJ0aWZpY2F0ZTogJ1ZlcmlmeWluZy4uLicsXG4gICAgICBhdXRoX25vdHZhbGlkOiAnSW52YWxpZCBzaWduYXR1cmUnLFxuICAgICAgY2hhbGxlbmdlX3N0YXJ0ZWQ6ICdQcm9jZXNzIHN0YXJ0ZWQuLi4nLFxuICAgICAgZXJyb3JzOiB7XG4gICAgICAgIDQwMDogJ01ha2Ugc3VyZSB0aGUgY2FyZCBpcyBpbnNlcnRlZCBjb3JyZWN0bHkuJyxcbiAgICAgICAgNDAxOiAnSW5jb3JyZWN0IGNlcnRpZmljYXRlIG9yIFBJTiwgcGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgICAgICA0MDM6ICdTb21ldGhpbmcgd2VudCB3cm9uZywgcGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgICAgICA0MTM6ICdTaWduYXR1cmUgY29udGVudCB3YXMgdG9vIGJpZy4nLFxuICAgICAgICA1MDA6ICdTb21ldGhpbmcgd2VudCB3cm9uZywgcGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgICAgICA1MDE6ICdTb21ldGhpbmcgd2VudCB3cm9uZywgcGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgICAgICBnMDAwOidTb21ldGhpbmcgd2VudCB3cm9uZywgcGxlYXNlIGNvbnRhY3Qgc3VwcG9ydC4nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGZyZWphaWQ6IHtcbiAgICAgIEZyZWphU3RhcnRBcHBNZXNzYWdlOidMYXVuY2ggRnJlamEgZUlEIEFwcCBvbiB0aGUgZGV2aWNlIHlvdSB3YW50IHRvIHVzZSBhbmQgc2NhbiB0aGlzIFFSIGNvZGUuJyxcbiAgICAgIGZyZWphaWRDYW5jZWxRUkNvZGVNZXNzYWdlOiAnQ2FuY2VsIHRyYW5zYWN0aW9uLicsXG4gICAgICBGcmVqYVN0YXJ0QXBwTWVzc2FnZTE6ICdTdGFydCBGcmVqYSBlSUQgYXBwIG9uIHRoaXMgZGV2aWNlJyxcbiAgICAgIGZyZWphZWlkVXNlT25Bbm90aGVyRGV2aWNlTWVzc2FnZTogJ1VzZSBGcmVqYSBlSUQgb24gYW5vdGhlciBkZXZpY2UnLFxuICAgICAgZnJlamFlaWRVc2VPblNhbWVEZXZpY2VNZXNzYWdlOiAnVXNlIEZyZWphIGVJRCBvbiB0aGlzIGRldmljZScsXG4gICAgICBzdGFydFFSTWVzc2FnZTogJ1N0YXJ0IFFSJyxcbiAgICAgIGZyZWphZWlkVHJhbnNhY3Rpb25GYWlsZWRNZXNzYWdlOiAndHJhbnNhY3Rpb24gZmFpbGVkJyxcbiAgICAgIGZyZWphZWlkVHJhbnNhY3Rpb25FeHBpcmVkTWVzc2FnZTogJ0FjdGlvbiBleHBpcmVkJyxcbiAgICAgIGZyZWphZWlkVHJhbnNhY3Rpb25DYW5jZWxsZWRNZXNzYWdlOiAnQWN0aW9uIGNhbmNlbGxlZCcsXG4gICAgICBmcmVqYWVpZFRyYW5zYWN0aW9uUmVqZWN0ZWRNZXNzYWdlOiAnQWN0aW9uIHJlamVjdGVkJyxcbiAgICAgIGZyZWphZWlkRW50ZXJTZWN1cml0eUNvZGVNZXNzYWdlOiAnRW50ZXIgeW91ciBzZWN1cml0eSBjb2RlIGluIHRoZSBGcmVqYSBlSUQgQXBwJyxcbiAgICAgIGZyZWphZWlkQ29udGludWVXaXRoTWVzc2FnZTogJ0NvbnRpbnVlIHdpdGgnLFxuICAgICAgZnJlamFlaWRTdGFydE1lc3NhZ2UxOiBcIlRyeWluZyB0byBzdGFydCB5b3VyIEZyZWphIGVJRCBBcHBcIixcbiAgICAgIGZyZWphZWlkU3RhcnRNZXNzYWdlMjogXCJMYXVuY2ggdGhlIEZyZWphIGVJRCBBcHAgbWFudWFsbHkgaWYgaXQgZG9lcyBub3QgbGF1bmNoIGF1dG9tYXRpY2FsbHlcIixcbiAgICAgIGZyZWphZWlkU3RhcnRNZXNzYWdlMzonTGF1bmNoIEZyZWphIGVJRCBBcHAgb24gdGhlIGRldmljZSB5b3Ugd2FudCB0byB1c2UnLFxuICAgICAgU29jaWFsU2VjdXJpdHlOb1BsYWNlaG9sZGVyOiAnWVlNTURETk5OTicsXG4gICAgICBmcmVqYUludGVybmFsRXJyb3I6ICdJbnRlcm5hbCBlcnJvci4gUGxlYXNlIHRyeSBhZ2Fpbi4nXG4gICAgfSxcbiAgfSxcbiAgeyBcbiAgICBpZDogJ3N2JywgIFxuICAgIE5hbWU6ICdTdmVuc2thJyxcbiAgICBBbGxvd2VFaWRzOlsnc2UtYmFua2lkJywgJ3NlLWVpZGFzJywgJ3NlLXNpdGhzLW9zaWYnLCAnZmktbXYnLCdmaS1iYW5raWQnLCAnc2UtZnJlamFlaWRwbHVzJ10sXG4gICAgZXJyb3JzOiB7XG4gICAgICBhcGlfdW5hdmFpbGFibGU6ICdLYW4gaW50ZSBhbnNsdXRhIHRpbGwgYmFja2VuZC1zZXJ2cmFyLCBmw7Zyc8O2ayBpZ2VuLicsXG4gICAgICBnZW5lcmljOiAnTsOlZ29udGluZyBnaWNrIGZlbC4gVsOkbmxpZ2VuIGbDtnJzw7ZrIGlnZW4uJyxcbiAgICB9LFxuICAgIFRpdGxlOiAnTG9nZ2EgaW4nLFxuICAgIFNpZ25UaXRsZTogJ1VuZGVydGVja25hJyxcbiAgICBTZWxlY3RDb3VudHJ5OidWw6RsaiBsYW5kJyxcbiAgICBTZWxlY3RFaWQ6ICdWw6RsaiBkaW4gZS1sZWdpdGltYXRpb24nLFxuICAgIENoYW5nZUNvdW50cnk6ICdCeXQgbGFuZCcsXG4gICAgQ2FuY2VsOidBdmJyeXQnLFxuICAgIFNvY2lhbFNlY3VyaXR5Tm86ICdBbmdlIGRpdHQgcGVyc29ubnVtbWVyJyxcbiAgICBTb2NpYWxTZWN1cml0eU5vUGxhY2Vob2xkZXI6ICfDhcOFTU1ERE5OTk4nLFxuICAgIENvbnRpbnVlOidGb3J0c8OkdHQnLFxuICAgIFNlQmFua2lkU3RhcnRBcHBNZXNzYWdlOidTdGFydGEgQmFua0lELWFwcGVuJyxcbiAgICBTZUJhbmtpZFVzZUN1cnJlbnREZXZpY2VNZXNzYWdlOidBbnbDpG5kIEJhbmtJRCBww6UgZGVubmEgZW5oZXQnLFxuICAgIFNlQmFua2lkVXNlT3RoZXJEZXZpY2VNZXNzYWdlOidBbnbDpG5kIEJhbmtJRCBww6UgZW4gYW5uYW4gZW5oZXQnLFxuICAgIFNlQmFua2lkVXNlUVJDb2RlTWVzc2FnZTonUVIta29kJyxcbiAgICBTZUJhbmtpZENhbmNlbFFSQ29kZU1lc3NhZ2U6J0FudsOkbmQgcGVyc29ubnVtbWVyJyxcbiAgICBTZUJhbmtpZFN0YXJ0TWVzc2FnZTE6J0bDtnJzw7ZrZXIgc3RhcnRhIEJhbmtJRC1hcHBlbicsXG4gICAgU2VCYW5raWRTdGFydE1lc3NhZ2UyOidTdGFydGEgYXBwZW4gc2rDpGx2IG9tIGRlbiBpbnRlIHN0YXJ0YXIgYXV0b21hdGlza3QuJyxcbiAgICBTZUJhbmtpZFN0YXJ0TWVzc2FnZTM6J1N0YXJ0YSBCYW5rSUQtYXBwZW4gcMOlIGRlbiBlbmhldCBkdSB2aWxsIGFudsOkbmRhLicsXG4gICAgU2VCYW5raWRTdGFydE1lc3NhZ2U0OidCYW5rSUQtYXBwZW4gaGFyIGludGUgc3RhcnRhdCBhdXRvbWF0aXNrdCDDpG5udS4uLicsXG4gICAgU2VCYW5raWRTdGFydE1lc3NhZ2U1OidWw6RudGFyIGZvcnRmYXJhbmRlIHDDpSBhdHQgZHUgc2thIHN0YXJ0YSBCYW5rSUQtYXBwZW4gcMOlIGRlbiBhbmRyYSBlbmhldGVuLi4uJyxcbiAgICBTZUJhbmtpZFN0YXJ0TWVzc2FnZTY6J0JhbmtJRC1hcHBlbiDDpHIgc3RhcnRhZCwgc8O2a2VyIGVmdGVyIEJhbmtJRC4uLicsXG4gICAgU2VCYW5raWRTdGFydE1lc3NhZ2U3OidPbSBkZXQgaGFyIGfDpXR0IG7DpWdyYSBzZWt1bmRlciBvY2ggaW5nZXQgQmFua0lEIGhhciBoaXR0YXRzIGZpbm5zIGRldCBzYW5ub2xpa3QgaW5nZXQgQmFua0lEIHDDpSBkZW5uYSBlbmhldCBzb20ga2FuIGFudsOkbmRhcyBmw7ZyIHRyYW5zYWt0aW9uZW4uJyxcbiAgICBTZUJhbmtpZFN0YXJ0TWVzc2FnZTg6J1Nrcml2IGluIGRpbiBzw6RrZXJoZXRza29kIGkgQmFua0lELWFwcGVuIG9jaCB2w6RsaiBMZWdpdGltZXJhIGVsbGVyIFNrcml2IHVuZGVyLicsXG4gICAgU2VCYW5raWRFcnJvck1lc3NhZ2UxOidCYW5rSUQtdHJhbnNha3Rpb25lbiBtaXNzbHlja2FkZXMnLFxuICAgIFNlQmFua2lkRXJyb3JNZXNzYWdlMjonRW4gaWRlbnRpZmllcmluZyBlbGxlciB1bmRlcnNrcmlmdCBmw7ZyIGRldCBow6RyIHBlcnNvbm51bXJldCDDpHIgcmVkYW4gcMOlYsO2cmphZC4gRsO2cnPDtmsgaWdlbi4nLFxuICAgIFNlQmFua2lkRXJyb3JNZXNzYWdlMzonSW50ZXJudCB0ZWtuaXNrdCBmZWwuIEbDtnJzw7ZrIGlnZW4uJyxcbiAgICBTZUJhbmtpZEVycm9yTWVzc2FnZTQ6J1VwcGRhdGVyYSBkaW4gQmFua0lELWFwcCBpbm5hbiBkdSBmw7Zyc8O2a2VyIGlnZW4uJyxcbiAgICBTZUJhbmtpZEVycm9yTWVzc2FnZTU6J0JhbmtJRC1hcHBlbiBzdmFyYXIgaW50ZS4gS29udHJvbGxlcmEgYXR0IGRlbiDDpHIgc3RhcnRhZCBvY2ggYXR0IGR1IGhhciBpbnRlcm5ldGFuc2x1dG5pbmcuIE9tIGR1IGludGUgaGFyIG7DpWdvdCBnaWx0aWd0IEJhbmtJRCBrYW4gZHUgaMOkbXRhIGV0dCBob3MgZGluIEJhbmsuIEbDtnJzw7ZrIHNlZGFuIGlnZW4uJyxcbiAgICBTZUJhbmtpZEVycm9yTWVzc2FnZTY6J0RldCBCYW5rSUQgZHUgZsO2cnPDtmtlciBhbnbDpG5kYSDDpHIgZsO2ciBnYW1tYWx0IGVsbGVyIHNww6RycmF0LiBBbnbDpG5kIGV0dCBhbm5hdCBCYW5rSUQgZWxsZXIgaMOkbXRhIGV0dCBueXR0IGhvcyBkaW4gaW50ZXJuZXRiYW5rLicsXG4gICAgU2VCYW5raWRFcnJvck1lc3NhZ2U3OifDhXRnw6RyZGVuIGF2YnJ1dGVuLicsXG4gICAgU2VCYW5raWRFcnJvck1lc3NhZ2U4OifDhXRnw6RyZGVuIGF2YnJ1dGVuLiBGw7Zyc8O2ayBpZ2VuIG9tIGVuIGxpdGVuIHN0dW5kLicsXG4gICAgU2VCYW5raWRFcnJvck1lc3NhZ2U5OidCYW5rSUQtYXBwZW4gdmVya2FyIGludGUgZmlubmFzIGkgZGluIGRhdG9yIGVsbGVyIHRlbGVmb24uIEluc3RhbGxlcmEgZGVuIG9jaCBow6RtdGEgZXR0IEJhbmtJRCBob3MgZGluIGludGVybmV0YmFuay4nLFxuICAgIFRyeUFnYWluOiAnRsO2cnPDtmsgaWdlbicsXG4gICAgRmluaXNoOiAnQXZzbHV0YScsXG4gICAgT3BlcmF0aW9uRmFpbGVkOidWaSBiZWtsYWdhciwgbWVuIGV0dCBmZWwgaW50csOkZmZhZGUgb2NoIGxlZ2l0aW1lcmluZ2VuIGt1bmRlIGludGUgZ2Vub21mw7ZyYXMuIFbDpG5saWdlbiBmw7Zyc8O2ayBpZ2VuIHNlbmFyZS4nLFxuICAgIENoYW5nZUVpZDonQnl0IGUtbGVnJyxcbiAgICBGaU12VGVsZXBob25lOidUZWxlZm9ubnVtbWVyJyxcbiAgICBGaU12VGVsZXBob25lUGxhY2Vob2xkZXI6J2UuZyAwNDQgMTQ0MDE0NCcsXG4gICAgRmlNdkFudGlKYW1taW5nQ29kZTonQW50aS1zcGFta29kJyxcbiAgICBGaU12QW50aUphbW1pbmdDb2RlUGxhY2Vob2xkZXI6J0ZyaXZpbGxpZ3QnLFxuICAgIEZpTXZTdGFydE1lc3NhZ2UxOidTdGFydGFyLi4uJyxcbiAgICBGaU12U3RhcnRNZXNzYWdlMjonVsOkbnRhciBww6UgYXV0ZW50aXNlcmluZywgdmVyaWZpZXJhIGtvZGVuIGkgZGluIHRlbGVmb246JyxcbiAgICBGaU12U3RhcnRTaWduOiAnVsOkbnRhciBww6Ugc2lnbmVyaW5nLCB2ZXJpZmllcmEga29kZW4gaSBkaW4gdGVsZWZvbjonLFxuICAgIEZpTXZTdGFydE1lc3NhZ2UzOiAnSWRlbnRpZmllcmluZyBtaXNzbHlja2FkZXMnLFxuICAgIExlYXZlOidMw6RtbmEnLFxuICAgIE5vQmFua2lkTWVzc2FnZTE6J1NUQVJURUQnLFxuICAgIE5vQmFua2lkTWVzc2FnZTI6J0FVVEhFTlRJQ0FURUQnLFxuICAgIE5vQmFua2lkTWVzc2FnZTM6J0FVVEVOVElTRVJJTkcgTUlTU0xZQ0tBREVTLicsXG4gICAgTm9CYW5raWRNZXNzYWdlNDonRVRUIEZFTCBVUFBTVE9EJyxcbiAgICBOb0JhbmtpZFNlbGVjdE90aGVyQ291bnRyeTonVsOkbGogYW5uYXQgbGFuZCcsXG4gICAgU2VTaXRoc09zaWZTdGFydE1lc3NhZ2UxOidTdGFydGFyIHPDpGtlcmhldHNwcm9ncmFtbWV0JyxcbiAgICBTZVNpdGhzT3NpZlN0YXJ0TWVzc2FnZTI6J0R1IGJlaMO2dmVyIGdvZGvDpG5uYSBhdHQgc8Oka2VyaGV0c3Byb2dyYW1tZXQgXCJOZXQgaURcIiBrw7Zycy4gV2ViYmzDpHNhcmVuIGhhciBzdMOkbGx0IGVuIGZyw6VnYSB0aWxsIGRpZyBkw6RyIGR1IHNrYSBzdmFyYSBcInRpbGzDpXRcIiBmw7ZyIGF0dCBrdW5uYSBmb3J0c8OkdHRhLicsXG4gICAgU2VTaXRoc09zaWZTdGFydE1lc3NhZ2UzOifDlnBwbmFyIHPDpGtlcmhldHNwcm9ncmFtbWV0JyxcbiAgICBTZVNpdGhzT3NpZlN0YXJ0TWVzc2FnZTQ6J1ZlcmlmaWVyYXInLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlMTonTGVnaXRpbWVyaW5nZW4gbWlzc2x5Y2thZGVzJyxcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTFCOidTaWduZXJpbmdlbiBtaXNzbHlja2FkZXMnLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlMjonU8Oka2VyaGV0c3Byb2dyYW1tZXQgTmV0IGlEIHN0YXJ0YXIgaW50ZS4gU2UgdGlsbCBhdHQgZHUgaW5zdGFsbGVyYXQgcHJvZ3JhbW1ldCBvY2ggYXR0IGR1IGFudsOkbmRlciBlbiB3ZWJibMOkc2FyZSBzb20gc3TDtmRqczogSW50ZXJuZXQgRXhwbG9yZXIgMTAnLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlMzonS3VuZGUgaW50ZSBrb21tdW5pY2VyYSBtZWQgc8Oka2VyaGV0c3Byb2dyYW1tZXQuIERldCBrYW4gYmVybyBww6UgYXR0IGR1IGhhciBlbiBmw7ZyIGdhbW1hbCB2ZXJzaW9uIGluc3RhbGxlcmFkIGVsbGVyIHDDpSBhdHQgd2ViYmzDpHNhcmVuIGJsb2NrZXJhdCDDpXRrb21zdC4gVsOkbmxpZ2VuIGtvbnRyb2xsZXJhIGRpbiBpbnN0YWxsYXRpb24uJyxcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTQ6J1PDpGtlcmhldHNwcm9ncmFtbWV0IMOkciBmw7ZyIGdhbW1hbHQuIFbDpG5saWdlbiB1cHBkYXRlcmEgdGlsbCBkZW4gc2VuYXN0ZSB2ZXJzaW9uZW4uJyxcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTU6J0FudsOkbmRhcmVuIGF2YnLDtnQgaSBzw6RrZXJoZXRzcHJvZ3JhbW1ldC4nLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlNjonU8Oka2VyaGV0c3Byb2dyYW1tZXQga3VuZGUgaW50ZSBhbGxva2VyYSBub2cgbWlubmUuIFRlc3RhIGF0dCBzdMOkbmdhIG7DpWdyYSBwcm9ncmFtIGlubmFuIGR1IGbDtnJzw7ZrZXIgaWdlbi4nLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlNzonU8Oka2VyaGV0c3Byb2dyYW1tZXQgw6RyIGbDtnIgZ2FtbWFsdC4gVsOkbmxpZ2VuIHVwcGRhdGVyYSB0aWxsIGRlbiBzZW5hc3RlIHZlcnNpb25lbi4nLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlODonRXR0IGludGVybnQgZmVsIGhhciB1cHBzdMOldHQuJyxcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTk6J0VuIHPDpGtlciBhbnNsdXRuaW5nIGt1bmRlIGludGUgZ2FyYW50ZXJhcy4nLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlMTA6J1PDpHR0IGluIGUtbGVnaXRpbWF0aW9uZW4gaSBrb3J0bMOkc2FyZW4gb2NoIGbDtnJzw6RrcmEgZGlnIG9tIGF0dCBrb3J0bMOkc2FyZW4gw6RyIGFuc2x1dGVuLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2UxMTonRS1sZWdpdGltYXRpb25lbiBoYXIgbMO2cHQgdXQuS29udGFrdGEgdXRnaXZhcmVuLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2UxMjonRS1sZWdpdGltYXRpb25lbiBoYXIgw6V0ZXJrYWxsYXRzIG9jaCBrYW4gaW50ZSBhbnbDpG5kYXMuIEtvbnRha3RhIHV0Z2l2YXJlbi4nLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlMTM6J0UtbGVnaXRpbWF0aW9uZW4gw6RyIGZlbGFrdGlnLiBLb250YWt0YSB1dGdpdmFyZW4uJyxcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTE0OidFLWxlZ2l0aW1hdGlvbmVuIGfDpXIgc25hcnQgdXQgb2NoIGLDtnIgZsO2cm55YXMgc25hcmFzdC4gS29udGFrdGEgdXRnaXZhcmVuLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2UxNTonRXR0IHRla25pc2t0IGZlbCB1cHBzdG9kIGhvcyBlLWxlZ2l0aW1hdGlvbnN1dGdpdmFyZW4sIGbDtnJzw7ZrIGlnZW4gbGl0ZSBzZW5hcmUuJyxcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTE2OidVdGdpdmFyZW5zIHZlcmlmaWVyaW5nc3Rqw6Ruc3Qgw6RyIHRpbGxmw6RsbGlndCBvdGlsZ8OkbmdsaWcsIGbDtnJzw7ZrIGlnZW4gbGl0ZSBzZW5hcmUuJyxcbiAgICBTZWxlY3RMYW5ndWFnZTonVsOkbGogc3Byw6VrJyxcbiAgICBGaVR1cGFzU3RhcnRNZXNzYWdlMTonU3RhcnRhci4uLicsXG4gICAgRmlUdXBhc1N0YXJ0TWVzc2FnZTI6J1bDpG50YXIgcMOlIGF0dCBpZGVudGlmaWVyaW5nZW4gc2thIHNsdXRmw7ZyYXMsIHRyYW5zYWt0aW9ucy1JRDogJyxcbiAgICBGaVR1cGFzU3RhcnRNZXNzYWdlMzonSWRlbnRpZmllcmluZ2VuIG1pc3NseWNrYWRlcy4nLFxuICAgIE1vYmlpbGlkOiB7XG4gICAgICBBdXRoZW50aWNhdGlvbjogJ0F1dGhlbnRpY2F0aW9uJ1xuICAgIH0sXG4gIH0sXG4gIHsgXG4gICAgaWQ6ICdmaScsICBcbiAgICBOYW1lOiAnU3VvbWknLFxuICAgIEFsbG93ZUVpZHM6WydmaS1tdicsICdmaS12cmsnLCdmaS1iYW5raWQnXSxcbiAgICBlcnJvcnM6IHtcbiAgICAgIGFwaV91bmF2YWlsYWJsZTogJ1lodGV5ZGVuIG11b2Rvc3RhbWluZW4gYmFja2VuZC1wYWx2ZWxpbWlpbiwgeXJpdMOkIHV1ZGVsbGVlbi4nLFxuICAgICAgZ2VuZXJpYzogJ0pvdGFpbiBtZW5pIHBpZWxlZW4sIHlyaXTDpCB1dWRlbGxlZW4uJyxcbiAgICB9LFxuICAgIFRpdGxlOiAnVHVubmlzdGF1ZHUnLFxuICAgIFNpZ25UaXRsZTogJ0FsbGVraXJqb2l0YScsXG4gICAgU2VsZWN0Q291bnRyeTonVmFsaXRzZSBtYWEnLFxuICAgIFNlbGVjdEVpZDogJ1ZhbGl0c2UgdHVubmlzdHVzdGFwYScsXG4gICAgQ2hhbmdlQ291bnRyeTogJ1ZhaWhkYSBtYWF0YScsXG4gICAgQ2FuY2VsOidQZXJ1dXRhJyxcbiAgICBTb2NpYWxTZWN1cml0eU5vOiAnQW5uYSBzb3NpYWFsaXR1cnZhdHVubnVrc2VzaScsXG4gICAgU29jaWFsU2VjdXJpdHlOb1BsYWNlaG9sZGVyOiAnVlZLS1BQTk5OTicsXG4gICAgQ29udGludWU6J0phdGthJyxcbiAgICBTZUJhbmtpZFN0YXJ0QXBwTWVzc2FnZTonU3RhcnRhIEJhbmtJRCBzb3ZlbGx1cycsXG4gICAgU2VCYW5raWRVc2VDdXJyZW50RGV2aWNlTWVzc2FnZTonS8OkeXTDpCBCYW5rSUQ6dMOkIHTDpGxsw6QgbGFpdHRlZWxsYScsXG4gICAgU2VCYW5raWRVc2VPdGhlckRldmljZU1lc3NhZ2U6J0vDpHl0w6QgQmFua0lEIHRvaXNlbGxhIGxhaXR0ZWVsbGEnLFxuICAgIFNlQmFua2lkVXNlUVJDb2RlTWVzc2FnZTonUVIgY29kZScsXG4gICAgU2VCYW5raWRDYW5jZWxRUkNvZGVNZXNzYWdlOidVc2UgTmF0aW9uYWwgSUQgTnVtYmVyJyxcbiAgICBTZUJhbmtpZFN0YXJ0TWVzc2FnZTE6J0vDpHlubmlzdMOkIEJhbmtJRCBzb3ZlbGx1cy4uLicsXG4gICAgU2VCYW5raWRTdGFydE1lc3NhZ2UyOidLw6R5bm5pc3TDpCBzb3ZlbGx1cyBpdHNlLCBqb3Mgc2UgZWkga8OkeW5uaXN0eSBhdXRvbWFhdHRpc2VzdGkuJyxcbiAgICBTZUJhbmtpZFN0YXJ0TWVzc2FnZTM6J0vDpHlubmlzdMOkIEJhbmtJRCBzb3ZlbGx1cyBsYWl0dGVlc3NhLCBqb3RhIGhhbHVhdCBrw6R5dHTDpMOkLicsXG4gICAgU2VCYW5raWRTdGFydE1lc3NhZ2U0OidCYW5rSUQgc292ZWxsdXMgZWkgb2xlIGvDpHlubmlzdHlueXQgYXV0b21hYXR0aXNlc3RpIHZpZWzDpC4uLicsXG4gICAgU2VCYW5raWRTdGFydE1lc3NhZ2U1OidPZG90ZXRhYW4sIGV0dMOkIEJhbmtJRCBrw6R5bm5pc3R5eSB0b2lzZXNzYSBsYWl0dGVlc3NhLi4uJyxcbiAgICBTZUJhbmtpZFN0YXJ0TWVzc2FnZTY6J0JhbmtJRCBzb3ZlbGx1cyBvbiBrw6R5bm5pc3R5bnl0LCBoYWV0YWFuIEJhbmtJRDp0w6QuLi4nLFxuICAgIFNlQmFua2lkU3RhcnRNZXNzYWdlNzonSm9zIG11dXRhbWFuIHNla3VubmluIGt1bHV0dHVhIEJhbmtJRDp0w6QgZWkgbMO2eWR5LCB0w6RsbMOkIGxhaXR0ZWVsbGEgZWkgdG9kZW5uw6Rrw7Zpc2VzdGkgb2xlIEJhbmtJRDp0w6QsIGpvdGEgdm9pZGFhbiBrw6R5dHTDpMOkIHZhaHZpc3R1a3NlZW4nLFxuICAgIFNlQmFua2lkU3RhcnRNZXNzYWdlODonQmFua0lEIHNvdmVsbHVzIG9uIGvDpHlubmlzc8OkLiBUdW5uaXN0YXVkdSB0dXJ2YWtvb2RpbGxhc2kuJyxcbiAgICBTZUJhbmtpZEVycm9yTWVzc2FnZTE6J1ZhaHZpc3RhbWluZW4gZXDDpG9ubmlzdHVpLicsXG4gICAgU2VCYW5raWRFcnJvck1lc3NhZ2UyOidWYWh2aXN0YW1pbmVuIG9uIGvDpHlubmlzc8OkIHRvaXNlc3NhIGlzdHVubm9zc2EuIE9kb3RhIGhldGtpIGVubmVuIHV1dHRhIHlyaXR5c3TDpC4nLFxuICAgIFNlQmFua2lkRXJyb3JNZXNzYWdlMzonU3l5bsOkIG9saSBzaXPDpGluZW4gdmlyaGUgQmFua0lEOm4gasOkcmplc3RlbG3DpHNzw6QuIFlyaXTDpCB1dWRlbGxlZW4gaGV0a2VuIGt1bHV0dHVhLicsXG4gICAgU2VCYW5raWRFcnJvck1lc3NhZ2U0OidQw6Rpdml0w6QgQmFua0lEIHNvdmVsbHVzIGVubmVuIHV1dHRhIHlyaXR5c3TDpC4nLFxuICAgIFNlQmFua2lkRXJyb3JNZXNzYWdlNTonWWh0ZXlkZW4gYWlrYWthdGthaXN1LiBUYXJraXN0YSwgZXR0w6QgQmFua0lEIHNvdmVsbHVzIGvDpHlubmlzdHl5IGphIGV0dMOkIEludGVybmV0LXlodGV5dGVzaSBvbiBrdW5ub3NzYS4nLFxuICAgIFNlQmFua2lkRXJyb3JNZXNzYWdlNjonU3nDtnRldHR5IEJhbmtJRCBvbiB2YW5oZW50dW51dCB0YWkgZXN0ZXR0eS4gS8OkeXTDpCBlcmkgQmFua0lEOnTDpCB0YWkgbGF0YWEgdXVzaSBwYW5raXN0YXNpLicsXG4gICAgU2VCYW5raWRFcnJvck1lc3NhZ2U3OidLZXNrZXl0aXQgQmFua0lEIC1zb3ZlbGx1a3NlbiB2YWh2aXN0dWtzZW4uJyxcbiAgICBTZUJhbmtpZEVycm9yTWVzc2FnZTg6J1RvaW1lbnBpZGUga2Vza2V5dGV0dHkuIFlyaXTDpCB1dWRlbGxlZW4gaGV0a2VuIGt1bHV0dHVhLicsXG4gICAgU2VCYW5raWRFcnJvck1lc3NhZ2U5OidCYW5rSUQgc292ZWxsdXMgZWkga8OkeW5uaXN0eW55dC4gVmFybWlzdGEsIGV0dMOkIHNpbnVsbGEgb24gdG9pbWl2YSBCYW5rSUQgamEgVmlpbWVhaWthaXNldCBUaWxhYWphdCB2ZXJzaW8gQmFua0lEIHNvdmVsbHVrc2VzdGEgYXNlbm5ldHR1bmEgbGFpdHRlZXNlZW4gZW5uZW4gdXV0dGEgeXJpdHlzdMOkLicsXG4gICAgVHJ5QWdhaW46ICdZcml0w6QgdXVkZWxsZWVuJyxcbiAgICBGaW5pc2g6ICdWaWltZWlzdGVsbMOkw6RuJyxcbiAgICBPcGVyYXRpb25GYWlsZWQ6J1BhaG9pdHRlbGVtbWUsIG11dHRhIHRhcGFodHVpIHZpcmhlIGphIHZhaHZpc3R1c3RhIGVpIHZvaXR1IHRvdGV1dHRhYS4gWXJpdMOkIHV1ZGVsbGVlbiBtecO2aGVtbWluLicsXG4gICAgQ2hhbmdlRWlkOidWYWloZGEgZUlEIHR1bm5pc3R1c3RhcGEnLFxuICAgIEZpTXZUZWxlcGhvbmU6J1B1aGVsaW5udW1lcm8nLFxuICAgIEZpTXZUZWxlcGhvbmVQbGFjZWhvbGRlcjonZXNpbSAwNDQgMTQ0MDE0NCcsXG4gICAgRmlNdkFudGlKYW1taW5nQ29kZTonSMOkaXJpbm7DpG4gZXN0b2tvb2RpJyxcbiAgICBGaU12QW50aUphbW1pbmdDb2RlUGxhY2Vob2xkZXI6J1ZhbGlubmFpbmVuJyxcbiAgICBGaU12U3RhcnRNZXNzYWdlMTonQWxvaXRldGFhbi4uLicsXG4gICAgRmlNdlN0YXJ0TWVzc2FnZTI6J09ET1RUQUEgVE9ERU5OVVNUQSwgQWxsZWtpcmpvaXR1c3B5eW50w7Ygc2FhcHV1IGxhaXR0ZWVzZWVzaSB0dW5udWtzZWxsYTonLFxuICAgIEZpTXZTdGFydFNpZ246ICdPRE9UVEFBIEFMTEVLSVJKT0lUVVNUQSwgQWxsZWtpcmpvaXR1c3B5eW50w7Ygc2FhcHV1IGxhaXR0ZWVzZWVzaSB0dW5udWtzZWxsYTonLFxuICAgIEZpTXZTdGFydE1lc3NhZ2UzOidUdW5uaXN0YW1pbmVuIGVww6Rvbm5pc3R1aS4nLFxuICAgIEZpTXZFcnJvck1lc3NhZ2VHZW5lcmljOiAnU29tZXRoaW5nIHdlbnQgd3JvbmchIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICBGaU12RXJyb3JDb2RlOiAnRXJyb3IgY29kZTogJyxcbiAgICBGaU12RXJyb3JfMTAxMTogJ0ludmFsaWQgTm9TcGFtQ29kZScsIC8vdXNpbmcgYSBzcGFtY29kZSB3aGVuIHVzZXIgZG9lc250IGhhdmUgb25lIHJlZ2lzdGVyZWQsIG9yIHRoZSB3cm9uZyBvbmVcbiAgICBGaU12RXJyb3JfMTA1MDogJ0NhblxcJ3QgY29ubmVjdCB0byBNb2JpaWxpdmFybWVubmUnLCAvLyB0aGlzIGlzIHByb2JhYmx5IGJlY2F1c2UgdGhlIHNlcnZlcnMgSVAgaXNudCB3aGl0ZWxpc3RlZFxuICAgIEZpTXZFcnJvcl8xMDUxOiAnSW5jb3JyZWN0IGZvcm1hdCcsXG4gICAgRmlNdkVycm9yXzEwNTI6ICdVbmtub3duIHVzZXInLFxuICAgIEZpTXZFcnJvcl8xMDUzOiAnVW5yZWdpc3RlcmVkIHVzZXInLFxuICAgIEZpTXZFcnJvcl8xMDU0OiAnSW5jb21wYXRpYmxlIFNJTSBjYXJkJyxcbiAgICBGaU12RXJyb3JfMjA4MDogJ1RpbWUgbGltaXQgZXhjZWVkZWQsIHBsZWFzZSB0cnkgYWdhaW4nLFxuICAgIExlYXZlOidQb2lzdHUnLFxuICAgIE5vQmFua2lkTWVzc2FnZTE6J0FMS09JJyxcbiAgICBOb0JhbmtpZE1lc3NhZ2UyOidWQUhWSVNURVRUVScsXG4gICAgTm9CYW5raWRNZXNzYWdlMzonVkFSTUVOTlVTIEVQw4RPTk5JU1RVSScsXG4gICAgTm9CYW5raWRNZXNzYWdlNDonVEFQQUhUVUkgVklSSEUnLFxuICAgIE5vQmFua2lkU2VsZWN0T3RoZXJDb3VudHJ5OidWYWxpdHNlIHRvaW5lbiBtYWEnLFxuICAgIFNlU2l0aHNPc2lmU3RhcnRNZXNzYWdlMTonS8OkeW5uaXN0w6QgdGlldG90dXJ2YW9oamVsbWlzdG8nLFxuICAgIFNlU2l0aHNPc2lmU3RhcnRNZXNzYWdlMjonU2ludW4gb24gaHl2w6Rrc3l0dMOkdsOkIFwiTmV0IElEXCIgb24ga8OkeW5uaXNzw6QuIFNlbGFpbiBweXl0w6TDpCBsdXBhYXNpLCBqb2hvbiB0dWxlZSB2YXN0YXRhIFwiU2FsbGlcIiBqYXRrYWFrc2VzaS4nLFxuICAgIFNlU2l0aHNPc2lmU3RhcnRNZXNzYWdlMzonQXZhYSB0dXJ2YWxsaXN1dXNvaGplbG1pc3RvJyxcbiAgICBTZVNpdGhzT3NpZlN0YXJ0TWVzc2FnZTQ6J1Zhcm1pc3RldGFhbi4uLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2UxOidWYWh2aXN0dXMgZXDDpG9ubmlzdHVpLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2UxQjonQWxsZWtpcmpvaXR1cyBlcMOkb25uaXN0dWkuJyxcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTI6J1RpZXRvdHVydmFvaGplbG1pc3RvIE5ldCBpRCBlaSBrw6R5bm5pc3R5LiBWYXJtaXN0YSwgZXR0w6Qgb2hqZWxtaXN0byBvbiBhc2VubmV0dHUgamEgZXR0w6Qga8OkeXTDpHQgdHVldHR1YSBzZWxhaW50YTogSW50ZXJuZXQgRXhwbG9yZXIgMTAuJyxcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTM6J1RpZXRvdHVydmFvaGplbG1pc3RvbiBrYW5zc2EgZWkgdm9pdHUga29tbXVuaWtvaWRhLiBUw6Rtw6Qgdm9pIGpvaHR1YSB2YW5oYXN0YSB2ZXJzaW9zdGEgdGFpIHNlbGFpbiBlc3RpIHDDpMOkc3luLiBPbGUgaHl2w6QgamEgdGFya2lzdGEgYXNlbm51cy4nLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlNDonVGlldG90dXJ2YW9oamVsbWlzdG8gb24gbGlpYW4gdmFuaGEuIFDDpGl2aXTDpCB1dXNpbXBhYW4gdmVyc2lvb24uJyxcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTU6J0vDpHl0dMOkasOkIHBlcnV1dHRpIHR1cnZhbGxpc3V1c3Rhcmtpc3R1a3Nlbi4nLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlNjonVGlldG90dXJ2YW9oamVsbWlzdG9sbGUgZWkgb2xlIHJpaXR0w6R2w6RzdGkgbXVpc3RpYS4gWXJpdMOkIHN1bGtlYSBqb2l0YWtpbiBzb3ZlbGx1a3NpYSBqYSB5cml0w6QgdXVkZWxsZWVuLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2U3OidUaWV0b3R1cnZhb2hqZWxtaXN0byBvbiBsaWlhbiB2YW5oYS4gUMOkaXZpdMOkIHV1c2ltcGFhbiB2ZXJzaW9vbi4nLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlODonVGFwYWh0dWkgc2lzw6RpbmVuIHZpcmhlLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2U5OidTdW9qYXR0dWEgeWh0ZXl0dMOkIGVpIHZvaWRhIHRhYXRhLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2UxMDonU3nDtnTDpCBlSUQta29ydGluIGx1a2lqYSBqYSB2YXJtaXN0YSwgZXR0w6Qga29ydGlubHVraWphIG9uIGxpaXRldHR5LicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2UxMTonZUlEIHR1bm5pc3RlZXNpIG9uIHZhbmhlbnR1bnV0LiBPdGEgeWh0ZXl0dMOkIGFvLiBqdWxrYWlzaWphYW4uJyxcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTEyOidlSUQgdHVubmlzdGVlc2kgb24gZXN0ZXR0eSBlaWvDpCBzaXTDpCB2b2lkYSBrw6R5dHTDpMOkLiBPdGEgeWh0ZXl0dMOkIGp1bGthaXNpamFhbi4nLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlMTM6J2VJRCB0dW5uaXN0ZWVzaSBvbiB2aXJoZWVsbGluZW4uIE90YSB5aHRleXR0w6QgYW8uIGp1bGthaXNpamFhbi4nLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlMTQ6J2VJRCB0dW5uaXN0ZWVzaSBvbiBww6TDpHR0eW3DpHNzw6QgamEgc2Ugb24gdXVzaXR0YXZhIHBpa2Fpc2VzdGkuIE90YSB5aHRleXR0w6QgYW8uIGp1bGthaXNpamFhbi4nLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlMTU6J1Rla25pbmVuIHZpcmhlIGVJRCBqdWxrYWlzaWphc3NhLCB5cml0w6QgbXnDtmhlbW1pbiB1dWRlbGxlZW4uJyxcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTE2OidKdWxrYWlzaWphbiB0b2RlbnRhbWlzcGFsdmVsdSBvbiB0aWxhcMOkaXNlc3RpIHNhYXZ1dHRhbWF0dG9taXNzYSwgeXJpdMOkIG15w7ZoZW1taW4gdXVkZWxsZWVuLicsXG4gICAgU2VsZWN0TGFuZ3VhZ2U6J1ZhbGl0c2Uga2llbGknLFxuICAgIEZpVHVwYXNTdGFydE1lc3NhZ2UxOidBbG9pdGV0YWFuLi4uJyxcbiAgICBGaVR1cGFzU3RhcnRNZXNzYWdlMjonT0RPVFRBQSBUT0RFTk5VU1RBLCB0cmFuc2FjdGlvbiBpZDogJyxcbiAgICBGaVR1cGFzU3RhcnRNZXNzYWdlMzonVHVubmlzdGFtaW5lbiBlcMOkb25uaXN0dWkuJyxcbiAgICBNb2JpaWxpZDoge1xuICAgICAgQXV0aGVudGljYXRpb246ICdBdXRoZW50aWNhdGlvbidcbiAgICB9LFxuICAgIHZyazoge1xuICAgICAgc2lnbjogJ1NpZ24nLFxuICAgICAgc2lnbl9wcm9taXNlOiAnSSBoZXJlYnkgc2lnbiB0aGUgZm9sbG93aW5nIHRleHQ6JyxcbiAgICAgIHNlbGVjdF9jZXJ0aWZpY2F0ZTogJ1NlbGVjdCBjZXJ0aWZpY2F0ZSBmb3Igc2lnbmluZycsXG4gICAgICBjZXJ0aWZpY2F0ZV9zZWxlY3Rpb25fY2FuY2VsbGVkOiAnQ2VydGlmaWNhdGUgc2VsZWN0aW9uIGNhbmNlbGxlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgICAgcHJlcGFyaW5nX3NpZ25hdHVyZTogJ1ByZXBhcmluZyBzaWduYXR1cmUuLi4nLFxuICAgICAgZW50ZXI6ICdFbnRlciB5b3VyJyxcbiAgICAgIHBpbjI6ICdQSU4yJyxcbiAgICAgIG5vX2ltcGxlbWVudGF0aW9uOiAnTm8gcGx1Z2luIG9yIGV4dGVuc2lvbiBmb3Igc2lnbmluZyBmb3VuZC4nLFxuICAgICAgbm9faW1wbGVtZW50YXRpb25fZGV0YWlsczogJ0ZvciBkZXRhaWxzIHNlZTogaHR0cHM6Ly93d3cuaWQuZWUvaW5kZXgucGhwP2lkPTM2NTk4JyxcbiAgICAgIGRvY3VtZW50X3NpZ25lZDogJ0RvY3VtZW50IHNpZ25lZCcsXG4gICAgICBjZXJ0aWZpY2F0ZV9lcnJvciA6ICdObyBjZXJ0aWZpY2F0ZXMgYXZhaWxhYmxlLicsXG4gICAgICB0cnlfYWdhaW5fbWVzc2FnZTonUGxlYXNlIHRyeSBhZ2FpbicsXG4gICAgICB0ZWNobmljYWxfZXJyb3IgOiAnVGVjaG5pY2FsIGVycm9yLicsXG4gICAgICBhdXRoX3N0YXJ0ZWQ6ICdQcm9jZXNzIHN0YXJ0ZWQuIHdhaXRpbmcgZm9yIGNlcnRpZmljYXRlLi4uJyxcbiAgICAgIHNpZ25fc3RhcnRlZDogJ1Byb2Nlc3Mgc3RhcnRlZC4gd2FpdGluZyBmb3Igc2lnbmF0dXJlLi4uJyxcbiAgICAgIHNpZ25hdHVyZV9yZXF1ZXN0OiAnU2VsZWN0IGNlcnRpZmljYXRlJyxcbiAgICAgIGNoZWNrX2NlcnRpZmljYXRlOiAnVmVyaWZ5aW5nLi4uJyxcbiAgICAgIGF1dGhfbm90dmFsaWQ6ICdJbnZhbGlkIHNpZ25hdHVyZScsXG4gICAgICBjaGFsbGVuZ2Vfc3RhcnRlZDogJ1Byb2Nlc3Mgc3RhcnRlZC4uLicsXG4gICAgICBlcnJvcnM6IHtcbiAgICAgICAgNDAwOiAnTWFrZSBzdXJlIHRoZSBjYXJkIGlzIGluc2VydGVkIGNvcnJlY3RseS4nLFxuICAgICAgICA0MDE6ICdJbmNvcnJlY3QgY2VydGlmaWNhdGUgb3IgUElOLCBwbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgICAgIDQwMzogJ1NvbWV0aGluZyB3ZW50IHdyb25nLCBwbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgICAgIDQxMzogJ1NpZ25hdHVyZSBjb250ZW50IHdhcyB0b28gYmlnLicsXG4gICAgICAgIDUwMDogJ1NvbWV0aGluZyB3ZW50IHdyb25nLCBwbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgICAgIDUwMTogJ1NvbWV0aGluZyB3ZW50IHdyb25nLCBwbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgICAgIGcwMDA6J1NvbWV0aGluZyB3ZW50IHdyb25nLCBwbGVhc2UgY29udGFjdCBzdXBwb3J0LicsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIHsgXG4gICAgaWQ6ICdubycsICBcbiAgICBOYW1lOiAnTm9yd2VnaWFuJyxcbiAgICBBbGxvd2VFaWRzOlsnbm8tYmFua2lkJywgJ25vLWJhbmtpZC1tb2JpbGUnXSxcbiAgICBlcnJvcnM6IHtcbiAgICAgIGFwaV91bmF2YWlsYWJsZTogJ0thbiBpa2tlIGtvYmxlIHRpbCB0amVuZXIsIHByw7h2IGlnamVuLicsXG4gICAgICBnZW5lcmljOiAnTm9lIGdpa2sgZ2FsdCwgcHLDuHYgaWdqZW4uJyxcbiAgICB9LFxuICAgIFRpdGxlOiAnTG9nZyBpbm4nLFxuICAgIFNpZ25UaXRsZTogJ1NpZ25lcicsXG4gICAgU2VsZWN0Q291bnRyeTonVmVsZyBsYW5kJyxcbiAgICBTZWxlY3RFaWQ6ICdWZWxnIGRpbiBlSUQnLFxuICAgIENoYW5nZUNvdW50cnk6ICdFbmRyZSBsYW5kJyxcbiAgICBDYW5jZWw6J0F2YnJ5dCcsXG4gICAgU29jaWFsU2VjdXJpdHlObzogJ1Nrcml2IGlubiBkaXR0IHBlcnNvbm51bW1lcicsXG4gICAgU29jaWFsU2VjdXJpdHlOb1BsYWNlaG9sZGVyOiAnWVlNTURETk5OTicsXG4gICAgQ29udGludWU6J0ZvcnRzZXR0ZScsXG4gICAgU2VCYW5raWRTdGFydEFwcE1lc3NhZ2U6J1N0YXJ0YSBCYW5rSUQtYXBwZW4nLFxuICAgIFNlQmFua2lkVXNlQ3VycmVudERldmljZU1lc3NhZ2U6J0JydWsgQmFua0lEIHDDpSBkZW5uZSBlbmhldGVuJyxcbiAgICBTZUJhbmtpZFVzZU90aGVyRGV2aWNlTWVzc2FnZTonQnJ1ayBCYW5rSUQgcMOlIGVuIGFubmVuIGVuaGV0JyxcbiAgICBTZUJhbmtpZFVzZVFSQ29kZU1lc3NhZ2U6J1FSIGNvZGUnLFxuICAgIFNlQmFua2lkQ2FuY2VsUVJDb2RlTWVzc2FnZTonQnJ1ayBwZXJzb25udW1tZXInLFxuICAgIFNlQmFua2lkU3RhcnRNZXNzYWdlMTonQmVneW5uIEJhbmtJRCBhcHAgLi4uICcsXG4gICAgU2VCYW5raWRTdGFydE1lc3NhZ2UyOidTdGFydCBhcHAgc2VsdiBvbSBkZXQgaWtrZSBzdGFydGVyIGF1dG9tYXRpc2suJyxcbiAgICBTZUJhbmtpZFN0YXJ0TWVzc2FnZTM6J1N0YXJ0IEJhbmtJRCBhcHAgcMOlIGVuaGV0ZW4gZHUgdmlsIGJydWtlLicsXG4gICAgU2VCYW5raWRTdGFydE1lc3NhZ2U0OidCYW5rSUQgYXBwIGhhciBpa2tlIHN0YXJ0ZXQgYXV0b21hdGlzayBlbm7DpS4uLicsXG4gICAgU2VCYW5raWRTdGFydE1lc3NhZ2U1OidWZW50ZXIgcMOlIMOlIHN0YXJ0ZSBCYW5rSUQgYXBwIHDDpSBkZW4gYW5kcmUgZW5oZXRlbiAuLi4nLFxuICAgIFNlQmFua2lkU3RhcnRNZXNzYWdlNjonQmFua0lEIGFwcCBoYXIgc3RhcnRldCwgbGV0ZXIgZXR0ZXIgQmFua0lEJyxcbiAgICBTZUJhbmtpZFN0YXJ0TWVzc2FnZTc6J0h2aXMgZGV0IGhhciBnw6V0dCBub2VuIHNla3VuZGVyIHV0ZW4gYXQgQmFua0lEIGVyIGZ1bm5ldCwgaGFyIGR1IHNhbm5zeW5saWd2aXMgaWtrZSBCYW5rSUQgcMOlIGRlbm5lIGVuaGV0ZW4gc29tIGthbiBicnVrZXMgZm9yIGxlZ2l0aW1lcmluZycsXG4gICAgU2VCYW5raWRTdGFydE1lc3NhZ2U4OidCYW5rSUQgYXBwZW4ga2rDuHJlci4gSWRlbnRpZmlzZXJlIGRlZyBtZWQgc2lra2VyaGV0c2tvZGVuLicsXG4gICAgU2VCYW5raWRFcnJvck1lc3NhZ2UxOidMZWdpdGltZXJpbmcgbWlzbHlrdGVzLicsXG4gICAgU2VCYW5raWRFcnJvck1lc3NhZ2UyOidFbiBsZWdpdGltZXJpbmcgZ8OlIGZvciBkZWcgaSBlbiBhbm5lbiDDuGt0LiBWZW50IGVuIHN0dW5kIGbDuHIgZHUgcHLDuHZlciBpZ2plbi4nLFxuICAgIFNlQmFua2lkRXJyb3JNZXNzYWdlMzonw4Vyc2FrZW4gdmFyIGVuIGludGVybiBzdmlrdCBpIEJhbmtJRCBpbmZyYXN0cnVrdHVyLiBWZW5ubGlnc3QgcHLDuHYgaWdqZW4gb20gbm9lbiBtaW51dHRlci4nLFxuICAgIFNlQmFua2lkRXJyb3JNZXNzYWdlNDonT3BwZGF0ZXIgQmFua0lEIGFwcCBmw7hyIGR1IHByw7h2ZXIgaWdqZW4uJyxcbiAgICBTZUJhbmtpZEVycm9yTWVzc2FnZTU6J0xlZ2l0aW1lcmluZyBibGUgaWtrZSBmZXJkaWcgaSB0aWRlLiBTamVrayBhdCBCYW5rSUQgYXBwIHN0YXJ0ZXIsIG9nIGF0IGR1IGhhciBlbiBJbnRlcm5ldHQtdGlsa29ibGluZy4nLFxuICAgIFNlQmFua2lkRXJyb3JNZXNzYWdlNjonQmFua0lEIHByw7h2ZXIgw6UgYnJ1a2UgZXIgZm9yIGdhbW1lbCBlbGxlciBibG9ra2VydC4gQnJ1ayBlbiBhbm5lbiBCYW5rSUQgZWxsZXIgbGFzdGUgbmVkIGVuIG55IGVuIGZyYSBiYW5rZW4gZGluLicsXG4gICAgU2VCYW5raWRFcnJvck1lc3NhZ2U3OidEdSBhdmJyw7h0IGxlZ2l0aW1lcmluZyBhdiBCYW5rSUQtYXBwLicsXG4gICAgU2VCYW5raWRFcnJvck1lc3NhZ2U4OidPcGVyYXNqb25lbiBhdmJydXR0LiBQcsO4diBpZ2plbiBvbSBlbiBsaXRlbiBzdHVuZC4nLFxuICAgIFNlQmFua2lkRXJyb3JNZXNzYWdlOTonQmFua0lEIGFwcCBzdGFydGV0IGlra2UuIFPDuHJnIGZvciBhdCBkdSBlciBlbiBneWxkaWcgQmFua0lEIG9nIE55ZSBBYm9ubmVudGVyIHZlcnNqb24gYXYgQmFua0lEIGFwcCBpbnN0YWxsZXJ0IHDDpSBlbmhldGVuIGbDuHIgZHUgcHLDuHZlciBpZ2plbi4nLFxuICAgIFRyeUFnYWluOiAnUHLDuHYgaWdqZW4nLFxuICAgIEZpbmlzaDogJ0F2c2x1dHQnLFxuICAgIE9wZXJhdGlvbkZhaWxlZDonVmkgYmVrbGFnZXIsIG1lbiBkZXQgb3Bwc3RvZCBlbiBmZWlsIG9nIGxlZ2l0aW1hc2pvbiBrdW5uZSBpa2tlIGdqZW5ub21mw7hyZXMuIFByw7h2IGlnamVuIHNlbmVyZS4nLFxuICAgIENoYW5nZUVpZDonRW5kcmUgZUlEJyxcbiAgICBGaU12VGVsZXBob25lOidUZWxlZm9ubnVtbWVyJyxcbiAgICBGaU12VGVsZXBob25lUGxhY2Vob2xkZXI6J2UuZyAwNDQgMTQ0MDE0NCcsXG4gICAgRmlNdkFudGlKYW1taW5nQ29kZTonQW50aS1qYW1taW5nIGtvZGUgbnInLFxuICAgIEZpTXZBbnRpSmFtbWluZ0NvZGVQbGFjZWhvbGRlcjonVmFsZ2ZyaScsXG4gICAgRmlNdlN0YXJ0TWVzc2FnZTE6J1N0YXJ0ZXIuLi4gJyxcbiAgICBGaU12U3RhcnRNZXNzYWdlMjonVkVOVEVSIFDDhSBHT0RLSkVOTklORywgdHJhbnNhY3Rpb24gaWQ6ICBubycsXG4gICAgRmlNdlN0YXJ0TWVzc2FnZTM6J0lkZW50aWZpa2Fzam9uIG1pc2x5a3Rlcy4nLFxuICAgIExlYXZlOidGb3JsYXQnLFxuICAgIE5vQmFua0lkX0F1dGhlbnRpY2F0aW9uOiAnSWRlbnRpZmlzZXJpbmcnLFxuICAgIE5vQmFua0lkX1NpZ25pbmc6ICdTaWduZXJpbmcnLFxuICAgIE5vQmFua0lkX01vYmlsZUlucHV0TGFiZWw6ICdNb2JpbG51bW1lciBvZyBmw7hkZWxzZWRhdG8nLFxuICAgIE5vQmFua0lkX1Bob25lUGxhY2Vob2xkZXI6ICc4IHNpZmZlcicsXG4gICAgTm9CYW5rSWRfRG9iUGxhY2Vob2xkZXI6ICdkZG1tw6XDpScsXG4gICAgTm9CYW5rSWRfUGhvbmVIaW50OiAnTW9iaWxudW1tZXInLFxuICAgIE5vQmFua0lkX0RvYkhpbnQ6ICdGw7hkZWxzZWRhdG8nLFxuICAgIE5vQmFua0lkX1JlZmVyZW5jZVdPcmRzOiAnUmVmZXJhbnNlb3JkJyxcbiAgICBOb0JhbmtJZF9Gb2xsb3dNb2JpbGVJbnN0cnVjdGlvbnM6ICdGw7hsZyBpbnN0cnVrc2VuZSBww6UgZGluIG1vYmlsJyxcbiAgICBOb0JhbmtJZF9Nb2JpbGVTdWNjZXNzOiAnSWRlbnRpZmlzZXJpbmcgZXIgZnVsbGbDuHJ0JyxcbiAgICBOb0JhbmtpZE1lc3NhZ2UxOidJIEdBTkcnLFxuICAgIE5vQmFua2lkTWVzc2FnZTI6J0F1dGVudGlzZXJ0JyxcbiAgICBOb0JhbmtpZE1lc3NhZ2UzOidHT0RLSkVOTklORyBNSVNMWUtURVMnLFxuICAgIE5vQmFua2lkTWVzc2FnZTQ6J0VOIEZFSUwgT1BQU1RPRCcsXG4gICAgTm9CYW5raWRTZWxlY3RPdGhlckNvdW50cnk6J1ZlbGcgYW5kcmUgbGFuZCcsXG4gICAgU2VTaXRoc09zaWZTdGFydE1lc3NhZ2UxOidCZWd5bm4gc2lra2VyaGV0IGFwcCcsXG4gICAgU2VTaXRoc09zaWZTdGFydE1lc3NhZ2UyOidEdSBtw6UgZ29kdGEgc2lra2VyaGV0cyBcIk5ldCBpRFwiIGVyIGkgZ2FuZy4gTmV0dGxlc2VyZW4gaGFyIGV0IHNww7hyc23DpWwgdGlsIGRlZyBzb20gZHUgYsO4ciBzdmFyZSBcIlRpbGxhdFwiIGZvciDDpSBmb3J0c2V0dGUuJyxcbiAgICBTZVNpdGhzT3NpZlN0YXJ0TWVzc2FnZTM6J8OFcG5lciBzaWtrZXJoZXQgYXBwJyxcbiAgICBTZVNpdGhzT3NpZlN0YXJ0TWVzc2FnZTQ6J1ZlcmlmaW5nLi4uJyxcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTE6J0xlZ2l0aW1lcmluZyBtaXNseWt0ZXMuJyxcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTFCOidTaWduZXJpbmcgbWlzbHlrdGVzLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2UyOidTaWtrZXJoZXRzcHJvZ3JhbXZhcmVuIE5ldCBpRCBzdGFydGVyIGlra2UuIEtvbnRyb2xsZXIgYXQgcHJvZ3JhbXZhcmVuIGVyIGluc3RhbGxlcnQsIG9nIGF0IGR1IGJydWtlciBlbiBzdMO4dHRldCBuZXR0bGVzZXI6IEludGVybmV0IEV4cGxvcmVyIDEwLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2UzOidLdW5uZSBpa2tlIGtvbW11bmlzZXJlIG1lZCBzaWtrZXJoZXRzcHJvZ3JhbXZhcmUuIERldCBrYW4gdsOmcmUgZm9yZGkgZHUgaGFyIGVuIGdhbW1lbCB2ZXJzam9uIGluc3RhbGxlcnQgZWxsZXIgbmV0dGxlc2VyZW4gc3BlcnJldCB0aWxnYW5nZW4uIFNqZWtrIGluc3RhbGxhc2pvbmVuLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2U0OidTaWtrZXJoZXRlbiBwcm9ncmFtdmFyZW4gZXIgZm9yIGdhbW1lbC4gT3BwZGF0ZXIgdGlsIGRlbiBueWVzdGUgdmVyc2pvbmVuLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2U1OidCcnVrZXJlbiBhdmJyw7h0IHNpa2tlcmhldHNwcm9ncmFtbWV0LicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2U2OidEZW4gc2lra2VyaGV0c3Byb2dyYW12YXJlIGthbiBpa2tlIHRpbGRlbGUgbm9rIG1pbm5lLiBQcsO4diDDpSBsdWtrZSBub2VuIHByb2dyYW1tZXIgZsO4ciBkdSBwcsO4dmVyIGlnamVuLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2U3OidTaWtrZXJoZXRlbiBwcm9ncmFtdmFyZW4gZXIgZm9yIGdhbW1lbC4gT3BwZGF0ZXIgdGlsIGRlbiBueWVzdGUgdmVyc2pvbmVuLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2U4OidFbiBpbnRlcm4gZmVpbCBoYXIgb3Bwc3TDpXR0LicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2U5OidFbiBzaWtrZXIgdGlsa29ibGluZyBrYW4gaWtrZSBnYXJhbnRlcmVzLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2UxMDonU2V0dCBpbm4gZUlELWtvcnRsZXNlciBvZyBzw7hyZyBmb3IgYXQga29ydGxlc2VyZW4gZXIgdGlsa29ibGV0LicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2UxMTonZUlEIGVyIHV0bMO4cHQgdXQuS29udGFrdGEgdXRnaXZlci4nLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlMTI6J2VJRCBoYXIgYmxpdHQgdHJ1a2tldCB0aWxiYWtlLCBvZyBrYW4gaWtrZSBicnVrZXMuIEtvbnRha3QgdXRnaXZlcmVuLicsXG4gICAgU2VTaXRoc09zaWZFcnJvck1lc3NhZ2UxMzonZUlEIGVyIGZlbGFrdGlnLktvbnRha3RhIHV0Z2l2ZXIuJyxcbiAgICBTZVNpdGhzT3NpZkVycm9yTWVzc2FnZTE0OidlSUQgZXIgaSBmZXJkIG1lZCDDpSB1dGzDuHBlLCBvZyBtw6UgZm9ybnllcyBzbmFyZXN0LiBLb250YWt0IHV0Z2l2ZXJlbi4nLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlMTU6J0RldCBvcHBzdG9kIGVuIHRla25pc2sgZmVpbCBtZWQgZUlEIHV0Z2l2ZXIsIHByw7h2IGlnamVuIHNlbmVyZS4nLFxuICAgIFNlU2l0aHNPc2lmRXJyb3JNZXNzYWdlMTY6J0ZvcmxhZ2V0cyB2ZXJpZmlzZXJpbmcgdGplbmVzdGVuIGVyIG1pZGxlcnRpZGlnIG90aWxnw6RuZ2xpZywgcHLDuHYgaWdqZW4gc2VuZXJlLicsXG4gICAgU2VsZWN0TGFuZ3VhZ2U6J1ZlbGcgc3Byw6VrJyxcbiAgICBGaVR1cGFzU3RhcnRNZXNzYWdlMTonU3RhcnRlci4uLiAnLFxuICAgIEZpVHVwYXNTdGFydE1lc3NhZ2UyOidWRU5URVIgUMOFIEdPREtKRU5OSU5HLCB0cmFuc2FjdGlvbiBpZDogIG5vJyxcbiAgICBGaVR1cGFzU3RhcnRNZXNzYWdlMzonSWRlbnRpZmlrYXNqb24gbWlzbHlrdGVzLicsXG4gICAgTW9iaWlsaWQ6IHtcbiAgICAgIEF1dGhlbnRpY2F0aW9uOiAnQXV0aGVudGljYXRpb24nXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGlkOiAnZGEnLFxuICAgIG5hbWU6ICdEYW5pc2gnLFxuICAgIEFsbG93ZUVpZHM6IFsnZGstbmVtaWQnXSxcbiAgICBUaXRsZTogJ0xvZyBww6UnLFxuICAgIFNpZ25UaXRsZTogJ1VuZGVyc2tyaXYnLFxuICAgIENoYW5nZUVpZDogJ1NraWZ0ZSBlSUQnLFxuICAgIENhbmNlbDogJ0FmYnJ5ZCcsXG4gICAgQ29udGludWU6J0ZvcnRzw6Z0JyxcbiAgICBDaGFuZ2VDb3VudHJ5OiAnU2tpZnQgbGFuZCcsXG4gICAgbmVtaWQ6IHtcbiAgICAgIG90cDogJ07DuGdsZWtvcnQgLyBOw7hnbGVhcHAnLFxuICAgICAgY29kZWZpbGU6ICdOw7hnbGVmaWwnLFxuICAgICAgc2VsZWN0bWV0aG9kOiAnVsOmbGcgZGluIG1ldG9kZScsXG4gICAgICBlcnJvcnM6IHtcbiAgICAgICAgQVBQMDAxOiAnQSB0ZWNobmljYWwgZXJyb3IgaGFzIG9jY3VycmVkLiBQbGVhc2UgdHJ5IGFnYWluLiBDb250YWN0IEFzc2VudGx5IGlmIHRoZSBwcm9ibGVtIHBlcnNpc3RzLicsXG4gICAgICAgIEFQUDAwMjogJ0EgdGVjaG5pY2FsIGVycm9yIGhhcyBvY2N1cnJlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4gQ29udGFjdCBBc3NlbnRseSBpZiB0aGUgcHJvYmxlbSBwZXJzaXN0cy4nLFxuICAgICAgICBBUFAwMDM6ICdBIHRlY2huaWNhbCBlcnJvciBoYXMgb2NjdXJyZWQuIFBsZWFzZSBjb250YWN0IDxhIGhyZWY9XCJodHRwczovL3d3dy5uZW1pZC5udS9kay1kYS9mYWFfaGphZWxwX3RpbF9kaXRfbmVtaWQva29udGFrdC9zdXBwb3J0X29nX2tvbnRha3QvXCI+TmVtSUQgc3VwcG9ydDwvYT4uJyxcbiAgICAgICAgQVBQMDA0OiAnQSB0ZWNobmljYWwgZXJyb3IgaGFzIG9jY3VycmVkLiBQbGVhc2UgdHJ5IGFnYWluLiBDb250YWN0IEFzc2VudGx5IGlmIHRoZSBwcm9ibGVtIHBlcnNpc3RzLicsXG4gICAgICAgIEFQUDAwNzogJ0EgdGVjaG5pY2FsIGVycm9yIGhhcyBvY2N1cnJlZC4gQ29udGFjdCBBc3NlbnRseS4nLFxuICAgICAgICBBUFAwMDg6ICdBIHRlY2huaWNhbCBlcnJvciBoYXMgb2NjdXJyZWQuIENvbnRhY3QgQXNzZW50bHkuJyxcbiAgICAgICAgQVBQMDA5OiAnQSB0ZWNobmljYWwgZXJyb3IgaGFzIG9jY3VycmVkLiBQbGVhc2UgdHJ5IGFnYWluLiBDb250YWN0IEFzc2VudGx5IGlmIHRoZSBwcm9ibGVtIHBlcnNpc3RzLicsXG4gICAgICAgIEFQUDAxMDogJ0EgdGVjaG5pY2FsIGVycm9yIGhhcyBvY2N1cnJlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgICAgICBBVVRIMDAxOiAnWW91ciBOZW1JRCBpcyBibG9ja2VkLiBQbGVhc2UgY29udGFjdCA8YSBocmVmPVwiaHR0cHM6Ly93d3cubmVtaWQubnUvZGstZGEvZmFhX2hqYWVscF90aWxfZGl0X25lbWlkL2tvbnRha3Qvc3VwcG9ydF9vZ19rb250YWt0L1wiPk5lbUlEIHN1cHBvcnQ8L2E+LicsXG4gICAgICAgIEFVVEgwMDM6ICdMb2dpbiBzdWNjZWVkZWQgYnV0IHlvdSBoYXZlIG5vIGJhbmsgYWdyZWVtZW50LiBQbGVhc2UgY29udGFjdCB5b3VyIGJhbmsgZm9yIG1vcmUgZGV0YWlscy4nLFxuICAgICAgICBBVVRIMDA0OiAnWW91ciBOZW1JRCBpcyB0ZW1wb3JhcmlseSBsb2NrZWQgYW5kIHlvdSBjYW5ub3QgbG9nIG9uIHVudGlsIHRoZSA4IGhvdXIgdGltZSBsb2NrIGhhcyBiZWVuIGxpZnRlZC4nLFxuICAgICAgICBBVVRIMDA1OiAnWW91ciBOZW1JRCBpcyB0ZW1wb3JhcmlseSBsb2NrZWQgYW5kIHlvdSBjYW5ub3QgbG9nIG9uIHVudGlsIHRoZSA4IGhvdXIgdGltZSBsb2NrIGhhcyBiZWVuIGxpZnRlZC4nLFxuICAgICAgICBBVVRIMDA2OiAnWW91ciBOZW1JRCBpcyBibG9ja2VkLiBQbGVhc2UgY29udGFjdCA8YSBocmVmPVwiaHR0cHM6Ly93d3cubmVtaWQubnUvZGstZGEvZmFhX2hqYWVscF90aWxfZGl0X25lbWlkL2tvbnRha3Qvc3VwcG9ydF9vZ19rb250YWt0L1wiPk5lbUlEIHN1cHBvcnQ8L2E+LicsXG4gICAgICAgIEFVVEgwMDc6ICdZb3VyIE5lbUlEIHBhc3N3b3JkIGlzIGJsb2NrZWQgZHVlIHRvIHRvbyBtYW55IGZhaWxlZCBwYXNzd29yZCBhdHRlbXB0cy4gUGxlYXNlIGNvbnRhY3QgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm5lbWlkLm51L2RrLWRhL2ZhYV9oamFlbHBfdGlsX2RpdF9uZW1pZC9rb250YWt0L3N1cHBvcnRfb2dfa29udGFrdC9cIj5OZW1JRCBzdXBwb3J0PC9hPi4nLFxuICAgICAgICBBVVRIMDA4OiAnWW91ciBOZW1JRCBpcyBub3QgYWN0aXZlIGFuZCB5b3UgbmVlZCBzdXBwb3J0IHRvIGlzc3VlIGEgbmV3IGFjdGl2YXRpb24gcGFzc3dvcmQgdG8gYWN0aXZhdGUuIFBsZWFzZSBjb250YWN0IDxhIGhyZWY9XCJodHRwczovL3d3dy5uZW1pZC5udS9kay1kYS9mYWFfaGphZWxwX3RpbF9kaXRfbmVtaWQva29udGFrdC9zdXBwb3J0X29nX2tvbnRha3QvXCI+TmVtSUQgc3VwcG9ydDwvYT4uJyxcbiAgICAgICAgQVVUSDAwOTogJ0EgdGVjaG5pY2FsIGVycm9yIGhhcyBvY2N1cnJlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgICAgICBBVVRIMDEwOiAnQSB0ZWNobmljYWwgZXJyb3IgaGFzIG9jY3VycmVkLiBQbGVhc2UgdHJ5IGFnYWluLCBhbmQgZW5zdXJlIHRoYXQgb25seSBvbmUgTmVtSUQgbG9naW4gaXMgcnVubmluZy4nLFxuICAgICAgICBBVVRIMDExOiAnTmVtSUQgbG9naW4gb24gbW9iaWxlIGRvZXMgbm90IHN1cHBvcnQgYXV0aGVudGljYXRpb24gdXNpbmcgYSB0ZW1wb3JhcnkgcGFzc3dvcmQuIFBsZWFzZSBjb250YWN0IDxhIGhyZWY9XCJodHRwczovL3d3dy5uZW1pZC5udS9kay1kYS9mYWFfaGphZWxwX3RpbF9kaXRfbmVtaWQva29udGFrdC9zdXBwb3J0X29nX2tvbnRha3QvXCI+TmVtSUQgc3VwcG9ydDwvYT4gdG8gaGF2ZSBhIG5ldyB0ZW1wb3JhcnkgcGFzc3dvcmQgaXNzdWVkLiBUaGVyZWFmdGVyLCBwbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgICAgIEFVVEgwMTI6ICdBIHRlY2huaWNhbCBlcnJvciBoYXMgb2NjdXJyZWQuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICAgICAgQVVUSDAxMzogJ0EgdGVjaG5pY2FsIGVycm9yIGhhcyBvY2N1cnJlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgICAgICBBVVRIMDE3OiAnU29tZXRoaW5nIGluIHRoZSBicm93c2VyIGVudmlyb25tZW50IGhhcyBjYXVzZWQgTmVtSUQgdG8gc3RvcCB3b3JraW5nLiBUaGlzIGNvdWxkIGJlIGJlY2F1c2Ugb2YgYW4gaW5jb21wYXRpYmxlIHBsdWdpbiwgdG9vIHJlc3RyaWN0aXZlIHByaXZhY3kgc2V0dGluZ3Mgb3Igb3RoZXIgZW52aXJvbm1lbnQgZmFjdG9ycy4gUGxlYXNlIHRyeSBkZWFjdGl2YXRpbmcgcGx1Z2lucywgcmVzZXR0aW5nIHlvdXIgYnJvd3NlciBzZXR0aW5ncyBvciB0cnkgdXNpbmcgYSBkaWZmZXJlbnQgYnJvd3Nlci4nLFxuICAgICAgICBDQU4wMDE6ICdZb3UgaGF2ZSBjYW5jZWxsZWQgdGhlIGFjdGl2YXRpb24gb2YgTmVtSUQgYWZ0ZXIgc3VibWl0dGluZyB0aGUgYWN0aXZhdGlvbiBwYXNzd29yZC4gWW91ciBhY3RpdmF0aW9uIHBhc3N3b3JkIGlzIG5vIGxvbmdlciB2YWxpZCwgYW5kIHlvdSBtdXN0IHJlcXVlc3QgYSBuZXcgYWN0aXZhdGlvbiBwYXNzd29yZCBiZWZvcmUgeW91IGNhbiBhY3RpdmF0ZSBhbmQgdXNlIE5lbUlELiBZb3UgY2FuIG9yZGVyIHlvdXIgbmV3IGFjdGl2YXRpb24gcGFzc3dvcmQgdmlhIDxhIGhyZWY9XCJodHRwczovL3d3dy5uZW1pZC5udS9kay1kYS9mYWFfaGphZWxwX3RpbF9kaXRfbmVtaWQva29udGFrdC9zdXBwb3J0X29nX2tvbnRha3QvXCI+TmVtSUQgU3VwcG9ydDwvYT4nLFxuICAgICAgICBDQU4wMDI6ICdZb3UgaGF2ZSBjYW5jZWxsZWQgbG9naW4uJyxcbiAgICAgICAgQ0FOMDAzOiAnVGhlIGNvbm5lY3Rpb24gdG8gdGhlIGFwcGxpY2F0aW9uIGhhcyB0aW1lZCBvdXQgb3IgaGFzIGJlZW4gaW50ZXJydXB0ZWQgYnkgYW5vdGhlciBhcHAuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICAgICAgQ0FOMDA0OiAnVGhlIHNlc3Npb24gaXMgY2FuY2VsbGVkLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgICAgIExJQjAwMjogJ0EgdGVjaG5pY2FsIGVycm9yIGhhcyBvY2N1cnJlZCBkdWUgdG8gbmV0d29yayBpc3N1ZXMuIFBsZWFzZSB0cnkgYWdhaW4uIENvbnRhY3QgQXNzZW50bHkgaWYgdGhlIHByb2JsZW0gcGVyc2lzdHMuJyxcbiAgICAgICAgTE9DSzAwMTogJ1lvdSBoYXZlIHVzZWQgdGhlIHdyb25nIHVzZXIgSUQgb3IgcGFzc3dvcmQgdG9vIG1hbnkgdGltZXMuIFlvdXIgTmVtSUQgaXMgbm93IGJsb2NrZWQgZm9yIDggaG91cnMgYWZ0ZXIgd2hpY2ggeW91IGNhbiB0cnkgYWdhaW4uIElmIHlvdSBoYXZlIGZvcmdvdHRlbiB5b3VyIHBhc3N3b3JkIHlvdSBjYW4gZmluZCBzdXBwb3J0IDxhIGhyZWY9XCJodHRwczovL3d3dy5uZW1pZC5udS9kay1kYS9mYWFfaGphZWxwX3RpbF9kaXRfbmVtaWQva29udGFrdC9zdXBwb3J0X29nX2tvbnRha3QvXCI+aGVyZTwvYT4uJyxcbiAgICAgICAgTE9DSzAwMjogJ1lvdSBoYXZlIHVzZWQgYSB3cm9uZyBwYXNzd29yZCB0b28gbWFueSB0aW1lcy4gWW91ciBOZW1JRCBpcyBibG9ja2VkIGFuZCBjYW5ub3QgYmUgdXNlZC4gVG8gZ2V0IGhlbHAgd2l0aCB0aGlzIHByb2JsZW0sIFBsZWFzZSBjb250YWN0IDxhIGhyZWY9XCJodHRwczovL3d3dy5uZW1pZC5udS9kay1kYS9mYWFfaGphZWxwX3RpbF9kaXRfbmVtaWQva29udGFrdC9zdXBwb3J0X29nX2tvbnRha3QvXCI+TmVtSUQgc3VwcG9ydDwvYT4uJyxcbiAgICAgICAgTE9DSzAwMzogJ1lvdSBoYXZlIGVudGVyZWQgYSB3cm9uZyBOZW1JRCBrZXkgdG9vIG1hbnkgdGltZXMuIFlvdXIgTmVtSUQgaXMgYmxvY2tlZCBhbmQgY2Fubm90IGJlIHVzZWQuIFBsZWFzZSBjb250YWN0IDxhIGhyZWY9XCJodHRwczovL3d3dy5uZW1pZC5udS9kay1kYS9mYWFfaGphZWxwX3RpbF9kaXRfbmVtaWQva29udGFrdC9zdXBwb3J0X29nX2tvbnRha3QvXCI+TmVtSUQgc3VwcG9ydDwvYT4uJyxcbiAgICAgICAgU1JWMDAxOiAnQSB0ZWNobmljYWwgZXJyb3IgaGFzIG9jY3VycmVkLiBQbGVhc2UgdHJ5IGFnYWluLiBDb250YWN0IEFzc2VudGx5IGlmIHRoZSBwcm9ibGVtIHBlcnNpc3RzLicsXG4gICAgICAgIFNSVjAwMjogJ0EgdGVjaG5pY2FsIGVycm9yIGhhcyBvY2N1cnJlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4gQ29udGFjdCBBc3NlbnRseSBpZiB0aGUgcHJvYmxlbSBwZXJzaXN0cy4nLFxuICAgICAgICBTUlYwMDM6ICdBIHRlY2huaWNhbCBlcnJvciBoYXMgb2NjdXJyZWQuIFBsZWFzZSB0cnkgYWdhaW4uIENvbnRhY3QgQXNzZW50bHkgaWYgdGhlIHByb2JsZW0gcGVyc2lzdHMuJyxcbiAgICAgICAgU1JWMDA0OiAnQSB0ZWNobmljYWwgZXJyb3IgaGFzIG9jY3VycmVkLiBQbGVhc2UgY29udGFjdCA8YSBocmVmPVwiaHR0cHM6Ly93d3cubmVtaWQubnUvZGstZGEvZmFhX2hqYWVscF90aWxfZGl0X25lbWlkL2tvbnRha3Qvc3VwcG9ydF9vZ19rb250YWt0L1wiPk5lbUlEIHN1cHBvcnQ8L2E+LicsXG4gICAgICAgIFNSVjAwNTogJ0EgdGVjaG5pY2FsIGVycm9yIGhhcyBvY2N1cnJlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4gQ29udGFjdCBBc3NlbnRseSBpZiB0aGUgcHJvYmxlbSBwZXJzaXN0cy4nLFxuICAgICAgICBTUlYwMDY6ICdUaW1lIGxpbWl0IGV4Y2VlZGVkLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgICAgIFNSVjAwNzogJ0EgdGVjaG5pY2FsIGVycm9yIGhhcyBvY2N1cnJlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4gQ29udGFjdCBBc3NlbnRseSBpZiB0aGUgcHJvYmxlbSBwZXJzaXN0cy4nLFxuICAgICAgICBTUlYwMDg6ICdBIHRlY2huaWNhbCBlcnJvciBoYXMgb2NjdXJyZWQuIENvbnRhY3QgQXNzZW50bHkuJyxcbiAgICAgICAgU1JWMDA5OiAnWW91IGhhdmUgYXR0ZW1wdGVkIHRvIGxvZyBpbiB3aXRoIGFuIElWUiB1c2VyIG9uIHRoZSBOZW1JRCBtb2JpbGUgbG9naW4uIFRoaXMgaXMgbm90IHN1cHBvcnRlZC4nLFxuICAgICAgICBTUlYwMTA6ICdBIHRlY2huaWNhbCBlcnJvciBoYXMgb2NjdXJyZWQuIFBsZWFzZSB0cnkgYWdhaW4uIENvbnRhY3QgQXNzZW50bHkgaWYgdGhlIHByb2JsZW0gcGVyc2lzdHMuJyxcbiAgICAgICAgT0NFUzAwMTogJ1lvdSBvbmx5IGhhdmUgTmVtSUQgZm9yIG9ubGluZSBiYW5raW5nLiBJZiB5b3Ugd2lzaCB0byB1c2UgTmVtSUQgZm9yIG90aGVyIHB1YmxpYyBvciBwcml2YXRlIHNlcnZpY2VzLCB5b3UgbXVzdCA8YSBocmVmPVwiaHR0cHM6Ly9zZXJ2aWNlLm5lbWlkLm51L2RrZGEvYmVzdGlsX25lbWlkL2Jlc3RpbF9vZmZlbnRsaWdfZGlnaXRhbF9zaWduYXR1cl90aWxfZGl0X25lbWlkL1wiPmFmZmlsaWF0ZSBhIHB1YmxpYyBkaWdpdGFsIHNpZ25hdHVyZTwvYT4gdG8geW91ciBOZW1JRC4nLFxuICAgICAgICBPQ0VTMDAyOiAnSWYgeW91IHdpc2ggdG8gdXNlIE5lbUlEIGZvciBvdGhlciBzZXJ2aWNlcyB0aGFuIG9ubGluZSBiYW5raW5nLCB5b3UgaGF2ZSB0byBhZmZpbGlhdGUgYSBwdWJsaWMgZGlnaXRhbCBzaWduYXR1cmUgdG8geW91ciBOZW1JRC4gWW91IGNhbiBkbyB0aGlzIGJ5IHN0YXJ0aW5nIHRoZSByZWd1bGFyIE5lbUlEIG9yZGVyIGZsb3csIHdoaWNoIHdpbGwgdGhlbiBvcmRlciB0aGUgbmVlZGVkIHB1YmxpYyBkaWdpdGFsIHNpZ25hdHVyZS4gPGEgaHJlZj1cImh0dHBzOi8vc2VydmljZS5uZW1pZC5udS9ka2RhL2Jlc3RpbF9uZW1pZC9cIj5SZXF1ZXN0IE5lbUlEPC9hPi4nLFxuICAgICAgICBPQ0VTMDAzOiAnWW91IGhhdmUgYXR0ZW1wdGVkIHRvIGxvZyBvbiB1c2luZyBhIE5lbUlEIHdpdGggbm8gcHVibGljIGRpZ2l0YWwgc2lnbmF0dXJlLiBJZiB5b3UgcHJldmlvdXNseSBoYXZlIGxvZ2dlZCBvbiB0byBvdXIgc2VydmljZSB1c2luZyB5b3VyIE5lbUlELCB0aGUgZXJyb3IgY2FuIGJlIGR1ZSB0byBoYXZpbmcgbW9yZSB0aGFuIG9uZSBOZW1JRCBhbmQgaGF2aW5nIHVzZWQgYSBkaWZmZXJlbnQgTmVtSUQgdGhhbiBub3JtYWxseS4nLFxuICAgICAgICBPQ0VTMDA0OiAnWW91IGNhbiBvbmx5IHVzZSB0aGlzIE5lbUlEIGZvciB5b3VyIG9ubGluZSBiYW5raW5nIHNlcnZpY2UuJyxcbiAgICAgICAgT0NFUzAwNTogJ0lzc3VpbmcgeW91ciBwdWJsaWMgZGlnaXRhbCBzaWduYXR1cmUgZmFpbGVkLiBQbGVhc2UgdHJ5IGFnYWluLiBJZiB0aGUgcHJvYmxlbSBwZXJzaXN0cyA8YSBocmVmPVwiaHR0cHM6Ly93d3cubmVtaWQubnUvZGstZGEvZmFhX2hqYWVscF90aWxfZGl0X25lbWlkL2tvbnRha3Qvc3VwcG9ydF9vZ19rb250YWt0L1wiPmNvbnRhY3QgTmVtSUQgc3VwcG9ydDwvYT4nLFxuICAgICAgICBPQ0VTMDA2OiAnWW91IGN1cnJlbnRseSBkb27igJl0IGhhdmUgYW4gYWN0aXZlIHB1YmxpYyBkaWdpdGFsIHNpZ25hdHVyZSAoT0NFUyBjZXJ0aWZpY2F0ZSkgYWZmaWxpYXRlZCB3aXRoIHlvdXIgTmVtSUQuIFRvIGdldCB0aGlzLCBzdGFydCB0aGUgcmVndWxhciBOZW1JRCBvcmRlciBmbG93IGFmdGVyIHdoaWNoIHlvdSB3aWxsIGJlIGFza2VkIHRvIGFmZmlsaWF0ZSBhIHB1YmxpYyBkaWdpdGFsIHNpZ25hdHVyZSB3aXRoIHlvdXIgY3VycmVudCBOZW1JRC4gPGEgaHJlZj1cImh0dHBzOi8vc2VydmljZS5uZW1pZC5udS9ka2RhL2Jlc3RpbF9uZW1pZC9cIj5SZXF1ZXN0IE5lbUlEPC9hPi4nLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuXTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBzcmMvZGF0YS5qcyJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFSQTtBQVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFSQTtBQVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFSQTtBQVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQVdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE3Q0E7QUErQ0E7QUFDQTtBQUNBO0FBbERBO0FBb0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFwQkE7QUE4QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBakJBO0FBM0xBO0FBZ05BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQWxGQTtBQXVGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVBBO0FBcEJBO0FBOUZBO0FBOEhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQTNGQTtBQWdHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBN0NBO0FBSkE7QUFWQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///55\n");

/***/ }),

/***/ 79:
/***/ (function(module, exports) {

eval("(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var list = this.map[name]\n if (!list) {\n list = []\n this.map[name] = list\n }\n list.push(value)\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n var values = this.map[normalizeName(name)]\n return values ? values[0] : null\n }\n\n Headers.prototype.getAll = function(name) {\n return this.map[normalizeName(name)] || []\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = [normalizeValue(value)]\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n Object.getOwnPropertyNames(this.map).forEach(function(name) {\n this.map[name].forEach(function(value) {\n callback.call(thisArg, value, name, this)\n }, this)\n }, this)\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (typeof input === 'string') {\n this.url = input\n } else {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n rawHeaders.split('\\r\\n').forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = 'status' in options ? options.status : 200\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd2hhdHdnLWZldGNoL2ZldGNoLmpzP2FlOTkiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKHNlbGYpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGlmIChzZWxmLmZldGNoKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICB2YXIgc3VwcG9ydCA9IHtcbiAgICBzZWFyY2hQYXJhbXM6ICdVUkxTZWFyY2hQYXJhbXMnIGluIHNlbGYsXG4gICAgaXRlcmFibGU6ICdTeW1ib2wnIGluIHNlbGYgJiYgJ2l0ZXJhdG9yJyBpbiBTeW1ib2wsXG4gICAgYmxvYjogJ0ZpbGVSZWFkZXInIGluIHNlbGYgJiYgJ0Jsb2InIGluIHNlbGYgJiYgKGZ1bmN0aW9uKCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgbmV3IEJsb2IoKVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH0pKCksXG4gICAgZm9ybURhdGE6ICdGb3JtRGF0YScgaW4gc2VsZixcbiAgICBhcnJheUJ1ZmZlcjogJ0FycmF5QnVmZmVyJyBpbiBzZWxmXG4gIH1cblxuICBpZiAoc3VwcG9ydC5hcnJheUJ1ZmZlcikge1xuICAgIHZhciB2aWV3Q2xhc3NlcyA9IFtcbiAgICAgICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgICAgJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgICAgJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICAgICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICAgICdbb2JqZWN0IFVpbnQxNkFycmF5XScsXG4gICAgICAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgICAnW29iamVjdCBVaW50MzJBcnJheV0nLFxuICAgICAgJ1tvYmplY3QgRmxvYXQzMkFycmF5XScsXG4gICAgICAnW29iamVjdCBGbG9hdDY0QXJyYXldJ1xuICAgIF1cblxuICAgIHZhciBpc0RhdGFWaWV3ID0gZnVuY3Rpb24ob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIERhdGFWaWV3LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKG9iailcbiAgICB9XG5cbiAgICB2YXIgaXNBcnJheUJ1ZmZlclZpZXcgPSBBcnJheUJ1ZmZlci5pc1ZpZXcgfHwgZnVuY3Rpb24ob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIHZpZXdDbGFzc2VzLmluZGV4T2YoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikpID4gLTFcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBub3JtYWxpemVOYW1lKG5hbWUpIHtcbiAgICBpZiAodHlwZW9mIG5hbWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICBuYW1lID0gU3RyaW5nKG5hbWUpXG4gICAgfVxuICAgIGlmICgvW15hLXowLTlcXC0jJCUmJyorLlxcXl9gfH5dL2kudGVzdChuYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBjaGFyYWN0ZXIgaW4gaGVhZGVyIGZpZWxkIG5hbWUnKVxuICAgIH1cbiAgICByZXR1cm4gbmFtZS50b0xvd2VyQ2FzZSgpXG4gIH1cblxuICBmdW5jdGlvbiBub3JtYWxpemVWYWx1ZSh2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICB2YWx1ZSA9IFN0cmluZyh2YWx1ZSlcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cblxuICAvLyBCdWlsZCBhIGRlc3RydWN0aXZlIGl0ZXJhdG9yIGZvciB0aGUgdmFsdWUgbGlzdFxuICBmdW5jdGlvbiBpdGVyYXRvckZvcihpdGVtcykge1xuICAgIHZhciBpdGVyYXRvciA9IHtcbiAgICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBpdGVtcy5zaGlmdCgpXG4gICAgICAgIHJldHVybiB7ZG9uZTogdmFsdWUgPT09IHVuZGVmaW5lZCwgdmFsdWU6IHZhbHVlfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzdXBwb3J0Lml0ZXJhYmxlKSB7XG4gICAgICBpdGVyYXRvcltTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpdGVyYXRvclxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpdGVyYXRvclxuICB9XG5cbiAgZnVuY3Rpb24gSGVhZGVycyhoZWFkZXJzKSB7XG4gICAgdGhpcy5tYXAgPSB7fVxuXG4gICAgaWYgKGhlYWRlcnMgaW5zdGFuY2VvZiBIZWFkZXJzKSB7XG4gICAgICBoZWFkZXJzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHtcbiAgICAgICAgdGhpcy5hcHBlbmQobmFtZSwgdmFsdWUpXG4gICAgICB9LCB0aGlzKVxuXG4gICAgfSBlbHNlIGlmIChoZWFkZXJzKSB7XG4gICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhoZWFkZXJzKS5mb3JFYWNoKGZ1bmN0aW9uKG5hbWUpIHtcbiAgICAgICAgdGhpcy5hcHBlbmQobmFtZSwgaGVhZGVyc1tuYW1lXSlcbiAgICAgIH0sIHRoaXMpXG4gICAgfVxuICB9XG5cbiAgSGVhZGVycy5wcm90b3R5cGUuYXBwZW5kID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgICBuYW1lID0gbm9ybWFsaXplTmFtZShuYW1lKVxuICAgIHZhbHVlID0gbm9ybWFsaXplVmFsdWUodmFsdWUpXG4gICAgdmFyIGxpc3QgPSB0aGlzLm1hcFtuYW1lXVxuICAgIGlmICghbGlzdCkge1xuICAgICAgbGlzdCA9IFtdXG4gICAgICB0aGlzLm1hcFtuYW1lXSA9IGxpc3RcbiAgICB9XG4gICAgbGlzdC5wdXNoKHZhbHVlKVxuICB9XG5cbiAgSGVhZGVycy5wcm90b3R5cGVbJ2RlbGV0ZSddID0gZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLm1hcFtub3JtYWxpemVOYW1lKG5hbWUpXVxuICB9XG5cbiAgSGVhZGVycy5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24obmFtZSkge1xuICAgIHZhciB2YWx1ZXMgPSB0aGlzLm1hcFtub3JtYWxpemVOYW1lKG5hbWUpXVxuICAgIHJldHVybiB2YWx1ZXMgPyB2YWx1ZXNbMF0gOiBudWxsXG4gIH1cblxuICBIZWFkZXJzLnByb3RvdHlwZS5nZXRBbGwgPSBmdW5jdGlvbihuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwW25vcm1hbGl6ZU5hbWUobmFtZSldIHx8IFtdXG4gIH1cblxuICBIZWFkZXJzLnByb3RvdHlwZS5oYXMgPSBmdW5jdGlvbihuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwLmhhc093blByb3BlcnR5KG5vcm1hbGl6ZU5hbWUobmFtZSkpXG4gIH1cblxuICBIZWFkZXJzLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICAgIHRoaXMubWFwW25vcm1hbGl6ZU5hbWUobmFtZSldID0gW25vcm1hbGl6ZVZhbHVlKHZhbHVlKV1cbiAgfVxuXG4gIEhlYWRlcnMucHJvdG90eXBlLmZvckVhY2ggPSBmdW5jdGlvbihjYWxsYmFjaywgdGhpc0FyZykge1xuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMubWFwKS5mb3JFYWNoKGZ1bmN0aW9uKG5hbWUpIHtcbiAgICAgIHRoaXMubWFwW25hbWVdLmZvckVhY2goZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzQXJnLCB2YWx1ZSwgbmFtZSwgdGhpcylcbiAgICAgIH0sIHRoaXMpXG4gICAgfSwgdGhpcylcbiAgfVxuXG4gIEhlYWRlcnMucHJvdG90eXBlLmtleXMgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgaXRlbXMgPSBbXVxuICAgIHRoaXMuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSwgbmFtZSkgeyBpdGVtcy5wdXNoKG5hbWUpIH0pXG4gICAgcmV0dXJuIGl0ZXJhdG9yRm9yKGl0ZW1zKVxuICB9XG5cbiAgSGVhZGVycy5wcm90b3R5cGUudmFsdWVzID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGl0ZW1zID0gW11cbiAgICB0aGlzLmZvckVhY2goZnVuY3Rpb24odmFsdWUpIHsgaXRlbXMucHVzaCh2YWx1ZSkgfSlcbiAgICByZXR1cm4gaXRlcmF0b3JGb3IoaXRlbXMpXG4gIH1cblxuICBIZWFkZXJzLnByb3RvdHlwZS5lbnRyaWVzID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGl0ZW1zID0gW11cbiAgICB0aGlzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHsgaXRlbXMucHVzaChbbmFtZSwgdmFsdWVdKSB9KVxuICAgIHJldHVybiBpdGVyYXRvckZvcihpdGVtcylcbiAgfVxuXG4gIGlmIChzdXBwb3J0Lml0ZXJhYmxlKSB7XG4gICAgSGVhZGVycy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXSA9IEhlYWRlcnMucHJvdG90eXBlLmVudHJpZXNcbiAgfVxuXG4gIGZ1bmN0aW9uIGNvbnN1bWVkKGJvZHkpIHtcbiAgICBpZiAoYm9keS5ib2R5VXNlZCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBUeXBlRXJyb3IoJ0FscmVhZHkgcmVhZCcpKVxuICAgIH1cbiAgICBib2R5LmJvZHlVc2VkID0gdHJ1ZVxuICB9XG5cbiAgZnVuY3Rpb24gZmlsZVJlYWRlclJlYWR5KHJlYWRlcikge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0KVxuICAgICAgfVxuICAgICAgcmVhZGVyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmVqZWN0KHJlYWRlci5lcnJvcilcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZnVuY3Rpb24gcmVhZEJsb2JBc0FycmF5QnVmZmVyKGJsb2IpIHtcbiAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKVxuICAgIHZhciBwcm9taXNlID0gZmlsZVJlYWRlclJlYWR5KHJlYWRlcilcbiAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoYmxvYilcbiAgICByZXR1cm4gcHJvbWlzZVxuICB9XG5cbiAgZnVuY3Rpb24gcmVhZEJsb2JBc1RleHQoYmxvYikge1xuICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpXG4gICAgdmFyIHByb21pc2UgPSBmaWxlUmVhZGVyUmVhZHkocmVhZGVyKVxuICAgIHJlYWRlci5yZWFkQXNUZXh0KGJsb2IpXG4gICAgcmV0dXJuIHByb21pc2VcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlYWRBcnJheUJ1ZmZlckFzVGV4dChidWYpIHtcbiAgICB2YXIgdmlldyA9IG5ldyBVaW50OEFycmF5KGJ1ZilcbiAgICB2YXIgY2hhcnMgPSBuZXcgQXJyYXkodmlldy5sZW5ndGgpXG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZpZXcubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNoYXJzW2ldID0gU3RyaW5nLmZyb21DaGFyQ29kZSh2aWV3W2ldKVxuICAgIH1cbiAgICByZXR1cm4gY2hhcnMuam9pbignJylcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1ZmZlckNsb25lKGJ1Zikge1xuICAgIGlmIChidWYuc2xpY2UpIHtcbiAgICAgIHJldHVybiBidWYuc2xpY2UoMClcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHZpZXcgPSBuZXcgVWludDhBcnJheShidWYuYnl0ZUxlbmd0aClcbiAgICAgIHZpZXcuc2V0KG5ldyBVaW50OEFycmF5KGJ1ZikpXG4gICAgICByZXR1cm4gdmlldy5idWZmZXJcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBCb2R5KCkge1xuICAgIHRoaXMuYm9keVVzZWQgPSBmYWxzZVxuXG4gICAgdGhpcy5faW5pdEJvZHkgPSBmdW5jdGlvbihib2R5KSB7XG4gICAgICB0aGlzLl9ib2R5SW5pdCA9IGJvZHlcbiAgICAgIGlmICghYm9keSkge1xuICAgICAgICB0aGlzLl9ib2R5VGV4dCA9ICcnXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBib2R5ID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLl9ib2R5VGV4dCA9IGJvZHlcbiAgICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5ibG9iICYmIEJsb2IucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYm9keSkpIHtcbiAgICAgICAgdGhpcy5fYm9keUJsb2IgPSBib2R5XG4gICAgICB9IGVsc2UgaWYgKHN1cHBvcnQuZm9ybURhdGEgJiYgRm9ybURhdGEucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYm9keSkpIHtcbiAgICAgICAgdGhpcy5fYm9keUZvcm1EYXRhID0gYm9keVxuICAgICAgfSBlbHNlIGlmIChzdXBwb3J0LnNlYXJjaFBhcmFtcyAmJiBVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYm9keSkpIHtcbiAgICAgICAgdGhpcy5fYm9keVRleHQgPSBib2R5LnRvU3RyaW5nKClcbiAgICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5hcnJheUJ1ZmZlciAmJiBzdXBwb3J0LmJsb2IgJiYgaXNEYXRhVmlldyhib2R5KSkge1xuICAgICAgICB0aGlzLl9ib2R5QXJyYXlCdWZmZXIgPSBidWZmZXJDbG9uZShib2R5LmJ1ZmZlcilcbiAgICAgICAgLy8gSUUgMTAtMTEgY2FuJ3QgaGFuZGxlIGEgRGF0YVZpZXcgYm9keS5cbiAgICAgICAgdGhpcy5fYm9keUluaXQgPSBuZXcgQmxvYihbdGhpcy5fYm9keUFycmF5QnVmZmVyXSlcbiAgICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5hcnJheUJ1ZmZlciAmJiAoQXJyYXlCdWZmZXIucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYm9keSkgfHwgaXNBcnJheUJ1ZmZlclZpZXcoYm9keSkpKSB7XG4gICAgICAgIHRoaXMuX2JvZHlBcnJheUJ1ZmZlciA9IGJ1ZmZlckNsb25lKGJvZHkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Vuc3VwcG9ydGVkIEJvZHlJbml0IHR5cGUnKVxuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpKSB7XG4gICAgICAgIGlmICh0eXBlb2YgYm9keSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICB0aGlzLmhlYWRlcnMuc2V0KCdjb250ZW50LXR5cGUnLCAndGV4dC9wbGFpbjtjaGFyc2V0PVVURi04JylcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5QmxvYiAmJiB0aGlzLl9ib2R5QmxvYi50eXBlKSB7XG4gICAgICAgICAgdGhpcy5oZWFkZXJzLnNldCgnY29udGVudC10eXBlJywgdGhpcy5fYm9keUJsb2IudHlwZSlcbiAgICAgICAgfSBlbHNlIGlmIChzdXBwb3J0LnNlYXJjaFBhcmFtcyAmJiBVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYm9keSkpIHtcbiAgICAgICAgICB0aGlzLmhlYWRlcnMuc2V0KCdjb250ZW50LXR5cGUnLCAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgnKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN1cHBvcnQuYmxvYikge1xuICAgICAgdGhpcy5ibG9iID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciByZWplY3RlZCA9IGNvbnN1bWVkKHRoaXMpXG4gICAgICAgIGlmIChyZWplY3RlZCkge1xuICAgICAgICAgIHJldHVybiByZWplY3RlZFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2JvZHlCbG9iKSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QmxvYilcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpIHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFt0aGlzLl9ib2R5QXJyYXlCdWZmZXJdKSlcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5Rm9ybURhdGEpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NvdWxkIG5vdCByZWFkIEZvcm1EYXRhIGJvZHkgYXMgYmxvYicpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXcgQmxvYihbdGhpcy5fYm9keVRleHRdKSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLmFycmF5QnVmZmVyID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpIHtcbiAgICAgICAgICByZXR1cm4gY29uc3VtZWQodGhpcykgfHwgUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5ibG9iKCkudGhlbihyZWFkQmxvYkFzQXJyYXlCdWZmZXIpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnRleHQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciByZWplY3RlZCA9IGNvbnN1bWVkKHRoaXMpXG4gICAgICBpZiAocmVqZWN0ZWQpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdGVkXG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLl9ib2R5QmxvYikge1xuICAgICAgICByZXR1cm4gcmVhZEJsb2JBc1RleHQodGhpcy5fYm9keUJsb2IpXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlYWRBcnJheUJ1ZmZlckFzVGV4dCh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpKVxuICAgICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5Rm9ybURhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgcmVhZCBGb3JtRGF0YSBib2R5IGFzIHRleHQnKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5VGV4dClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3VwcG9ydC5mb3JtRGF0YSkge1xuICAgICAgdGhpcy5mb3JtRGF0YSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0KCkudGhlbihkZWNvZGUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5qc29uID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy50ZXh0KCkudGhlbihKU09OLnBhcnNlKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvLyBIVFRQIG1ldGhvZHMgd2hvc2UgY2FwaXRhbGl6YXRpb24gc2hvdWxkIGJlIG5vcm1hbGl6ZWRcbiAgdmFyIG1ldGhvZHMgPSBbJ0RFTEVURScsICdHRVQnLCAnSEVBRCcsICdPUFRJT05TJywgJ1BPU1QnLCAnUFVUJ11cblxuICBmdW5jdGlvbiBub3JtYWxpemVNZXRob2QobWV0aG9kKSB7XG4gICAgdmFyIHVwY2FzZWQgPSBtZXRob2QudG9VcHBlckNhc2UoKVxuICAgIHJldHVybiAobWV0aG9kcy5pbmRleE9mKHVwY2FzZWQpID4gLTEpID8gdXBjYXNlZCA6IG1ldGhvZFxuICB9XG5cbiAgZnVuY3Rpb24gUmVxdWVzdChpbnB1dCwgb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9XG4gICAgdmFyIGJvZHkgPSBvcHRpb25zLmJvZHlcblxuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLnVybCA9IGlucHV0XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChpbnB1dC5ib2R5VXNlZCkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBbHJlYWR5IHJlYWQnKVxuICAgICAgfVxuICAgICAgdGhpcy51cmwgPSBpbnB1dC51cmxcbiAgICAgIHRoaXMuY3JlZGVudGlhbHMgPSBpbnB1dC5jcmVkZW50aWFsc1xuICAgICAgaWYgKCFvcHRpb25zLmhlYWRlcnMpIHtcbiAgICAgICAgdGhpcy5oZWFkZXJzID0gbmV3IEhlYWRlcnMoaW5wdXQuaGVhZGVycylcbiAgICAgIH1cbiAgICAgIHRoaXMubWV0aG9kID0gaW5wdXQubWV0aG9kXG4gICAgICB0aGlzLm1vZGUgPSBpbnB1dC5tb2RlXG4gICAgICBpZiAoIWJvZHkgJiYgaW5wdXQuX2JvZHlJbml0ICE9IG51bGwpIHtcbiAgICAgICAgYm9keSA9IGlucHV0Ll9ib2R5SW5pdFxuICAgICAgICBpbnB1dC5ib2R5VXNlZCA9IHRydWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNyZWRlbnRpYWxzID0gb3B0aW9ucy5jcmVkZW50aWFscyB8fCB0aGlzLmNyZWRlbnRpYWxzIHx8ICdvbWl0J1xuICAgIGlmIChvcHRpb25zLmhlYWRlcnMgfHwgIXRoaXMuaGVhZGVycykge1xuICAgICAgdGhpcy5oZWFkZXJzID0gbmV3IEhlYWRlcnMob3B0aW9ucy5oZWFkZXJzKVxuICAgIH1cbiAgICB0aGlzLm1ldGhvZCA9IG5vcm1hbGl6ZU1ldGhvZChvcHRpb25zLm1ldGhvZCB8fCB0aGlzLm1ldGhvZCB8fCAnR0VUJylcbiAgICB0aGlzLm1vZGUgPSBvcHRpb25zLm1vZGUgfHwgdGhpcy5tb2RlIHx8IG51bGxcbiAgICB0aGlzLnJlZmVycmVyID0gbnVsbFxuXG4gICAgaWYgKCh0aGlzLm1ldGhvZCA9PT0gJ0dFVCcgfHwgdGhpcy5tZXRob2QgPT09ICdIRUFEJykgJiYgYm9keSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQm9keSBub3QgYWxsb3dlZCBmb3IgR0VUIG9yIEhFQUQgcmVxdWVzdHMnKVxuICAgIH1cbiAgICB0aGlzLl9pbml0Qm9keShib2R5KVxuICB9XG5cbiAgUmVxdWVzdC5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IFJlcXVlc3QodGhpcywgeyBib2R5OiB0aGlzLl9ib2R5SW5pdCB9KVxuICB9XG5cbiAgZnVuY3Rpb24gZGVjb2RlKGJvZHkpIHtcbiAgICB2YXIgZm9ybSA9IG5ldyBGb3JtRGF0YSgpXG4gICAgYm9keS50cmltKCkuc3BsaXQoJyYnKS5mb3JFYWNoKGZ1bmN0aW9uKGJ5dGVzKSB7XG4gICAgICBpZiAoYnl0ZXMpIHtcbiAgICAgICAgdmFyIHNwbGl0ID0gYnl0ZXMuc3BsaXQoJz0nKVxuICAgICAgICB2YXIgbmFtZSA9IHNwbGl0LnNoaWZ0KCkucmVwbGFjZSgvXFwrL2csICcgJylcbiAgICAgICAgdmFyIHZhbHVlID0gc3BsaXQuam9pbignPScpLnJlcGxhY2UoL1xcKy9nLCAnICcpXG4gICAgICAgIGZvcm0uYXBwZW5kKGRlY29kZVVSSUNvbXBvbmVudChuYW1lKSwgZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKSlcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiBmb3JtXG4gIH1cblxuICBmdW5jdGlvbiBwYXJzZUhlYWRlcnMocmF3SGVhZGVycykge1xuICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKVxuICAgIHJhd0hlYWRlcnMuc3BsaXQoJ1xcclxcbicpLmZvckVhY2goZnVuY3Rpb24obGluZSkge1xuICAgICAgdmFyIHBhcnRzID0gbGluZS5zcGxpdCgnOicpXG4gICAgICB2YXIga2V5ID0gcGFydHMuc2hpZnQoKS50cmltKClcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gcGFydHMuam9pbignOicpLnRyaW0oKVxuICAgICAgICBoZWFkZXJzLmFwcGVuZChrZXksIHZhbHVlKVxuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIGhlYWRlcnNcbiAgfVxuXG4gIEJvZHkuY2FsbChSZXF1ZXN0LnByb3RvdHlwZSlcblxuICBmdW5jdGlvbiBSZXNwb25zZShib2R5SW5pdCwgb3B0aW9ucykge1xuICAgIGlmICghb3B0aW9ucykge1xuICAgICAgb3B0aW9ucyA9IHt9XG4gICAgfVxuXG4gICAgdGhpcy50eXBlID0gJ2RlZmF1bHQnXG4gICAgdGhpcy5zdGF0dXMgPSAnc3RhdHVzJyBpbiBvcHRpb25zID8gb3B0aW9ucy5zdGF0dXMgOiAyMDBcbiAgICB0aGlzLm9rID0gdGhpcy5zdGF0dXMgPj0gMjAwICYmIHRoaXMuc3RhdHVzIDwgMzAwXG4gICAgdGhpcy5zdGF0dXNUZXh0ID0gJ3N0YXR1c1RleHQnIGluIG9wdGlvbnMgPyBvcHRpb25zLnN0YXR1c1RleHQgOiAnT0snXG4gICAgdGhpcy5oZWFkZXJzID0gbmV3IEhlYWRlcnMob3B0aW9ucy5oZWFkZXJzKVxuICAgIHRoaXMudXJsID0gb3B0aW9ucy51cmwgfHwgJydcbiAgICB0aGlzLl9pbml0Qm9keShib2R5SW5pdClcbiAgfVxuXG4gIEJvZHkuY2FsbChSZXNwb25zZS5wcm90b3R5cGUpXG5cbiAgUmVzcG9uc2UucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBSZXNwb25zZSh0aGlzLl9ib2R5SW5pdCwge1xuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICAgIHN0YXR1c1RleHQ6IHRoaXMuc3RhdHVzVGV4dCxcbiAgICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICB1cmw6IHRoaXMudXJsXG4gICAgfSlcbiAgfVxuXG4gIFJlc3BvbnNlLmVycm9yID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKG51bGwsIHtzdGF0dXM6IDAsIHN0YXR1c1RleHQ6ICcnfSlcbiAgICByZXNwb25zZS50eXBlID0gJ2Vycm9yJ1xuICAgIHJldHVybiByZXNwb25zZVxuICB9XG5cbiAgdmFyIHJlZGlyZWN0U3RhdHVzZXMgPSBbMzAxLCAzMDIsIDMwMywgMzA3LCAzMDhdXG5cbiAgUmVzcG9uc2UucmVkaXJlY3QgPSBmdW5jdGlvbih1cmwsIHN0YXR1cykge1xuICAgIGlmIChyZWRpcmVjdFN0YXR1c2VzLmluZGV4T2Yoc3RhdHVzKSA9PT0gLTEpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbnZhbGlkIHN0YXR1cyBjb2RlJylcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFJlc3BvbnNlKG51bGwsIHtzdGF0dXM6IHN0YXR1cywgaGVhZGVyczoge2xvY2F0aW9uOiB1cmx9fSlcbiAgfVxuXG4gIHNlbGYuSGVhZGVycyA9IEhlYWRlcnNcbiAgc2VsZi5SZXF1ZXN0ID0gUmVxdWVzdFxuICBzZWxmLlJlc3BvbnNlID0gUmVzcG9uc2VcblxuICBzZWxmLmZldGNoID0gZnVuY3Rpb24oaW5wdXQsIGluaXQpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGlucHV0LCBpbml0KVxuICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpXG5cbiAgICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICAgICAgc3RhdHVzOiB4aHIuc3RhdHVzLFxuICAgICAgICAgIHN0YXR1c1RleHQ6IHhoci5zdGF0dXNUZXh0LFxuICAgICAgICAgIGhlYWRlcnM6IHBhcnNlSGVhZGVycyh4aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkgfHwgJycpXG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9ucy51cmwgPSAncmVzcG9uc2VVUkwnIGluIHhociA/IHhoci5yZXNwb25zZVVSTCA6IG9wdGlvbnMuaGVhZGVycy5nZXQoJ1gtUmVxdWVzdC1VUkwnKVxuICAgICAgICB2YXIgYm9keSA9ICdyZXNwb25zZScgaW4geGhyID8geGhyLnJlc3BvbnNlIDogeGhyLnJlc3BvbnNlVGV4dFxuICAgICAgICByZXNvbHZlKG5ldyBSZXNwb25zZShib2R5LCBvcHRpb25zKSlcbiAgICAgIH1cblxuICAgICAgeGhyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmVqZWN0KG5ldyBUeXBlRXJyb3IoJ05ldHdvcmsgcmVxdWVzdCBmYWlsZWQnKSlcbiAgICAgIH1cblxuICAgICAgeGhyLm9udGltZW91dCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZWplY3QobmV3IFR5cGVFcnJvcignTmV0d29yayByZXF1ZXN0IGZhaWxlZCcpKVxuICAgICAgfVxuXG4gICAgICB4aHIub3BlbihyZXF1ZXN0Lm1ldGhvZCwgcmVxdWVzdC51cmwsIHRydWUpXG5cbiAgICAgIGlmIChyZXF1ZXN0LmNyZWRlbnRpYWxzID09PSAnaW5jbHVkZScpIHtcbiAgICAgICAgeGhyLndpdGhDcmVkZW50aWFscyA9IHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKCdyZXNwb25zZVR5cGUnIGluIHhociAmJiBzdXBwb3J0LmJsb2IpIHtcbiAgICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9ICdibG9iJ1xuICAgICAgfVxuXG4gICAgICByZXF1ZXN0LmhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSwgbmFtZSkge1xuICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihuYW1lLCB2YWx1ZSlcbiAgICAgIH0pXG5cbiAgICAgIHhoci5zZW5kKHR5cGVvZiByZXF1ZXN0Ll9ib2R5SW5pdCA9PT0gJ3VuZGVmaW5lZCcgPyBudWxsIDogcmVxdWVzdC5fYm9keUluaXQpXG4gICAgfSlcbiAgfVxuICBzZWxmLmZldGNoLnBvbHlmaWxsID0gdHJ1ZVxufSkodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnID8gc2VsZiA6IHRoaXMpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvd2hhdHdnLWZldGNoL2ZldGNoLmpzXG4vLyBtb2R1bGUgaWQgPSA3OVxuLy8gbW9kdWxlIGNodW5rcyA9IDEwIDExIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///79\n");

/***/ }),

/***/ 80:
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.setCookie = setCookie;\nexports.getCookie = getCookie;\nfunction setCookie(cookieName, cookieValue, expireDays) {\n var date = new Date();\n date.setTime(date.getTime() + expireDays * 24 * 60 * 60 * 1000);\n var expires = \"expires=\" + date.toUTCString();\n document.cookie = cookieName + \"=\" + cookieValue + \";\" + expires + \";path=/\";\n}\n\nfunction getCookie(cookieName, cookies) {\n var name = cookieName + \"=\";\n var ca = cookies.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return \"\";\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL2hlbHBlcnMvY29va2llLWhlbHBlcnMuanM/MDc4ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gc2V0Q29va2llKGNvb2tpZU5hbWUsIGNvb2tpZVZhbHVlLCBleHBpcmVEYXlzKSB7XG4gICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGRhdGUuc2V0VGltZShkYXRlLmdldFRpbWUoKSArIChleHBpcmVEYXlzKjI0KjYwKjYwKjEwMDApKTtcbiAgICB2YXIgZXhwaXJlcyA9IFwiZXhwaXJlcz1cIisgZGF0ZS50b1VUQ1N0cmluZygpO1xuICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZU5hbWUgKyBcIj1cIiArIGNvb2tpZVZhbHVlICsgXCI7XCIgKyBleHBpcmVzICsgXCI7cGF0aD0vXCI7XG59XG4gXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29va2llKGNvb2tpZU5hbWUsIGNvb2tpZXMpIHtcbiAgICB2YXIgbmFtZSA9IGNvb2tpZU5hbWUgKyBcIj1cIjtcbiAgICB2YXIgY2EgPSBjb29raWVzLnNwbGl0KCc7Jyk7XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGNhLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgYyA9IGNhW2ldO1xuICAgICAgd2hpbGUgKGMuY2hhckF0KDApID09ICcgJykge1xuICAgICAgICBjID0gYy5zdWJzdHJpbmcoMSk7XG4gICAgICB9XG4gICAgICBpZiAoYy5pbmRleE9mKG5hbWUpID09IDApIHtcbiAgICAgICAgcmV0dXJuIGMuc3Vic3RyaW5nKG5hbWUubGVuZ3RoLCBjLmxlbmd0aCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBcIlwiO1xufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBzcmMvaGVscGVycy9jb29raWUtaGVscGVycy5qcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQU9BO0FBUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///80\n");

/***/ })

/******/ });

Back to list