Merge branch 'idempotency-plug' into 'develop'
[akkoma] / priv / static / packs / core / modal.js.map
index ec28898cc08162e7413c3b8ce4042697bca06154..b9bfb47adbb124656949684c520fb18c1b2805e7 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///./node_modules/history/node_modules/warning/browser.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/mastodon/ready.js","webpack:///./node_modules/history/es/DOMUtils.js","webpack:///./node_modules/resolve-pathname/index.js","webpack:///./node_modules/value-equal/index.js","webpack:///./node_modules/history/es/LocationUtils.js","webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/stringz/dist/index.js","webpack:///./node_modules/history/es/createTransitionManager.js","webpack:///./node_modules/unicode-astral-regex/index.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/core/public.js","webpack:///./node_modules/history/es/createBrowserHistory.js","webpack:///./node_modules/rails-ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/history/es/PathUtils.js"],"names":["module","exports","ready","loaded","includes","document","readyState","addEventListener","__webpack_require__","r","__webpack_exports__","d","canUseDOM","removeEventListener","getConfirmation","supportsHistory","supportsPopStateOnHashChange","supportsGoWithoutReloadUsingHash","isExtraneousPopstateEvent","window","createElement","node","event","listener","attachEvent","detachEvent","message","callback","confirm","ua","navigator","userAgent","indexOf","history","undefined","state","isAbsolute","pathname","charAt","spliceOne","list","index","i","k","n","length","pop","resolvePathname","to","from","arguments","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","concat","hasTrailingSlash","last","up","part","unshift","result","join","substr","_typeof","Symbol","iterator","obj","constructor","prototype","valueEqual","a","b","Array","isArray","every","item","aType","aValue","valueOf","bValue","aKeys","Object","keys","bKeys","key","LocationUtils_createLocation","LocationUtils_locationsAreEqual","_extends","assign","target","source","hasOwnProperty","call","createLocation","path","currentLocation","location","parsePath","search","hash","decodeURI","e","URIError","locationsAreEqual","condition","format","c","f","error","Error","args","argIndex","replace","name","framesToPop","defineProperty","value","toArray","str","match","_unicodeAstralRegex2","default","substring","begin","len","strLength","parseInt","end","slice","limit","padString","padPosition","String","padRepeats","repeat","searchStr","pos","isNaN","strArr","searchArr","finded","searchIndex","_unicodeAstralRegex","require","__esModule","warning__WEBPACK_IMPORTED_MODULE_0__","warning__WEBPACK_IMPORTED_MODULE_0___default","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","warning","confirmTransitionTo","action","getUserConfirmation","appendListener","fn","isActive","apply","push","filter","notifyListeners","_len","_key","forEach","delegate","_ref","button","href","_ref2","contentEl","parentNode","querySelector","style","display","marginBottom","preventDefault","nodeName","open","invariant__WEBPACK_IMPORTED_MODULE_1__","invariant__WEBPACK_IMPORTED_MODULE_1___default","_LocationUtils__WEBPACK_IMPORTED_MODULE_2__","_PathUtils__WEBPACK_IMPORTED_MODULE_3__","_createTransitionManager__WEBPACK_IMPORTED_MODULE_4__","_DOMUtils__WEBPACK_IMPORTED_MODULE_5__","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","props","invariant","globalHistory","canUseHistory","needsHashChangeListener","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","stripTrailingSlash","addLeadingSlash","getDOMLocation","historyState","_window$location","hasBasename","stripBasename","createKey","Math","random","toString","transitionManager","setState","nextState","handlePopState","handlePop","handleHashChange","forceNextPop","ok","revertPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","initialLocation","createHref","createPath","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","this","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","cspNonce","meta","content","expando","m","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","element","getData","ref","setData","$","querySelectorAll","csrfParam","csrfToken","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","input","CustomEvent","fire","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","defaultPrevented","get","data","dispatchEvent","stopEverything","stopPropagation","stopImmediatePropagation","eventType","handler","AcceptHeaders","createXHR","prepareOptions","processResponse","*","text","html","xml","json","script","ajax","options","response","responseText","getResponseHeader","floor","status","success","statusText","complete","beforeSend","XMLHttpRequest","OPENED","send","url","type","toUpperCase","dataType","accept","done","crossDomain","withCredentials","onreadystatechange","DONE","parser","JSON","parse","setAttribute","head","appendChild","removeChild","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","serializeElement","additionalParam","inputs","elements","disabled","option","selected","checked","map","encodeURIComponent","formElements","form","el","allowAction","handleConfirm","answer","getAttribute","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","handleMethod","formContent","method","body","click","isRemote","handleRemote","enctype","FormData","append","formSubmitButtonClick","formNoValidate","handleMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","start","_rails_loaded","setTimeout","define","stripLeadingSlash","prefix","RegExp","test","hashIndex"],"mappings":"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","file":"core/modal.js","sourcesContent":["/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n        '`warning(condition, format, ...args)` requires a warning ' +\n        'message argument'\n      );\n    }\n\n    if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n      throw new Error(\n        'The warning format should be able to uniquely identify this ' +\n        'warning. Please, use a more descriptive format than: ' + format\n      );\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' +\n        format.replace(/%s/g, function() {\n          return args[argIndex++];\n        });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\n        // This error was thrown as a convenience so that you can use this stack\n        // to find the callsite that caused this warning to fire.\n        throw new Error(message);\n      } catch(x) {}\n    }\n  };\n}\n\nmodule.exports = warning;\n","export default function ready(loaded) {\n  if (['interactive', 'complete'].includes(document.readyState)) {\n    loaded();\n  } else {\n    document.addEventListener('DOMContentLoaded', loaded);\n  }\n}\n","export var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nexport var addEventListener = function addEventListener(node, event, listener) {\n  return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nexport var removeEventListener = function removeEventListener(node, event, listener) {\n  return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nexport var getConfirmation = function getConfirmation(message, callback) {\n  return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nexport var supportsHistory = function supportsHistory() {\n  var ua = window.navigator.userAgent;\n\n  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n  return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nexport var supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n  return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nexport var supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n  return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nexport var isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n  return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};","function isAbsolute(pathname) {\n  return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n  for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n    list[i] = list[k];\n  }\n\n  list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to) {\n  var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n  var toParts = to && to.split('/') || [];\n  var fromParts = from && from.split('/') || [];\n\n  var isToAbs = to && isAbsolute(to);\n  var isFromAbs = from && isAbsolute(from);\n  var mustEndAbs = isToAbs || isFromAbs;\n\n  if (to && isAbsolute(to)) {\n    // to is absolute\n    fromParts = toParts;\n  } else if (toParts.length) {\n    // to is relative, drop the filename\n    fromParts.pop();\n    fromParts = fromParts.concat(toParts);\n  }\n\n  if (!fromParts.length) return '/';\n\n  var hasTrailingSlash = void 0;\n  if (fromParts.length) {\n    var last = fromParts[fromParts.length - 1];\n    hasTrailingSlash = last === '.' || last === '..' || last === '';\n  } else {\n    hasTrailingSlash = false;\n  }\n\n  var up = 0;\n  for (var i = fromParts.length; i >= 0; i--) {\n    var part = fromParts[i];\n\n    if (part === '.') {\n      spliceOne(fromParts, i);\n    } else if (part === '..') {\n      spliceOne(fromParts, i);\n      up++;\n    } else if (up) {\n      spliceOne(fromParts, i);\n      up--;\n    }\n  }\n\n  if (!mustEndAbs) for (; up--; up) {\n    fromParts.unshift('..');\n  }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n  var result = fromParts.join('/');\n\n  if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n  return result;\n}\n\nexport default resolvePathname;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction valueEqual(a, b) {\n  if (a === b) return true;\n\n  if (a == null || b == null) return false;\n\n  if (Array.isArray(a)) {\n    return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n      return valueEqual(item, b[index]);\n    });\n  }\n\n  var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n  var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n  if (aType !== bType) return false;\n\n  if (aType === 'object') {\n    var aValue = a.valueOf();\n    var bValue = b.valueOf();\n\n    if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n    var aKeys = Object.keys(a);\n    var bKeys = Object.keys(b);\n\n    if (aKeys.length !== bKeys.length) return false;\n\n    return aKeys.every(function (key) {\n      return valueEqual(a[key], b[key]);\n    });\n  }\n\n  return false;\n}\n\nexport default valueEqual;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport { parsePath } from './PathUtils';\n\nexport var createLocation = function createLocation(path, state, key, currentLocation) {\n  var location = void 0;\n  if (typeof path === 'string') {\n    // Two-arg form: push(path, state)\n    location = parsePath(path);\n    location.state = state;\n  } else {\n    // One-arg form: push(location)\n    location = _extends({}, path);\n\n    if (location.pathname === undefined) location.pathname = '';\n\n    if (location.search) {\n      if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n    } else {\n      location.search = '';\n    }\n\n    if (location.hash) {\n      if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n    } else {\n      location.hash = '';\n    }\n\n    if (state !== undefined && location.state === undefined) location.state = state;\n  }\n\n  try {\n    location.pathname = decodeURI(location.pathname);\n  } catch (e) {\n    if (e instanceof URIError) {\n      throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n    } else {\n      throw e;\n    }\n  }\n\n  if (key) location.key = key;\n\n  if (currentLocation) {\n    // Resolve incomplete/relative pathname relative to current location.\n    if (!location.pathname) {\n      location.pathname = currentLocation.pathname;\n    } else if (location.pathname.charAt(0) !== '/') {\n      location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n    }\n  } else {\n    // When there is no prior location and pathname is empty, set it to /\n    if (!location.pathname) {\n      location.pathname = '/';\n    }\n  }\n\n  return location;\n};\n\nexport var locationsAreEqual = function locationsAreEqual(a, b) {\n  return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error(\n        'Minified exception occurred; use the non-minified dev environment ' +\n        'for the full error message and additional helpful warnings.'\n      );\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(\n        format.replace(/%s/g, function() { return args[argIndex++]; })\n      );\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n};\n\nmodule.exports = invariant;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.toArray = toArray;\nexports.length = length;\nexports.substring = substring;\nexports.substr = substr;\nexports.limit = limit;\nexports.indexOf = indexOf;\n\nvar _unicodeAstralRegex = require('unicode-astral-regex');\n\nvar _unicodeAstralRegex2 = _interopRequireDefault(_unicodeAstralRegex);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Converts a string to an array of string chars\n * @param {string} str The string to turn into array\n * @returns {string[]}\n */\nfunction toArray(str) {\n  if (typeof str !== 'string') {\n    throw new Error('A string is expected as input');\n  }\n  return str.match(_unicodeAstralRegex2.default) || [];\n}\n\n/**\n * Returns the length of a string\n *\n * @export\n * @param {string} str\n * @returns {number}\n */\nfunction length(str) {\n  // Check for input\n  if (typeof str !== 'string') {\n    throw new Error('Input must be a string');\n  }\n\n  var match = str.match(_unicodeAstralRegex2.default);\n  return match === null ? 0 : match.length;\n}\n\n/**\n * Returns a substring by providing start and end position\n *\n * @export\n * @param {string} str\n * @param {number} [begin=0] Starting position\n * @param {number} end End position\n * @returns {string}\n */\nfunction substring(str) {\n  var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var end = arguments[2];\n\n  // Check for input\n  if (typeof str !== 'string') {\n    throw new Error('Input must be a string');\n  }\n\n  // Even though negative numbers work here, theyre not in the spec\n  if (typeof begin !== 'number' || begin < 0) {\n    begin = 0;\n  }\n\n  if (typeof end === 'number' && end < 0) {\n    end = 0;\n  }\n\n  var match = str.match(_unicodeAstralRegex2.default);\n  if (!match) return '';\n\n  return match.slice(begin, end).join('');\n}\n\n/**\n * Returns a substring by providing start position and length\n *\n * @export\n * @param {string} str\n * @param {number} [begin=0] Starting position\n * @param {number} len Desired length\n * @returns {string}\n */\nfunction substr(str) {\n  var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var len = arguments[2];\n\n  // Check for input\n  if (typeof str !== 'string') {\n    throw new Error('Input must be a string');\n  }\n\n  var strLength = length(str);\n\n  // Fix type\n  if (typeof begin !== 'number') {\n    begin = parseInt(begin, 10);\n  }\n\n  // Return zero-length string if got oversize number.\n  if (begin >= strLength) {\n    return '';\n  }\n\n  // Calculating postive version of negative value.\n  if (begin < 0) {\n    begin += strLength;\n  }\n\n  var end = void 0;\n\n  if (typeof len === 'undefined') {\n    end = strLength;\n  } else {\n    // Fix type\n    if (typeof len !== 'number') {\n      len = parseInt(len, 10);\n    }\n\n    end = len >= 0 ? len + begin : begin;\n  }\n\n  var match = str.match(_unicodeAstralRegex2.default);\n  if (!match) return '';\n\n  return match.slice(begin, end).join('');\n}\n\n/**\n * Enforces a string to be a certain length by\n * adding or removing characters\n *\n * @export\n * @param {string} str\n * @param {number} [limit=16] Limit\n * @param {string} [padString='#'] The Pad String\n * @param {string} [padPosition='right'] The Pad Position\n * @returns {string}\n */\nfunction limit(str) {\n  var limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 16;\n  var padString = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '#';\n  var padPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'right';\n\n  // Input should be a string, limit should be a number\n  if (typeof str !== 'string' || typeof limit !== 'number') {\n    throw new Error('Invalid arguments specified');\n  }\n\n  // Pad position should be either left or right\n  if (['left', 'right'].indexOf(padPosition) === -1) {\n    throw new Error('Pad position should be either left or right');\n  }\n\n  // Pad string can be anything, we convert it to string\n  if (typeof padString !== 'string') {\n    padString = String(padString);\n  }\n\n  // Calculate string length considering astral code points\n  var strLength = length(str);\n\n  if (strLength > limit) {\n    return substring(str, 0, limit);\n  } else if (strLength < limit) {\n    var padRepeats = padString.repeat(limit - strLength);\n    return padPosition === 'left' ? padRepeats + str : str + padRepeats;\n  }\n\n  return str;\n}\n\n/**\n * Returns the index of the first occurrence of a given string\n *\n * @export\n * @param {string} str\n * @param {string} [searchStr] the string to search\n * @param {number} [pos] starting position\n * @returns {number}\n */\nfunction indexOf(str, searchStr, pos) {\n  if (typeof str !== 'string') {\n    throw new Error('Input must be a string');\n  }\n\n  if (str === '') {\n    if (searchStr === '') {\n      return 0;\n    }\n    return -1;\n  }\n\n  // fix type\n  pos = parseInt(pos, 10);\n  pos = isNaN(pos) ? 0 : pos;\n  searchStr = String(searchStr);\n\n  var strArr = str.match(_unicodeAstralRegex2.default);\n  if (pos >= strArr.length) {\n    if (searchStr === '') {\n      return strArr.length;\n    }\n    return -1;\n  }\n  if (searchStr === '') {\n    return pos;\n  }\n\n  var searchArr = searchStr.match(_unicodeAstralRegex2.default);\n  var finded = false;\n  var index = void 0;\n  for (index = pos; index < strArr.length; index += 1) {\n    var searchIndex = 0;\n    while (searchIndex < searchArr.length && searchArr[searchIndex] === strArr[index + searchIndex]) {\n      searchIndex += 1;\n    }\n    if (searchIndex === searchArr.length && searchArr[searchIndex - 1] === strArr[index + searchIndex - 1]) {\n      finded = true;\n      break;\n    }\n  }\n  return finded ? index : -1;\n}","import warning from 'warning';\n\nvar createTransitionManager = function createTransitionManager() {\n  var prompt = null;\n\n  var setPrompt = function setPrompt(nextPrompt) {\n    warning(prompt == null, 'A history supports only one prompt at a time');\n\n    prompt = nextPrompt;\n\n    return function () {\n      if (prompt === nextPrompt) prompt = null;\n    };\n  };\n\n  var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n    // TODO: If another transition starts while we're still confirming\n    // the previous one, we may end up in a weird state. Figure out the\n    // best way to handle this.\n    if (prompt != null) {\n      var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n      if (typeof result === 'string') {\n        if (typeof getUserConfirmation === 'function') {\n          getUserConfirmation(result, callback);\n        } else {\n          warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n          callback(true);\n        }\n      } else {\n        // Return false from a transition hook to cancel the transition.\n        callback(result !== false);\n      }\n    } else {\n      callback(true);\n    }\n  };\n\n  var listeners = [];\n\n  var appendListener = function appendListener(fn) {\n    var isActive = true;\n\n    var listener = function listener() {\n      if (isActive) fn.apply(undefined, arguments);\n    };\n\n    listeners.push(listener);\n\n    return function () {\n      isActive = false;\n      listeners = listeners.filter(function (item) {\n        return item !== listener;\n      });\n    };\n  };\n\n  var notifyListeners = function notifyListeners() {\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    listeners.forEach(function (listener) {\n      return listener.apply(undefined, args);\n    });\n  };\n\n  return {\n    setPrompt: setPrompt,\n    confirmTransitionTo: confirmTransitionTo,\n    appendListener: appendListener,\n    notifyListeners: notifyListeners\n  };\n};\n\nexport default createTransitionManager;","// Borrowed from:\n// https://github.com/lodash/lodash/blob/master/lodash.js\n// https://github.com/mathiasbynens/regenerate\n// https://mathiasbynens.be/notes/javascript-unicode\nmodule.exports = /\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]?|[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?)*/g;\n","//  This file will be loaded on public pages, regardless of theme.\n\nimport createHistory from 'history/createBrowserHistory';\nimport ready from '../mastodon/ready';\n\nconst { delegate } = require('rails-ujs');\nconst { length } = require('stringz');\n\ndelegate(document, '.webapp-btn', 'click', ({ target, button }) => {\n  if (button !== 0) {\n    return true;\n  }\n  window.location.href = target.href;\n  return false;\n});\n\ndelegate(document, '.status__content__spoiler-link', 'click', ({ target }) => {\n  const contentEl = target.parentNode.parentNode.querySelector('.e-content');\n\n  if (contentEl.style.display === 'block') {\n    contentEl.style.display = 'none';\n    target.parentNode.style.marginBottom = 0;\n  } else {\n    contentEl.style.display = 'block';\n    target.parentNode.style.marginBottom = null;\n  }\n\n  return false;\n});\n\ndelegate(document, '.modal-button', 'click', e => {\n  e.preventDefault();\n\n  let href;\n\n  if (e.target.nodeName !== 'A') {\n    href = e.target.parentNode.href;\n  } else {\n    href = e.target.href;\n  }\n\n  window.open(href, 'mastodon-intent', 'width=445,height=600,resizable=no,menubar=no,status=no,scrollbars=yes');\n});\n","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport { createLocation } from './LocationUtils';\nimport { addLeadingSlash, stripTrailingSlash, hasBasename, stripBasename, createPath } from './PathUtils';\nimport createTransitionManager from './createTransitionManager';\nimport { canUseDOM, addEventListener, removeEventListener, getConfirmation, supportsHistory, supportsPopStateOnHashChange, isExtraneousPopstateEvent } from './DOMUtils';\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n  try {\n    return window.history.state || {};\n  } catch (e) {\n    // IE 11 sometimes throws when accessing window.history.state\n    // See https://github.com/ReactTraining/history/pull/289\n    return {};\n  }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  invariant(canUseDOM, 'Browser history needs a DOM');\n\n  var globalHistory = window.history;\n  var canUseHistory = supportsHistory();\n  var needsHashChangeListener = !supportsPopStateOnHashChange();\n\n  var _props$forceRefresh = props.forceRefresh,\n      forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n      _props$getUserConfirm = props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === undefined ? getConfirmation : _props$getUserConfirm,\n      _props$keyLength = props.keyLength,\n      keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n  var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n  var getDOMLocation = function getDOMLocation(historyState) {\n    var _ref = historyState || {},\n        key = _ref.key,\n        state = _ref.state;\n\n    var _window$location = window.location,\n        pathname = _window$location.pathname,\n        search = _window$location.search,\n        hash = _window$location.hash;\n\n\n    var path = pathname + search + hash;\n\n    warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n    if (basename) path = stripBasename(path, basename);\n\n    return createLocation(path, state, key);\n  };\n\n  var createKey = function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  };\n\n  var transitionManager = createTransitionManager();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var handlePopState = function handlePopState(event) {\n    // Ignore extraneous popstate events in WebKit.\n    if (isExtraneousPopstateEvent(event)) return;\n\n    handlePop(getDOMLocation(event.state));\n  };\n\n  var handleHashChange = function handleHashChange() {\n    handlePop(getDOMLocation(getHistoryState()));\n  };\n\n  var forceNextPop = false;\n\n  var handlePop = function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({ action: action, location: location });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  };\n\n  var revertPop = function revertPop(fromLocation) {\n    var toLocation = history.location;\n\n    // TODO: We could probably make this more reliable by\n    // keeping a list of keys we've seen in sessionStorage.\n    // Instead, we just default to 0 for keys we don't know.\n\n    var toIndex = allKeys.indexOf(toLocation.key);\n\n    if (toIndex === -1) toIndex = 0;\n\n    var fromIndex = allKeys.indexOf(fromLocation.key);\n\n    if (fromIndex === -1) fromIndex = 0;\n\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  };\n\n  var initialLocation = getDOMLocation(getHistoryState());\n  var allKeys = [initialLocation.key];\n\n  // Public interface\n\n  var createHref = function createHref(location) {\n    return basename + createPath(location);\n  };\n\n  var push = function push(path, state) {\n    warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'PUSH';\n    var location = createLocation(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n\n      if (canUseHistory) {\n        globalHistory.pushState({ key: key, state: state }, null, href);\n\n        if (forceRefresh) {\n          window.location.href = href;\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n          var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n          nextKeys.push(location.key);\n          allKeys = nextKeys;\n\n          setState({ action: action, location: location });\n        }\n      } else {\n        warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n        window.location.href = href;\n      }\n    });\n  };\n\n  var replace = function replace(path, state) {\n    warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = createLocation(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n\n      if (canUseHistory) {\n        globalHistory.replaceState({ key: key, state: state }, null, href);\n\n        if (forceRefresh) {\n          window.location.replace(href);\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n\n          if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n          setState({ action: action, location: location });\n        }\n      } else {\n        warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n        window.location.replace(href);\n      }\n    });\n  };\n\n  var go = function go(n) {\n    globalHistory.go(n);\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var listenerCount = 0;\n\n  var checkDOMListeners = function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1) {\n      addEventListener(window, PopStateEvent, handlePopState);\n\n      if (needsHashChangeListener) addEventListener(window, HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      removeEventListener(window, PopStateEvent, handlePopState);\n\n      if (needsHashChangeListener) removeEventListener(window, HashChangeEvent, handleHashChange);\n    }\n  };\n\n  var isBlocked = false;\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  };\n\n  var listen = function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  };\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexport default createBrowserHistory;","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/master/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n\n(function() {\n  var context = this;\n\n  (function() {\n    (function() {\n      this.Rails = {\n        linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n        buttonClickSelector: {\n          selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n          exclude: 'form button'\n        },\n        inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n        formSubmitSelector: 'form',\n        formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n        formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n        formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n        fileInputSelector: 'input[name][type=file]:not([disabled])',\n        linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n        buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n      };\n\n    }).call(this);\n  }).call(context);\n\n  var Rails = context.Rails;\n\n  (function() {\n    (function() {\n      var cspNonce;\n\n      cspNonce = Rails.cspNonce = function() {\n        var meta;\n        meta = document.querySelector('meta[name=csp-nonce]');\n        return meta && meta.content;\n      };\n\n    }).call(this);\n    (function() {\n      var expando, m;\n\n      m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n      Rails.matches = function(element, selector) {\n        if (selector.exclude != null) {\n          return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n        } else {\n          return m.call(element, selector);\n        }\n      };\n\n      expando = '_ujsData';\n\n      Rails.getData = function(element, key) {\n        var ref;\n        return (ref = element[expando]) != null ? ref[key] : void 0;\n      };\n\n      Rails.setData = function(element, key, value) {\n        if (element[expando] == null) {\n          element[expando] = {};\n        }\n        return element[expando][key] = value;\n      };\n\n      Rails.$ = function(selector) {\n        return Array.prototype.slice.call(document.querySelectorAll(selector));\n      };\n\n    }).call(this);\n    (function() {\n      var $, csrfParam, csrfToken;\n\n      $ = Rails.$;\n\n      csrfToken = Rails.csrfToken = function() {\n        var meta;\n        meta = document.querySelector('meta[name=csrf-token]');\n        return meta && meta.content;\n      };\n\n      csrfParam = Rails.csrfParam = function() {\n        var meta;\n        meta = document.querySelector('meta[name=csrf-param]');\n        return meta && meta.content;\n      };\n\n      Rails.CSRFProtection = function(xhr) {\n        var token;\n        token = csrfToken();\n        if (token != null) {\n          return xhr.setRequestHeader('X-CSRF-Token', token);\n        }\n      };\n\n      Rails.refreshCSRFTokens = function() {\n        var param, token;\n        token = csrfToken();\n        param = csrfParam();\n        if ((token != null) && (param != null)) {\n          return $('form input[name=\"' + param + '\"]').forEach(function(input) {\n            return input.value = token;\n          });\n        }\n      };\n\n    }).call(this);\n    (function() {\n      var CustomEvent, fire, matches, preventDefault;\n\n      matches = Rails.matches;\n\n      CustomEvent = window.CustomEvent;\n\n      if (typeof CustomEvent !== 'function') {\n        CustomEvent = function(event, params) {\n          var evt;\n          evt = document.createEvent('CustomEvent');\n          evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n          return evt;\n        };\n        CustomEvent.prototype = window.Event.prototype;\n        preventDefault = CustomEvent.prototype.preventDefault;\n        CustomEvent.prototype.preventDefault = function() {\n          var result;\n          result = preventDefault.call(this);\n          if (this.cancelable && !this.defaultPrevented) {\n            Object.defineProperty(this, 'defaultPrevented', {\n              get: function() {\n                return true;\n              }\n            });\n          }\n          return result;\n        };\n      }\n\n      fire = Rails.fire = function(obj, name, data) {\n        var event;\n        event = new CustomEvent(name, {\n          bubbles: true,\n          cancelable: true,\n          detail: data\n        });\n        obj.dispatchEvent(event);\n        return !event.defaultPrevented;\n      };\n\n      Rails.stopEverything = function(e) {\n        fire(e.target, 'ujs:everythingStopped');\n        e.preventDefault();\n        e.stopPropagation();\n        return e.stopImmediatePropagation();\n      };\n\n      Rails.delegate = function(element, selector, eventType, handler) {\n        return element.addEventListener(eventType, function(e) {\n          var target;\n          target = e.target;\n          while (!(!(target instanceof Element) || matches(target, selector))) {\n            target = target.parentNode;\n          }\n          if (target instanceof Element && handler.call(target, e) === false) {\n            e.preventDefault();\n            return e.stopPropagation();\n          }\n        });\n      };\n\n    }).call(this);\n    (function() {\n      var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n\n      cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n\n      AcceptHeaders = {\n        '*': '*/*',\n        text: 'text/plain',\n        html: 'text/html',\n        xml: 'application/xml, text/xml',\n        json: 'application/json, text/javascript',\n        script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n      };\n\n      Rails.ajax = function(options) {\n        var xhr;\n        options = prepareOptions(options);\n        xhr = createXHR(options, function() {\n          var ref, response;\n          response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n          if (Math.floor(xhr.status / 100) === 2) {\n            if (typeof options.success === \"function\") {\n              options.success(response, xhr.statusText, xhr);\n            }\n          } else {\n            if (typeof options.error === \"function\") {\n              options.error(response, xhr.statusText, xhr);\n            }\n          }\n          return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n        });\n        if ((options.beforeSend != null) && !options.beforeSend(xhr, options)) {\n          return false;\n        }\n        if (xhr.readyState === XMLHttpRequest.OPENED) {\n          return xhr.send(options.data);\n        }\n      };\n\n      prepareOptions = function(options) {\n        options.url = options.url || location.href;\n        options.type = options.type.toUpperCase();\n        if (options.type === 'GET' && options.data) {\n          if (options.url.indexOf('?') < 0) {\n            options.url += '?' + options.data;\n          } else {\n            options.url += '&' + options.data;\n          }\n        }\n        if (AcceptHeaders[options.dataType] == null) {\n          options.dataType = '*';\n        }\n        options.accept = AcceptHeaders[options.dataType];\n        if (options.dataType !== '*') {\n          options.accept += ', */*; q=0.01';\n        }\n        return options;\n      };\n\n      createXHR = function(options, done) {\n        var xhr;\n        xhr = new XMLHttpRequest();\n        xhr.open(options.type, options.url, true);\n        xhr.setRequestHeader('Accept', options.accept);\n        if (typeof options.data === 'string') {\n          xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n        }\n        if (!options.crossDomain) {\n          xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n        }\n        CSRFProtection(xhr);\n        xhr.withCredentials = !!options.withCredentials;\n        xhr.onreadystatechange = function() {\n          if (xhr.readyState === XMLHttpRequest.DONE) {\n            return done(xhr);\n          }\n        };\n        return xhr;\n      };\n\n      processResponse = function(response, type) {\n        var parser, script;\n        if (typeof response === 'string' && typeof type === 'string') {\n          if (type.match(/\\bjson\\b/)) {\n            try {\n              response = JSON.parse(response);\n            } catch (error) {}\n          } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n            script = document.createElement('script');\n            script.setAttribute('nonce', cspNonce());\n            script.text = response;\n            document.head.appendChild(script).parentNode.removeChild(script);\n          } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n            parser = new DOMParser();\n            type = type.replace(/;.+/, '');\n            try {\n              response = parser.parseFromString(response, type);\n            } catch (error) {}\n          }\n        }\n        return response;\n      };\n\n      Rails.href = function(element) {\n        return element.href;\n      };\n\n      Rails.isCrossDomain = function(url) {\n        var e, originAnchor, urlAnchor;\n        originAnchor = document.createElement('a');\n        originAnchor.href = location.href;\n        urlAnchor = document.createElement('a');\n        try {\n          urlAnchor.href = url;\n          return !(((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host) || (originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host));\n        } catch (error) {\n          e = error;\n          return true;\n        }\n      };\n\n    }).call(this);\n    (function() {\n      var matches, toArray;\n\n      matches = Rails.matches;\n\n      toArray = function(e) {\n        return Array.prototype.slice.call(e);\n      };\n\n      Rails.serializeElement = function(element, additionalParam) {\n        var inputs, params;\n        inputs = [element];\n        if (matches(element, 'form')) {\n          inputs = toArray(element.elements);\n        }\n        params = [];\n        inputs.forEach(function(input) {\n          if (!input.name || input.disabled) {\n            return;\n          }\n          if (matches(input, 'select')) {\n            return toArray(input.options).forEach(function(option) {\n              if (option.selected) {\n                return params.push({\n                  name: input.name,\n                  value: option.value\n                });\n              }\n            });\n          } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n            return params.push({\n              name: input.name,\n              value: input.value\n            });\n          }\n        });\n        if (additionalParam) {\n          params.push(additionalParam);\n        }\n        return params.map(function(param) {\n          if (param.name != null) {\n            return (encodeURIComponent(param.name)) + \"=\" + (encodeURIComponent(param.value));\n          } else {\n            return param;\n          }\n        }).join('&');\n      };\n\n      Rails.formElements = function(form, selector) {\n        if (matches(form, 'form')) {\n          return toArray(form.elements).filter(function(el) {\n            return matches(el, selector);\n          });\n        } else {\n          return toArray(form.querySelectorAll(selector));\n        }\n      };\n\n    }).call(this);\n    (function() {\n      var allowAction, fire, stopEverything;\n\n      fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n      Rails.handleConfirm = function(e) {\n        if (!allowAction(this)) {\n          return stopEverything(e);\n        }\n      };\n\n      allowAction = function(element) {\n        var answer, callback, message;\n        message = element.getAttribute('data-confirm');\n        if (!message) {\n          return true;\n        }\n        answer = false;\n        if (fire(element, 'confirm')) {\n          try {\n            answer = confirm(message);\n          } catch (error) {}\n          callback = fire(element, 'confirm:complete', [answer]);\n        }\n        return answer && callback;\n      };\n\n    }).call(this);\n    (function() {\n      var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, matches, setData, stopEverything;\n\n      matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n      Rails.handleDisabledElement = function(e) {\n        var element;\n        element = this;\n        if (element.disabled) {\n          return stopEverything(e);\n        }\n      };\n\n      Rails.enableElement = function(e) {\n        var element;\n        element = e instanceof Event ? e.target : e;\n        if (matches(element, Rails.linkDisableSelector)) {\n          return enableLinkElement(element);\n        } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n          return enableFormElement(element);\n        } else if (matches(element, Rails.formSubmitSelector)) {\n          return enableFormElements(element);\n        }\n      };\n\n      Rails.disableElement = function(e) {\n        var element;\n        element = e instanceof Event ? e.target : e;\n        if (matches(element, Rails.linkDisableSelector)) {\n          return disableLinkElement(element);\n        } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n          return disableFormElement(element);\n        } else if (matches(element, Rails.formSubmitSelector)) {\n          return disableFormElements(element);\n        }\n      };\n\n      disableLinkElement = function(element) {\n        var replacement;\n        replacement = element.getAttribute('data-disable-with');\n        if (replacement != null) {\n          setData(element, 'ujs:enable-with', element.innerHTML);\n          element.innerHTML = replacement;\n        }\n        element.addEventListener('click', stopEverything);\n        return setData(element, 'ujs:disabled', true);\n      };\n\n      enableLinkElement = function(element) {\n        var originalText;\n        originalText = getData(element, 'ujs:enable-with');\n        if (originalText != null) {\n          element.innerHTML = originalText;\n          setData(element, 'ujs:enable-with', null);\n        }\n        element.removeEventListener('click', stopEverything);\n        return setData(element, 'ujs:disabled', null);\n      };\n\n      disableFormElements = function(form) {\n        return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n      };\n\n      disableFormElement = function(element) {\n        var replacement;\n        replacement = element.getAttribute('data-disable-with');\n        if (replacement != null) {\n          if (matches(element, 'button')) {\n            setData(element, 'ujs:enable-with', element.innerHTML);\n            element.innerHTML = replacement;\n          } else {\n            setData(element, 'ujs:enable-with', element.value);\n            element.value = replacement;\n          }\n        }\n        element.disabled = true;\n        return setData(element, 'ujs:disabled', true);\n      };\n\n      enableFormElements = function(form) {\n        return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n      };\n\n      enableFormElement = function(element) {\n        var originalText;\n        originalText = getData(element, 'ujs:enable-with');\n        if (originalText != null) {\n          if (matches(element, 'button')) {\n            element.innerHTML = originalText;\n          } else {\n            element.value = originalText;\n          }\n          setData(element, 'ujs:enable-with', null);\n        }\n        element.disabled = false;\n        return setData(element, 'ujs:disabled', null);\n      };\n\n    }).call(this);\n    (function() {\n      var stopEverything;\n\n      stopEverything = Rails.stopEverything;\n\n      Rails.handleMethod = function(e) {\n        var csrfParam, csrfToken, form, formContent, href, link, method;\n        link = this;\n        method = link.getAttribute('data-method');\n        if (!method) {\n          return;\n        }\n        href = Rails.href(link);\n        csrfToken = Rails.csrfToken();\n        csrfParam = Rails.csrfParam();\n        form = document.createElement('form');\n        formContent = \"<input name='_method' value='\" + method + \"' type='hidden' />\";\n        if ((csrfParam != null) && (csrfToken != null) && !Rails.isCrossDomain(href)) {\n          formContent += \"<input name='\" + csrfParam + \"' value='\" + csrfToken + \"' type='hidden' />\";\n        }\n        formContent += '<input type=\"submit\" />';\n        form.method = 'post';\n        form.action = href;\n        form.target = link.target;\n        form.innerHTML = formContent;\n        form.style.display = 'none';\n        document.body.appendChild(form);\n        form.querySelector('[type=\"submit\"]').click();\n        return stopEverything(e);\n      };\n\n    }).call(this);\n    (function() {\n      var ajax, fire, getData, isCrossDomain, isRemote, matches, serializeElement, setData, stopEverything,\n        slice = [].slice;\n\n      matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n      isRemote = function(element) {\n        var value;\n        value = element.getAttribute('data-remote');\n        return (value != null) && value !== 'false';\n      };\n\n      Rails.handleRemote = function(e) {\n        var button, data, dataType, element, method, url, withCredentials;\n        element = this;\n        if (!isRemote(element)) {\n          return true;\n        }\n        if (!fire(element, 'ajax:before')) {\n          fire(element, 'ajax:stopped');\n          return false;\n        }\n        withCredentials = element.getAttribute('data-with-credentials');\n        dataType = element.getAttribute('data-type') || 'script';\n        if (matches(element, Rails.formSubmitSelector)) {\n          button = getData(element, 'ujs:submit-button');\n          method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n          url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n          if (method.toUpperCase() === 'GET') {\n            url = url.replace(/\\?.*$/, '');\n          }\n          if (element.enctype === 'multipart/form-data') {\n            data = new FormData(element);\n            if (button != null) {\n              data.append(button.name, button.value);\n            }\n          } else {\n            data = serializeElement(element, button);\n          }\n          setData(element, 'ujs:submit-button', null);\n          setData(element, 'ujs:submit-button-formmethod', null);\n          setData(element, 'ujs:submit-button-formaction', null);\n        } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n          method = element.getAttribute('data-method');\n          url = element.getAttribute('data-url');\n          data = serializeElement(element, element.getAttribute('data-params'));\n        } else {\n          method = element.getAttribute('data-method');\n          url = Rails.href(element);\n          data = element.getAttribute('data-params');\n        }\n        ajax({\n          type: method || 'GET',\n          url: url,\n          data: data,\n          dataType: dataType,\n          beforeSend: function(xhr, options) {\n            if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n              return fire(element, 'ajax:send', [xhr]);\n            } else {\n              fire(element, 'ajax:stopped');\n              return false;\n            }\n          },\n          success: function() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:success', args);\n          },\n          error: function() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:error', args);\n          },\n          complete: function() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:complete', args);\n          },\n          crossDomain: isCrossDomain(url),\n          withCredentials: (withCredentials != null) && withCredentials !== 'false'\n        });\n        return stopEverything(e);\n      };\n\n      Rails.formSubmitButtonClick = function(e) {\n        var button, form;\n        button = this;\n        form = button.form;\n        if (!form) {\n          return;\n        }\n        if (button.name) {\n          setData(form, 'ujs:submit-button', {\n            name: button.name,\n            value: button.value\n          });\n        }\n        setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n        setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n        return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n      };\n\n      Rails.handleMetaClick = function(e) {\n        var data, link, metaClick, method;\n        link = this;\n        method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n        data = link.getAttribute('data-params');\n        metaClick = e.metaKey || e.ctrlKey;\n        if (metaClick && method === 'GET' && !data) {\n          return e.stopImmediatePropagation();\n        }\n      };\n\n    }).call(this);\n    (function() {\n      var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMetaClick, handleMethod, handleRemote, refreshCSRFTokens;\n\n      fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMetaClick = Rails.handleMetaClick, handleMethod = Rails.handleMethod;\n\n      if ((typeof jQuery !== \"undefined\" && jQuery !== null) && (jQuery.ajax != null)) {\n        if (jQuery.rails) {\n          throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n        }\n        jQuery.rails = Rails;\n        jQuery.ajaxPrefilter(function(options, originalOptions, xhr) {\n          if (!options.crossDomain) {\n            return CSRFProtection(xhr);\n          }\n        });\n      }\n\n      Rails.start = function() {\n        if (window._rails_loaded) {\n          throw new Error('rails-ujs has already been loaded!');\n        }\n        window.addEventListener('pageshow', function() {\n          $(Rails.formEnableSelector).forEach(function(el) {\n            if (getData(el, 'ujs:disabled')) {\n              return enableElement(el);\n            }\n          });\n          return $(Rails.linkDisableSelector).forEach(function(el) {\n            if (getData(el, 'ujs:disabled')) {\n              return enableElement(el);\n            }\n          });\n        });\n        delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n        delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n        delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.linkClickSelector, 'click', handleMetaClick);\n        delegate(document, Rails.linkClickSelector, 'click', disableElement);\n        delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n        delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n        delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n        delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n        delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n        delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n        delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n        delegate(document, Rails.formSubmitSelector, 'submit', function(e) {\n          return setTimeout((function() {\n            return disableElement(e);\n          }), 13);\n        });\n        delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n        delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n        document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n        return window._rails_loaded = true;\n      };\n\n      if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n        Rails.start();\n      }\n\n    }).call(this);\n  }).call(this);\n\n  if (typeof module === \"object\" && module.exports) {\n    module.exports = Rails;\n  } else if (typeof define === \"function\" && define.amd) {\n    define(Rails);\n  }\n}).call(this);\n","export var addLeadingSlash = function addLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nexport var stripLeadingSlash = function stripLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nexport var hasBasename = function hasBasename(path, prefix) {\n  return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n};\n\nexport var stripBasename = function stripBasename(path, prefix) {\n  return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n};\n\nexport var stripTrailingSlash = function stripTrailingSlash(path) {\n  return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nexport var parsePath = function parsePath(path) {\n  var pathname = path || '/';\n  var search = '';\n  var hash = '';\n\n  var hashIndex = pathname.indexOf('#');\n  if (hashIndex !== -1) {\n    hash = pathname.substr(hashIndex);\n    pathname = pathname.substr(0, hashIndex);\n  }\n\n  var searchIndex = pathname.indexOf('?');\n  if (searchIndex !== -1) {\n    search = pathname.substr(searchIndex);\n    pathname = pathname.substr(0, searchIndex);\n  }\n\n  return {\n    pathname: pathname,\n    search: search === '?' ? '' : search,\n    hash: hash === '#' ? '' : hash\n  };\n};\n\nexport var createPath = function createPath(location) {\n  var pathname = location.pathname,\n      search = location.search,\n      hash = location.hash;\n\n\n  var path = pathname || '/';\n\n  if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n  if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n  return path;\n};"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///./node_modules/history/node_modules/warning/browser.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/mastodon/ready.js","webpack:///./node_modules/history/es/DOMUtils.js","webpack:///./node_modules/resolve-pathname/index.js","webpack:///./node_modules/value-equal/index.js","webpack:///./node_modules/history/es/LocationUtils.js","webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/stringz/dist/index.js","webpack:///./node_modules/history/es/createTransitionManager.js","webpack:///./node_modules/unicode-astral-regex/index.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/core/public.js","webpack:///./node_modules/history/es/createBrowserHistory.js","webpack:///./node_modules/rails-ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/history/es/PathUtils.js"],"names":["module","exports","ready","loaded","includes","document","readyState","addEventListener","__webpack_require__","r","__webpack_exports__","d","canUseDOM","removeEventListener","getConfirmation","supportsHistory","supportsPopStateOnHashChange","supportsGoWithoutReloadUsingHash","isExtraneousPopstateEvent","window","createElement","node","event","listener","attachEvent","detachEvent","message","callback","confirm","ua","navigator","userAgent","indexOf","history","undefined","state","isAbsolute","pathname","charAt","spliceOne","list","index","i","k","n","length","pop","resolve_pathname","to","from","arguments","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","concat","hasTrailingSlash","last","up","part","unshift","result","join","substr","_typeof","Symbol","iterator","obj","constructor","prototype","value_equal","valueEqual","a","b","Array","isArray","every","item","aType","aValue","valueOf","bValue","aKeys","Object","keys","bKeys","key","LocationUtils_createLocation","LocationUtils_locationsAreEqual","_extends","assign","target","source","hasOwnProperty","call","path","currentLocation","location","PathUtils","search","hash","decodeURI","e","URIError","condition","format","c","f","error","Error","args","argIndex","replace","name","framesToPop","defineProperty","value","toArray","str","match","_unicodeAstralRegex2","default","substring","begin","len","strLength","parseInt","end","slice","limit","padString","padPosition","String","padRepeats","repeat","searchStr","pos","isNaN","strArr","searchArr","finded","searchIndex","_unicodeAstralRegex","__esModule","warning__WEBPACK_IMPORTED_MODULE_0__","warning__WEBPACK_IMPORTED_MODULE_0___default","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","appendListener","fn","isActive","apply","push","filter","notifyListeners","_len","_key","forEach","delegate","require","_ref","button","href","_ref2","contentEl","parentNode","querySelector","style","display","marginBottom","preventDefault","nodeName","open","getProfileAvatarAnimationHandler","swapTo","_ref3","swapSrc","getAttribute","src","_ref4","header","file","files","url","URL","createObjectURL","dataset","originalSrc","invariant__WEBPACK_IMPORTED_MODULE_1__","invariant__WEBPACK_IMPORTED_MODULE_1___default","_LocationUtils__WEBPACK_IMPORTED_MODULE_2__","_PathUtils__WEBPACK_IMPORTED_MODULE_3__","_createTransitionManager__WEBPACK_IMPORTED_MODULE_4__","_DOMUtils__WEBPACK_IMPORTED_MODULE_5__","PopStateEvent","HashChangeEvent","getHistoryState","props","globalHistory","canUseHistory","needsHashChangeListener","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","Math","random","toString","transitionManager","setState","nextState","handlePopState","handlePop","handleHashChange","forceNextPop","ok","revertPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","this","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","cspNonce","meta","content","expando","m","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","element","getData","ref","setData","$","querySelectorAll","csrfParam","csrfToken","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","input","CustomEvent","fire","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","defaultPrevented","get","data","dispatchEvent","stopEverything","stopPropagation","stopImmediatePropagation","eventType","handler","AcceptHeaders","createXHR","prepareOptions","processResponse","*","text","html","xml","json","script","ajax","options","response","responseText","getResponseHeader","floor","status","success","statusText","complete","beforeSend","XMLHttpRequest","OPENED","send","type","toUpperCase","dataType","accept","done","crossDomain","withCredentials","onreadystatechange","DONE","parser","JSON","parse","setAttribute","head","appendChild","removeChild","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","serializeElement","additionalParam","inputs","elements","disabled","option","selected","checked","map","encodeURIComponent","formElements","form","el","allowAction","handleConfirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","handleMethod","formContent","method","body","click","isRemote","handleRemote","enctype","FormData","append","formSubmitButtonClick","formNoValidate","handleMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","start","_rails_loaded","setTimeout","addLeadingSlash","stripLeadingSlash","hasBasename","stripBasename","stripTrailingSlash","parsePath","createPath","prefix","RegExp","test","hashIndex"],"mappings":"2FAsDAA,EAAAC,QAtCA,+CChBe,SAASC,EAAMC,GACxB,CAAC,cAAe,YAAYC,SAASC,SAASC,YAChDH,IAEAE,SAASE,iBAAiB,mBAAoBJ,GAJlDK,EAAAC,EAAAC,GAAAF,EAAAG,EAAAD,EAAA,4BAAAR,qCCAAM,EAAAG,EAAAD,EAAA,sBAAAE,IAAAJ,EAAAG,EAAAD,EAAA,sBAAAH,IAAAC,EAAAG,EAAAD,EAAA,sBAAAG,IAAAL,EAAAG,EAAAD,EAAA,sBAAAI,IAAAN,EAAAG,EAAAD,EAAA,sBAAAK,IAAAP,EAAAG,EAAAD,EAAA,sBAAAM,IAAAR,EAAAG,EAAAD,EAAA,sBAAAO,IAAAT,EAAAG,EAAAD,EAAA,sBAAAQ,IAAO,IAAAN,IAAA,oBAAAO,gBAAAd,WAAAc,OAAAd,SAAAe,eACAb,EAAA,SAAAc,EAAAC,EAAAC,GACP,OAAAF,EAAAd,iBAAAc,EAAAd,iBAAAe,EAAAC,GAAA,GAAAF,EAAAG,YAAA,KAAAF,EAAAC,IAEOV,EAAA,SAAAQ,EAAAC,EAAAC,GACP,OAAAF,EAAAR,oBAAAQ,EAAAR,oBAAAS,EAAAC,GAAA,GAAAF,EAAAI,YAAA,KAAAH,EAAAC,IAEOT,EAAA,SAAAY,EAAAC,GACP,OAAAA,EAAAR,OAAAS,QAAAF,KAWOX,EAAA,WACP,IAAAc,EAAAV,OAAAW,UAAAC,UACA,YAAAF,EAAAG,QAAA,oBAAAH,EAAAG,QAAA,qBAAAH,EAAAG,QAAA,uBAAAH,EAAAG,QAAA,gBAAAH,EAAAG,QAAA,oBACAb,OAAAc,SAAA,cAAAd,OAAAc,UAOOjB,EAAA,WACP,WAAAG,OAAAW,UAAAC,UAAAC,QAAA,YAMOf,EAAA,WACP,WAAAE,OAAAW,UAAAC,UAAAC,QAAA,YAQOd,EAAA,SAAAI,GACP,YAAAY,IAAAZ,EAAAa,QAAA,IAAAL,UAAAC,UAAAC,QAAA,2CC9CA,SAAAI,EAAAC,GACA,YAAAA,EAAAC,OAAA,GAIA,SAAAC,EAAAC,EAAAC,GACA,QAAAC,EAAAD,EAAAE,EAAAD,EAAA,EAAAE,EAAAJ,EAAAK,OAAiDF,EAAAC,EAAOF,GAAA,EAAAC,GAAA,EACxDH,EAAAE,GAAAF,EAAAG,GAGAH,EAAAM,MAwDe,IAAAC,EApDf,SAAAC,GACA,IAAAC,EAAA,EAAAC,UAAAL,aAAAX,IAAAgB,UAAA,GAAAA,UAAA,MACAC,EAAAH,KAAAI,MAAA,SACAC,EAAAJ,KAAAG,MAAA,SACAE,EAAAN,GAAAZ,EAAAY,GACAO,EAAAN,GAAAb,EAAAa,GACAO,EAAAF,GAAAC,EAWA,GATAP,GAAAZ,EAAAY,GAEAK,EAAAF,EACGA,EAAAN,SAEHQ,EAAAP,MACAO,IAAAI,OAAAN,KAGAE,EAAAR,OAAA,UACA,IAAAa,OAAA,EAEA,GAAAL,EAAAR,OAAA,CACA,IAAAc,EAAAN,IAAAR,OAAA,GACAa,EAAA,MAAAC,GAAA,OAAAA,GAAA,KAAAA,OAEAD,GAAA,EAKA,IAFA,IAAAE,EAAA,EAEAlB,EAAAW,EAAAR,OAAgC,GAAAH,EAAQA,IAAA,CACxC,IAAAmB,EAAAR,EAAAX,GAEA,MAAAmB,EACAtB,EAAAc,EAAAX,GACK,OAAAmB,GACLtB,EAAAc,EAAAX,GACAkB,KACKA,IACLrB,EAAAc,EAAAX,GACAkB,KAIA,IAAAJ,EAAA,KAAyBI,IAAMA,EAC/BP,EAAAS,QAAA,OAEAN,GAAA,KAAAH,EAAA,IAAAA,EAAA,IAAAjB,EAAAiB,EAAA,KAAAA,EAAAS,QAAA,IACA,IAAAC,EAAAV,EAAAW,KAAA,KAEA,OADAN,GAAA,MAAAK,EAAAE,QAAA,KAAAF,GAAA,KACAA,GC/DAG,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GACA,cAAAA,GACC,SAAAA,GACD,OAAAA,GAAA,mBAAAF,QAAAE,EAAAC,cAAAH,QAAAE,IAAAF,OAAAI,UAAA,gBAAAF,GAgCe,IAAAG,EA7Bf,SAAAC,EAAAC,EAAAC,GACA,GAAAD,IAAAC,EAAA,SACA,SAAAD,GAAA,MAAAC,EAAA,SAEA,GAAAC,MAAAC,QAAAH,GACA,OAAAE,MAAAC,QAAAF,IAAAD,EAAA7B,SAAA8B,EAAA9B,QAAA6B,EAAAI,MAAA,SAAAC,EAAAtC,GACA,OAAAgC,EAAAM,EAAAJ,EAAAlC,MAIA,IAAAuC,OAAA,IAAAN,EAAA,YAAAR,EAAAQ,GAEA,GAAAM,UADA,IAAAL,EAAA,YAAAT,EAAAS,IACA,SAEA,cAAAK,EAYA,SAXA,IAAAC,EAAAP,EAAAQ,UACAC,EAAAR,EAAAO,UACA,GAAAD,IAAAP,GAAAS,IAAAR,EAAA,OAAAF,EAAAQ,EAAAE,GACA,IAAAC,EAAAC,OAAAC,KAAAZ,GACAa,EAAAF,OAAAC,KAAAX,GACA,OAAAS,EAAAvC,SAAA0C,EAAA1C,QACAuC,EAAAN,MAAA,SAAAU,GACA,OAAAf,EAAAC,EAAAc,GAAAb,EAAAa,cC5BAhF,EAAAG,EAAAD,EAAA,sBAAA+E,IAAAjF,EAAAG,EAAAD,EAAA,sBAAAgF,IAAA,IAAAC,EAAAN,OAAAO,QAAA,SAAAC,GACA,QAAAnD,EAAA,EAAiBA,EAAAQ,UAAAL,OAAsBH,IAAA,CACvC,IAAAoD,EAAA5C,UAAAR,GAEA,QAAA8C,KAAAM,EACAT,OAAAd,UAAAwB,eAAAC,KAAAF,EAAAN,KACAK,EAAAL,GAAAM,EAAAN,IAKA,OAAAK,GAMWJ,EAAc,SAAAQ,EAAA9D,EAAAqD,EAAAU,GACzB,IAAAC,OAAA,EAEA,iBAAAF,GAEAE,EAAed,OAAAe,EAAA,EAAAf,CAASY,IACxB9D,cAIAD,KADAiE,EAAAR,EAAA,GAA0BM,IAC1B5D,WAAA8D,EAAA9D,SAAA,IAEA8D,EAAAE,OACA,MAAAF,EAAAE,OAAA/D,OAAA,KAAA6D,EAAAE,OAAA,IAAAF,EAAAE,QAEAF,EAAAE,OAAA,GAGAF,EAAAG,KACA,MAAAH,EAAAG,KAAAhE,OAAA,KAAA6D,EAAAG,KAAA,IAAAH,EAAAG,MAEAH,EAAAG,KAAA,QAGApE,IAAAC,QAAAD,IAAAiE,EAAAhE,QAAAgE,EAAAhE,UAGA,IACAgE,EAAA9D,SAAAkE,UAAAJ,EAAA9D,UACG,MAAAmE,GACH,MAAAA,aAAAC,SACA,IAAAA,SAAA,aAAAN,EAAA9D,SAAA,iFAEAmE,EAoBA,OAhBAhB,IAAAW,EAAAX,OAEAU,EAEAC,EAAA9D,SAEK,MAAA8D,EAAA9D,SAAAC,OAAA,KACL6D,EAAA9D,SAA0BU,EAAeoD,EAAA9D,SAAA6D,EAAA7D,WAFzC8D,EAAA9D,SAAA6D,EAAA7D,SAMA8D,EAAA9D,WACA8D,EAAA9D,SAAA,KAIA8D,GAEWT,EAAiB,SAAAhB,EAAAC,GAC5B,OAAAD,EAAArC,WAAAsC,EAAAtC,UAAAqC,EAAA2B,SAAA1B,EAAA0B,QAAA3B,EAAA4B,OAAA3B,EAAA2B,MAAA5B,EAAAc,MAAAb,EAAAa,KAAuGhB,EAAUE,EAAAvC,MAAAwC,EAAAxC,yCC5BjHnC,EAAAC,QA3BA,SAAAyG,EAAAC,EAAAjC,EAAAC,EAAAiC,EAAAjG,EAAA6F,EAAAK,GAOA,IAAAH,EAAA,CACA,IAAAI,EAEA,QAAA5E,IAAAyE,EACAG,EAAA,IAAAC,MAAA,qIACK,CACL,IAAAC,EAAA,CAAAtC,EAAAC,EAAAiC,EAAAjG,EAAA6F,EAAAK,GACAI,EAAA,GACAH,EAAA,IAAAC,MAAAJ,EAAAO,QAAA,iBACA,OAAAF,EAAAC,SAEAE,KAAA,sBAKA,MAFAL,EAAAM,YAAA,EAEAN,sCCvCAzB,OAAAgC,eAAApH,EAAA,cACAqH,OAAA,IAEArH,EAAAsH,QAuBA,SAAAC,GACA,oBAAAA,EAIA,OAAAA,EAAAC,MAAAC,EAAAC,UAAA,GAHA,UAAAZ,MAAA,kCAxBA9G,EAAA4C,SACA5C,EAAA2H,YACA3H,EAAAgE,OAwFA,SAAAuD,GACA,IAAAK,EAAA,EAAA3E,UAAAL,aAAAX,IAAAgB,UAAA,GAAAA,UAAA,KACA4E,EAAA5E,UAAA,GAEA,oBAAAsE,EACA,UAAAT,MAAA,0BAGA,IAAAgB,EAAAlF,EAAA2E,GAEA,iBAAAK,IACAA,EAAAG,SAAAH,EAAA,KAIA,GAAAE,GAAAF,EACA,SAIAA,EAAA,IACAA,GAAAE,GAGA,IAAAE,OAAA,EAGAA,OADA,IAAAH,EACAC,GAGA,iBAAAD,IACAA,EAAAE,SAAAF,EAAA,KAGA,GAAAA,IAAAD,KAGA,IAAAJ,EAAAD,EAAAC,MAAAC,EAAAC,SACA,OAAAF,EACAA,EAAAS,MAAAL,EAAAI,GAAAjE,KAAA,IADA,IA7HA/D,EAAAkI,MA6IA,SAAAX,GACA,IAAAW,EAAA,EAAAjF,UAAAL,aAAAX,IAAAgB,UAAA,GAAAA,UAAA,MACAkF,EAAA,EAAAlF,UAAAL,aAAAX,IAAAgB,UAAA,GAAAA,UAAA,OACAmF,EAAA,EAAAnF,UAAAL,aAAAX,IAAAgB,UAAA,GAAAA,UAAA,WAEA,oBAAAsE,GAAA,iBAAAW,EACA,UAAApB,MAAA,+BAIA,yBAAA/E,QAAAqG,GACA,UAAAtB,MAAA,+CAIA,iBAAAqB,IACAA,EAAAE,OAAAF,IAIA,IAAAL,EAAAlF,EAAA2E,GAEA,IAAAW,EAAAJ,EACA,OAAAH,EAAAJ,EAAA,EAAAW,GACG,GAAAJ,EAAAI,EAAA,CACH,IAAAI,EAAAH,EAAAI,OAAAL,EAAAJ,GACA,eAAAM,EAAAE,EAAAf,IAAAe,GAGA,OAAAf,GAzKAvH,EAAA+B,QAsLA,SAAAwF,EAAAiB,EAAAC,GACA,oBAAAlB,EACA,UAAAT,MAAA,0BAGA,QAAAS,EACA,WAAAiB,EACA,GAGA,EAIAC,EAAAV,SAAAU,EAAA,IACAA,EAAAC,MAAAD,GAAA,EAAAA,EACAD,EAAAH,OAAAG,GACA,IAAAG,EAAApB,EAAAC,MAAAC,EAAAC,SAEA,GAAAe,GAAAE,EAAA/F,OACA,WAAA4F,EACAG,EAAA/F,QAGA,EAGA,QAAA4F,EACA,OAAAC,EAGA,IAAAG,EAAAJ,EAAAhB,MAAAC,EAAAC,SACAmB,GAAA,EACArG,OAAA,EAEA,IAAAA,EAAAiG,EAAmBjG,EAAAmG,EAAA/F,OAAuBJ,GAAA,GAG1C,IAFA,IAAAsG,EAAA,EAEAA,EAAAF,EAAAhG,QAAAgG,EAAAE,KAAAH,EAAAnG,EAAAsG,IACAA,GAAA,EAGA,GAAAA,IAAAF,EAAAhG,QAAAgG,EAAAE,EAAA,KAAAH,EAAAnG,EAAAsG,EAAA,IACAD,GAAA,EACA,OAIA,OAAAA,EAAArG,GAAA,GApOA,IAIA4B,EAJA2E,EAA0BxI,EAAQ,KAElCkH,GAEArD,EAFA2E,IAGA3E,EAAA4E,WAAA5E,EAAA,CACAsD,QAAAtD,GA0BA,SAAAxB,EAAA2E,GAEA,oBAAAA,EACA,UAAAT,MAAA,0BAGA,IAAAU,EAAAD,EAAAC,MAAAC,EAAAC,SACA,cAAAF,EAAA,EAAAA,EAAA5E,OAaA,SAAA+E,EAAAJ,GACA,IAAAK,EAAA,EAAA3E,UAAAL,aAAAX,IAAAgB,UAAA,GAAAA,UAAA,KACA+E,EAAA/E,UAAA,GAEA,oBAAAsE,EACA,UAAAT,MAAA,2BAIA,iBAAAc,KAAA,KACAA,EAAA,GAGA,iBAAAI,KAAA,IACAA,EAAA,GAGA,IAAAR,EAAAD,EAAAC,MAAAC,EAAAC,SACA,OAAAF,EACAA,EAAAS,MAAAL,EAAAI,GAAAjE,KAAA,IADA,qCClFA,IAAAkF,EAAA1I,EAAA,IAAA2I,EAAA3I,EAAAoC,EAAAsG,GAwEexI,EAAA,EAtEf,WACA,IAAA0I,EAAA,KAiCAC,EAAA,GA4BA,OACAC,UA5DA,SAAAC,GAGA,OAFIJ,IAAO,MAAAC,EAAA,gDACXA,EAAAG,EACA,WACAH,IAAAG,IAAAH,EAAA,QAyDAI,oBArDA,SAAArD,EAAAsD,EAAAC,EAAA/H,GAIA,SAAAyH,EAAA,CACA,IAAArF,EAAA,mBAAAqF,IAAAjD,EAAAsD,GAAAL,EAEA,iBAAArF,EACA,mBAAA2F,EACAA,EAAA3F,EAAApC,IAEUwH,KAAO,qFACjBxH,GAAA,IAIAA,GAAA,IAAAoC,QAGApC,GAAA,IAmCAgI,eA7BA,SAAAC,GACA,IAAAC,GAAA,EAEAtI,EAAA,WACAsI,GAAAD,EAAAE,WAAA5H,EAAAgB,YAIA,OADAmG,EAAAU,KAAAxI,GACA,WACAsI,GAAA,EACAR,IAAAW,OAAA,SAAAjF,GACA,OAAAA,IAAAxD,MAmBA0I,gBAdA,WACA,QAAAC,EAAAhH,UAAAL,OAAAmE,EAAApC,MAAAsF,GAAAC,EAAA,EAAmEA,EAAAD,EAAaC,IAChFnD,EAAAmD,GAAAjH,UAAAiH,GAGAd,EAAAe,QAAA,SAAA7I,GACA,OAAAA,EAAAuI,WAAA5H,EAAA8E,2BCxDAhH,EAAAC,QAAA,0gBCJAO,EAAAC,EAAAC,GAAAF,EAAA,IAAAA,EAAA,SAKQ6J,EAAaC,EAAQ,IAArBD,SACWC,EAAQ,KAAnBzH,OAERwH,EAAShK,SAAU,cAAe,QAAS,SAAAkK,GAAwB,IAArB1E,EAAqB0E,EAArB1E,OAC5C,OAAe,IADkD0E,EAAbC,SAIpDrJ,OAAOgF,SAASsE,KAAO5E,EAAO4E,MACvB,KAGTJ,EAAShK,SAAU,iCAAkC,QAAS,SAAAqK,GAAgB,IAAb7E,EAAa6E,EAAb7E,OACzD8E,EAAY9E,EAAO+E,WAAWA,WAAWC,cAAc,cAU7D,MARgC,UAA5BF,EAAUG,MAAMC,SAClBJ,EAAUG,MAAMC,QAAU,OAC1BlF,EAAO+E,WAAWE,MAAME,aAAe,IAEvCL,EAAUG,MAAMC,QAAU,QAC1BlF,EAAO+E,WAAWE,MAAME,aAAe,OAGlC,IAGTX,EAAShK,SAAU,gBAAiB,QAAS,SAAAmG,GAG3C,IAAIiE,EAFJjE,EAAEyE,iBAKAR,EADwB,MAAtBjE,EAAEX,OAAOqF,SACJ1E,EAAEX,OAAO+E,WAAWH,KAEpBjE,EAAEX,OAAO4E,KAGlBtJ,OAAOgK,KAAKV,EAAM,kBAAmB,2EAGvC,IAAMW,EAAmC,SAACC,GAExC,OAAO,SAAAC,GAAgB,IAAbzF,EAAayF,EAAbzF,OACF0F,EAAU1F,EAAO2F,aAAaH,GAEQ,UAAzCxF,EAAO2F,aAAa,kBAAgC3F,EAAO4F,MAAQF,IACpE1F,EAAO4F,IAAMF,KAKnBlB,EAAShK,SAAU,0BAA2B,YAAa+K,EAAiC,kBAE5Ff,EAAShK,SAAU,0BAA2B,WAAY+K,EAAiC,gBAE3Ff,EAAShK,SAAU,kBAAmB,SAAU,SAAAqL,GAAgB,IAAb7F,EAAa6F,EAAb7F,OAC3C8F,EAAStL,SAASwK,cAAc,wBAC/Be,GAAQ/F,EAAOgG,OAAS,IAF+B,GAGxDC,EAAMF,EAAOG,IAAIC,gBAAgBJ,GAAQD,EAAOM,QAAQC,YAE9DP,EAAOF,IAAMK,qCChEf,IAAA5C,EAAA1I,EAAA,IAAA2I,EAAA3I,EAAAoC,EAAAsG,GAAAiD,EAAA3L,EAAA,IAAA4L,EAAA5L,EAAAoC,EAAAuJ,GAAAE,EAAA7L,EAAA,IAAA8L,EAAA9L,EAAA,GAAA+L,EAAA/L,EAAA,IAAAgM,EAAAhM,EAAA,IAAA0D,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GACA,cAAAA,GACC,SAAAA,GACD,OAAAA,GAAA,mBAAAF,QAAAE,EAAAC,cAAAH,QAAAE,IAAAF,OAAAI,UAAA,gBAAAF,GAGAsB,EAAAN,OAAAO,QAAA,SAAAC,GACA,QAAAnD,EAAA,EAAiBA,EAAAQ,UAAAL,OAAsBH,IAAA,CACvC,IAAAoD,EAAA5C,UAAAR,GAEA,QAAA8C,KAAAM,EACAT,OAAAd,UAAAwB,eAAAC,KAAAF,EAAAN,KACAK,EAAAL,GAAAM,EAAAN,IAKA,OAAAK,GASA4G,EAAA,WACAC,EAAA,aAEAC,EAAA,WACA,IACA,OAAAxL,OAAAc,QAAAE,OAAA,GACG,MAAAqE,GAGH,WAsPe9F,EAAA,EA7Of,WACA,IAAAkM,EAAA,EAAA1J,UAAAL,aAAAX,IAAAgB,UAAA,GAAAA,UAAA,MACEkJ,IAAUI,EAAA,EAAS,+BACrB,IAAAK,EAAA1L,OAAAc,QACA6K,EAAsBzH,OAAAmH,EAAA,EAAAnH,GACtB0H,GAAiC1H,OAAAmH,EAAA,EAAAnH,GACjC2H,EAAAJ,EAAAK,aACAA,OAAA/K,IAAA8K,KACAE,EAAAN,EAAAlD,oBACAA,OAAAxH,IAAAgL,EAAkEV,EAAA,EAAeU,EACjFC,EAAAP,EAAAQ,UACAA,OAAAlL,IAAAiL,EAAA,EAAAA,EACAE,EAAAT,EAAAS,SAAkChI,OAAAiH,EAAA,EAAAjH,CAAmBA,OAAAiH,EAAA,EAAAjH,CAAeuH,EAAAS,WAAA,GAEpEC,EAAA,SAAAC,GACA,IAAAhD,EAAAgD,GAAA,GACA/H,EAAA+E,EAAA/E,IACArD,EAAAoI,EAAApI,MAEAqL,EAAArM,OAAAgF,SAIAF,EAHAuH,EAAAnL,SACAmL,EAAAnH,OACAmH,EAAAlH,KAIA,OAFI6C,KAAOkE,GAAchI,OAAAiH,EAAA,EAAAjH,CAAWY,EAAAoH,GAAA,kHAAApH,EAAA,oBAAAoH,EAAA,MACpCA,IAAApH,EAAyBZ,OAAAiH,EAAA,EAAAjH,CAAaY,EAAAoH,IAC3BhI,OAAAgH,EAAA,EAAAhH,CAAcY,EAAA9D,EAAAqD,IAGzBiI,EAAA,WACA,OAAAC,KAAAC,SAAAC,SAAA,IAAA3J,OAAA,EAAAmJ,IAGAS,EAA0BxI,OAAAkH,EAAA,EAAAlH,GAE1ByI,EAAA,SAAAC,GACApI,EAAA1D,EAAA8L,GAEA9L,EAAAY,OAAAgK,EAAAhK,OACAgL,EAAA5D,gBAAAhI,EAAAkE,SAAAlE,EAAAwH,SAGAuE,EAAA,SAAA1M,GAEQ+D,OAAAmH,EAAA,EAAAnH,CAAyB/D,IACjC2M,EAAAX,EAAAhM,EAAAa,SAGA+L,EAAA,WACAD,EAAAX,EAAAX,OAGAwB,GAAA,EAEAF,EAAA,SAAA9H,GACAgI,GACAA,GAAA,EACAL,KAGAD,EAAArE,oBAAArD,EADA,MACAuD,EAAA,SAAA0E,GACAA,EACAN,EAAA,CACArE,OAJA,MAKAtD,aAGAkI,EAAAlI,MAMAkI,EAAA,SAAAC,GACA,IAAAC,EAAAtM,EAAAkE,SAIAqI,EAAAC,EAAAzM,QAAAuM,EAAA/I,MACA,IAAAgJ,MAAA,GACA,IAAAE,EAAAD,EAAAzM,QAAAsM,EAAA9I,MACA,IAAAkJ,MAAA,GACA,IAAAC,EAAAH,EAAAE,EAEAC,IACAR,GAAA,EACAS,EAAAD,KAIAE,EAAAvB,EAAAX,KACA8B,EAAA,CAAAI,EAAArJ,KAEAsJ,EAAA,SAAA3I,GACA,OAAAkH,EAAsBhI,OAAAiH,EAAA,EAAAjH,CAAUc,IAuEhCyI,EAAA,SAAAhM,GACAiK,EAAA+B,GAAAhM,IAWAmM,EAAA,EAEAC,EAAA,SAAAL,GAGA,KAFAI,GAAAJ,IAGMtJ,OAAAmH,EAAA,EAAAnH,CAAgBlE,OAAAsL,EAAAuB,GACtBjB,GAAmC1H,OAAAmH,EAAA,EAAAnH,CAAgBlE,OAAAuL,EAAAwB,IAC9C,IAAAa,IACC1J,OAAAmH,EAAA,EAAAnH,CAAmBlE,OAAAsL,EAAAuB,GACzBjB,GAAmC1H,OAAAmH,EAAA,EAAAnH,CAAmBlE,OAAAuL,EAAAwB,KAItDe,GAAA,EA8BAhN,EAAA,CACAY,OAAAgK,EAAAhK,OACA4G,OAAA,MACAtD,SAAA0I,EACAC,aACA/E,KAjIA,SAAA9D,EAAA9D,GACIgH,MAAO,qBAAAlD,EAAA,YAAA/B,EAAA+B,UAAA/D,IAAA+D,EAAA9D,YAAAD,IAAAC,GAAA,iJACX,IACAgE,EAAmBd,OAAAgH,EAAA,EAAAhH,CAAcY,EAAA9D,EAAAsL,IAAAxL,EAAAkE,UACjC0H,EAAArE,oBAAArD,EAFA,OAEAuD,EAAA,SAAA0E,GACA,GAAAA,EAAA,CACA,IAAA3D,EAAAqE,EAAA3I,GACAX,EAAAW,EAAAX,IACArD,EAAAgE,EAAAhE,MAEA,GAAA2K,EAMA,GALAD,EAAAqC,UAAA,CACA1J,MACArD,SACS,KAAAsI,GAETwC,EACA9L,OAAAgF,SAAAsE,WACS,CACT,IAAA0E,EAAAV,EAAAzM,QAAAC,EAAAkE,SAAAX,KACA4J,EAAAX,EAAAvG,MAAA,OAAAiH,EAAA,EAAAA,EAAA,GACAC,EAAArF,KAAA5D,EAAAX,KACAiJ,EAAAW,EACAtB,EAAA,CACArE,OAtBA,OAuBAtD,kBAIQgD,SAAOjH,IAAAC,EAAA,mFACfhB,OAAAgF,SAAAsE,WAoGAvD,QA/FA,SAAAjB,EAAA9D,GACIgH,MAAO,qBAAAlD,EAAA,YAAA/B,EAAA+B,UAAA/D,IAAA+D,EAAA9D,YAAAD,IAAAC,GAAA,oJACX,IAAAsH,EAAA,UACAtD,EAAmBd,OAAAgH,EAAA,EAAAhH,CAAcY,EAAA9D,EAAAsL,IAAAxL,EAAAkE,UACjC0H,EAAArE,oBAAArD,EAAAsD,EAAAC,EAAA,SAAA0E,GACA,GAAAA,EAAA,CACA,IAAA3D,EAAAqE,EAAA3I,GACAX,EAAAW,EAAAX,IACArD,EAAAgE,EAAAhE,MAEA,GAAA2K,EAMA,GALAD,EAAAwC,aAAA,CACA7J,MACArD,SACS,KAAAsI,GAETwC,EACA9L,OAAAgF,SAAAe,QAAAuD,OACS,CACT,IAAA0E,EAAAV,EAAAzM,QAAAC,EAAAkE,SAAAX,MACA,IAAA2J,IAAAV,EAAAU,GAAAhJ,EAAAX,KACAsI,EAAA,CACArE,SACAtD,kBAIQgD,SAAOjH,IAAAC,EAAA,sFACfhB,OAAAgF,SAAAe,QAAAuD,OAoEAmE,KACAU,OA5DA,WACA,OAAAV,GAAA,IA4DAW,UAzDA,WACA,OAAAX,EAAA,IAyDAY,MAtCA,WACA,IAAApG,EAAA,EAAAlG,UAAAL,aAAAX,IAAAgB,UAAA,IAAAA,UAAA,GACAuM,EAAA5B,EAAAvE,UAAAF,GAOA,OALA6F,IACAD,EAAA,GACAC,GAAA,GAGA,WAMA,OALAA,IACAA,GAAA,EACAD,GAAA,IAGAS,MAwBAC,OApBA,SAAAnO,GACA,IAAAoO,EAAA9B,EAAAlE,eAAApI,GAEA,OADAyN,EAAA,GACA,WACAA,GAAA,GACAW,OAiBA,OAAA1N,uBCtRA,IAAA2N,EAAAC,GAKA,YAEA,YACA,WACAC,KAAAC,MAAA,CACAC,kBAAA,yGACAC,oBAAA,CACAC,SAAA,oEACAC,QAAA,eAEAC,oBAAA,iEACAC,mBAAA,OACAC,uBAAA,6MACAC,oBAAA,sMACAC,mBAAA,4MACAC,kBAAA,yCACAC,oBAAA,wCACAC,sBAAA,+EAEK3K,KAAA8J,QACF9J,KAnBH8J,MAoBA,IAAAC,EApBAD,KAoBAC,OACA,YACA,WAGAA,EAAAa,SAAA,WACA,IAAAC,EAEA,OADAA,EAAAxQ,SAAAwK,cAAA,0BACAgG,EAAAC,WAEK9K,KAAA8J,MACL,WACA,IAAAiB,EAAAC,EACAA,EAAAC,QAAA1M,UAAA2M,SAAAD,QAAA1M,UAAA4M,iBAAAF,QAAA1M,UAAA6M,oBAAAH,QAAA1M,UAAA8M,mBAAAJ,QAAA1M,UAAA+M,kBAAAL,QAAA1M,UAAAgN,sBAEAxB,EAAAmB,QAAA,SAAAM,EAAAtB,GACA,aAAAA,EAAAC,QACAa,EAAAhL,KAAAwL,EAAAtB,cAAAc,EAAAhL,KAAAwL,EAAAtB,EAAAC,SAEAa,EAAAhL,KAAAwL,EAAAtB,IAIAa,EAAA,WAEAhB,EAAA0B,QAAA,SAAAD,EAAAhM,GACA,IAAAkM,EACA,cAAAA,EAAAF,EAAAT,IAAAW,EAAAlM,QAAA,GAGAuK,EAAA4B,QAAA,SAAAH,EAAAhM,EAAA8B,GAKA,OAJA,MAAAkK,EAAAT,KACAS,EAAAT,GAAA,IAGAS,EAAAT,GAAAvL,GAAA8B,GAGAyI,EAAA6B,EAAA,SAAA1B,GACA,OAAAtL,MAAAL,UAAA2D,MAAAlC,KAAA3F,SAAAwR,iBAAA3B,MAEKlK,KAAA8J,MACL,WACA,IAAA8B,EAAAE,EAAAC,EACAH,EAAA7B,EAAA6B,EAEAG,EAAAhC,EAAAgC,UAAA,WACA,IAAAlB,EAEA,OADAA,EAAAxQ,SAAAwK,cAAA,2BACAgG,EAAAC,SAGAgB,EAAA/B,EAAA+B,UAAA,WACA,IAAAjB,EAEA,OADAA,EAAAxQ,SAAAwK,cAAA,2BACAgG,EAAAC,SAGAf,EAAAiC,eAAA,SAAAC,GACA,IAAAC,EAGA,UAFAA,EAAAH,KAGA,OAAAE,EAAAE,iBAAA,eAAAD,IAIAnC,EAAAqC,kBAAA,WACA,IAAAC,EAAAH,EAIA,GAHAA,EAAAH,IACAM,EAAAP,IAEA,MAAAI,GAAA,MAAAG,EACA,OAAAT,EAAA,oBAAAS,EAAA,MAAAjI,QAAA,SAAAkI,GACA,OAAAA,EAAAhL,MAAA4K,MAIKlM,KAAA8J,MACL,WACA,IAAAyC,EAAAC,EAAAtB,EAAAjG,EACAiG,EAAAnB,EAAAmB,QAGA,mBAFAqB,EAAApR,OAAAoR,gBAGAA,EAAA,SAAAjR,EAAAmR,GACA,IAAAC,EAGA,OAFAA,EAAArS,SAAAsS,YAAA,gBACAC,gBAAAtR,EAAAmR,EAAAI,QAAAJ,EAAAK,WAAAL,EAAAM,QACAL,IAGAnO,UAAApD,OAAA6R,MAAAzO,UACA0G,EAAAsH,EAAAhO,UAAA0G,eAEAsH,EAAAhO,UAAA0G,eAAA,WACA,IAAAlH,EAWA,OAVAA,EAAAkH,EAAAjF,KAAA8J,MAEAA,KAAAgD,aAAAhD,KAAAmD,kBACA5N,OAAAgC,eAAAyI,KAAA,oBACAoD,IAAA,WACA,YAKAnP,IAIAyO,EAAAzC,EAAAyC,KAAA,SAAAnO,EAAA8C,EAAAgM,GACA,IAAA7R,EAOA,OANAA,EAAA,IAAAiR,EAAApL,EAAA,CACA0L,SAAA,EACAC,YAAA,EACAC,OAAAI,IAEA9O,EAAA+O,cAAA9R,IACAA,EAAA2R,kBAGAlD,EAAAsD,eAAA,SAAA7M,GAIA,OAHAgM,EAAAhM,EAAAX,OAAA,yBACAW,EAAAyE,iBACAzE,EAAA8M,kBACA9M,EAAA+M,4BAGAxD,EAAA1F,SAAA,SAAAmH,EAAAtB,EAAAsD,EAAAC,GACA,OAAAjC,EAAAjR,iBAAAiT,EAAA,SAAAhN,GACA,IAAAX,EAGA,IAFAA,EAAAW,EAAAX,OAEAA,aAAAoL,UAAAC,EAAArL,EAAAqK,IACArK,IAAA+E,WAGA,GAAA/E,aAAAoL,UAAA,IAAAwC,EAAAzN,KAAAH,EAAAW,GAEA,OADAA,EAAAyE,iBACAzE,EAAA8M,sBAIKtN,KAAA8J,MACL,WACA,IAAA4D,EAAA1B,EAAA2B,EAAA/C,EAAAgD,EAAAC,EACAjD,EAAAb,EAAAa,SAAAoB,EAAAjC,EAAAiC,eAAAjC,EAAAyC,KACAkB,EAAA,CACAI,IAAA,MACAC,KAAA,aACAC,KAAA,YACAC,IAAA,4BACAC,KAAA,oCACAC,OAAA,6FAGApE,EAAAqE,KAAA,SAAAC,GACA,IAAApC,EAmBA,OAlBAoC,EAAAT,EAAAS,GACApC,EAAA0B,EAAAU,EAAA,WACA,IAAA3C,EAAA4C,EAaA,OAZAA,EAAAT,EAAA,OAAAnC,EAAAO,EAAAqC,UAAA5C,EAAAO,EAAAsC,aAAAtC,EAAAuC,kBAAA,iBAEA,IAAA9G,KAAA+G,MAAAxC,EAAAyC,OAAA,KACA,mBAAAL,EAAAM,SACAN,EAAAM,QAAAL,EAAArC,EAAA2C,WAAA3C,GAGA,mBAAAoC,EAAAvN,OACAuN,EAAAvN,MAAAwN,EAAArC,EAAA2C,WAAA3C,GAIA,mBAAAoC,EAAAQ,SAAAR,EAAAQ,SAAA5C,IAAA2C,iBAAA,MAGA,MAAAP,EAAAS,aAAAT,EAAAS,WAAA7C,EAAAoC,MAIApC,EAAA3R,aAAAyU,eAAAC,OACA/C,EAAAgD,KAAAZ,EAAAlB,WADA,IAKAS,EAAA,SAAAS,GAsBA,OArBAA,EAAAvI,IAAAuI,EAAAvI,KAAA3F,SAAAsE,KACA4J,EAAAa,KAAAb,EAAAa,KAAAC,cAEA,QAAAd,EAAAa,MAAAb,EAAAlB,OACAkB,EAAAvI,IAAA9J,QAAA,OACAqS,EAAAvI,KAAA,IAAAuI,EAAAlB,KAEAkB,EAAAvI,KAAA,IAAAuI,EAAAlB,MAIA,MAAAO,EAAAW,EAAAe,YACAf,EAAAe,SAAA,KAGAf,EAAAgB,OAAA3B,EAAAW,EAAAe,UAEA,MAAAf,EAAAe,WACAf,EAAAgB,QAAA,iBAGAhB,GAGAV,EAAA,SAAAU,EAAAiB,GACA,IAAArD,EAsBA,OArBAA,EAAA,IAAA8C,gBACA5J,KAAAkJ,EAAAa,KAAAb,EAAAvI,KAAA,GACAmG,EAAAE,iBAAA,SAAAkC,EAAAgB,QAEA,iBAAAhB,EAAAlB,MACAlB,EAAAE,iBAAA,mEAGAkC,EAAAkB,aACAtD,EAAAE,iBAAA,qCAGAH,EAAAC,GACAA,EAAAuD,kBAAAnB,EAAAmB,gBAEAvD,EAAAwD,mBAAA,WACA,GAAAxD,EAAA3R,aAAAyU,eAAAW,KACA,OAAAJ,EAAArD,IAIAA,GAGA4B,EAAA,SAAAS,EAAAY,GACA,IAAAS,EAAAxB,EAEA,oBAAAG,GAAA,iBAAAY,EACA,GAAAA,EAAAzN,MAAA,YACA,IACA6M,EAAAsB,KAAAC,MAAAvB,GACa,MAAAxN,SACF,GAAAoO,EAAAzN,MAAA,4BACX0M,EAAA9T,SAAAe,cAAA,WACA0U,aAAA,QAAAlF,KACAuD,EAAAJ,KAAAO,EACAjU,SAAA0V,KAAAC,YAAA7B,GAAAvJ,WAAAqL,YAAA9B,QACW,GAAAe,EAAAzN,MAAA,uBACXkO,EAAA,IAAAO,UACAhB,IAAAhO,QAAA,MAAkC,IAElC,IACAoN,EAAAqB,EAAAQ,gBAAA7B,EAAAY,GACa,MAAApO,KAIb,OAAAwN,GAGAvE,EAAAtF,KAAA,SAAA+G,GACA,OAAAA,EAAA/G,MAGAsF,EAAAqG,cAAA,SAAAtK,GACA,IAAAuK,EAAAC,GACAD,EAAAhW,SAAAe,cAAA,MACAqJ,KAAAtE,SAAAsE,KACA6L,EAAAjW,SAAAe,cAAA,KAEA,IAEA,OADAkV,EAAA7L,KAAAqB,MACAwK,EAAAC,UAAA,MAAAD,EAAAC,YAAAD,EAAAE,MAAAH,EAAAE,SAAA,KAAAF,EAAAG,MAAAF,EAAAC,SAAA,KAAAD,EAAAE,MACS,MAAA1P,GAET,OADAA,GACA,KAGKd,KAAA8J,MACL,WACA,IAAAoB,EAAA3J,EACA2J,EAAAnB,EAAAmB,QAEA3J,EAAA,SAAAf,GACA,OAAA5B,MAAAL,UAAA2D,MAAAlC,KAAAQ,IAGAuJ,EAAA0G,iBAAA,SAAAjF,EAAAkF,GACA,IAAAC,EAAAlE,EAkCA,OAjCAkE,EAAA,CAAAnF,GAEAN,EAAAM,EAAA,UACAmF,EAAApP,EAAAiK,EAAAoF,WAGAnE,EAAA,GACAkE,EAAAvM,QAAA,SAAAkI,GACA,GAAAA,EAAAnL,OAAAmL,EAAAuE,SAIA,OAAA3F,EAAAoB,EAAA,UACA/K,EAAA+K,EAAA+B,SAAAjK,QAAA,SAAA0M,GACA,GAAAA,EAAAC,SACA,OAAAtE,EAAA1I,KAAA,CACA5C,KAAAmL,EAAAnL,KACAG,MAAAwP,EAAAxP,UAIWgL,EAAA0E,UAAA,kCAAAhV,QAAAsQ,EAAA4C,MACXzC,EAAA1I,KAAA,CACA5C,KAAAmL,EAAAnL,KACAG,MAAAgL,EAAAhL,aAHW,IAQXoP,GACAjE,EAAA1I,KAAA2M,GAGAjE,EAAAwE,IAAA,SAAA5E,GACA,aAAAA,EAAAlL,KACA+P,mBAAA7E,EAAAlL,MAAA,IAAA+P,mBAAA7E,EAAA/K,OAEA+K,IAESrO,KAAA,MAGT+L,EAAAoH,aAAA,SAAAC,EAAAlH,GACA,OAAAgB,EAAAkG,EAAA,QACA7P,EAAA6P,EAAAR,UAAA5M,OAAA,SAAAqN,GACA,OAAAnG,EAAAmG,EAAAnH,KAGA3I,EAAA6P,EAAAvF,iBAAA3B,MAGKlK,KAAA8J,MACL,WACA,IAAAwH,EAAA9E,EAAAa,EACAb,EAAAzC,EAAAyC,KAAAa,EAAAtD,EAAAsD,eAEAtD,EAAAwH,cAAA,SAAA/Q,GACA,IAAA8Q,EAAAxH,MACA,OAAAuD,EAAA7M,IAIA8Q,EAAA,SAAA9F,GACA,IAAAgG,EAAA7V,EAAAD,EAGA,KAFAA,EAAA8P,EAAAhG,aAAA,iBAGA,SAKA,GAFAgM,GAAA,EAEAhF,EAAAhB,EAAA,YACA,IACAgG,EAAA5V,QAAAF,GACW,MAAAoF,IAEXnF,EAAA6Q,EAAAhB,EAAA,oBAAAgG,IAGA,OAAAA,GAAA7V,IAEKqE,KAAA8J,MACL,WACA,IAAA2H,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAX,EAAA1F,EAAAP,EAAAS,EAAA0B,EACAnC,EAAAnB,EAAAmB,QAAAO,EAAA1B,EAAA0B,QAAAE,EAAA5B,EAAA4B,QAAA0B,EAAAtD,EAAAsD,eAAA8D,EAAApH,EAAAoH,aAEApH,EAAAgI,sBAAA,SAAAvR,GAIA,GAFAsJ,KAEA+G,SACA,OAAAxD,EAAA7M,IAIAuJ,EAAAiI,cAAA,SAAAxR,GACA,IAAAgL,EAGA,OAFAA,EAAAhL,aAAAwM,MAAAxM,EAAAX,OAAAW,EAEA0K,EAAAM,EAAAzB,EAAAW,qBACAoH,EAAAtG,GACSN,EAAAM,EAAAzB,EAAAY,wBAAAO,EAAAM,EAAAzB,EAAAS,oBACToH,EAAApG,GACSN,EAAAM,EAAAzB,EAAAM,oBACTwH,EAAArG,QADS,GAKTzB,EAAAkI,eAAA,SAAAzR,GACA,IAAAgL,EAGA,OAFAA,EAAAhL,aAAAwM,MAAAxM,EAAAX,OAAAW,EAEA0K,EAAAM,EAAAzB,EAAAW,qBACAiH,EAAAnG,GACSN,EAAAM,EAAAzB,EAAAY,wBAAAO,EAAAM,EAAAzB,EAAAQ,qBACTkH,EAAAjG,GACSN,EAAAM,EAAAzB,EAAAM,oBACTqH,EAAAlG,QADS,GAKTmG,EAAA,SAAAnG,GACA,IAAA0G,EASA,OANA,OAFAA,EAAA1G,EAAAhG,aAAA,wBAGAmG,EAAAH,EAAA,kBAAAA,EAAA2G,WACA3G,EAAA2G,UAAAD,GAGA1G,EAAAjR,iBAAA,QAAA8S,GACA1B,EAAAH,EAAA,oBAGAsG,EAAA,SAAAtG,GACA,IAAA4G,EASA,OANA,OAFAA,EAAA3G,EAAAD,EAAA,sBAGAA,EAAA2G,UAAAC,EACAzG,EAAAH,EAAA,yBAGAA,EAAA3Q,oBAAA,QAAAwS,GACA1B,EAAAH,EAAA,sBAGAkG,EAAA,SAAAN,GACA,OAAAD,EAAAC,EAAArH,EAAAQ,qBAAAnG,QAAAqN,IAGAA,EAAA,SAAAjG,GACA,IAAA0G,EAcA,OAXA,OAFAA,EAAA1G,EAAAhG,aAAA,wBAGA0F,EAAAM,EAAA,WACAG,EAAAH,EAAA,kBAAAA,EAAA2G,WACA3G,EAAA2G,UAAAD,IAEAvG,EAAAH,EAAA,kBAAAA,EAAAlK,OACAkK,EAAAlK,MAAA4Q,IAIA1G,EAAAqF,UAAA,EACAlF,EAAAH,EAAA,oBAGAqG,EAAA,SAAAT,GACA,OAAAD,EAAAC,EAAArH,EAAAS,oBAAApG,QAAAwN,IAGAA,EAAA,SAAApG,GACA,IAAA4G,EAcA,OAXA,OAFAA,EAAA3G,EAAAD,EAAA,sBAGAN,EAAAM,EAAA,UACAA,EAAA2G,UAAAC,EAEA5G,EAAAlK,MAAA8Q,EAGAzG,EAAAH,EAAA,yBAGAA,EAAAqF,UAAA,EACAlF,EAAAH,EAAA,uBAEKxL,KAAA8J,MACL,WACA,IAAAuD,EACAA,EAAAtD,EAAAsD,eAEAtD,EAAAsI,aAAA,SAAA7R,GACA,IAAAsL,EAAAC,EAAAqF,EAAAkB,EAAA7N,EAAA8N,EAIA,GAFAA,EADAzI,KACAtE,aAAA,eAwBA,OAlBAf,EAAAsF,EAAAtF,KAPAqF,MAQAiC,EAAAhC,EAAAgC,YACAD,EAAA/B,EAAA+B,YACAsF,EAAA/W,SAAAe,cAAA,QACAkX,EAAA,gCAAAC,EAAA,qBAEA,MAAAzG,GAAA,MAAAC,GAAAhC,EAAAqG,cAAA3L,KACA6N,GAAA,gBAAAxG,EAAA,YAAAC,EAAA,sBAGAuG,GAAA,0BACAlB,EAAAmB,OAAA,OACAnB,EAAA3N,OAAAgB,EACA2M,EAAAvR,OApBAiK,KAoBAjK,OACAuR,EAAAe,UAAAG,EACAlB,EAAAtM,MAAAC,QAAA,OACA1K,SAAAmY,KAAAxC,YAAAoB,GACAA,EAAAvM,cAAA,mBAAA4N,QACApF,EAAA7M,KAEKR,KAAA8J,MACL,WACA,IAAAsE,EACA5B,EACAf,EACA2E,EACAsC,EACAxH,EACAuF,EACA9E,EACA0B,EACAnL,EAAA,GAAAA,MACAgJ,EAAAnB,EAAAmB,QAAAO,EAAA1B,EAAA0B,QAAAE,EAAA5B,EAAA4B,QAAAa,EAAAzC,EAAAyC,KAAAa,EAAAtD,EAAAsD,eAAAe,EAAArE,EAAAqE,KAAAgC,EAAArG,EAAAqG,cAAAK,EAAA1G,EAAA0G,iBAEAiC,EAAA,SAAAlH,GACA,IAAAlK,EAEA,cADAA,EAAAkK,EAAAhG,aAAA,iBACA,UAAAlE,GAGAyI,EAAA4I,aAAA,SAAAnS,GACA,IAAAgE,EAAA2I,EAAAiC,EAAA5D,EAAA+G,EAAAzM,EAAA0J,EAGA,OAAAkD,EAFAlH,EAAA1B,QAMA0C,EAAAhB,EAAA,gBAKAgE,EAAAhE,EAAAhG,aAAA,yBACA4J,EAAA5D,EAAAhG,aAAA,uBAEA0F,EAAAM,EAAAzB,EAAAM,qBACA7F,EAAAiH,EAAAD,EAAA,qBACA+G,EAAA9G,EAAAD,EAAA,iCAAAA,EAAA+G,OACAzM,EAAA2F,EAAAD,EAAA,iCAAAA,EAAAhG,aAAA,WAAArF,SAAAsE,KAEA,QAAA8N,EAAApD,gBACArJ,IAAA5E,QAAA,aAGA,wBAAAsK,EAAAoH,SACAzF,EAAA,IAAA0F,SAAArH,GAEA,MAAAhH,GACA2I,EAAA2F,OAAAtO,EAAArD,KAAAqD,EAAAlD,QAGA6L,EAAAsD,EAAAjF,EAAAhH,GAGAmH,EAAAH,EAAA,0BACAG,EAAAH,EAAA,qCACAG,EAAAH,EAAA,sCAIA2B,EAHSjC,EAAAM,EAAAzB,EAAAE,sBAAAiB,EAAAM,EAAAzB,EAAAK,sBACTmI,EAAA/G,EAAAhG,aAAA,eACAM,EAAA0F,EAAAhG,aAAA,YACAiL,EAAAjF,IAAAhG,aAAA,kBAEA+M,EAAA/G,EAAAhG,aAAA,eACAM,EAAAiE,EAAAtF,KAAA+G,GACAA,EAAAhG,aAAA,gBAGA4I,EAAA,CACAc,KAAAqD,GAAA,MACAzM,MACAqH,OACAiC,WACAN,WAAA,SAAA7C,EAAAoC,GACA,OAAA7B,EAAAhB,EAAA,mBAAAS,EAAAoC,IACA7B,EAAAhB,EAAA,aAAAS,KAEAO,EAAAhB,EAAA,iBACA,IAGAmD,QAAA,WACA,IAAA3N,EAEA,OADAA,EAAA,GAAA9D,UAAAL,OAAAqF,EAAAlC,KAAA9C,UAAA,MACAsP,EAAAhB,EAAA,eAAAxK,IAEAF,MAAA,WACA,IAAAE,EAEA,OADAA,EAAA,GAAA9D,UAAAL,OAAAqF,EAAAlC,KAAA9C,UAAA,MACAsP,EAAAhB,EAAA,aAAAxK,IAEA6N,SAAA,WACA,IAAA7N,EAEA,OADAA,EAAA,GAAA9D,UAAAL,OAAAqF,EAAAlC,KAAA9C,UAAA,MACAsP,EAAAhB,EAAA,gBAAAxK,IAEAuO,YAAAa,EAAAtK,GACA0J,gBAAA,MAAAA,GAAA,UAAAA,IAEAnC,EAAA7M,KAtEAgM,EAAAhB,EAAA,iBACA,KAwEAzB,EAAAgJ,sBAAA,SAAAvS,GACA,IAAAgE,EAAA4M,EAIA,GAFAA,GADA5M,EAAAsF,MACAsH,KAeA,OATA5M,EAAArD,MACAwK,EAAAyF,EAAA,qBACAjQ,KAAAqD,EAAArD,KACAG,MAAAkD,EAAAlD,QAIAqK,EAAAyF,EAAA,4BAAA5M,EAAAwO,gBACArH,EAAAyF,EAAA,+BAAA5M,EAAAgB,aAAA,eACAmG,EAAAyF,EAAA,+BAAA5M,EAAAgB,aAAA,gBAGAuE,EAAAkJ,gBAAA,SAAAzS,GACA,IAAA2M,EAAAoF,EAMA,GAJAA,GADAzI,KACAtE,aAAA,uBAAA2J,cACAhC,EAFArD,KAEAtE,aAAA,gBACAhF,EAAA0S,SAAA1S,EAAA2S,UAEA,QAAAZ,IAAApF,EACA,OAAA3M,EAAA+M,6BAGKvN,KAAA8J,MACL,WACA,IAAA8B,EAAAI,EAAA3H,EAAA4N,EAAAD,EAAAxF,EAAAuG,EAAAtH,EAAA8F,EAAAQ,EAAAkB,EAAAZ,EAAAM,EAAAvG,EAGA,GAFAI,EAAAzC,EAAAyC,KAAAnI,EAAA0F,EAAA1F,SAAAoH,EAAA1B,EAAA0B,QAAAG,EAAA7B,EAAA6B,EAAAQ,EAAArC,EAAAqC,kBAAAJ,EAAAjC,EAAAiC,eAAAgG,EAAAjI,EAAAiI,cAAAC,EAAAlI,EAAAkI,eAAAF,EAAAhI,EAAAgI,sBAAAR,EAAAxH,EAAAwH,cAAAoB,EAAA5I,EAAA4I,aAAAI,EAAAhJ,EAAAgJ,sBAAAE,EAAAlJ,EAAAkJ,gBAAAZ,EAAAtI,EAAAsI,aAEA,oBAAAe,QAAA,OAAAA,QAAA,MAAAA,OAAAhF,KAAA,CACA,GAAAgF,OAAAC,MACA,UAAAtS,MAAA,kEAGAqS,OAAAC,MAAAtJ,EACAqJ,OAAAE,cAAA,SAAAjF,EAAAkF,EAAAtH,GACA,IAAAoC,EAAAkB,YACA,OAAAvD,EAAAC,KAKAlC,EAAAyJ,MAAA,WACA,GAAArY,OAAAsY,cACA,UAAA1S,MAAA,sCA8CA,OA3CA5F,OAAAZ,iBAAA,sBAMA,OALAqR,EAAA7B,EAAAS,oBAAApG,QAAA,SAAAiN,GACA,GAAA5F,EAAA4F,EAAA,gBACA,OAAAW,EAAAX,KAGAzF,EAAA7B,EAAAW,qBAAAtG,QAAA,SAAAiN,GACA,GAAA5F,EAAA4F,EAAA,gBACA,OAAAW,EAAAX,OAIAhN,EAAAhK,SAAA0P,EAAAW,oBAAA,gBAAAsH,GACA3N,EAAAhK,SAAA0P,EAAAW,oBAAA,eAAAsH,GACA3N,EAAAhK,SAAA0P,EAAAY,sBAAA,gBAAAqH,GACA3N,EAAAhK,SAAA0P,EAAAY,sBAAA,eAAAqH,GACA3N,EAAAhK,SAAA0P,EAAAC,kBAAA,QAAA+H,GACA1N,EAAAhK,SAAA0P,EAAAC,kBAAA,QAAAuH,GACAlN,EAAAhK,SAAA0P,EAAAC,kBAAA,QAAAiJ,GACA5O,EAAAhK,SAAA0P,EAAAC,kBAAA,QAAAiI,GACA5N,EAAAhK,SAAA0P,EAAAC,kBAAA,QAAA2I,GACAtO,EAAAhK,SAAA0P,EAAAC,kBAAA,QAAAqI,GACAhO,EAAAhK,SAAA0P,EAAAE,oBAAA,QAAA8H,GACA1N,EAAAhK,SAAA0P,EAAAE,oBAAA,QAAAsH,GACAlN,EAAAhK,SAAA0P,EAAAE,oBAAA,QAAAgI,GACA5N,EAAAhK,SAAA0P,EAAAE,oBAAA,QAAA0I,GACAtO,EAAAhK,SAAA0P,EAAAK,oBAAA,SAAA2H,GACA1N,EAAAhK,SAAA0P,EAAAK,oBAAA,SAAAmH,GACAlN,EAAAhK,SAAA0P,EAAAK,oBAAA,SAAAuI,GACAtO,EAAAhK,SAAA0P,EAAAM,mBAAA,SAAA0H,GACA1N,EAAAhK,SAAA0P,EAAAM,mBAAA,SAAAkH,GACAlN,EAAAhK,SAAA0P,EAAAM,mBAAA,SAAAsI,GACAtO,EAAAhK,SAAA0P,EAAAM,mBAAA,kBAAA7J,GACA,OAAAkT,WAAA,WACA,OAAAzB,EAAAzR,IACW,MAEX6D,EAAAhK,SAAA0P,EAAAM,mBAAA,YAAA4H,GACA5N,EAAAhK,SAAA0P,EAAAM,mBAAA,gBAAA2H,GACA3N,EAAAhK,SAAA0P,EAAAO,uBAAA,QAAAyH,GACA1N,EAAAhK,SAAA0P,EAAAO,uBAAA,QAAAiH,GACAlN,EAAAhK,SAAA0P,EAAAO,uBAAA,QAAAyI,GACA1Y,SAAAE,iBAAA,mBAAA6R,GACAjR,OAAAsY,eAAA,GAGAtY,OAAA4O,WAAAyC,EAAAnS,SAAA,yBACA0P,EAAAyJ,SAEKxT,KAAA8J,QACF9J,KAAA8J,MAE6B9P,EAAAC,QAChCD,EAAAC,QAAA8P,OAEgB7N,KAAA2N,EAAA,mBAAZD,EAAA,GAAYA,EAAA5J,KAAA/F,EAAAO,EAAAP,EAAAD,GAAA4P,KAAA5P,EAAAC,QAAA4P,KAEf7J,KAAA8J,sCCrvBDtP,EAAAG,EAAAD,EAAA,sBAAAiZ,IAAAnZ,EAAAG,EAAAD,EAAA,sBAAAkZ,IAAApZ,EAAAG,EAAAD,EAAA,sBAAAmZ,IAAArZ,EAAAG,EAAAD,EAAA,sBAAAoZ,IAAAtZ,EAAAG,EAAAD,EAAA,sBAAAqZ,IAAAvZ,EAAAG,EAAAD,EAAA,sBAAAsZ,IAAAxZ,EAAAG,EAAAD,EAAA,sBAAAuZ,IAAO,IAAAN,EAAA,SAAA1T,GACP,YAAAA,EAAA3D,OAAA,GAAA2D,EAAA,IAAAA,GAEO2T,EAAA,SAAA3T,GACP,YAAAA,EAAA3D,OAAA,GAAA2D,EAAAhC,OAAA,GAAAgC,GAEO4T,EAAA,SAAA5T,EAAAiU,GACP,WAAAC,OAAA,IAAAD,EAAA,qBAAAE,KAAAnU,IAEO6T,EAAA,SAAA7T,EAAAiU,GACP,OAAAL,EAAA5T,EAAAiU,GAAAjU,EAAAhC,OAAAiW,EAAArX,QAAAoD,GAEO8T,EAAA,SAAA9T,GACP,YAAAA,EAAA3D,OAAA2D,EAAApD,OAAA,GAAAoD,EAAAiC,MAAA,MAAAjC,GAEO+T,EAAA,SAAA/T,GACP,IAAA5D,EAAA4D,GAAA,IACAI,EAAA,GACAC,EAAA,GACA+T,EAAAhY,EAAAL,QAAA,MAEA,IAAAqY,IACA/T,EAAAjE,EAAA4B,OAAAoW,GACAhY,IAAA4B,OAAA,EAAAoW,IAGA,IAAAtR,EAAA1G,EAAAL,QAAA,KAOA,OALA,IAAA+G,IACA1C,EAAAhE,EAAA4B,OAAA8E,GACA1G,IAAA4B,OAAA,EAAA8E,IAGA,CACA1G,WACAgE,OAAA,MAAAA,EAAA,GAAAA,EACAC,KAAA,MAAAA,EAAA,GAAAA,IAGO2T,EAAA,SAAA9T,GACP,IAAA9D,EAAA8D,EAAA9D,SACAgE,EAAAF,EAAAE,OACAC,EAAAH,EAAAG,KACAL,EAAA5D,GAAA,IAGA,OAFAgE,GAAA,MAAAA,IAAAJ,GAAA,MAAAI,EAAA/D,OAAA,GAAA+D,EAAA,IAAAA,GACAC,GAAA,MAAAA,IAAAL,GAAA,MAAAK,EAAAhE,OAAA,GAAAgE,EAAA,IAAAA,GACAL","file":"core/modal.js","sourcesContent":["/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n'use strict';\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function warning() {};\n\nif (process.env.NODE_ENV !== 'production') {\n  warning = function warning(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n\n    if (format === undefined) {\n      throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n    }\n\n    if (format.length < 10 || /^[s\\W]*$/.test(format)) {\n      throw new Error('The warning format should be able to uniquely identify this ' + 'warning. Please, use a more descriptive format than: ' + format);\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' + format.replace(/%s/g, function () {\n        return args[argIndex++];\n      });\n\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n\n      try {\n        // This error was thrown as a convenience so that you can use this stack\n        // to find the callsite that caused this warning to fire.\n        throw new Error(message);\n      } catch (x) {}\n    }\n  };\n}\n\nmodule.exports = warning;","export default function ready(loaded) {\n  if (['interactive', 'complete'].includes(document.readyState)) {\n    loaded();\n  } else {\n    document.addEventListener('DOMContentLoaded', loaded);\n  }\n}\n","export var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport var addEventListener = function addEventListener(node, event, listener) {\n  return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\nexport var removeEventListener = function removeEventListener(node, event, listener) {\n  return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\nexport var getConfirmation = function getConfirmation(message, callback) {\n  return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nexport var supportsHistory = function supportsHistory() {\n  var ua = window.navigator.userAgent;\n  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n  return window.history && 'pushState' in window.history;\n};\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nexport var supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n  return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nexport var supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n  return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nexport var isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n  return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};","function isAbsolute(pathname) {\n  return pathname.charAt(0) === '/';\n} // About 1.5x faster than the two-arg version of Array#splice()\n\n\nfunction spliceOne(list, index) {\n  for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n    list[i] = list[k];\n  }\n\n  list.pop();\n} // This implementation is based heavily on node's url.parse\n\n\nfunction resolvePathname(to) {\n  var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n  var toParts = to && to.split('/') || [];\n  var fromParts = from && from.split('/') || [];\n  var isToAbs = to && isAbsolute(to);\n  var isFromAbs = from && isAbsolute(from);\n  var mustEndAbs = isToAbs || isFromAbs;\n\n  if (to && isAbsolute(to)) {\n    // to is absolute\n    fromParts = toParts;\n  } else if (toParts.length) {\n    // to is relative, drop the filename\n    fromParts.pop();\n    fromParts = fromParts.concat(toParts);\n  }\n\n  if (!fromParts.length) return '/';\n  var hasTrailingSlash = void 0;\n\n  if (fromParts.length) {\n    var last = fromParts[fromParts.length - 1];\n    hasTrailingSlash = last === '.' || last === '..' || last === '';\n  } else {\n    hasTrailingSlash = false;\n  }\n\n  var up = 0;\n\n  for (var i = fromParts.length; i >= 0; i--) {\n    var part = fromParts[i];\n\n    if (part === '.') {\n      spliceOne(fromParts, i);\n    } else if (part === '..') {\n      spliceOne(fromParts, i);\n      up++;\n    } else if (up) {\n      spliceOne(fromParts, i);\n      up--;\n    }\n  }\n\n  if (!mustEndAbs) for (; up--; up) {\n    fromParts.unshift('..');\n  }\n  if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n  var result = fromParts.join('/');\n  if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n  return result;\n}\n\nexport default resolvePathname;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n  return typeof obj;\n} : function (obj) {\n  return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nfunction valueEqual(a, b) {\n  if (a === b) return true;\n  if (a == null || b == null) return false;\n\n  if (Array.isArray(a)) {\n    return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n      return valueEqual(item, b[index]);\n    });\n  }\n\n  var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n  var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n  if (aType !== bType) return false;\n\n  if (aType === 'object') {\n    var aValue = a.valueOf();\n    var bValue = b.valueOf();\n    if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n    var aKeys = Object.keys(a);\n    var bKeys = Object.keys(b);\n    if (aKeys.length !== bKeys.length) return false;\n    return aKeys.every(function (key) {\n      return valueEqual(a[key], b[key]);\n    });\n  }\n\n  return false;\n}\n\nexport default valueEqual;","var _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport { parsePath } from './PathUtils';\nexport var createLocation = function createLocation(path, state, key, currentLocation) {\n  var location = void 0;\n\n  if (typeof path === 'string') {\n    // Two-arg form: push(path, state)\n    location = parsePath(path);\n    location.state = state;\n  } else {\n    // One-arg form: push(location)\n    location = _extends({}, path);\n    if (location.pathname === undefined) location.pathname = '';\n\n    if (location.search) {\n      if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n    } else {\n      location.search = '';\n    }\n\n    if (location.hash) {\n      if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n    } else {\n      location.hash = '';\n    }\n\n    if (state !== undefined && location.state === undefined) location.state = state;\n  }\n\n  try {\n    location.pathname = decodeURI(location.pathname);\n  } catch (e) {\n    if (e instanceof URIError) {\n      throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n    } else {\n      throw e;\n    }\n  }\n\n  if (key) location.key = key;\n\n  if (currentLocation) {\n    // Resolve incomplete/relative pathname relative to current location.\n    if (!location.pathname) {\n      location.pathname = currentLocation.pathname;\n    } else if (location.pathname.charAt(0) !== '/') {\n      location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n    }\n  } else {\n    // When there is no prior location and pathname is empty, set it to /\n    if (!location.pathname) {\n      location.pathname = '/';\n    }\n  }\n\n  return location;\n};\nexport var locationsAreEqual = function locationsAreEqual(a, b) {\n  return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function invariant(condition, format, a, b, c, d, e, f) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n\n    if (format === undefined) {\n      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(format.replace(/%s/g, function () {\n        return args[argIndex++];\n      }));\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n\n    throw error;\n  }\n};\n\nmodule.exports = invariant;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.toArray = toArray;\nexports.length = length;\nexports.substring = substring;\nexports.substr = substr;\nexports.limit = limit;\nexports.indexOf = indexOf;\n\nvar _unicodeAstralRegex = require('unicode-astral-regex');\n\nvar _unicodeAstralRegex2 = _interopRequireDefault(_unicodeAstralRegex);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\n/**\n * Converts a string to an array of string chars\n * @param {string} str The string to turn into array\n * @returns {string[]}\n */\n\n\nfunction toArray(str) {\n  if (typeof str !== 'string') {\n    throw new Error('A string is expected as input');\n  }\n\n  return str.match(_unicodeAstralRegex2.default) || [];\n}\n/**\n * Returns the length of a string\n *\n * @export\n * @param {string} str\n * @returns {number}\n */\n\n\nfunction length(str) {\n  // Check for input\n  if (typeof str !== 'string') {\n    throw new Error('Input must be a string');\n  }\n\n  var match = str.match(_unicodeAstralRegex2.default);\n  return match === null ? 0 : match.length;\n}\n/**\n * Returns a substring by providing start and end position\n *\n * @export\n * @param {string} str\n * @param {number} [begin=0] Starting position\n * @param {number} end End position\n * @returns {string}\n */\n\n\nfunction substring(str) {\n  var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var end = arguments[2]; // Check for input\n\n  if (typeof str !== 'string') {\n    throw new Error('Input must be a string');\n  } // Even though negative numbers work here, theyre not in the spec\n\n\n  if (typeof begin !== 'number' || begin < 0) {\n    begin = 0;\n  }\n\n  if (typeof end === 'number' && end < 0) {\n    end = 0;\n  }\n\n  var match = str.match(_unicodeAstralRegex2.default);\n  if (!match) return '';\n  return match.slice(begin, end).join('');\n}\n/**\n * Returns a substring by providing start position and length\n *\n * @export\n * @param {string} str\n * @param {number} [begin=0] Starting position\n * @param {number} len Desired length\n * @returns {string}\n */\n\n\nfunction substr(str) {\n  var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var len = arguments[2]; // Check for input\n\n  if (typeof str !== 'string') {\n    throw new Error('Input must be a string');\n  }\n\n  var strLength = length(str); // Fix type\n\n  if (typeof begin !== 'number') {\n    begin = parseInt(begin, 10);\n  } // Return zero-length string if got oversize number.\n\n\n  if (begin >= strLength) {\n    return '';\n  } // Calculating postive version of negative value.\n\n\n  if (begin < 0) {\n    begin += strLength;\n  }\n\n  var end = void 0;\n\n  if (typeof len === 'undefined') {\n    end = strLength;\n  } else {\n    // Fix type\n    if (typeof len !== 'number') {\n      len = parseInt(len, 10);\n    }\n\n    end = len >= 0 ? len + begin : begin;\n  }\n\n  var match = str.match(_unicodeAstralRegex2.default);\n  if (!match) return '';\n  return match.slice(begin, end).join('');\n}\n/**\n * Enforces a string to be a certain length by\n * adding or removing characters\n *\n * @export\n * @param {string} str\n * @param {number} [limit=16] Limit\n * @param {string} [padString='#'] The Pad String\n * @param {string} [padPosition='right'] The Pad Position\n * @returns {string}\n */\n\n\nfunction limit(str) {\n  var limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 16;\n  var padString = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '#';\n  var padPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'right'; // Input should be a string, limit should be a number\n\n  if (typeof str !== 'string' || typeof limit !== 'number') {\n    throw new Error('Invalid arguments specified');\n  } // Pad position should be either left or right\n\n\n  if (['left', 'right'].indexOf(padPosition) === -1) {\n    throw new Error('Pad position should be either left or right');\n  } // Pad string can be anything, we convert it to string\n\n\n  if (typeof padString !== 'string') {\n    padString = String(padString);\n  } // Calculate string length considering astral code points\n\n\n  var strLength = length(str);\n\n  if (strLength > limit) {\n    return substring(str, 0, limit);\n  } else if (strLength < limit) {\n    var padRepeats = padString.repeat(limit - strLength);\n    return padPosition === 'left' ? padRepeats + str : str + padRepeats;\n  }\n\n  return str;\n}\n/**\n * Returns the index of the first occurrence of a given string\n *\n * @export\n * @param {string} str\n * @param {string} [searchStr] the string to search\n * @param {number} [pos] starting position\n * @returns {number}\n */\n\n\nfunction indexOf(str, searchStr, pos) {\n  if (typeof str !== 'string') {\n    throw new Error('Input must be a string');\n  }\n\n  if (str === '') {\n    if (searchStr === '') {\n      return 0;\n    }\n\n    return -1;\n  } // fix type\n\n\n  pos = parseInt(pos, 10);\n  pos = isNaN(pos) ? 0 : pos;\n  searchStr = String(searchStr);\n  var strArr = str.match(_unicodeAstralRegex2.default);\n\n  if (pos >= strArr.length) {\n    if (searchStr === '') {\n      return strArr.length;\n    }\n\n    return -1;\n  }\n\n  if (searchStr === '') {\n    return pos;\n  }\n\n  var searchArr = searchStr.match(_unicodeAstralRegex2.default);\n  var finded = false;\n  var index = void 0;\n\n  for (index = pos; index < strArr.length; index += 1) {\n    var searchIndex = 0;\n\n    while (searchIndex < searchArr.length && searchArr[searchIndex] === strArr[index + searchIndex]) {\n      searchIndex += 1;\n    }\n\n    if (searchIndex === searchArr.length && searchArr[searchIndex - 1] === strArr[index + searchIndex - 1]) {\n      finded = true;\n      break;\n    }\n  }\n\n  return finded ? index : -1;\n}","import warning from 'warning';\n\nvar createTransitionManager = function createTransitionManager() {\n  var prompt = null;\n\n  var setPrompt = function setPrompt(nextPrompt) {\n    warning(prompt == null, 'A history supports only one prompt at a time');\n    prompt = nextPrompt;\n    return function () {\n      if (prompt === nextPrompt) prompt = null;\n    };\n  };\n\n  var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n    // TODO: If another transition starts while we're still confirming\n    // the previous one, we may end up in a weird state. Figure out the\n    // best way to handle this.\n    if (prompt != null) {\n      var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n      if (typeof result === 'string') {\n        if (typeof getUserConfirmation === 'function') {\n          getUserConfirmation(result, callback);\n        } else {\n          warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n          callback(true);\n        }\n      } else {\n        // Return false from a transition hook to cancel the transition.\n        callback(result !== false);\n      }\n    } else {\n      callback(true);\n    }\n  };\n\n  var listeners = [];\n\n  var appendListener = function appendListener(fn) {\n    var isActive = true;\n\n    var listener = function listener() {\n      if (isActive) fn.apply(undefined, arguments);\n    };\n\n    listeners.push(listener);\n    return function () {\n      isActive = false;\n      listeners = listeners.filter(function (item) {\n        return item !== listener;\n      });\n    };\n  };\n\n  var notifyListeners = function notifyListeners() {\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    listeners.forEach(function (listener) {\n      return listener.apply(undefined, args);\n    });\n  };\n\n  return {\n    setPrompt: setPrompt,\n    confirmTransitionTo: confirmTransitionTo,\n    appendListener: appendListener,\n    notifyListeners: notifyListeners\n  };\n};\n\nexport default createTransitionManager;","// Borrowed from:\n// https://github.com/lodash/lodash/blob/master/lodash.js\n// https://github.com/mathiasbynens/regenerate\n// https://mathiasbynens.be/notes/javascript-unicode\nmodule.exports = /\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]?|[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?)*/g;","//  This file will be loaded on public pages, regardless of theme.\n\nimport createHistory from 'history/createBrowserHistory';\nimport ready from '../mastodon/ready';\n\nconst { delegate } = require('rails-ujs');\nconst { length } = require('stringz');\n\ndelegate(document, '.webapp-btn', 'click', ({ target, button }) => {\n  if (button !== 0) {\n    return true;\n  }\n  window.location.href = target.href;\n  return false;\n});\n\ndelegate(document, '.status__content__spoiler-link', 'click', ({ target }) => {\n  const contentEl = target.parentNode.parentNode.querySelector('.e-content');\n\n  if (contentEl.style.display === 'block') {\n    contentEl.style.display = 'none';\n    target.parentNode.style.marginBottom = 0;\n  } else {\n    contentEl.style.display = 'block';\n    target.parentNode.style.marginBottom = null;\n  }\n\n  return false;\n});\n\ndelegate(document, '.modal-button', 'click', e => {\n  e.preventDefault();\n\n  let href;\n\n  if (e.target.nodeName !== 'A') {\n    href = e.target.parentNode.href;\n  } else {\n    href = e.target.href;\n  }\n\n  window.open(href, 'mastodon-intent', 'width=445,height=600,resizable=no,menubar=no,status=no,scrollbars=yes');\n});\n\nconst getProfileAvatarAnimationHandler = (swapTo) => {\n  //animate avatar gifs on the profile page when moused over\n  return ({ target }) => {\n    const swapSrc = target.getAttribute(swapTo);\n    //only change the img source if autoplay is off and the image src is actually different\n    if(target.getAttribute('data-autoplay') === 'false' && target.src !== swapSrc) {\n      target.src = swapSrc;\n    }\n  };\n};\n\ndelegate(document, 'img#profile_page_avatar', 'mouseover', getProfileAvatarAnimationHandler('data-original'));\n\ndelegate(document, 'img#profile_page_avatar', 'mouseout', getProfileAvatarAnimationHandler('data-static'));\n\ndelegate(document, '#account_header', 'change', ({ target }) => {\n  const header = document.querySelector('.card .card__img img');\n  const [file] = target.files || [];\n  const url = file ? URL.createObjectURL(file) : header.dataset.originalSrc;\n\n  header.src = url;\n});\n","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n  return typeof obj;\n} : function (obj) {\n  return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport { createLocation } from './LocationUtils';\nimport { addLeadingSlash, stripTrailingSlash, hasBasename, stripBasename, createPath } from './PathUtils';\nimport createTransitionManager from './createTransitionManager';\nimport { canUseDOM, addEventListener, removeEventListener, getConfirmation, supportsHistory, supportsPopStateOnHashChange, isExtraneousPopstateEvent } from './DOMUtils';\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n  try {\n    return window.history.state || {};\n  } catch (e) {\n    // IE 11 sometimes throws when accessing window.history.state\n    // See https://github.com/ReactTraining/history/pull/289\n    return {};\n  }\n};\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nvar createBrowserHistory = function createBrowserHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  invariant(canUseDOM, 'Browser history needs a DOM');\n  var globalHistory = window.history;\n  var canUseHistory = supportsHistory();\n  var needsHashChangeListener = !supportsPopStateOnHashChange();\n  var _props$forceRefresh = props.forceRefresh,\n      forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n      _props$getUserConfirm = props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === undefined ? getConfirmation : _props$getUserConfirm,\n      _props$keyLength = props.keyLength,\n      keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n  var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n  var getDOMLocation = function getDOMLocation(historyState) {\n    var _ref = historyState || {},\n        key = _ref.key,\n        state = _ref.state;\n\n    var _window$location = window.location,\n        pathname = _window$location.pathname,\n        search = _window$location.search,\n        hash = _window$location.hash;\n    var path = pathname + search + hash;\n    warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n    if (basename) path = stripBasename(path, basename);\n    return createLocation(path, state, key);\n  };\n\n  var createKey = function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  };\n\n  var transitionManager = createTransitionManager();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var handlePopState = function handlePopState(event) {\n    // Ignore extraneous popstate events in WebKit.\n    if (isExtraneousPopstateEvent(event)) return;\n    handlePop(getDOMLocation(event.state));\n  };\n\n  var handleHashChange = function handleHashChange() {\n    handlePop(getDOMLocation(getHistoryState()));\n  };\n\n  var forceNextPop = false;\n\n  var handlePop = function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({\n            action: action,\n            location: location\n          });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  };\n\n  var revertPop = function revertPop(fromLocation) {\n    var toLocation = history.location; // TODO: We could probably make this more reliable by\n    // keeping a list of keys we've seen in sessionStorage.\n    // Instead, we just default to 0 for keys we don't know.\n\n    var toIndex = allKeys.indexOf(toLocation.key);\n    if (toIndex === -1) toIndex = 0;\n    var fromIndex = allKeys.indexOf(fromLocation.key);\n    if (fromIndex === -1) fromIndex = 0;\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  };\n\n  var initialLocation = getDOMLocation(getHistoryState());\n  var allKeys = [initialLocation.key]; // Public interface\n\n  var createHref = function createHref(location) {\n    return basename + createPath(location);\n  };\n\n  var push = function push(path, state) {\n    warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n    var action = 'PUSH';\n    var location = createLocation(path, state, createKey(), history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n      if (canUseHistory) {\n        globalHistory.pushState({\n          key: key,\n          state: state\n        }, null, href);\n\n        if (forceRefresh) {\n          window.location.href = href;\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n          var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n          nextKeys.push(location.key);\n          allKeys = nextKeys;\n          setState({\n            action: action,\n            location: location\n          });\n        }\n      } else {\n        warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n        window.location.href = href;\n      }\n    });\n  };\n\n  var replace = function replace(path, state) {\n    warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n    var action = 'REPLACE';\n    var location = createLocation(path, state, createKey(), history.location);\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n      if (canUseHistory) {\n        globalHistory.replaceState({\n          key: key,\n          state: state\n        }, null, href);\n\n        if (forceRefresh) {\n          window.location.replace(href);\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n          if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n          setState({\n            action: action,\n            location: location\n          });\n        }\n      } else {\n        warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n        window.location.replace(href);\n      }\n    });\n  };\n\n  var go = function go(n) {\n    globalHistory.go(n);\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var listenerCount = 0;\n\n  var checkDOMListeners = function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1) {\n      addEventListener(window, PopStateEvent, handlePopState);\n      if (needsHashChangeListener) addEventListener(window, HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      removeEventListener(window, PopStateEvent, handlePopState);\n      if (needsHashChangeListener) removeEventListener(window, HashChangeEvent, handleHashChange);\n    }\n  };\n\n  var isBlocked = false;\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  };\n\n  var listen = function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  };\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n  return history;\n};\n\nexport default createBrowserHistory;","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/master/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n(function () {\n  var context = this;\n  (function () {\n    (function () {\n      this.Rails = {\n        linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n        buttonClickSelector: {\n          selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n          exclude: 'form button'\n        },\n        inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n        formSubmitSelector: 'form',\n        formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n        formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n        formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n        fileInputSelector: 'input[name][type=file]:not([disabled])',\n        linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n        buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n      };\n    }).call(this);\n  }).call(context);\n  var Rails = context.Rails;\n  (function () {\n    (function () {\n      var cspNonce;\n\n      cspNonce = Rails.cspNonce = function () {\n        var meta;\n        meta = document.querySelector('meta[name=csp-nonce]');\n        return meta && meta.content;\n      };\n    }).call(this);\n    (function () {\n      var expando, m;\n      m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n      Rails.matches = function (element, selector) {\n        if (selector.exclude != null) {\n          return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n        } else {\n          return m.call(element, selector);\n        }\n      };\n\n      expando = '_ujsData';\n\n      Rails.getData = function (element, key) {\n        var ref;\n        return (ref = element[expando]) != null ? ref[key] : void 0;\n      };\n\n      Rails.setData = function (element, key, value) {\n        if (element[expando] == null) {\n          element[expando] = {};\n        }\n\n        return element[expando][key] = value;\n      };\n\n      Rails.$ = function (selector) {\n        return Array.prototype.slice.call(document.querySelectorAll(selector));\n      };\n    }).call(this);\n    (function () {\n      var $, csrfParam, csrfToken;\n      $ = Rails.$;\n\n      csrfToken = Rails.csrfToken = function () {\n        var meta;\n        meta = document.querySelector('meta[name=csrf-token]');\n        return meta && meta.content;\n      };\n\n      csrfParam = Rails.csrfParam = function () {\n        var meta;\n        meta = document.querySelector('meta[name=csrf-param]');\n        return meta && meta.content;\n      };\n\n      Rails.CSRFProtection = function (xhr) {\n        var token;\n        token = csrfToken();\n\n        if (token != null) {\n          return xhr.setRequestHeader('X-CSRF-Token', token);\n        }\n      };\n\n      Rails.refreshCSRFTokens = function () {\n        var param, token;\n        token = csrfToken();\n        param = csrfParam();\n\n        if (token != null && param != null) {\n          return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n            return input.value = token;\n          });\n        }\n      };\n    }).call(this);\n    (function () {\n      var CustomEvent, fire, matches, preventDefault;\n      matches = Rails.matches;\n      CustomEvent = window.CustomEvent;\n\n      if (typeof CustomEvent !== 'function') {\n        CustomEvent = function CustomEvent(event, params) {\n          var evt;\n          evt = document.createEvent('CustomEvent');\n          evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n          return evt;\n        };\n\n        CustomEvent.prototype = window.Event.prototype;\n        preventDefault = CustomEvent.prototype.preventDefault;\n\n        CustomEvent.prototype.preventDefault = function () {\n          var result;\n          result = preventDefault.call(this);\n\n          if (this.cancelable && !this.defaultPrevented) {\n            Object.defineProperty(this, 'defaultPrevented', {\n              get: function get() {\n                return true;\n              }\n            });\n          }\n\n          return result;\n        };\n      }\n\n      fire = Rails.fire = function (obj, name, data) {\n        var event;\n        event = new CustomEvent(name, {\n          bubbles: true,\n          cancelable: true,\n          detail: data\n        });\n        obj.dispatchEvent(event);\n        return !event.defaultPrevented;\n      };\n\n      Rails.stopEverything = function (e) {\n        fire(e.target, 'ujs:everythingStopped');\n        e.preventDefault();\n        e.stopPropagation();\n        return e.stopImmediatePropagation();\n      };\n\n      Rails.delegate = function (element, selector, eventType, handler) {\n        return element.addEventListener(eventType, function (e) {\n          var target;\n          target = e.target;\n\n          while (!(!(target instanceof Element) || matches(target, selector))) {\n            target = target.parentNode;\n          }\n\n          if (target instanceof Element && handler.call(target, e) === false) {\n            e.preventDefault();\n            return e.stopPropagation();\n          }\n        });\n      };\n    }).call(this);\n    (function () {\n      var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n      cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n      AcceptHeaders = {\n        '*': '*/*',\n        text: 'text/plain',\n        html: 'text/html',\n        xml: 'application/xml, text/xml',\n        json: 'application/json, text/javascript',\n        script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n      };\n\n      Rails.ajax = function (options) {\n        var xhr;\n        options = prepareOptions(options);\n        xhr = createXHR(options, function () {\n          var ref, response;\n          response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n          if (Math.floor(xhr.status / 100) === 2) {\n            if (typeof options.success === \"function\") {\n              options.success(response, xhr.statusText, xhr);\n            }\n          } else {\n            if (typeof options.error === \"function\") {\n              options.error(response, xhr.statusText, xhr);\n            }\n          }\n\n          return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n        });\n\n        if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n          return false;\n        }\n\n        if (xhr.readyState === XMLHttpRequest.OPENED) {\n          return xhr.send(options.data);\n        }\n      };\n\n      prepareOptions = function prepareOptions(options) {\n        options.url = options.url || location.href;\n        options.type = options.type.toUpperCase();\n\n        if (options.type === 'GET' && options.data) {\n          if (options.url.indexOf('?') < 0) {\n            options.url += '?' + options.data;\n          } else {\n            options.url += '&' + options.data;\n          }\n        }\n\n        if (AcceptHeaders[options.dataType] == null) {\n          options.dataType = '*';\n        }\n\n        options.accept = AcceptHeaders[options.dataType];\n\n        if (options.dataType !== '*') {\n          options.accept += ', */*; q=0.01';\n        }\n\n        return options;\n      };\n\n      createXHR = function createXHR(options, done) {\n        var xhr;\n        xhr = new XMLHttpRequest();\n        xhr.open(options.type, options.url, true);\n        xhr.setRequestHeader('Accept', options.accept);\n\n        if (typeof options.data === 'string') {\n          xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n        }\n\n        if (!options.crossDomain) {\n          xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n        }\n\n        CSRFProtection(xhr);\n        xhr.withCredentials = !!options.withCredentials;\n\n        xhr.onreadystatechange = function () {\n          if (xhr.readyState === XMLHttpRequest.DONE) {\n            return done(xhr);\n          }\n        };\n\n        return xhr;\n      };\n\n      processResponse = function processResponse(response, type) {\n        var parser, script;\n\n        if (typeof response === 'string' && typeof type === 'string') {\n          if (type.match(/\\bjson\\b/)) {\n            try {\n              response = JSON.parse(response);\n            } catch (error) {}\n          } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n            script = document.createElement('script');\n            script.setAttribute('nonce', cspNonce());\n            script.text = response;\n            document.head.appendChild(script).parentNode.removeChild(script);\n          } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n            parser = new DOMParser();\n            type = type.replace(/;.+/, '');\n\n            try {\n              response = parser.parseFromString(response, type);\n            } catch (error) {}\n          }\n        }\n\n        return response;\n      };\n\n      Rails.href = function (element) {\n        return element.href;\n      };\n\n      Rails.isCrossDomain = function (url) {\n        var e, originAnchor, urlAnchor;\n        originAnchor = document.createElement('a');\n        originAnchor.href = location.href;\n        urlAnchor = document.createElement('a');\n\n        try {\n          urlAnchor.href = url;\n          return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n        } catch (error) {\n          e = error;\n          return true;\n        }\n      };\n    }).call(this);\n    (function () {\n      var matches, toArray;\n      matches = Rails.matches;\n\n      toArray = function toArray(e) {\n        return Array.prototype.slice.call(e);\n      };\n\n      Rails.serializeElement = function (element, additionalParam) {\n        var inputs, params;\n        inputs = [element];\n\n        if (matches(element, 'form')) {\n          inputs = toArray(element.elements);\n        }\n\n        params = [];\n        inputs.forEach(function (input) {\n          if (!input.name || input.disabled) {\n            return;\n          }\n\n          if (matches(input, 'select')) {\n            return toArray(input.options).forEach(function (option) {\n              if (option.selected) {\n                return params.push({\n                  name: input.name,\n                  value: option.value\n                });\n              }\n            });\n          } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n            return params.push({\n              name: input.name,\n              value: input.value\n            });\n          }\n        });\n\n        if (additionalParam) {\n          params.push(additionalParam);\n        }\n\n        return params.map(function (param) {\n          if (param.name != null) {\n            return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n          } else {\n            return param;\n          }\n        }).join('&');\n      };\n\n      Rails.formElements = function (form, selector) {\n        if (matches(form, 'form')) {\n          return toArray(form.elements).filter(function (el) {\n            return matches(el, selector);\n          });\n        } else {\n          return toArray(form.querySelectorAll(selector));\n        }\n      };\n    }).call(this);\n    (function () {\n      var allowAction, fire, stopEverything;\n      fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n      Rails.handleConfirm = function (e) {\n        if (!allowAction(this)) {\n          return stopEverything(e);\n        }\n      };\n\n      allowAction = function allowAction(element) {\n        var answer, callback, message;\n        message = element.getAttribute('data-confirm');\n\n        if (!message) {\n          return true;\n        }\n\n        answer = false;\n\n        if (fire(element, 'confirm')) {\n          try {\n            answer = confirm(message);\n          } catch (error) {}\n\n          callback = fire(element, 'confirm:complete', [answer]);\n        }\n\n        return answer && callback;\n      };\n    }).call(this);\n    (function () {\n      var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, matches, setData, stopEverything;\n      matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n      Rails.handleDisabledElement = function (e) {\n        var element;\n        element = this;\n\n        if (element.disabled) {\n          return stopEverything(e);\n        }\n      };\n\n      Rails.enableElement = function (e) {\n        var element;\n        element = e instanceof Event ? e.target : e;\n\n        if (matches(element, Rails.linkDisableSelector)) {\n          return enableLinkElement(element);\n        } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n          return enableFormElement(element);\n        } else if (matches(element, Rails.formSubmitSelector)) {\n          return enableFormElements(element);\n        }\n      };\n\n      Rails.disableElement = function (e) {\n        var element;\n        element = e instanceof Event ? e.target : e;\n\n        if (matches(element, Rails.linkDisableSelector)) {\n          return disableLinkElement(element);\n        } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n          return disableFormElement(element);\n        } else if (matches(element, Rails.formSubmitSelector)) {\n          return disableFormElements(element);\n        }\n      };\n\n      disableLinkElement = function disableLinkElement(element) {\n        var replacement;\n        replacement = element.getAttribute('data-disable-with');\n\n        if (replacement != null) {\n          setData(element, 'ujs:enable-with', element.innerHTML);\n          element.innerHTML = replacement;\n        }\n\n        element.addEventListener('click', stopEverything);\n        return setData(element, 'ujs:disabled', true);\n      };\n\n      enableLinkElement = function enableLinkElement(element) {\n        var originalText;\n        originalText = getData(element, 'ujs:enable-with');\n\n        if (originalText != null) {\n          element.innerHTML = originalText;\n          setData(element, 'ujs:enable-with', null);\n        }\n\n        element.removeEventListener('click', stopEverything);\n        return setData(element, 'ujs:disabled', null);\n      };\n\n      disableFormElements = function disableFormElements(form) {\n        return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n      };\n\n      disableFormElement = function disableFormElement(element) {\n        var replacement;\n        replacement = element.getAttribute('data-disable-with');\n\n        if (replacement != null) {\n          if (matches(element, 'button')) {\n            setData(element, 'ujs:enable-with', element.innerHTML);\n            element.innerHTML = replacement;\n          } else {\n            setData(element, 'ujs:enable-with', element.value);\n            element.value = replacement;\n          }\n        }\n\n        element.disabled = true;\n        return setData(element, 'ujs:disabled', true);\n      };\n\n      enableFormElements = function enableFormElements(form) {\n        return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n      };\n\n      enableFormElement = function enableFormElement(element) {\n        var originalText;\n        originalText = getData(element, 'ujs:enable-with');\n\n        if (originalText != null) {\n          if (matches(element, 'button')) {\n            element.innerHTML = originalText;\n          } else {\n            element.value = originalText;\n          }\n\n          setData(element, 'ujs:enable-with', null);\n        }\n\n        element.disabled = false;\n        return setData(element, 'ujs:disabled', null);\n      };\n    }).call(this);\n    (function () {\n      var stopEverything;\n      stopEverything = Rails.stopEverything;\n\n      Rails.handleMethod = function (e) {\n        var csrfParam, csrfToken, form, formContent, href, link, method;\n        link = this;\n        method = link.getAttribute('data-method');\n\n        if (!method) {\n          return;\n        }\n\n        href = Rails.href(link);\n        csrfToken = Rails.csrfToken();\n        csrfParam = Rails.csrfParam();\n        form = document.createElement('form');\n        formContent = \"<input name='_method' value='\" + method + \"' type='hidden' />\";\n\n        if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n          formContent += \"<input name='\" + csrfParam + \"' value='\" + csrfToken + \"' type='hidden' />\";\n        }\n\n        formContent += '<input type=\"submit\" />';\n        form.method = 'post';\n        form.action = href;\n        form.target = link.target;\n        form.innerHTML = formContent;\n        form.style.display = 'none';\n        document.body.appendChild(form);\n        form.querySelector('[type=\"submit\"]').click();\n        return stopEverything(e);\n      };\n    }).call(this);\n    (function () {\n      var ajax,\n          fire,\n          getData,\n          isCrossDomain,\n          isRemote,\n          matches,\n          serializeElement,\n          setData,\n          stopEverything,\n          slice = [].slice;\n      matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n      isRemote = function isRemote(element) {\n        var value;\n        value = element.getAttribute('data-remote');\n        return value != null && value !== 'false';\n      };\n\n      Rails.handleRemote = function (e) {\n        var button, data, dataType, element, method, url, withCredentials;\n        element = this;\n\n        if (!isRemote(element)) {\n          return true;\n        }\n\n        if (!fire(element, 'ajax:before')) {\n          fire(element, 'ajax:stopped');\n          return false;\n        }\n\n        withCredentials = element.getAttribute('data-with-credentials');\n        dataType = element.getAttribute('data-type') || 'script';\n\n        if (matches(element, Rails.formSubmitSelector)) {\n          button = getData(element, 'ujs:submit-button');\n          method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n          url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n          if (method.toUpperCase() === 'GET') {\n            url = url.replace(/\\?.*$/, '');\n          }\n\n          if (element.enctype === 'multipart/form-data') {\n            data = new FormData(element);\n\n            if (button != null) {\n              data.append(button.name, button.value);\n            }\n          } else {\n            data = serializeElement(element, button);\n          }\n\n          setData(element, 'ujs:submit-button', null);\n          setData(element, 'ujs:submit-button-formmethod', null);\n          setData(element, 'ujs:submit-button-formaction', null);\n        } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n          method = element.getAttribute('data-method');\n          url = element.getAttribute('data-url');\n          data = serializeElement(element, element.getAttribute('data-params'));\n        } else {\n          method = element.getAttribute('data-method');\n          url = Rails.href(element);\n          data = element.getAttribute('data-params');\n        }\n\n        ajax({\n          type: method || 'GET',\n          url: url,\n          data: data,\n          dataType: dataType,\n          beforeSend: function beforeSend(xhr, options) {\n            if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n              return fire(element, 'ajax:send', [xhr]);\n            } else {\n              fire(element, 'ajax:stopped');\n              return false;\n            }\n          },\n          success: function success() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:success', args);\n          },\n          error: function error() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:error', args);\n          },\n          complete: function complete() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:complete', args);\n          },\n          crossDomain: isCrossDomain(url),\n          withCredentials: withCredentials != null && withCredentials !== 'false'\n        });\n        return stopEverything(e);\n      };\n\n      Rails.formSubmitButtonClick = function (e) {\n        var button, form;\n        button = this;\n        form = button.form;\n\n        if (!form) {\n          return;\n        }\n\n        if (button.name) {\n          setData(form, 'ujs:submit-button', {\n            name: button.name,\n            value: button.value\n          });\n        }\n\n        setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n        setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n        return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n      };\n\n      Rails.handleMetaClick = function (e) {\n        var data, link, metaClick, method;\n        link = this;\n        method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n        data = link.getAttribute('data-params');\n        metaClick = e.metaKey || e.ctrlKey;\n\n        if (metaClick && method === 'GET' && !data) {\n          return e.stopImmediatePropagation();\n        }\n      };\n    }).call(this);\n    (function () {\n      var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMetaClick, handleMethod, handleRemote, refreshCSRFTokens;\n      fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMetaClick = Rails.handleMetaClick, handleMethod = Rails.handleMethod;\n\n      if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n        if (jQuery.rails) {\n          throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n        }\n\n        jQuery.rails = Rails;\n        jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n          if (!options.crossDomain) {\n            return CSRFProtection(xhr);\n          }\n        });\n      }\n\n      Rails.start = function () {\n        if (window._rails_loaded) {\n          throw new Error('rails-ujs has already been loaded!');\n        }\n\n        window.addEventListener('pageshow', function () {\n          $(Rails.formEnableSelector).forEach(function (el) {\n            if (getData(el, 'ujs:disabled')) {\n              return enableElement(el);\n            }\n          });\n          return $(Rails.linkDisableSelector).forEach(function (el) {\n            if (getData(el, 'ujs:disabled')) {\n              return enableElement(el);\n            }\n          });\n        });\n        delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n        delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n        delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.linkClickSelector, 'click', handleMetaClick);\n        delegate(document, Rails.linkClickSelector, 'click', disableElement);\n        delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n        delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n        delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n        delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n        delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n        delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n        delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n        delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n          return setTimeout(function () {\n            return disableElement(e);\n          }, 13);\n        });\n        delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n        delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n        document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n        return window._rails_loaded = true;\n      };\n\n      if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n        Rails.start();\n      }\n    }).call(this);\n  }).call(this);\n\n  if (typeof module === \"object\" && module.exports) {\n    module.exports = Rails;\n  } else if (typeof define === \"function\" && define.amd) {\n    define(Rails);\n  }\n}).call(this);","export var addLeadingSlash = function addLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path : '/' + path;\n};\nexport var stripLeadingSlash = function stripLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path.substr(1) : path;\n};\nexport var hasBasename = function hasBasename(path, prefix) {\n  return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n};\nexport var stripBasename = function stripBasename(path, prefix) {\n  return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n};\nexport var stripTrailingSlash = function stripTrailingSlash(path) {\n  return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\nexport var parsePath = function parsePath(path) {\n  var pathname = path || '/';\n  var search = '';\n  var hash = '';\n  var hashIndex = pathname.indexOf('#');\n\n  if (hashIndex !== -1) {\n    hash = pathname.substr(hashIndex);\n    pathname = pathname.substr(0, hashIndex);\n  }\n\n  var searchIndex = pathname.indexOf('?');\n\n  if (searchIndex !== -1) {\n    search = pathname.substr(searchIndex);\n    pathname = pathname.substr(0, searchIndex);\n  }\n\n  return {\n    pathname: pathname,\n    search: search === '?' ? '' : search,\n    hash: hash === '#' ? '' : hash\n  };\n};\nexport var createPath = function createPath(location) {\n  var pathname = location.pathname,\n      search = location.search,\n      hash = location.hash;\n  var path = pathname || '/';\n  if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n  if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n  return path;\n};"],"sourceRoot":""}
\ No newline at end of file