{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./static/src/base/error404/error404App.sss?c1c4","webpack:///./static/src/utils/formatDateTime.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/preact/dist/preact.mjs","webpack:///./static/src/utils/utils.js","webpack:///./static/src/base/error404/error404Doc.js","webpack:///./static/src/base/error404/error404App.js","webpack:///./static/src/base/error404/error404.js"],"names":["root","factory","exports","module","define","amd","a","i","self","this","installedModules","__webpack_require__","moduleId","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof2","obj","iterator","constructor","_typeof","ReferenceError","date","format","copy","Date","assign","localeDefaults","ch","tokenLen","result","length","fn","baseFunctions","parseRepeatPattern","$TIME_SEPARATOR","$DATE_SEPARATOR","parseQuoted","substr","transforms","str","toUpperCase","toLowerCase","h","pad","getHours","H","getMinutes","getSeconds","f","noZeroes","v","getMilliseconds","vl","F","isUppercase","designator","$AM","$PM","slice","T","getDate","trf","getDay","day","$ORD","M","getMonth","y","getFullYear","z","getTimezoneOffset","ret","hours","Math","abs","pos","undefined","quote","next","indexOf","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","configurable","writable","protoProps","staticProps","assertThisInitialized","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","subClass","superClass","_setPrototypeOf","VNode","options","stack","EMPTY_CHILDREN","nodeName","attributes","lastSimple","child","simple","children","arguments","push","pop","String","vnode","extend","applyRef","ref","current","defer","Promise","resolve","then","setTimeout","IS_NON_DIMENSIONAL","items","enqueueRender","component","_dirty","debounceRendering","rerender","renderComponent","isSameNodeType","node","hydrating","splitText","_componentConstructor","isNamedNode","normalizedNodeName","getNodeProps","defaultProps","removeNode","parentNode","removeChild","setAccessor","old","isSvg","style","cssText","test","innerHTML","__html","useCapture","replace","substring","addEventListener","eventProxy","removeEventListener","_listeners","e","removeAttribute","removeAttributeNS","setAttributeNS","setAttribute","className","type","event","mounts","diffLevel","isSvgMode","flushMounts","shift","afterMount","componentDidMount","diff","dom","context","mountAll","parent","componentRoot","ownerSVGElement","idiff","appendChild","out","prevSvgMode","_component","nodeValue","document","createTextNode","replaceChild","recollectNodeTree","vnodeName","originalComponent","oldDom","isDirectOwner","isOwner","_parentComponent","setComponentProps","base","unmountComponent","createComponent","nextBase","buildComponentFromVNode","createElementNS","createElement","firstChild","fc","vchildren","nextSibling","isHydrating","j","vchild","originalChildren","childNodes","keyed","keyedLen","min","len","childrenLen","vlen","_child","__key","trim","insertBefore","innerDiffNode","dangerouslySetInnerHTML","attrs","diffAttributes","unmountOnly","removeChildren","lastChild","previousSibling","recyclerComponents","Ctor","inst","render","Component","doRender","splice","state","renderMode","_disable","__ref","getDerivedStateFromProps","componentWillMount","componentWillReceiveProps","prevContext","prevProps","syncComponentUpdates","isChild","rendered","cbase","previousProps","previousState","prevState","previousContext","isUpdate","initialBase","initialChildComponent","skip","snapshot","shouldComponentUpdate","componentWillUpdate","getChildContext","getSnapshotBeforeUpdate","toUnmount","childComponent","childProps","baseParent","componentRef","componentDidUpdate","afterUpdate","_renderCallbacks","beforeUnmount","componentWillUnmount","inner","merge","setState","callback","forceUpdate","accessNested","path","def","split","Array","isArray","prop","reduceTextJsx","jsxArray","line","getCopyWithParams","attribute","_getCopyWithParams","_n","g","getPageTitle","activePage","appData","Store","activePageName","$copy","release","match","Number","isNaN","parseDate","PAGE_NAME","RELEASE_DATE","formatDateTime","$DATE_FORMAT","$DATETIME_LOCALE","id","$DYNAMIC_TITLE","Error404","initialState","relativeRoot","reload","buildDate","now","initialStateGlobals","reducedInitialState","errorMessage","destination","cleanInitialState","JSON","stringify","join","renderGlobalsScript","lang","http-equiv","content","charset","rel","href","urls","roots","image","src","Error404App","startTimer","stopTimer","updateTime","redirect","appState","initialStore","count","location","search","timer","setInterval","clearInterval","max","getFinalUrl","errorText","mainText","class","container","info","__INITIAL_STATE__","window","body","getElementById"],"mappings":"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","file":"error404.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 11);\n","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n  if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n    module.exports = _typeof = function _typeof(obj) {\n      return _typeof2(obj);\n    };\n  } else {\n    module.exports = _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n    };\n  }\n\n  return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\nmodule.exports = _assertThisInitialized;","// extracted by extract-css-chunks-webpack-plugin\nmodule.exports = {\"container\":\"error404App__container__1-QCT\",\"info\":\"error404App__info__2XsQD\",\"mainText\":\"error404App__mainText__1_1-t\"};","// Live testing http://jsfiddle.net/es9qy5v0/2/\n//   (see documentation/dateFormat.md for more info)\n\n// Based on .Net DateTimeFormat.Format\n// See https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx for list of format specifiers\n// MODIFICATIONS :\n//  - unsupported: g (Era), K (time zone info)\n//  - f and F are only precise up to 3 (= milliseconds)\n//  - t/tt is lowercase and supports T/TT for uppercase alternative\n//  - added oo for ordinal version of the date (e.g. 12th)\n//  - adding more M or d changes the case:\n//     - 1 = number            1\n//     - 2 = padded number     01\n//     - 3 = standard short    Jan\n//     - 4 = standard long     January\n//     - 5 = uppercase short   JAN\n//     - 6 = uppercase long    JANUARY\n//     - 7 = lowercase short   jan\n//     - 8 = lowercase long    january\n// Be careful to use \\\\ instead of \\ when in a json/js string literal to prevent default backslash behaviour\n// (Base implementation used as reference :\n//   'FormatCustomized' @ http://referencesource.microsoft.com/#mscorlib/system/globalization/datetimeformat.cs,429)\nmodule.exports = function formatDateTime(date, format, copy) {\n\tif (!date || !format) return '';\n\tif (!(date instanceof Date)) {\n\t\tdate = new Date(date);\n\t}\n\tif (copy) {\n\t\tcopy = Object.assign({}, localeDefaults, copy);\n\t} else {\n\t\tcopy = localeDefaults;\n\t}\n\tlet result = '';\n\tlet i, l, ch, tokenLen;\n\tfor (i = 0, l = format.length; i < l; i += tokenLen) {\n\t\ttokenLen = 1;\n\t\tch = format[i];\n\t\tlet fn = baseFunctions[ch];\n\t\tif (fn) {\n\t\t\ttokenLen = parseRepeatPattern(format, i, ch, l);\n\t\t\tresult += fn(date, tokenLen, copy);\n\t\t} else {\n\t\t\tswitch (ch) {\n\t\t\t\tcase ':':\n\t\t\t\t\tresult += copy.$TIME_SEPARATOR;\n\t\t\t\t\tbreak;\n\t\t\t\tcase '/':\n\t\t\t\t\tresult += copy.$DATE_SEPARATOR;\n\t\t\t\t\tbreak;\n\t\t\t\tcase '\\'':\n\t\t\t\tcase '\"':\n\t\t\t\t\ttokenLen = parseQuoted(format, i); // Length including quotes\n\t\t\t\t\t// Add the string without quotes\n\t\t\t\t\tresult += format.substr(i + 1, tokenLen - 2);\n\t\t\t\t\tbreak;\n\t\t\t\tcase '\\\\':\n\t\t\t\t\ttokenLen = 2;\n\t\t\t\t\tif (i < l - 1) {\n\t\t\t\t\t\tresult += format[i + 1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// If \\ is the last character of the string, add it as a literal\n\t\t\t\t\t\tresult += '\\\\';\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tresult += ch;\n\t\t\t}\n\t\t}\n\t}\n\treturn result;\n};\n\n// Default that should be used if no copy is specified\nlet localeDefaults = {\n\t\"$AM\": \"am\",\n\t\"$PM\": \"pm\",\n\t\"$TIME_SEPARATOR\": \":\",\n\t\"$DATE_SEPARATOR\": \"/\",\n\t\"$DAYS_SHORT\": [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n\t\"$DAYS_FULL\": [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n\t\"$MONTHS_SHORT\": [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n\t\"$MONTHS_FULL\": [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n\t\"$ORD\": [\n\t\t//0     1     2     3     4     5     6     7     8     9\n\t\t\"th\", \"st\", \"nd\", \"rd\", \"th\", \"th\", \"th\", \"th\", \"th\", \"th\",\n\t\t//10   11    12    13    14    15    16    17    18    19\n\t\t\"th\", \"th\", \"th\", \"th\", \"th\", \"th\", \"th\", \"th\", \"th\", \"th\",\n\t\t//20   21    22    23    24    25    26    27    28    29\n\t\t\"th\", \"st\", \"nd\", \"rd\", \"th\", \"th\", \"th\", \"th\", \"th\", \"th\",\n\t\t//30   31\n\t\t\"th\", \"st\"\n\t]\n};\n\nlet transforms = [\n\tstr => str,\n\tstr => (str || '').toUpperCase(),\n\tstr => (str || '').toLowerCase()\n];\n// Specifiers implementations\nlet baseFunctions = {\n\th: (d, l) => pad((d.getHours() % 12) || 12, l),\n\tH: (d, l) => pad(d.getHours(), l),\n\tm: (d, l) => pad(d.getMinutes(), l),\n\ts: (d, l) => pad(d.getSeconds(), l),\n\tf: (d, l, copy, noZeroes) => {\n\t\tlet v = d.getMilliseconds();\n\t\tlet vl = l;\n\t\twhile (vl++ < 3) v = ~~(v / 10);\n\t\twhile (vl-- > 4) v *= 10;\n\t\tif (noZeroes && !v) return '';\n\t\treturn pad(v, l);\n\t},\n\tF: (d, l, copy) => baseFunctions.f(d, l, copy, true),\n\tt: (d, l, copy, isUppercase) => {\n\t\tlet designator = d.getHours() < 12 ? copy.$AM : copy.$PM;\n\t\tdesignator = isUppercase ? designator.toUpperCase() : designator.toLowerCase();\n\t\tif (l == 1) designator = designator.slice(0, 1);\n\t\treturn designator;\n\t},\n\tT: (d, l, copy) => baseFunctions.t(d, l, copy, true),\n\td: (d, l, copy) => {\n\t\tif (l <= 2) return pad(d.getDate(), l);\n\t\tl -= 3;\n\t\tlet mode = l % 2, trf = transforms[(l >> 1) % transforms.length];\n\t\treturn trf(copy[mode ? '$DAYS_FULL' : '$DAYS_SHORT'][d.getDay()]);\n\t},\n\to: (d, l, copy) => {\n\t\tlet day = d.getDate();\n\t\treturn pad(day, l) + copy.$ORD[day];\n\t},\n\tM: (d, l, copy) => {\n\t\tif (l <= 2) return pad(d.getMonth() + 1, l);\n\t\tl -= 3;\n\t\tlet mode = l % 2, trf = transforms[(l >> 1) % transforms.length];\n\t\treturn trf(copy[mode ? '$MONTHS_FULL' : '$MONTHS_SHORT'][d.getMonth()]);\n\t},\n\ty: (d, l) => {\n\t\tlet v = d.getFullYear();\n\t\tif (l <= 2) v %= 100;\n\t\treturn pad(v, l);\n\t},\n\tz: (d, l, copy) => {\n\t\tlet v = d.getTimezoneOffset();\n\t\tlet ret = v < 0 ? '-' : '+';\n\t\tv = Math.abs(v);\n\t\tlet hours = ~~(v / 60);\n\t\tret += pad(hours, l <= 2 ? l : 2);\n\t\t// Add minutes\n\t\tif (l > 2) ret += copy.$TIME_SEPARATOR + pad(v - 60 * hours, 2);\n\t\treturn ret;\n\t}\n};\n\n// Detect how many of the same character are in a row\nfunction parseRepeatPattern(format, pos, ch, l) {\n\tlet i = pos + 1;\n\tif (l == undefined) l = format.length;\n\tfor (; i < l && format[i] === ch; i++);\n\treturn i - pos;\n}\n// Detect a quoted string length (starting at a specified position)\nfunction parseQuoted(format, pos) {\n\tlet quote = format[pos];\n\tlet next = pos;\n\tdo {\n\t\tnext = format.indexOf(quote, next + 1);\n\t} while(next !== -1 && format[next - 1] === '\\\\');\n\tif (next === -1) next = format.length;\n\treturn next - pos + 1;\n}\n\n// Cast a positive int to string making sure it is at least the specified length\n// If the string representation of the number is less than desired, 0s are added in front of it\nfunction pad(n, l) {\n\tlet v = n + '', vl = v.length;\n\twhile (vl++ < l) v = '0' + v;\n\treturn v;\n}\n","function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nmodule.exports = _createClass;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n  module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _setPrototypeOf(o, p) {\n  module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var VNode = function VNode() {};\n\nvar options = {};\n\nvar stack = [];\n\nvar EMPTY_CHILDREN = [];\n\nfunction h(nodeName, attributes) {\n\tvar children = EMPTY_CHILDREN,\n\t    lastSimple,\n\t    child,\n\t    simple,\n\t    i;\n\tfor (i = arguments.length; i-- > 2;) {\n\t\tstack.push(arguments[i]);\n\t}\n\tif (attributes && attributes.children != null) {\n\t\tif (!stack.length) stack.push(attributes.children);\n\t\tdelete attributes.children;\n\t}\n\twhile (stack.length) {\n\t\tif ((child = stack.pop()) && child.pop !== undefined) {\n\t\t\tfor (i = child.length; i--;) {\n\t\t\t\tstack.push(child[i]);\n\t\t\t}\n\t\t} else {\n\t\t\tif (typeof child === 'boolean') child = null;\n\n\t\t\tif (simple = typeof nodeName !== 'function') {\n\t\t\t\tif (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;\n\t\t\t}\n\n\t\t\tif (simple && lastSimple) {\n\t\t\t\tchildren[children.length - 1] += child;\n\t\t\t} else if (children === EMPTY_CHILDREN) {\n\t\t\t\tchildren = [child];\n\t\t\t} else {\n\t\t\t\tchildren.push(child);\n\t\t\t}\n\n\t\t\tlastSimple = simple;\n\t\t}\n\t}\n\n\tvar p = new VNode();\n\tp.nodeName = nodeName;\n\tp.children = children;\n\tp.attributes = attributes == null ? undefined : attributes;\n\tp.key = attributes == null ? undefined : attributes.key;\n\n\tif (options.vnode !== undefined) options.vnode(p);\n\n\treturn p;\n}\n\nfunction extend(obj, props) {\n  for (var i in props) {\n    obj[i] = props[i];\n  }return obj;\n}\n\nfunction applyRef(ref, value) {\n  if (ref != null) {\n    if (typeof ref == 'function') ref(value);else ref.current = value;\n  }\n}\n\nvar defer = typeof Promise == 'function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\nfunction cloneElement(vnode, props) {\n  return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\nvar IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\nvar items = [];\n\nfunction enqueueRender(component) {\n\tif (!component._dirty && (component._dirty = true) && items.push(component) == 1) {\n\t\t(options.debounceRendering || defer)(rerender);\n\t}\n}\n\nfunction rerender() {\n\tvar p;\n\twhile (p = items.pop()) {\n\t\tif (p._dirty) renderComponent(p);\n\t}\n}\n\nfunction isSameNodeType(node, vnode, hydrating) {\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\treturn node.splitText !== undefined;\n\t}\n\tif (typeof vnode.nodeName === 'string') {\n\t\treturn !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n\t}\n\treturn hydrating || node._componentConstructor === vnode.nodeName;\n}\n\nfunction isNamedNode(node, nodeName) {\n\treturn node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\nfunction getNodeProps(vnode) {\n\tvar props = extend({}, vnode.attributes);\n\tprops.children = vnode.children;\n\n\tvar defaultProps = vnode.nodeName.defaultProps;\n\tif (defaultProps !== undefined) {\n\t\tfor (var i in defaultProps) {\n\t\t\tif (props[i] === undefined) {\n\t\t\t\tprops[i] = defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn props;\n}\n\nfunction createNode(nodeName, isSvg) {\n\tvar node = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {} else if (name === 'ref') {\n\t\tapplyRef(old, null);\n\t\tapplyRef(value, node);\n\t} else if (name === 'class' && !isSvg) {\n\t\tnode.className = value || '';\n\t} else if (name === 'style') {\n\t\tif (!value || typeof value === 'string' || typeof old === 'string') {\n\t\t\tnode.style.cssText = value || '';\n\t\t}\n\t\tif (value && typeof value === 'object') {\n\t\t\tif (typeof old !== 'string') {\n\t\t\t\tfor (var i in old) {\n\t\t\t\t\tif (!(i in value)) node.style[i] = '';\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i in value) {\n\t\t\t\tnode.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL.test(i) === false ? value[i] + 'px' : value[i];\n\t\t\t}\n\t\t}\n\t} else if (name === 'dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t} else if (name[0] == 'o' && name[1] == 'n') {\n\t\tvar useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tname = name.toLowerCase().substring(2);\n\t\tif (value) {\n\t\t\tif (!old) node.addEventListener(name, eventProxy, useCapture);\n\t\t} else {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t\t(node._listeners || (node._listeners = {}))[name] = value;\n\t} else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {\n\t\ttry {\n\t\t\tnode[name] = value == null ? '' : value;\n\t\t} catch (e) {}\n\t\tif ((value == null || value === false) && name != 'spellcheck') node.removeAttribute(name);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n\n\t\tif (value == null || value === false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n\t\t} else if (typeof value !== 'function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\nvar mounts = [];\n\nvar diffLevel = 0;\n\nvar isSvgMode = false;\n\nvar hydrating = false;\n\nfunction flushMounts() {\n\tvar c;\n\twhile (c = mounts.shift()) {\n\t\tif (options.afterMount) options.afterMount(c);\n\t\tif (c.componentDidMount) c.componentDidMount();\n\t}\n}\n\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n\tif (!diffLevel++) {\n\t\tisSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n\t\thydrating = dom != null && !('__preactattr_' in dom);\n\t}\n\n\tvar ret = idiff(dom, vnode, context, mountAll, componentRoot);\n\n\tif (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n\tif (! --diffLevel) {\n\t\thydrating = false;\n\n\t\tif (!componentRoot) flushMounts();\n\t}\n\n\treturn ret;\n}\n\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n\tvar out = dom,\n\t    prevSvgMode = isSvgMode;\n\n\tif (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\tif (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n\t\t\tif (dom.nodeValue != vnode) {\n\t\t\t\tdom.nodeValue = vnode;\n\t\t\t}\n\t\t} else {\n\t\t\tout = document.createTextNode(vnode);\n\t\t\tif (dom) {\n\t\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\t\t\t\trecollectNodeTree(dom, true);\n\t\t\t}\n\t\t}\n\n\t\tout['__preactattr_'] = true;\n\n\t\treturn out;\n\t}\n\n\tvar vnodeName = vnode.nodeName;\n\tif (typeof vnodeName === 'function') {\n\t\treturn buildComponentFromVNode(dom, vnode, context, mountAll);\n\t}\n\n\tisSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n\tvnodeName = String(vnodeName);\n\tif (!dom || !isNamedNode(dom, vnodeName)) {\n\t\tout = createNode(vnodeName, isSvgMode);\n\n\t\tif (dom) {\n\t\t\twhile (dom.firstChild) {\n\t\t\t\tout.appendChild(dom.firstChild);\n\t\t\t}\n\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n\t\t\trecollectNodeTree(dom, true);\n\t\t}\n\t}\n\n\tvar fc = out.firstChild,\n\t    props = out['__preactattr_'],\n\t    vchildren = vnode.children;\n\n\tif (props == null) {\n\t\tprops = out['__preactattr_'] = {};\n\t\tfor (var a = out.attributes, i = a.length; i--;) {\n\t\t\tprops[a[i].name] = a[i].value;\n\t\t}\n\t}\n\n\tif (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\n\t\tif (fc.nodeValue != vchildren[0]) {\n\t\t\tfc.nodeValue = vchildren[0];\n\t\t}\n\t} else if (vchildren && vchildren.length || fc != null) {\n\t\t\tinnerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n\t\t}\n\n\tdiffAttributes(out, vnode.attributes, props);\n\n\tisSvgMode = prevSvgMode;\n\n\treturn out;\n}\n\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n\tvar originalChildren = dom.childNodes,\n\t    children = [],\n\t    keyed = {},\n\t    keyedLen = 0,\n\t    min = 0,\n\t    len = originalChildren.length,\n\t    childrenLen = 0,\n\t    vlen = vchildren ? vchildren.length : 0,\n\t    j,\n\t    c,\n\t    f,\n\t    vchild,\n\t    child;\n\n\tif (len !== 0) {\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tvar _child = originalChildren[i],\n\t\t\t    props = _child['__preactattr_'],\n\t\t\t    key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n\t\t\tif (key != null) {\n\t\t\t\tkeyedLen++;\n\t\t\t\tkeyed[key] = _child;\n\t\t\t} else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n\t\t\t\tchildren[childrenLen++] = _child;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (vlen !== 0) {\n\t\tfor (var i = 0; i < vlen; i++) {\n\t\t\tvchild = vchildren[i];\n\t\t\tchild = null;\n\n\t\t\tvar key = vchild.key;\n\t\t\tif (key != null) {\n\t\t\t\tif (keyedLen && keyed[key] !== undefined) {\n\t\t\t\t\tchild = keyed[key];\n\t\t\t\t\tkeyed[key] = undefined;\n\t\t\t\t\tkeyedLen--;\n\t\t\t\t}\n\t\t\t} else if (min < childrenLen) {\n\t\t\t\t\tfor (j = min; j < childrenLen; j++) {\n\t\t\t\t\t\tif (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n\t\t\t\t\t\t\tchild = c;\n\t\t\t\t\t\t\tchildren[j] = undefined;\n\t\t\t\t\t\t\tif (j === childrenLen - 1) childrenLen--;\n\t\t\t\t\t\t\tif (j === min) min++;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\tchild = idiff(child, vchild, context, mountAll);\n\n\t\t\tf = originalChildren[i];\n\t\t\tif (child && child !== dom && child !== f) {\n\t\t\t\tif (f == null) {\n\t\t\t\t\tdom.appendChild(child);\n\t\t\t\t} else if (child === f.nextSibling) {\n\t\t\t\t\tremoveNode(f);\n\t\t\t\t} else {\n\t\t\t\t\tdom.insertBefore(child, f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (keyedLen) {\n\t\tfor (var i in keyed) {\n\t\t\tif (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n\t\t}\n\t}\n\n\twhile (min <= childrenLen) {\n\t\tif ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n\t}\n}\n\nfunction recollectNodeTree(node, unmountOnly) {\n\tvar component = node._component;\n\tif (component) {\n\t\tunmountComponent(component);\n\t} else {\n\t\tif (node['__preactattr_'] != null) applyRef(node['__preactattr_'].ref, null);\n\n\t\tif (unmountOnly === false || node['__preactattr_'] == null) {\n\t\t\tremoveNode(node);\n\t\t}\n\n\t\tremoveChildren(node);\n\t}\n}\n\nfunction removeChildren(node) {\n\tnode = node.lastChild;\n\twhile (node) {\n\t\tvar next = node.previousSibling;\n\t\trecollectNodeTree(node, true);\n\t\tnode = next;\n\t}\n}\n\nfunction diffAttributes(dom, attrs, old) {\n\tvar name;\n\n\tfor (name in old) {\n\t\tif (!(attrs && attrs[name] != null) && old[name] != null) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n\t\t}\n\t}\n\n\tfor (name in attrs) {\n\t\tif (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n\t\t}\n\t}\n}\n\nvar recyclerComponents = [];\n\nfunction createComponent(Ctor, props, context) {\n\tvar inst,\n\t    i = recyclerComponents.length;\n\n\tif (Ctor.prototype && Ctor.prototype.render) {\n\t\tinst = new Ctor(props, context);\n\t\tComponent.call(inst, props, context);\n\t} else {\n\t\tinst = new Component(props, context);\n\t\tinst.constructor = Ctor;\n\t\tinst.render = doRender;\n\t}\n\n\twhile (i--) {\n\t\tif (recyclerComponents[i].constructor === Ctor) {\n\t\t\tinst.nextBase = recyclerComponents[i].nextBase;\n\t\t\trecyclerComponents.splice(i, 1);\n\t\t\treturn inst;\n\t\t}\n\t}\n\n\treturn inst;\n}\n\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n\nfunction setComponentProps(component, props, renderMode, context, mountAll) {\n\tif (component._disable) return;\n\tcomponent._disable = true;\n\n\tcomponent.__ref = props.ref;\n\tcomponent.__key = props.key;\n\tdelete props.ref;\n\tdelete props.key;\n\n\tif (typeof component.constructor.getDerivedStateFromProps === 'undefined') {\n\t\tif (!component.base || mountAll) {\n\t\t\tif (component.componentWillMount) component.componentWillMount();\n\t\t} else if (component.componentWillReceiveProps) {\n\t\t\tcomponent.componentWillReceiveProps(props, context);\n\t\t}\n\t}\n\n\tif (context && context !== component.context) {\n\t\tif (!component.prevContext) component.prevContext = component.context;\n\t\tcomponent.context = context;\n\t}\n\n\tif (!component.prevProps) component.prevProps = component.props;\n\tcomponent.props = props;\n\n\tcomponent._disable = false;\n\n\tif (renderMode !== 0) {\n\t\tif (renderMode === 1 || options.syncComponentUpdates !== false || !component.base) {\n\t\t\trenderComponent(component, 1, mountAll);\n\t\t} else {\n\t\t\tenqueueRender(component);\n\t\t}\n\t}\n\n\tapplyRef(component.__ref, component);\n}\n\nfunction renderComponent(component, renderMode, mountAll, isChild) {\n\tif (component._disable) return;\n\n\tvar props = component.props,\n\t    state = component.state,\n\t    context = component.context,\n\t    previousProps = component.prevProps || props,\n\t    previousState = component.prevState || state,\n\t    previousContext = component.prevContext || context,\n\t    isUpdate = component.base,\n\t    nextBase = component.nextBase,\n\t    initialBase = isUpdate || nextBase,\n\t    initialChildComponent = component._component,\n\t    skip = false,\n\t    snapshot = previousContext,\n\t    rendered,\n\t    inst,\n\t    cbase;\n\n\tif (component.constructor.getDerivedStateFromProps) {\n\t\tstate = extend(extend({}, state), component.constructor.getDerivedStateFromProps(props, state));\n\t\tcomponent.state = state;\n\t}\n\n\tif (isUpdate) {\n\t\tcomponent.props = previousProps;\n\t\tcomponent.state = previousState;\n\t\tcomponent.context = previousContext;\n\t\tif (renderMode !== 2 && component.shouldComponentUpdate && component.shouldComponentUpdate(props, state, context) === false) {\n\t\t\tskip = true;\n\t\t} else if (component.componentWillUpdate) {\n\t\t\tcomponent.componentWillUpdate(props, state, context);\n\t\t}\n\t\tcomponent.props = props;\n\t\tcomponent.state = state;\n\t\tcomponent.context = context;\n\t}\n\n\tcomponent.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\tcomponent._dirty = false;\n\n\tif (!skip) {\n\t\trendered = component.render(props, state, context);\n\n\t\tif (component.getChildContext) {\n\t\t\tcontext = extend(extend({}, context), component.getChildContext());\n\t\t}\n\n\t\tif (isUpdate && component.getSnapshotBeforeUpdate) {\n\t\t\tsnapshot = component.getSnapshotBeforeUpdate(previousProps, previousState);\n\t\t}\n\n\t\tvar childComponent = rendered && rendered.nodeName,\n\t\t    toUnmount,\n\t\t    base;\n\n\t\tif (typeof childComponent === 'function') {\n\n\t\t\tvar childProps = getNodeProps(rendered);\n\t\t\tinst = initialChildComponent;\n\n\t\t\tif (inst && inst.constructor === childComponent && childProps.key == inst.__key) {\n\t\t\t\tsetComponentProps(inst, childProps, 1, context, false);\n\t\t\t} else {\n\t\t\t\ttoUnmount = inst;\n\n\t\t\t\tcomponent._component = inst = createComponent(childComponent, childProps, context);\n\t\t\t\tinst.nextBase = inst.nextBase || nextBase;\n\t\t\t\tinst._parentComponent = component;\n\t\t\t\tsetComponentProps(inst, childProps, 0, context, false);\n\t\t\t\trenderComponent(inst, 1, mountAll, true);\n\t\t\t}\n\n\t\t\tbase = inst.base;\n\t\t} else {\n\t\t\tcbase = initialBase;\n\n\t\t\ttoUnmount = initialChildComponent;\n\t\t\tif (toUnmount) {\n\t\t\t\tcbase = component._component = null;\n\t\t\t}\n\n\t\t\tif (initialBase || renderMode === 1) {\n\t\t\t\tif (cbase) cbase._component = null;\n\t\t\t\tbase = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n\t\t\t}\n\t\t}\n\n\t\tif (initialBase && base !== initialBase && inst !== initialChildComponent) {\n\t\t\tvar baseParent = initialBase.parentNode;\n\t\t\tif (baseParent && base !== baseParent) {\n\t\t\t\tbaseParent.replaceChild(base, initialBase);\n\n\t\t\t\tif (!toUnmount) {\n\t\t\t\t\tinitialBase._component = null;\n\t\t\t\t\trecollectNodeTree(initialBase, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (toUnmount) {\n\t\t\tunmountComponent(toUnmount);\n\t\t}\n\n\t\tcomponent.base = base;\n\t\tif (base && !isChild) {\n\t\t\tvar componentRef = component,\n\t\t\t    t = component;\n\t\t\twhile (t = t._parentComponent) {\n\t\t\t\t(componentRef = t).base = base;\n\t\t\t}\n\t\t\tbase._component = componentRef;\n\t\t\tbase._componentConstructor = componentRef.constructor;\n\t\t}\n\t}\n\n\tif (!isUpdate || mountAll) {\n\t\tmounts.push(component);\n\t} else if (!skip) {\n\n\t\tif (component.componentDidUpdate) {\n\t\t\tcomponent.componentDidUpdate(previousProps, previousState, snapshot);\n\t\t}\n\t\tif (options.afterUpdate) options.afterUpdate(component);\n\t}\n\n\twhile (component._renderCallbacks.length) {\n\t\tcomponent._renderCallbacks.pop().call(component);\n\t}if (!diffLevel && !isChild) flushMounts();\n}\n\nfunction buildComponentFromVNode(dom, vnode, context, mountAll) {\n\tvar c = dom && dom._component,\n\t    originalComponent = c,\n\t    oldDom = dom,\n\t    isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n\t    isOwner = isDirectOwner,\n\t    props = getNodeProps(vnode);\n\twhile (c && !isOwner && (c = c._parentComponent)) {\n\t\tisOwner = c.constructor === vnode.nodeName;\n\t}\n\n\tif (c && isOwner && (!mountAll || c._component)) {\n\t\tsetComponentProps(c, props, 3, context, mountAll);\n\t\tdom = c.base;\n\t} else {\n\t\tif (originalComponent && !isDirectOwner) {\n\t\t\tunmountComponent(originalComponent);\n\t\t\tdom = oldDom = null;\n\t\t}\n\n\t\tc = createComponent(vnode.nodeName, props, context);\n\t\tif (dom && !c.nextBase) {\n\t\t\tc.nextBase = dom;\n\n\t\t\toldDom = null;\n\t\t}\n\t\tsetComponentProps(c, props, 1, context, mountAll);\n\t\tdom = c.base;\n\n\t\tif (oldDom && dom !== oldDom) {\n\t\t\toldDom._component = null;\n\t\t\trecollectNodeTree(oldDom, false);\n\t\t}\n\t}\n\n\treturn dom;\n}\n\nfunction unmountComponent(component) {\n\tif (options.beforeUnmount) options.beforeUnmount(component);\n\n\tvar base = component.base;\n\n\tcomponent._disable = true;\n\n\tif (component.componentWillUnmount) component.componentWillUnmount();\n\n\tcomponent.base = null;\n\n\tvar inner = component._component;\n\tif (inner) {\n\t\tunmountComponent(inner);\n\t} else if (base) {\n\t\tif (base['__preactattr_'] != null) applyRef(base['__preactattr_'].ref, null);\n\n\t\tcomponent.nextBase = base;\n\n\t\tremoveNode(base);\n\t\trecyclerComponents.push(component);\n\n\t\tremoveChildren(base);\n\t}\n\n\tapplyRef(component.__ref, null);\n}\n\nfunction Component(props, context) {\n\tthis._dirty = true;\n\n\tthis.context = context;\n\n\tthis.props = props;\n\n\tthis.state = this.state || {};\n\n\tthis._renderCallbacks = [];\n}\n\nextend(Component.prototype, {\n\tsetState: function setState(state, callback) {\n\t\tif (!this.prevState) this.prevState = this.state;\n\t\tthis.state = extend(extend({}, this.state), typeof state === 'function' ? state(this.state, this.props) : state);\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t},\n\tforceUpdate: function forceUpdate(callback) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\trenderComponent(this, 2);\n\t},\n\trender: function render() {}\n});\n\nfunction render(vnode, parent, merge) {\n  return diff(merge, vnode, {}, false, parent, false);\n}\n\nfunction createRef() {\n\treturn {};\n}\n\nvar preact = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tcreateRef: createRef,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options\n};\n\nexport default preact;\nexport { h, h as createElement, cloneElement, createRef, Component, render, rerender, options };\n//# sourceMappingURL=preact.mjs.map\n","import { h } from 'preact';\n\n// Actual debouncing\nfunction debounce(f, d) {\n\tif (d == undefined) d = 250;\n\tlet timer = null, args = [], thisArg = null;\n\tfunction trigger() { f.apply(thisArg, args); }\n\tfunction onEvent() {\n\t\tthisArg = this;\n\t\targs = [].slice.call(arguments);\n\t\tclearTimeout(timer);\n\t\ttimer = setTimeout(trigger, d);\n\t}\n\treturn onEvent;\n}\n\n// Other throttling with custom timing\nfunction throttle(fn, threshold, scope) {\n\tif (threshold == undefined) threshold = 250;\n\tlet timeout = threshold === 'frame' ? requestAnimationFrame : setTimeout;\n\tlet clear = threshold === 'frame' ? cancelAnimationFrame : clearTimeout;\n\tlet last;\n\tlet deferTimer;\n\treturn function() {\n\t\tlet context = scope || this;\n\t\tlet now = Date.now();\n\t\tlet args = arguments;\n\t\tif (last && now < last + threshold) {\n\t\t\tclear(deferTimer);\n\t\t\tdeferTimer = timeout(() => {\n\t\t\t\tlast = Date.now();\n\t\t\t\tfn.apply(context, args);\n\t\t\t}, threshold);\n\t\t} else {\n\t\t\tlast = now;\n\t\t\tfn.apply(context, args);\n\t\t}\n\t};\n}\n\n// Make a function only callable once\n// Saves the return value and returns it for subsequent calls\nfunction once(f) {\n\tlet done = false;\n\tlet result;\n\treturn function () {\n\t\tif (done) return result;\n\t\tdone = true;\n\t\treturn result = f.apply(this, arguments);\n\t};\n}\n\n// DOM classNames handling\n\n// Long versions accepting arrays\n// function hasClass(elem, className) {\n// \tif (!elem || !className) return false;\n// \tlet arr = Array.isArray(className) ? className : className.split(' ');\n// \tif(arr.length > 1) return arr.every(cn=>hasClass(elem, cn));\n// \tclassName = arr[0];\n// \treturn (' ' + elem.className + ' ').indexOf(' ' + className + ' ') !== -1;\n// }\n// function addClass(elem, className) {\n// \tif (!elem || !className) return;\n// \tlet arr = Array.isArray(className) ? className : className.split(' ');\n// \tif(arr.length > 1) return arr.forEach(cn=>addClass(elem, cn));\n// \tclassName = arr[0];\n// \tif(!hasClass(elem, className))\n// \t\telem.className += ' ' + className;\n// }\n// function removeClass(elem, className) {\n// \tif (!elem || !className) return;\n// \tlet arr = Array.isArray(className) ? className : className.split(' ');\n// \tif(arr.length > 1) return arr.forEach(cn=>removeClass(elem, cn));\n// \tclassName = arr[0];\n// \tif(hasClass(elem, className))\n// \t\telem.className = (' ' + elem.className + ' ').replace(className, ' ').slice(1,-1);\n// }\n// function toggleClass(e,c) { (hasClass(e,c) ? removeClass : addClass)(e,c); }\n\n// Short versions\nfunction hasClass(e, c) { return (' ' + e.className + ' ').indexOf(' ' + c + ' ') !== -1; }\nfunction addClass(e, c) { if (!hasClass(e, c)) e.className += (e.className ? ' ' : '') + c; }\n// function removeClass(e, c) { e.className = e.className.split(' ').filter(v => v != c).join(' '); }\nfunction removeClass(e, c) { e.className = (' ' + e.className + ' ').replace(' ' + c + ' ', ' ').slice(1, -1); }\nfunction triggerAnim(e, c) { removeClass(e, c); e.offsetWidth; addClass(e, c); }\nfunction toggleClass(e, c) { (hasClass(e, c) ? removeClass : addClass)(e, c); }\n\n// Easy way to add a class based on a condition (also check the class exists)\nfunction condClass(cond, className) {\n\tif (arguments.length === 1) {\n\t\tclassName = cond;\n\t\tcond = true;\n\t}\n\tif (Array.isArray(className)) return className.map(cn => condClass(cond, cn)).join('');\n\treturn cond && className && typeof className === 'string' ? ' ' + className : '';\n}\n\n// Turns an object to a string\n// { abc: true, def: false, xyz: true } -> 'abc xyz'\n// Warning: \"s\" has a special value and be used as a lookup object (meant to be an imported sss)\n//   will use the class s.abc instead of 'abc' if s object specified and the value exists\n//   { s: { abc: 'comp__abc', def: 'comp__def' }, abc: true } -> 'comp__abc'\nfunction expandClasses(classes) {\n\tif (!classes || typeof classes !== 'object' || Array.isArray(classes)) {\n\t\treturn classes;\n\t}\n\tlet mapKey = 's';\n\tlet map = classes[mapKey];\n\tlet hasMap = map && typeof map === 'object';\n\tlet list = Object.keys(classes).filter(key => (!hasMap || key !== mapKey) && classes[key]);\n\tif (map) {\n\t\tlist = list.map(e => map[e] || e);\n\t}\n\treturn list.join(' ');\n}\n/**\n * Join several classes together.\n * @example\n * joinClasses('square', 'blue', false && 'active');\n * // returns 'square blue'\n * @param {...string} classNames - the class names to join\n * @return {string} the full class name\n**/\nfunction joinClasses() {\n\treturn [].concat.apply([], arguments).map(expandClasses).filter(e => e).join(' ');\n}\n\n// Access to a property of a nested object, or return a default value if the path cannot be accessed\n// For example, if obj is { nested: { property : [ 'hello' ] } }\n// to get 'hello', path would need to be 'nested.property.0' or ['nested', 'property', 0]\n// if we use 'non.existing.path' as a path, it would return def\nfunction accessNested(obj, path, def) {\n\tif (typeof path === 'string') path = path.split('.');\n\tif (!Array.isArray(path)) return def; // Path is not an array\n\tlet len = path.length;\n\tif (!len) return obj;\n\tfor (let i = 0; i < len; i++) {\n\t\tlet prop = path[i];\n\t\tif (!obj || !Object.prototype.hasOwnProperty.call(obj, prop)) {\n\t\t\treturn def;\n\t\t}\n\t\tobj = obj[prop];\n\t}\n\treturn obj;\n}\n// mini version with less checks for console one-liners:\n// var n=(o,p,k)=>(o&&(p=p.split?p.split('.'):p).length)?n(o[p.shift()],p):o;\n\n// Used for example with appData.pages.showtimes.data.stuff, when you can specify either one or a list of values\n// - if an array, returns it\n// - if a string (e.g. 'hello'), returns it as the only element: ['hello']\n// - if an object (e.g. { 1: 'abc', 2: 'def' }) returns the values: ['abc', 'def']\n// - if an object of booleans (e.g. { abc: true, def: true, ghi: false }) returns the keys for true values ['abc', 'def']\n// Also removes falsy values\nfunction asList(value) {\n\tif (!value) return [];\n\tif (typeof value !== 'object') return [value];\n\tif (!Array.isArray(value)) value = Object.keys(value).map(k => typeof value[k] === 'boolean' ? value[k] && k : value[k]);\n\treturn value.filter(e => e);\n}\n\n/* ---- ARRAY STUFF ---- */\n\n// Returns an array with only unique values (remove duplicates)\nfunction arrayUnique(array) {\n\tif (!array || !Array.isArray(array)) return array;\n\t// Move to sets when widely available : return [...new Set(array)];\n\t// the following can be slow for large arrays\n\treturn array.reduce((result, elem) => {\n\t\tif (result.indexOf(elem) === -1) result.push(elem);\n\t\treturn result;\n\t}, []);\n}\n\n// Returns the union of a set of arrays ([1,2,3], [2,3,4] => [1,2,3,4])\nfunction arrayUnion(/* array1, array2, ... */) {\n\treturn arrayUnique([].concat.apply([], arguments));\n}\n\n/* ---- ----------- ---- */\n\n// Return a date based on a field set in thundr\n// If a number, consider it a timestamp\n// If a string yyyy-MM-dd, get the beginning of this day in local time (usually release dates for example are local)\n// If something else tries new Date(val)\nfunction appDataDate(val) {\n\tif (!isNaN(val)) {\n\t\treturn new Date(+val);\n\t}\n\tif (typeof val === 'string') {\n\t\tlet m = val.match(/^(\\d{4})-(\\d{1,2})-(\\d{1,2})$/);\n\t\treturn m ? new Date(+m[1], m[2] - 1, +m[3]) : new Date(val);\n\t}\n\treturn new Date(NaN);\n}\n\nfunction sortObjectByOrder(object, mapCallback, property) {\n\tif (!object) {\n\t\treturn [];\n\t}\n\tproperty = property || 'order';\n\tlet getProperty = typeof property === 'function' ? property : obj => obj && obj[property];\n\n\tlet objectByOrder = Object.keys(object).map(k => ({ key: k, value: object[k] })).sort((obj1, obj2) => {\n\t\tif (!obj1.value) return 1;\n\t\tif (!obj2.value) return -1;\n\n\t\tlet prop1 = getProperty(obj1.value, obj1.key);\n\t\tlet prop2 = getProperty(obj2.value, obj2.key);\n\t\t// Keep it ==, not === to also get nulls\n\t\tlet noProp1 = prop1 == undefined;\n\t\tlet noProp2 = prop2 == undefined;\n\t\t// If both don't have an order set, sort them by keys (so that it works with 1, 2, etc.)\n\t\tif (noProp1 && noProp2) return obj1.key.localeCompare(obj2.key, undefined, { numeric: true });\n\t\tif (noProp1) return 1;\n\t\tif (noProp2) return -1;\n\n\t\tlet stringCompare = isNaN(prop1) || isNaN(prop2);\n\t\t// sort them by order\n\t\treturn stringCompare ? prop1.toString().localeCompare(prop2.toString()) : prop1 - prop2;\n\t});\n\n\tif (typeof mapCallback !== 'function') {\n\t\tmapCallback = value => value;\n\t}\n\treturn objectByOrder.map(el => mapCallback(el.value, el.key));\n}\n\nfunction addToQuery(q, path, o) {\n\tif (o == null) {\n\t\treturn q;\n\t}\n\tif (typeof o !== 'object') {\n\t\treturn q[path] = o;\n\t}\n\tconst ks = Object.keys(o);\n\tks.forEach(k => addToQuery(q, path + '[' + k + ']', o[k]));\n\treturn q;\n}\nfunction toQueryString(obj) {\n\tif (!obj) return '';\n\tlet value = obj;\n\tif (typeof obj !== 'string') {\n\t\tlet query = {};\n\t\tObject.keys(obj).forEach(key => addToQuery(query, key, obj[key]));\n\t\tvalue = Object.keys(query).reduce((a, k) => {\n\t\t\tlet v = query[k];\n\t\t\tif (v == null) return a;\n\t\t\tlet addedVal = encodeURIComponent(k);\n\t\t\tif (typeof v !== 'boolean' && v !== '') {\n\t\t\t\taddedVal += '=' + encodeURIComponent(v);\n\t\t\t}\n\t\t\ta.push(addedVal);\n\t\t\treturn a;\n\t\t}, []).join('&');\n\t}\n\treturn value ? '?' + value : '';\n}\n\n// Parse dates in a few formats (e.g. dd/mm/yyyy ; yyyy-mm-dd)\nfunction parseDate(d) {\n\tif (!d || d instanceof Date) return d;\n\tif (typeof d === 'number') return new Date(d);\n\tif (typeof d !== 'string') return undefined;\n\tlet match = d.match(/^(?:(?:([0-9]{1,2})\\/)?([0-9]{1,2})\\/)?([0-9]{4})$/);\n\tif (match) return new Date(+match[3], +(match[2] || 1) - 1, +(match[1] || 1));\n\t// Handled be new Date(string) but depends on timezone so we need to handle that \"manually\" as well\n\t// Because it gives an UTC date and we want to be able to use getDate() instead of getUTCDate()\n\tmatch = d.match(/^(\\d{1,4})-(\\d{1,2})(?:-(\\d{1,2})(T\\d{1,2}:\\d{1,2}:\\d{1,2}(\\.\\d+)?Z?)?)?$/);\n\tif (match) return new Date(+match[1], +match[2] - 1, +(match[3] || 1));\n\tif (!Number.isNaN(+d)) return new Date(+d);\n\tconst date = new Date(d);\n\treturn isNaN(date) ? undefined : date;\n}\n\n/**\n * Join several parts of a path together.\n *\n * @example\n * // returns 'http://myserver.com/images/title.jpg'\n * joinPaths('http://myserver.com', 'images', '/title.jpg');\n * @param {...string} parts - the path parts to join\n * @return {string} the final path containing all the parts\n */\nfunction joinPaths() {\n\tlet path = '';\n\tlet slash = false; // whether slash is needed before\n\tfor (let i = 0, il = arguments.length; i < il; i++) {\n\t\tlet part = arguments[i];\n\t\tif (!part) continue;\n\t\t// ^ ensure empty string is not counted as a path part\n\t\tif (i > 0 && part.charAt(0) === '/') {\n\t\t\tpart = part.substring(1);\n\t\t}\n\t\tpath += slash ? '/' + part : part;\n\t\tslash = path.charAt(path.length - 1) !== '/';\n\t}\n\treturn path;\n}\n\n/**\n * Return whether the given object has only numeric key strings.\n * Can be used to detect if an object is in reality an array.\n *\n * @example\n * hasOnlyNumericKeys({\"0\": \"foo\", \"1\": \"bar\", \"3\": \"baz\"}); // true\n * hasOnlyNumericKeys({\"0\": \"foo\", \"sam\": \"bar\"}); // false\n * hasOnlyNumericKeys({\"0\": \"foo\", \"Infinity\": \"bar\"}); // false\n * @param {Object} obj - the input object\n * @return {boolean} true if obj is an array with string keys, false otherwise\n */\nfunction hasOnlyNumericKeys(obj) {\n\tfor (const key in obj) {\n\t\tif (!isFinite(+key)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n/**\n * Convert an object to an array. (stricter version of asList)\n * Non-numeric/Infinite keys will be removed in the array representation of the\n * object.\n *\n * @param {Object} obj - the input object\n * @return {Array} an array equivalent to obj\n */\nfunction objToArr(obj) {\n\tconst arr = [];\n\tfor (const key in obj) {\n\t\tconst idx = +key;\n\t\tif (isFinite(idx)) {\n\t\t\tarr[idx] = obj[key];\n\t\t}\n\t}\n\treturn arr;\n}\n\n/**\n * Sanitize recursively an object created in Thundr.\n * Note that numeric value will be casted to Number unless a '@s' is explicitely\n * specified at the end of the key.\n *\n * @example\n * sanitizeObj({\"power\": \"45\", \"range\": {\"0\": \"-5.6\", \"1\": \"5.2\"}, \"id@s\": \"124\"})\n * // return {\"power\": 45, \"range\": [-5.6, 5.2], \"id\": \"124\"}\n * @param {Object} obj - the input object\n * @param {Object|Array} the sanitized object or array\n */\nfunction sanitizeObj(obj) {\n\tconst out = {};\n\tfor (let key in obj) {\n\t\tlet val = obj[key];\n\t\tif (val != null && typeof val === 'object') {\n\t\t\tval = sanitizeObj(val);\n\t\t} else if (key.endsWith('@s')) {\n\t\t\tkey = key.substring(0, key.length - 2);\n\t\t} else {\n\t\t\tval = isFinite(+val) ? +val : val;\n\t\t}\n\t\tout[key] = val;\n\t}\n\tif (hasOnlyNumericKeys(out)) {\n\t\treturn objToArr(out);\n\t}\n\treturn out;\n}\n\n/**\n * Convert a multiline text to an array of JSX elements.\n *\n * @param {string} text - string with 0 or more \\n\n * @return {Array.<string|JSX>} an array of JSX elements\n */\nconst textToJsxArray = (() => {\n\tfunction reduceTextJsx(jsxArray, line, i) {\n\t\tif (i > 0) {\n\t\t\tjsxArray.push(<br />);\n\t\t}\n\t\tjsxArray.push(line);\n\t\treturn jsxArray;\n\t}\n\n\treturn (text) => {\n\t\tlet lines = text;\n\t\tif (typeof lines === 'string') lines = text.split('\\n');\n\t\tconst jsxArray = lines.reduce(reduceTextJsx, []);\n\t\treturn jsxArray;\n\t};\n})();\n\n/**\n * Return the part part of a URI.\n *\n * @example\n * pathOnly('this/is/a/folder/file.txt');\n * // ^ returns 'this/is/a/folder/'\n *\n * @param {string} path - the full URI of a resource\n * @return {string} only the path part of the resource\n */\nfunction pathOnly(path) {\n\tlet rpath = decodeURIComponent(path);\n\tconst index = rpath.lastIndexOf('/');\n\tif (index === -1 || index === rpath.length - 1) return rpath;\n\tlet res = rpath.substr(index + 1);\n\tconst qsIndex = res.indexOf('?');\n\tif (qsIndex > -1) {\n\t\tres = res.substring(0, qsIndex);\n\t\trpath = rpath.substring(0, index + 1 + qsIndex);\n\t}\n\tif (res.length === 0) return rpath;\n\tconst pointIndex = res.lastIndexOf('.');\n\tif (pointIndex === -1 || pointIndex === res.length - 1) return rpath + '/';\n\treturn rpath.substring(0, index + 1);\n}\n\n/**\n * Return whether a variable is a JS (key, value) object.\n *\n * @param {*} obj - the object to test\n * @return {!boolean} true if obj is an object, false otherwise\n */\nfunction isObject(obj) {\n\treturn obj !== null && typeof obj === 'object' && !Array.isArray(obj);\n}\n\n/**\n * Return whether a variable is a valid numberic value (string number are allowed).\n *\n * @param {*} obj - the object to test\n * @return {!boolean} true if val is numeric, false otherwise\n */\nfunction isNumeric(val) {\n\treturn !isNaN(parseFloat(val)) && isFinite(val);\n}\n\n/**\n * Parse an string array of numeric numbers.\n *\n * @example\n * parseNumericArray('5, 2, 1.2, 7'); // returns [5, 2, 1.2, 7]\n *\n * @param {string} arrayStr - the string array\n * @return {Array.<number>|null} the array of numeric value, or null in case the parsing failed\n */\nfunction parseNumericArray(arrayStr) {\n\tif (typeof arrayStr !== 'string') return null;\n\tconst parts = arrayStr.split(/[|/,;]/);\n\t// use ES5 loop to early out in case of non-numeric value\n\tconst il = parts.length;\n\tfor (let i = 0; i < il; i++) {\n\t\tconst val = parseFloat(parts[i].trim());\n\t\tif (!isFinite(val)) return null;\n\t\tparts[i] = val;\n\t}\n\treturn parts;\n}\n\n/**\n * Quick helper to choose whether a node should be displayed.\n *\n * @example\n * <div style={displayWhen(isLoading)} />\n *\n * @param {boolean} cond - the condition to display the node\n * @return {{display: string}} the element display style\n */\nconst displayWhen = (cond) => ({ display: cond ? 'block' : 'none' });\n\n/**\n * Return whether the given number is an integer or almost.\n *\n * @example\n * isIntegerOrAlmost(9.5); // false\n * isIntegerOrAlmost(10.00000223); // true\n * isIntegerOrAlmost(-10); // true\n *\n * @param {!number} n - the integer to test\n * @return {!boolean}\n */\nconst isIntegerOrAlmost = n => Math.abs(n - Math.round(n)) < 1e-6;\n\n/**\n * Return the formatted price\n * Note that we might have to change that later for different currencies.\n *\n * @example\n * formatNumber(12.000003); // returns \"12\"\n * formatNumber(12.100003); // returns \"12.1\"\n *\n * @param {!number} price - the price amount to convert\n * @return {!string} the formatted price\n */\nconst formatPrice = price => price.toFixed(isIntegerOrAlmost(price) ? 0 : 2);\n\n/**\n * Return the uri of an image if it exists in appData -> styling -> images || returns the default image path\n *\n * @param {*} obj - appData\n * @param {!string} imgName - name of image we are trying to find\n * @param {!string} defaultImg - value returned if the imgName doesn't exist\n * @return {!string} path of the onesheet stored in appData or default value\n */\nfunction getStylingImagePath(appData, imgName, defaultImg) {\n\treturn accessNested(appData, ['styling', 'images', imgName]) || defaultImg;\n}\n\n/**\n * Transforms HTML tags in HTML entities for safe rendering.\n *\n * @example\n * encodeHtml('<script>'); // returns \"&lt;script&gt;\"\n * encodeHtml('%3Cscript%3E'); // returns \"%lt;script%gt;\"\n *\n * @param {!string} str - the string to encode\n * @return {!string} the string with HTML tags replaced with HTML entities\n */\nconst encodeHtml = (str) => {\n\treturn (str.toString())\n\t\t.replace(/</g, '&lt;')\n\t\t.replace(/>/g, '&gt;')\n\t\t.replace(/%3C/g, '&lt;')\n\t\t.replace(/%3E/g, '&gt;');\n};\n\n/**\n * Transforms HTML tags in HTML entities recursively in any object.\n *\n * @param {*} obj - the input object\n * @return {*} the same object with all string encoded with HTML entities\n */\nconst encodeHtmlRecursively = (obj) => {\n\tif (typeof obj === 'string') return encodeHtml(obj);\n\tif (Array.isArray(obj)) return obj.map(e => encodeHtmlRecursively(e));\n\tif (isObject(obj)) {\n\t\tfor (const key in obj) obj[key] = encodeHtmlRecursively(obj[key]);\n\t}\n\treturn obj;\n};\n\n\nexport { debounce, throttle, once };\nexport { accessNested };\nexport { hasClass, addClass, removeClass, triggerAnim, toggleClass, condClass, joinClasses };\nexport { asList };\nexport { arrayUnique, arrayUnion };\nexport { appDataDate };\nexport { sortObjectByOrder };\nexport { addToQuery, toQueryString };\nexport { parseDate };\nexport { joinPaths };\nexport { hasOnlyNumericKeys, objToArr, sanitizeObj };\nexport { textToJsxArray };\nexport { pathOnly };\nexport { isObject, isNumeric };\nexport { parseNumericArray };\nexport { displayWhen };\nexport { isIntegerOrAlmost };\nexport { formatPrice };\nexport { getStylingImagePath };\nexport { encodeHtml, encodeHtmlRecursively };\n","import { h } from 'preact';\n// import { getPageTitle } from 'utils/clientUtils';\nimport { accessNested, parseDate } from 'utils/utils';\nimport formatDateTime from 'utils/formatDateTime';\n\n// Copy of clientUtils function to avoid importing unecessary dependencies\nfunction _getCopyWithParams(copy, attribute, _n) {\n\tif (++_n > 10) return attribute;\n\tconst content = accessNested(copy, attribute, attribute) + '';\n\treturn content.replace(/(\\\\)?%([^% ]+)%/g, (m, s, g) => s ? '%' + g + '%' : _getCopyWithParams(copy, g, _n));\n}\nfunction getCopyWithParams(copy, attribute) { return _getCopyWithParams(copy, attribute, 0); }\n\nfunction getPageTitle(activePage, appData) {\n\tappData = appData || Store.get().appData;\n\tconst copy = appData.copy;\n\n\tconst activePageName = copy[activePage.$copy] || '';\n\tconst release = parseDate(accessNested(appData, 'meta.dates.release', 0));\n\tconst params = Object.assign({\n\t\tPAGE_NAME: activePageName,\n\t\tRELEASE_DATE: formatDateTime(release, copy.$DATE_FORMAT || 'MMMM d, yyyy', copy.$DATETIME_LOCALE)\n\t}, copy);\n\n\tconst altTitle = '$' + (activePage.id || '').toUpperCase() + '_ALT_TITLE';\n\tconst pageTitle = copy[altTitle] || copy.$DYNAMIC_TITLE;\n\treturn getCopyWithParams(params, pageTitle);\n}\n\nexport default function Error404(props) {\n\n\tconst {\n\t\tchildren     = [],\n\t\tinitialState = {},\n\t\trelativeRoot = '/',\n\t\treload,\n\t\ttype\n\t} = props;\n\n\tconst {\n\t\tappData,\n\t\tactivePage\n\t} = initialState;\n\n\tconst buildDate           = Date.now();\n\tconst initialStateGlobals = renderGlobalsScript(initialState, type, buildDate);\n\tconst pageTitle           = getPageTitle(activePage, appData);\n\n\treturn (\n\t\t<html lang=\"en\">\n\t\t\t<head>\n\t\t\t\t<title>{pageTitle}</title>\n\t\t\t\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n\t\t\t\t<meta charset=\"UTF-8\" />\n\t\t\t\t<meta name=\"author\" content=\"POWSTER showtimes@powster.com\" />\n\t\t\t\t<meta name=\"copyright\" content={new Date().getFullYear()} />\n\t\t\t\t<meta name=\"viewport\" content=\"minimal-ui, initial-scale=1\" />\n\t\t\t\t<meta name=\"robots\" content=\"noindex\" />\n\t\t\t\t<link rel=\"shortcut icon\" type=\"image/png\" href={`${appData.urls.roots.image}/favico.png`} />\n\t\t\t\t<link rel=\"stylesheet\" type=\"text/css\" href={`${relativeRoot}css/error404.css?v=${buildDate}`} />\n\t\t\t</head>\n\t\t\t<body>\n\t\t\t\t<div id=\"app\">\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t\t{reload}\n\t\t\t\t{initialStateGlobals}\n\t\t\t\t<script src={`${relativeRoot}js/error404.js?v=${buildDate}`} charset=\"utf-8\" />\n\t\t\t</body>\n\t\t</html>\n\t);\n\n}\n\nfunction renderGlobalsScript(initialState, type, buildDate) {\n\tlet reducedInitialState = {\n\t\terrorMessage: accessNested(initialState, 'appData.copy.$404_COPY'),\n\t\tdestination: accessNested(initialState, 'appData.meta.url')\n\t};\n\tconst cleanInitialState = JSON.stringify(reducedInitialState).replace(/[\\u2028\\u2029]/g, '');\n\tconst initialData       = [\n\t\t`window.__INITIAL_STATE__ = ${cleanInitialState};`,\n\t\t`window.__BUILD_DATE__ = ${buildDate};`\n\t].join('\\n');\n\n\treturn (\n\t\t<script dangerouslySetInnerHTML={{ __html: initialData }} />\n\t);\n}\n","import { h, Component } from 'preact';\nimport s from 'base/error404/error404App.sss';\n\nexport default class Error404App extends Component {\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.startTimer     = this.startTimer.bind(this);\n\t\tthis.stopTimer\t    = this.stopTimer.bind(this);\n\t\tthis.updateTime\t    = this.updateTime.bind(this);\n\t\tthis.redirect\t    = this.redirect.bind(this);\n\n\t\tthis.state = {\n\t\t\tappState: props.initialStore,\n\t\t\tcount: 3\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.startTimer();\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.stopTimer();\n\t}\n\n\tcomponentDidUpdate(prevProps, prevState) {\n\t\tif (prevState.count !== this.state.count && this.state.count === 0) {\n\t\t\tthis.redirect();\n\t\t}\n\t}\n\n\t// UTILS\n\tgetFinalUrl() {\n\t\tlet destination = this.state.appState.destination;\n\t\tif (destination && !/(\\/\\/.+)(\\/.+\\..+|\\/)$/.test(destination)) {\n\t\t\tdestination += '/';\n\t\t}\n\t\treturn destination ? destination + location.search : null;\n\t}\n\n\tstartTimer() {\n\t\tthis.timer = setInterval(this.updateTime, 1000);\n\t}\n\tstopTimer() {\n\t\tclearInterval(this.timer);\n\t\tthis.timer = null;\n\t}\n\n\tupdateTime() {\n\t\tthis.setState({ count: Math.max(this.state.count - 1, 0) });\n\t}\n\n\tredirect() {\n\t\tthis.stopTimer();\n\t\tlet destination = this.getFinalUrl();\n\t\tif (destination) {\n\t\t\tlocation.href = destination;\n\t\t}\n\t}\n\n\t// RENDER METHODS\n\trender() {\n\t\tlet errorText = this.state.appState.errorMessage;\n\t\tlet mainText = this.state.count;\n\t\tif (mainText === 0) {\n\t\t\tlet destination = this.getFinalUrl();\n\t\t\tmainText = <a href={destination}>Click here if nothing happens</a>;\n\t\t}\n\n\t\treturn (\n\t\t\t<div class={s.container}>\n\t\t\t\t<div class={s.info}>{errorText}</div>\n\t\t\t\t<div class={s.mainText}>{mainText}</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n}\n","import { h, render } from 'preact';\n// import { buildClientStoreData } from 'utils/clientUtils';\n\n// import 'utils/historyPushEvent'; // Add events for when you do history.push\n// import 'store/update';\nimport 'base-styles/reset.sss';\n// import 'base-styles/global.sss';\n\nimport Error404Doc from './error404Doc.js';\nimport Error404App from './error404App.js';\n\n// Client render\nif (typeof document !== 'undefined') {\n\n\t/* Setting up the store\n\t-----------------------------*/\n\tconst {\n\t\t__INITIAL_STATE__\n\t} = window;\n\n\tconst initialStore = __INITIAL_STATE__;\n\n\t/* Initial render of the app\n\t----------------------------------*/\n\trender(\n\t\t<Error404App initialStore={initialStore} />,\n\t\tdocument.body, document.getElementById('app')\n\t);\n\n}\n\nexport {\n\tError404App as App,\n\tError404Doc as Doc\n};\n"],"sourceRoot":""}