{"version":3,"file":"shared.min.js","mappings":"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","sources":["webpack://configuracao/webpack/runtime/chunk loaded","webpack://configuracao/webpack/runtime/create fake namespace object","webpack://configuracao/webpack/runtime/load script","webpack://configuracao/./node_modules/@splidejs/splide/dist/js/splide.esm.js","webpack://configuracao/./node_modules/notiflix/build/notiflix-notify-aio.js","webpack://configuracao/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://configuracao/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://configuracao/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://configuracao/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://configuracao/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://configuracao/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://configuracao/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://configuracao/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://configuracao/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://configuracao/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://configuracao/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://configuracao/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://configuracao/./node_modules/i18next/dist/esm/i18next.js","webpack://configuracao/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://configuracao/./node_modules/@babel/runtime/helpers/esm/toArray.js","webpack://configuracao/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://configuracao/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://configuracao/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://configuracao/webpack/bootstrap","webpack://configuracao/webpack/runtime/compat get default export","webpack://configuracao/webpack/runtime/define property getters","webpack://configuracao/webpack/runtime/ensure chunk","webpack://configuracao/webpack/runtime/get javascript chunk filename","webpack://configuracao/webpack/runtime/get mini-css chunk filename","webpack://configuracao/webpack/runtime/global","webpack://configuracao/webpack/runtime/hasOwnProperty shorthand","webpack://configuracao/webpack/runtime/make namespace object","webpack://configuracao/webpack/runtime/publicPath","webpack://configuracao/webpack/runtime/jsonp chunk loading","webpack://configuracao/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"configuracao:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/*!\n * Splide.js\n * Version  : 4.1.4\n * License  : MIT\n * Copyright: 2022 Naotoshi Fujita\n */\nvar MEDIA_PREFERS_REDUCED_MOTION = \"(prefers-reduced-motion: reduce)\";\nvar CREATED = 1;\nvar MOUNTED = 2;\nvar IDLE = 3;\nvar MOVING = 4;\nvar SCROLLING = 5;\nvar DRAGGING = 6;\nvar DESTROYED = 7;\nvar STATES = {\n  CREATED: CREATED,\n  MOUNTED: MOUNTED,\n  IDLE: IDLE,\n  MOVING: MOVING,\n  SCROLLING: SCROLLING,\n  DRAGGING: DRAGGING,\n  DESTROYED: DESTROYED\n};\n\nfunction empty(array) {\n  array.length = 0;\n}\n\nfunction slice(arrayLike, start, end) {\n  return Array.prototype.slice.call(arrayLike, start, end);\n}\n\nfunction apply(func) {\n  return func.bind.apply(func, [null].concat(slice(arguments, 1)));\n}\n\nvar nextTick = setTimeout;\n\nvar noop = function noop() {};\n\nfunction raf(func) {\n  return requestAnimationFrame(func);\n}\n\nfunction typeOf(type, subject) {\n  return typeof subject === type;\n}\n\nfunction isObject(subject) {\n  return !isNull(subject) && typeOf(\"object\", subject);\n}\n\nvar isArray = Array.isArray;\nvar isFunction = apply(typeOf, \"function\");\nvar isString = apply(typeOf, \"string\");\nvar isUndefined = apply(typeOf, \"undefined\");\n\nfunction isNull(subject) {\n  return subject === null;\n}\n\nfunction isHTMLElement(subject) {\n  try {\n    return subject instanceof (subject.ownerDocument.defaultView || window).HTMLElement;\n  } catch (e) {\n    return false;\n  }\n}\n\nfunction toArray(value) {\n  return isArray(value) ? value : [value];\n}\n\nfunction forEach(values, iteratee) {\n  toArray(values).forEach(iteratee);\n}\n\nfunction includes(array, value) {\n  return array.indexOf(value) > -1;\n}\n\nfunction push(array, items) {\n  array.push.apply(array, toArray(items));\n  return array;\n}\n\nfunction toggleClass(elm, classes, add) {\n  if (elm) {\n    forEach(classes, function (name) {\n      if (name) {\n        elm.classList[add ? \"add\" : \"remove\"](name);\n      }\n    });\n  }\n}\n\nfunction addClass(elm, classes) {\n  toggleClass(elm, isString(classes) ? classes.split(\" \") : classes, true);\n}\n\nfunction append(parent, children) {\n  forEach(children, parent.appendChild.bind(parent));\n}\n\nfunction before(nodes, ref) {\n  forEach(nodes, function (node) {\n    var parent = (ref || node).parentNode;\n\n    if (parent) {\n      parent.insertBefore(node, ref);\n    }\n  });\n}\n\nfunction matches(elm, selector) {\n  return isHTMLElement(elm) && (elm[\"msMatchesSelector\"] || elm.matches).call(elm, selector);\n}\n\nfunction children(parent, selector) {\n  var children2 = parent ? slice(parent.children) : [];\n  return selector ? children2.filter(function (child) {\n    return matches(child, selector);\n  }) : children2;\n}\n\nfunction child(parent, selector) {\n  return selector ? children(parent, selector)[0] : parent.firstElementChild;\n}\n\nvar ownKeys = Object.keys;\n\nfunction forOwn(object, iteratee, right) {\n  if (object) {\n    (right ? ownKeys(object).reverse() : ownKeys(object)).forEach(function (key) {\n      key !== \"__proto__\" && iteratee(object[key], key);\n    });\n  }\n\n  return object;\n}\n\nfunction assign(object) {\n  slice(arguments, 1).forEach(function (source) {\n    forOwn(source, function (value, key) {\n      object[key] = source[key];\n    });\n  });\n  return object;\n}\n\nfunction merge(object) {\n  slice(arguments, 1).forEach(function (source) {\n    forOwn(source, function (value, key) {\n      if (isArray(value)) {\n        object[key] = value.slice();\n      } else if (isObject(value)) {\n        object[key] = merge({}, isObject(object[key]) ? object[key] : {}, value);\n      } else {\n        object[key] = value;\n      }\n    });\n  });\n  return object;\n}\n\nfunction omit(object, keys) {\n  forEach(keys || ownKeys(object), function (key) {\n    delete object[key];\n  });\n}\n\nfunction removeAttribute(elms, attrs) {\n  forEach(elms, function (elm) {\n    forEach(attrs, function (attr) {\n      elm && elm.removeAttribute(attr);\n    });\n  });\n}\n\nfunction setAttribute(elms, attrs, value) {\n  if (isObject(attrs)) {\n    forOwn(attrs, function (value2, name) {\n      setAttribute(elms, name, value2);\n    });\n  } else {\n    forEach(elms, function (elm) {\n      isNull(value) || value === \"\" ? removeAttribute(elm, attrs) : elm.setAttribute(attrs, String(value));\n    });\n  }\n}\n\nfunction create(tag, attrs, parent) {\n  var elm = document.createElement(tag);\n\n  if (attrs) {\n    isString(attrs) ? addClass(elm, attrs) : setAttribute(elm, attrs);\n  }\n\n  parent && append(parent, elm);\n  return elm;\n}\n\nfunction style(elm, prop, value) {\n  if (isUndefined(value)) {\n    return getComputedStyle(elm)[prop];\n  }\n\n  if (!isNull(value)) {\n    elm.style[prop] = \"\" + value;\n  }\n}\n\nfunction display(elm, display2) {\n  style(elm, \"display\", display2);\n}\n\nfunction focus(elm) {\n  elm[\"setActive\"] && elm[\"setActive\"]() || elm.focus({\n    preventScroll: true\n  });\n}\n\nfunction getAttribute(elm, attr) {\n  return elm.getAttribute(attr);\n}\n\nfunction hasClass(elm, className) {\n  return elm && elm.classList.contains(className);\n}\n\nfunction rect(target) {\n  return target.getBoundingClientRect();\n}\n\nfunction remove(nodes) {\n  forEach(nodes, function (node) {\n    if (node && node.parentNode) {\n      node.parentNode.removeChild(node);\n    }\n  });\n}\n\nfunction parseHtml(html) {\n  return child(new DOMParser().parseFromString(html, \"text/html\").body);\n}\n\nfunction prevent(e, stopPropagation) {\n  e.preventDefault();\n\n  if (stopPropagation) {\n    e.stopPropagation();\n    e.stopImmediatePropagation();\n  }\n}\n\nfunction query(parent, selector) {\n  return parent && parent.querySelector(selector);\n}\n\nfunction queryAll(parent, selector) {\n  return selector ? slice(parent.querySelectorAll(selector)) : [];\n}\n\nfunction removeClass(elm, classes) {\n  toggleClass(elm, classes, false);\n}\n\nfunction timeOf(e) {\n  return e.timeStamp;\n}\n\nfunction unit(value) {\n  return isString(value) ? value : value ? value + \"px\" : \"\";\n}\n\nvar PROJECT_CODE = \"splide\";\nvar DATA_ATTRIBUTE = \"data-\" + PROJECT_CODE;\n\nfunction assert(condition, message) {\n  if (!condition) {\n    throw new Error(\"[\" + PROJECT_CODE + \"] \" + (message || \"\"));\n  }\n}\n\nvar min = Math.min,\n    max = Math.max,\n    floor = Math.floor,\n    ceil = Math.ceil,\n    abs = Math.abs;\n\nfunction approximatelyEqual(x, y, epsilon) {\n  return abs(x - y) < epsilon;\n}\n\nfunction between(number, x, y, exclusive) {\n  var minimum = min(x, y);\n  var maximum = max(x, y);\n  return exclusive ? minimum < number && number < maximum : minimum <= number && number <= maximum;\n}\n\nfunction clamp(number, x, y) {\n  var minimum = min(x, y);\n  var maximum = max(x, y);\n  return min(max(minimum, number), maximum);\n}\n\nfunction sign(x) {\n  return +(x > 0) - +(x < 0);\n}\n\nfunction camelToKebab(string) {\n  return string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\n\nfunction format(string, replacements) {\n  forEach(replacements, function (replacement) {\n    string = string.replace(\"%s\", \"\" + replacement);\n  });\n  return string;\n}\n\nfunction pad(number) {\n  return number < 10 ? \"0\" + number : \"\" + number;\n}\n\nvar ids = {};\n\nfunction uniqueId(prefix) {\n  return \"\" + prefix + pad(ids[prefix] = (ids[prefix] || 0) + 1);\n}\n\nfunction EventBinder() {\n  var listeners = [];\n\n  function bind(targets, events, callback, options) {\n    forEachEvent(targets, events, function (target, event, namespace) {\n      var isEventTarget = (\"addEventListener\" in target);\n      var remover = isEventTarget ? target.removeEventListener.bind(target, event, callback, options) : target[\"removeListener\"].bind(target, callback);\n      isEventTarget ? target.addEventListener(event, callback, options) : target[\"addListener\"](callback);\n      listeners.push([target, event, namespace, callback, remover]);\n    });\n  }\n\n  function unbind(targets, events, callback) {\n    forEachEvent(targets, events, function (target, event, namespace) {\n      listeners = listeners.filter(function (listener) {\n        if (listener[0] === target && listener[1] === event && listener[2] === namespace && (!callback || listener[3] === callback)) {\n          listener[4]();\n          return false;\n        }\n\n        return true;\n      });\n    });\n  }\n\n  function dispatch(target, type, detail) {\n    var e;\n    var bubbles = true;\n\n    if (typeof CustomEvent === \"function\") {\n      e = new CustomEvent(type, {\n        bubbles: bubbles,\n        detail: detail\n      });\n    } else {\n      e = document.createEvent(\"CustomEvent\");\n      e.initCustomEvent(type, bubbles, false, detail);\n    }\n\n    target.dispatchEvent(e);\n    return e;\n  }\n\n  function forEachEvent(targets, events, iteratee) {\n    forEach(targets, function (target) {\n      target && forEach(events, function (events2) {\n        events2.split(\" \").forEach(function (eventNS) {\n          var fragment = eventNS.split(\".\");\n          iteratee(target, fragment[0], fragment[1]);\n        });\n      });\n    });\n  }\n\n  function destroy() {\n    listeners.forEach(function (data) {\n      data[4]();\n    });\n    empty(listeners);\n  }\n\n  return {\n    bind: bind,\n    unbind: unbind,\n    dispatch: dispatch,\n    destroy: destroy\n  };\n}\n\nvar EVENT_MOUNTED = \"mounted\";\nvar EVENT_READY = \"ready\";\nvar EVENT_MOVE = \"move\";\nvar EVENT_MOVED = \"moved\";\nvar EVENT_CLICK = \"click\";\nvar EVENT_ACTIVE = \"active\";\nvar EVENT_INACTIVE = \"inactive\";\nvar EVENT_VISIBLE = \"visible\";\nvar EVENT_HIDDEN = \"hidden\";\nvar EVENT_REFRESH = \"refresh\";\nvar EVENT_UPDATED = \"updated\";\nvar EVENT_RESIZE = \"resize\";\nvar EVENT_RESIZED = \"resized\";\nvar EVENT_DRAG = \"drag\";\nvar EVENT_DRAGGING = \"dragging\";\nvar EVENT_DRAGGED = \"dragged\";\nvar EVENT_SCROLL = \"scroll\";\nvar EVENT_SCROLLED = \"scrolled\";\nvar EVENT_OVERFLOW = \"overflow\";\nvar EVENT_DESTROY = \"destroy\";\nvar EVENT_ARROWS_MOUNTED = \"arrows:mounted\";\nvar EVENT_ARROWS_UPDATED = \"arrows:updated\";\nvar EVENT_PAGINATION_MOUNTED = \"pagination:mounted\";\nvar EVENT_PAGINATION_UPDATED = \"pagination:updated\";\nvar EVENT_NAVIGATION_MOUNTED = \"navigation:mounted\";\nvar EVENT_AUTOPLAY_PLAY = \"autoplay:play\";\nvar EVENT_AUTOPLAY_PLAYING = \"autoplay:playing\";\nvar EVENT_AUTOPLAY_PAUSE = \"autoplay:pause\";\nvar EVENT_LAZYLOAD_LOADED = \"lazyload:loaded\";\nvar EVENT_SLIDE_KEYDOWN = \"sk\";\nvar EVENT_SHIFTED = \"sh\";\nvar EVENT_END_INDEX_CHANGED = \"ei\";\n\nfunction EventInterface(Splide2) {\n  var bus = Splide2 ? Splide2.event.bus : document.createDocumentFragment();\n  var binder = EventBinder();\n\n  function on(events, callback) {\n    binder.bind(bus, toArray(events).join(\" \"), function (e) {\n      callback.apply(callback, isArray(e.detail) ? e.detail : []);\n    });\n  }\n\n  function emit(event) {\n    binder.dispatch(bus, event, slice(arguments, 1));\n  }\n\n  if (Splide2) {\n    Splide2.event.on(EVENT_DESTROY, binder.destroy);\n  }\n\n  return assign(binder, {\n    bus: bus,\n    on: on,\n    off: apply(binder.unbind, bus),\n    emit: emit\n  });\n}\n\nfunction RequestInterval(interval, onInterval, onUpdate, limit) {\n  var now = Date.now;\n  var startTime;\n  var rate = 0;\n  var id;\n  var paused = true;\n  var count = 0;\n\n  function update() {\n    if (!paused) {\n      rate = interval ? min((now() - startTime) / interval, 1) : 1;\n      onUpdate && onUpdate(rate);\n\n      if (rate >= 1) {\n        onInterval();\n        startTime = now();\n\n        if (limit && ++count >= limit) {\n          return pause();\n        }\n      }\n\n      id = raf(update);\n    }\n  }\n\n  function start(resume) {\n    resume || cancel();\n    startTime = now() - (resume ? rate * interval : 0);\n    paused = false;\n    id = raf(update);\n  }\n\n  function pause() {\n    paused = true;\n  }\n\n  function rewind() {\n    startTime = now();\n    rate = 0;\n\n    if (onUpdate) {\n      onUpdate(rate);\n    }\n  }\n\n  function cancel() {\n    id && cancelAnimationFrame(id);\n    rate = 0;\n    id = 0;\n    paused = true;\n  }\n\n  function set(time) {\n    interval = time;\n  }\n\n  function isPaused() {\n    return paused;\n  }\n\n  return {\n    start: start,\n    rewind: rewind,\n    pause: pause,\n    cancel: cancel,\n    set: set,\n    isPaused: isPaused\n  };\n}\n\nfunction State(initialState) {\n  var state = initialState;\n\n  function set(value) {\n    state = value;\n  }\n\n  function is(states) {\n    return includes(toArray(states), state);\n  }\n\n  return {\n    set: set,\n    is: is\n  };\n}\n\nfunction Throttle(func, duration) {\n  var interval = RequestInterval(duration || 0, func, null, 1);\n  return function () {\n    interval.isPaused() && interval.start();\n  };\n}\n\nfunction Media(Splide2, Components2, options) {\n  var state = Splide2.state;\n  var breakpoints = options.breakpoints || {};\n  var reducedMotion = options.reducedMotion || {};\n  var binder = EventBinder();\n  var queries = [];\n\n  function setup() {\n    var isMin = options.mediaQuery === \"min\";\n    ownKeys(breakpoints).sort(function (n, m) {\n      return isMin ? +n - +m : +m - +n;\n    }).forEach(function (key) {\n      register(breakpoints[key], \"(\" + (isMin ? \"min\" : \"max\") + \"-width:\" + key + \"px)\");\n    });\n    register(reducedMotion, MEDIA_PREFERS_REDUCED_MOTION);\n    update();\n  }\n\n  function destroy(completely) {\n    if (completely) {\n      binder.destroy();\n    }\n  }\n\n  function register(options2, query) {\n    var queryList = matchMedia(query);\n    binder.bind(queryList, \"change\", update);\n    queries.push([options2, queryList]);\n  }\n\n  function update() {\n    var destroyed = state.is(DESTROYED);\n    var direction = options.direction;\n    var merged = queries.reduce(function (merged2, entry) {\n      return merge(merged2, entry[1].matches ? entry[0] : {});\n    }, {});\n    omit(options);\n    set(merged);\n\n    if (options.destroy) {\n      Splide2.destroy(options.destroy === \"completely\");\n    } else if (destroyed) {\n      destroy(true);\n      Splide2.mount();\n    } else {\n      direction !== options.direction && Splide2.refresh();\n    }\n  }\n\n  function reduce(enable) {\n    if (matchMedia(MEDIA_PREFERS_REDUCED_MOTION).matches) {\n      enable ? merge(options, reducedMotion) : omit(options, ownKeys(reducedMotion));\n    }\n  }\n\n  function set(opts, base, notify) {\n    merge(options, opts);\n    base && merge(Object.getPrototypeOf(options), opts);\n\n    if (notify || !state.is(CREATED)) {\n      Splide2.emit(EVENT_UPDATED, options);\n    }\n  }\n\n  return {\n    setup: setup,\n    destroy: destroy,\n    reduce: reduce,\n    set: set\n  };\n}\n\nvar ARROW = \"Arrow\";\nvar ARROW_LEFT = ARROW + \"Left\";\nvar ARROW_RIGHT = ARROW + \"Right\";\nvar ARROW_UP = ARROW + \"Up\";\nvar ARROW_DOWN = ARROW + \"Down\";\nvar LTR = \"ltr\";\nvar RTL = \"rtl\";\nvar TTB = \"ttb\";\nvar ORIENTATION_MAP = {\n  width: [\"height\"],\n  left: [\"top\", \"right\"],\n  right: [\"bottom\", \"left\"],\n  x: [\"y\"],\n  X: [\"Y\"],\n  Y: [\"X\"],\n  ArrowLeft: [ARROW_UP, ARROW_RIGHT],\n  ArrowRight: [ARROW_DOWN, ARROW_LEFT]\n};\n\nfunction Direction(Splide2, Components2, options) {\n  function resolve(prop, axisOnly, direction) {\n    direction = direction || options.direction;\n    var index = direction === RTL && !axisOnly ? 1 : direction === TTB ? 0 : -1;\n    return ORIENTATION_MAP[prop] && ORIENTATION_MAP[prop][index] || prop.replace(/width|left|right/i, function (match, offset) {\n      var replacement = ORIENTATION_MAP[match.toLowerCase()][index] || match;\n      return offset > 0 ? replacement.charAt(0).toUpperCase() + replacement.slice(1) : replacement;\n    });\n  }\n\n  function orient(value) {\n    return value * (options.direction === RTL ? 1 : -1);\n  }\n\n  return {\n    resolve: resolve,\n    orient: orient\n  };\n}\n\nvar ROLE = \"role\";\nvar TAB_INDEX = \"tabindex\";\nvar DISABLED = \"disabled\";\nvar ARIA_PREFIX = \"aria-\";\nvar ARIA_CONTROLS = ARIA_PREFIX + \"controls\";\nvar ARIA_CURRENT = ARIA_PREFIX + \"current\";\nvar ARIA_SELECTED = ARIA_PREFIX + \"selected\";\nvar ARIA_LABEL = ARIA_PREFIX + \"label\";\nvar ARIA_LABELLEDBY = ARIA_PREFIX + \"labelledby\";\nvar ARIA_HIDDEN = ARIA_PREFIX + \"hidden\";\nvar ARIA_ORIENTATION = ARIA_PREFIX + \"orientation\";\nvar ARIA_ROLEDESCRIPTION = ARIA_PREFIX + \"roledescription\";\nvar ARIA_LIVE = ARIA_PREFIX + \"live\";\nvar ARIA_BUSY = ARIA_PREFIX + \"busy\";\nvar ARIA_ATOMIC = ARIA_PREFIX + \"atomic\";\nvar ALL_ATTRIBUTES = [ROLE, TAB_INDEX, DISABLED, ARIA_CONTROLS, ARIA_CURRENT, ARIA_LABEL, ARIA_LABELLEDBY, ARIA_HIDDEN, ARIA_ORIENTATION, ARIA_ROLEDESCRIPTION];\nvar CLASS_PREFIX = PROJECT_CODE + \"__\";\nvar STATUS_CLASS_PREFIX = \"is-\";\nvar CLASS_ROOT = PROJECT_CODE;\nvar CLASS_TRACK = CLASS_PREFIX + \"track\";\nvar CLASS_LIST = CLASS_PREFIX + \"list\";\nvar CLASS_SLIDE = CLASS_PREFIX + \"slide\";\nvar CLASS_CLONE = CLASS_SLIDE + \"--clone\";\nvar CLASS_CONTAINER = CLASS_SLIDE + \"__container\";\nvar CLASS_ARROWS = CLASS_PREFIX + \"arrows\";\nvar CLASS_ARROW = CLASS_PREFIX + \"arrow\";\nvar CLASS_ARROW_PREV = CLASS_ARROW + \"--prev\";\nvar CLASS_ARROW_NEXT = CLASS_ARROW + \"--next\";\nvar CLASS_PAGINATION = CLASS_PREFIX + \"pagination\";\nvar CLASS_PAGINATION_PAGE = CLASS_PAGINATION + \"__page\";\nvar CLASS_PROGRESS = CLASS_PREFIX + \"progress\";\nvar CLASS_PROGRESS_BAR = CLASS_PROGRESS + \"__bar\";\nvar CLASS_TOGGLE = CLASS_PREFIX + \"toggle\";\nvar CLASS_TOGGLE_PLAY = CLASS_TOGGLE + \"__play\";\nvar CLASS_TOGGLE_PAUSE = CLASS_TOGGLE + \"__pause\";\nvar CLASS_SPINNER = CLASS_PREFIX + \"spinner\";\nvar CLASS_SR = CLASS_PREFIX + \"sr\";\nvar CLASS_INITIALIZED = STATUS_CLASS_PREFIX + \"initialized\";\nvar CLASS_ACTIVE = STATUS_CLASS_PREFIX + \"active\";\nvar CLASS_PREV = STATUS_CLASS_PREFIX + \"prev\";\nvar CLASS_NEXT = STATUS_CLASS_PREFIX + \"next\";\nvar CLASS_VISIBLE = STATUS_CLASS_PREFIX + \"visible\";\nvar CLASS_LOADING = STATUS_CLASS_PREFIX + \"loading\";\nvar CLASS_FOCUS_IN = STATUS_CLASS_PREFIX + \"focus-in\";\nvar CLASS_OVERFLOW = STATUS_CLASS_PREFIX + \"overflow\";\nvar STATUS_CLASSES = [CLASS_ACTIVE, CLASS_VISIBLE, CLASS_PREV, CLASS_NEXT, CLASS_LOADING, CLASS_FOCUS_IN, CLASS_OVERFLOW];\nvar CLASSES = {\n  slide: CLASS_SLIDE,\n  clone: CLASS_CLONE,\n  arrows: CLASS_ARROWS,\n  arrow: CLASS_ARROW,\n  prev: CLASS_ARROW_PREV,\n  next: CLASS_ARROW_NEXT,\n  pagination: CLASS_PAGINATION,\n  page: CLASS_PAGINATION_PAGE,\n  spinner: CLASS_SPINNER\n};\n\nfunction closest(from, selector) {\n  if (isFunction(from.closest)) {\n    return from.closest(selector);\n  }\n\n  var elm = from;\n\n  while (elm && elm.nodeType === 1) {\n    if (matches(elm, selector)) {\n      break;\n    }\n\n    elm = elm.parentElement;\n  }\n\n  return elm;\n}\n\nvar FRICTION = 5;\nvar LOG_INTERVAL = 200;\nvar POINTER_DOWN_EVENTS = \"touchstart mousedown\";\nvar POINTER_MOVE_EVENTS = \"touchmove mousemove\";\nvar POINTER_UP_EVENTS = \"touchend touchcancel mouseup click\";\n\nfunction Elements(Splide2, Components2, options) {\n  var _EventInterface = EventInterface(Splide2),\n      on = _EventInterface.on,\n      bind = _EventInterface.bind;\n\n  var root = Splide2.root;\n  var i18n = options.i18n;\n  var elements = {};\n  var slides = [];\n  var rootClasses = [];\n  var trackClasses = [];\n  var track;\n  var list;\n  var isUsingKey;\n\n  function setup() {\n    collect();\n    init();\n    update();\n  }\n\n  function mount() {\n    on(EVENT_REFRESH, destroy);\n    on(EVENT_REFRESH, setup);\n    on(EVENT_UPDATED, update);\n    bind(document, POINTER_DOWN_EVENTS + \" keydown\", function (e) {\n      isUsingKey = e.type === \"keydown\";\n    }, {\n      capture: true\n    });\n    bind(root, \"focusin\", function () {\n      toggleClass(root, CLASS_FOCUS_IN, !!isUsingKey);\n    });\n  }\n\n  function destroy(completely) {\n    var attrs = ALL_ATTRIBUTES.concat(\"style\");\n    empty(slides);\n    removeClass(root, rootClasses);\n    removeClass(track, trackClasses);\n    removeAttribute([track, list], attrs);\n    removeAttribute(root, completely ? attrs : [\"style\", ARIA_ROLEDESCRIPTION]);\n  }\n\n  function update() {\n    removeClass(root, rootClasses);\n    removeClass(track, trackClasses);\n    rootClasses = getClasses(CLASS_ROOT);\n    trackClasses = getClasses(CLASS_TRACK);\n    addClass(root, rootClasses);\n    addClass(track, trackClasses);\n    setAttribute(root, ARIA_LABEL, options.label);\n    setAttribute(root, ARIA_LABELLEDBY, options.labelledby);\n  }\n\n  function collect() {\n    track = find(\".\" + CLASS_TRACK);\n    list = child(track, \".\" + CLASS_LIST);\n    assert(track && list, \"A track/list element is missing.\");\n    push(slides, children(list, \".\" + CLASS_SLIDE + \":not(.\" + CLASS_CLONE + \")\"));\n    forOwn({\n      arrows: CLASS_ARROWS,\n      pagination: CLASS_PAGINATION,\n      prev: CLASS_ARROW_PREV,\n      next: CLASS_ARROW_NEXT,\n      bar: CLASS_PROGRESS_BAR,\n      toggle: CLASS_TOGGLE\n    }, function (className, key) {\n      elements[key] = find(\".\" + className);\n    });\n    assign(elements, {\n      root: root,\n      track: track,\n      list: list,\n      slides: slides\n    });\n  }\n\n  function init() {\n    var id = root.id || uniqueId(PROJECT_CODE);\n    var role = options.role;\n    root.id = id;\n    track.id = track.id || id + \"-track\";\n    list.id = list.id || id + \"-list\";\n\n    if (!getAttribute(root, ROLE) && root.tagName !== \"SECTION\" && role) {\n      setAttribute(root, ROLE, role);\n    }\n\n    setAttribute(root, ARIA_ROLEDESCRIPTION, i18n.carousel);\n    setAttribute(list, ROLE, \"presentation\");\n  }\n\n  function find(selector) {\n    var elm = query(root, selector);\n    return elm && closest(elm, \".\" + CLASS_ROOT) === root ? elm : void 0;\n  }\n\n  function getClasses(base) {\n    return [base + \"--\" + options.type, base + \"--\" + options.direction, options.drag && base + \"--draggable\", options.isNavigation && base + \"--nav\", base === CLASS_ROOT && CLASS_ACTIVE];\n  }\n\n  return assign(elements, {\n    setup: setup,\n    mount: mount,\n    destroy: destroy\n  });\n}\n\nvar SLIDE = \"slide\";\nvar LOOP = \"loop\";\nvar FADE = \"fade\";\n\nfunction Slide$1(Splide2, index, slideIndex, slide) {\n  var event = EventInterface(Splide2);\n  var on = event.on,\n      emit = event.emit,\n      bind = event.bind;\n  var Components = Splide2.Components,\n      root = Splide2.root,\n      options = Splide2.options;\n  var isNavigation = options.isNavigation,\n      updateOnMove = options.updateOnMove,\n      i18n = options.i18n,\n      pagination = options.pagination,\n      slideFocus = options.slideFocus;\n  var resolve = Components.Direction.resolve;\n  var styles = getAttribute(slide, \"style\");\n  var label = getAttribute(slide, ARIA_LABEL);\n  var isClone = slideIndex > -1;\n  var container = child(slide, \".\" + CLASS_CONTAINER);\n  var destroyed;\n\n  function mount() {\n    if (!isClone) {\n      slide.id = root.id + \"-slide\" + pad(index + 1);\n      setAttribute(slide, ROLE, pagination ? \"tabpanel\" : \"group\");\n      setAttribute(slide, ARIA_ROLEDESCRIPTION, i18n.slide);\n      setAttribute(slide, ARIA_LABEL, label || format(i18n.slideLabel, [index + 1, Splide2.length]));\n    }\n\n    listen();\n  }\n\n  function listen() {\n    bind(slide, \"click\", apply(emit, EVENT_CLICK, self));\n    bind(slide, \"keydown\", apply(emit, EVENT_SLIDE_KEYDOWN, self));\n    on([EVENT_MOVED, EVENT_SHIFTED, EVENT_SCROLLED], update);\n    on(EVENT_NAVIGATION_MOUNTED, initNavigation);\n\n    if (updateOnMove) {\n      on(EVENT_MOVE, onMove);\n    }\n  }\n\n  function destroy() {\n    destroyed = true;\n    event.destroy();\n    removeClass(slide, STATUS_CLASSES);\n    removeAttribute(slide, ALL_ATTRIBUTES);\n    setAttribute(slide, \"style\", styles);\n    setAttribute(slide, ARIA_LABEL, label || \"\");\n  }\n\n  function initNavigation() {\n    var controls = Splide2.splides.map(function (target) {\n      var Slide2 = target.splide.Components.Slides.getAt(index);\n      return Slide2 ? Slide2.slide.id : \"\";\n    }).join(\" \");\n    setAttribute(slide, ARIA_LABEL, format(i18n.slideX, (isClone ? slideIndex : index) + 1));\n    setAttribute(slide, ARIA_CONTROLS, controls);\n    setAttribute(slide, ROLE, slideFocus ? \"button\" : \"\");\n    slideFocus && removeAttribute(slide, ARIA_ROLEDESCRIPTION);\n  }\n\n  function onMove() {\n    if (!destroyed) {\n      update();\n    }\n  }\n\n  function update() {\n    if (!destroyed) {\n      var curr = Splide2.index;\n      updateActivity();\n      updateVisibility();\n      toggleClass(slide, CLASS_PREV, index === curr - 1);\n      toggleClass(slide, CLASS_NEXT, index === curr + 1);\n    }\n  }\n\n  function updateActivity() {\n    var active = isActive();\n\n    if (active !== hasClass(slide, CLASS_ACTIVE)) {\n      toggleClass(slide, CLASS_ACTIVE, active);\n      setAttribute(slide, ARIA_CURRENT, isNavigation && active || \"\");\n      emit(active ? EVENT_ACTIVE : EVENT_INACTIVE, self);\n    }\n  }\n\n  function updateVisibility() {\n    var visible = isVisible();\n    var hidden = !visible && (!isActive() || isClone);\n\n    if (!Splide2.state.is([MOVING, SCROLLING])) {\n      setAttribute(slide, ARIA_HIDDEN, hidden || \"\");\n    }\n\n    setAttribute(queryAll(slide, options.focusableNodes || \"\"), TAB_INDEX, hidden ? -1 : \"\");\n\n    if (slideFocus) {\n      setAttribute(slide, TAB_INDEX, hidden ? -1 : 0);\n    }\n\n    if (visible !== hasClass(slide, CLASS_VISIBLE)) {\n      toggleClass(slide, CLASS_VISIBLE, visible);\n      emit(visible ? EVENT_VISIBLE : EVENT_HIDDEN, self);\n    }\n\n    if (!visible && document.activeElement === slide) {\n      var Slide2 = Components.Slides.getAt(Splide2.index);\n      Slide2 && focus(Slide2.slide);\n    }\n  }\n\n  function style$1(prop, value, useContainer) {\n    style(useContainer && container || slide, prop, value);\n  }\n\n  function isActive() {\n    var curr = Splide2.index;\n    return curr === index || options.cloneStatus && curr === slideIndex;\n  }\n\n  function isVisible() {\n    if (Splide2.is(FADE)) {\n      return isActive();\n    }\n\n    var trackRect = rect(Components.Elements.track);\n    var slideRect = rect(slide);\n    var left = resolve(\"left\", true);\n    var right = resolve(\"right\", true);\n    return floor(trackRect[left]) <= ceil(slideRect[left]) && floor(slideRect[right]) <= ceil(trackRect[right]);\n  }\n\n  function isWithin(from, distance) {\n    var diff = abs(from - index);\n\n    if (!isClone && (options.rewind || Splide2.is(LOOP))) {\n      diff = min(diff, Splide2.length - diff);\n    }\n\n    return diff <= distance;\n  }\n\n  var self = {\n    index: index,\n    slideIndex: slideIndex,\n    slide: slide,\n    container: container,\n    isClone: isClone,\n    mount: mount,\n    destroy: destroy,\n    update: update,\n    style: style$1,\n    isWithin: isWithin\n  };\n  return self;\n}\n\nfunction Slides(Splide2, Components2, options) {\n  var _EventInterface2 = EventInterface(Splide2),\n      on = _EventInterface2.on,\n      emit = _EventInterface2.emit,\n      bind = _EventInterface2.bind;\n\n  var _Components2$Elements = Components2.Elements,\n      slides = _Components2$Elements.slides,\n      list = _Components2$Elements.list;\n  var Slides2 = [];\n\n  function mount() {\n    init();\n    on(EVENT_REFRESH, destroy);\n    on(EVENT_REFRESH, init);\n  }\n\n  function init() {\n    slides.forEach(function (slide, index) {\n      register(slide, index, -1);\n    });\n  }\n\n  function destroy() {\n    forEach$1(function (Slide2) {\n      Slide2.destroy();\n    });\n    empty(Slides2);\n  }\n\n  function update() {\n    forEach$1(function (Slide2) {\n      Slide2.update();\n    });\n  }\n\n  function register(slide, index, slideIndex) {\n    var object = Slide$1(Splide2, index, slideIndex, slide);\n    object.mount();\n    Slides2.push(object);\n    Slides2.sort(function (Slide1, Slide2) {\n      return Slide1.index - Slide2.index;\n    });\n  }\n\n  function get(excludeClones) {\n    return excludeClones ? filter(function (Slide2) {\n      return !Slide2.isClone;\n    }) : Slides2;\n  }\n\n  function getIn(page) {\n    var Controller = Components2.Controller;\n    var index = Controller.toIndex(page);\n    var max = Controller.hasFocus() ? 1 : options.perPage;\n    return filter(function (Slide2) {\n      return between(Slide2.index, index, index + max - 1);\n    });\n  }\n\n  function getAt(index) {\n    return filter(index)[0];\n  }\n\n  function add(items, index) {\n    forEach(items, function (slide) {\n      if (isString(slide)) {\n        slide = parseHtml(slide);\n      }\n\n      if (isHTMLElement(slide)) {\n        var ref = slides[index];\n        ref ? before(slide, ref) : append(list, slide);\n        addClass(slide, options.classes.slide);\n        observeImages(slide, apply(emit, EVENT_RESIZE));\n      }\n    });\n    emit(EVENT_REFRESH);\n  }\n\n  function remove$1(matcher) {\n    remove(filter(matcher).map(function (Slide2) {\n      return Slide2.slide;\n    }));\n    emit(EVENT_REFRESH);\n  }\n\n  function forEach$1(iteratee, excludeClones) {\n    get(excludeClones).forEach(iteratee);\n  }\n\n  function filter(matcher) {\n    return Slides2.filter(isFunction(matcher) ? matcher : function (Slide2) {\n      return isString(matcher) ? matches(Slide2.slide, matcher) : includes(toArray(matcher), Slide2.index);\n    });\n  }\n\n  function style(prop, value, useContainer) {\n    forEach$1(function (Slide2) {\n      Slide2.style(prop, value, useContainer);\n    });\n  }\n\n  function observeImages(elm, callback) {\n    var images = queryAll(elm, \"img\");\n    var length = images.length;\n\n    if (length) {\n      images.forEach(function (img) {\n        bind(img, \"load error\", function () {\n          if (! --length) {\n            callback();\n          }\n        });\n      });\n    } else {\n      callback();\n    }\n  }\n\n  function getLength(excludeClones) {\n    return excludeClones ? slides.length : Slides2.length;\n  }\n\n  function isEnough() {\n    return Slides2.length > options.perPage;\n  }\n\n  return {\n    mount: mount,\n    destroy: destroy,\n    update: update,\n    register: register,\n    get: get,\n    getIn: getIn,\n    getAt: getAt,\n    add: add,\n    remove: remove$1,\n    forEach: forEach$1,\n    filter: filter,\n    style: style,\n    getLength: getLength,\n    isEnough: isEnough\n  };\n}\n\nfunction Layout(Splide2, Components2, options) {\n  var _EventInterface3 = EventInterface(Splide2),\n      on = _EventInterface3.on,\n      bind = _EventInterface3.bind,\n      emit = _EventInterface3.emit;\n\n  var Slides = Components2.Slides;\n  var resolve = Components2.Direction.resolve;\n  var _Components2$Elements2 = Components2.Elements,\n      root = _Components2$Elements2.root,\n      track = _Components2$Elements2.track,\n      list = _Components2$Elements2.list;\n  var getAt = Slides.getAt,\n      styleSlides = Slides.style;\n  var vertical;\n  var rootRect;\n  var overflow;\n\n  function mount() {\n    init();\n    bind(window, \"resize load\", Throttle(apply(emit, EVENT_RESIZE)));\n    on([EVENT_UPDATED, EVENT_REFRESH], init);\n    on(EVENT_RESIZE, resize);\n  }\n\n  function init() {\n    vertical = options.direction === TTB;\n    style(root, \"maxWidth\", unit(options.width));\n    style(track, resolve(\"paddingLeft\"), cssPadding(false));\n    style(track, resolve(\"paddingRight\"), cssPadding(true));\n    resize(true);\n  }\n\n  function resize(force) {\n    var newRect = rect(root);\n\n    if (force || rootRect.width !== newRect.width || rootRect.height !== newRect.height) {\n      style(track, \"height\", cssTrackHeight());\n      styleSlides(resolve(\"marginRight\"), unit(options.gap));\n      styleSlides(\"width\", cssSlideWidth());\n      styleSlides(\"height\", cssSlideHeight(), true);\n      rootRect = newRect;\n      emit(EVENT_RESIZED);\n\n      if (overflow !== (overflow = isOverflow())) {\n        toggleClass(root, CLASS_OVERFLOW, overflow);\n        emit(EVENT_OVERFLOW, overflow);\n      }\n    }\n  }\n\n  function cssPadding(right) {\n    var padding = options.padding;\n    var prop = resolve(right ? \"right\" : \"left\");\n    return padding && unit(padding[prop] || (isObject(padding) ? 0 : padding)) || \"0px\";\n  }\n\n  function cssTrackHeight() {\n    var height = \"\";\n\n    if (vertical) {\n      height = cssHeight();\n      assert(height, \"height or heightRatio is missing.\");\n      height = \"calc(\" + height + \" - \" + cssPadding(false) + \" - \" + cssPadding(true) + \")\";\n    }\n\n    return height;\n  }\n\n  function cssHeight() {\n    return unit(options.height || rect(list).width * options.heightRatio);\n  }\n\n  function cssSlideWidth() {\n    return options.autoWidth ? null : unit(options.fixedWidth) || (vertical ? \"\" : cssSlideSize());\n  }\n\n  function cssSlideHeight() {\n    return unit(options.fixedHeight) || (vertical ? options.autoHeight ? null : cssSlideSize() : cssHeight());\n  }\n\n  function cssSlideSize() {\n    var gap = unit(options.gap);\n    return \"calc((100%\" + (gap && \" + \" + gap) + \")/\" + (options.perPage || 1) + (gap && \" - \" + gap) + \")\";\n  }\n\n  function listSize() {\n    return rect(list)[resolve(\"width\")];\n  }\n\n  function slideSize(index, withoutGap) {\n    var Slide = getAt(index || 0);\n    return Slide ? rect(Slide.slide)[resolve(\"width\")] + (withoutGap ? 0 : getGap()) : 0;\n  }\n\n  function totalSize(index, withoutGap) {\n    var Slide = getAt(index);\n\n    if (Slide) {\n      var right = rect(Slide.slide)[resolve(\"right\")];\n      var left = rect(list)[resolve(\"left\")];\n      return abs(right - left) + (withoutGap ? 0 : getGap());\n    }\n\n    return 0;\n  }\n\n  function sliderSize(withoutGap) {\n    return totalSize(Splide2.length - 1) - totalSize(0) + slideSize(0, withoutGap);\n  }\n\n  function getGap() {\n    var Slide = getAt(0);\n    return Slide && parseFloat(style(Slide.slide, resolve(\"marginRight\"))) || 0;\n  }\n\n  function getPadding(right) {\n    return parseFloat(style(track, resolve(\"padding\" + (right ? \"Right\" : \"Left\")))) || 0;\n  }\n\n  function isOverflow() {\n    return Splide2.is(FADE) || sliderSize(true) > listSize();\n  }\n\n  return {\n    mount: mount,\n    resize: resize,\n    listSize: listSize,\n    slideSize: slideSize,\n    sliderSize: sliderSize,\n    totalSize: totalSize,\n    getPadding: getPadding,\n    isOverflow: isOverflow\n  };\n}\n\nvar MULTIPLIER = 2;\n\nfunction Clones(Splide2, Components2, options) {\n  var event = EventInterface(Splide2);\n  var on = event.on;\n  var Elements = Components2.Elements,\n      Slides = Components2.Slides;\n  var resolve = Components2.Direction.resolve;\n  var clones = [];\n  var cloneCount;\n\n  function mount() {\n    on(EVENT_REFRESH, remount);\n    on([EVENT_UPDATED, EVENT_RESIZE], observe);\n\n    if (cloneCount = computeCloneCount()) {\n      generate(cloneCount);\n      Components2.Layout.resize(true);\n    }\n  }\n\n  function remount() {\n    destroy();\n    mount();\n  }\n\n  function destroy() {\n    remove(clones);\n    empty(clones);\n    event.destroy();\n  }\n\n  function observe() {\n    var count = computeCloneCount();\n\n    if (cloneCount !== count) {\n      if (cloneCount < count || !count) {\n        event.emit(EVENT_REFRESH);\n      }\n    }\n  }\n\n  function generate(count) {\n    var slides = Slides.get().slice();\n    var length = slides.length;\n\n    if (length) {\n      while (slides.length < count) {\n        push(slides, slides);\n      }\n\n      push(slides.slice(-count), slides.slice(0, count)).forEach(function (Slide, index) {\n        var isHead = index < count;\n        var clone = cloneDeep(Slide.slide, index);\n        isHead ? before(clone, slides[0].slide) : append(Elements.list, clone);\n        push(clones, clone);\n        Slides.register(clone, index - count + (isHead ? 0 : length), Slide.index);\n      });\n    }\n  }\n\n  function cloneDeep(elm, index) {\n    var clone = elm.cloneNode(true);\n    addClass(clone, options.classes.clone);\n    clone.id = Splide2.root.id + \"-clone\" + pad(index + 1);\n    return clone;\n  }\n\n  function computeCloneCount() {\n    var clones2 = options.clones;\n\n    if (!Splide2.is(LOOP)) {\n      clones2 = 0;\n    } else if (isUndefined(clones2)) {\n      var fixedSize = options[resolve(\"fixedWidth\")] && Components2.Layout.slideSize(0);\n      var fixedCount = fixedSize && ceil(rect(Elements.track)[resolve(\"width\")] / fixedSize);\n      clones2 = fixedCount || options[resolve(\"autoWidth\")] && Splide2.length || options.perPage * MULTIPLIER;\n    }\n\n    return clones2;\n  }\n\n  return {\n    mount: mount,\n    destroy: destroy\n  };\n}\n\nfunction Move(Splide2, Components2, options) {\n  var _EventInterface4 = EventInterface(Splide2),\n      on = _EventInterface4.on,\n      emit = _EventInterface4.emit;\n\n  var set = Splide2.state.set;\n  var _Components2$Layout = Components2.Layout,\n      slideSize = _Components2$Layout.slideSize,\n      getPadding = _Components2$Layout.getPadding,\n      totalSize = _Components2$Layout.totalSize,\n      listSize = _Components2$Layout.listSize,\n      sliderSize = _Components2$Layout.sliderSize;\n  var _Components2$Directio = Components2.Direction,\n      resolve = _Components2$Directio.resolve,\n      orient = _Components2$Directio.orient;\n  var _Components2$Elements3 = Components2.Elements,\n      list = _Components2$Elements3.list,\n      track = _Components2$Elements3.track;\n  var Transition;\n\n  function mount() {\n    Transition = Components2.Transition;\n    on([EVENT_MOUNTED, EVENT_RESIZED, EVENT_UPDATED, EVENT_REFRESH], reposition);\n  }\n\n  function reposition() {\n    if (!Components2.Controller.isBusy()) {\n      Components2.Scroll.cancel();\n      jump(Splide2.index);\n      Components2.Slides.update();\n    }\n  }\n\n  function move(dest, index, prev, callback) {\n    if (dest !== index && canShift(dest > prev)) {\n      cancel();\n      translate(shift(getPosition(), dest > prev), true);\n    }\n\n    set(MOVING);\n    emit(EVENT_MOVE, index, prev, dest);\n    Transition.start(index, function () {\n      set(IDLE);\n      emit(EVENT_MOVED, index, prev, dest);\n      callback && callback();\n    });\n  }\n\n  function jump(index) {\n    translate(toPosition(index, true));\n  }\n\n  function translate(position, preventLoop) {\n    if (!Splide2.is(FADE)) {\n      var destination = preventLoop ? position : loop(position);\n      style(list, \"transform\", \"translate\" + resolve(\"X\") + \"(\" + destination + \"px)\");\n      position !== destination && emit(EVENT_SHIFTED);\n    }\n  }\n\n  function loop(position) {\n    if (Splide2.is(LOOP)) {\n      var index = toIndex(position);\n      var exceededMax = index > Components2.Controller.getEnd();\n      var exceededMin = index < 0;\n\n      if (exceededMin || exceededMax) {\n        position = shift(position, exceededMax);\n      }\n    }\n\n    return position;\n  }\n\n  function shift(position, backwards) {\n    var excess = position - getLimit(backwards);\n    var size = sliderSize();\n    position -= orient(size * (ceil(abs(excess) / size) || 1)) * (backwards ? 1 : -1);\n    return position;\n  }\n\n  function cancel() {\n    translate(getPosition(), true);\n    Transition.cancel();\n  }\n\n  function toIndex(position) {\n    var Slides = Components2.Slides.get();\n    var index = 0;\n    var minDistance = Infinity;\n\n    for (var i = 0; i < Slides.length; i++) {\n      var slideIndex = Slides[i].index;\n      var distance = abs(toPosition(slideIndex, true) - position);\n\n      if (distance <= minDistance) {\n        minDistance = distance;\n        index = slideIndex;\n      } else {\n        break;\n      }\n    }\n\n    return index;\n  }\n\n  function toPosition(index, trimming) {\n    var position = orient(totalSize(index - 1) - offset(index));\n    return trimming ? trim(position) : position;\n  }\n\n  function getPosition() {\n    var left = resolve(\"left\");\n    return rect(list)[left] - rect(track)[left] + orient(getPadding(false));\n  }\n\n  function trim(position) {\n    if (options.trimSpace && Splide2.is(SLIDE)) {\n      position = clamp(position, 0, orient(sliderSize(true) - listSize()));\n    }\n\n    return position;\n  }\n\n  function offset(index) {\n    var focus = options.focus;\n    return focus === \"center\" ? (listSize() - slideSize(index, true)) / 2 : +focus * slideSize(index) || 0;\n  }\n\n  function getLimit(max) {\n    return toPosition(max ? Components2.Controller.getEnd() : 0, !!options.trimSpace);\n  }\n\n  function canShift(backwards) {\n    var shifted = orient(shift(getPosition(), backwards));\n    return backwards ? shifted >= 0 : shifted <= list[resolve(\"scrollWidth\")] - rect(track)[resolve(\"width\")];\n  }\n\n  function exceededLimit(max, position) {\n    position = isUndefined(position) ? getPosition() : position;\n    var exceededMin = max !== true && orient(position) < orient(getLimit(false));\n    var exceededMax = max !== false && orient(position) > orient(getLimit(true));\n    return exceededMin || exceededMax;\n  }\n\n  return {\n    mount: mount,\n    move: move,\n    jump: jump,\n    translate: translate,\n    shift: shift,\n    cancel: cancel,\n    toIndex: toIndex,\n    toPosition: toPosition,\n    getPosition: getPosition,\n    getLimit: getLimit,\n    exceededLimit: exceededLimit,\n    reposition: reposition\n  };\n}\n\nfunction Controller(Splide2, Components2, options) {\n  var _EventInterface5 = EventInterface(Splide2),\n      on = _EventInterface5.on,\n      emit = _EventInterface5.emit;\n\n  var Move = Components2.Move;\n  var getPosition = Move.getPosition,\n      getLimit = Move.getLimit,\n      toPosition = Move.toPosition;\n  var _Components2$Slides = Components2.Slides,\n      isEnough = _Components2$Slides.isEnough,\n      getLength = _Components2$Slides.getLength;\n  var omitEnd = options.omitEnd;\n  var isLoop = Splide2.is(LOOP);\n  var isSlide = Splide2.is(SLIDE);\n  var getNext = apply(getAdjacent, false);\n  var getPrev = apply(getAdjacent, true);\n  var currIndex = options.start || 0;\n  var endIndex;\n  var prevIndex = currIndex;\n  var slideCount;\n  var perMove;\n  var perPage;\n\n  function mount() {\n    init();\n    on([EVENT_UPDATED, EVENT_REFRESH, EVENT_END_INDEX_CHANGED], init);\n    on(EVENT_RESIZED, onResized);\n  }\n\n  function init() {\n    slideCount = getLength(true);\n    perMove = options.perMove;\n    perPage = options.perPage;\n    endIndex = getEnd();\n    var index = clamp(currIndex, 0, omitEnd ? endIndex : slideCount - 1);\n\n    if (index !== currIndex) {\n      currIndex = index;\n      Move.reposition();\n    }\n  }\n\n  function onResized() {\n    if (endIndex !== getEnd()) {\n      emit(EVENT_END_INDEX_CHANGED);\n    }\n  }\n\n  function go(control, allowSameIndex, callback) {\n    if (!isBusy()) {\n      var dest = parse(control);\n      var index = loop(dest);\n\n      if (index > -1 && (allowSameIndex || index !== currIndex)) {\n        setIndex(index);\n        Move.move(dest, index, prevIndex, callback);\n      }\n    }\n  }\n\n  function scroll(destination, duration, snap, callback) {\n    Components2.Scroll.scroll(destination, duration, snap, function () {\n      var index = loop(Move.toIndex(getPosition()));\n      setIndex(omitEnd ? min(index, endIndex) : index);\n      callback && callback();\n    });\n  }\n\n  function parse(control) {\n    var index = currIndex;\n\n    if (isString(control)) {\n      var _ref = control.match(/([+\\-<>])(\\d+)?/) || [],\n          indicator = _ref[1],\n          number = _ref[2];\n\n      if (indicator === \"+\" || indicator === \"-\") {\n        index = computeDestIndex(currIndex + +(\"\" + indicator + (+number || 1)), currIndex);\n      } else if (indicator === \">\") {\n        index = number ? toIndex(+number) : getNext(true);\n      } else if (indicator === \"<\") {\n        index = getPrev(true);\n      }\n    } else {\n      index = isLoop ? control : clamp(control, 0, endIndex);\n    }\n\n    return index;\n  }\n\n  function getAdjacent(prev, destination) {\n    var number = perMove || (hasFocus() ? 1 : perPage);\n    var dest = computeDestIndex(currIndex + number * (prev ? -1 : 1), currIndex, !(perMove || hasFocus()));\n\n    if (dest === -1 && isSlide) {\n      if (!approximatelyEqual(getPosition(), getLimit(!prev), 1)) {\n        return prev ? 0 : endIndex;\n      }\n    }\n\n    return destination ? dest : loop(dest);\n  }\n\n  function computeDestIndex(dest, from, snapPage) {\n    if (isEnough() || hasFocus()) {\n      var index = computeMovableDestIndex(dest);\n\n      if (index !== dest) {\n        from = dest;\n        dest = index;\n        snapPage = false;\n      }\n\n      if (dest < 0 || dest > endIndex) {\n        if (!perMove && (between(0, dest, from, true) || between(endIndex, from, dest, true))) {\n          dest = toIndex(toPage(dest));\n        } else {\n          if (isLoop) {\n            dest = snapPage ? dest < 0 ? -(slideCount % perPage || perPage) : slideCount : dest;\n          } else if (options.rewind) {\n            dest = dest < 0 ? endIndex : 0;\n          } else {\n            dest = -1;\n          }\n        }\n      } else {\n        if (snapPage && dest !== from) {\n          dest = toIndex(toPage(from) + (dest < from ? -1 : 1));\n        }\n      }\n    } else {\n      dest = -1;\n    }\n\n    return dest;\n  }\n\n  function computeMovableDestIndex(dest) {\n    if (isSlide && options.trimSpace === \"move\" && dest !== currIndex) {\n      var position = getPosition();\n\n      while (position === toPosition(dest, true) && between(dest, 0, Splide2.length - 1, !options.rewind)) {\n        dest < currIndex ? --dest : ++dest;\n      }\n    }\n\n    return dest;\n  }\n\n  function loop(index) {\n    return isLoop ? (index + slideCount) % slideCount || 0 : index;\n  }\n\n  function getEnd() {\n    var end = slideCount - (hasFocus() || isLoop && perMove ? 1 : perPage);\n\n    while (omitEnd && end-- > 0) {\n      if (toPosition(slideCount - 1, true) !== toPosition(end, true)) {\n        end++;\n        break;\n      }\n    }\n\n    return clamp(end, 0, slideCount - 1);\n  }\n\n  function toIndex(page) {\n    return clamp(hasFocus() ? page : perPage * page, 0, endIndex);\n  }\n\n  function toPage(index) {\n    return hasFocus() ? min(index, endIndex) : floor((index >= endIndex ? slideCount - 1 : index) / perPage);\n  }\n\n  function toDest(destination) {\n    var closest = Move.toIndex(destination);\n    return isSlide ? clamp(closest, 0, endIndex) : closest;\n  }\n\n  function setIndex(index) {\n    if (index !== currIndex) {\n      prevIndex = currIndex;\n      currIndex = index;\n    }\n  }\n\n  function getIndex(prev) {\n    return prev ? prevIndex : currIndex;\n  }\n\n  function hasFocus() {\n    return !isUndefined(options.focus) || options.isNavigation;\n  }\n\n  function isBusy() {\n    return Splide2.state.is([MOVING, SCROLLING]) && !!options.waitForTransition;\n  }\n\n  return {\n    mount: mount,\n    go: go,\n    scroll: scroll,\n    getNext: getNext,\n    getPrev: getPrev,\n    getAdjacent: getAdjacent,\n    getEnd: getEnd,\n    setIndex: setIndex,\n    getIndex: getIndex,\n    toIndex: toIndex,\n    toPage: toPage,\n    toDest: toDest,\n    hasFocus: hasFocus,\n    isBusy: isBusy\n  };\n}\n\nvar XML_NAME_SPACE = \"http://www.w3.org/2000/svg\";\nvar PATH = \"m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z\";\nvar SIZE = 40;\n\nfunction Arrows(Splide2, Components2, options) {\n  var event = EventInterface(Splide2);\n  var on = event.on,\n      bind = event.bind,\n      emit = event.emit;\n  var classes = options.classes,\n      i18n = options.i18n;\n  var Elements = Components2.Elements,\n      Controller = Components2.Controller;\n  var placeholder = Elements.arrows,\n      track = Elements.track;\n  var wrapper = placeholder;\n  var prev = Elements.prev;\n  var next = Elements.next;\n  var created;\n  var wrapperClasses;\n  var arrows = {};\n\n  function mount() {\n    init();\n    on(EVENT_UPDATED, remount);\n  }\n\n  function remount() {\n    destroy();\n    mount();\n  }\n\n  function init() {\n    var enabled = options.arrows;\n\n    if (enabled && !(prev && next)) {\n      createArrows();\n    }\n\n    if (prev && next) {\n      assign(arrows, {\n        prev: prev,\n        next: next\n      });\n      display(wrapper, enabled ? \"\" : \"none\");\n      addClass(wrapper, wrapperClasses = CLASS_ARROWS + \"--\" + options.direction);\n\n      if (enabled) {\n        listen();\n        update();\n        setAttribute([prev, next], ARIA_CONTROLS, track.id);\n        emit(EVENT_ARROWS_MOUNTED, prev, next);\n      }\n    }\n  }\n\n  function destroy() {\n    event.destroy();\n    removeClass(wrapper, wrapperClasses);\n\n    if (created) {\n      remove(placeholder ? [prev, next] : wrapper);\n      prev = next = null;\n    } else {\n      removeAttribute([prev, next], ALL_ATTRIBUTES);\n    }\n  }\n\n  function listen() {\n    on([EVENT_MOUNTED, EVENT_MOVED, EVENT_REFRESH, EVENT_SCROLLED, EVENT_END_INDEX_CHANGED], update);\n    bind(next, \"click\", apply(go, \">\"));\n    bind(prev, \"click\", apply(go, \"<\"));\n  }\n\n  function go(control) {\n    Controller.go(control, true);\n  }\n\n  function createArrows() {\n    wrapper = placeholder || create(\"div\", classes.arrows);\n    prev = createArrow(true);\n    next = createArrow(false);\n    created = true;\n    append(wrapper, [prev, next]);\n    !placeholder && before(wrapper, track);\n  }\n\n  function createArrow(prev2) {\n    var arrow = \"<button class=\\\"\" + classes.arrow + \" \" + (prev2 ? classes.prev : classes.next) + \"\\\" type=\\\"button\\\"><svg xmlns=\\\"\" + XML_NAME_SPACE + \"\\\" viewBox=\\\"0 0 \" + SIZE + \" \" + SIZE + \"\\\" width=\\\"\" + SIZE + \"\\\" height=\\\"\" + SIZE + \"\\\" focusable=\\\"false\\\"><path d=\\\"\" + (options.arrowPath || PATH) + \"\\\" />\";\n    return parseHtml(arrow);\n  }\n\n  function update() {\n    if (prev && next) {\n      var index = Splide2.index;\n      var prevIndex = Controller.getPrev();\n      var nextIndex = Controller.getNext();\n      var prevLabel = prevIndex > -1 && index < prevIndex ? i18n.last : i18n.prev;\n      var nextLabel = nextIndex > -1 && index > nextIndex ? i18n.first : i18n.next;\n      prev.disabled = prevIndex < 0;\n      next.disabled = nextIndex < 0;\n      setAttribute(prev, ARIA_LABEL, prevLabel);\n      setAttribute(next, ARIA_LABEL, nextLabel);\n      emit(EVENT_ARROWS_UPDATED, prev, next, prevIndex, nextIndex);\n    }\n  }\n\n  return {\n    arrows: arrows,\n    mount: mount,\n    destroy: destroy,\n    update: update\n  };\n}\n\nvar INTERVAL_DATA_ATTRIBUTE = DATA_ATTRIBUTE + \"-interval\";\n\nfunction Autoplay(Splide2, Components2, options) {\n  var _EventInterface6 = EventInterface(Splide2),\n      on = _EventInterface6.on,\n      bind = _EventInterface6.bind,\n      emit = _EventInterface6.emit;\n\n  var interval = RequestInterval(options.interval, Splide2.go.bind(Splide2, \">\"), onAnimationFrame);\n  var isPaused = interval.isPaused;\n  var Elements = Components2.Elements,\n      _Components2$Elements4 = Components2.Elements,\n      root = _Components2$Elements4.root,\n      toggle = _Components2$Elements4.toggle;\n  var autoplay = options.autoplay;\n  var hovered;\n  var focused;\n  var stopped = autoplay === \"pause\";\n\n  function mount() {\n    if (autoplay) {\n      listen();\n      toggle && setAttribute(toggle, ARIA_CONTROLS, Elements.track.id);\n      stopped || play();\n      update();\n    }\n  }\n\n  function listen() {\n    if (options.pauseOnHover) {\n      bind(root, \"mouseenter mouseleave\", function (e) {\n        hovered = e.type === \"mouseenter\";\n        autoToggle();\n      });\n    }\n\n    if (options.pauseOnFocus) {\n      bind(root, \"focusin focusout\", function (e) {\n        focused = e.type === \"focusin\";\n        autoToggle();\n      });\n    }\n\n    if (toggle) {\n      bind(toggle, \"click\", function () {\n        stopped ? play() : pause(true);\n      });\n    }\n\n    on([EVENT_MOVE, EVENT_SCROLL, EVENT_REFRESH], interval.rewind);\n    on(EVENT_MOVE, onMove);\n  }\n\n  function play() {\n    if (isPaused() && Components2.Slides.isEnough()) {\n      interval.start(!options.resetProgress);\n      focused = hovered = stopped = false;\n      update();\n      emit(EVENT_AUTOPLAY_PLAY);\n    }\n  }\n\n  function pause(stop) {\n    if (stop === void 0) {\n      stop = true;\n    }\n\n    stopped = !!stop;\n    update();\n\n    if (!isPaused()) {\n      interval.pause();\n      emit(EVENT_AUTOPLAY_PAUSE);\n    }\n  }\n\n  function autoToggle() {\n    if (!stopped) {\n      hovered || focused ? pause(false) : play();\n    }\n  }\n\n  function update() {\n    if (toggle) {\n      toggleClass(toggle, CLASS_ACTIVE, !stopped);\n      setAttribute(toggle, ARIA_LABEL, options.i18n[stopped ? \"play\" : \"pause\"]);\n    }\n  }\n\n  function onAnimationFrame(rate) {\n    var bar = Elements.bar;\n    bar && style(bar, \"width\", rate * 100 + \"%\");\n    emit(EVENT_AUTOPLAY_PLAYING, rate);\n  }\n\n  function onMove(index) {\n    var Slide = Components2.Slides.getAt(index);\n    interval.set(Slide && +getAttribute(Slide.slide, INTERVAL_DATA_ATTRIBUTE) || options.interval);\n  }\n\n  return {\n    mount: mount,\n    destroy: interval.cancel,\n    play: play,\n    pause: pause,\n    isPaused: isPaused\n  };\n}\n\nfunction Cover(Splide2, Components2, options) {\n  var _EventInterface7 = EventInterface(Splide2),\n      on = _EventInterface7.on;\n\n  function mount() {\n    if (options.cover) {\n      on(EVENT_LAZYLOAD_LOADED, apply(toggle, true));\n      on([EVENT_MOUNTED, EVENT_UPDATED, EVENT_REFRESH], apply(cover, true));\n    }\n  }\n\n  function cover(cover2) {\n    Components2.Slides.forEach(function (Slide) {\n      var img = child(Slide.container || Slide.slide, \"img\");\n\n      if (img && img.src) {\n        toggle(cover2, img, Slide);\n      }\n    });\n  }\n\n  function toggle(cover2, img, Slide) {\n    Slide.style(\"background\", cover2 ? \"center/cover no-repeat url(\\\"\" + img.src + \"\\\")\" : \"\", true);\n    display(img, cover2 ? \"none\" : \"\");\n  }\n\n  return {\n    mount: mount,\n    destroy: apply(cover, false)\n  };\n}\n\nvar BOUNCE_DIFF_THRESHOLD = 10;\nvar BOUNCE_DURATION = 600;\nvar FRICTION_FACTOR = 0.6;\nvar BASE_VELOCITY = 1.5;\nvar MIN_DURATION = 800;\n\nfunction Scroll(Splide2, Components2, options) {\n  var _EventInterface8 = EventInterface(Splide2),\n      on = _EventInterface8.on,\n      emit = _EventInterface8.emit;\n\n  var set = Splide2.state.set;\n  var Move = Components2.Move;\n  var getPosition = Move.getPosition,\n      getLimit = Move.getLimit,\n      exceededLimit = Move.exceededLimit,\n      translate = Move.translate;\n  var isSlide = Splide2.is(SLIDE);\n  var interval;\n  var callback;\n  var friction = 1;\n\n  function mount() {\n    on(EVENT_MOVE, clear);\n    on([EVENT_UPDATED, EVENT_REFRESH], cancel);\n  }\n\n  function scroll(destination, duration, snap, onScrolled, noConstrain) {\n    var from = getPosition();\n    clear();\n\n    if (snap && (!isSlide || !exceededLimit())) {\n      var size = Components2.Layout.sliderSize();\n      var offset = sign(destination) * size * floor(abs(destination) / size) || 0;\n      destination = Move.toPosition(Components2.Controller.toDest(destination % size)) + offset;\n    }\n\n    var noDistance = approximatelyEqual(from, destination, 1);\n    friction = 1;\n    duration = noDistance ? 0 : duration || max(abs(destination - from) / BASE_VELOCITY, MIN_DURATION);\n    callback = onScrolled;\n    interval = RequestInterval(duration, onEnd, apply(update, from, destination, noConstrain), 1);\n    set(SCROLLING);\n    emit(EVENT_SCROLL);\n    interval.start();\n  }\n\n  function onEnd() {\n    set(IDLE);\n    callback && callback();\n    emit(EVENT_SCROLLED);\n  }\n\n  function update(from, to, noConstrain, rate) {\n    var position = getPosition();\n    var target = from + (to - from) * easing(rate);\n    var diff = (target - position) * friction;\n    translate(position + diff);\n\n    if (isSlide && !noConstrain && exceededLimit()) {\n      friction *= FRICTION_FACTOR;\n\n      if (abs(diff) < BOUNCE_DIFF_THRESHOLD) {\n        scroll(getLimit(exceededLimit(true)), BOUNCE_DURATION, false, callback, true);\n      }\n    }\n  }\n\n  function clear() {\n    if (interval) {\n      interval.cancel();\n    }\n  }\n\n  function cancel() {\n    if (interval && !interval.isPaused()) {\n      clear();\n      onEnd();\n    }\n  }\n\n  function easing(t) {\n    var easingFunc = options.easingFunc;\n    return easingFunc ? easingFunc(t) : 1 - Math.pow(1 - t, 4);\n  }\n\n  return {\n    mount: mount,\n    destroy: clear,\n    scroll: scroll,\n    cancel: cancel\n  };\n}\n\nvar SCROLL_LISTENER_OPTIONS = {\n  passive: false,\n  capture: true\n};\n\nfunction Drag(Splide2, Components2, options) {\n  var _EventInterface9 = EventInterface(Splide2),\n      on = _EventInterface9.on,\n      emit = _EventInterface9.emit,\n      bind = _EventInterface9.bind,\n      unbind = _EventInterface9.unbind;\n\n  var state = Splide2.state;\n  var Move = Components2.Move,\n      Scroll = Components2.Scroll,\n      Controller = Components2.Controller,\n      track = Components2.Elements.track,\n      reduce = Components2.Media.reduce;\n  var _Components2$Directio2 = Components2.Direction,\n      resolve = _Components2$Directio2.resolve,\n      orient = _Components2$Directio2.orient;\n  var getPosition = Move.getPosition,\n      exceededLimit = Move.exceededLimit;\n  var basePosition;\n  var baseEvent;\n  var prevBaseEvent;\n  var isFree;\n  var dragging;\n  var exceeded = false;\n  var clickPrevented;\n  var disabled;\n  var target;\n\n  function mount() {\n    bind(track, POINTER_MOVE_EVENTS, noop, SCROLL_LISTENER_OPTIONS);\n    bind(track, POINTER_UP_EVENTS, noop, SCROLL_LISTENER_OPTIONS);\n    bind(track, POINTER_DOWN_EVENTS, onPointerDown, SCROLL_LISTENER_OPTIONS);\n    bind(track, \"click\", onClick, {\n      capture: true\n    });\n    bind(track, \"dragstart\", prevent);\n    on([EVENT_MOUNTED, EVENT_UPDATED], init);\n  }\n\n  function init() {\n    var drag = options.drag;\n    disable(!drag);\n    isFree = drag === \"free\";\n  }\n\n  function onPointerDown(e) {\n    clickPrevented = false;\n\n    if (!disabled) {\n      var isTouch = isTouchEvent(e);\n\n      if (isDraggable(e.target) && (isTouch || !e.button)) {\n        if (!Controller.isBusy()) {\n          target = isTouch ? track : window;\n          dragging = state.is([MOVING, SCROLLING]);\n          prevBaseEvent = null;\n          bind(target, POINTER_MOVE_EVENTS, onPointerMove, SCROLL_LISTENER_OPTIONS);\n          bind(target, POINTER_UP_EVENTS, onPointerUp, SCROLL_LISTENER_OPTIONS);\n          Move.cancel();\n          Scroll.cancel();\n          save(e);\n        } else {\n          prevent(e, true);\n        }\n      }\n    }\n  }\n\n  function onPointerMove(e) {\n    if (!state.is(DRAGGING)) {\n      state.set(DRAGGING);\n      emit(EVENT_DRAG);\n    }\n\n    if (e.cancelable) {\n      if (dragging) {\n        Move.translate(basePosition + constrain(diffCoord(e)));\n        var expired = diffTime(e) > LOG_INTERVAL;\n        var hasExceeded = exceeded !== (exceeded = exceededLimit());\n\n        if (expired || hasExceeded) {\n          save(e);\n        }\n\n        clickPrevented = true;\n        emit(EVENT_DRAGGING);\n        prevent(e);\n      } else if (isSliderDirection(e)) {\n        dragging = shouldStart(e);\n        prevent(e);\n      }\n    }\n  }\n\n  function onPointerUp(e) {\n    if (state.is(DRAGGING)) {\n      state.set(IDLE);\n      emit(EVENT_DRAGGED);\n    }\n\n    if (dragging) {\n      move(e);\n      prevent(e);\n    }\n\n    unbind(target, POINTER_MOVE_EVENTS, onPointerMove);\n    unbind(target, POINTER_UP_EVENTS, onPointerUp);\n    dragging = false;\n  }\n\n  function onClick(e) {\n    if (!disabled && clickPrevented) {\n      prevent(e, true);\n    }\n  }\n\n  function save(e) {\n    prevBaseEvent = baseEvent;\n    baseEvent = e;\n    basePosition = getPosition();\n  }\n\n  function move(e) {\n    var velocity = computeVelocity(e);\n    var destination = computeDestination(velocity);\n    var rewind = options.rewind && options.rewindByDrag;\n    reduce(false);\n\n    if (isFree) {\n      Controller.scroll(destination, 0, options.snap);\n    } else if (Splide2.is(FADE)) {\n      Controller.go(orient(sign(velocity)) < 0 ? rewind ? \"<\" : \"-\" : rewind ? \">\" : \"+\");\n    } else if (Splide2.is(SLIDE) && exceeded && rewind) {\n      Controller.go(exceededLimit(true) ? \">\" : \"<\");\n    } else {\n      Controller.go(Controller.toDest(destination), true);\n    }\n\n    reduce(true);\n  }\n\n  function shouldStart(e) {\n    var thresholds = options.dragMinThreshold;\n    var isObj = isObject(thresholds);\n    var mouse = isObj && thresholds.mouse || 0;\n    var touch = (isObj ? thresholds.touch : +thresholds) || 10;\n    return abs(diffCoord(e)) > (isTouchEvent(e) ? touch : mouse);\n  }\n\n  function isSliderDirection(e) {\n    return abs(diffCoord(e)) > abs(diffCoord(e, true));\n  }\n\n  function computeVelocity(e) {\n    if (Splide2.is(LOOP) || !exceeded) {\n      var time = diffTime(e);\n\n      if (time && time < LOG_INTERVAL) {\n        return diffCoord(e) / time;\n      }\n    }\n\n    return 0;\n  }\n\n  function computeDestination(velocity) {\n    return getPosition() + sign(velocity) * min(abs(velocity) * (options.flickPower || 600), isFree ? Infinity : Components2.Layout.listSize() * (options.flickMaxPages || 1));\n  }\n\n  function diffCoord(e, orthogonal) {\n    return coordOf(e, orthogonal) - coordOf(getBaseEvent(e), orthogonal);\n  }\n\n  function diffTime(e) {\n    return timeOf(e) - timeOf(getBaseEvent(e));\n  }\n\n  function getBaseEvent(e) {\n    return baseEvent === e && prevBaseEvent || baseEvent;\n  }\n\n  function coordOf(e, orthogonal) {\n    return (isTouchEvent(e) ? e.changedTouches[0] : e)[\"page\" + resolve(orthogonal ? \"Y\" : \"X\")];\n  }\n\n  function constrain(diff) {\n    return diff / (exceeded && Splide2.is(SLIDE) ? FRICTION : 1);\n  }\n\n  function isDraggable(target2) {\n    var noDrag = options.noDrag;\n    return !matches(target2, \".\" + CLASS_PAGINATION_PAGE + \", .\" + CLASS_ARROW) && (!noDrag || !matches(target2, noDrag));\n  }\n\n  function isTouchEvent(e) {\n    return typeof TouchEvent !== \"undefined\" && e instanceof TouchEvent;\n  }\n\n  function isDragging() {\n    return dragging;\n  }\n\n  function disable(value) {\n    disabled = value;\n  }\n\n  return {\n    mount: mount,\n    disable: disable,\n    isDragging: isDragging\n  };\n}\n\nvar NORMALIZATION_MAP = {\n  Spacebar: \" \",\n  Right: ARROW_RIGHT,\n  Left: ARROW_LEFT,\n  Up: ARROW_UP,\n  Down: ARROW_DOWN\n};\n\nfunction normalizeKey(key) {\n  key = isString(key) ? key : key.key;\n  return NORMALIZATION_MAP[key] || key;\n}\n\nvar KEYBOARD_EVENT = \"keydown\";\n\nfunction Keyboard(Splide2, Components2, options) {\n  var _EventInterface10 = EventInterface(Splide2),\n      on = _EventInterface10.on,\n      bind = _EventInterface10.bind,\n      unbind = _EventInterface10.unbind;\n\n  var root = Splide2.root;\n  var resolve = Components2.Direction.resolve;\n  var target;\n  var disabled;\n\n  function mount() {\n    init();\n    on(EVENT_UPDATED, destroy);\n    on(EVENT_UPDATED, init);\n    on(EVENT_MOVE, onMove);\n  }\n\n  function init() {\n    var keyboard = options.keyboard;\n\n    if (keyboard) {\n      target = keyboard === \"global\" ? window : root;\n      bind(target, KEYBOARD_EVENT, onKeydown);\n    }\n  }\n\n  function destroy() {\n    unbind(target, KEYBOARD_EVENT);\n  }\n\n  function disable(value) {\n    disabled = value;\n  }\n\n  function onMove() {\n    var _disabled = disabled;\n    disabled = true;\n    nextTick(function () {\n      disabled = _disabled;\n    });\n  }\n\n  function onKeydown(e) {\n    if (!disabled) {\n      var key = normalizeKey(e);\n\n      if (key === resolve(ARROW_LEFT)) {\n        Splide2.go(\"<\");\n      } else if (key === resolve(ARROW_RIGHT)) {\n        Splide2.go(\">\");\n      }\n    }\n  }\n\n  return {\n    mount: mount,\n    destroy: destroy,\n    disable: disable\n  };\n}\n\nvar SRC_DATA_ATTRIBUTE = DATA_ATTRIBUTE + \"-lazy\";\nvar SRCSET_DATA_ATTRIBUTE = SRC_DATA_ATTRIBUTE + \"-srcset\";\nvar IMAGE_SELECTOR = \"[\" + SRC_DATA_ATTRIBUTE + \"], [\" + SRCSET_DATA_ATTRIBUTE + \"]\";\n\nfunction LazyLoad(Splide2, Components2, options) {\n  var _EventInterface11 = EventInterface(Splide2),\n      on = _EventInterface11.on,\n      off = _EventInterface11.off,\n      bind = _EventInterface11.bind,\n      emit = _EventInterface11.emit;\n\n  var isSequential = options.lazyLoad === \"sequential\";\n  var events = [EVENT_MOVED, EVENT_SCROLLED];\n  var entries = [];\n\n  function mount() {\n    if (options.lazyLoad) {\n      init();\n      on(EVENT_REFRESH, init);\n    }\n  }\n\n  function init() {\n    empty(entries);\n    register();\n\n    if (isSequential) {\n      loadNext();\n    } else {\n      off(events);\n      on(events, check);\n      check();\n    }\n  }\n\n  function register() {\n    Components2.Slides.forEach(function (Slide) {\n      queryAll(Slide.slide, IMAGE_SELECTOR).forEach(function (img) {\n        var src = getAttribute(img, SRC_DATA_ATTRIBUTE);\n        var srcset = getAttribute(img, SRCSET_DATA_ATTRIBUTE);\n\n        if (src !== img.src || srcset !== img.srcset) {\n          var className = options.classes.spinner;\n          var parent = img.parentElement;\n          var spinner = child(parent, \".\" + className) || create(\"span\", className, parent);\n          entries.push([img, Slide, spinner]);\n          img.src || display(img, \"none\");\n        }\n      });\n    });\n  }\n\n  function check() {\n    entries = entries.filter(function (data) {\n      var distance = options.perPage * ((options.preloadPages || 1) + 1) - 1;\n      return data[1].isWithin(Splide2.index, distance) ? load(data) : true;\n    });\n    entries.length || off(events);\n  }\n\n  function load(data) {\n    var img = data[0];\n    addClass(data[1].slide, CLASS_LOADING);\n    bind(img, \"load error\", apply(onLoad, data));\n    setAttribute(img, \"src\", getAttribute(img, SRC_DATA_ATTRIBUTE));\n    setAttribute(img, \"srcset\", getAttribute(img, SRCSET_DATA_ATTRIBUTE));\n    removeAttribute(img, SRC_DATA_ATTRIBUTE);\n    removeAttribute(img, SRCSET_DATA_ATTRIBUTE);\n  }\n\n  function onLoad(data, e) {\n    var img = data[0],\n        Slide = data[1];\n    removeClass(Slide.slide, CLASS_LOADING);\n\n    if (e.type !== \"error\") {\n      remove(data[2]);\n      display(img, \"\");\n      emit(EVENT_LAZYLOAD_LOADED, img, Slide);\n      emit(EVENT_RESIZE);\n    }\n\n    isSequential && loadNext();\n  }\n\n  function loadNext() {\n    entries.length && load(entries.shift());\n  }\n\n  return {\n    mount: mount,\n    destroy: apply(empty, entries),\n    check: check\n  };\n}\n\nfunction Pagination(Splide2, Components2, options) {\n  var event = EventInterface(Splide2);\n  var on = event.on,\n      emit = event.emit,\n      bind = event.bind;\n  var Slides = Components2.Slides,\n      Elements = Components2.Elements,\n      Controller = Components2.Controller;\n  var hasFocus = Controller.hasFocus,\n      getIndex = Controller.getIndex,\n      go = Controller.go;\n  var resolve = Components2.Direction.resolve;\n  var placeholder = Elements.pagination;\n  var items = [];\n  var list;\n  var paginationClasses;\n\n  function mount() {\n    destroy();\n    on([EVENT_UPDATED, EVENT_REFRESH, EVENT_END_INDEX_CHANGED], mount);\n    var enabled = options.pagination;\n    placeholder && display(placeholder, enabled ? \"\" : \"none\");\n\n    if (enabled) {\n      on([EVENT_MOVE, EVENT_SCROLL, EVENT_SCROLLED], update);\n      createPagination();\n      update();\n      emit(EVENT_PAGINATION_MOUNTED, {\n        list: list,\n        items: items\n      }, getAt(Splide2.index));\n    }\n  }\n\n  function destroy() {\n    if (list) {\n      remove(placeholder ? slice(list.children) : list);\n      removeClass(list, paginationClasses);\n      empty(items);\n      list = null;\n    }\n\n    event.destroy();\n  }\n\n  function createPagination() {\n    var length = Splide2.length;\n    var classes = options.classes,\n        i18n = options.i18n,\n        perPage = options.perPage;\n    var max = hasFocus() ? Controller.getEnd() + 1 : ceil(length / perPage);\n    list = placeholder || create(\"ul\", classes.pagination, Elements.track.parentElement);\n    addClass(list, paginationClasses = CLASS_PAGINATION + \"--\" + getDirection());\n    setAttribute(list, ROLE, \"tablist\");\n    setAttribute(list, ARIA_LABEL, i18n.select);\n    setAttribute(list, ARIA_ORIENTATION, getDirection() === TTB ? \"vertical\" : \"\");\n\n    for (var i = 0; i < max; i++) {\n      var li = create(\"li\", null, list);\n      var button = create(\"button\", {\n        class: classes.page,\n        type: \"button\"\n      }, li);\n      var controls = Slides.getIn(i).map(function (Slide) {\n        return Slide.slide.id;\n      });\n      var text = !hasFocus() && perPage > 1 ? i18n.pageX : i18n.slideX;\n      bind(button, \"click\", apply(onClick, i));\n\n      if (options.paginationKeyboard) {\n        bind(button, \"keydown\", apply(onKeydown, i));\n      }\n\n      setAttribute(li, ROLE, \"presentation\");\n      setAttribute(button, ROLE, \"tab\");\n      setAttribute(button, ARIA_CONTROLS, controls.join(\" \"));\n      setAttribute(button, ARIA_LABEL, format(text, i + 1));\n      setAttribute(button, TAB_INDEX, -1);\n      items.push({\n        li: li,\n        button: button,\n        page: i\n      });\n    }\n  }\n\n  function onClick(page) {\n    go(\">\" + page, true);\n  }\n\n  function onKeydown(page, e) {\n    var length = items.length;\n    var key = normalizeKey(e);\n    var dir = getDirection();\n    var nextPage = -1;\n\n    if (key === resolve(ARROW_RIGHT, false, dir)) {\n      nextPage = ++page % length;\n    } else if (key === resolve(ARROW_LEFT, false, dir)) {\n      nextPage = (--page + length) % length;\n    } else if (key === \"Home\") {\n      nextPage = 0;\n    } else if (key === \"End\") {\n      nextPage = length - 1;\n    }\n\n    var item = items[nextPage];\n\n    if (item) {\n      focus(item.button);\n      go(\">\" + nextPage);\n      prevent(e, true);\n    }\n  }\n\n  function getDirection() {\n    return options.paginationDirection || options.direction;\n  }\n\n  function getAt(index) {\n    return items[Controller.toPage(index)];\n  }\n\n  function update() {\n    var prev = getAt(getIndex(true));\n    var curr = getAt(getIndex());\n\n    if (prev) {\n      var button = prev.button;\n      removeClass(button, CLASS_ACTIVE);\n      removeAttribute(button, ARIA_SELECTED);\n      setAttribute(button, TAB_INDEX, -1);\n    }\n\n    if (curr) {\n      var _button = curr.button;\n      addClass(_button, CLASS_ACTIVE);\n      setAttribute(_button, ARIA_SELECTED, true);\n      setAttribute(_button, TAB_INDEX, \"\");\n    }\n\n    emit(EVENT_PAGINATION_UPDATED, {\n      list: list,\n      items: items\n    }, prev, curr);\n  }\n\n  return {\n    items: items,\n    mount: mount,\n    destroy: destroy,\n    getAt: getAt,\n    update: update\n  };\n}\n\nvar TRIGGER_KEYS = [\" \", \"Enter\"];\n\nfunction Sync(Splide2, Components2, options) {\n  var isNavigation = options.isNavigation,\n      slideFocus = options.slideFocus;\n  var events = [];\n\n  function mount() {\n    Splide2.splides.forEach(function (target) {\n      if (!target.isParent) {\n        sync(Splide2, target.splide);\n        sync(target.splide, Splide2);\n      }\n    });\n\n    if (isNavigation) {\n      navigate();\n    }\n  }\n\n  function destroy() {\n    events.forEach(function (event) {\n      event.destroy();\n    });\n    empty(events);\n  }\n\n  function remount() {\n    destroy();\n    mount();\n  }\n\n  function sync(splide, target) {\n    var event = EventInterface(splide);\n    event.on(EVENT_MOVE, function (index, prev, dest) {\n      target.go(target.is(LOOP) ? dest : index);\n    });\n    events.push(event);\n  }\n\n  function navigate() {\n    var event = EventInterface(Splide2);\n    var on = event.on;\n    on(EVENT_CLICK, onClick);\n    on(EVENT_SLIDE_KEYDOWN, onKeydown);\n    on([EVENT_MOUNTED, EVENT_UPDATED], update);\n    events.push(event);\n    event.emit(EVENT_NAVIGATION_MOUNTED, Splide2.splides);\n  }\n\n  function update() {\n    setAttribute(Components2.Elements.list, ARIA_ORIENTATION, options.direction === TTB ? \"vertical\" : \"\");\n  }\n\n  function onClick(Slide) {\n    Splide2.go(Slide.index);\n  }\n\n  function onKeydown(Slide, e) {\n    if (includes(TRIGGER_KEYS, normalizeKey(e))) {\n      onClick(Slide);\n      prevent(e);\n    }\n  }\n\n  return {\n    setup: apply(Components2.Media.set, {\n      slideFocus: isUndefined(slideFocus) ? isNavigation : slideFocus\n    }, true),\n    mount: mount,\n    destroy: destroy,\n    remount: remount\n  };\n}\n\nfunction Wheel(Splide2, Components2, options) {\n  var _EventInterface12 = EventInterface(Splide2),\n      bind = _EventInterface12.bind;\n\n  var lastTime = 0;\n\n  function mount() {\n    if (options.wheel) {\n      bind(Components2.Elements.track, \"wheel\", onWheel, SCROLL_LISTENER_OPTIONS);\n    }\n  }\n\n  function onWheel(e) {\n    if (e.cancelable) {\n      var deltaY = e.deltaY;\n      var backwards = deltaY < 0;\n      var timeStamp = timeOf(e);\n\n      var _min = options.wheelMinThreshold || 0;\n\n      var sleep = options.wheelSleep || 0;\n\n      if (abs(deltaY) > _min && timeStamp - lastTime > sleep) {\n        Splide2.go(backwards ? \"<\" : \">\");\n        lastTime = timeStamp;\n      }\n\n      shouldPrevent(backwards) && prevent(e);\n    }\n  }\n\n  function shouldPrevent(backwards) {\n    return !options.releaseWheel || Splide2.state.is(MOVING) || Components2.Controller.getAdjacent(backwards) !== -1;\n  }\n\n  return {\n    mount: mount\n  };\n}\n\nvar SR_REMOVAL_DELAY = 90;\n\nfunction Live(Splide2, Components2, options) {\n  var _EventInterface13 = EventInterface(Splide2),\n      on = _EventInterface13.on;\n\n  var track = Components2.Elements.track;\n  var enabled = options.live && !options.isNavigation;\n  var sr = create(\"span\", CLASS_SR);\n  var interval = RequestInterval(SR_REMOVAL_DELAY, apply(toggle, false));\n\n  function mount() {\n    if (enabled) {\n      disable(!Components2.Autoplay.isPaused());\n      setAttribute(track, ARIA_ATOMIC, true);\n      sr.textContent = \"\\u2026\";\n      on(EVENT_AUTOPLAY_PLAY, apply(disable, true));\n      on(EVENT_AUTOPLAY_PAUSE, apply(disable, false));\n      on([EVENT_MOVED, EVENT_SCROLLED], apply(toggle, true));\n    }\n  }\n\n  function toggle(active) {\n    setAttribute(track, ARIA_BUSY, active);\n\n    if (active) {\n      append(track, sr);\n      interval.start();\n    } else {\n      remove(sr);\n      interval.cancel();\n    }\n  }\n\n  function destroy() {\n    removeAttribute(track, [ARIA_LIVE, ARIA_ATOMIC, ARIA_BUSY]);\n    remove(sr);\n  }\n\n  function disable(disabled) {\n    if (enabled) {\n      setAttribute(track, ARIA_LIVE, disabled ? \"off\" : \"polite\");\n    }\n  }\n\n  return {\n    mount: mount,\n    disable: disable,\n    destroy: destroy\n  };\n}\n\nvar ComponentConstructors = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  Media: Media,\n  Direction: Direction,\n  Elements: Elements,\n  Slides: Slides,\n  Layout: Layout,\n  Clones: Clones,\n  Move: Move,\n  Controller: Controller,\n  Arrows: Arrows,\n  Autoplay: Autoplay,\n  Cover: Cover,\n  Scroll: Scroll,\n  Drag: Drag,\n  Keyboard: Keyboard,\n  LazyLoad: LazyLoad,\n  Pagination: Pagination,\n  Sync: Sync,\n  Wheel: Wheel,\n  Live: Live\n});\nvar I18N = {\n  prev: \"Previous slide\",\n  next: \"Next slide\",\n  first: \"Go to first slide\",\n  last: \"Go to last slide\",\n  slideX: \"Go to slide %s\",\n  pageX: \"Go to page %s\",\n  play: \"Start autoplay\",\n  pause: \"Pause autoplay\",\n  carousel: \"carousel\",\n  slide: \"slide\",\n  select: \"Select a slide to show\",\n  slideLabel: \"%s of %s\"\n};\nvar DEFAULTS = {\n  type: \"slide\",\n  role: \"region\",\n  speed: 400,\n  perPage: 1,\n  cloneStatus: true,\n  arrows: true,\n  pagination: true,\n  paginationKeyboard: true,\n  interval: 5e3,\n  pauseOnHover: true,\n  pauseOnFocus: true,\n  resetProgress: true,\n  easing: \"cubic-bezier(0.25, 1, 0.5, 1)\",\n  drag: true,\n  direction: \"ltr\",\n  trimSpace: true,\n  focusableNodes: \"a, button, textarea, input, select, iframe\",\n  live: true,\n  classes: CLASSES,\n  i18n: I18N,\n  reducedMotion: {\n    speed: 0,\n    rewindSpeed: 0,\n    autoplay: \"pause\"\n  }\n};\n\nfunction Fade(Splide2, Components2, options) {\n  var Slides = Components2.Slides;\n\n  function mount() {\n    EventInterface(Splide2).on([EVENT_MOUNTED, EVENT_REFRESH], init);\n  }\n\n  function init() {\n    Slides.forEach(function (Slide) {\n      Slide.style(\"transform\", \"translateX(-\" + 100 * Slide.index + \"%)\");\n    });\n  }\n\n  function start(index, done) {\n    Slides.style(\"transition\", \"opacity \" + options.speed + \"ms \" + options.easing);\n    nextTick(done);\n  }\n\n  return {\n    mount: mount,\n    start: start,\n    cancel: noop\n  };\n}\n\nfunction Slide(Splide2, Components2, options) {\n  var Move = Components2.Move,\n      Controller = Components2.Controller,\n      Scroll = Components2.Scroll;\n  var list = Components2.Elements.list;\n  var transition = apply(style, list, \"transition\");\n  var endCallback;\n\n  function mount() {\n    EventInterface(Splide2).bind(list, \"transitionend\", function (e) {\n      if (e.target === list && endCallback) {\n        cancel();\n        endCallback();\n      }\n    });\n  }\n\n  function start(index, done) {\n    var destination = Move.toPosition(index, true);\n    var position = Move.getPosition();\n    var speed = getSpeed(index);\n\n    if (abs(destination - position) >= 1 && speed >= 1) {\n      if (options.useScroll) {\n        Scroll.scroll(destination, speed, false, done);\n      } else {\n        transition(\"transform \" + speed + \"ms \" + options.easing);\n        Move.translate(destination, true);\n        endCallback = done;\n      }\n    } else {\n      Move.jump(index);\n      done();\n    }\n  }\n\n  function cancel() {\n    transition(\"\");\n    Scroll.cancel();\n  }\n\n  function getSpeed(index) {\n    var rewindSpeed = options.rewindSpeed;\n\n    if (Splide2.is(SLIDE) && rewindSpeed) {\n      var prev = Controller.getIndex(true);\n      var end = Controller.getEnd();\n\n      if (prev === 0 && index >= end || prev >= end && index === 0) {\n        return rewindSpeed;\n      }\n    }\n\n    return options.speed;\n  }\n\n  return {\n    mount: mount,\n    start: start,\n    cancel: cancel\n  };\n}\n\nvar _Splide = /*#__PURE__*/function () {\n  function _Splide(target, options) {\n    this.event = EventInterface();\n    this.Components = {};\n    this.state = State(CREATED);\n    this.splides = [];\n    this._o = {};\n    this._E = {};\n    var root = isString(target) ? query(document, target) : target;\n    assert(root, root + \" is invalid.\");\n    this.root = root;\n    options = merge({\n      label: getAttribute(root, ARIA_LABEL) || \"\",\n      labelledby: getAttribute(root, ARIA_LABELLEDBY) || \"\"\n    }, DEFAULTS, _Splide.defaults, options || {});\n\n    try {\n      merge(options, JSON.parse(getAttribute(root, DATA_ATTRIBUTE)));\n    } catch (e) {\n      assert(false, \"Invalid JSON\");\n    }\n\n    this._o = Object.create(merge({}, options));\n  }\n\n  var _proto = _Splide.prototype;\n\n  _proto.mount = function mount(Extensions, Transition) {\n    var _this = this;\n\n    var state = this.state,\n        Components2 = this.Components;\n    assert(state.is([CREATED, DESTROYED]), \"Already mounted!\");\n    state.set(CREATED);\n    this._C = Components2;\n    this._T = Transition || this._T || (this.is(FADE) ? Fade : Slide);\n    this._E = Extensions || this._E;\n    var Constructors = assign({}, ComponentConstructors, this._E, {\n      Transition: this._T\n    });\n    forOwn(Constructors, function (Component, key) {\n      var component = Component(_this, Components2, _this._o);\n      Components2[key] = component;\n      component.setup && component.setup();\n    });\n    forOwn(Components2, function (component) {\n      component.mount && component.mount();\n    });\n    this.emit(EVENT_MOUNTED);\n    addClass(this.root, CLASS_INITIALIZED);\n    state.set(IDLE);\n    this.emit(EVENT_READY);\n    return this;\n  };\n\n  _proto.sync = function sync(splide) {\n    this.splides.push({\n      splide: splide\n    });\n    splide.splides.push({\n      splide: this,\n      isParent: true\n    });\n\n    if (this.state.is(IDLE)) {\n      this._C.Sync.remount();\n\n      splide.Components.Sync.remount();\n    }\n\n    return this;\n  };\n\n  _proto.go = function go(control) {\n    this._C.Controller.go(control);\n\n    return this;\n  };\n\n  _proto.on = function on(events, callback) {\n    this.event.on(events, callback);\n    return this;\n  };\n\n  _proto.off = function off(events) {\n    this.event.off(events);\n    return this;\n  };\n\n  _proto.emit = function emit(event) {\n    var _this$event;\n\n    (_this$event = this.event).emit.apply(_this$event, [event].concat(slice(arguments, 1)));\n\n    return this;\n  };\n\n  _proto.add = function add(slides, index) {\n    this._C.Slides.add(slides, index);\n\n    return this;\n  };\n\n  _proto.remove = function remove(matcher) {\n    this._C.Slides.remove(matcher);\n\n    return this;\n  };\n\n  _proto.is = function is(type) {\n    return this._o.type === type;\n  };\n\n  _proto.refresh = function refresh() {\n    this.emit(EVENT_REFRESH);\n    return this;\n  };\n\n  _proto.destroy = function destroy(completely) {\n    if (completely === void 0) {\n      completely = true;\n    }\n\n    var event = this.event,\n        state = this.state;\n\n    if (state.is(CREATED)) {\n      EventInterface(this).on(EVENT_READY, this.destroy.bind(this, completely));\n    } else {\n      forOwn(this._C, function (component) {\n        component.destroy && component.destroy(completely);\n      }, true);\n      event.emit(EVENT_DESTROY);\n      event.destroy();\n      completely && empty(this.splides);\n      state.set(DESTROYED);\n    }\n\n    return this;\n  };\n\n  _createClass(_Splide, [{\n    key: \"options\",\n    get: function get() {\n      return this._o;\n    },\n    set: function set(options) {\n      this._C.Media.set(options, true, true);\n    }\n  }, {\n    key: \"length\",\n    get: function get() {\n      return this._C.Slides.getLength(true);\n    }\n  }, {\n    key: \"index\",\n    get: function get() {\n      return this._C.Controller.getIndex();\n    }\n  }]);\n\n  return _Splide;\n}();\n\nvar Splide = _Splide;\nSplide.defaults = {};\nSplide.STATES = STATES;\nvar CLASS_RENDERED = \"is-rendered\";\nvar RENDERER_DEFAULT_CONFIG = {\n  listTag: \"ul\",\n  slideTag: \"li\"\n};\n\nvar Style = /*#__PURE__*/function () {\n  function Style(id, options) {\n    this.styles = {};\n    this.id = id;\n    this.options = options;\n  }\n\n  var _proto2 = Style.prototype;\n\n  _proto2.rule = function rule(selector, prop, value, breakpoint) {\n    breakpoint = breakpoint || \"default\";\n    var selectors = this.styles[breakpoint] = this.styles[breakpoint] || {};\n    var styles = selectors[selector] = selectors[selector] || {};\n    styles[prop] = value;\n  };\n\n  _proto2.build = function build() {\n    var _this2 = this;\n\n    var css = \"\";\n\n    if (this.styles.default) {\n      css += this.buildSelectors(this.styles.default);\n    }\n\n    Object.keys(this.styles).sort(function (n, m) {\n      return _this2.options.mediaQuery === \"min\" ? +n - +m : +m - +n;\n    }).forEach(function (breakpoint) {\n      if (breakpoint !== \"default\") {\n        css += \"@media screen and (max-width: \" + breakpoint + \"px) {\";\n        css += _this2.buildSelectors(_this2.styles[breakpoint]);\n        css += \"}\";\n      }\n    });\n    return css;\n  };\n\n  _proto2.buildSelectors = function buildSelectors(selectors) {\n    var _this3 = this;\n\n    var css = \"\";\n    forOwn(selectors, function (styles, selector) {\n      selector = (\"#\" + _this3.id + \" \" + selector).trim();\n      css += selector + \" {\";\n      forOwn(styles, function (value, prop) {\n        if (value || value === 0) {\n          css += prop + \": \" + value + \";\";\n        }\n      });\n      css += \"}\";\n    });\n    return css;\n  };\n\n  return Style;\n}();\n\nvar SplideRenderer = /*#__PURE__*/function () {\n  function SplideRenderer(contents, options, config, defaults) {\n    this.slides = [];\n    this.options = {};\n    this.breakpoints = [];\n    merge(DEFAULTS, defaults || {});\n    merge(merge(this.options, DEFAULTS), options || {});\n    this.contents = contents;\n    this.config = assign({}, RENDERER_DEFAULT_CONFIG, config || {});\n    this.id = this.config.id || uniqueId(\"splide\");\n    this.Style = new Style(this.id, this.options);\n    this.Direction = Direction(null, null, this.options);\n    assert(this.contents.length, \"Provide at least 1 content.\");\n    this.init();\n  }\n\n  SplideRenderer.clean = function clean(splide) {\n    var _EventInterface14 = EventInterface(splide),\n        on = _EventInterface14.on;\n\n    var root = splide.root;\n    var clones = queryAll(root, \".\" + CLASS_CLONE);\n    on(EVENT_MOUNTED, function () {\n      remove(child(root, \"style\"));\n    });\n    remove(clones);\n  };\n\n  var _proto3 = SplideRenderer.prototype;\n\n  _proto3.init = function init() {\n    this.parseBreakpoints();\n    this.initSlides();\n    this.registerRootStyles();\n    this.registerTrackStyles();\n    this.registerSlideStyles();\n    this.registerListStyles();\n  };\n\n  _proto3.initSlides = function initSlides() {\n    var _this4 = this;\n\n    push(this.slides, this.contents.map(function (content, index) {\n      content = isString(content) ? {\n        html: content\n      } : content;\n      content.styles = content.styles || {};\n      content.attrs = content.attrs || {};\n\n      _this4.cover(content);\n\n      var classes = _this4.options.classes.slide + \" \" + (index === 0 ? CLASS_ACTIVE : \"\");\n      assign(content.attrs, {\n        class: (classes + \" \" + (content.attrs.class || \"\")).trim(),\n        style: _this4.buildStyles(content.styles)\n      });\n      return content;\n    }));\n\n    if (this.isLoop()) {\n      this.generateClones(this.slides);\n    }\n  };\n\n  _proto3.registerRootStyles = function registerRootStyles() {\n    var _this5 = this;\n\n    this.breakpoints.forEach(function (_ref2) {\n      var width = _ref2[0],\n          options = _ref2[1];\n\n      _this5.Style.rule(\" \", \"max-width\", unit(options.width), width);\n    });\n  };\n\n  _proto3.registerTrackStyles = function registerTrackStyles() {\n    var _this6 = this;\n\n    var Style2 = this.Style;\n    var selector = \".\" + CLASS_TRACK;\n    this.breakpoints.forEach(function (_ref3) {\n      var width = _ref3[0],\n          options = _ref3[1];\n      Style2.rule(selector, _this6.resolve(\"paddingLeft\"), _this6.cssPadding(options, false), width);\n      Style2.rule(selector, _this6.resolve(\"paddingRight\"), _this6.cssPadding(options, true), width);\n      Style2.rule(selector, \"height\", _this6.cssTrackHeight(options), width);\n    });\n  };\n\n  _proto3.registerListStyles = function registerListStyles() {\n    var _this7 = this;\n\n    var Style2 = this.Style;\n    var selector = \".\" + CLASS_LIST;\n    this.breakpoints.forEach(function (_ref4) {\n      var width = _ref4[0],\n          options = _ref4[1];\n      Style2.rule(selector, \"transform\", _this7.buildTranslate(options), width);\n\n      if (!_this7.cssSlideHeight(options)) {\n        Style2.rule(selector, \"aspect-ratio\", _this7.cssAspectRatio(options), width);\n      }\n    });\n  };\n\n  _proto3.registerSlideStyles = function registerSlideStyles() {\n    var _this8 = this;\n\n    var Style2 = this.Style;\n    var selector = \".\" + CLASS_SLIDE;\n    this.breakpoints.forEach(function (_ref5) {\n      var width = _ref5[0],\n          options = _ref5[1];\n      Style2.rule(selector, \"width\", _this8.cssSlideWidth(options), width);\n      Style2.rule(selector, \"height\", _this8.cssSlideHeight(options) || \"100%\", width);\n      Style2.rule(selector, _this8.resolve(\"marginRight\"), unit(options.gap) || \"0px\", width);\n      Style2.rule(selector + \" > img\", \"display\", options.cover ? \"none\" : \"inline\", width);\n    });\n  };\n\n  _proto3.buildTranslate = function buildTranslate(options) {\n    var _this$Direction = this.Direction,\n        resolve = _this$Direction.resolve,\n        orient = _this$Direction.orient;\n    var values = [];\n    values.push(this.cssOffsetClones(options));\n    values.push(this.cssOffsetGaps(options));\n\n    if (this.isCenter(options)) {\n      values.push(this.buildCssValue(orient(-50), \"%\"));\n      values.push.apply(values, this.cssOffsetCenter(options));\n    }\n\n    return values.filter(Boolean).map(function (value) {\n      return \"translate\" + resolve(\"X\") + \"(\" + value + \")\";\n    }).join(\" \");\n  };\n\n  _proto3.cssOffsetClones = function cssOffsetClones(options) {\n    var _this$Direction2 = this.Direction,\n        resolve = _this$Direction2.resolve,\n        orient = _this$Direction2.orient;\n    var cloneCount = this.getCloneCount();\n\n    if (this.isFixedWidth(options)) {\n      var _this$parseCssValue = this.parseCssValue(options[resolve(\"fixedWidth\")]),\n          value = _this$parseCssValue.value,\n          unit2 = _this$parseCssValue.unit;\n\n      return this.buildCssValue(orient(value) * cloneCount, unit2);\n    }\n\n    var percent = 100 * cloneCount / options.perPage;\n    return orient(percent) + \"%\";\n  };\n\n  _proto3.cssOffsetCenter = function cssOffsetCenter(options) {\n    var _this$Direction3 = this.Direction,\n        resolve = _this$Direction3.resolve,\n        orient = _this$Direction3.orient;\n\n    if (this.isFixedWidth(options)) {\n      var _this$parseCssValue2 = this.parseCssValue(options[resolve(\"fixedWidth\")]),\n          value = _this$parseCssValue2.value,\n          unit2 = _this$parseCssValue2.unit;\n\n      return [this.buildCssValue(orient(value / 2), unit2)];\n    }\n\n    var values = [];\n    var perPage = options.perPage,\n        gap = options.gap;\n    values.push(orient(50 / perPage) + \"%\");\n\n    if (gap) {\n      var _this$parseCssValue3 = this.parseCssValue(gap),\n          _value = _this$parseCssValue3.value,\n          _unit = _this$parseCssValue3.unit;\n\n      var gapOffset = (_value / perPage - _value) / 2;\n      values.push(this.buildCssValue(orient(gapOffset), _unit));\n    }\n\n    return values;\n  };\n\n  _proto3.cssOffsetGaps = function cssOffsetGaps(options) {\n    var cloneCount = this.getCloneCount();\n\n    if (cloneCount && options.gap) {\n      var orient = this.Direction.orient;\n\n      var _this$parseCssValue4 = this.parseCssValue(options.gap),\n          value = _this$parseCssValue4.value,\n          unit2 = _this$parseCssValue4.unit;\n\n      if (this.isFixedWidth(options)) {\n        return this.buildCssValue(orient(value * cloneCount), unit2);\n      }\n\n      var perPage = options.perPage;\n      var gaps = cloneCount / perPage;\n      return this.buildCssValue(orient(gaps * value), unit2);\n    }\n\n    return \"\";\n  };\n\n  _proto3.resolve = function resolve(prop) {\n    return camelToKebab(this.Direction.resolve(prop));\n  };\n\n  _proto3.cssPadding = function cssPadding(options, right) {\n    var padding = options.padding;\n    var prop = this.Direction.resolve(right ? \"right\" : \"left\", true);\n    return padding && unit(padding[prop] || (isObject(padding) ? 0 : padding)) || \"0px\";\n  };\n\n  _proto3.cssTrackHeight = function cssTrackHeight(options) {\n    var height = \"\";\n\n    if (this.isVertical()) {\n      height = this.cssHeight(options);\n      assert(height, '\"height\" is missing.');\n      height = \"calc(\" + height + \" - \" + this.cssPadding(options, false) + \" - \" + this.cssPadding(options, true) + \")\";\n    }\n\n    return height;\n  };\n\n  _proto3.cssHeight = function cssHeight(options) {\n    return unit(options.height);\n  };\n\n  _proto3.cssSlideWidth = function cssSlideWidth(options) {\n    return options.autoWidth ? \"\" : unit(options.fixedWidth) || (this.isVertical() ? \"\" : this.cssSlideSize(options));\n  };\n\n  _proto3.cssSlideHeight = function cssSlideHeight(options) {\n    return unit(options.fixedHeight) || (this.isVertical() ? options.autoHeight ? \"\" : this.cssSlideSize(options) : this.cssHeight(options));\n  };\n\n  _proto3.cssSlideSize = function cssSlideSize(options) {\n    var gap = unit(options.gap);\n    return \"calc((100%\" + (gap && \" + \" + gap) + \")/\" + (options.perPage || 1) + (gap && \" - \" + gap) + \")\";\n  };\n\n  _proto3.cssAspectRatio = function cssAspectRatio(options) {\n    var heightRatio = options.heightRatio;\n    return heightRatio ? \"\" + 1 / heightRatio : \"\";\n  };\n\n  _proto3.buildCssValue = function buildCssValue(value, unit2) {\n    return \"\" + value + unit2;\n  };\n\n  _proto3.parseCssValue = function parseCssValue(value) {\n    if (isString(value)) {\n      var number = parseFloat(value) || 0;\n      var unit2 = value.replace(/\\d*(\\.\\d*)?/, \"\") || \"px\";\n      return {\n        value: number,\n        unit: unit2\n      };\n    }\n\n    return {\n      value: value,\n      unit: \"px\"\n    };\n  };\n\n  _proto3.parseBreakpoints = function parseBreakpoints() {\n    var _this9 = this;\n\n    var breakpoints = this.options.breakpoints;\n    this.breakpoints.push([\"default\", this.options]);\n\n    if (breakpoints) {\n      forOwn(breakpoints, function (options, width) {\n        _this9.breakpoints.push([width, merge(merge({}, _this9.options), options)]);\n      });\n    }\n  };\n\n  _proto3.isFixedWidth = function isFixedWidth(options) {\n    return !!options[this.Direction.resolve(\"fixedWidth\")];\n  };\n\n  _proto3.isLoop = function isLoop() {\n    return this.options.type === LOOP;\n  };\n\n  _proto3.isCenter = function isCenter(options) {\n    if (options.focus === \"center\") {\n      if (this.isLoop()) {\n        return true;\n      }\n\n      if (this.options.type === SLIDE) {\n        return !this.options.trimSpace;\n      }\n    }\n\n    return false;\n  };\n\n  _proto3.isVertical = function isVertical() {\n    return this.options.direction === TTB;\n  };\n\n  _proto3.buildClasses = function buildClasses() {\n    var options = this.options;\n    return [CLASS_ROOT, CLASS_ROOT + \"--\" + options.type, CLASS_ROOT + \"--\" + options.direction, options.drag && CLASS_ROOT + \"--draggable\", options.isNavigation && CLASS_ROOT + \"--nav\", CLASS_ACTIVE, !this.config.hidden && CLASS_RENDERED].filter(Boolean).join(\" \");\n  };\n\n  _proto3.buildAttrs = function buildAttrs(attrs) {\n    var attr = \"\";\n    forOwn(attrs, function (value, key) {\n      attr += value ? \" \" + camelToKebab(key) + \"=\\\"\" + value + \"\\\"\" : \"\";\n    });\n    return attr.trim();\n  };\n\n  _proto3.buildStyles = function buildStyles(styles) {\n    var style = \"\";\n    forOwn(styles, function (value, key) {\n      style += \" \" + camelToKebab(key) + \":\" + value + \";\";\n    });\n    return style.trim();\n  };\n\n  _proto3.renderSlides = function renderSlides() {\n    var _this10 = this;\n\n    var tag = this.config.slideTag;\n    return this.slides.map(function (content) {\n      return \"<\" + tag + \" \" + _this10.buildAttrs(content.attrs) + \">\" + (content.html || \"\") + \"</\" + tag + \">\";\n    }).join(\"\");\n  };\n\n  _proto3.cover = function cover(content) {\n    var styles = content.styles,\n        _content$html = content.html,\n        html = _content$html === void 0 ? \"\" : _content$html;\n\n    if (this.options.cover && !this.options.lazyLoad) {\n      var src = html.match(/<img.*?src\\s*=\\s*(['\"])(.+?)\\1.*?>/);\n\n      if (src && src[2]) {\n        styles.background = \"center/cover no-repeat url('\" + src[2] + \"')\";\n      }\n    }\n  };\n\n  _proto3.generateClones = function generateClones(contents) {\n    var classes = this.options.classes;\n    var count = this.getCloneCount();\n    var slides = contents.slice();\n\n    while (slides.length < count) {\n      push(slides, slides);\n    }\n\n    push(slides.slice(-count).reverse(), slides.slice(0, count)).forEach(function (content, index) {\n      var attrs = assign({}, content.attrs, {\n        class: content.attrs.class + \" \" + classes.clone\n      });\n      var clone = assign({}, content, {\n        attrs: attrs\n      });\n      index < count ? contents.unshift(clone) : contents.push(clone);\n    });\n  };\n\n  _proto3.getCloneCount = function getCloneCount() {\n    if (this.isLoop()) {\n      var options = this.options;\n\n      if (options.clones) {\n        return options.clones;\n      }\n\n      var perPage = max.apply(void 0, this.breakpoints.map(function (_ref6) {\n        var options2 = _ref6[1];\n        return options2.perPage;\n      }));\n      return perPage * ((options.flickMaxPages || 1) + 1);\n    }\n\n    return 0;\n  };\n\n  _proto3.renderArrows = function renderArrows() {\n    var html = \"\";\n    html += \"<div class=\\\"\" + this.options.classes.arrows + \"\\\">\";\n    html += this.renderArrow(true);\n    html += this.renderArrow(false);\n    html += \"</div>\";\n    return html;\n  };\n\n  _proto3.renderArrow = function renderArrow(prev) {\n    var _this$options = this.options,\n        classes = _this$options.classes,\n        i18n = _this$options.i18n;\n    var attrs = {\n      class: classes.arrow + \" \" + (prev ? classes.prev : classes.next),\n      type: \"button\",\n      ariaLabel: prev ? i18n.prev : i18n.next\n    };\n    return \"<button \" + this.buildAttrs(attrs) + \"><svg xmlns=\\\"\" + XML_NAME_SPACE + \"\\\" viewBox=\\\"0 0 \" + SIZE + \" \" + SIZE + \"\\\" width=\\\"\" + SIZE + \"\\\" height=\\\"\" + SIZE + \"\\\"><path d=\\\"\" + (this.options.arrowPath || PATH) + \"\\\" /></svg></button>\";\n  };\n\n  _proto3.html = function html() {\n    var _this$config = this.config,\n        rootClass = _this$config.rootClass,\n        listTag = _this$config.listTag,\n        arrows = _this$config.arrows,\n        beforeTrack = _this$config.beforeTrack,\n        afterTrack = _this$config.afterTrack,\n        slider = _this$config.slider,\n        beforeSlider = _this$config.beforeSlider,\n        afterSlider = _this$config.afterSlider;\n    var html = \"\";\n    html += \"<div id=\\\"\" + this.id + \"\\\" class=\\\"\" + this.buildClasses() + \" \" + (rootClass || \"\") + \"\\\">\";\n    html += \"<style>\" + this.Style.build() + \"</style>\";\n\n    if (slider) {\n      html += beforeSlider || \"\";\n      html += \"<div class=\\\"splide__slider\\\">\";\n    }\n\n    html += beforeTrack || \"\";\n\n    if (arrows) {\n      html += this.renderArrows();\n    }\n\n    html += \"<div class=\\\"splide__track\\\">\";\n    html += \"<\" + listTag + \" class=\\\"splide__list\\\">\";\n    html += this.renderSlides();\n    html += \"</\" + listTag + \">\";\n    html += \"</div>\";\n    html += afterTrack || \"\";\n\n    if (slider) {\n      html += \"</div>\";\n      html += afterSlider || \"\";\n    }\n\n    html += \"</div>\";\n    return html;\n  };\n\n  return SplideRenderer;\n}();\n\nexport { CLASSES, CLASS_ACTIVE, CLASS_ARROW, CLASS_ARROWS, CLASS_ARROW_NEXT, CLASS_ARROW_PREV, CLASS_CLONE, CLASS_CONTAINER, CLASS_FOCUS_IN, CLASS_INITIALIZED, CLASS_LIST, CLASS_LOADING, CLASS_NEXT, CLASS_OVERFLOW, CLASS_PAGINATION, CLASS_PAGINATION_PAGE, CLASS_PREV, CLASS_PROGRESS, CLASS_PROGRESS_BAR, CLASS_ROOT, CLASS_SLIDE, CLASS_SPINNER, CLASS_SR, CLASS_TOGGLE, CLASS_TOGGLE_PAUSE, CLASS_TOGGLE_PLAY, CLASS_TRACK, CLASS_VISIBLE, DEFAULTS, EVENT_ACTIVE, EVENT_ARROWS_MOUNTED, EVENT_ARROWS_UPDATED, EVENT_AUTOPLAY_PAUSE, EVENT_AUTOPLAY_PLAY, EVENT_AUTOPLAY_PLAYING, EVENT_CLICK, EVENT_DESTROY, EVENT_DRAG, EVENT_DRAGGED, EVENT_DRAGGING, EVENT_END_INDEX_CHANGED, EVENT_HIDDEN, EVENT_INACTIVE, EVENT_LAZYLOAD_LOADED, EVENT_MOUNTED, EVENT_MOVE, EVENT_MOVED, EVENT_NAVIGATION_MOUNTED, EVENT_OVERFLOW, EVENT_PAGINATION_MOUNTED, EVENT_PAGINATION_UPDATED, EVENT_READY, EVENT_REFRESH, EVENT_RESIZE, EVENT_RESIZED, EVENT_SCROLL, EVENT_SCROLLED, EVENT_SHIFTED, EVENT_SLIDE_KEYDOWN, EVENT_UPDATED, EVENT_VISIBLE, EventBinder, EventInterface, FADE, LOOP, LTR, RTL, RequestInterval, SLIDE, STATUS_CLASSES, Splide, SplideRenderer, State, TTB, Throttle, Splide as default };\n","/*\n* Notiflix Notify AIO (https://notiflix.github.io)\n* Description: This file has been created automatically that using \"notiflix.js\", and \"notiflix.css\" files.\n* Version: 3.2.6\n* Author: Furkan (https://github.com/furcan)\n* Copyright 2019 - 2023 Notiflix, MIT Licence (https://opensource.org/licenses/MIT)\n*/\n\n/* global define */\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    define([], function () {\n      return factory(root);\n    });\n  } else if (typeof module === 'object' && typeof module.exports === 'object') {\n    module.exports = factory(root);\n  } else {\n    root.Notiflix = factory(root);\n  }\n})(typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : this, function (window) {\n\n  'use strict';\n\n  // COMMON: SSR check: begin\n  if (typeof window === 'undefined' && typeof window.document === 'undefined') {\n    return false;\n  }\n  // COMMON: SSR check: end\n\n  // COMMON: Variables: begin\n  var notiflixNamespace = 'Notiflix';\n  var notiflixConsoleDocs = '\\n\\nVisit documentation page to learn more: https://notiflix.github.io/documentation';\n  var defaultFontFamily = '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif';\n  // COMMON: Variables: end\n\n  // NOTIFY: Default Settings: begin\n  var typesNotify = {\n    Success: 'Success',\n    Failure: 'Failure',\n    Warning: 'Warning',\n    Info: 'Info',\n  };\n  var newNotifySettings;\n  var notifySettings = {\n    wrapID: 'NotiflixNotifyWrap', // can not customizable\n    overlayID: 'NotiflixNotifyOverlay', // can not customizable\n    width: '280px',\n    position: 'right-top', // 'right-top' - 'right-bottom' - 'left-top' - 'left-bottom' - 'center-top' - 'center-bottom' - 'center-center'\n    distance: '10px',\n    opacity: 1,\n    borderRadius: '5px',\n    rtl: false,\n    timeout: 3000,\n    messageMaxLength: 110,\n    backOverlay: false,\n    backOverlayColor: 'rgba(0,0,0,0.5)',\n    plainText: true,\n    showOnlyTheLastOne: false,\n    clickToClose: false,\n    pauseOnHover: true,\n\n    ID: 'NotiflixNotify',\n    className: 'notiflix-notify',\n    zindex: 4001,\n    fontFamily: 'Quicksand',\n    fontSize: '13px',\n    cssAnimation: true,\n    cssAnimationDuration: 400,\n    cssAnimationStyle: 'fade', // 'fade' - 'zoom' - 'from-right' - 'from-top' - 'from-bottom' - 'from-left'\n    closeButton: false,\n    useIcon: true,\n    useFontAwesome: false,\n    fontAwesomeIconStyle: 'basic', // 'basic' - 'shadow'\n    fontAwesomeIconSize: '34px',\n\n    success: {\n      background: '#32c682',\n      textColor: '#fff',\n      childClassName: 'notiflix-notify-success',\n      notiflixIconColor: 'rgba(0,0,0,0.2)',\n      fontAwesomeClassName: 'fas fa-check-circle',\n      fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n      backOverlayColor: 'rgba(50,198,130,0.2)',\n    },\n\n    failure: {\n      background: '#ff5549',\n      textColor: '#fff',\n      childClassName: 'notiflix-notify-failure',\n      notiflixIconColor: 'rgba(0,0,0,0.2)',\n      fontAwesomeClassName: 'fas fa-times-circle',\n      fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n      backOverlayColor: 'rgba(255,85,73,0.2)',\n    },\n\n    warning: {\n      background: '#eebf31',\n      textColor: '#fff',\n      childClassName: 'notiflix-notify-warning',\n      notiflixIconColor: 'rgba(0,0,0,0.2)',\n      fontAwesomeClassName: 'fas fa-exclamation-circle',\n      fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n      backOverlayColor: 'rgba(238,191,49,0.2)',\n    },\n\n    info: {\n      background: '#26c0d3',\n      textColor: '#fff',\n      childClassName: 'notiflix-notify-info',\n      notiflixIconColor: 'rgba(0,0,0,0.2)',\n      fontAwesomeClassName: 'fas fa-info-circle',\n      fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n      backOverlayColor: 'rgba(38,192,211,0.2)',\n    },\n  };\n  // NOTIFY: Default Settings: end\n\n  // COMMON: Console Error: begin\n  var commonConsoleError = function (message) {\n    return console.error('%c ' + notiflixNamespace + ' Error ', 'padding:2px;border-radius:20px;color:#fff;background:#ff5549', '\\n' + message + notiflixConsoleDocs);\n  };\n  // COMMON: Console Error: end\n\n  // COMMON: Check Head or Body: begin\n  var commonCheckHeadOrBody = function (element) {\n    if (!element) { element = 'head'; }\n    if (window.document[element] === null) {\n      commonConsoleError('\\nNotiflix needs to be appended to the \"<' + element + '>\" element, but you called it before the \"<' + element + '>\" element has been created.');\n      return false;\n    }\n    return true;\n  };\n  // COMMON: Check Head or Body: end\n\n  // COMMON: Set Internal CSS Codes: begin\n  var commonSetInternalCSSCodes = function (getInternalCSSCodes, styleElementId) {\n    // check doc head\n    if (!commonCheckHeadOrBody('head')) { return false; }\n\n    // internal css\n    if (getInternalCSSCodes() !== null && !window.document.getElementById(styleElementId)) {\n      var internalCSS = window.document.createElement('style');\n      internalCSS.id = styleElementId;\n      internalCSS.innerHTML = getInternalCSSCodes();\n      window.document.head.appendChild(internalCSS);\n    }\n  };\n  // COMMON: Set Internal CSS Codes: end\n\n  // COMMON: Extend Options: begin\n  var commonExtendOptions = function () {\n    // variables\n    var extended = {};\n    var deep = false;\n    var i = 0;\n    // check if a deep merge\n    if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]') {\n      deep = arguments[0];\n      i++;\n    }\n    // merge the object into the extended object\n    var merge = function (obj) {\n      for (var prop in obj) {\n        if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n          // if property is an object, merge properties\n          if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {\n            extended[prop] = commonExtendOptions(extended[prop], obj[prop]);\n          } else {\n            extended[prop] = obj[prop];\n          }\n        }\n      }\n    };\n    // loop through each object and conduct a merge\n    for (; i < arguments.length; i++) {\n      merge(arguments[i]);\n    }\n    return extended;\n  };\n  // COMMON: Extend Options: end\n\n  // COMMON: Get Plaintext: begin\n  var commonGetPlaintext = function (html) {\n    var htmlPool = window.document.createElement('div');\n    htmlPool.innerHTML = html;\n    return htmlPool.textContent || htmlPool.innerText || '';\n  };\n  // COMMON: Get Plaintext: end\n\n  // NOTIFY: Get Internal CSS Codes: begin\n  var notifyGetInternalCSSCodes = function () {\n    var notifyCSS = '[id^=NotiflixNotifyWrap]{pointer-events:none;position:fixed;z-index:4001;opacity:1;right:10px;top:10px;width:280px;max-width:96%;-webkit-box-sizing:border-box;box-sizing:border-box;background:transparent}[id^=NotiflixNotifyWrap].nx-flex-center-center{max-height:calc(100vh - 20px);overflow-x:hidden;overflow-y:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin:auto}[id^=NotiflixNotifyWrap]::-webkit-scrollbar{width:0;height:0}[id^=NotiflixNotifyWrap]::-webkit-scrollbar-thumb{background:transparent}[id^=NotiflixNotifyWrap]::-webkit-scrollbar-track{background:transparent}[id^=NotiflixNotifyWrap] *{-webkit-box-sizing:border-box;box-sizing:border-box}[id^=NotiflixNotifyOverlay]{-webkit-transition:background .3s ease-in-out;-o-transition:background .3s ease-in-out;transition:background .3s ease-in-out}[id^=NotiflixNotifyWrap]>div{pointer-events:all;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:\"Quicksand\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;width:100%;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;position:relative;margin:0 0 10px;border-radius:5px;background:#1e1e1e;color:#fff;padding:10px 12px;font-size:14px;line-height:1.4}[id^=NotiflixNotifyWrap]>div:last-child{margin:0}[id^=NotiflixNotifyWrap]>div.nx-with-callback{cursor:pointer}[id^=NotiflixNotifyWrap]>div.nx-with-icon{padding:8px;min-height:56px}[id^=NotiflixNotifyWrap]>div.nx-paused{cursor:auto}[id^=NotiflixNotifyWrap]>div.nx-notify-click-to-close{cursor:pointer}[id^=NotiflixNotifyWrap]>div.nx-with-close-button{padding:10px 36px 10px 12px}[id^=NotiflixNotifyWrap]>div.nx-with-icon.nx-with-close-button{padding:6px 36px 6px 6px}[id^=NotiflixNotifyWrap]>div>span.nx-message{cursor:inherit;font-weight:normal;font-family:inherit!important;word-break:break-all;word-break:break-word}[id^=NotiflixNotifyWrap]>div>span.nx-close-button{cursor:pointer;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;position:absolute;right:8px;top:0;bottom:0;margin:auto;color:inherit;width:20px;height:20px}[id^=NotiflixNotifyWrap]>div>span.nx-close-button:hover{-webkit-transform:rotate(90deg);transform:rotate(90deg)}[id^=NotiflixNotifyWrap]>div>span.nx-close-button>svg{position:absolute;width:16px;height:16px;right:2px;top:2px}[id^=NotiflixNotifyWrap]>div>.nx-message-icon{position:absolute;width:40px;height:40px;font-size:30px;line-height:40px;text-align:center;left:8px;top:0;bottom:0;margin:auto;border-radius:inherit}[id^=NotiflixNotifyWrap]>div>.nx-message-icon-fa.nx-message-icon-fa-shadow{color:inherit;background:rgba(0,0,0,.15);-webkit-box-shadow:inset 0 0 34px rgba(0,0,0,.2);box-shadow:inset 0 0 34px rgba(0,0,0,.2);text-shadow:0 0 10px rgba(0,0,0,.3)}[id^=NotiflixNotifyWrap]>div>span.nx-with-icon{position:relative;float:left;width:calc(100% - 40px);margin:0 0 0 40px;padding:0 0 0 10px;-webkit-box-sizing:border-box;box-sizing:border-box}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>.nx-message-icon{left:auto;right:8px}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>span.nx-with-icon{padding:0 10px 0 0;margin:0 40px 0 0}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>span.nx-close-button{right:auto;left:8px}[id^=NotiflixNotifyWrap]>div.nx-with-icon.nx-with-close-button.nx-rtl-on{padding:6px 6px 6px 36px}[id^=NotiflixNotifyWrap]>div.nx-with-close-button.nx-rtl-on{padding:10px 12px 10px 36px}[id^=NotiflixNotifyOverlay].nx-with-animation,[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-fade{-webkit-animation:notify-animation-fade .3s ease-in-out 0s normal;animation:notify-animation-fade .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-fade{0%{opacity:0}100%{opacity:1}}@keyframes notify-animation-fade{0%{opacity:0}100%{opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-zoom{-webkit-animation:notify-animation-zoom .3s ease-in-out 0s normal;animation:notify-animation-zoom .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-zoom{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes notify-animation-zoom{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-right{-webkit-animation:notify-animation-from-right .3s ease-in-out 0s normal;animation:notify-animation-from-right .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-right{0%{right:-300px;opacity:0}50%{right:8px;opacity:1}100%{right:0;opacity:1}}@keyframes notify-animation-from-right{0%{right:-300px;opacity:0}50%{right:8px;opacity:1}100%{right:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-left{-webkit-animation:notify-animation-from-left .3s ease-in-out 0s normal;animation:notify-animation-from-left .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-left{0%{left:-300px;opacity:0}50%{left:8px;opacity:1}100%{left:0;opacity:1}}@keyframes notify-animation-from-left{0%{left:-300px;opacity:0}50%{left:8px;opacity:1}100%{left:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-top{-webkit-animation:notify-animation-from-top .3s ease-in-out 0s normal;animation:notify-animation-from-top .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-top{0%{top:-50px;opacity:0}50%{top:8px;opacity:1}100%{top:0;opacity:1}}@keyframes notify-animation-from-top{0%{top:-50px;opacity:0}50%{top:8px;opacity:1}100%{top:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-bottom{-webkit-animation:notify-animation-from-bottom .3s ease-in-out 0s normal;animation:notify-animation-from-bottom .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-bottom{0%{bottom:-50px;opacity:0}50%{bottom:8px;opacity:1}100%{bottom:0;opacity:1}}@keyframes notify-animation-from-bottom{0%{bottom:-50px;opacity:0}50%{bottom:8px;opacity:1}100%{bottom:0;opacity:1}}[id^=NotiflixNotifyOverlay].nx-with-animation.nx-remove,[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-fade.nx-remove{opacity:0;-webkit-animation:notify-remove-fade .3s ease-in-out 0s normal;animation:notify-remove-fade .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-fade{0%{opacity:1}100%{opacity:0}}@keyframes notify-remove-fade{0%{opacity:1}100%{opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-zoom.nx-remove{-webkit-transform:scale(0);transform:scale(0);-webkit-animation:notify-remove-zoom .3s ease-in-out 0s normal;animation:notify-remove-zoom .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(0);transform:scale(0)}}@keyframes notify-remove-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(0);transform:scale(0)}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-top.nx-remove{opacity:0;-webkit-animation:notify-remove-to-top .3s ease-in-out 0s normal;animation:notify-remove-to-top .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-top{0%{top:0;opacity:1}50%{top:8px;opacity:1}100%{top:-50px;opacity:0}}@keyframes notify-remove-to-top{0%{top:0;opacity:1}50%{top:8px;opacity:1}100%{top:-50px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-right.nx-remove{opacity:0;-webkit-animation:notify-remove-to-right .3s ease-in-out 0s normal;animation:notify-remove-to-right .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-right{0%{right:0;opacity:1}50%{right:8px;opacity:1}100%{right:-300px;opacity:0}}@keyframes notify-remove-to-right{0%{right:0;opacity:1}50%{right:8px;opacity:1}100%{right:-300px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-bottom.nx-remove{opacity:0;-webkit-animation:notify-remove-to-bottom .3s ease-in-out 0s normal;animation:notify-remove-to-bottom .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-bottom{0%{bottom:0;opacity:1}50%{bottom:8px;opacity:1}100%{bottom:-50px;opacity:0}}@keyframes notify-remove-to-bottom{0%{bottom:0;opacity:1}50%{bottom:8px;opacity:1}100%{bottom:-50px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-left.nx-remove{opacity:0;-webkit-animation:notify-remove-to-left .3s ease-in-out 0s normal;animation:notify-remove-to-left .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-left{0%{left:0;opacity:1}50%{left:8px;opacity:1}100%{left:-300px;opacity:0}}@keyframes notify-remove-to-left{0%{left:0;opacity:1}50%{left:8px;opacity:1}100%{left:-300px;opacity:0}}';\n    return notifyCSS || null;\n  };\n  // NOTIFY: Get Internal CSS Codes: end\n\n  // NOTIFY: Create: begin\n  var notifyCreateCounter = 0;\n  var notifyCreate = function (notifyType, message, callbackOrOptions, options) {\n    // check doc body\n    if (!commonCheckHeadOrBody('body')) { return false; }\n\n    // if not initialized pretend like init\n    if (!newNotifySettings) {\n      Notiflix.Notify.init({});\n    }\n\n    // create a backup for new settings\n    var newNotifySettingsBackup = commonExtendOptions(true, newNotifySettings, {});\n\n    // check callbackOrOptions and options: begin\n    if ((typeof callbackOrOptions === 'object' && !Array.isArray(callbackOrOptions)) || (typeof options === 'object' && !Array.isArray(options))) {\n      // new options\n      var newOptions = {};\n      if (typeof callbackOrOptions === 'object') {\n        newOptions = callbackOrOptions;\n      } else if (typeof options === 'object') {\n        newOptions = options;\n      }\n\n      // extend new settings with the new options\n      newNotifySettings = commonExtendOptions(true, newNotifySettings, newOptions);\n    }\n    // check callbackOrOptions and options: end\n\n    // notify type\n    var theType = newNotifySettings[notifyType.toLocaleLowerCase('en')];\n\n    // notify counter\n    notifyCreateCounter++;\n\n    // check the message: begin\n    if (typeof message !== 'string') {\n      message = 'Notiflix ' + notifyType;\n    }\n    // check the message: end\n\n    // if plainText is true => HTML tags not allowed: begin\n    if (newNotifySettings.plainText) {\n      message = commonGetPlaintext(message); // message plain text\n    }\n    // if plainText is true => HTML tags not allowed: end\n\n    // if plainText is false but the message length more than messageMaxLength => Possible HTML tags error: begin\n    if (!newNotifySettings.plainText && message.length > newNotifySettings.messageMaxLength) {\n      // extend settings for error massege\n      newNotifySettings = commonExtendOptions(true, newNotifySettings, { closeButton: true, messageMaxLength: 150 });\n      // error message\n      message = 'Possible HTML Tags Error: The \"plainText\" option is \"false\" and the notification content length is more than the \"messageMaxLength\" option.';\n    }\n    // if plainText is false but the message length more than messageMaxLength => Possible HTML tags error: end\n\n    // check message max length: begin\n    if (message.length > newNotifySettings.messageMaxLength) {\n      message = message.substring(0, newNotifySettings.messageMaxLength) + '...';\n    }\n    // check message max length: end\n\n    // font awesome icon style: begin\n    if (newNotifySettings.fontAwesomeIconStyle === 'shadow') {\n      theType.fontAwesomeIconColor = theType.background;\n    }\n    // font awesome icon style: end\n\n    // if cssAnimaion is false => duration: begin\n    if (!newNotifySettings.cssAnimation) {\n      newNotifySettings.cssAnimationDuration = 0;\n    }\n    // if cssAnimaion is false => duration: end\n\n    // notify wrap: begin\n    var ntflxNotifyWrap = window.document.getElementById(notifySettings.wrapID) || window.document.createElement('div');\n    ntflxNotifyWrap.id = notifySettings.wrapID;\n    ntflxNotifyWrap.style.width = newNotifySettings.width;\n    ntflxNotifyWrap.style.zIndex = newNotifySettings.zindex;\n    ntflxNotifyWrap.style.opacity = newNotifySettings.opacity;\n\n    // wrap position: begin\n    if (newNotifySettings.position === 'center-center') {\n      ntflxNotifyWrap.style.left = newNotifySettings.distance;\n      ntflxNotifyWrap.style.top = newNotifySettings.distance;\n      ntflxNotifyWrap.style.right = newNotifySettings.distance;\n      ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n      ntflxNotifyWrap.style.margin = 'auto';\n      ntflxNotifyWrap.classList.add('nx-flex-center-center');\n      ntflxNotifyWrap.style.maxHeight = 'calc((100vh - ' + newNotifySettings.distance + ') - ' + newNotifySettings.distance + ')';\n      ntflxNotifyWrap.style.display = 'flex';\n      ntflxNotifyWrap.style.flexWrap = 'wrap';\n      ntflxNotifyWrap.style.flexDirection = 'column';\n      ntflxNotifyWrap.style.justifyContent = 'center';\n      ntflxNotifyWrap.style.alignItems = 'center';\n      ntflxNotifyWrap.style.pointerEvents = 'none';\n    } else if (newNotifySettings.position === 'center-top') {\n      ntflxNotifyWrap.style.left = newNotifySettings.distance;\n      ntflxNotifyWrap.style.right = newNotifySettings.distance;\n      ntflxNotifyWrap.style.top = newNotifySettings.distance;\n      ntflxNotifyWrap.style.bottom = 'auto';\n      ntflxNotifyWrap.style.margin = 'auto';\n    } else if (newNotifySettings.position === 'center-bottom') {\n      ntflxNotifyWrap.style.left = newNotifySettings.distance;\n      ntflxNotifyWrap.style.right = newNotifySettings.distance;\n      ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n      ntflxNotifyWrap.style.top = 'auto';\n      ntflxNotifyWrap.style.margin = 'auto';\n    } else if (newNotifySettings.position === 'right-bottom') {\n      ntflxNotifyWrap.style.right = newNotifySettings.distance;\n      ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n      ntflxNotifyWrap.style.top = 'auto';\n      ntflxNotifyWrap.style.left = 'auto';\n    } else if (newNotifySettings.position === 'left-top') {\n      ntflxNotifyWrap.style.left = newNotifySettings.distance;\n      ntflxNotifyWrap.style.top = newNotifySettings.distance;\n      ntflxNotifyWrap.style.right = 'auto';\n      ntflxNotifyWrap.style.bottom = 'auto';\n    } else if (newNotifySettings.position === 'left-bottom') {\n      ntflxNotifyWrap.style.left = newNotifySettings.distance;\n      ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n      ntflxNotifyWrap.style.top = 'auto';\n      ntflxNotifyWrap.style.right = 'auto';\n    } else { // 'right-top' or else\n      ntflxNotifyWrap.style.right = newNotifySettings.distance;\n      ntflxNotifyWrap.style.top = newNotifySettings.distance;\n      ntflxNotifyWrap.style.left = 'auto';\n      ntflxNotifyWrap.style.bottom = 'auto';\n    }\n    // wrap position: end\n\n    // if background overlay is true: begin\n    if (newNotifySettings.backOverlay) {\n      var ntflxNotifyOverlay = window.document.getElementById(notifySettings.overlayID) || window.document.createElement('div');\n      ntflxNotifyOverlay.id = notifySettings.overlayID;\n      ntflxNotifyOverlay.style.width = '100%';\n      ntflxNotifyOverlay.style.height = '100%';\n      ntflxNotifyOverlay.style.position = 'fixed';\n      ntflxNotifyOverlay.style.zIndex = newNotifySettings.zindex - 1;\n      ntflxNotifyOverlay.style.left = 0;\n      ntflxNotifyOverlay.style.top = 0;\n      ntflxNotifyOverlay.style.right = 0;\n      ntflxNotifyOverlay.style.bottom = 0;\n      ntflxNotifyOverlay.style.background = theType.backOverlayColor || newNotifySettings.backOverlayColor;\n      ntflxNotifyOverlay.className = newNotifySettings.cssAnimation ? 'nx-with-animation' : '';\n      ntflxNotifyOverlay.style.animationDuration = newNotifySettings.cssAnimation ? newNotifySettings.cssAnimationDuration + 'ms' : '';\n\n      if (!window.document.getElementById(notifySettings.overlayID)) {\n        window.document.body.appendChild(ntflxNotifyOverlay);\n      }\n    }\n    // if background overlay is true: end\n\n    if (!window.document.getElementById(notifySettings.wrapID)) {\n      window.document.body.appendChild(ntflxNotifyWrap);\n    }\n    // notify wrap: end\n\n    // notify content: begin\n    var ntflxNotify = window.document.createElement('div');\n    ntflxNotify.id = newNotifySettings.ID + '-' + notifyCreateCounter;\n    ntflxNotify.className = newNotifySettings.className + ' ' + theType.childClassName + ' ' + (newNotifySettings.cssAnimation ? 'nx-with-animation' : '') + ' ' + (newNotifySettings.useIcon ? 'nx-with-icon' : '') + ' nx-' + newNotifySettings.cssAnimationStyle + ' ' + (newNotifySettings.closeButton && typeof callbackOrOptions !== 'function' ? 'nx-with-close-button' : '') + ' ' + (typeof callbackOrOptions === 'function' ? 'nx-with-callback' : '') + ' ' + (newNotifySettings.clickToClose ? 'nx-notify-click-to-close' : '');\n    ntflxNotify.style.fontSize = newNotifySettings.fontSize;\n    ntflxNotify.style.color = theType.textColor;\n    ntflxNotify.style.background = theType.background;\n    ntflxNotify.style.borderRadius = newNotifySettings.borderRadius;\n    ntflxNotify.style.pointerEvents = 'all';\n\n    // rtl: begin\n    if (newNotifySettings.rtl) {\n      ntflxNotify.setAttribute('dir', 'rtl');\n      ntflxNotify.classList.add('nx-rtl-on');\n    }\n    // rtl: end\n\n    // font-family: begin\n    ntflxNotify.style.fontFamily = '\"' + newNotifySettings.fontFamily + '\", ' + defaultFontFamily;\n    // font-family: end\n\n    // use css animation: begin\n    if (newNotifySettings.cssAnimation) {\n      ntflxNotify.style.animationDuration = newNotifySettings.cssAnimationDuration + 'ms';\n    }\n    // use css animation: end\n\n    // close button element: begin\n    var closeButtonHTML = '';\n    if (newNotifySettings.closeButton && typeof callbackOrOptions !== 'function') {\n      closeButtonHTML = '<span class=\"nx-close-button\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"><g><path fill=\"' + theType.notiflixIconColor + '\" d=\"M0.38 2.19l7.8 7.81 -7.8 7.81c-0.51,0.5 -0.51,1.31 -0.01,1.81 0.25,0.25 0.57,0.38 0.91,0.38 0.34,0 0.67,-0.14 0.91,-0.38l7.81 -7.81 7.81 7.81c0.24,0.24 0.57,0.38 0.91,0.38 0.34,0 0.66,-0.14 0.9,-0.38 0.51,-0.5 0.51,-1.31 0,-1.81l-7.81 -7.81 7.81 -7.81c0.51,-0.5 0.51,-1.31 0,-1.82 -0.5,-0.5 -1.31,-0.5 -1.81,0l-7.81 7.81 -7.81 -7.81c-0.5,-0.5 -1.31,-0.5 -1.81,0 -0.51,0.51 -0.51,1.32 0,1.82z\"/></g></svg></span>';\n    }\n    // close buttpon element: end\n\n    // use icon: begin\n    if (newNotifySettings.useIcon) {\n      // use font awesome\n      if (newNotifySettings.useFontAwesome) {\n        ntflxNotify.innerHTML = '<i style=\"color:' + theType.fontAwesomeIconColor + '; font-size:' + newNotifySettings.fontAwesomeIconSize + ';\" class=\"nx-message-icon nx-message-icon-fa ' + theType.fontAwesomeClassName + ' ' + (newNotifySettings.fontAwesomeIconStyle === 'shadow' ? 'nx-message-icon-fa-shadow' : 'nx-message-icon-fa-basic') + '\"></i><span class=\"nx-message nx-with-icon\">' + message + '</span>' + (newNotifySettings.closeButton ? closeButtonHTML : '');\n      }\n      // use notiflix icon\n      else {\n        var svgIcon = '';\n        if (notifyType === typesNotify.Success) {  // success\n          svgIcon = '<svg class=\"nx-message-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"><g><path fill=\"' + theType.notiflixIconColor + '\" d=\"M20 0c11.03,0 20,8.97 20,20 0,11.03 -8.97,20 -20,20 -11.03,0 -20,-8.97 -20,-20 0,-11.03 8.97,-20 20,-20zm0 37.98c9.92,0 17.98,-8.06 17.98,-17.98 0,-9.92 -8.06,-17.98 -17.98,-17.98 -9.92,0 -17.98,8.06 -17.98,17.98 0,9.92 8.06,17.98 17.98,17.98zm-2.4 -13.29l11.52 -12.96c0.37,-0.41 1.01,-0.45 1.42,-0.08 0.42,0.37 0.46,1 0.09,1.42l-12.16 13.67c-0.19,0.22 -0.46,0.34 -0.75,0.34 -0.23,0 -0.45,-0.07 -0.63,-0.22l-7.6 -6.07c-0.43,-0.35 -0.5,-0.99 -0.16,-1.42 0.35,-0.43 0.99,-0.5 1.42,-0.16l6.85 5.48z\"/></g></svg>';\n        } else if (notifyType === typesNotify.Failure) { // failure\n          svgIcon = '<svg class=\"nx-message-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"><g><path fill=\"' + theType.notiflixIconColor + '\" d=\"M20 0c11.03,0 20,8.97 20,20 0,11.03 -8.97,20 -20,20 -11.03,0 -20,-8.97 -20,-20 0,-11.03 8.97,-20 20,-20zm0 37.98c9.92,0 17.98,-8.06 17.98,-17.98 0,-9.92 -8.06,-17.98 -17.98,-17.98 -9.92,0 -17.98,8.06 -17.98,17.98 0,9.92 8.06,17.98 17.98,17.98zm1.42 -17.98l6.13 6.12c0.39,0.4 0.39,1.04 0,1.43 -0.19,0.19 -0.45,0.29 -0.71,0.29 -0.27,0 -0.53,-0.1 -0.72,-0.29l-6.12 -6.13 -6.13 6.13c-0.19,0.19 -0.44,0.29 -0.71,0.29 -0.27,0 -0.52,-0.1 -0.71,-0.29 -0.39,-0.39 -0.39,-1.03 0,-1.43l6.13 -6.12 -6.13 -6.13c-0.39,-0.39 -0.39,-1.03 0,-1.42 0.39,-0.39 1.03,-0.39 1.42,0l6.13 6.12 6.12 -6.12c0.4,-0.39 1.04,-0.39 1.43,0 0.39,0.39 0.39,1.03 0,1.42l-6.13 6.13z\"/></g></svg>';\n        } else if (notifyType === typesNotify.Warning) { // warning\n          svgIcon = '<svg class=\"nx-message-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"><g><path fill=\"' + theType.notiflixIconColor + '\" d=\"M21.91 3.48l17.8 30.89c0.84,1.46 -0.23,3.25 -1.91,3.25l-35.6 0c-1.68,0 -2.75,-1.79 -1.91,-3.25l17.8 -30.89c0.85,-1.47 2.97,-1.47 3.82,0zm16.15 31.84l-17.8 -30.89c-0.11,-0.2 -0.41,-0.2 -0.52,0l-17.8 30.89c-0.12,0.2 0.05,0.4 0.26,0.4l35.6 0c0.21,0 0.38,-0.2 0.26,-0.4zm-19.01 -4.12l0 -1.05c0,-0.53 0.42,-0.95 0.95,-0.95 0.53,0 0.95,0.42 0.95,0.95l0 1.05c0,0.53 -0.42,0.95 -0.95,0.95 -0.53,0 -0.95,-0.42 -0.95,-0.95zm0 -4.66l0 -13.39c0,-0.52 0.42,-0.95 0.95,-0.95 0.53,0 0.95,0.43 0.95,0.95l0 13.39c0,0.53 -0.42,0.96 -0.95,0.96 -0.53,0 -0.95,-0.43 -0.95,-0.96z\"/></g></svg>';\n        } else if (notifyType === typesNotify.Info) { // info\n          svgIcon = '<svg class=\"nx-message-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"><g><path fill=\"' + theType.notiflixIconColor + '\" d=\"M20 0c11.03,0 20,8.97 20,20 0,11.03 -8.97,20 -20,20 -11.03,0 -20,-8.97 -20,-20 0,-11.03 8.97,-20 20,-20zm0 37.98c9.92,0 17.98,-8.06 17.98,-17.98 0,-9.92 -8.06,-17.98 -17.98,-17.98 -9.92,0 -17.98,8.06 -17.98,17.98 0,9.92 8.06,17.98 17.98,17.98zm-0.99 -23.3c0,-0.54 0.44,-0.98 0.99,-0.98 0.55,0 0.99,0.44 0.99,0.98l0 15.86c0,0.55 -0.44,0.99 -0.99,0.99 -0.55,0 -0.99,-0.44 -0.99,-0.99l0 -15.86zm0 -5.22c0,-0.55 0.44,-0.99 0.99,-0.99 0.55,0 0.99,0.44 0.99,0.99l0 1.09c0,0.54 -0.44,0.99 -0.99,0.99 -0.55,0 -0.99,-0.45 -0.99,-0.99l0 -1.09z\"/></g></svg>';\n        }\n        ntflxNotify.innerHTML = svgIcon + '<span class=\"nx-message nx-with-icon\">' + message + '</span>' + (newNotifySettings.closeButton ? closeButtonHTML : '');\n      }\n    }\n    // without icon\n    else {\n      ntflxNotify.innerHTML = '<span class=\"nx-message\">' + message + '</span>' + (newNotifySettings.closeButton ? closeButtonHTML : '');\n    }\n    // use icon: end\n    // notify content: end\n\n    // notify append or prepend: begin\n    if (newNotifySettings.position === 'left-bottom' || newNotifySettings.position === 'right-bottom') { // the new one will be first\n      var notifyWrap = window.document.getElementById(notifySettings.wrapID);\n      notifyWrap.insertBefore(ntflxNotify, notifyWrap.firstChild);\n    } else {\n      window.document.getElementById(notifySettings.wrapID).appendChild(ntflxNotify);\n    }\n    // notify append or prepend: end\n\n    // remove by timeout or click: begin\n    var eachNotifyElement = window.document.getElementById(ntflxNotify.id);\n    if (eachNotifyElement) {\n      // timeout variables\n      var timeoutHide;\n      var timeoutRemove;\n\n      // hide notify elm and hide overlay: begin\n      var hideNotifyElementsAndOverlay = function () {\n        eachNotifyElement.classList.add('nx-remove');\n        var removeOverlay = window.document.getElementById(notifySettings.overlayID);\n        if (removeOverlay && ntflxNotifyWrap.childElementCount <= 0) {\n          removeOverlay.classList.add('nx-remove');\n        }\n        clearTimeout(timeoutHide);\n      };\n      // hide notify elm and hide overlay: end\n\n      // remove notify elm and wrapper: begin\n      var removeNotifyElmentsAndWrapper = function () {\n        if (eachNotifyElement && eachNotifyElement.parentNode !== null) {\n          eachNotifyElement.parentNode.removeChild(eachNotifyElement);\n        }\n        if (ntflxNotifyWrap.childElementCount <= 0 && ntflxNotifyWrap.parentNode !== null) { // if childs count === 0 remove wrap\n          ntflxNotifyWrap.parentNode.removeChild(ntflxNotifyWrap);\n          var removeOverlay = window.document.getElementById(notifySettings.overlayID);\n          if (removeOverlay && removeOverlay.parentNode !== null) {\n            removeOverlay.parentNode.removeChild(removeOverlay);\n          }\n        }\n        clearTimeout(timeoutRemove);\n      };\n      // remove notify elm and wrapper: end\n\n      // if has close button and callbackOrOptions is not a function: begin\n      if (newNotifySettings.closeButton && typeof callbackOrOptions !== 'function') {\n        var closeButtonElm = window.document.getElementById(ntflxNotify.id).querySelector('span.nx-close-button');\n        closeButtonElm.addEventListener('click', function () {\n          hideNotifyElementsAndOverlay();\n          var clickToCloseTimeout = setTimeout(function () {\n            removeNotifyElmentsAndWrapper();\n            clearTimeout(clickToCloseTimeout);\n          }, newNotifySettings.cssAnimationDuration);\n        });\n      }\n      // if has close button and callbackOrOptions is not a function: end\n\n      // if callbackOrOptions or click to close: begin\n      if (typeof callbackOrOptions === 'function' || newNotifySettings.clickToClose) {\n        eachNotifyElement.addEventListener('click', function () {\n          if (typeof callbackOrOptions === 'function') {\n            callbackOrOptions();\n          }\n          hideNotifyElementsAndOverlay();\n          var callbackTimeout = setTimeout(function () {\n            removeNotifyElmentsAndWrapper();\n            clearTimeout(callbackTimeout);\n          }, newNotifySettings.cssAnimationDuration);\n        });\n      }\n      // if callbackOrOptions or click to close: end\n\n      // else auto remove: begin\n      if (!newNotifySettings.closeButton && typeof callbackOrOptions !== 'function') {\n        // auto remove: begin\n        var autoRemove = function () {\n          timeoutHide = setTimeout(function () {\n            hideNotifyElementsAndOverlay();\n          }, newNotifySettings.timeout);\n          timeoutRemove = setTimeout(function () {\n            removeNotifyElmentsAndWrapper();\n          }, newNotifySettings.timeout + newNotifySettings.cssAnimationDuration);\n        };\n        autoRemove();\n        // auto remove: end\n\n        // pause auto remove: begin\n        if (newNotifySettings.pauseOnHover) {\n          eachNotifyElement.addEventListener('mouseenter', function () {\n            eachNotifyElement.classList.add('nx-paused');\n            clearTimeout(timeoutHide);\n            clearTimeout(timeoutRemove);\n          });\n          eachNotifyElement.addEventListener('mouseleave', function () {\n            eachNotifyElement.classList.remove('nx-paused');\n            autoRemove();\n          });\n        }\n        // pause auto remove: end\n      }\n      // else auto remove: end\n    }\n    // remove by timeout or click: end\n\n    // notify - show only the last one: begin\n    if (newNotifySettings.showOnlyTheLastOne && notifyCreateCounter > 0) {\n      var allNotifyElmNotTheLastOne = window.document.querySelectorAll('[id^=' + newNotifySettings.ID + '-]:not([id=' + newNotifySettings.ID + '-' + notifyCreateCounter + '])');\n      for (var i = 0; i < allNotifyElmNotTheLastOne.length; i++) {\n        var eachNotifyElmNotLastOne = allNotifyElmNotTheLastOne[i];\n        if (eachNotifyElmNotLastOne.parentNode !== null) {\n          eachNotifyElmNotLastOne.parentNode.removeChild(eachNotifyElmNotLastOne);\n        }\n      }\n    }\n    // notify - show only the last one: end\n\n    // extend new settings with the backup settings\n    newNotifySettings = commonExtendOptions(true, newNotifySettings, newNotifySettingsBackup);\n\n  };\n  // NOTIFY: Create: end\n\n  var Notiflix = {\n    Notify: {\n      // Init\n      init: function (userNotifyOptions) {\n        // extend options\n        newNotifySettings = commonExtendOptions(true, notifySettings, userNotifyOptions);\n        // internal css if exist\n        commonSetInternalCSSCodes(notifyGetInternalCSSCodes, 'NotiflixNotifyInternalCSS');\n      },\n      // Merge First Init\n      merge: function (userNotifyExtendOptions) {\n        // if initialized already\n        if (newNotifySettings) {\n          newNotifySettings = commonExtendOptions(true, newNotifySettings, userNotifyExtendOptions);\n        }\n        // initialize first\n        else {\n          commonConsoleError('You have to initialize the Notify module before call Merge function.');\n          return false;\n        }\n      },\n      // Success\n      success: function (message, callbackOrOptions, options) {\n        notifyCreate(typesNotify.Success, message, callbackOrOptions, options);\n      },\n      // Failure\n      failure: function (message, callbackOrOptions, options) {\n        notifyCreate(typesNotify.Failure, message, callbackOrOptions, options);\n      },\n      // Warning\n      warning: function (message, callbackOrOptions, options) {\n        notifyCreate(typesNotify.Warning, message, callbackOrOptions, options);\n      },\n      // Info\n      info: function (message, callbackOrOptions, options) {\n        notifyCreate(typesNotify.Info, message, callbackOrOptions, options);\n      },\n    },\n  };\n\n  if (typeof window.Notiflix === 'object') {\n    return commonExtendOptions(true, window.Notiflix, { Notify: Notiflix.Notify });\n  } else {\n    return { Notify: Notiflix.Notify };\n  }\n\n});","export default function _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}","export default function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n  var key = toPrimitive(arg, \"string\");\n  return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n  if (_typeof(input) !== \"object\" || input === null) return input;\n  var prim = input[Symbol.toPrimitive];\n  if (prim !== undefined) {\n    var res = prim.call(input, hint || \"default\");\n    if (_typeof(res) !== \"object\") return res;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _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, toPropertyKey(descriptor.key), descriptor);\n  }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  Object.defineProperty(Constructor, \"prototype\", {\n    writable: false\n  });\n  return Constructor;\n}","export default function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return self;\n}","export default function _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n  return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _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  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  Object.defineProperty(subClass, \"prototype\", {\n    writable: false\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  } else if (call !== void 0) {\n    throw new TypeError(\"Derived constructors may only return object or undefined\");\n  }\n  return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n  key = toPropertyKey(key);\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}","export default function _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n  return arr2;\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar consoleLogger = {\n  type: 'logger',\n  log: function log(args) {\n    this.output('log', args);\n  },\n  warn: function warn(args) {\n    this.output('warn', args);\n  },\n  error: function error(args) {\n    this.output('error', args);\n  },\n  output: function output(type, args) {\n    if (console && console[type]) console[type].apply(console, args);\n  }\n};\nvar Logger = function () {\n  function Logger(concreteLogger) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    _classCallCheck(this, Logger);\n    this.init(concreteLogger, options);\n  }\n  _createClass(Logger, [{\n    key: \"init\",\n    value: function init(concreteLogger) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      this.prefix = options.prefix || 'i18next:';\n      this.logger = concreteLogger || consoleLogger;\n      this.options = options;\n      this.debug = options.debug;\n    }\n  }, {\n    key: \"setDebug\",\n    value: function setDebug(bool) {\n      this.debug = bool;\n    }\n  }, {\n    key: \"log\",\n    value: function log() {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return this.forward(args, 'log', '', true);\n    }\n  }, {\n    key: \"warn\",\n    value: function warn() {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return this.forward(args, 'warn', '', true);\n    }\n  }, {\n    key: \"error\",\n    value: function error() {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n      return this.forward(args, 'error', '');\n    }\n  }, {\n    key: \"deprecate\",\n    value: function deprecate() {\n      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n        args[_key4] = arguments[_key4];\n      }\n      return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n    }\n  }, {\n    key: \"forward\",\n    value: function forward(args, lvl, prefix, debugOnly) {\n      if (debugOnly && !this.debug) return null;\n      if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n      return this.logger[lvl](args);\n    }\n  }, {\n    key: \"create\",\n    value: function create(moduleName) {\n      return new Logger(this.logger, _objectSpread$6(_objectSpread$6({}, {\n        prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n      }), this.options));\n    }\n  }, {\n    key: \"clone\",\n    value: function clone(options) {\n      options = options || this.options;\n      options.prefix = options.prefix || this.prefix;\n      return new Logger(this.logger, options);\n    }\n  }]);\n  return Logger;\n}();\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n  function EventEmitter() {\n    _classCallCheck(this, EventEmitter);\n    this.observers = {};\n  }\n  _createClass(EventEmitter, [{\n    key: \"on\",\n    value: function on(events, listener) {\n      var _this = this;\n      events.split(' ').forEach(function (event) {\n        _this.observers[event] = _this.observers[event] || [];\n        _this.observers[event].push(listener);\n      });\n      return this;\n    }\n  }, {\n    key: \"off\",\n    value: function off(event, listener) {\n      if (!this.observers[event]) return;\n      if (!listener) {\n        delete this.observers[event];\n        return;\n      }\n      this.observers[event] = this.observers[event].filter(function (l) {\n        return l !== listener;\n      });\n    }\n  }, {\n    key: \"emit\",\n    value: function emit(event) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n      if (this.observers[event]) {\n        var cloned = [].concat(this.observers[event]);\n        cloned.forEach(function (observer) {\n          observer.apply(void 0, args);\n        });\n      }\n      if (this.observers['*']) {\n        var _cloned = [].concat(this.observers['*']);\n        _cloned.forEach(function (observer) {\n          observer.apply(observer, [event].concat(args));\n        });\n      }\n    }\n  }]);\n  return EventEmitter;\n}();\n\nfunction defer() {\n  var res;\n  var rej;\n  var promise = new Promise(function (resolve, reject) {\n    res = resolve;\n    rej = reject;\n  });\n  promise.resolve = res;\n  promise.reject = rej;\n  return promise;\n}\nfunction makeString(object) {\n  if (object == null) return '';\n  return '' + object;\n}\nfunction copy(a, s, t) {\n  a.forEach(function (m) {\n    if (s[m]) t[m] = s[m];\n  });\n}\nfunction getLastOfPath(object, path, Empty) {\n  function cleanKey(key) {\n    return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n  }\n  function canNotTraverseDeeper() {\n    return !object || typeof object === 'string';\n  }\n  var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n  while (stack.length > 1) {\n    if (canNotTraverseDeeper()) return {};\n    var key = cleanKey(stack.shift());\n    if (!object[key] && Empty) object[key] = new Empty();\n    if (Object.prototype.hasOwnProperty.call(object, key)) {\n      object = object[key];\n    } else {\n      object = {};\n    }\n  }\n  if (canNotTraverseDeeper()) return {};\n  return {\n    obj: object,\n    k: cleanKey(stack.shift())\n  };\n}\nfunction setPath(object, path, newValue) {\n  var _getLastOfPath = getLastOfPath(object, path, Object),\n    obj = _getLastOfPath.obj,\n    k = _getLastOfPath.k;\n  obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n  var _getLastOfPath2 = getLastOfPath(object, path, Object),\n    obj = _getLastOfPath2.obj,\n    k = _getLastOfPath2.k;\n  obj[k] = obj[k] || [];\n  if (concat) obj[k] = obj[k].concat(newValue);\n  if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n  var _getLastOfPath3 = getLastOfPath(object, path),\n    obj = _getLastOfPath3.obj,\n    k = _getLastOfPath3.k;\n  if (!obj) return undefined;\n  return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n  var value = getPath(data, key);\n  if (value !== undefined) {\n    return value;\n  }\n  return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n  for (var prop in source) {\n    if (prop !== '__proto__' && prop !== 'constructor') {\n      if (prop in target) {\n        if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n          if (overwrite) target[prop] = source[prop];\n        } else {\n          deepExtend(target[prop], source[prop], overwrite);\n        }\n      } else {\n        target[prop] = source[prop];\n      }\n    }\n  }\n  return target;\n}\nfunction regexEscape(str) {\n  return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  \"'\": '&#39;',\n  '/': '&#x2F;'\n};\nfunction escape(data) {\n  if (typeof data === 'string') {\n    return data.replace(/[&<>\"'\\/]/g, function (s) {\n      return _entityMap[s];\n    });\n  }\n  return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n  nsSeparator = nsSeparator || '';\n  keySeparator = keySeparator || '';\n  var possibleChars = chars.filter(function (c) {\n    return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n  });\n  if (possibleChars.length === 0) return true;\n  var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n    return c === '?' ? '\\\\?' : c;\n  }).join('|'), \")\"));\n  var matched = !r.test(key);\n  if (!matched) {\n    var ki = key.indexOf(keySeparator);\n    if (ki > 0 && !r.test(key.substring(0, ki))) {\n      matched = true;\n    }\n  }\n  return matched;\n}\nfunction deepFind(obj, path) {\n  var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n  if (!obj) return undefined;\n  if (obj[path]) return obj[path];\n  var paths = path.split(keySeparator);\n  var current = obj;\n  for (var i = 0; i < paths.length; ++i) {\n    if (!current) return undefined;\n    if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n      return undefined;\n    }\n    if (current[paths[i]] === undefined) {\n      var j = 2;\n      var p = paths.slice(i, i + j).join(keySeparator);\n      var mix = current[p];\n      while (mix === undefined && paths.length > i + j) {\n        j++;\n        p = paths.slice(i, i + j).join(keySeparator);\n        mix = current[p];\n      }\n      if (mix === undefined) return undefined;\n      if (mix === null) return null;\n      if (path.endsWith(p)) {\n        if (typeof mix === 'string') return mix;\n        if (p && typeof mix[p] === 'string') return mix[p];\n      }\n      var joinedPath = paths.slice(i + j).join(keySeparator);\n      if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n      return undefined;\n    }\n    current = current[paths[i]];\n  }\n  return current;\n}\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ResourceStore = function (_EventEmitter) {\n  _inherits(ResourceStore, _EventEmitter);\n  var _super = _createSuper$3(ResourceStore);\n  function ResourceStore(data) {\n    var _this;\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n      ns: ['translation'],\n      defaultNS: 'translation'\n    };\n    _classCallCheck(this, ResourceStore);\n    _this = _super.call(this);\n    if (isIE10) {\n      EventEmitter.call(_assertThisInitialized(_this));\n    }\n    _this.data = data || {};\n    _this.options = options;\n    if (_this.options.keySeparator === undefined) {\n      _this.options.keySeparator = '.';\n    }\n    if (_this.options.ignoreJSONStructure === undefined) {\n      _this.options.ignoreJSONStructure = true;\n    }\n    return _this;\n  }\n  _createClass(ResourceStore, [{\n    key: \"addNamespaces\",\n    value: function addNamespaces(ns) {\n      if (this.options.ns.indexOf(ns) < 0) {\n        this.options.ns.push(ns);\n      }\n    }\n  }, {\n    key: \"removeNamespaces\",\n    value: function removeNamespaces(ns) {\n      var index = this.options.ns.indexOf(ns);\n      if (index > -1) {\n        this.options.ns.splice(index, 1);\n      }\n    }\n  }, {\n    key: \"getResource\",\n    value: function getResource(lng, ns, key) {\n      var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n      var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n      var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n      var path = [lng, ns];\n      if (key && typeof key !== 'string') path = path.concat(key);\n      if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n      if (lng.indexOf('.') > -1) {\n        path = lng.split('.');\n      }\n      var result = getPath(this.data, path);\n      if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n      return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n    }\n  }, {\n    key: \"addResource\",\n    value: function addResource(lng, ns, key, value) {\n      var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n        silent: false\n      };\n      var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n      var path = [lng, ns];\n      if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n      if (lng.indexOf('.') > -1) {\n        path = lng.split('.');\n        value = ns;\n        ns = path[1];\n      }\n      this.addNamespaces(ns);\n      setPath(this.data, path, value);\n      if (!options.silent) this.emit('added', lng, ns, key, value);\n    }\n  }, {\n    key: \"addResources\",\n    value: function addResources(lng, ns, resources) {\n      var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n        silent: false\n      };\n      for (var m in resources) {\n        if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n          silent: true\n        });\n      }\n      if (!options.silent) this.emit('added', lng, ns, resources);\n    }\n  }, {\n    key: \"addResourceBundle\",\n    value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n      var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n        silent: false\n      };\n      var path = [lng, ns];\n      if (lng.indexOf('.') > -1) {\n        path = lng.split('.');\n        deep = resources;\n        resources = ns;\n        ns = path[1];\n      }\n      this.addNamespaces(ns);\n      var pack = getPath(this.data, path) || {};\n      if (deep) {\n        deepExtend(pack, resources, overwrite);\n      } else {\n        pack = _objectSpread$5(_objectSpread$5({}, pack), resources);\n      }\n      setPath(this.data, path, pack);\n      if (!options.silent) this.emit('added', lng, ns, resources);\n    }\n  }, {\n    key: \"removeResourceBundle\",\n    value: function removeResourceBundle(lng, ns) {\n      if (this.hasResourceBundle(lng, ns)) {\n        delete this.data[lng][ns];\n      }\n      this.removeNamespaces(ns);\n      this.emit('removed', lng, ns);\n    }\n  }, {\n    key: \"hasResourceBundle\",\n    value: function hasResourceBundle(lng, ns) {\n      return this.getResource(lng, ns) !== undefined;\n    }\n  }, {\n    key: \"getResourceBundle\",\n    value: function getResourceBundle(lng, ns) {\n      if (!ns) ns = this.options.defaultNS;\n      if (this.options.compatibilityAPI === 'v1') return _objectSpread$5(_objectSpread$5({}, {}), this.getResource(lng, ns));\n      return this.getResource(lng, ns);\n    }\n  }, {\n    key: \"getDataByLanguage\",\n    value: function getDataByLanguage(lng) {\n      return this.data[lng];\n    }\n  }, {\n    key: \"hasLanguageSomeTranslations\",\n    value: function hasLanguageSomeTranslations(lng) {\n      var data = this.getDataByLanguage(lng);\n      var n = data && Object.keys(data) || [];\n      return !!n.find(function (v) {\n        return data[v] && Object.keys(data[v]).length > 0;\n      });\n    }\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      return this.data;\n    }\n  }]);\n  return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n  processors: {},\n  addPostProcessor: function addPostProcessor(module) {\n    this.processors[module.name] = module;\n  },\n  handle: function handle(processors, value, key, options, translator) {\n    var _this = this;\n    processors.forEach(function (processor) {\n      if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n    });\n    return value;\n  }\n};\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\nvar Translator = function (_EventEmitter) {\n  _inherits(Translator, _EventEmitter);\n  var _super = _createSuper$2(Translator);\n  function Translator(services) {\n    var _this;\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    _classCallCheck(this, Translator);\n    _this = _super.call(this);\n    if (isIE10) {\n      EventEmitter.call(_assertThisInitialized(_this));\n    }\n    copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n    _this.options = options;\n    if (_this.options.keySeparator === undefined) {\n      _this.options.keySeparator = '.';\n    }\n    _this.logger = baseLogger.create('translator');\n    return _this;\n  }\n  _createClass(Translator, [{\n    key: \"changeLanguage\",\n    value: function changeLanguage(lng) {\n      if (lng) this.language = lng;\n    }\n  }, {\n    key: \"exists\",\n    value: function exists(key) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        interpolation: {}\n      };\n      if (key === undefined || key === null) {\n        return false;\n      }\n      var resolved = this.resolve(key, options);\n      return resolved && resolved.res !== undefined;\n    }\n  }, {\n    key: \"extractFromKey\",\n    value: function extractFromKey(key, options) {\n      var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n      if (nsSeparator === undefined) nsSeparator = ':';\n      var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n      var namespaces = options.ns || this.options.defaultNS || [];\n      var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n      var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n      if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n        var m = key.match(this.interpolator.nestingRegexp);\n        if (m && m.length > 0) {\n          return {\n            key: key,\n            namespaces: namespaces\n          };\n        }\n        var parts = key.split(nsSeparator);\n        if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n        key = parts.join(keySeparator);\n      }\n      if (typeof namespaces === 'string') namespaces = [namespaces];\n      return {\n        key: key,\n        namespaces: namespaces\n      };\n    }\n  }, {\n    key: \"translate\",\n    value: function translate(keys, options, lastKey) {\n      var _this2 = this;\n      if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n        options = this.options.overloadTranslationOptionHandler(arguments);\n      }\n      if (_typeof(options) === 'object') options = _objectSpread$4({}, options);\n      if (!options) options = {};\n      if (keys === undefined || keys === null) return '';\n      if (!Array.isArray(keys)) keys = [String(keys)];\n      var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n      var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n      var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n        key = _this$extractFromKey.key,\n        namespaces = _this$extractFromKey.namespaces;\n      var namespace = namespaces[namespaces.length - 1];\n      var lng = options.lng || this.language;\n      var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n      if (lng && lng.toLowerCase() === 'cimode') {\n        if (appendNamespaceToCIMode) {\n          var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n          if (returnDetails) {\n            return {\n              res: \"\".concat(namespace).concat(nsSeparator).concat(key),\n              usedKey: key,\n              exactUsedKey: key,\n              usedLng: lng,\n              usedNS: namespace\n            };\n          }\n          return \"\".concat(namespace).concat(nsSeparator).concat(key);\n        }\n        if (returnDetails) {\n          return {\n            res: key,\n            usedKey: key,\n            exactUsedKey: key,\n            usedLng: lng,\n            usedNS: namespace\n          };\n        }\n        return key;\n      }\n      var resolved = this.resolve(keys, options);\n      var res = resolved && resolved.res;\n      var resUsedKey = resolved && resolved.usedKey || key;\n      var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n      var resType = Object.prototype.toString.apply(res);\n      var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n      var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n      var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n      var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n      if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n        if (!options.returnObjects && !this.options.returnObjects) {\n          if (!this.options.returnedObjectHandler) {\n            this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n          }\n          var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$4(_objectSpread$4({}, options), {}, {\n            ns: namespaces\n          })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n          if (returnDetails) {\n            resolved.res = r;\n            return resolved;\n          }\n          return r;\n        }\n        if (keySeparator) {\n          var resTypeIsArray = resType === '[object Array]';\n          var copy = resTypeIsArray ? [] : {};\n          var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n          for (var m in res) {\n            if (Object.prototype.hasOwnProperty.call(res, m)) {\n              var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n              copy[m] = this.translate(deepKey, _objectSpread$4(_objectSpread$4({}, options), {\n                joinArrays: false,\n                ns: namespaces\n              }));\n              if (copy[m] === deepKey) copy[m] = res[m];\n            }\n          }\n          res = copy;\n        }\n      } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n        res = res.join(joinArrays);\n        if (res) res = this.extendTranslation(res, keys, options, lastKey);\n      } else {\n        var usedDefault = false;\n        var usedKey = false;\n        var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n        var hasDefaultValue = Translator.hasDefaultValue(options);\n        var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n        var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n        if (!this.isValidLookup(res) && hasDefaultValue) {\n          usedDefault = true;\n          res = defaultValue;\n        }\n        if (!this.isValidLookup(res)) {\n          usedKey = true;\n          res = key;\n        }\n        var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n        var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n        var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n        if (usedKey || usedDefault || updateMissing) {\n          this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n          if (keySeparator) {\n            var fk = this.resolve(key, _objectSpread$4(_objectSpread$4({}, options), {}, {\n              keySeparator: false\n            }));\n            if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n          }\n          var lngs = [];\n          var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n          if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n            for (var i = 0; i < fallbackLngs.length; i++) {\n              lngs.push(fallbackLngs[i]);\n            }\n          } else if (this.options.saveMissingTo === 'all') {\n            lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n          } else {\n            lngs.push(options.lng || this.language);\n          }\n          var send = function send(l, k, specificDefaultValue) {\n            var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n            if (_this2.options.missingKeyHandler) {\n              _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n            } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n              _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n            }\n            _this2.emit('missingKey', l, namespace, k, res);\n          };\n          if (this.options.saveMissing) {\n            if (this.options.saveMissingPlurals && needsPluralHandling) {\n              lngs.forEach(function (language) {\n                _this2.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {\n                  send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n                });\n              });\n            } else {\n              send(lngs, key, defaultValue);\n            }\n          }\n        }\n        res = this.extendTranslation(res, keys, options, resolved, lastKey);\n        if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n        if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n          if (this.options.compatibilityAPI !== 'v1') {\n            res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n          } else {\n            res = this.options.parseMissingKeyHandler(res);\n          }\n        }\n      }\n      if (returnDetails) {\n        resolved.res = res;\n        return resolved;\n      }\n      return res;\n    }\n  }, {\n    key: \"extendTranslation\",\n    value: function extendTranslation(res, key, options, resolved, lastKey) {\n      var _this3 = this;\n      if (this.i18nFormat && this.i18nFormat.parse) {\n        res = this.i18nFormat.parse(res, _objectSpread$4(_objectSpread$4({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n          resolved: resolved\n        });\n      } else if (!options.skipInterpolation) {\n        if (options.interpolation) this.interpolator.init(_objectSpread$4(_objectSpread$4({}, options), {\n          interpolation: _objectSpread$4(_objectSpread$4({}, this.options.interpolation), options.interpolation)\n        }));\n        var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n        var nestBef;\n        if (skipOnVariables) {\n          var nb = res.match(this.interpolator.nestingRegexp);\n          nestBef = nb && nb.length;\n        }\n        var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n        if (this.options.interpolation.defaultVariables) data = _objectSpread$4(_objectSpread$4({}, this.options.interpolation.defaultVariables), data);\n        res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n        if (skipOnVariables) {\n          var na = res.match(this.interpolator.nestingRegexp);\n          var nestAft = na && na.length;\n          if (nestBef < nestAft) options.nest = false;\n        }\n        if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n        if (options.nest !== false) res = this.interpolator.nest(res, function () {\n          for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n            args[_key] = arguments[_key];\n          }\n          if (lastKey && lastKey[0] === args[0] && !options.context) {\n            _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n            return null;\n          }\n          return _this3.translate.apply(_this3, args.concat([key]));\n        }, options);\n        if (options.interpolation) this.interpolator.reset();\n      }\n      var postProcess = options.postProcess || this.options.postProcess;\n      var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n      if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n        res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$4({\n          i18nResolved: resolved\n        }, options) : options, this);\n      }\n      return res;\n    }\n  }, {\n    key: \"resolve\",\n    value: function resolve(keys) {\n      var _this4 = this;\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var found;\n      var usedKey;\n      var exactUsedKey;\n      var usedLng;\n      var usedNS;\n      if (typeof keys === 'string') keys = [keys];\n      keys.forEach(function (k) {\n        if (_this4.isValidLookup(found)) return;\n        var extracted = _this4.extractFromKey(k, options);\n        var key = extracted.key;\n        usedKey = key;\n        var namespaces = extracted.namespaces;\n        if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n        var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n        var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n        var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n        var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n        namespaces.forEach(function (ns) {\n          if (_this4.isValidLookup(found)) return;\n          usedNS = ns;\n          if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n            checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n            _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n          }\n          codes.forEach(function (code) {\n            if (_this4.isValidLookup(found)) return;\n            usedLng = code;\n            var finalKeys = [key];\n            if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n              _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n            } else {\n              var pluralSuffix;\n              if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n              var zeroSuffix = \"\".concat(_this4.options.pluralSeparator, \"zero\");\n              if (needsPluralHandling) {\n                finalKeys.push(key + pluralSuffix);\n                if (needsZeroSuffixLookup) {\n                  finalKeys.push(key + zeroSuffix);\n                }\n              }\n              if (needsContextHandling) {\n                var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n                finalKeys.push(contextKey);\n                if (needsPluralHandling) {\n                  finalKeys.push(contextKey + pluralSuffix);\n                  if (needsZeroSuffixLookup) {\n                    finalKeys.push(contextKey + zeroSuffix);\n                  }\n                }\n              }\n            }\n            var possibleKey;\n            while (possibleKey = finalKeys.pop()) {\n              if (!_this4.isValidLookup(found)) {\n                exactUsedKey = possibleKey;\n                found = _this4.getResource(code, ns, possibleKey, options);\n              }\n            }\n          });\n        });\n      });\n      return {\n        res: found,\n        usedKey: usedKey,\n        exactUsedKey: exactUsedKey,\n        usedLng: usedLng,\n        usedNS: usedNS\n      };\n    }\n  }, {\n    key: \"isValidLookup\",\n    value: function isValidLookup(res) {\n      return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n    }\n  }, {\n    key: \"getResource\",\n    value: function getResource(code, ns, key) {\n      var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n      if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n      return this.resourceStore.getResource(code, ns, key, options);\n    }\n  }], [{\n    key: \"hasDefaultValue\",\n    value: function hasDefaultValue(options) {\n      var prefix = 'defaultValue';\n      for (var option in options) {\n        if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n          return true;\n        }\n      }\n      return false;\n    }\n  }]);\n  return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n  return string.charAt(0).toUpperCase() + string.slice(1);\n}\nvar LanguageUtil = function () {\n  function LanguageUtil(options) {\n    _classCallCheck(this, LanguageUtil);\n    this.options = options;\n    this.supportedLngs = this.options.supportedLngs || false;\n    this.logger = baseLogger.create('languageUtils');\n  }\n  _createClass(LanguageUtil, [{\n    key: \"getScriptPartFromCode\",\n    value: function getScriptPartFromCode(code) {\n      if (!code || code.indexOf('-') < 0) return null;\n      var p = code.split('-');\n      if (p.length === 2) return null;\n      p.pop();\n      if (p[p.length - 1].toLowerCase() === 'x') return null;\n      return this.formatLanguageCode(p.join('-'));\n    }\n  }, {\n    key: \"getLanguagePartFromCode\",\n    value: function getLanguagePartFromCode(code) {\n      if (!code || code.indexOf('-') < 0) return code;\n      var p = code.split('-');\n      return this.formatLanguageCode(p[0]);\n    }\n  }, {\n    key: \"formatLanguageCode\",\n    value: function formatLanguageCode(code) {\n      if (typeof code === 'string' && code.indexOf('-') > -1) {\n        var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n        var p = code.split('-');\n        if (this.options.lowerCaseLng) {\n          p = p.map(function (part) {\n            return part.toLowerCase();\n          });\n        } else if (p.length === 2) {\n          p[0] = p[0].toLowerCase();\n          p[1] = p[1].toUpperCase();\n          if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n        } else if (p.length === 3) {\n          p[0] = p[0].toLowerCase();\n          if (p[1].length === 2) p[1] = p[1].toUpperCase();\n          if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n          if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n          if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n        }\n        return p.join('-');\n      }\n      return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n    }\n  }, {\n    key: \"isSupportedCode\",\n    value: function isSupportedCode(code) {\n      if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n        code = this.getLanguagePartFromCode(code);\n      }\n      return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n    }\n  }, {\n    key: \"getBestMatchFromCodes\",\n    value: function getBestMatchFromCodes(codes) {\n      var _this = this;\n      if (!codes) return null;\n      var found;\n      codes.forEach(function (code) {\n        if (found) return;\n        var cleanedLng = _this.formatLanguageCode(code);\n        if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n      });\n      if (!found && this.options.supportedLngs) {\n        codes.forEach(function (code) {\n          if (found) return;\n          var lngOnly = _this.getLanguagePartFromCode(code);\n          if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n          found = _this.options.supportedLngs.find(function (supportedLng) {\n            if (supportedLng === lngOnly) return supportedLng;\n            if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n            if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n          });\n        });\n      }\n      if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n      return found;\n    }\n  }, {\n    key: \"getFallbackCodes\",\n    value: function getFallbackCodes(fallbacks, code) {\n      if (!fallbacks) return [];\n      if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n      if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n      if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n      if (!code) return fallbacks[\"default\"] || [];\n      var found = fallbacks[code];\n      if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n      if (!found) found = fallbacks[this.formatLanguageCode(code)];\n      if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n      if (!found) found = fallbacks[\"default\"];\n      return found || [];\n    }\n  }, {\n    key: \"toResolveHierarchy\",\n    value: function toResolveHierarchy(code, fallbackCode) {\n      var _this2 = this;\n      var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n      var codes = [];\n      var addCode = function addCode(c) {\n        if (!c) return;\n        if (_this2.isSupportedCode(c)) {\n          codes.push(c);\n        } else {\n          _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n        }\n      };\n      if (typeof code === 'string' && code.indexOf('-') > -1) {\n        if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n        if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n        if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n      } else if (typeof code === 'string') {\n        addCode(this.formatLanguageCode(code));\n      }\n      fallbackCodes.forEach(function (fc) {\n        if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n      });\n      return codes;\n    }\n  }]);\n  return LanguageUtil;\n}();\n\nvar sets = [{\n  lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n  nr: [1, 2],\n  fc: 1\n}, {\n  lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n  nr: [1, 2],\n  fc: 2\n}, {\n  lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n  nr: [1],\n  fc: 3\n}, {\n  lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n  nr: [1, 2, 5],\n  fc: 4\n}, {\n  lngs: ['ar'],\n  nr: [0, 1, 2, 3, 11, 100],\n  fc: 5\n}, {\n  lngs: ['cs', 'sk'],\n  nr: [1, 2, 5],\n  fc: 6\n}, {\n  lngs: ['csb', 'pl'],\n  nr: [1, 2, 5],\n  fc: 7\n}, {\n  lngs: ['cy'],\n  nr: [1, 2, 3, 8],\n  fc: 8\n}, {\n  lngs: ['fr'],\n  nr: [1, 2],\n  fc: 9\n}, {\n  lngs: ['ga'],\n  nr: [1, 2, 3, 7, 11],\n  fc: 10\n}, {\n  lngs: ['gd'],\n  nr: [1, 2, 3, 20],\n  fc: 11\n}, {\n  lngs: ['is'],\n  nr: [1, 2],\n  fc: 12\n}, {\n  lngs: ['jv'],\n  nr: [0, 1],\n  fc: 13\n}, {\n  lngs: ['kw'],\n  nr: [1, 2, 3, 4],\n  fc: 14\n}, {\n  lngs: ['lt'],\n  nr: [1, 2, 10],\n  fc: 15\n}, {\n  lngs: ['lv'],\n  nr: [1, 2, 0],\n  fc: 16\n}, {\n  lngs: ['mk'],\n  nr: [1, 2],\n  fc: 17\n}, {\n  lngs: ['mnk'],\n  nr: [0, 1, 2],\n  fc: 18\n}, {\n  lngs: ['mt'],\n  nr: [1, 2, 11, 20],\n  fc: 19\n}, {\n  lngs: ['or'],\n  nr: [2, 1],\n  fc: 2\n}, {\n  lngs: ['ro'],\n  nr: [1, 2, 20],\n  fc: 20\n}, {\n  lngs: ['sl'],\n  nr: [5, 1, 2, 3],\n  fc: 21\n}, {\n  lngs: ['he', 'iw'],\n  nr: [1, 2, 20, 21],\n  fc: 22\n}];\nvar _rulesPluralsTypes = {\n  1: function _(n) {\n    return Number(n > 1);\n  },\n  2: function _(n) {\n    return Number(n != 1);\n  },\n  3: function _(n) {\n    return 0;\n  },\n  4: function _(n) {\n    return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n  },\n  5: function _(n) {\n    return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n  },\n  6: function _(n) {\n    return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n  },\n  7: function _(n) {\n    return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n  },\n  8: function _(n) {\n    return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n  },\n  9: function _(n) {\n    return Number(n >= 2);\n  },\n  10: function _(n) {\n    return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n  },\n  11: function _(n) {\n    return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n  },\n  12: function _(n) {\n    return Number(n % 10 != 1 || n % 100 == 11);\n  },\n  13: function _(n) {\n    return Number(n !== 0);\n  },\n  14: function _(n) {\n    return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n  },\n  15: function _(n) {\n    return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n  },\n  16: function _(n) {\n    return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n  },\n  17: function _(n) {\n    return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n  },\n  18: function _(n) {\n    return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n  },\n  19: function _(n) {\n    return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n  },\n  20: function _(n) {\n    return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n  },\n  21: function _(n) {\n    return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n  },\n  22: function _(n) {\n    return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n  }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n  zero: 0,\n  one: 1,\n  two: 2,\n  few: 3,\n  many: 4,\n  other: 5\n};\nfunction createRules() {\n  var rules = {};\n  sets.forEach(function (set) {\n    set.lngs.forEach(function (l) {\n      rules[l] = {\n        numbers: set.nr,\n        plurals: _rulesPluralsTypes[set.fc]\n      };\n    });\n  });\n  return rules;\n}\nvar PluralResolver = function () {\n  function PluralResolver(languageUtils) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    _classCallCheck(this, PluralResolver);\n    this.languageUtils = languageUtils;\n    this.options = options;\n    this.logger = baseLogger.create('pluralResolver');\n    if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n      this.options.compatibilityJSON = 'v3';\n      this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n    }\n    this.rules = createRules();\n  }\n  _createClass(PluralResolver, [{\n    key: \"addRule\",\n    value: function addRule(lng, obj) {\n      this.rules[lng] = obj;\n    }\n  }, {\n    key: \"getRule\",\n    value: function getRule(code) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      if (this.shouldUseIntlApi()) {\n        try {\n          return new Intl.PluralRules(code, {\n            type: options.ordinal ? 'ordinal' : 'cardinal'\n          });\n        } catch (_unused) {\n          return;\n        }\n      }\n      return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n    }\n  }, {\n    key: \"needsPlural\",\n    value: function needsPlural(code) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var rule = this.getRule(code, options);\n      if (this.shouldUseIntlApi()) {\n        return rule && rule.resolvedOptions().pluralCategories.length > 1;\n      }\n      return rule && rule.numbers.length > 1;\n    }\n  }, {\n    key: \"getPluralFormsOfKey\",\n    value: function getPluralFormsOfKey(code, key) {\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      return this.getSuffixes(code, options).map(function (suffix) {\n        return \"\".concat(key).concat(suffix);\n      });\n    }\n  }, {\n    key: \"getSuffixes\",\n    value: function getSuffixes(code) {\n      var _this = this;\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var rule = this.getRule(code, options);\n      if (!rule) {\n        return [];\n      }\n      if (this.shouldUseIntlApi()) {\n        return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n          return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n        }).map(function (pluralCategory) {\n          return \"\".concat(_this.options.prepend).concat(pluralCategory);\n        });\n      }\n      return rule.numbers.map(function (number) {\n        return _this.getSuffix(code, number, options);\n      });\n    }\n  }, {\n    key: \"getSuffix\",\n    value: function getSuffix(code, count) {\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var rule = this.getRule(code, options);\n      if (rule) {\n        if (this.shouldUseIntlApi()) {\n          return \"\".concat(this.options.prepend).concat(rule.select(count));\n        }\n        return this.getSuffixRetroCompatible(rule, count);\n      }\n      this.logger.warn(\"no plural rule found for: \".concat(code));\n      return '';\n    }\n  }, {\n    key: \"getSuffixRetroCompatible\",\n    value: function getSuffixRetroCompatible(rule, count) {\n      var _this2 = this;\n      var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n      var suffix = rule.numbers[idx];\n      if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n        if (suffix === 2) {\n          suffix = 'plural';\n        } else if (suffix === 1) {\n          suffix = '';\n        }\n      }\n      var returnSuffix = function returnSuffix() {\n        return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n      };\n      if (this.options.compatibilityJSON === 'v1') {\n        if (suffix === 1) return '';\n        if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n        return returnSuffix();\n      } else if (this.options.compatibilityJSON === 'v2') {\n        return returnSuffix();\n      } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n        return returnSuffix();\n      }\n      return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n    }\n  }, {\n    key: \"shouldUseIntlApi\",\n    value: function shouldUseIntlApi() {\n      return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n    }\n  }]);\n  return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction deepFindWithDefaults(data, defaultData, key) {\n  var keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n  var ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n  var path = getPathWithDefaults(data, defaultData, key);\n  if (!path && ignoreJSONStructure && typeof key === 'string') {\n    path = deepFind(data, key, keySeparator);\n    if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n  }\n  return path;\n}\nvar Interpolator = function () {\n  function Interpolator() {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    _classCallCheck(this, Interpolator);\n    this.logger = baseLogger.create('interpolator');\n    this.options = options;\n    this.format = options.interpolation && options.interpolation.format || function (value) {\n      return value;\n    };\n    this.init(options);\n  }\n  _createClass(Interpolator, [{\n    key: \"init\",\n    value: function init() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      if (!options.interpolation) options.interpolation = {\n        escapeValue: true\n      };\n      var iOpts = options.interpolation;\n      this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n      this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n      this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n      this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n      this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n      this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n      this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n      this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n      this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n      this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n      this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n      this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n      this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n      this.resetRegExp();\n    }\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      if (this.options) this.init(this.options);\n    }\n  }, {\n    key: \"resetRegExp\",\n    value: function resetRegExp() {\n      var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n      this.regexp = new RegExp(regexpStr, 'g');\n      var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n      this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n      var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n      this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n    }\n  }, {\n    key: \"interpolate\",\n    value: function interpolate(str, data, lng, options) {\n      var _this = this;\n      var match;\n      var value;\n      var replaces;\n      var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n      function regexSafe(val) {\n        return val.replace(/\\$/g, '$$$$');\n      }\n      var handleFormat = function handleFormat(key) {\n        if (key.indexOf(_this.formatSeparator) < 0) {\n          var path = deepFindWithDefaults(data, defaultData, key, _this.options.keySeparator, _this.options.ignoreJSONStructure);\n          return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n            interpolationkey: key\n          })) : path;\n        }\n        var p = key.split(_this.formatSeparator);\n        var k = p.shift().trim();\n        var f = p.join(_this.formatSeparator).trim();\n        return _this.format(deepFindWithDefaults(data, defaultData, k, _this.options.keySeparator, _this.options.ignoreJSONStructure), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n          interpolationkey: k\n        }));\n      };\n      this.resetRegExp();\n      var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n      var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n      var todos = [{\n        regex: this.regexpUnescape,\n        safeValue: function safeValue(val) {\n          return regexSafe(val);\n        }\n      }, {\n        regex: this.regexp,\n        safeValue: function safeValue(val) {\n          return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n        }\n      }];\n      todos.forEach(function (todo) {\n        replaces = 0;\n        while (match = todo.regex.exec(str)) {\n          var matchedVar = match[1].trim();\n          value = handleFormat(matchedVar);\n          if (value === undefined) {\n            if (typeof missingInterpolationHandler === 'function') {\n              var temp = missingInterpolationHandler(str, match, options);\n              value = typeof temp === 'string' ? temp : '';\n            } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n              value = '';\n            } else if (skipOnVariables) {\n              value = match[0];\n              continue;\n            } else {\n              _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n              value = '';\n            }\n          } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n            value = makeString(value);\n          }\n          var safeValue = todo.safeValue(value);\n          str = str.replace(match[0], safeValue);\n          if (skipOnVariables) {\n            todo.regex.lastIndex += value.length;\n            todo.regex.lastIndex -= match[0].length;\n          } else {\n            todo.regex.lastIndex = 0;\n          }\n          replaces++;\n          if (replaces >= _this.maxReplaces) {\n            break;\n          }\n        }\n      });\n      return str;\n    }\n  }, {\n    key: \"nest\",\n    value: function nest(str, fc) {\n      var _this2 = this;\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var match;\n      var value;\n      var clonedOptions;\n      function handleHasOptions(key, inheritedOptions) {\n        var sep = this.nestingOptionsSeparator;\n        if (key.indexOf(sep) < 0) return key;\n        var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n        var optionsString = \"{\".concat(c[1]);\n        key = c[0];\n        optionsString = this.interpolate(optionsString, clonedOptions);\n        var matchedSingleQuotes = optionsString.match(/'/g);\n        var matchedDoubleQuotes = optionsString.match(/\"/g);\n        if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n          optionsString = optionsString.replace(/'/g, '\"');\n        }\n        try {\n          clonedOptions = JSON.parse(optionsString);\n          if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n        } catch (e) {\n          this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n          return \"\".concat(key).concat(sep).concat(optionsString);\n        }\n        delete clonedOptions.defaultValue;\n        return key;\n      }\n      while (match = this.nestingRegexp.exec(str)) {\n        var formatters = [];\n        clonedOptions = _objectSpread$3({}, options);\n        clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n        clonedOptions.applyPostProcessor = false;\n        delete clonedOptions.defaultValue;\n        var doReduce = false;\n        if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n          var r = match[1].split(this.formatSeparator).map(function (elem) {\n            return elem.trim();\n          });\n          match[1] = r.shift();\n          formatters = r;\n          doReduce = true;\n        }\n        value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n        if (value && match[0] === str && typeof value !== 'string') return value;\n        if (typeof value !== 'string') value = makeString(value);\n        if (!value) {\n          this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n          value = '';\n        }\n        if (doReduce) {\n          value = formatters.reduce(function (v, f) {\n            return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n              interpolationkey: match[1].trim()\n            }));\n          }, value.trim());\n        }\n        str = str.replace(match[0], value);\n        this.regexp.lastIndex = 0;\n      }\n      return str;\n    }\n  }]);\n  return Interpolator;\n}();\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction parseFormatStr(formatStr) {\n  var formatName = formatStr.toLowerCase().trim();\n  var formatOptions = {};\n  if (formatStr.indexOf('(') > -1) {\n    var p = formatStr.split('(');\n    formatName = p[0].toLowerCase().trim();\n    var optStr = p[1].substring(0, p[1].length - 1);\n    if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n      if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n    } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n      if (!formatOptions.range) formatOptions.range = optStr.trim();\n    } else {\n      var opts = optStr.split(';');\n      opts.forEach(function (opt) {\n        if (!opt) return;\n        var _opt$split = opt.split(':'),\n          _opt$split2 = _toArray(_opt$split),\n          key = _opt$split2[0],\n          rest = _opt$split2.slice(1);\n        var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n        if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n        if (val === 'false') formatOptions[key.trim()] = false;\n        if (val === 'true') formatOptions[key.trim()] = true;\n        if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n      });\n    }\n  }\n  return {\n    formatName: formatName,\n    formatOptions: formatOptions\n  };\n}\nfunction createCachedFormatter(fn) {\n  var cache = {};\n  return function invokeFormatter(val, lng, options) {\n    var key = lng + JSON.stringify(options);\n    var formatter = cache[key];\n    if (!formatter) {\n      formatter = fn(lng, options);\n      cache[key] = formatter;\n    }\n    return formatter(val);\n  };\n}\nvar Formatter = function () {\n  function Formatter() {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    _classCallCheck(this, Formatter);\n    this.logger = baseLogger.create('formatter');\n    this.options = options;\n    this.formats = {\n      number: createCachedFormatter(function (lng, opt) {\n        var formatter = new Intl.NumberFormat(lng, _objectSpread$2({}, opt));\n        return function (val) {\n          return formatter.format(val);\n        };\n      }),\n      currency: createCachedFormatter(function (lng, opt) {\n        var formatter = new Intl.NumberFormat(lng, _objectSpread$2(_objectSpread$2({}, opt), {}, {\n          style: 'currency'\n        }));\n        return function (val) {\n          return formatter.format(val);\n        };\n      }),\n      datetime: createCachedFormatter(function (lng, opt) {\n        var formatter = new Intl.DateTimeFormat(lng, _objectSpread$2({}, opt));\n        return function (val) {\n          return formatter.format(val);\n        };\n      }),\n      relativetime: createCachedFormatter(function (lng, opt) {\n        var formatter = new Intl.RelativeTimeFormat(lng, _objectSpread$2({}, opt));\n        return function (val) {\n          return formatter.format(val, opt.range || 'day');\n        };\n      }),\n      list: createCachedFormatter(function (lng, opt) {\n        var formatter = new Intl.ListFormat(lng, _objectSpread$2({}, opt));\n        return function (val) {\n          return formatter.format(val);\n        };\n      })\n    };\n    this.init(options);\n  }\n  _createClass(Formatter, [{\n    key: \"init\",\n    value: function init(services) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        interpolation: {}\n      };\n      var iOpts = options.interpolation;\n      this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n    }\n  }, {\n    key: \"add\",\n    value: function add(name, fc) {\n      this.formats[name.toLowerCase().trim()] = fc;\n    }\n  }, {\n    key: \"addCached\",\n    value: function addCached(name, fc) {\n      this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n    }\n  }, {\n    key: \"format\",\n    value: function format(value, _format, lng) {\n      var _this = this;\n      var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n      var formats = _format.split(this.formatSeparator);\n      var result = formats.reduce(function (mem, f) {\n        var _parseFormatStr = parseFormatStr(f),\n          formatName = _parseFormatStr.formatName,\n          formatOptions = _parseFormatStr.formatOptions;\n        if (_this.formats[formatName]) {\n          var formatted = mem;\n          try {\n            var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n            var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n            formatted = _this.formats[formatName](mem, l, _objectSpread$2(_objectSpread$2(_objectSpread$2({}, formatOptions), options), valOptions));\n          } catch (error) {\n            _this.logger.warn(error);\n          }\n          return formatted;\n        } else {\n          _this.logger.warn(\"there was no format function for \".concat(formatName));\n        }\n        return mem;\n      }, value);\n      return result;\n    }\n  }]);\n  return Formatter;\n}();\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction removePending(q, name) {\n  if (q.pending[name] !== undefined) {\n    delete q.pending[name];\n    q.pendingCount--;\n  }\n}\nvar Connector = function (_EventEmitter) {\n  _inherits(Connector, _EventEmitter);\n  var _super = _createSuper$1(Connector);\n  function Connector(backend, store, services) {\n    var _this;\n    var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n    _classCallCheck(this, Connector);\n    _this = _super.call(this);\n    if (isIE10) {\n      EventEmitter.call(_assertThisInitialized(_this));\n    }\n    _this.backend = backend;\n    _this.store = store;\n    _this.services = services;\n    _this.languageUtils = services.languageUtils;\n    _this.options = options;\n    _this.logger = baseLogger.create('backendConnector');\n    _this.waitingReads = [];\n    _this.maxParallelReads = options.maxParallelReads || 10;\n    _this.readingCalls = 0;\n    _this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n    _this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n    _this.state = {};\n    _this.queue = [];\n    if (_this.backend && _this.backend.init) {\n      _this.backend.init(services, options.backend, options);\n    }\n    return _this;\n  }\n  _createClass(Connector, [{\n    key: \"queueLoad\",\n    value: function queueLoad(languages, namespaces, options, callback) {\n      var _this2 = this;\n      var toLoad = {};\n      var pending = {};\n      var toLoadLanguages = {};\n      var toLoadNamespaces = {};\n      languages.forEach(function (lng) {\n        var hasAllNamespaces = true;\n        namespaces.forEach(function (ns) {\n          var name = \"\".concat(lng, \"|\").concat(ns);\n          if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n            _this2.state[name] = 2;\n          } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n            if (pending[name] === undefined) pending[name] = true;\n          } else {\n            _this2.state[name] = 1;\n            hasAllNamespaces = false;\n            if (pending[name] === undefined) pending[name] = true;\n            if (toLoad[name] === undefined) toLoad[name] = true;\n            if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n          }\n        });\n        if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n      });\n      if (Object.keys(toLoad).length || Object.keys(pending).length) {\n        this.queue.push({\n          pending: pending,\n          pendingCount: Object.keys(pending).length,\n          loaded: {},\n          errors: [],\n          callback: callback\n        });\n      }\n      return {\n        toLoad: Object.keys(toLoad),\n        pending: Object.keys(pending),\n        toLoadLanguages: Object.keys(toLoadLanguages),\n        toLoadNamespaces: Object.keys(toLoadNamespaces)\n      };\n    }\n  }, {\n    key: \"loaded\",\n    value: function loaded(name, err, data) {\n      var s = name.split('|');\n      var lng = s[0];\n      var ns = s[1];\n      if (err) this.emit('failedLoading', lng, ns, err);\n      if (data) {\n        this.store.addResourceBundle(lng, ns, data);\n      }\n      this.state[name] = err ? -1 : 2;\n      var loaded = {};\n      this.queue.forEach(function (q) {\n        pushPath(q.loaded, [lng], ns);\n        removePending(q, name);\n        if (err) q.errors.push(err);\n        if (q.pendingCount === 0 && !q.done) {\n          Object.keys(q.loaded).forEach(function (l) {\n            if (!loaded[l]) loaded[l] = {};\n            var loadedKeys = q.loaded[l];\n            if (loadedKeys.length) {\n              loadedKeys.forEach(function (n) {\n                if (loaded[l][n] === undefined) loaded[l][n] = true;\n              });\n            }\n          });\n          q.done = true;\n          if (q.errors.length) {\n            q.callback(q.errors);\n          } else {\n            q.callback();\n          }\n        }\n      });\n      this.emit('loaded', loaded);\n      this.queue = this.queue.filter(function (q) {\n        return !q.done;\n      });\n    }\n  }, {\n    key: \"read\",\n    value: function read(lng, ns, fcName) {\n      var _this3 = this;\n      var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n      var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n      var callback = arguments.length > 5 ? arguments[5] : undefined;\n      if (!lng.length) return callback(null, {});\n      if (this.readingCalls >= this.maxParallelReads) {\n        this.waitingReads.push({\n          lng: lng,\n          ns: ns,\n          fcName: fcName,\n          tried: tried,\n          wait: wait,\n          callback: callback\n        });\n        return;\n      }\n      this.readingCalls++;\n      var resolver = function resolver(err, data) {\n        _this3.readingCalls--;\n        if (_this3.waitingReads.length > 0) {\n          var next = _this3.waitingReads.shift();\n          _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n        }\n        if (err && data && tried < _this3.maxRetries) {\n          setTimeout(function () {\n            _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n          }, wait);\n          return;\n        }\n        callback(err, data);\n      };\n      var fc = this.backend[fcName].bind(this.backend);\n      if (fc.length === 2) {\n        try {\n          var r = fc(lng, ns);\n          if (r && typeof r.then === 'function') {\n            r.then(function (data) {\n              return resolver(null, data);\n            })[\"catch\"](resolver);\n          } else {\n            resolver(null, r);\n          }\n        } catch (err) {\n          resolver(err);\n        }\n        return;\n      }\n      return fc(lng, ns, resolver);\n    }\n  }, {\n    key: \"prepareLoading\",\n    value: function prepareLoading(languages, namespaces) {\n      var _this4 = this;\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var callback = arguments.length > 3 ? arguments[3] : undefined;\n      if (!this.backend) {\n        this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n        return callback && callback();\n      }\n      if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n      if (typeof namespaces === 'string') namespaces = [namespaces];\n      var toLoad = this.queueLoad(languages, namespaces, options, callback);\n      if (!toLoad.toLoad.length) {\n        if (!toLoad.pending.length) callback();\n        return null;\n      }\n      toLoad.toLoad.forEach(function (name) {\n        _this4.loadOne(name);\n      });\n    }\n  }, {\n    key: \"load\",\n    value: function load(languages, namespaces, callback) {\n      this.prepareLoading(languages, namespaces, {}, callback);\n    }\n  }, {\n    key: \"reload\",\n    value: function reload(languages, namespaces, callback) {\n      this.prepareLoading(languages, namespaces, {\n        reload: true\n      }, callback);\n    }\n  }, {\n    key: \"loadOne\",\n    value: function loadOne(name) {\n      var _this5 = this;\n      var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n      var s = name.split('|');\n      var lng = s[0];\n      var ns = s[1];\n      this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n        if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n        if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n        _this5.loaded(name, err, data);\n      });\n    }\n  }, {\n    key: \"saveMissing\",\n    value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n      var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n      var clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : function () {};\n      if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n        this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n        return;\n      }\n      if (key === undefined || key === null || key === '') return;\n      if (this.backend && this.backend.create) {\n        var opts = _objectSpread$1(_objectSpread$1({}, options), {}, {\n          isUpdate: isUpdate\n        });\n        var fc = this.backend.create.bind(this.backend);\n        if (fc.length < 6) {\n          try {\n            var r;\n            if (fc.length === 5) {\n              r = fc(languages, namespace, key, fallbackValue, opts);\n            } else {\n              r = fc(languages, namespace, key, fallbackValue);\n            }\n            if (r && typeof r.then === 'function') {\n              r.then(function (data) {\n                return clb(null, data);\n              })[\"catch\"](clb);\n            } else {\n              clb(null, r);\n            }\n          } catch (err) {\n            clb(err);\n          }\n        } else {\n          fc(languages, namespace, key, fallbackValue, clb, opts);\n        }\n      }\n      if (!languages || !languages[0]) return;\n      this.store.addResource(languages[0], namespace, key, fallbackValue);\n    }\n  }]);\n  return Connector;\n}(EventEmitter);\n\nfunction get() {\n  return {\n    debug: false,\n    initImmediate: true,\n    ns: ['translation'],\n    defaultNS: ['translation'],\n    fallbackLng: ['dev'],\n    fallbackNS: false,\n    supportedLngs: false,\n    nonExplicitSupportedLngs: false,\n    load: 'all',\n    preload: false,\n    simplifyPluralSuffix: true,\n    keySeparator: '.',\n    nsSeparator: ':',\n    pluralSeparator: '_',\n    contextSeparator: '_',\n    partialBundledLanguages: false,\n    saveMissing: false,\n    updateMissing: false,\n    saveMissingTo: 'fallback',\n    saveMissingPlurals: true,\n    missingKeyHandler: false,\n    missingInterpolationHandler: false,\n    postProcess: false,\n    postProcessPassResolved: false,\n    returnNull: true,\n    returnEmptyString: true,\n    returnObjects: false,\n    joinArrays: false,\n    returnedObjectHandler: false,\n    parseMissingKeyHandler: false,\n    appendNamespaceToMissingKey: false,\n    appendNamespaceToCIMode: false,\n    overloadTranslationOptionHandler: function handle(args) {\n      var ret = {};\n      if (_typeof(args[1]) === 'object') ret = args[1];\n      if (typeof args[1] === 'string') ret.defaultValue = args[1];\n      if (typeof args[2] === 'string') ret.tDescription = args[2];\n      if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n        var options = args[3] || args[2];\n        Object.keys(options).forEach(function (key) {\n          ret[key] = options[key];\n        });\n      }\n      return ret;\n    },\n    interpolation: {\n      escapeValue: true,\n      format: function format(value, _format, lng, options) {\n        return value;\n      },\n      prefix: '{{',\n      suffix: '}}',\n      formatSeparator: ',',\n      unescapePrefix: '-',\n      nestingPrefix: '$t(',\n      nestingSuffix: ')',\n      nestingOptionsSeparator: ',',\n      maxReplaces: 1000,\n      skipOnVariables: true\n    }\n  };\n}\nfunction transformOptions(options) {\n  if (typeof options.ns === 'string') options.ns = [options.ns];\n  if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n  if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n  if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n    options.supportedLngs = options.supportedLngs.concat(['cimode']);\n  }\n  return options;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n  var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n  mems.forEach(function (mem) {\n    if (typeof inst[mem] === 'function') {\n      inst[mem] = inst[mem].bind(inst);\n    }\n  });\n}\nvar I18n = function (_EventEmitter) {\n  _inherits(I18n, _EventEmitter);\n  var _super = _createSuper(I18n);\n  function I18n() {\n    var _this;\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var callback = arguments.length > 1 ? arguments[1] : undefined;\n    _classCallCheck(this, I18n);\n    _this = _super.call(this);\n    if (isIE10) {\n      EventEmitter.call(_assertThisInitialized(_this));\n    }\n    _this.options = transformOptions(options);\n    _this.services = {};\n    _this.logger = baseLogger;\n    _this.modules = {\n      external: []\n    };\n    bindMemberFunctions(_assertThisInitialized(_this));\n    if (callback && !_this.isInitialized && !options.isClone) {\n      if (!_this.options.initImmediate) {\n        _this.init(options, callback);\n        return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n      }\n      setTimeout(function () {\n        _this.init(options, callback);\n      }, 0);\n    }\n    return _this;\n  }\n  _createClass(I18n, [{\n    key: \"init\",\n    value: function init() {\n      var _this2 = this;\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var callback = arguments.length > 1 ? arguments[1] : undefined;\n      if (typeof options === 'function') {\n        callback = options;\n        options = {};\n      }\n      if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n        if (typeof options.ns === 'string') {\n          options.defaultNS = options.ns;\n        } else if (options.ns.indexOf('translation') < 0) {\n          options.defaultNS = options.ns[0];\n        }\n      }\n      var defOpts = get();\n      this.options = _objectSpread(_objectSpread(_objectSpread({}, defOpts), this.options), transformOptions(options));\n      if (this.options.compatibilityAPI !== 'v1') {\n        this.options.interpolation = _objectSpread(_objectSpread({}, defOpts.interpolation), this.options.interpolation);\n      }\n      if (options.keySeparator !== undefined) {\n        this.options.userDefinedKeySeparator = options.keySeparator;\n      }\n      if (options.nsSeparator !== undefined) {\n        this.options.userDefinedNsSeparator = options.nsSeparator;\n      }\n      function createClassOnDemand(ClassOrObject) {\n        if (!ClassOrObject) return null;\n        if (typeof ClassOrObject === 'function') return new ClassOrObject();\n        return ClassOrObject;\n      }\n      if (!this.options.isClone) {\n        if (this.modules.logger) {\n          baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n        } else {\n          baseLogger.init(null, this.options);\n        }\n        var formatter;\n        if (this.modules.formatter) {\n          formatter = this.modules.formatter;\n        } else if (typeof Intl !== 'undefined') {\n          formatter = Formatter;\n        }\n        var lu = new LanguageUtil(this.options);\n        this.store = new ResourceStore(this.options.resources, this.options);\n        var s = this.services;\n        s.logger = baseLogger;\n        s.resourceStore = this.store;\n        s.languageUtils = lu;\n        s.pluralResolver = new PluralResolver(lu, {\n          prepend: this.options.pluralSeparator,\n          compatibilityJSON: this.options.compatibilityJSON,\n          simplifyPluralSuffix: this.options.simplifyPluralSuffix\n        });\n        if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n          s.formatter = createClassOnDemand(formatter);\n          s.formatter.init(s, this.options);\n          this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n        }\n        s.interpolator = new Interpolator(this.options);\n        s.utils = {\n          hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n        };\n        s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n        s.backendConnector.on('*', function (event) {\n          for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n            args[_key - 1] = arguments[_key];\n          }\n          _this2.emit.apply(_this2, [event].concat(args));\n        });\n        if (this.modules.languageDetector) {\n          s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n          if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n        }\n        if (this.modules.i18nFormat) {\n          s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n          if (s.i18nFormat.init) s.i18nFormat.init(this);\n        }\n        this.translator = new Translator(this.services, this.options);\n        this.translator.on('*', function (event) {\n          for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n            args[_key2 - 1] = arguments[_key2];\n          }\n          _this2.emit.apply(_this2, [event].concat(args));\n        });\n        this.modules.external.forEach(function (m) {\n          if (m.init) m.init(_this2);\n        });\n      }\n      this.format = this.options.interpolation.format;\n      if (!callback) callback = noop;\n      if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n        var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n        if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n      }\n      if (!this.services.languageDetector && !this.options.lng) {\n        this.logger.warn('init: no languageDetector is used and no lng is defined');\n      }\n      var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n      storeApi.forEach(function (fcName) {\n        _this2[fcName] = function () {\n          var _this2$store;\n          return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n        };\n      });\n      var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n      storeApiChained.forEach(function (fcName) {\n        _this2[fcName] = function () {\n          var _this2$store2;\n          (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n          return _this2;\n        };\n      });\n      var deferred = defer();\n      var load = function load() {\n        var finish = function finish(err, t) {\n          if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n          _this2.isInitialized = true;\n          if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n          _this2.emit('initialized', _this2.options);\n          deferred.resolve(t);\n          callback(err, t);\n        };\n        if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n        _this2.changeLanguage(_this2.options.lng, finish);\n      };\n      if (this.options.resources || !this.options.initImmediate) {\n        load();\n      } else {\n        setTimeout(load, 0);\n      }\n      return deferred;\n    }\n  }, {\n    key: \"loadResources\",\n    value: function loadResources(language) {\n      var _this3 = this;\n      var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n      var usedCallback = callback;\n      var usedLng = typeof language === 'string' ? language : this.language;\n      if (typeof language === 'function') usedCallback = language;\n      if (!this.options.resources || this.options.partialBundledLanguages) {\n        if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n        var toLoad = [];\n        var append = function append(lng) {\n          if (!lng) return;\n          var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n          lngs.forEach(function (l) {\n            if (toLoad.indexOf(l) < 0) toLoad.push(l);\n          });\n        };\n        if (!usedLng) {\n          var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n          fallbacks.forEach(function (l) {\n            return append(l);\n          });\n        } else {\n          append(usedLng);\n        }\n        if (this.options.preload) {\n          this.options.preload.forEach(function (l) {\n            return append(l);\n          });\n        }\n        this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n          if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n          usedCallback(e);\n        });\n      } else {\n        usedCallback(null);\n      }\n    }\n  }, {\n    key: \"reloadResources\",\n    value: function reloadResources(lngs, ns, callback) {\n      var deferred = defer();\n      if (!lngs) lngs = this.languages;\n      if (!ns) ns = this.options.ns;\n      if (!callback) callback = noop;\n      this.services.backendConnector.reload(lngs, ns, function (err) {\n        deferred.resolve();\n        callback(err);\n      });\n      return deferred;\n    }\n  }, {\n    key: \"use\",\n    value: function use(module) {\n      if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n      if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n      if (module.type === 'backend') {\n        this.modules.backend = module;\n      }\n      if (module.type === 'logger' || module.log && module.warn && module.error) {\n        this.modules.logger = module;\n      }\n      if (module.type === 'languageDetector') {\n        this.modules.languageDetector = module;\n      }\n      if (module.type === 'i18nFormat') {\n        this.modules.i18nFormat = module;\n      }\n      if (module.type === 'postProcessor') {\n        postProcessor.addPostProcessor(module);\n      }\n      if (module.type === 'formatter') {\n        this.modules.formatter = module;\n      }\n      if (module.type === '3rdParty') {\n        this.modules.external.push(module);\n      }\n      return this;\n    }\n  }, {\n    key: \"setResolvedLanguage\",\n    value: function setResolvedLanguage(l) {\n      if (!l || !this.languages) return;\n      if (['cimode', 'dev'].indexOf(l) > -1) return;\n      for (var li = 0; li < this.languages.length; li++) {\n        var lngInLngs = this.languages[li];\n        if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n        if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n          this.resolvedLanguage = lngInLngs;\n          break;\n        }\n      }\n    }\n  }, {\n    key: \"changeLanguage\",\n    value: function changeLanguage(lng, callback) {\n      var _this4 = this;\n      this.isLanguageChangingTo = lng;\n      var deferred = defer();\n      this.emit('languageChanging', lng);\n      var setLngProps = function setLngProps(l) {\n        _this4.language = l;\n        _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n        _this4.resolvedLanguage = undefined;\n        _this4.setResolvedLanguage(l);\n      };\n      var done = function done(err, l) {\n        if (l) {\n          setLngProps(l);\n          _this4.translator.changeLanguage(l);\n          _this4.isLanguageChangingTo = undefined;\n          _this4.emit('languageChanged', l);\n          _this4.logger.log('languageChanged', l);\n        } else {\n          _this4.isLanguageChangingTo = undefined;\n        }\n        deferred.resolve(function () {\n          return _this4.t.apply(_this4, arguments);\n        });\n        if (callback) callback(err, function () {\n          return _this4.t.apply(_this4, arguments);\n        });\n      };\n      var setLng = function setLng(lngs) {\n        if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n        var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n        if (l) {\n          if (!_this4.language) {\n            setLngProps(l);\n          }\n          if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n          if (_this4.services.languageDetector && _this4.services.languageDetector.cacheUserLanguage) _this4.services.languageDetector.cacheUserLanguage(l);\n        }\n        _this4.loadResources(l, function (err) {\n          done(err, l);\n        });\n      };\n      if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n        setLng(this.services.languageDetector.detect());\n      } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n        if (this.services.languageDetector.detect.length === 0) {\n          this.services.languageDetector.detect().then(setLng);\n        } else {\n          this.services.languageDetector.detect(setLng);\n        }\n      } else {\n        setLng(lng);\n      }\n      return deferred;\n    }\n  }, {\n    key: \"getFixedT\",\n    value: function getFixedT(lng, ns, keyPrefix) {\n      var _this5 = this;\n      var fixedT = function fixedT(key, opts) {\n        var options;\n        if (_typeof(opts) !== 'object') {\n          for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n            rest[_key3 - 2] = arguments[_key3];\n          }\n          options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n        } else {\n          options = _objectSpread({}, opts);\n        }\n        options.lng = options.lng || fixedT.lng;\n        options.lngs = options.lngs || fixedT.lngs;\n        options.ns = options.ns || fixedT.ns;\n        options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n        var keySeparator = _this5.options.keySeparator || '.';\n        var resultKey;\n        if (options.keyPrefix && Array.isArray(key)) {\n          resultKey = key.map(function (k) {\n            return \"\".concat(options.keyPrefix).concat(keySeparator).concat(k);\n          });\n        } else {\n          resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n        }\n        return _this5.t(resultKey, options);\n      };\n      if (typeof lng === 'string') {\n        fixedT.lng = lng;\n      } else {\n        fixedT.lngs = lng;\n      }\n      fixedT.ns = ns;\n      fixedT.keyPrefix = keyPrefix;\n      return fixedT;\n    }\n  }, {\n    key: \"t\",\n    value: function t() {\n      var _this$translator;\n      return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n    }\n  }, {\n    key: \"exists\",\n    value: function exists() {\n      var _this$translator2;\n      return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n    }\n  }, {\n    key: \"setDefaultNamespace\",\n    value: function setDefaultNamespace(ns) {\n      this.options.defaultNS = ns;\n    }\n  }, {\n    key: \"hasLoadedNamespace\",\n    value: function hasLoadedNamespace(ns) {\n      var _this6 = this;\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      if (!this.isInitialized) {\n        this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n        return false;\n      }\n      if (!this.languages || !this.languages.length) {\n        this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n        return false;\n      }\n      var lng = options.lng || this.resolvedLanguage || this.languages[0];\n      var fallbackLng = this.options ? this.options.fallbackLng : false;\n      var lastLng = this.languages[this.languages.length - 1];\n      if (lng.toLowerCase() === 'cimode') return true;\n      var loadNotPending = function loadNotPending(l, n) {\n        var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n        return loadState === -1 || loadState === 2;\n      };\n      if (options.precheck) {\n        var preResult = options.precheck(this, loadNotPending);\n        if (preResult !== undefined) return preResult;\n      }\n      if (this.hasResourceBundle(lng, ns)) return true;\n      if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n      if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n      return false;\n    }\n  }, {\n    key: \"loadNamespaces\",\n    value: function loadNamespaces(ns, callback) {\n      var _this7 = this;\n      var deferred = defer();\n      if (!this.options.ns) {\n        if (callback) callback();\n        return Promise.resolve();\n      }\n      if (typeof ns === 'string') ns = [ns];\n      ns.forEach(function (n) {\n        if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n      });\n      this.loadResources(function (err) {\n        deferred.resolve();\n        if (callback) callback(err);\n      });\n      return deferred;\n    }\n  }, {\n    key: \"loadLanguages\",\n    value: function loadLanguages(lngs, callback) {\n      var deferred = defer();\n      if (typeof lngs === 'string') lngs = [lngs];\n      var preloaded = this.options.preload || [];\n      var newLngs = lngs.filter(function (lng) {\n        return preloaded.indexOf(lng) < 0;\n      });\n      if (!newLngs.length) {\n        if (callback) callback();\n        return Promise.resolve();\n      }\n      this.options.preload = preloaded.concat(newLngs);\n      this.loadResources(function (err) {\n        deferred.resolve();\n        if (callback) callback(err);\n      });\n      return deferred;\n    }\n  }, {\n    key: \"dir\",\n    value: function dir(lng) {\n      if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n      if (!lng) return 'rtl';\n      var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n      var languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n      return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n    }\n  }, {\n    key: \"cloneInstance\",\n    value: function cloneInstance() {\n      var _this8 = this;\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n      var mergedOptions = _objectSpread(_objectSpread(_objectSpread({}, this.options), options), {\n        isClone: true\n      });\n      var clone = new I18n(mergedOptions);\n      if (options.debug !== undefined || options.prefix !== undefined) {\n        clone.logger = clone.logger.clone(options);\n      }\n      var membersToCopy = ['store', 'services', 'language'];\n      membersToCopy.forEach(function (m) {\n        clone[m] = _this8[m];\n      });\n      clone.services = _objectSpread({}, this.services);\n      clone.services.utils = {\n        hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n      };\n      clone.translator = new Translator(clone.services, clone.options);\n      clone.translator.on('*', function (event) {\n        for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n          args[_key4 - 1] = arguments[_key4];\n        }\n        clone.emit.apply(clone, [event].concat(args));\n      });\n      clone.init(mergedOptions, callback);\n      clone.translator.options = clone.options;\n      clone.translator.backendConnector.services.utils = {\n        hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n      };\n      return clone;\n    }\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      return {\n        options: this.options,\n        store: this.store,\n        language: this.language,\n        languages: this.languages,\n        resolvedLanguage: this.resolvedLanguage\n      };\n    }\n  }]);\n  return I18n;\n}(EventEmitter);\n_defineProperty(I18n, \"createInstance\", function () {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var callback = arguments.length > 1 ? arguments[1] : undefined;\n  return new I18n(options, callback);\n});\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar dir = instance.dir;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","export default function _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n  return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","export default function _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + {\"9\":\"8f2ac35a7b6f182362e6\",\"2750\":\"e9fc40ca178e321fcacc\",\"3166\":\"0fb25009bd4a0ccf2dd3\",\"3248\":\"f57ec685fd2bff769fde\",\"3581\":\"9f55f18cf65495324bad\",\"3957\":\"ed1f62a6fe835e0052cd\",\"4183\":\"dd25fec6270c10dd4d38\",\"4238\":\"8e7802627d2d005e0f8c\",\"7503\":\"1de040a9d9cb6b59069f\",\"8699\":\"fbd25c2b444e9b97574a\",\"9537\":\"1276a8189bfc53c06a60\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t3712: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkconfiguracao\"] = self[\"webpackChunkconfiguracao\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\n__webpack_require__(8595);\n__webpack_require__(1678);\nvar __webpack_exports__ = __webpack_require__(6912);\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","MEDIA_PREFERS_REDUCED_MOTION","STATES","CREATED","MOUNTED","IDLE","MOVING","SCROLLING","DRAGGING","DESTROYED","empty","array","slice","arrayLike","start","end","Array","prototype","call","apply","func","bind","concat","arguments","nextTick","setTimeout","noop","raf","requestAnimationFrame","typeOf","type","subject","isObject","isNull","isArray","isFunction","isString","isUndefined","isHTMLElement","ownerDocument","defaultView","window","HTMLElement","e","toArray","value","forEach","values","iteratee","includes","indexOf","push","items","toggleClass","elm","classes","add","name","classList","addClass","split","append","parent","children","appendChild","before","nodes","ref","node","parentNode","insertBefore","matches","selector","children2","filter","child","firstElementChild","ownKeys","keys","forOwn","object","right","reverse","assign","source","merge","omit","removeAttribute","elms","attrs","attr","setAttribute","value2","String","create","tag","document","createElement","style","prop","getComputedStyle","display","display2","focus","preventScroll","getAttribute","hasClass","className","contains","rect","getBoundingClientRect","remove","removeChild","parseHtml","html","DOMParser","parseFromString","body","prevent","stopPropagation","preventDefault","stopImmediatePropagation","query","querySelector","queryAll","querySelectorAll","removeClass","timeOf","timeStamp","unit","PROJECT_CODE","DATA_ATTRIBUTE","assert","condition","message","Error","min","Math","max","floor","ceil","abs","approximatelyEqual","x","y","epsilon","between","number","exclusive","minimum","maximum","clamp","sign","format","string","replacements","replacement","replace","pad","ids","EventBinder","listeners","forEachEvent","targets","events","events2","eventNS","fragment","callback","options","event","namespace","isEventTarget","remover","removeEventListener","addEventListener","unbind","listener","dispatch","detail","CustomEvent","bubbles","createEvent","initCustomEvent","dispatchEvent","destroy","data","EVENT_MOUNTED","EVENT_READY","EVENT_MOVE","EVENT_MOVED","EVENT_CLICK","EVENT_REFRESH","EVENT_UPDATED","EVENT_RESIZE","EVENT_RESIZED","EVENT_SCROLL","EVENT_SCROLLED","EVENT_DESTROY","EVENT_NAVIGATION_MOUNTED","EVENT_AUTOPLAY_PLAY","EVENT_AUTOPLAY_PAUSE","EVENT_LAZYLOAD_LOADED","EVENT_END_INDEX_CHANGED","EventInterface","Splide2","bus","createDocumentFragment","binder","on","join","off","emit","RequestInterval","interval","onInterval","onUpdate","limit","startTime","id","now","Date","rate","paused","count","update","pause","cancel","cancelAnimationFrame","resume","rewind","set","time","isPaused","ARROW","ARROW_LEFT","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","TTB","ORIENTATION_MAP","width","left","X","Y","ArrowLeft","ArrowRight","ROLE","TAB_INDEX","ARIA_PREFIX","ARIA_CONTROLS","ARIA_CURRENT","ARIA_SELECTED","ARIA_LABEL","ARIA_LABELLEDBY","ARIA_HIDDEN","ARIA_ORIENTATION","ARIA_ROLEDESCRIPTION","ARIA_LIVE","ARIA_BUSY","ARIA_ATOMIC","ALL_ATTRIBUTES","CLASS_PREFIX","STATUS_CLASS_PREFIX","CLASS_ROOT","CLASS_TRACK","CLASS_LIST","CLASS_SLIDE","CLASS_CLONE","CLASS_CONTAINER","CLASS_ARROWS","CLASS_ARROW","CLASS_ARROW_PREV","CLASS_ARROW_NEXT","CLASS_PAGINATION","CLASS_PAGINATION_PAGE","CLASS_PROGRESS_BAR","CLASS_PROGRESS","CLASS_TOGGLE","CLASS_SR","CLASS_INITIALIZED","CLASS_ACTIVE","CLASS_PREV","CLASS_NEXT","CLASS_VISIBLE","CLASS_LOADING","CLASS_FOCUS_IN","CLASS_OVERFLOW","STATUS_CLASSES","CLASSES","slide","clone","arrows","arrow","prev","next","pagination","page","spinner","POINTER_DOWN_EVENTS","POINTER_MOVE_EVENTS","POINTER_UP_EVENTS","SLIDE","LOOP","FADE","INTERVAL_DATA_ATTRIBUTE","SCROLL_LISTENER_OPTIONS","passive","capture","NORMALIZATION_MAP","Spacebar","Right","Left","Up","Down","normalizeKey","KEYBOARD_EVENT","SRC_DATA_ATTRIBUTE","SRCSET_DATA_ATTRIBUTE","IMAGE_SELECTOR","TRIGGER_KEYS","ComponentConstructors","freeze","__proto__","Media","Components2","state","breakpoints","reducedMotion","queries","completely","register","options2","queryList","matchMedia","destroyed","is","direction","merged","reduce","merged2","entry","mount","refresh","opts","base","notify","getPrototypeOf","setup","isMin","mediaQuery","sort","n","m","enable","Direction","resolve","axisOnly","index","match","offset","toLowerCase","charAt","toUpperCase","orient","Elements","track","list","isUsingKey","_EventInterface","root","i18n","elements","slides","rootClasses","trackClasses","prefix","role","find","bar","toggle","tagName","carousel","getClasses","label","labelledby","from","closest","nodeType","parentElement","drag","isNavigation","Slides","_EventInterface2","_Components2$Elements","Slides2","init","forEach$1","Slide2","slideIndex","Components","updateOnMove","slideFocus","styles","isClone","container","initNavigation","controls","splides","map","splide","getAt","slideX","onMove","curr","active","isActive","self","visible","trackRect","slideRect","isVisible","hidden","focusableNodes","activeElement","updateVisibility","cloneStatus","slideLabel","useContainer","isWithin","distance","diff","Slide$1","Slide1","get","excludeClones","matcher","getIn","Controller","toIndex","hasFocus","perPage","images","img","getLength","isEnough","Layout","vertical","rootRect","overflow","_EventInterface3","_Components2$Elements2","styleSlides","cssPadding","resize","force","height","newRect","cssHeight","gap","autoWidth","fixedWidth","cssSlideSize","fixedHeight","autoHeight","isOverflow","padding","heightRatio","listSize","slideSize","withoutGap","Slide","getGap","totalSize","sliderSize","parseFloat","getPadding","Clones","cloneCount","clones","remount","observe","computeCloneCount","isHead","cloneNode","cloneDeep","generate","clones2","fixedSize","Move","Transition","_EventInterface4","_Components2$Layout","_Components2$Directio","_Components2$Elements3","reposition","isBusy","Scroll","jump","translate","toPosition","position","preventLoop","destination","exceededMax","getEnd","shift","loop","backwards","excess","getLimit","size","getPosition","minDistance","Infinity","trimming","trimSpace","trim","move","dest","shifted","exceededLimit","exceededMin","endIndex","slideCount","perMove","_EventInterface5","_Components2$Slides","omitEnd","isLoop","isSlide","getNext","getAdjacent","getPrev","currIndex","prevIndex","onResized","computeDestIndex","snapPage","computeMovableDestIndex","toPage","setIndex","waitForTransition","go","control","allowSameIndex","_ref","indicator","parse","scroll","duration","snap","getIndex","toDest","Arrows","created","wrapperClasses","placeholder","wrapper","enabled","createArrow","prev2","arrowPath","nextIndex","prevLabel","last","nextLabel","first","disabled","Autoplay","hovered","focused","_EventInterface6","_Components2$Elements4","autoplay","stopped","play","resetProgress","stop","autoToggle","pauseOnHover","pauseOnFocus","Cover","cover","cover2","src","_EventInterface8","friction","onScrolled","noConstrain","clear","noDistance","onEnd","to","t","easingFunc","pow","Drag","basePosition","baseEvent","prevBaseEvent","isFree","dragging","clickPrevented","_EventInterface9","_Components2$Directio2","exceeded","disable","onPointerDown","isTouch","isTouchEvent","target2","noDrag","button","onPointerMove","onPointerUp","save","cancelable","diffCoord","expired","diffTime","hasExceeded","isSliderDirection","thresholds","dragMinThreshold","isObj","mouse","touch","shouldStart","velocity","computeVelocity","flickPower","flickMaxPages","computeDestination","rewindByDrag","onClick","orthogonal","coordOf","getBaseEvent","changedTouches","TouchEvent","isDragging","Keyboard","_EventInterface10","keyboard","onKeydown","_disabled","LazyLoad","_EventInterface11","isSequential","lazyLoad","entries","srcset","loadNext","check","preloadPages","load","onLoad","Pagination","paginationClasses","dir","getDirection","nextPage","item","paginationDirection","_button","select","li","class","text","pageX","paginationKeyboard","createPagination","Sync","isParent","sync","Wheel","lastTime","onWheel","deltaY","_min","wheelMinThreshold","sleep","wheelSleep","releaseWheel","shouldPrevent","wheel","Live","live","sr","textContent","DEFAULTS","speed","easing","rewindSpeed","Fade","done","endCallback","transition","getSpeed","useScroll","Splide","_Splide","this","states","_o","_E","defaults","JSON","Constructor","protoProps","_proto","Extensions","_this","_C","_T","Component","component","_this$event","g","newNotifySettings","typesNotify","notifySettings","wrapID","overlayID","opacity","borderRadius","rtl","timeout","messageMaxLength","backOverlay","backOverlayColor","plainText","showOnlyTheLastOne","clickToClose","ID","zindex","fontFamily","fontSize","cssAnimation","cssAnimationDuration","cssAnimationStyle","closeButton","useIcon","useFontAwesome","fontAwesomeIconStyle","fontAwesomeIconSize","success","background","textColor","childClassName","notiflixIconColor","fontAwesomeClassName","fontAwesomeIconColor","failure","warning","info","commonConsoleError","console","error","commonCheckHeadOrBody","element","commonExtendOptions","extended","deep","toString","obj","hasOwnProperty","notifyGetInternalCSSCodes","notifyCreateCounter","notifyCreate","notifyType","callbackOrOptions","Notiflix","Notify","newNotifySettingsBackup","newOptions","htmlPool","theType","toLocaleLowerCase","innerHTML","innerText","substring","ntflxNotifyWrap","getElementById","zIndex","top","bottom","margin","maxHeight","flexWrap","flexDirection","justifyContent","alignItems","pointerEvents","ntflxNotifyOverlay","animationDuration","ntflxNotify","color","closeButtonHTML","svgIcon","notifyWrap","firstChild","eachNotifyElement","timeoutHide","timeoutRemove","hideNotifyElementsAndOverlay","removeOverlay","childElementCount","clearTimeout","removeNotifyElmentsAndWrapper","clickToCloseTimeout","callbackTimeout","autoRemove","allNotifyElmNotTheLastOne","eachNotifyElmNotLastOne","userNotifyOptions","getInternalCSSCodes","styleElementId","internalCSS","head","commonSetInternalCSSCodes","userNotifyExtendOptions","factory","_typeof","o","Symbol","iterator","constructor","_classCallCheck","instance","TypeError","_toPropertyKey","arg","input","hint","prim","toPrimitive","undefined","res","_createClass","staticProps","_assertThisInitialized","ReferenceError","_setPrototypeOf","p","setPrototypeOf","_inherits","subClass","superClass","_possibleConstructorReturn","_getPrototypeOf","_defineProperty","_arrayLikeToArray","arr","len","arr2","ownKeys$6","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread$6","getOwnPropertyDescriptors","defineProperties","consoleLogger","log","args","output","warn","baseLogger","Logger","concreteLogger","logger","debug","bool","_len","_key","forward","_len2","_key2","_len3","_key3","_len4","_key4","lvl","debugOnly","moduleName","EventEmitter","observers","l","observer","defer","rej","promise","Promise","reject","makeString","getLastOfPath","path","Empty","cleanKey","canNotTraverseDeeper","stack","k","setPath","newValue","_getLastOfPath","getPath","_getLastOfPath3","deepExtend","overwrite","regexEscape","str","_entityMap","s","isIE10","navigator","userAgentData","userAgent","chars","deepFind","keySeparator","paths","current","j","mix","endsWith","joinedPath","ownKeys$5","_objectSpread$5","ResourceStore","_EventEmitter","Derived","hasNativeReflectConstruct","_super","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct$3","result","Super","NewTarget","ns","defaultNS","ignoreJSONStructure","splice","lng","silent","addNamespaces","resources","addResource","pack","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","v","postProcessor","processors","addPostProcessor","module","handle","translator","processor","process","ownKeys$4","_objectSpread$4","checkedLoadedFor","Translator","_isNativeReflectConstruct$2","services","a","copy","language","interpolation","resolved","nsSeparator","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","c","r","RegExp","matched","test","ki","looksLikeObjectPath","interpolator","nestingRegexp","parts","lastKey","_this2","overloadTranslationOptionHandler","returnDetails","_this$extractFromKey","extractFromKey","appendNamespaceToCIMode","usedKey","exactUsedKey","usedLng","usedNS","resUsedKey","resExactUsedKey","resType","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValue","isValidLookup","resForMissing","missingKeyNoValueFallbackToKey","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","send","specificDefaultValue","defaultForMissing","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","defaultVariables","skipInterpolation","nestBef","skipOnVariables","nb","interpolate","na","nest","context","reset","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","_this4","extracted","fallbackNS","needsZeroSuffixLookup","ordinal","shouldUseIntlApi","needsContextHandling","codes","utils","hasLoadedNamespace","code","possibleKey","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","pluralSeparator","contextKey","contextSeparator","pop","returnNull","returnEmptyString","resourceStore","option","capitalize","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","part","cleanCode","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","fc","sets","nr","_rulesPluralsTypes","Number","deprecatedJsonVersions","suffixesOrder","zero","one","two","few","many","other","PluralResolver","rules","compatibilityJSON","Intl","PluralRules","numbers","plurals","_unused","rule","getRule","resolvedOptions","pluralCategories","pluralCategory1","pluralCategory2","pluralCategory","prepend","getSuffixRetroCompatible","idx","noAbs","simplifyPluralSuffix","returnSuffix","ownKeys$3","_objectSpread$3","deepFindWithDefaults","defaultData","getPathWithDefaults","Interpolator","escapeValue","iOpts","escape","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","val","handleFormat","interpolationkey","f","missingInterpolationHandler","regex","safeValue","todo","exec","matchedVar","temp","lastIndex","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","doReduce","elem","ownKeys$2","_objectSpread$2","createCachedFormatter","fn","cache","stringify","formatter","Formatter","formats","opt","NumberFormat","currency","datetime","DateTimeFormat","relativetime","RelativeTimeFormat","range","ListFormat","_format","mem","_parseFormatStr","formatStr","formatName","formatOptions","optStr","_opt$split2","iter","minLen","isNaN","parseInt","parseFormatStr","formatted","valOptions","formatParams","locale","ownKeys$1","_objectSpread$1","Connector","_isNativeReflectConstruct$1","backend","store","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","queue","languages","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","loaded","errors","err","addResourceBundle","q","_getLastOfPath2","removePending","loadedKeys","fcName","tried","wait","resolver","read","then","queueLoad","loadOne","prepareLoading","_this5","fallbackValue","isUpdate","clb","initImmediate","preload","partialBundledLanguages","ret","tDescription","transformOptions","_objectSpread","I18n","_isNativeReflectConstruct","inst","modules","external","getOwnPropertyNames","isInitialized","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","_this2$store","_this2$store2","finish","initializedStoreOnce","changeLanguage","usedCallback","resolvedLanguage","setResolvedLanguage","lngInLngs","hasLanguageSomeTranslations","isLanguageChangingTo","setLngProps","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","async","detect","keyPrefix","fixedT","rest","resultKey","_this$translator","_this$translator2","exists","_this6","lastLng","loadNotPending","loadState","precheck","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","createInstance","reloadResources","use","getFixedT","setDefaultNamespace","loadNamespaces","loadLanguages","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","__webpack_modules__","O","chunkIds","priority","notFulfilled","fulfilled","every","getter","__esModule","d","mode","def","definition","chunkId","all","promises","u","miniCssF","globalThis","Function","url","script","needAttach","scripts","getElementsByTagName","charset","nc","onScriptComplete","onerror","onload","doneFns","toStringTag","scriptUrl","importScripts","location","currentScript","installedChunks","installedChunkData","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}