{
  "version": 3,
  "sources": ["../../../node_modules/@bugsnag/node_modules/browser-pack-flat/_prelude", "../../../node_modules/@bugsnag/browser/core/lib/breadcrumb-types.js", "../../../node_modules/@bugsnag/browser/core/lib/es-utils/reduce.js", "../../../node_modules/@bugsnag/browser/core/lib/es-utils/filter.js", "../../../node_modules/@bugsnag/browser/core/lib/es-utils/includes.js", "../../../node_modules/@bugsnag/browser/core/lib/es-utils/is-array.js", "../../../node_modules/@bugsnag/browser/core/lib/es-utils/keys.js", "../../../node_modules/@bugsnag/browser/core/lib/validators/int-range.js", "../../../node_modules/@bugsnag/browser/core/lib/validators/list-of-functions.js", "../../../node_modules/@bugsnag/browser/core/lib/validators/string-with-length.js", "../../../node_modules/@bugsnag/browser/core/config.js", "../../../node_modules/@bugsnag/browser/core/lib/es-utils/assign.js", "../../../node_modules/@bugsnag/browser/core/lib/es-utils/map.js", "../../../node_modules/@bugsnag/browser/dist/src/config.js", "../../../node_modules/@bugsnag/browser/core/breadcrumb.js", "../../../node_modules/@bugsnag/node_modules/stackframe/stackframe.js", "../../../node_modules/@bugsnag/node_modules/stack-generator/stack-generator.js", "../../../node_modules/@bugsnag/node_modules/error-stack-parser/error-stack-parser.js", "../../../node_modules/@bugsnag/browser/core/lib/error-stack-parser.js", "../../../node_modules/@bugsnag/node_modules/@bugsnag/safe-json-stringify/index.js", "../../../node_modules/@bugsnag/browser/core/lib/feature-flag-delegate.js", "../../../node_modules/@bugsnag/browser/core/lib/has-stack.js", "../../../node_modules/@bugsnag/node_modules/iserror/index.js", "../../../node_modules/@bugsnag/browser/core/lib/iserror.js", "../../../node_modules/@bugsnag/browser/core/lib/metadata-delegate.js", "../../../node_modules/@bugsnag/browser/core/event.js", "../../../node_modules/@bugsnag/browser/core/lib/async-every.js", "../../../node_modules/@bugsnag/browser/core/lib/callback-runner.js", "../../../node_modules/@bugsnag/browser/core/lib/sync-callback-runner.js", "../../../node_modules/@bugsnag/node_modules/@bugsnag/cuid/lib/pad.js", "../../../node_modules/@bugsnag/node_modules/@bugsnag/cuid/lib/fingerprint.browser.js", "../../../node_modules/@bugsnag/node_modules/@bugsnag/cuid/lib/is-cuid.js", "../../../node_modules/@bugsnag/node_modules/@bugsnag/cuid/index.js", "../../../node_modules/@bugsnag/browser/core/session.js", "../../../node_modules/@bugsnag/browser/core/client.js", "../../../node_modules/@bugsnag/browser/core/lib/json-payload.js", "../../../node_modules/@bugsnag/browser/delivery-x-domain-request/delivery.js", "../../../node_modules/@bugsnag/browser/delivery-xml-http-request/delivery.js", "../../../node_modules/@bugsnag/browser/plugin-app-duration/app.js", "../../../node_modules/@bugsnag/browser/plugin-browser-context/context.js", "../../../node_modules/@bugsnag/browser/plugin-browser-device/device.js", "../../../node_modules/@bugsnag/browser/plugin-browser-request/request.js", "../../../node_modules/@bugsnag/browser/plugin-browser-session/session.js", "../../../node_modules/@bugsnag/browser/plugin-client-ip/client-ip.js", "../../../node_modules/@bugsnag/browser/plugin-console-breadcrumbs/console-breadcrumbs.js", "../../../node_modules/@bugsnag/browser/plugin-inline-script-content/inline-script-content.js", "../../../node_modules/@bugsnag/browser/plugin-interaction-breadcrumbs/interaction-breadcrumbs.js", "../../../node_modules/@bugsnag/browser/plugin-navigation-breadcrumbs/navigation-breadcrumbs.js", "../../../node_modules/@bugsnag/browser/plugin-network-breadcrumbs/network-breadcrumbs.js", "../../../node_modules/@bugsnag/browser/plugin-simple-throttle/throttle.js", "../../../node_modules/@bugsnag/browser/plugin-strip-query-string/strip-query-string.js", "../../../node_modules/@bugsnag/browser/plugin-window-onerror/onerror.js", "../../../node_modules/@bugsnag/browser/plugin-window-unhandled-rejection/unhandled-rejection.js", "../../../node_modules/@bugsnag/browser/dist/src/notifier.js", "../../../node_modules/@bugsnag/node_modules/browser-pack-flat/_postlude", "../../javascript/bugsnag.js"],
  "sourcesContent": ["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Bugsnag = f()}})(function(){var define,module,exports;\n", "module.exports = ['navigation', 'request', 'process', 'log', 'user', 'state', 'error', 'manual']\n", "// Array#reduce\nmodule.exports = (arr, fn, accum) => {\n  let val = accum\n  for (let i = 0, len = arr.length; i < len; i++) val = fn(val, arr[i], i, arr)\n  return val\n}\n", "const reduce = require('./reduce')\n\n// Array#filter\nmodule.exports = (arr, fn) =>\n  reduce(arr, (accum, item, i, arr) => !fn(item, i, arr) ? accum : accum.concat(item), [])\n", "const reduce = require('./reduce')\n// Array#includes\nmodule.exports = (arr, x) =>\n  reduce(arr, (accum, item, i, arr) => accum === true || item === x, false)\n", "// Array#isArray\nmodule.exports = obj => Object.prototype.toString.call(obj) === '[object Array]'\n", "/* eslint-disable-next-line no-prototype-builtins */\nconst _hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString')\nconst _dontEnums = [\n  'toString', 'toLocaleString', 'valueOf', 'hasOwnProperty',\n  'isPrototypeOf', 'propertyIsEnumerable', 'constructor'\n]\n\n// Object#keys\nmodule.exports = obj => {\n  // stripped down version of\n  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/Keys\n  const result = []\n  let prop\n  for (prop in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, prop)) result.push(prop)\n  }\n  if (!_hasDontEnumBug) return result\n  for (let i = 0, len = _dontEnums.length; i < len; i++) {\n    if (Object.prototype.hasOwnProperty.call(obj, _dontEnums[i])) result.push(_dontEnums[i])\n  }\n  return result\n}\n", "module.exports = (min = 1, max = Infinity) => value =>\n  typeof value === 'number' &&\n  parseInt('' + value, 10) === value &&\n  value >= min && value <= max\n", "const filter = require('../es-utils/filter')\nconst isArray = require('../es-utils/is-array')\n\nmodule.exports = value => typeof value === 'function' || (isArray(value) && filter(value, f => typeof f === 'function').length === value.length)\n", "module.exports = value => typeof value === 'string' && !!value.length\n", "const filter = require('./lib/es-utils/filter')\nconst reduce = require('./lib/es-utils/reduce')\nconst keys = require('./lib/es-utils/keys')\nconst isArray = require('./lib/es-utils/is-array')\nconst includes = require('./lib/es-utils/includes')\nconst intRange = require('./lib/validators/int-range')\nconst stringWithLength = require('./lib/validators/string-with-length')\nconst listOfFunctions = require('./lib/validators/list-of-functions')\n\nconst BREADCRUMB_TYPES = require('./lib/breadcrumb-types')\nconst defaultErrorTypes = () => ({ unhandledExceptions: true, unhandledRejections: true })\n\nmodule.exports.schema = {\n  apiKey: {\n    defaultValue: () => null,\n    message: 'is required',\n    validate: stringWithLength\n  },\n  appVersion: {\n    defaultValue: () => undefined,\n    message: 'should be a string',\n    validate: value => value === undefined || stringWithLength(value)\n  },\n  appType: {\n    defaultValue: () => undefined,\n    message: 'should be a string',\n    validate: value => value === undefined || stringWithLength(value)\n  },\n  autoDetectErrors: {\n    defaultValue: () => true,\n    message: 'should be true|false',\n    validate: value => value === true || value === false\n  },\n  enabledErrorTypes: {\n    defaultValue: () => defaultErrorTypes(),\n    message: 'should be an object containing the flags { unhandledExceptions:true|false, unhandledRejections:true|false }',\n    allowPartialObject: true,\n    validate: value => {\n      // ensure we have an object\n      if (typeof value !== 'object' || !value) return false\n      const providedKeys = keys(value)\n      const defaultKeys = keys(defaultErrorTypes())\n      // ensure it only has a subset of the allowed keys\n      if (filter(providedKeys, k => includes(defaultKeys, k)).length < providedKeys.length) return false\n      // ensure all of the values are boolean\n      if (filter(keys(value), k => typeof value[k] !== 'boolean').length > 0) return false\n      return true\n    }\n  },\n  onError: {\n    defaultValue: () => [],\n    message: 'should be a function or array of functions',\n    validate: listOfFunctions\n  },\n  onSession: {\n    defaultValue: () => [],\n    message: 'should be a function or array of functions',\n    validate: listOfFunctions\n  },\n  onBreadcrumb: {\n    defaultValue: () => [],\n    message: 'should be a function or array of functions',\n    validate: listOfFunctions\n  },\n  endpoints: {\n    defaultValue: (endpoints) => {\n      // only apply the default value if no endpoints have been provided, otherwise prevent delivery by setting to null\n      if (typeof endpoints === 'undefined') {\n        return ({\n          notify: 'https://notify.bugsnag.com',\n          sessions: 'https://sessions.bugsnag.com'\n        })\n      } else {\n        return ({ notify: null, sessions: null })\n      }\n    },\n    message: 'should be an object containing endpoint URLs { notify, sessions }',\n    validate: (val) =>\n      // first, ensure it's an object\n      (val && typeof val === 'object') &&\n      (\n        // notify and sessions must always be set\n        stringWithLength(val.notify) && stringWithLength(val.sessions)\n      ) &&\n      // ensure no keys other than notify/session are set on endpoints object\n      filter(keys(val), k => !includes(['notify', 'sessions'], k)).length === 0\n  },\n  autoTrackSessions: {\n    defaultValue: val => true,\n    message: 'should be true|false',\n    validate: val => val === true || val === false\n  },\n  enabledReleaseStages: {\n    defaultValue: () => null,\n    message: 'should be an array of strings',\n    validate: value => value === null || (isArray(value) && filter(value, f => typeof f === 'string').length === value.length)\n  },\n  releaseStage: {\n    defaultValue: () => 'production',\n    message: 'should be a string',\n    validate: value => typeof value === 'string' && value.length\n  },\n  maxBreadcrumbs: {\n    defaultValue: () => 25,\n    message: 'should be a number ≤100',\n    validate: value => intRange(0, 100)(value)\n  },\n  enabledBreadcrumbTypes: {\n    defaultValue: () => BREADCRUMB_TYPES,\n    message: `should be null or a list of available breadcrumb types (${BREADCRUMB_TYPES.join(',')})`,\n    validate: value => value === null || (isArray(value) && reduce(value, (accum, maybeType) => {\n      if (accum === false) return accum\n      return includes(BREADCRUMB_TYPES, maybeType)\n    }, true))\n  },\n  context: {\n    defaultValue: () => undefined,\n    message: 'should be a string',\n    validate: value => value === undefined || typeof value === 'string'\n  },\n  user: {\n    defaultValue: () => ({}),\n    message: 'should be an object with { id, email, name } properties',\n    validate: value =>\n      (value === null) ||\n      (value && reduce(\n        keys(value),\n        (accum, key) => accum && includes(['id', 'email', 'name'], key),\n        true\n      ))\n  },\n  metadata: {\n    defaultValue: () => ({}),\n    message: 'should be an object',\n    validate: (value) => typeof value === 'object' && value !== null\n  },\n  logger: {\n    defaultValue: () => undefined,\n    message: 'should be null or an object with methods { debug, info, warn, error }',\n    validate: value =>\n      (!value) ||\n      (value && reduce(\n        ['debug', 'info', 'warn', 'error'],\n        (accum, method) => accum && typeof value[method] === 'function',\n        true\n      ))\n  },\n  redactedKeys: {\n    defaultValue: () => ['password'],\n    message: 'should be an array of strings|regexes',\n    validate: value =>\n      isArray(value) && value.length === filter(value, s =>\n        (typeof s === 'string' || (s && typeof s.test === 'function'))\n      ).length\n  },\n  plugins: {\n    defaultValue: () => ([]),\n    message: 'should be an array of plugin objects',\n    validate: value =>\n      isArray(value) && value.length === filter(value, p =>\n        (p && typeof p === 'object' && typeof p.load === 'function')\n      ).length\n  },\n  featureFlags: {\n    defaultValue: () => [],\n    message: 'should be an array of objects that have a \"name\" property',\n    validate: value =>\n      isArray(value) && value.length === filter(value, feature =>\n        feature && typeof feature === 'object' && typeof feature.name === 'string'\n      ).length\n  },\n  reportUnhandledPromiseRejectionsAsHandled: {\n    defaultValue: () => false,\n    message: 'should be true|false',\n    validate: value => value === true || value === false\n  }\n}\n", "// extends helper from babel\n// https://github.com/babel/babel/blob/916429b516e6466fd06588ee820e40e025d7f3a3/packages/babel-helpers/src/helpers.js#L377-L393\nmodule.exports = function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i]\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key]\n      }\n    }\n  }\n  return target\n}\n", "const reduce = require('./reduce')\n\n// Array#map\nmodule.exports = (arr, fn) =>\n  reduce(arr, (accum, item, i, arr) => accum.concat(fn(item, i, arr)), [])\n", "const { schema } = require('@bugsnag/core/config')\nconst map = require('@bugsnag/core/lib/es-utils/map')\nconst assign = require('@bugsnag/core/lib/es-utils/assign')\n\nmodule.exports = {\n  releaseStage: assign({}, schema.releaseStage, {\n    defaultValue: () => {\n      if (/^localhost(:\\d+)?$/.test(window.location.host)) return 'development'\n      return 'production'\n    }\n  }),\n  appType: {\n    ...schema.appType,\n    defaultValue: () => 'browser'\n  },\n  logger: assign({}, schema.logger, {\n    defaultValue: () =>\n      // set logger based on browser capability\n      (typeof console !== 'undefined' && typeof console.debug === 'function')\n        ? getPrefixedConsole()\n        : undefined\n  })\n}\n\nconst getPrefixedConsole = () => {\n  const logger = {}\n  const consoleLog = console.log\n  map(['debug', 'info', 'warn', 'error'], (method) => {\n    const consoleMethod = console[method]\n    logger[method] = typeof consoleMethod === 'function'\n      ? consoleMethod.bind(console, '[bugsnag]')\n      : consoleLog.bind(console, '[bugsnag]')\n  })\n  return logger\n}\n", "class Breadcrumb {\n  constructor (message, metadata, type, timestamp = new Date()) {\n    this.type = type\n    this.message = message\n    this.metadata = metadata\n    this.timestamp = timestamp\n  }\n\n  toJSON () {\n    return {\n      type: this.type,\n      name: this.message,\n      timestamp: this.timestamp,\n      metaData: this.metadata\n    }\n  }\n}\n\nmodule.exports = Breadcrumb\n", "(function(root, factory) {\n    'use strict';\n    // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n    /* istanbul ignore next */\n    if (typeof define === 'function' && define.amd) {\n        define('stackframe', [], factory);\n    } else if (typeof exports === 'object') {\n        module.exports = factory();\n    } else {\n        root.StackFrame = factory();\n    }\n}(this, function() {\n    'use strict';\n    function _isNumber(n) {\n        return !isNaN(parseFloat(n)) && isFinite(n);\n    }\n\n    function _capitalize(str) {\n        return str.charAt(0).toUpperCase() + str.substring(1);\n    }\n\n    function _getter(p) {\n        return function() {\n            return this[p];\n        };\n    }\n\n    var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n    var numericProps = ['columnNumber', 'lineNumber'];\n    var stringProps = ['fileName', 'functionName', 'source'];\n    var arrayProps = ['args'];\n    var objectProps = ['evalOrigin'];\n\n    var props = booleanProps.concat(numericProps, stringProps, arrayProps, objectProps);\n\n    function StackFrame(obj) {\n        if (!obj) return;\n        for (var i = 0; i < props.length; i++) {\n            if (obj[props[i]] !== undefined) {\n                this['set' + _capitalize(props[i])](obj[props[i]]);\n            }\n        }\n    }\n\n    StackFrame.prototype = {\n        getArgs: function() {\n            return this.args;\n        },\n        setArgs: function(v) {\n            if (Object.prototype.toString.call(v) !== '[object Array]') {\n                throw new TypeError('Args must be an Array');\n            }\n            this.args = v;\n        },\n\n        getEvalOrigin: function() {\n            return this.evalOrigin;\n        },\n        setEvalOrigin: function(v) {\n            if (v instanceof StackFrame) {\n                this.evalOrigin = v;\n            } else if (v instanceof Object) {\n                this.evalOrigin = new StackFrame(v);\n            } else {\n                throw new TypeError('Eval Origin must be an Object or StackFrame');\n            }\n        },\n\n        toString: function() {\n            var fileName = this.getFileName() || '';\n            var lineNumber = this.getLineNumber() || '';\n            var columnNumber = this.getColumnNumber() || '';\n            var functionName = this.getFunctionName() || '';\n            if (this.getIsEval()) {\n                if (fileName) {\n                    return '[eval] (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n                }\n                return '[eval]:' + lineNumber + ':' + columnNumber;\n            }\n            if (functionName) {\n                return functionName + ' (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n            }\n            return fileName + ':' + lineNumber + ':' + columnNumber;\n        }\n    };\n\n    StackFrame.fromString = function StackFrame$$fromString(str) {\n        var argsStartIndex = str.indexOf('(');\n        var argsEndIndex = str.lastIndexOf(')');\n\n        var functionName = str.substring(0, argsStartIndex);\n        var args = str.substring(argsStartIndex + 1, argsEndIndex).split(',');\n        var locationString = str.substring(argsEndIndex + 1);\n\n        if (locationString.indexOf('@') === 0) {\n            var parts = /@(.+?)(?::(\\d+))?(?::(\\d+))?$/.exec(locationString, '');\n            var fileName = parts[1];\n            var lineNumber = parts[2];\n            var columnNumber = parts[3];\n        }\n\n        return new StackFrame({\n            functionName: functionName,\n            args: args || undefined,\n            fileName: fileName,\n            lineNumber: lineNumber || undefined,\n            columnNumber: columnNumber || undefined\n        });\n    };\n\n    for (var i = 0; i < booleanProps.length; i++) {\n        StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n        StackFrame.prototype['set' + _capitalize(booleanProps[i])] = (function(p) {\n            return function(v) {\n                this[p] = Boolean(v);\n            };\n        })(booleanProps[i]);\n    }\n\n    for (var j = 0; j < numericProps.length; j++) {\n        StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n        StackFrame.prototype['set' + _capitalize(numericProps[j])] = (function(p) {\n            return function(v) {\n                if (!_isNumber(v)) {\n                    throw new TypeError(p + ' must be a Number');\n                }\n                this[p] = Number(v);\n            };\n        })(numericProps[j]);\n    }\n\n    for (var k = 0; k < stringProps.length; k++) {\n        StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n        StackFrame.prototype['set' + _capitalize(stringProps[k])] = (function(p) {\n            return function(v) {\n                this[p] = String(v);\n            };\n        })(stringProps[k]);\n    }\n\n    return StackFrame;\n}));\n", "(function(root, factory) {\n    'use strict';\n    // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n    /* istanbul ignore next */\n    if (typeof define === 'function' && define.amd) {\n        define('stack-generator', ['stackframe'], factory);\n    } else if (typeof exports === 'object') {\n        module.exports = factory(require('stackframe'));\n    } else {\n        root.StackGenerator = factory(root.StackFrame);\n    }\n}(this, function(StackFrame) {\n    return {\n        backtrace: function StackGenerator$$backtrace(opts) {\n            var stack = [];\n            var maxStackSize = 10;\n\n            if (typeof opts === 'object' && typeof opts.maxStackSize === 'number') {\n                maxStackSize = opts.maxStackSize;\n            }\n\n            var curr = arguments.callee;\n            while (curr && stack.length < maxStackSize && curr['arguments']) {\n                // Allow V8 optimizations\n                var args = new Array(curr['arguments'].length);\n                for (var i = 0; i < args.length; ++i) {\n                    args[i] = curr['arguments'][i];\n                }\n                if (/function(?:\\s+([\\w$]+))+\\s*\\(/.test(curr.toString())) {\n                    stack.push(new StackFrame({functionName: RegExp.$1 || undefined, args: args}));\n                } else {\n                    stack.push(new StackFrame({args: args}));\n                }\n\n                try {\n                    curr = curr.caller;\n                } catch (e) {\n                    break;\n                }\n            }\n            return stack;\n        }\n    };\n}));\n", "(function(root, factory) {\n    'use strict';\n    // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n    /* istanbul ignore next */\n    if (typeof define === 'function' && define.amd) {\n        define('error-stack-parser', ['stackframe'], factory);\n    } else if (typeof exports === 'object') {\n        module.exports = factory(require('stackframe'));\n    } else {\n        root.ErrorStackParser = factory(root.StackFrame);\n    }\n}(this, function ErrorStackParser(StackFrame) {\n    'use strict';\n\n    var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\n    var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\n    var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code])?$/;\n\n    return {\n        /**\n         * Given an Error object, extract the most information from it.\n         *\n         * @param {Error} error object\n         * @return {Array} of StackFrames\n         */\n        parse: function ErrorStackParser$$parse(error) {\n            if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n                return this.parseOpera(error);\n            } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n                return this.parseV8OrIE(error);\n            } else if (error.stack) {\n                return this.parseFFOrSafari(error);\n            } else {\n                throw new Error('Cannot parse given Error object');\n            }\n        },\n\n        // Separate line and column numbers from a string of the form: (URI:Line:Column)\n        extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n            // Fail-fast but return locations like \"(native)\"\n            if (urlLike.indexOf(':') === -1) {\n                return [urlLike];\n            }\n\n            var regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\n            var parts = regExp.exec(urlLike.replace(/[()]/g, ''));\n            return [parts[1], parts[2] || undefined, parts[3] || undefined];\n        },\n\n        parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n            var filtered = error.stack.split('\\n').filter(function(line) {\n                return !!line.match(CHROME_IE_STACK_REGEXP);\n            }, this);\n\n            return filtered.map(function(line) {\n                if (line.indexOf('(eval ') > -1) {\n                    // Throw away eval information until we implement stacktrace.js/stackframe#8\n                    line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^()]*)|(\\),.*$)/g, '');\n                }\n                var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(');\n\n                // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n                // case it has spaces in it, as the string is split on \\s+ later on\n                var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/);\n\n                // remove the parenthesized location from the line, if it was matched\n                sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n\n                var tokens = sanitizedLine.split(/\\s+/).slice(1);\n                // if a location was matched, pass it to extractLocation() otherwise pop the last token\n                var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n                var functionName = tokens.join(' ') || undefined;\n                var fileName = ['eval', '<anonymous>'].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n\n                return new StackFrame({\n                    functionName: functionName,\n                    fileName: fileName,\n                    lineNumber: locationParts[1],\n                    columnNumber: locationParts[2],\n                    source: line\n                });\n            }, this);\n        },\n\n        parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n            var filtered = error.stack.split('\\n').filter(function(line) {\n                return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n            }, this);\n\n            return filtered.map(function(line) {\n                // Throw away eval information until we implement stacktrace.js/stackframe#8\n                if (line.indexOf(' > eval') > -1) {\n                    line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, ':$1');\n                }\n\n                if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n                    // Safari eval frames only have function names and nothing else\n                    return new StackFrame({\n                        functionName: line\n                    });\n                } else {\n                    var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n                    var matches = line.match(functionNameRegex);\n                    var functionName = matches && matches[1] ? matches[1] : undefined;\n                    var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n\n                    return new StackFrame({\n                        functionName: functionName,\n                        fileName: locationParts[0],\n                        lineNumber: locationParts[1],\n                        columnNumber: locationParts[2],\n                        source: line\n                    });\n                }\n            }, this);\n        },\n\n        parseOpera: function ErrorStackParser$$parseOpera(e) {\n            if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n                e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\n                return this.parseOpera9(e);\n            } else if (!e.stack) {\n                return this.parseOpera10(e);\n            } else {\n                return this.parseOpera11(e);\n            }\n        },\n\n        parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n            var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n            var lines = e.message.split('\\n');\n            var result = [];\n\n            for (var i = 2, len = lines.length; i < len; i += 2) {\n                var match = lineRE.exec(lines[i]);\n                if (match) {\n                    result.push(new StackFrame({\n                        fileName: match[2],\n                        lineNumber: match[1],\n                        source: lines[i]\n                    }));\n                }\n            }\n\n            return result;\n        },\n\n        parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n            var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n            var lines = e.stacktrace.split('\\n');\n            var result = [];\n\n            for (var i = 0, len = lines.length; i < len; i += 2) {\n                var match = lineRE.exec(lines[i]);\n                if (match) {\n                    result.push(\n                        new StackFrame({\n                            functionName: match[3] || undefined,\n                            fileName: match[2],\n                            lineNumber: match[1],\n                            source: lines[i]\n                        })\n                    );\n                }\n            }\n\n            return result;\n        },\n\n        // Opera 10.65+ Error.stack very similar to FF/Safari\n        parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n            var filtered = error.stack.split('\\n').filter(function(line) {\n                return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n            }, this);\n\n            return filtered.map(function(line) {\n                var tokens = line.split('@');\n                var locationParts = this.extractLocation(tokens.pop());\n                var functionCall = (tokens.shift() || '');\n                var functionName = functionCall\n                    .replace(/<anonymous function(: (\\w+))?>/, '$2')\n                    .replace(/\\([^)]*\\)/g, '') || undefined;\n                var argsRaw;\n                if (functionCall.match(/\\(([^)]*)\\)/)) {\n                    argsRaw = functionCall.replace(/^[^(]+\\(([^)]*)\\)$/, '$1');\n                }\n                var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?\n                    undefined : argsRaw.split(',');\n\n                return new StackFrame({\n                    functionName: functionName,\n                    args: args,\n                    fileName: locationParts[0],\n                    lineNumber: locationParts[1],\n                    columnNumber: locationParts[2],\n                    source: line\n                });\n            }, this);\n        }\n    };\n}));\n", "module.exports = require('error-stack-parser')\n", "module.exports = function (data, replacer, space, opts) {\n  var redactedKeys = opts && opts.redactedKeys ? opts.redactedKeys : []\n  var redactedPaths = opts && opts.redactedPaths ? opts.redactedPaths : []\n  return JSON.stringify(\n    prepareObjForSerialization(data, redactedKeys, redactedPaths),\n    replacer,\n    space\n  )\n}\n\nvar MAX_DEPTH = 20\nvar MAX_EDGES = 25000\nvar MIN_PRESERVED_DEPTH = 8\n\nvar REPLACEMENT_NODE = '...'\n\nfunction isError (o) {\n  return o instanceof Error ||\n    /^\\[object (Error|(Dom)?Exception)\\]$/.test(Object.prototype.toString.call(o))\n}\n\nfunction throwsMessage (err) {\n  return '[Throws: ' + (err ? err.message : '?') + ']'\n}\n\nfunction find (haystack, needle) {\n  for (var i = 0, len = haystack.length; i < len; i++) {\n    if (haystack[i] === needle) return true\n  }\n  return false\n}\n\n// returns true if the string `path` starts with any of the provided `paths`\nfunction isDescendent (paths, path) {\n  for (var i = 0, len = paths.length; i < len; i++) {\n    if (path.indexOf(paths[i]) === 0) return true\n  }\n  return false\n}\n\nfunction shouldRedact (patterns, key) {\n  for (var i = 0, len = patterns.length; i < len; i++) {\n    if (typeof patterns[i] === 'string' && patterns[i].toLowerCase() === key.toLowerCase()) return true\n    if (patterns[i] && typeof patterns[i].test === 'function' && patterns[i].test(key)) return true\n  }\n  return false\n}\n\nfunction isArray (obj) {\n  return Object.prototype.toString.call(obj) === '[object Array]'\n}\n\nfunction safelyGetProp (obj, prop) {\n  try {\n    return obj[prop]\n  } catch (err) {\n    return throwsMessage(err)\n  }\n}\n\nfunction prepareObjForSerialization (obj, redactedKeys, redactedPaths) {\n  var seen = [] // store references to objects we have seen before\n  var edges = 0\n\n  function visit (obj, path) {\n    function edgesExceeded () {\n      return path.length > MIN_PRESERVED_DEPTH && edges > MAX_EDGES\n    }\n\n    edges++\n\n    if (path.length > MAX_DEPTH) return REPLACEMENT_NODE\n    if (edgesExceeded()) return REPLACEMENT_NODE\n    if (obj === null || typeof obj !== 'object') return obj\n    if (find(seen, obj)) return '[Circular]'\n\n    seen.push(obj)\n\n    if (typeof obj.toJSON === 'function') {\n      try {\n        // we're not going to count this as an edge because it\n        // replaces the value of the currently visited object\n        edges--\n        var fResult = visit(obj.toJSON(), path)\n        seen.pop()\n        return fResult\n      } catch (err) {\n        return throwsMessage(err)\n      }\n    }\n\n    var er = isError(obj)\n    if (er) {\n      edges--\n      var eResult = visit({ name: obj.name, message: obj.message }, path)\n      seen.pop()\n      return eResult\n    }\n\n    if (isArray(obj)) {\n      var aResult = []\n      for (var i = 0, len = obj.length; i < len; i++) {\n        if (edgesExceeded()) {\n          aResult.push(REPLACEMENT_NODE)\n          break\n        }\n        aResult.push(visit(obj[i], path.concat('[]')))\n      }\n      seen.pop()\n      return aResult\n    }\n\n    var result = {}\n    try {\n      for (var prop in obj) {\n        if (!Object.prototype.hasOwnProperty.call(obj, prop)) continue\n        if (isDescendent(redactedPaths, path.join('.')) && shouldRedact(redactedKeys, prop)) {\n          result[prop] = '[REDACTED]'\n          continue\n        }\n        if (edgesExceeded()) {\n          result[prop] = REPLACEMENT_NODE\n          break\n        }\n        result[prop] = visit(safelyGetProp(obj, prop), path.concat(prop))\n      }\n    } catch (e) {}\n    seen.pop()\n    return result\n  }\n\n  return visit(obj, [])\n}\n", "const map = require('./es-utils/map')\nconst filter = require('./es-utils/filter')\nconst isArray = require('./es-utils/is-array')\nconst jsonStringify = require('@bugsnag/safe-json-stringify')\n\nfunction add (existingFeatures, existingFeatureKeys, name, variant) {\n  if (typeof name !== 'string') {\n    return\n  }\n\n  if (variant === undefined) {\n    variant = null\n  } else if (variant !== null && typeof variant !== 'string') {\n    variant = jsonStringify(variant)\n  }\n\n  const existingIndex = existingFeatureKeys[name]\n  if (typeof existingIndex === 'number') {\n    existingFeatures[existingIndex] = { name, variant }\n    return\n  }\n\n  existingFeatures.push({ name, variant })\n  existingFeatureKeys[name] = existingFeatures.length - 1\n}\n\nfunction merge (existingFeatures, newFeatures, existingFeatureKeys) {\n  if (!isArray(newFeatures)) {\n    return\n  }\n\n  for (let i = 0; i < newFeatures.length; ++i) {\n    const feature = newFeatures[i]\n\n    if (feature === null || typeof feature !== 'object') {\n      continue\n    }\n\n    // 'add' will handle if 'name' doesn't exist & 'variant' is optional\n    add(existingFeatures, existingFeatureKeys, feature.name, feature.variant)\n  }\n\n  return existingFeatures\n}\n\n// convert feature flags from a map of 'name -> variant' into the format required\n// by the Bugsnag Event API:\n//   [{ featureFlag: 'name', variant: 'variant' }, { featureFlag: 'name 2' }]\nfunction toEventApi (featureFlags) {\n  return map(\n    filter(featureFlags, Boolean),\n    ({ name, variant }) => {\n      const flag = { featureFlag: name }\n\n      // don't add a 'variant' property unless there's actually a value\n      if (typeof variant === 'string') {\n        flag.variant = variant\n      }\n\n      return flag\n    }\n  )\n}\n\nfunction clear (features, featuresIndex, name) {\n  const existingIndex = featuresIndex[name]\n  if (typeof existingIndex === 'number') {\n    features[existingIndex] = null\n    delete featuresIndex[name]\n  }\n}\n\nmodule.exports = { add, clear, merge, toEventApi }\n", "// Given `err` which may be an error, does it have a stack property which is a string?\nmodule.exports = err =>\n  !!err &&\n  (!!err.stack || !!err.stacktrace || !!err['opera#sourceloc']) &&\n  typeof (err.stack || err.stacktrace || err['opera#sourceloc']) === 'string' &&\n  err.stack !== `${err.name}: ${err.message}`\n", "\n/**\n * Expose `isError`.\n */\n\nmodule.exports = isError;\n\n/**\n * Test whether `value` is error object.\n *\n * @param {*} value\n * @returns {boolean}\n */\n\nfunction isError(value) {\n  switch (Object.prototype.toString.call(value)) {\n    case '[object Error]': return true;\n    case '[object Exception]': return true;\n    case '[object DOMException]': return true;\n    default: return value instanceof Error;\n  }\n}\n", "module.exports = require('iserror')\n", "const assign = require('./es-utils/assign')\n\nconst add = (state, section, keyOrObj, maybeVal) => {\n  if (!section) return\n  let updates\n\n  // addMetadata(\"section\", null) -> clears section\n  if (keyOrObj === null) return clear(state, section)\n\n  // normalise the two supported input types into object form\n  if (typeof keyOrObj === 'object') updates = keyOrObj\n  if (typeof keyOrObj === 'string') updates = { [keyOrObj]: maybeVal }\n\n  // exit if we don't have an updates object at this point\n  if (!updates) return\n\n  // preventing the __proto__ property from being used as a key\n  if (section === '__proto__' || section === 'constructor' || section === 'prototype') {\n    return\n  }\n\n  // ensure a section with this name exists\n  if (!state[section]) state[section] = {}\n\n  // merge the updates with the existing section\n  state[section] = assign({}, state[section], updates)\n}\n\nconst get = (state, section, key) => {\n  if (typeof section !== 'string') return undefined\n  if (!key) {\n    return state[section]\n  }\n  if (state[section]) {\n    return state[section][key]\n  }\n  return undefined\n}\n\nconst clear = (state, section, key) => {\n  if (typeof section !== 'string') return\n\n  // clear an entire section\n  if (!key) {\n    delete state[section]\n    return\n  }\n\n  // preventing the __proto__ property from being used as a key\n  if (section === '__proto__' || section === 'constructor' || section === 'prototype') {\n    return\n  }\n\n  // clear a single value from a section\n  if (state[section]) {\n    delete state[section][key]\n  }\n}\n\nmodule.exports = { add, get, clear }\n", "const ErrorStackParser = require('./lib/error-stack-parser')\nconst StackGenerator = require('stack-generator')\nconst hasStack = require('./lib/has-stack')\nconst map = require('./lib/es-utils/map')\nconst reduce = require('./lib/es-utils/reduce')\nconst filter = require('./lib/es-utils/filter')\nconst assign = require('./lib/es-utils/assign')\nconst metadataDelegate = require('./lib/metadata-delegate')\nconst featureFlagDelegate = require('./lib/feature-flag-delegate')\nconst isError = require('./lib/iserror')\n\nclass Event {\n  constructor (errorClass, errorMessage, stacktrace = [], handledState = defaultHandledState(), originalError) {\n    this.apiKey = undefined\n    this.context = undefined\n    this.groupingHash = undefined\n    this.originalError = originalError\n\n    this._handledState = handledState\n    this.severity = this._handledState.severity\n    this.unhandled = this._handledState.unhandled\n\n    this.app = {}\n    this.device = {}\n    this.request = {}\n\n    this.breadcrumbs = []\n    this.threads = []\n\n    this._metadata = {}\n    this._features = []\n    this._featuresIndex = {}\n    this._user = {}\n    this._session = undefined\n    this._correlation = undefined\n\n    this.errors = [\n      createBugsnagError(errorClass, errorMessage, Event.__type, stacktrace)\n    ]\n\n    // Flags.\n    // Note these are not initialised unless they are used\n    // to save unnecessary bytes in the browser bundle\n\n    /* this.attemptImmediateDelivery, default: true */\n  }\n\n  addMetadata (section, keyOrObj, maybeVal) {\n    return metadataDelegate.add(this._metadata, section, keyOrObj, maybeVal)\n  }\n\n  /**\n     * Associate this event with a specific trace. This is usually done automatically when\n     * using bugsnag-js-performance, but can also be set manually if required.\n     *\n     * @param traceId the ID of the trace the event occurred within\n     * @param spanId the ID of the span that the event occurred within\n     */\n  setTraceCorrelation (traceId, spanId) {\n    if (typeof traceId === 'string') {\n      this._correlation = { traceId, ...typeof spanId === 'string' ? { spanId } : { } }\n    }\n  }\n\n  getMetadata (section, key) {\n    return metadataDelegate.get(this._metadata, section, key)\n  }\n\n  clearMetadata (section, key) {\n    return metadataDelegate.clear(this._metadata, section, key)\n  }\n\n  addFeatureFlag (name, variant = null) {\n    featureFlagDelegate.add(this._features, this._featuresIndex, name, variant)\n  }\n\n  addFeatureFlags (featureFlags) {\n    featureFlagDelegate.merge(this._features, featureFlags, this._featuresIndex)\n  }\n\n  getFeatureFlags () {\n    return featureFlagDelegate.toEventApi(this._features)\n  }\n\n  clearFeatureFlag (name) {\n    featureFlagDelegate.clear(this._features, this._featuresIndex, name)\n  }\n\n  clearFeatureFlags () {\n    this._features = []\n    this._featuresIndex = {}\n  }\n\n  getUser () {\n    return this._user\n  }\n\n  setUser (id, email, name) {\n    this._user = { id, email, name }\n  }\n\n  toJSON () {\n    return {\n      payloadVersion: '4',\n      exceptions: map(this.errors, er => assign({}, er, { message: er.errorMessage })),\n      severity: this.severity,\n      unhandled: this._handledState.unhandled,\n      severityReason: this._handledState.severityReason,\n      app: this.app,\n      device: this.device,\n      request: this.request,\n      breadcrumbs: this.breadcrumbs,\n      context: this.context,\n      groupingHash: this.groupingHash,\n      metaData: this._metadata,\n      user: this._user,\n      session: this._session,\n      featureFlags: this.getFeatureFlags(),\n      correlation: this._correlation\n    }\n  }\n}\n\n// takes a stacktrace.js style stackframe (https://github.com/stacktracejs/stackframe)\n// and returns a Bugsnag compatible stackframe (https://docs.bugsnag.com/api/error-reporting/#json-payload)\nconst formatStackframe = frame => {\n  const f = {\n    file: frame.fileName,\n    method: normaliseFunctionName(frame.functionName),\n    lineNumber: frame.lineNumber,\n    columnNumber: frame.columnNumber,\n    code: undefined,\n    inProject: undefined\n  }\n  // Some instances result in no file:\n  // - calling notify() from chrome's terminal results in no file/method.\n  // - non-error exception thrown from global code in FF\n  // This adds one.\n  if (f.lineNumber > -1 && !f.file && !f.method) {\n    f.file = 'global code'\n  }\n  return f\n}\n\nconst normaliseFunctionName = name => /^global code$/i.test(name) ? 'global code' : name\n\nconst defaultHandledState = () => ({\n  unhandled: false,\n  severity: 'warning',\n  severityReason: { type: 'handledException' }\n})\n\nconst ensureString = (str) => typeof str === 'string' ? str : ''\n\nfunction createBugsnagError (errorClass, errorMessage, type, stacktrace) {\n  return {\n    errorClass: ensureString(errorClass),\n    errorMessage: ensureString(errorMessage),\n    type,\n    stacktrace: reduce(stacktrace, (accum, frame) => {\n      const f = formatStackframe(frame)\n      // don't include a stackframe if none of its properties are defined\n      try {\n        if (JSON.stringify(f) === '{}') return accum\n        return accum.concat(f)\n      } catch (e) {\n        return accum\n      }\n    }, [])\n  }\n}\n\nfunction getCauseStack (error) {\n  if (error.cause) {\n    return [error, ...getCauseStack(error.cause)]\n  } else {\n    return [error]\n  }\n}\n\n// Helpers\n\nEvent.getStacktrace = function (error, errorFramesToSkip, backtraceFramesToSkip) {\n  if (hasStack(error)) return ErrorStackParser.parse(error).slice(errorFramesToSkip)\n  // error wasn't provided or didn't have a stacktrace so try to walk the callstack\n  try {\n    return filter(StackGenerator.backtrace(), frame =>\n      (frame.functionName || '').indexOf('StackGenerator$$') === -1\n    ).slice(1 + backtraceFramesToSkip)\n  } catch (e) {\n    return []\n  }\n}\n\nEvent.create = function (maybeError, tolerateNonErrors, handledState, component, errorFramesToSkip = 0, logger) {\n  const [error, internalFrames] = normaliseError(maybeError, tolerateNonErrors, component, logger)\n  let event\n  try {\n    const stacktrace = Event.getStacktrace(\n      error,\n      // if an error was created/throw in the normaliseError() function, we need to\n      // tell the getStacktrace() function to skip the number of frames we know will\n      // be from our own functions. This is added to the number of frames deep we\n      // were told about\n      internalFrames > 0 ? 1 + internalFrames + errorFramesToSkip : 0,\n      // if there's no stacktrace, the callstack may be walked to generated one.\n      // this is how many frames should be removed because they come from our library\n      1 + errorFramesToSkip\n    )\n    event = new Event(error.name, error.message, stacktrace, handledState, maybeError)\n  } catch (e) {\n    event = new Event(error.name, error.message, [], handledState, maybeError)\n  }\n  if (error.name === 'InvalidError') {\n    event.addMetadata(`${component}`, 'non-error parameter', makeSerialisable(maybeError))\n  }\n  if (error.cause) {\n    const causes = getCauseStack(error).slice(1)\n    const normalisedCauses = map(causes, (cause) => {\n      // Only get stacktrace for error causes that are a valid JS Error and already have a stack\n      const stacktrace = (isError(cause) && hasStack(cause)) ? ErrorStackParser.parse(cause) : []\n      const [error] = normaliseError(cause, true, 'error cause')\n      if (error.name === 'InvalidError') event.addMetadata('error cause', makeSerialisable(cause))\n      return createBugsnagError(error.name, error.message, Event.__type, stacktrace)\n    })\n\n    event.errors.push(...normalisedCauses)\n  }\n\n  return event\n}\n\nconst makeSerialisable = (err) => {\n  if (err === null) return 'null'\n  if (err === undefined) return 'undefined'\n  return err\n}\n\nconst normaliseError = (maybeError, tolerateNonErrors, component, logger) => {\n  let error\n  let internalFrames = 0\n\n  const createAndLogInputError = (reason) => {\n    const verb = (component === 'error cause' ? 'was' : 'received')\n    if (logger) logger.warn(`${component} ${verb} a non-error: \"${reason}\"`)\n    const err = new Error(`${component} ${verb} a non-error. See \"${component}\" tab for more detail.`)\n    err.name = 'InvalidError'\n    return err\n  }\n\n  // In some cases:\n  //\n  //  - the promise rejection handler (both in the browser and node)\n  //  - the node uncaughtException handler\n  //\n  // We are really limited in what we can do to get a stacktrace. So we use the\n  // tolerateNonErrors option to ensure that the resulting error communicates as\n  // such.\n  if (!tolerateNonErrors) {\n    if (isError(maybeError)) {\n      error = maybeError\n    } else {\n      error = createAndLogInputError(typeof maybeError)\n      internalFrames += 2\n    }\n  } else {\n    switch (typeof maybeError) {\n      case 'string':\n      case 'number':\n      case 'boolean':\n        error = new Error(String(maybeError))\n        internalFrames += 1\n        break\n      case 'function':\n        error = createAndLogInputError('function')\n        internalFrames += 2\n        break\n      case 'object':\n        if (maybeError !== null && isError(maybeError)) {\n          error = maybeError\n        } else if (maybeError !== null && hasNecessaryFields(maybeError)) {\n          error = new Error(maybeError.message || maybeError.errorMessage)\n          error.name = maybeError.name || maybeError.errorClass\n          internalFrames += 1\n        } else {\n          error = createAndLogInputError(maybeError === null ? 'null' : 'unsupported object')\n          internalFrames += 2\n        }\n        break\n      default:\n        error = createAndLogInputError('nothing')\n        internalFrames += 2\n    }\n  }\n\n  if (!hasStack(error)) {\n    // in IE10/11 a new Error() doesn't have a stacktrace until you throw it, so try that here\n    try {\n      throw error\n    } catch (e) {\n      if (hasStack(e)) {\n        error = e\n        // if the error only got a stacktrace after we threw it here, we know it\n        // will only have one extra internal frame from this function, regardless\n        // of whether it went through createAndLogInputError() or not\n        internalFrames = 1\n      }\n    }\n  }\n\n  return [error, internalFrames]\n}\n\n// default value for stacktrace.type\nEvent.__type = 'browserjs'\n\nconst hasNecessaryFields = error =>\n  (typeof error.name === 'string' || typeof error.errorClass === 'string') &&\n  (typeof error.message === 'string' || typeof error.errorMessage === 'string')\n\nmodule.exports = Event\n", "// This is a heavily modified/simplified version of\n//   https://github.com/othiym23/async-some\n// with the logic flipped so that it is akin to the\n// synchronous \"every\" method instead of \"some\".\n\n// run the asynchronous test function (fn) over each item in the array (arr)\n// in series until:\n//   - fn(item, cb) => calls cb(null, false)\n//   - or the end of the array is reached\n// the callback (cb) will be passed (null, false) if any of the items in arr\n// caused fn to call back with false, otherwise it will be passed (null, true)\nmodule.exports = (arr, fn, cb) => {\n  let index = 0\n\n  const next = () => {\n    if (index >= arr.length) return cb(null, true)\n    fn(arr[index], (err, result) => {\n      if (err) return cb(err)\n      if (result === false) return cb(null, false)\n      index++\n      next()\n    })\n  }\n\n  next()\n}\n", "const some = require('./async-every')\n\nmodule.exports = (callbacks, event, onCallbackError, cb) => {\n  // This function is how we support different kinds of callback:\n  //  - synchronous - return value\n  //  - node-style async with callback - cb(err, value)\n  //  - promise/thenable - resolve(value)\n  // It normalises each of these into the lowest common denominator – a node-style callback\n  const runMaybeAsyncCallback = (fn, cb) => {\n    if (typeof fn !== 'function') return cb(null)\n    try {\n      // if function appears sync…\n      if (fn.length !== 2) {\n        const ret = fn(event)\n        // check if it returned a \"thenable\" (promise)\n        if (ret && typeof ret.then === 'function') {\n          return ret.then(\n            // resolve\n            val => setTimeout(() => cb(null, val)),\n            // reject\n            err => {\n              setTimeout(() => {\n                onCallbackError(err)\n                return cb(null, true)\n              })\n            }\n          )\n        }\n        return cb(null, ret)\n      }\n      // if function is async…\n      fn(event, (err, result) => {\n        if (err) {\n          onCallbackError(err)\n          return cb(null)\n        }\n        cb(null, result)\n      })\n    } catch (e) {\n      onCallbackError(e)\n      cb(null)\n    }\n  }\n\n  some(callbacks, runMaybeAsyncCallback, cb)\n}\n", "module.exports = (callbacks, callbackArg, callbackType, logger) => {\n  let ignore = false\n  const cbs = callbacks.slice()\n  while (!ignore) {\n    if (!cbs.length) break\n    try {\n      ignore = cbs.pop()(callbackArg) === false\n    } catch (e) {\n      logger.error(`Error occurred in ${callbackType} callback, continuing anyway…`)\n      logger.error(e)\n    }\n  }\n  return ignore\n}\n", "module.exports = function pad (num, size) {\n  var s = '000000000' + num;\n  return s.substr(s.length - size);\n};\n", "var pad = require('./pad.js');\n\nvar env = typeof window === 'object' ? window : self;\nvar globalCount = 0;\nfor (var prop in env) {\n  if (Object.hasOwnProperty.call(env, prop)) globalCount++;\n}\nvar mimeTypesLength = navigator.mimeTypes ? navigator.mimeTypes.length : 0;\nvar clientId = pad((mimeTypesLength +\n  navigator.userAgent.length).toString(36) +\n  globalCount.toString(36), 4);\n\nmodule.exports = function fingerprint () {\n  return clientId;\n};\n", "/**\n * Check the provided value is a valid device id\n * @param {unknown} value\n * @returns\n */\nmodule.exports = function isCuid (value) {\n    return typeof value === 'string' && (/^c[a-z0-9]{20,32}$/).test(value);\n};\n", "/**\n * cuid.js\n * Collision-resistant UID generator for browsers and node.\n * Sequential for fast db lookups and recency sorting.\n * Safe for element IDs and server-side lookups.\n *\n * Extracted from CLCTR\n *\n * Copyright (c) Eric Elliott 2012\n * MIT License\n */\n\nvar fingerprint = require('./lib/fingerprint.js');\nvar isCuid = require('./lib/is-cuid.js');\nvar pad = require('./lib/pad.js');\n\nvar c = 0,\n  blockSize = 4,\n  base = 36,\n  discreteValues = Math.pow(base, blockSize);\n\nfunction randomBlock () {\n  return pad((Math.random() *\n    discreteValues << 0)\n    .toString(base), blockSize);\n}\n\nfunction safeCounter () {\n  c = c < discreteValues ? c : 0;\n  c++; // this is not subliminal\n  return c - 1;\n}\n\nfunction cuid () {\n  // Starting with a lowercase letter makes\n  // it HTML element ID friendly.\n  var letter = 'c', // hard-coded allows for sequential access\n\n    // timestamp\n    // warning: this exposes the exact date and time\n    // that the uid was created.\n    timestamp = new Date().getTime().toString(base),\n\n    // Prevent same-machine collisions.\n    counter = pad(safeCounter().toString(base), blockSize),\n\n    // A few chars to generate distinct ids for different\n    // clients (so different computers are far less\n    // likely to generate the same id)\n    print = fingerprint(),\n\n    // Grab some more chars from Math.random()\n    random = randomBlock() + randomBlock();\n\n  return letter + timestamp + counter + print + random;\n}\n\ncuid.fingerprint = fingerprint;\ncuid.isCuid = isCuid;\n\nmodule.exports = cuid;\n", "const cuid = require('@bugsnag/cuid')\n\nclass Session {\n  constructor () {\n    this.id = cuid()\n    this.startedAt = new Date()\n    this._handled = 0\n    this._unhandled = 0\n    this._user = {}\n    this.app = {}\n    this.device = {}\n  }\n\n  getUser () {\n    return this._user\n  }\n\n  setUser (id, email, name) {\n    this._user = { id, email, name }\n  }\n\n  toJSON () {\n    return {\n      id: this.id,\n      startedAt: this.startedAt,\n      events: { handled: this._handled, unhandled: this._unhandled }\n    }\n  }\n\n  _track (event) {\n    this[event._handledState.unhandled ? '_unhandled' : '_handled'] += 1\n  }\n}\n\nmodule.exports = Session\n", "const config = require('./config')\nconst Event = require('./event')\nconst Breadcrumb = require('./breadcrumb')\nconst Session = require('./session')\nconst map = require('./lib/es-utils/map')\nconst includes = require('./lib/es-utils/includes')\nconst filter = require('./lib/es-utils/filter')\nconst reduce = require('./lib/es-utils/reduce')\nconst keys = require('./lib/es-utils/keys')\nconst assign = require('./lib/es-utils/assign')\nconst runCallbacks = require('./lib/callback-runner')\nconst metadataDelegate = require('./lib/metadata-delegate')\nconst runSyncCallbacks = require('./lib/sync-callback-runner')\nconst BREADCRUMB_TYPES = require('./lib/breadcrumb-types')\nconst { add, clear, merge } = require('./lib/feature-flag-delegate')\n\nconst noop = () => {}\n\nclass Client {\n  constructor (configuration, schema = config.schema, internalPlugins = [], notifier) {\n    // notifier id\n    this._notifier = notifier\n\n    // intialise opts and config\n    this._config = {}\n    this._schema = schema\n\n    // i/o\n    this._delivery = { sendSession: noop, sendEvent: noop }\n    this._logger = { debug: noop, info: noop, warn: noop, error: noop }\n\n    // plugins\n    this._plugins = {}\n\n    // state\n    this._breadcrumbs = []\n    this._session = null\n    this._metadata = {}\n    this._featuresIndex = {}\n    this._features = []\n    this._context = undefined\n    this._user = {}\n\n    // callbacks:\n    //  e: onError\n    //  s: onSession\n    //  sp: onSessionPayload\n    //  b: onBreadcrumb\n    // (note these names are minified by hand because object\n    // properties are not safe to minify automatically)\n    this._cbs = {\n      e: [],\n      s: [],\n      sp: [],\n      b: []\n    }\n\n    // expose internal constructors\n    this.Client = Client\n    this.Event = Event\n    this.Breadcrumb = Breadcrumb\n    this.Session = Session\n\n    this._config = this._configure(configuration, internalPlugins)\n    map(internalPlugins.concat(this._config.plugins), pl => {\n      if (pl) this._loadPlugin(pl)\n    })\n\n    // when notify() is called we need to know how many frames are from our own source\n    // this inital value is 1 not 0 because we wrap notify() to ensure it is always\n    // bound to have the client as its `this` value – see below.\n    this._depth = 1\n\n    const self = this\n    const notify = this.notify\n    this.notify = function () {\n      return notify.apply(self, arguments)\n    }\n  }\n\n  addMetadata (section, keyOrObj, maybeVal) {\n    return metadataDelegate.add(this._metadata, section, keyOrObj, maybeVal)\n  }\n\n  getMetadata (section, key) {\n    return metadataDelegate.get(this._metadata, section, key)\n  }\n\n  clearMetadata (section, key) {\n    return metadataDelegate.clear(this._metadata, section, key)\n  }\n\n  addFeatureFlag (name, variant = null) {\n    add(this._features, this._featuresIndex, name, variant)\n  }\n\n  addFeatureFlags (featureFlags) {\n    merge(this._features, featureFlags, this._featuresIndex)\n  }\n\n  clearFeatureFlag (name) {\n    clear(this._features, this._featuresIndex, name)\n  }\n\n  clearFeatureFlags () {\n    this._features = []\n    this._featuresIndex = {}\n  }\n\n  getContext () {\n    return this._context\n  }\n\n  setContext (c) {\n    this._context = c\n  }\n\n  _configure (opts, internalPlugins) {\n    const schema = reduce(internalPlugins, (schema, plugin) => {\n      if (plugin && plugin.configSchema) return assign({}, schema, plugin.configSchema)\n      return schema\n    }, this._schema)\n\n    // accumulate configuration and error messages\n    const { errors, config } = reduce(keys(schema), (accum, key) => {\n      const defaultValue = schema[key].defaultValue(opts[key])\n\n      if (opts[key] !== undefined) {\n        const valid = schema[key].validate(opts[key])\n        if (!valid) {\n          accum.errors[key] = schema[key].message\n          accum.config[key] = defaultValue\n        } else {\n          if (schema[key].allowPartialObject) {\n            accum.config[key] = assign(defaultValue, opts[key])\n          } else {\n            accum.config[key] = opts[key]\n          }\n        }\n      } else {\n        accum.config[key] = defaultValue\n      }\n\n      return accum\n    }, { errors: {}, config: {} })\n\n    if (schema.apiKey) {\n      // missing api key is the only fatal error\n      if (!config.apiKey) throw new Error('No Bugsnag API Key set')\n      // warn about an apikey that is not of the expected format\n      if (!/^[0-9a-f]{32}$/i.test(config.apiKey)) errors.apiKey = 'should be a string of 32 hexadecimal characters'\n    }\n\n    // update and elevate some options\n    this._metadata = assign({}, config.metadata)\n    merge(this._features, config.featureFlags, this._featuresIndex)\n    this._user = assign({}, config.user)\n    this._context = config.context\n    if (config.logger) this._logger = config.logger\n\n    // add callbacks\n    if (config.onError) this._cbs.e = this._cbs.e.concat(config.onError)\n    if (config.onBreadcrumb) this._cbs.b = this._cbs.b.concat(config.onBreadcrumb)\n    if (config.onSession) this._cbs.s = this._cbs.s.concat(config.onSession)\n\n    // finally warn about any invalid config where we fell back to the default\n    if (keys(errors).length) {\n      this._logger.warn(generateConfigErrorMessage(errors, opts))\n    }\n\n    return config\n  }\n\n  getUser () {\n    return this._user\n  }\n\n  setUser (id, email, name) {\n    this._user = { id, email, name }\n  }\n\n  _loadPlugin (plugin) {\n    const result = plugin.load(this)\n    // JS objects are not the safest way to store arbitrarily keyed values,\n    // so bookend the key with some characters that prevent tampering with\n    // stuff like __proto__ etc. (only store the result if the plugin had a\n    // name)\n    if (plugin.name) this._plugins[`~${plugin.name}~`] = result\n  }\n\n  getPlugin (name) {\n    return this._plugins[`~${name}~`]\n  }\n\n  _setDelivery (d) {\n    this._delivery = d(this)\n  }\n\n  startSession () {\n    const session = new Session()\n\n    session.app.releaseStage = this._config.releaseStage\n    session.app.version = this._config.appVersion\n    session.app.type = this._config.appType\n\n    session._user = assign({}, this._user)\n\n    // run onSession callbacks\n    const ignore = runSyncCallbacks(this._cbs.s, session, 'onSession', this._logger)\n\n    if (ignore) {\n      this._logger.debug('Session not started due to onSession callback')\n      return this\n    }\n\n    return this._sessionDelegate.startSession(this, session)\n  }\n\n  addOnError (fn, front = false) {\n    this._cbs.e[front ? 'unshift' : 'push'](fn)\n  }\n\n  removeOnError (fn) {\n    this._cbs.e = filter(this._cbs.e, f => f !== fn)\n  }\n\n  _addOnSessionPayload (fn) {\n    this._cbs.sp.push(fn)\n  }\n\n  addOnSession (fn) {\n    this._cbs.s.push(fn)\n  }\n\n  removeOnSession (fn) {\n    this._cbs.s = filter(this._cbs.s, f => f !== fn)\n  }\n\n  addOnBreadcrumb (fn, front = false) {\n    this._cbs.b[front ? 'unshift' : 'push'](fn)\n  }\n\n  removeOnBreadcrumb (fn) {\n    this._cbs.b = filter(this._cbs.b, f => f !== fn)\n  }\n\n  pauseSession () {\n    return this._sessionDelegate.pauseSession(this)\n  }\n\n  resumeSession () {\n    return this._sessionDelegate.resumeSession(this)\n  }\n\n  leaveBreadcrumb (message, metadata, type) {\n    // coerce bad values so that the defaults get set\n    message = typeof message === 'string' ? message : ''\n    type = (typeof type === 'string' && includes(BREADCRUMB_TYPES, type)) ? type : 'manual'\n    metadata = typeof metadata === 'object' && metadata !== null ? metadata : {}\n\n    // if no message, discard\n    if (!message) return\n\n    const crumb = new Breadcrumb(message, metadata, type)\n\n    // run onBreadcrumb callbacks\n    const ignore = runSyncCallbacks(this._cbs.b, crumb, 'onBreadcrumb', this._logger)\n\n    if (ignore) {\n      this._logger.debug('Breadcrumb not attached due to onBreadcrumb callback')\n      return\n    }\n\n    // push the valid crumb onto the queue and maintain the length\n    this._breadcrumbs.push(crumb)\n    if (this._breadcrumbs.length > this._config.maxBreadcrumbs) {\n      this._breadcrumbs = this._breadcrumbs.slice(this._breadcrumbs.length - this._config.maxBreadcrumbs)\n    }\n  }\n\n  _isBreadcrumbTypeEnabled (type) {\n    const types = this._config.enabledBreadcrumbTypes\n\n    return types === null || includes(types, type)\n  }\n\n  notify (maybeError, onError, postReportCallback = noop) {\n    const event = Event.create(maybeError, true, undefined, 'notify()', this._depth + 1, this._logger)\n    this._notify(event, onError, postReportCallback)\n  }\n\n  _notify (event, onError, postReportCallback = noop) {\n    event.app = assign({}, event.app, {\n      releaseStage: this._config.releaseStage,\n      version: this._config.appVersion,\n      type: this._config.appType\n    })\n    event.context = event.context || this._context\n    event._metadata = assign({}, event._metadata, this._metadata)\n    event._user = assign({}, event._user, this._user)\n    event.breadcrumbs = this._breadcrumbs.slice()\n    merge(event._features, this._features, event._featuresIndex)\n\n    // exit early if events should not be sent on the current releaseStage\n    if (this._config.enabledReleaseStages !== null && !includes(this._config.enabledReleaseStages, this._config.releaseStage)) {\n      this._logger.warn('Event not sent due to releaseStage/enabledReleaseStages configuration')\n      return postReportCallback(null, event)\n    }\n\n    const originalSeverity = event.severity\n\n    const onCallbackError = err => {\n      // errors in callbacks are tolerated but we want to log them out\n      this._logger.error('Error occurred in onError callback, continuing anyway…')\n      this._logger.error(err)\n    }\n\n    const callbacks = [].concat(this._cbs.e).concat(onError)\n    runCallbacks(callbacks, event, onCallbackError, (err, shouldSend) => {\n      if (err) onCallbackError(err)\n\n      if (!shouldSend) {\n        this._logger.debug('Event not sent due to onError callback')\n        return postReportCallback(null, event)\n      }\n\n      if (this._isBreadcrumbTypeEnabled('error')) {\n        // only leave a crumb for the error if actually got sent\n        Client.prototype.leaveBreadcrumb.call(this, event.errors[0].errorClass, {\n          errorClass: event.errors[0].errorClass,\n          errorMessage: event.errors[0].errorMessage,\n          severity: event.severity\n        }, 'error')\n      }\n\n      if (originalSeverity !== event.severity) {\n        event._handledState.severityReason = { type: 'userCallbackSetSeverity' }\n      }\n\n      if (event.unhandled !== event._handledState.unhandled) {\n        event._handledState.severityReason.unhandledOverridden = true\n        event._handledState.unhandled = event.unhandled\n      }\n\n      if (this._session) {\n        this._session._track(event)\n        event._session = this._session\n      }\n\n      this._delivery.sendEvent({\n        apiKey: event.apiKey || this._config.apiKey,\n        notifier: this._notifier,\n        events: [event]\n      }, (err) => postReportCallback(err, event))\n    })\n  }\n}\n\nconst generateConfigErrorMessage = (errors, rawInput) => {\n  const er = new Error(\n  `Invalid configuration\\n${map(keys(errors), key => `  - ${key} ${errors[key]}, got ${stringify(rawInput[key])}`).join('\\n\\n')}`)\n  return er\n}\n\nconst stringify = val => {\n  switch (typeof val) {\n    case 'string':\n    case 'number':\n    case 'object':\n      return JSON.stringify(val)\n    default: return String(val)\n  }\n}\n\nmodule.exports = Client\n", "const jsonStringify = require('@bugsnag/safe-json-stringify')\nconst EVENT_REDACTION_PATHS = [\n  'events.[].metaData',\n  'events.[].breadcrumbs.[].metaData',\n  'events.[].request'\n]\n\nmodule.exports.event = (event, redactedKeys) => {\n  let payload = jsonStringify(event, null, null, { redactedPaths: EVENT_REDACTION_PATHS, redactedKeys })\n  if (payload.length > 10e5) {\n    event.events[0]._metadata = {\n      notifier:\n`WARNING!\nSerialized payload was ${payload.length / 10e5}MB (limit = 1MB)\nmetadata was removed`\n    }\n    payload = jsonStringify(event, null, null, { redactedPaths: EVENT_REDACTION_PATHS, redactedKeys })\n  }\n  return payload\n}\n\nmodule.exports.session = (session, redactedKeys) => {\n  const payload = jsonStringify(session, null, null)\n  return payload\n}\n", "const payload = require('@bugsnag/core/lib/json-payload')\n\nmodule.exports = (client, win = window) => ({\n  sendEvent: (event, cb = () => {}) => {\n    if (client._config.endpoints.notify === null) {\n      const err = new Error('Event not sent due to incomplete endpoint configuration')\n      return cb(err)\n    }\n\n    const url = getApiUrl(client._config, 'notify', '4', win)\n    const body = payload.event(event, client._config.redactedKeys)\n\n    const req = new win.XDomainRequest()\n    req.onload = function () {\n      cb(null)\n    }\n    req.onerror = function () {\n      const err = new Error('Event failed to send')\n      client._logger.error('Event failed to send…', err)\n      if (body.length > 10e5) {\n        client._logger.warn(`Event oversized (${(body.length / 10e5).toFixed(2)} MB)`)\n      }\n      cb(err)\n    }\n    req.open('POST', url)\n    setTimeout(() => {\n      try {\n        req.send(body)\n      } catch (e) {\n        client._logger.error(e)\n        cb(e)\n      }\n    }, 0)\n  },\n  sendSession: (session, cb = () => {}) => {\n    if (client._config.endpoints.sessions === null) {\n      const err = new Error('Session not sent due to incomplete endpoint configuration')\n      return cb(err)\n    }\n\n    const url = getApiUrl(client._config, 'sessions', '1', win)\n    const req = new win.XDomainRequest()\n    req.onload = function () {\n      cb(null)\n    }\n    req.open('POST', url)\n    setTimeout(() => {\n      try {\n        req.send(payload.session(session, client._config.redactedKeys))\n      } catch (e) {\n        client._logger.error(e)\n        cb(e)\n      }\n    }, 0)\n  }\n})\n\nconst getApiUrl = (config, endpoint, version, win) => {\n  // IE8 doesn't support Date.prototype.toISOstring(), but it does convert a date\n  // to an ISO string when you use JSON stringify. Simply parsing the result of\n  // JSON.stringify is smaller than using a toISOstring() polyfill.\n  const isoDate = JSON.parse(JSON.stringify(new Date()))\n  const url = matchPageProtocol(config.endpoints[endpoint], win.location.protocol)\n  return `${url}?apiKey=${encodeURIComponent(config.apiKey)}&payloadVersion=${version}&sentAt=${encodeURIComponent(isoDate)}`\n}\n\nconst matchPageProtocol = module.exports._matchPageProtocol = (endpoint, pageProtocol) =>\n  pageProtocol === 'http:'\n    ? endpoint.replace(/^https:/, 'http:')\n    : endpoint\n", "const payload = require('@bugsnag/core/lib/json-payload')\n\nmodule.exports = (client, win = window) => ({\n  sendEvent: (event, cb = () => {}) => {\n    try {\n      const url = client._config.endpoints.notify\n      if (url === null) {\n        const err = new Error('Event not sent due to incomplete endpoint configuration')\n        return cb(err)\n      }\n      const req = new win.XMLHttpRequest()\n      const body = payload.event(event, client._config.redactedKeys)\n\n      req.onreadystatechange = function () {\n        if (req.readyState === win.XMLHttpRequest.DONE) {\n          const status = req.status\n          if (status === 0 || status >= 400) {\n            const err = new Error(`Request failed with status ${status}`)\n            client._logger.error('Event failed to send…', err)\n            if (body.length > 10e5) {\n              client._logger.warn(`Event oversized (${(body.length / 10e5).toFixed(2)} MB)`)\n            }\n            cb(err)\n          } else {\n            cb(null)\n          }\n        }\n      }\n\n      req.open('POST', url)\n      req.setRequestHeader('Content-Type', 'application/json')\n      req.setRequestHeader('Bugsnag-Api-Key', event.apiKey || client._config.apiKey)\n      req.setRequestHeader('Bugsnag-Payload-Version', '4')\n      req.setRequestHeader('Bugsnag-Sent-At', (new Date()).toISOString())\n      req.send(body)\n    } catch (e) {\n      client._logger.error(e)\n    }\n  },\n  sendSession: (session, cb = () => {}) => {\n    try {\n      const url = client._config.endpoints.sessions\n      if (url === null) {\n        const err = new Error('Session not sent due to incomplete endpoint configuration')\n        return cb(err)\n      }\n      const req = new win.XMLHttpRequest()\n\n      req.onreadystatechange = function () {\n        if (req.readyState === win.XMLHttpRequest.DONE) {\n          const status = req.status\n          if (status === 0 || status >= 400) {\n            const err = new Error(`Request failed with status ${status}`)\n            client._logger.error('Session failed to send…', err)\n            cb(err)\n          } else {\n            cb(null)\n          }\n        }\n      }\n\n      req.open('POST', url)\n      req.setRequestHeader('Content-Type', 'application/json')\n      req.setRequestHeader('Bugsnag-Api-Key', client._config.apiKey)\n      req.setRequestHeader('Bugsnag-Payload-Version', '1')\n      req.setRequestHeader('Bugsnag-Sent-At', (new Date()).toISOString())\n      req.send(payload.session(session, client._config.redactedKeys))\n    } catch (e) {\n      client._logger.error(e)\n    }\n  }\n})\n", "let appStart = new Date()\nconst reset = () => { appStart = new Date() }\n\nmodule.exports = {\n  name: 'appDuration',\n  load: client => {\n    client.addOnError(event => {\n      const now = new Date()\n\n      event.app.duration = now - appStart\n    }, true)\n\n    return { reset }\n  }\n}\n", "/*\n * Sets the default context to be the current URL\n */\nmodule.exports = (win = window) => ({\n  load: (client) => {\n    client.addOnError(event => {\n      if (event.context !== undefined) return\n      event.context = win.location.pathname\n    }, true)\n  }\n})\n", "const assign = require('@bugsnag/core/lib/es-utils/assign')\nconst BUGSNAG_ANONYMOUS_ID_KEY = 'bugsnag-anonymous-id'\n\nconst getDeviceId = (win) => {\n  try {\n    const storage = win.localStorage\n\n    let id = storage.getItem(BUGSNAG_ANONYMOUS_ID_KEY)\n\n    // If we get an ID, make sure it looks like a valid cuid. The length can\n    // fluctuate slightly, so some leeway is built in\n    if (id && /^c[a-z0-9]{20,32}$/.test(id)) {\n      return id\n    }\n\n    const cuid = require('@bugsnag/cuid')\n    id = cuid()\n\n    storage.setItem(BUGSNAG_ANONYMOUS_ID_KEY, id)\n\n    return id\n  } catch (err) {\n    // If localStorage is not available (e.g. because it's disabled) then give up\n  }\n}\n\n/*\n * Automatically detects browser device details\n */\nmodule.exports = (nav = navigator, win = window) => ({\n  load: (client) => {\n    const device = {\n      locale: nav.browserLanguage || nav.systemLanguage || nav.userLanguage || nav.language,\n      userAgent: nav.userAgent\n    }\n\n    if (win && win.screen && win.screen.orientation && win.screen.orientation.type) {\n      device.orientation = win.screen.orientation.type\n    } else if (win && win.document) {\n      device.orientation =\n        win.document.documentElement.clientWidth > win.document.documentElement.clientHeight\n          ? 'landscape'\n          : 'portrait'\n    }\n\n    if (client._config.generateAnonymousId) {\n      device.id = getDeviceId(win)\n    }\n\n    client.addOnSession(session => {\n      session.device = assign({}, session.device, device)\n      // only set device id if collectUserIp is false\n      if (!client._config.collectUserIp) setDefaultUserId(session)\n    })\n\n    // add time just as the event is sent\n    client.addOnError((event) => {\n      event.device = assign({},\n        event.device,\n        device,\n        { time: new Date() }\n      )\n      if (!client._config.collectUserIp) setDefaultUserId(event)\n    }, true)\n  },\n  configSchema: {\n    generateAnonymousId: {\n      validate: value => value === true || value === false,\n      defaultValue: () => true,\n      message: 'should be true|false'\n    }\n  }\n})\n\nconst setDefaultUserId = (eventOrSession) => {\n  // device id is also used to populate the user id field, if it's not already set\n  const user = eventOrSession.getUser()\n  if (!user || !user.id) {\n    eventOrSession.setUser(eventOrSession.device.id)\n  }\n}\n", "const assign = require('@bugsnag/core/lib/es-utils/assign')\n\n/*\n * Sets the event request: { url } to be the current href\n */\nmodule.exports = (win = window) => ({\n  load: (client) => {\n    client.addOnError(event => {\n      if (event.request && event.request.url) return\n      event.request = assign({}, event.request, { url: win.location.href })\n    }, true)\n  }\n})\n", "const includes = require('@bugsnag/core/lib/es-utils/includes')\n\nmodule.exports = {\n  load: client => { client._sessionDelegate = sessionDelegate }\n}\n\nconst sessionDelegate = {\n  startSession: (client, session) => {\n    const sessionClient = client\n    sessionClient._session = session\n    sessionClient._pausedSession = null\n\n    // exit early if the current releaseStage is not enabled\n    if (sessionClient._config.enabledReleaseStages !== null && !includes(sessionClient._config.enabledReleaseStages, sessionClient._config.releaseStage)) {\n      sessionClient._logger.warn('Session not sent due to releaseStage/enabledReleaseStages configuration')\n      return sessionClient\n    }\n\n    sessionClient._delivery.sendSession({\n      notifier: sessionClient._notifier,\n      device: session.device,\n      app: session.app,\n      sessions: [\n        {\n          id: session.id,\n          startedAt: session.startedAt,\n          user: session._user\n        }\n      ]\n    })\n    return sessionClient\n  },\n  resumeSession: (client) => {\n    // Do nothing if there's already an active session\n    if (client._session) {\n      return client\n    }\n\n    // If we have a paused session then make it the active session\n    if (client._pausedSession) {\n      client._session = client._pausedSession\n      client._pausedSession = null\n\n      return client\n    }\n\n    // Otherwise start a new session\n    return client.startSession()\n  },\n  pauseSession: (client) => {\n    client._pausedSession = client._session\n    client._session = null\n  }\n}\n", "const assign = require('@bugsnag/core/lib/es-utils/assign')\n\n/*\n * Prevent collection of user IPs\n */\nmodule.exports = {\n  load: (client) => {\n    if (client._config.collectUserIp) return\n\n    client.addOnError(event => {\n      // If user.id is explicitly undefined, it will be missing from the payload. It needs\n      // removing so that the following line replaces it\n      if (event._user && typeof event._user.id === 'undefined') delete event._user.id\n      event._user = assign({ id: '[REDACTED]' }, event._user)\n      event.request = assign({ clientIp: '[REDACTED]' }, event.request)\n    })\n  },\n  configSchema: {\n    collectUserIp: {\n      defaultValue: () => true,\n      message: 'should be true|false',\n      validate: value => value === true || value === false\n    }\n  }\n}\n", "const map = require('@bugsnag/core/lib/es-utils/map')\nconst reduce = require('@bugsnag/core/lib/es-utils/reduce')\nconst filter = require('@bugsnag/core/lib/es-utils/filter')\n\n/*\n * Leaves breadcrumbs when console log methods are called\n */\nexports.load = (client) => {\n  const isDev = /^(local-)?dev(elopment)?$/.test(client._config.releaseStage)\n\n  if (isDev || !client._isBreadcrumbTypeEnabled('log')) return\n\n  map(CONSOLE_LOG_METHODS, method => {\n    const original = console[method]\n    console[method] = (...args) => {\n      client.leaveBreadcrumb('Console output', reduce(args, (accum, arg, i) => {\n        // do the best/simplest stringification of each argument\n        let stringified = '[Unknown value]'\n        // this may fail if the input is:\n        // - an object whose [[Prototype]] is null (no toString)\n        // - an object with a broken toString or @@toPrimitive implementation\n        try { stringified = String(arg) } catch (e) {}\n        // if it stringifies to [object Object] attempt to JSON stringify\n        if (stringified === '[object Object]') {\n          // catch stringify errors and fallback to [object Object]\n          try { stringified = JSON.stringify(arg) } catch (e) {}\n        }\n        accum[`[${i}]`] = stringified\n        return accum\n      }, {\n        severity: method.indexOf('group') === 0 ? 'log' : method\n      }), 'log')\n      original.apply(console, args)\n    }\n    console[method]._restore = () => { console[method] = original }\n  })\n}\n\nif (process.env.NODE_ENV !== 'production') {\n  exports.destroy = () => CONSOLE_LOG_METHODS.forEach(method => {\n    if (typeof console[method]._restore === 'function') console[method]._restore()\n  })\n}\n\nconst CONSOLE_LOG_METHODS = filter(['log', 'debug', 'info', 'warn', 'error'], method =>\n  typeof console !== 'undefined' && typeof console[method] === 'function'\n)\n", "const map = require('@bugsnag/core/lib/es-utils/map')\nconst reduce = require('@bugsnag/core/lib/es-utils/reduce')\nconst filter = require('@bugsnag/core/lib/es-utils/filter')\n\nconst MAX_LINE_LENGTH = 200\nconst MAX_SCRIPT_LENGTH = 500000\n\nmodule.exports = (doc = document, win = window) => ({\n  load: (client) => {\n    if (!client._config.trackInlineScripts) return\n\n    const originalLocation = win.location.href\n    let html = ''\n\n    // in IE8-10 the 'interactive' state can fire too soon (before scripts have finished executing), so in those\n    // we wait for the 'complete' state before assuming that synchronous scripts are no longer executing\n    const isOldIe = !!doc.attachEvent\n    let DOMContentLoaded = isOldIe ? doc.readyState === 'complete' : doc.readyState !== 'loading'\n    const getHtml = () => doc.documentElement.outerHTML\n\n    // get whatever HTML exists at this point in time\n    html = getHtml()\n    const prev = doc.onreadystatechange\n    // then update it when the DOM content has loaded\n    doc.onreadystatechange = function () {\n      // IE8 compatible alternative to document#DOMContentLoaded\n      if (doc.readyState === 'interactive') {\n        html = getHtml()\n        DOMContentLoaded = true\n      }\n      try { prev.apply(this, arguments) } catch (e) {}\n    }\n\n    let _lastScript = null\n    const updateLastScript = script => {\n      _lastScript = script\n    }\n\n    const getCurrentScript = () => {\n      let script = doc.currentScript || _lastScript\n      if (!script && !DOMContentLoaded) {\n        const scripts = doc.scripts || doc.getElementsByTagName('script')\n        script = scripts[scripts.length - 1]\n      }\n      return script\n    }\n\n    const addSurroundingCode = lineNumber => {\n      // get whatever html has rendered at this point\n      if (!DOMContentLoaded || !html) html = getHtml()\n      // simulate the raw html\n      const htmlLines = ['<!-- DOC START -->'].concat(html.split('\\n'))\n      const zeroBasedLine = lineNumber - 1\n      const start = Math.max(zeroBasedLine - 3, 0)\n      const end = Math.min(zeroBasedLine + 3, htmlLines.length)\n      return reduce(htmlLines.slice(start, end), (accum, line, i) => {\n        accum[start + 1 + i] = line.length <= MAX_LINE_LENGTH ? line : line.substr(0, MAX_LINE_LENGTH)\n        return accum\n      }, {})\n    }\n\n    client.addOnError(event => {\n      // remove any of our own frames that may be part the stack this\n      // happens before the inline script check as it happens for all errors\n      event.errors[0].stacktrace = filter(event.errors[0].stacktrace, f => !(/__trace__$/.test(f.method)))\n\n      const frame = event.errors[0].stacktrace[0]\n\n      // remove hash and query string from url\n      const cleanUrl = (url) => url.replace(/#.*$/, '').replace(/\\?.*$/, '')\n\n      // if frame.file exists and is not the original location of the page, this can't be an inline script\n      if (frame && frame.file && cleanUrl(frame.file) !== cleanUrl(originalLocation)) return\n\n      // grab the last script known to have run\n      const currentScript = getCurrentScript()\n      if (currentScript) {\n        const content = currentScript.innerHTML\n        event.addMetadata(\n          'script',\n          'content',\n          content.length <= MAX_SCRIPT_LENGTH ? content : content.substr(0, MAX_SCRIPT_LENGTH)\n        )\n\n        // only attempt to grab some surrounding code if we have a line number\n        if (frame && frame.lineNumber) {\n          frame.code = addSurroundingCode(frame.lineNumber)\n        }\n      }\n    }, true)\n\n    // Proxy all the timer functions whose callback is their 0th argument.\n    // Keep a reference to the original setTimeout because we need it later\n    const [_setTimeout] = map([\n      'setTimeout',\n      'setInterval',\n      'setImmediate',\n      'requestAnimationFrame'\n    ], fn =>\n      __proxy(win, fn, original =>\n        __traceOriginalScript(original, args => ({\n          get: () => args[0],\n          replace: fn => { args[0] = fn }\n        }))\n      )\n    )\n\n    // Proxy all the host objects whose prototypes have an addEventListener function\n    map([\n      'EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode',\n      'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase',\n      'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow',\n      'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList',\n      'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload'\n    ], o => {\n      if (!win[o] || !win[o].prototype || !Object.prototype.hasOwnProperty.call(win[o].prototype, 'addEventListener')) return\n      __proxy(win[o].prototype, 'addEventListener', original =>\n        __traceOriginalScript(original, eventTargetCallbackAccessor)\n      )\n      __proxy(win[o].prototype, 'removeEventListener', original =>\n        __traceOriginalScript(original, eventTargetCallbackAccessor, true)\n      )\n    })\n\n    function __traceOriginalScript (fn, callbackAccessor, alsoCallOriginal = false) {\n      return function () {\n        // this is required for removeEventListener to remove anything added with\n        // addEventListener before the functions started being wrapped by Bugsnag\n        const args = [].slice.call(arguments)\n        try {\n          const cba = callbackAccessor(args)\n          const cb = cba.get()\n          if (alsoCallOriginal) fn.apply(this, args)\n          if (typeof cb !== 'function') return fn.apply(this, args)\n          if (cb.__trace__) {\n            cba.replace(cb.__trace__)\n          } else {\n            const script = getCurrentScript()\n            // this function mustn't be annonymous due to a bug in the stack\n            // generation logic, meaning it gets tripped up\n            // see: https://github.com/stacktracejs/stack-generator/issues/6\n            cb.__trace__ = function __trace__ () {\n              // set the script that called this function\n              updateLastScript(script)\n              // immediately unset the currentScript synchronously below, however\n              // if this cb throws an error the line after will not get run so schedule\n              // an almost-immediate aysnc update too\n              _setTimeout(function () { updateLastScript(null) }, 0)\n              const ret = cb.apply(this, arguments)\n              updateLastScript(null)\n              return ret\n            }\n            cb.__trace__.__trace__ = cb.__trace__\n            cba.replace(cb.__trace__)\n          }\n        } catch (e) {\n          // swallow these errors on Selenium:\n          // Permission denied to access property '__trace__'\n          // WebDriverException: Message: Permission denied to access property \"handleEvent\"\n        }\n        // IE8 doesn't let you call .apply() on setTimeout/setInterval\n        if (fn.apply) return fn.apply(this, args)\n        switch (args.length) {\n          case 1: return fn(args[0])\n          case 2: return fn(args[0], args[1])\n          default: return fn()\n        }\n      }\n    }\n  },\n  configSchema: {\n    trackInlineScripts: {\n      validate: value => value === true || value === false,\n      defaultValue: () => true,\n      message: 'should be true|false'\n    }\n  }\n})\n\nfunction __proxy (host, name, replacer) {\n  const original = host[name]\n  if (!original) return original\n  const replacement = replacer(original)\n  host[name] = replacement\n  return original\n}\n\nfunction eventTargetCallbackAccessor (args) {\n  const isEventHandlerObj = !!args[1] && typeof args[1].handleEvent === 'function'\n  return {\n    get: function () {\n      return isEventHandlerObj ? args[1].handleEvent : args[1]\n    },\n    replace: function (fn) {\n      if (isEventHandlerObj) {\n        args[1].handleEvent = fn\n      } else {\n        args[1] = fn\n      }\n    }\n  }\n}\n", "/*\n * Leaves breadcrumbs when the user interacts with the DOM\n */\nmodule.exports = (win = window) => ({\n  load: (client) => {\n    if (!('addEventListener' in win)) return\n    if (!client._isBreadcrumbTypeEnabled('user')) return\n\n    win.addEventListener('click', (event) => {\n      let targetText, targetSelector\n      try {\n        targetText = getNodeText(event.target)\n        targetSelector = getNodeSelector(event.target, win)\n      } catch (e) {\n        targetText = '[hidden]'\n        targetSelector = '[hidden]'\n        client._logger.error('Cross domain error when tracking click event. See docs: https://tinyurl.com/yy3rn63z')\n      }\n      client.leaveBreadcrumb('UI click', { targetText, targetSelector }, 'user')\n    }, true)\n  }\n})\n\nconst trim = /^\\s*([^\\s][\\s\\S]{0,139}[^\\s])?\\s*/\n\nfunction getNodeText (el) {\n  let text = el.textContent || el.innerText || ''\n\n  if (!text && (el.type === 'submit' || el.type === 'button')) {\n    text = el.value\n  }\n\n  text = text.replace(trim, '$1')\n\n  if (text.length > 140) {\n    return text.slice(0, 135) + '(...)'\n  }\n\n  return text\n}\n\n// Create a label from tagname, id and css class of the element\nfunction getNodeSelector (el, win) {\n  const parts = [el.tagName]\n  if (el.id) parts.push('#' + el.id)\n  if (el.className && el.className.length) parts.push(`.${el.className.split(' ').join('.')}`)\n  // Can't get much more advanced with the current browser\n  if (!win.document.querySelectorAll || !Array.prototype.indexOf) return parts.join('')\n  try {\n    if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join('')\n  } catch (e) {\n    // Sometimes the query selector can be invalid just return it as-is\n    return parts.join('')\n  }\n  // try to get a more specific selector if this one matches more than one element\n  if (el.parentNode.childNodes.length > 1) {\n    const index = Array.prototype.indexOf.call(el.parentNode.childNodes, el) + 1\n    parts.push(`:nth-child(${index})`)\n  }\n  if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join('')\n  // try prepending the parent node selector\n  if (el.parentNode) return `${getNodeSelector(el.parentNode, win)} > ${parts.join('')}`\n  return parts.join('')\n}\n", "/*\n* Leaves breadcrumbs when navigation methods are called or events are emitted\n*/\nmodule.exports = (win = window) => {\n  const plugin = {\n    load: (client) => {\n      if (!('addEventListener' in win)) return\n      if (!client._isBreadcrumbTypeEnabled('navigation')) return\n\n      // returns a function that will drop a breadcrumb with a given name\n      const drop = name => () => client.leaveBreadcrumb(name, {}, 'navigation')\n\n      // simple drops – just names, no meta\n      win.addEventListener('pagehide', drop('Page hidden'), true)\n      win.addEventListener('pageshow', drop('Page shown'), true)\n      win.addEventListener('load', drop('Page loaded'), true)\n      win.document.addEventListener('DOMContentLoaded', drop('DOMContentLoaded'), true)\n      // some browsers like to emit popstate when the page loads, so only add the popstate listener after that\n      win.addEventListener('load', () => win.addEventListener('popstate', drop('Navigated back'), true))\n\n      // hashchange has some metadata that we care about\n      win.addEventListener('hashchange', event => {\n        const metadata = event.oldURL\n          ? { from: relativeLocation(event.oldURL, win), to: relativeLocation(event.newURL, win), state: getCurrentState(win) }\n          : { to: relativeLocation(win.location.href, win) }\n        client.leaveBreadcrumb('Hash changed', metadata, 'navigation')\n      }, true)\n\n      // the only way to know about replaceState/pushState is to wrap them… >_<\n      if (win.history.pushState) wrapHistoryFn(client, win.history, 'pushState', win, true)\n      if (win.history.replaceState) wrapHistoryFn(client, win.history, 'replaceState', win)\n    }\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    plugin.destroy = (win = window) => {\n      win.history.replaceState._restore()\n      win.history.pushState._restore()\n    }\n  }\n\n  return plugin\n}\n\nif (process.env.NODE_ENV !== 'production') {\n  exports.destroy = (win = window) => {\n    win.history.replaceState._restore()\n    win.history.pushState._restore()\n  }\n}\n\n// takes a full url like http://foo.com:1234/pages/01.html?yes=no#section-2 and returns\n// just the path and hash parts, e.g. /pages/01.html?yes=no#section-2\nconst relativeLocation = (url, win) => {\n  const a = win.document.createElement('A')\n  a.href = url\n  return `${a.pathname}${a.search}${a.hash}`\n}\n\nconst stateChangeToMetadata = (win, state, title, url) => {\n  const currentPath = relativeLocation(win.location.href, win)\n  return { title, state, prevState: getCurrentState(win), to: url || currentPath, from: currentPath }\n}\n\nconst wrapHistoryFn = (client, target, fn, win, resetEventCount = false) => {\n  const orig = target[fn]\n  target[fn] = (state, title, url) => {\n    client.leaveBreadcrumb(`History ${fn}`, stateChangeToMetadata(win, state, title, url), 'navigation')\n    // if throttle plugin is in use, reset the event sent count\n    if (resetEventCount && typeof client.resetEventCount === 'function') client.resetEventCount()\n    // Internet Explorer will convert `undefined` to a string when passed, causing an unintended redirect\n    // to '/undefined'. therefore we only pass the url if it's not undefined.\n    orig.apply(target, [state, title].concat(url !== undefined ? url : []))\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    target[fn]._restore = () => { target[fn] = orig }\n  }\n}\n\nconst getCurrentState = (win) => {\n  try {\n    return win.history.state\n  } catch (e) {}\n}\n", "const BREADCRUMB_TYPE = 'request'\n\nconst includes = require('@bugsnag/core/lib/es-utils/includes')\n\n/*\n * Leaves breadcrumbs when network requests occur\n */\nmodule.exports = (_ignoredUrls = [], win = window) => {\n  let restoreFunctions = []\n  const plugin = {\n    load: client => {\n      if (!client._isBreadcrumbTypeEnabled('request')) return\n\n      const ignoredUrls = [\n        client._config.endpoints.notify,\n        client._config.endpoints.sessions\n      ].concat(_ignoredUrls)\n\n      monkeyPatchXMLHttpRequest()\n      monkeyPatchFetch()\n\n      // XMLHttpRequest monkey patch\n      function monkeyPatchXMLHttpRequest () {\n        if (!('addEventListener' in win.XMLHttpRequest.prototype) || !('WeakMap' in win)) return\n\n        const trackedRequests = new WeakMap()\n        const requestHandlers = new WeakMap()\n\n        const originalOpen = win.XMLHttpRequest.prototype.open\n        win.XMLHttpRequest.prototype.open = function open (method, url) {\n          // it's possible for `this` to be `undefined`, which is not a valid key for a WeakMap\n          if (this) {\n            trackedRequests.set(this, { method, url })\n          }\n          originalOpen.apply(this, arguments)\n        }\n\n        const originalSend = win.XMLHttpRequest.prototype.send\n        win.XMLHttpRequest.prototype.send = function send (body) {\n          const requestData = trackedRequests.get(this)\n          if (requestData) {\n          // if we have already setup listeners then this request instance is being reused,\n          // so we need to remove the listeners from the previous send\n            const listeners = requestHandlers.get(this)\n            if (listeners) {\n              this.removeEventListener('load', listeners.load)\n              this.removeEventListener('error', listeners.error)\n            }\n\n            const requestStart = new Date()\n            const error = () => handleXHRError(requestData.method, requestData.url, getDuration(requestStart))\n            const load = () => handleXHRLoad(requestData.method, requestData.url, this.status, getDuration(requestStart))\n\n            this.addEventListener('load', load)\n            this.addEventListener('error', error)\n            // it's possible for `this` to be `undefined`, which is not a valid key for a WeakMap\n            if (this) {\n              requestHandlers.set(this, { load, error })\n            }\n          }\n\n          originalSend.apply(this, arguments)\n        }\n\n        if (process.env.NODE_ENV !== 'production') {\n          restoreFunctions.push(() => {\n            win.XMLHttpRequest.prototype.open = originalOpen\n            win.XMLHttpRequest.prototype.send = originalSend\n          })\n        }\n      }\n\n      function handleXHRLoad (method, url, status, duration) {\n        if (url === undefined) {\n          client._logger.warn('The request URL is no longer present on this XMLHttpRequest. A breadcrumb cannot be left for this request.')\n          return\n        }\n\n        // an XMLHttpRequest's URL can be an object as long as its 'toString'\n        // returns a URL, e.g. a HTMLAnchorElement\n        if (typeof url === 'string' && includes(ignoredUrls, url.replace(/\\?.*$/, ''))) {\n          // don't leave a network breadcrumb from bugsnag notify calls\n          return\n        }\n        const metadata = {\n          status,\n          method: String(method),\n          url: String(url),\n          duration: duration\n        }\n        if (status >= 400) {\n          // contacted server but got an error response\n          client.leaveBreadcrumb('XMLHttpRequest failed', metadata, BREADCRUMB_TYPE)\n        } else {\n          client.leaveBreadcrumb('XMLHttpRequest succeeded', metadata, BREADCRUMB_TYPE)\n        }\n      }\n\n      function handleXHRError (method, url, duration) {\n        if (url === undefined) {\n          client._logger.warn('The request URL is no longer present on this XMLHttpRequest. A breadcrumb cannot be left for this request.')\n          return\n        }\n\n        if (typeof url === 'string' && includes(ignoredUrls, url.replace(/\\?.*$/, ''))) {\n          // don't leave a network breadcrumb from bugsnag notify calls\n          return\n        }\n\n        // failed to contact server\n        client.leaveBreadcrumb('XMLHttpRequest error', {\n          method: String(method),\n          url: String(url),\n          duration: duration\n        }, BREADCRUMB_TYPE)\n      }\n\n      // window.fetch monkey patch\n      function monkeyPatchFetch () {\n        // only patch it if it exists and if it is not a polyfill (patching a polyfilled\n        // fetch() results in duplicate breadcrumbs for the same request because the\n        // implementation uses XMLHttpRequest which is also patched)\n        if (!('fetch' in win) || win.fetch.polyfill) return\n\n        const oldFetch = win.fetch\n        win.fetch = function fetch () {\n          const urlOrRequest = arguments[0]\n          const options = arguments[1]\n\n          let method\n          let url = null\n\n          if (urlOrRequest && typeof urlOrRequest === 'object') {\n            url = urlOrRequest.url\n            if (options && 'method' in options) {\n              method = options.method\n            } else if (urlOrRequest && 'method' in urlOrRequest) {\n              method = urlOrRequest.method\n            }\n          } else {\n            url = urlOrRequest\n            if (options && 'method' in options) {\n              method = options.method\n            }\n          }\n\n          if (method === undefined) {\n            method = 'GET'\n          }\n\n          return new Promise((resolve, reject) => {\n            const requestStart = new Date()\n\n            // pass through to native fetch\n            oldFetch(...arguments)\n              .then(response => {\n                handleFetchSuccess(response, method, url, getDuration(requestStart))\n                resolve(response)\n              })\n              .catch(error => {\n                handleFetchError(method, url, getDuration(requestStart))\n                reject(error)\n              })\n          })\n        }\n\n        if (process.env.NODE_ENV !== 'production') {\n          restoreFunctions.push(() => {\n            win.fetch = oldFetch\n          })\n        }\n      }\n\n      const handleFetchSuccess = (response, method, url, duration) => {\n        const metadata = {\n          method: String(method),\n          status: response.status,\n          url: String(url),\n          duration: duration\n        }\n        if (response.status >= 400) {\n          // when the request comes back with a 4xx or 5xx status it does not reject the fetch promise,\n          client.leaveBreadcrumb('fetch() failed', metadata, BREADCRUMB_TYPE)\n        } else {\n          client.leaveBreadcrumb('fetch() succeeded', metadata, BREADCRUMB_TYPE)\n        }\n      }\n\n      const handleFetchError = (method, url, duration) => {\n        client.leaveBreadcrumb('fetch() error', { method: String(method), url: String(url), duration: duration }, BREADCRUMB_TYPE)\n      }\n    }\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    plugin.destroy = () => {\n      restoreFunctions.forEach(fn => fn())\n      restoreFunctions = []\n    }\n  }\n\n  return plugin\n}\n\nconst getDuration = (startTime) => startTime && new Date() - startTime\n", "const intRange = require('@bugsnag/core/lib/validators/int-range')\n\n/*\n * Throttles and dedupes events\n */\n\nmodule.exports = {\n  load: (client) => {\n    // track sent events for each init of the plugin\n    let n = 0\n\n    // add onError hook\n    client.addOnError((event) => {\n      // have max events been sent already?\n      if (n >= client._config.maxEvents) {\n        client._logger.warn(`Cancelling event send due to maxEvents per session limit of ${client._config.maxEvents} being reached`)\n        return false\n      }\n      n++\n    })\n\n    client.resetEventCount = () => { n = 0 }\n  },\n  configSchema: {\n    maxEvents: {\n      defaultValue: () => 10,\n      message: 'should be a positive integer ≤100',\n      validate: val => intRange(1, 100)(val)\n    }\n  }\n}\n", "/*\n * Remove query strings (and fragments) from stacktraces\n */\nconst map = require('@bugsnag/core/lib/es-utils/map')\nconst reduce = require('@bugsnag/core/lib/es-utils/reduce')\n\nmodule.exports = {\n  load: (client) => {\n    client.addOnError(event => {\n      const allFrames = reduce(event.errors, (accum, er) => accum.concat(er.stacktrace), [])\n      map(allFrames, frame => {\n        frame.file = strip(frame.file)\n      })\n    })\n  }\n}\n\nconst strip = module.exports._strip = str =>\n  typeof str === 'string'\n    ? str.replace(/\\?.*$/, '').replace(/#.*$/, '')\n    : str\n", "/*\n * Automatically notifies Bugsnag when window.onerror is called\n */\n\nmodule.exports = (win = window, component = 'window onerror') => ({\n  load: (client) => {\n    if (!client._config.autoDetectErrors) return\n    if (!client._config.enabledErrorTypes.unhandledExceptions) return\n    function onerror (messageOrEvent, url, lineNo, charNo, error) {\n      // Ignore errors with no info due to CORS settings\n      if (lineNo === 0 && /Script error\\.?/.test(messageOrEvent)) {\n        client._logger.warn('Ignoring cross-domain or eval script error. See docs: https://tinyurl.com/yy3rn63z')\n      } else {\n        // any error sent to window.onerror is unhandled and has severity=error\n        const handledState = { severity: 'error', unhandled: true, severityReason: { type: 'unhandledException' } }\n\n        let event\n\n        // window.onerror can be called in a number of ways. This big if-else is how we\n        // figure out which arguments were supplied, and what kind of values it received.\n\n        if (error) {\n          // if the last parameter (error) was supplied, this is a modern browser's\n          // way of saying \"this value was thrown and not caught\"\n          event = client.Event.create(error, true, handledState, component, 1)\n          decorateStack(event.errors[0].stacktrace, url, lineNo, charNo)\n        } else if (\n          // This complex case detects \"error\" events that are typically synthesised\n          // by jquery's trigger method (although can be created in other ways). In\n          // order to detect this:\n          // - the first argument (message) must exist and be an object (most likely it's a jQuery event)\n          // - the second argument (url) must either not exist or be something other than a string (if it\n          //    exists and is not a string, it'll be the extraParameters argument from jQuery's trigger()\n          //    function)\n          // - the third, fourth and fifth arguments must not exist (lineNo, charNo and error)\n          (typeof messageOrEvent === 'object' && messageOrEvent !== null) &&\n          (!url || typeof url !== 'string') &&\n          !lineNo && !charNo && !error\n        ) {\n          // The jQuery event may have a \"type\" property, if so use it as part of the error message\n          const name = messageOrEvent.type ? `Event: ${messageOrEvent.type}` : 'Error'\n          // attempt to find a message from one of the conventional properties, but\n          // default to empty string (the event will fill it with a placeholder)\n          const message = messageOrEvent.message || messageOrEvent.detail || ''\n\n          event = client.Event.create({ name, message }, true, handledState, component, 1)\n\n          // provide the original thing onerror received – not our error-like object we passed to _notify\n          event.originalError = messageOrEvent\n\n          // include the raw input as metadata – it might contain more info than we extracted\n          event.addMetadata(component, { event: messageOrEvent, extraParameters: url })\n        } else {\n          // Lastly, if there was no \"error\" parameter this event was probably from an old\n          // browser that doesn't support that. Instead we need to generate a stacktrace.\n          event = client.Event.create(messageOrEvent, true, handledState, component, 1)\n          decorateStack(event.errors[0].stacktrace, url, lineNo, charNo)\n        }\n\n        client._notify(event)\n      }\n\n      if (typeof prevOnError === 'function') prevOnError.apply(this, arguments)\n    }\n\n    const prevOnError = win.onerror\n    win.onerror = onerror\n  }\n})\n\n// Sometimes the stacktrace has less information than was passed to window.onerror.\n// This function will augment the first stackframe with any useful info that was\n// received as arguments to the onerror callback.\nconst decorateStack = (stack, url, lineNo, charNo) => {\n  if (!stack[0]) stack.push({})\n  const culprit = stack[0]\n  if (!culprit.file && typeof url === 'string') culprit.file = url\n  if (!culprit.lineNumber && isActualNumber(lineNo)) culprit.lineNumber = lineNo\n  if (!culprit.columnNumber) {\n    if (isActualNumber(charNo)) {\n      culprit.columnNumber = charNo\n    } else if (window.event && isActualNumber(window.event.errorCharacter)) {\n      culprit.columnNumber = window.event.errorCharacter\n    }\n  }\n}\n\nconst isActualNumber = (n) => typeof n === 'number' && String.call(n) !== 'NaN'\n", "const map = require('@bugsnag/core/lib/es-utils/map')\nconst isError = require('@bugsnag/core/lib/iserror')\n\nlet _listener\n/*\n * Automatically notifies Bugsnag when window.onunhandledrejection is called\n */\nmodule.exports = (win = window) => {\n  const plugin = {\n    load: (client) => {\n      if (!client._config.autoDetectErrors || !client._config.enabledErrorTypes.unhandledRejections) return\n      const listener = evt => {\n        let error = evt.reason\n        let isBluebird = false\n\n        // accessing properties on evt.detail can throw errors (see #394)\n        try {\n          if (evt.detail && evt.detail.reason) {\n            error = evt.detail.reason\n            isBluebird = true\n          }\n        } catch (e) {}\n\n        // Report unhandled promise rejections as handled if the user has configured it\n        const unhandled = !client._config.reportUnhandledPromiseRejectionsAsHandled\n\n        const event = client.Event.create(error, false, {\n          severity: 'error',\n          unhandled,\n          severityReason: { type: 'unhandledPromiseRejection' }\n        }, 'unhandledrejection handler', 1, client._logger)\n\n        if (isBluebird) {\n          map(event.errors[0].stacktrace, fixBluebirdStacktrace(error))\n        }\n\n        client._notify(event, (event) => {\n          if (isError(event.originalError) && !event.originalError.stack) {\n            event.addMetadata('unhandledRejection handler', {\n              [Object.prototype.toString.call(event.originalError)]: {\n                name: event.originalError.name,\n                message: event.originalError.message,\n                code: event.originalError.code\n              }\n            })\n          }\n        })\n      }\n      if ('addEventListener' in win) {\n        win.addEventListener('unhandledrejection', listener)\n      } else {\n        win.onunhandledrejection = (reason, promise) => {\n          listener({ detail: { reason, promise } })\n        }\n      }\n      _listener = listener\n    }\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    plugin.destroy = (win = window) => {\n      if (_listener) {\n        if ('addEventListener' in win) {\n          win.removeEventListener('unhandledrejection', _listener)\n        } else {\n          win.onunhandledrejection = null\n        }\n      }\n      _listener = null\n    }\n  }\n\n  return plugin\n}\n\n// The stack parser on bluebird stacks in FF get a suprious first frame:\n//\n// Error: derp\n//   b@http://localhost:5000/bluebird.html:22:24\n//   a@http://localhost:5000/bluebird.html:18:9\n//   @http://localhost:5000/bluebird.html:14:9\n//\n// results in\n//   […]\n//     0: Object { file: \"Error: derp\", method: undefined, lineNumber: undefined, … }\n//     1: Object { file: \"http://localhost:5000/bluebird.html\", method: \"b\", lineNumber: 22, … }\n//     2: Object { file: \"http://localhost:5000/bluebird.html\", method: \"a\", lineNumber: 18, … }\n//     3: Object { file: \"http://localhost:5000/bluebird.html\", lineNumber: 14, columnNumber: 9, … }\n//\n// so the following reduce/accumulator function removes such frames\n//\n// Bluebird pads method names with spaces so trim that too…\n// https://github.com/petkaantonov/bluebird/blob/b7f21399816d02f979fe434585334ce901dcaf44/src/debuggability.js#L568-L571\nconst fixBluebirdStacktrace = (error) => (frame) => {\n  if (frame.file === error.toString()) return\n  if (frame.method) {\n    frame.method = frame.method.replace(/^\\s+/, '')\n  }\n}\n", "const name = 'Bugsnag JavaScript'\nconst version = '8.1.2'\nconst url = 'https://github.com/bugsnag/bugsnag-js'\n\nconst Client = require('@bugsnag/core/client')\nconst Event = require('@bugsnag/core/event')\nconst Session = require('@bugsnag/core/session')\nconst Breadcrumb = require('@bugsnag/core/breadcrumb')\n\nconst map = require('@bugsnag/core/lib/es-utils/map')\nconst keys = require('@bugsnag/core/lib/es-utils/keys')\nconst assign = require('@bugsnag/core/lib/es-utils/assign')\n\n// extend the base config schema with some browser-specific options\nconst schema = assign({}, require('@bugsnag/core/config').schema, require('./config'))\n\nconst pluginWindowOnerror = require('@bugsnag/plugin-window-onerror')\nconst pluginUnhandledRejection = require('@bugsnag/plugin-window-unhandled-rejection')\nconst pluginApp = require('@bugsnag/plugin-app-duration')\nconst pluginDevice = require('@bugsnag/plugin-browser-device')\nconst pluginContext = require('@bugsnag/plugin-browser-context')\nconst pluginRequest = require('@bugsnag/plugin-browser-request')\nconst pluginThrottle = require('@bugsnag/plugin-simple-throttle')\nconst pluginConsoleBreadcrumbs = require('@bugsnag/plugin-console-breadcrumbs')\nconst pluginNetworkBreadcrumbs = require('@bugsnag/plugin-network-breadcrumbs')\nconst pluginNavigationBreadcrumbs = require('@bugsnag/plugin-navigation-breadcrumbs')\nconst pluginInteractionBreadcrumbs = require('@bugsnag/plugin-interaction-breadcrumbs')\nconst pluginInlineScriptContent = require('@bugsnag/plugin-inline-script-content')\nconst pluginSession = require('@bugsnag/plugin-browser-session')\nconst pluginIp = require('@bugsnag/plugin-client-ip')\nconst pluginStripQueryString = require('@bugsnag/plugin-strip-query-string')\n\n// delivery mechanisms\nconst dXDomainRequest = require('@bugsnag/delivery-x-domain-request')\nconst dXMLHttpRequest = require('@bugsnag/delivery-xml-http-request')\n\nconst Bugsnag = {\n  _client: null,\n  createClient: (opts) => {\n    // handle very simple use case where user supplies just the api key as a string\n    if (typeof opts === 'string') opts = { apiKey: opts }\n    if (!opts) opts = {}\n\n    const internalPlugins = [\n      // add browser-specific plugins\n      pluginApp,\n      pluginDevice(),\n      pluginContext(),\n      pluginRequest(),\n      pluginThrottle,\n      pluginSession,\n      pluginIp,\n      pluginStripQueryString,\n      pluginWindowOnerror(),\n      pluginUnhandledRejection(),\n      pluginNavigationBreadcrumbs(),\n      pluginInteractionBreadcrumbs(),\n      pluginNetworkBreadcrumbs(),\n      pluginConsoleBreadcrumbs,\n\n      // this one added last to avoid wrapping functionality before bugsnag uses it\n      pluginInlineScriptContent()\n    ]\n\n    // configure a client with user supplied options\n    const bugsnag = new Client(opts, schema, internalPlugins, { name, version, url })\n\n    // set delivery based on browser capability (IE 8+9 have an XDomainRequest object)\n    bugsnag._setDelivery(window.XDomainRequest ? dXDomainRequest : dXMLHttpRequest)\n\n    bugsnag._logger.debug('Loaded!')\n    bugsnag.leaveBreadcrumb('Bugsnag loaded', {}, 'state')\n\n    return bugsnag._config.autoTrackSessions\n      ? bugsnag.startSession()\n      : bugsnag\n  },\n  start: (opts) => {\n    if (Bugsnag._client) {\n      Bugsnag._client._logger.warn('Bugsnag.start() was called more than once. Ignoring.')\n      return Bugsnag._client\n    }\n    Bugsnag._client = Bugsnag.createClient(opts)\n    return Bugsnag._client\n  },\n  isStarted: () => {\n    return Bugsnag._client != null\n  }\n}\n\nmap(['resetEventCount'].concat(keys(Client.prototype)), (m) => {\n  if (/^_/.test(m)) return\n  Bugsnag[m] = function () {\n    if (!Bugsnag._client) return console.log(`Bugsnag.${m}() was called before Bugsnag.start()`)\n    Bugsnag._client._depth += 1\n    const ret = Bugsnag._client[m].apply(Bugsnag._client, arguments)\n    Bugsnag._client._depth -= 1\n    return ret\n  }\n})\n\nmodule.exports = Bugsnag\n\nmodule.exports.Client = Client\nmodule.exports.Event = Event\nmodule.exports.Session = Session\nmodule.exports.Breadcrumb = Breadcrumb\n\n// Export a \"default\" property for compatibility with ESM imports\nmodule.exports.default = Bugsnag\n", "\nreturn _$notifier_11;\n\n});\n", "import Bugsnag from '@bugsnag/browser/dist/bugsnag.js'\nwindow.Bugsnag = Bugsnag;\n"],
  "mappings": "giBAAA,IAAAA,GAAAC,GAAA,CAAAC,GAAAC,KAAA,EAAA,SAAAC,EAAA,CAAA,GAAA,OAAAF,IAAA,UAAA,OAAAC,IAAA,YAAAA,GAAA,QAAAC,EAAA,UAAA,OAAA,QAAA,YAAA,OAAA,IAAA,OAAA,CAAA,EAAAA,CAAA,MAAA,CAAA,IAAAC,EAAA,OAAA,QAAA,YAAAA,EAAA,OAAA,OAAA,QAAA,YAAAA,EAAA,OAAA,OAAA,MAAA,YAAAA,EAAA,KAAAA,EAAA,KAAAA,EAAA,QAAAD,EAAA,CAAA,CAAA,GAAA,UAAA,CAAA,IAAAE,EAAAH,EAAAD,ECAAK,EAAiB,CAAC,aAAc,UAAW,UAAW,MAAO,OAAQ,QAAS,QAAS,QAAQ,ECC/FC,EAAiB,SAACC,EAAKC,EAAIC,EAAU,CAEnC,QADIC,EAAMD,EACDE,EAAI,EAAGC,EAAML,EAAI,OAAQI,EAAIC,EAAKD,IAAKD,EAAMF,EAAGE,EAAKH,EAAII,CAAC,EAAGA,EAAGJ,CAAG,EAC5E,OAAOG,GCDTG,EAAiB,SAACN,EAAKC,EAAE,CAAA,OACvBF,EAAOC,EAAK,SAACE,EAAOK,EAAMH,EAAGJ,EAAG,CAAA,OAAMC,EAAGM,EAAMH,EAAGJ,CAAG,EAAYE,EAAM,OAAOK,CAAI,EAAzBL,GAA4B,CAAA,CAAE,GCFzFM,EAAiB,SAACR,EAAKS,EAAC,CAAA,OACtBV,EAAOC,EAAK,SAACE,EAAOK,EAAMH,EAAGJ,EAAG,CAAA,OAAKE,IAAU,IAAQK,IAASE,GAAG,EAAK,GCF1EC,EAAiB,SAAAC,EAAG,CAAA,OAAI,OAAO,UAAU,SAAS,KAAKA,CAAG,IAAM,kBCA1DC,GAAkB,CAAE,CAAE,SAAU,MAAQ,qBAAqB,UAAU,EACvEC,GAAa,CACjB,WAAY,iBAAkB,UAAW,iBACzC,gBAAiB,uBAAwB,aAAa,EAIxDC,EAAiB,SAAAH,EAAO,CAGtB,IAAMI,EAAS,CAAA,EACXC,EACJ,IAAKA,KAAQL,EACP,OAAO,UAAU,eAAe,KAAKA,EAAKK,CAAI,GAAGD,EAAO,KAAKC,CAAI,EAEvE,GAAI,CAACJ,GAAiB,OAAOG,EAC7B,QAASX,EAAI,EAAGC,EAAMQ,GAAW,OAAQT,EAAIC,EAAKD,IAC5C,OAAO,UAAU,eAAe,KAAKO,EAAKE,GAAWT,CAAC,CAAC,GAAGW,EAAO,KAAKF,GAAWT,CAAC,CAAC,EAEzF,OAAOW,GCpBTE,GAAiB,SAACC,EAASC,EAAG,CAAA,OAAZD,IAAG,SAAHA,EAAM,GAAGC,IAAG,SAAHA,EAAM,KAAa,SAAAC,EAAK,CAAA,OACjD,OAAOA,GAAU,UACjB,SAAS,GAAKA,EAAO,EAAE,IAAMA,GAC7BA,GAASF,GAAOE,GAASD,ICA3BE,GAAiB,SAAAD,EAAK,CAAA,OAAI,OAAOA,GAAU,YAAeV,EAAQU,CAAK,GAAKd,EAAOc,EAAO,SAAAzB,EAAC,CAAA,OAAI,OAAOA,GAAM,WAAU,EAAE,SAAWyB,EAAM,QCHzIE,EAAiB,SAAAF,EAAK,CAAA,OAAI,OAAOA,GAAU,UAAY,CAAC,CAACA,EAAM,aCUzDG,GAAoB,UAAA,CAAA,MAAO,CAAE,oBAAqB,GAAM,oBAAqB,KAEnFC,EAAe,OAAS,CACtB,OAAQ,CACN,aAAc,UAAA,CAAA,OAAM,MACpB,QAAS,cACT,SAAUF,GAEZ,WAAY,CACV,aAAc,UAAA,GACd,QAAS,qBACT,SAAU,SAAAF,EAAK,CAAA,OAAIA,IAAU,QAAaE,EAAiBF,CAAK,IAElE,QAAS,CACP,aAAc,UAAA,GACd,QAAS,qBACT,SAAU,SAAAA,EAAK,CAAA,OAAIA,IAAU,QAAaE,EAAiBF,CAAK,IAElE,iBAAkB,CAChB,aAAc,UAAA,CAAA,MAAM,IACpB,QAAS,uBACT,SAAU,SAAAA,EAAK,CAAA,OAAIA,IAAU,IAAQA,IAAU,KAEjD,kBAAmB,CACjB,aAAc,UAAA,CAAA,OAAMG,GAAiB,GACrC,QAAS,8GACT,mBAAoB,GACpB,SAAU,SAAAH,EAAS,CAEjB,GAAI,OAAOA,GAAU,UAAY,CAACA,EAAO,MAAO,GAChD,IAAMK,EAAeX,EAAKM,CAAK,EACzBM,EAAcZ,EAAKS,GAAiB,CAAE,EAI5C,MAFI,EAAAjB,EAAOmB,EAAc,SAAAE,EAAC,CAAA,OAAInB,EAASkB,EAAaC,CAAC,EAAC,EAAE,OAASF,EAAa,QAE1EnB,EAAOQ,EAAKM,CAAK,EAAG,SAAAO,EAAC,CAAA,OAAI,OAAOP,EAAMO,CAAC,GAAM,UAAS,EAAE,OAAS,KAIzE,QAAS,CACP,aAAc,UAAA,CAAA,MAAM,CAAA,GACpB,QAAS,6CACT,SAAUN,IAEZ,UAAW,CACT,aAAc,UAAA,CAAA,MAAM,CAAA,GACpB,QAAS,6CACT,SAAUA,IAEZ,aAAc,CACZ,aAAc,UAAA,CAAA,MAAM,CAAA,GACpB,QAAS,6CACT,SAAUA,IAEZ,UAAW,CACT,aAAc,SAACO,EAAc,CAE3B,OAAI,OAAOA,GAAc,YACf,CACN,OAAQ,6BACR,SAAU,gCAGJ,CAAE,OAAQ,KAAM,SAAU,OAGtC,QAAS,oEACT,SAAU,SAACzB,EAAG,CAAA,OAEXA,GAAO,OAAOA,GAAQ,UAGrBmB,EAAiBnB,EAAI,MAAM,GAAKmB,EAAiBnB,EAAI,QAAQ,GAG/DG,EAAOQ,EAAKX,CAAG,EAAG,SAAAwB,EAAC,CAAA,MAAI,CAACnB,EAAS,CAAC,SAAU,UAAU,EAAGmB,CAAC,EAAC,EAAE,SAAW,IAE5E,kBAAmB,CACjB,aAAc,SAAAxB,EAAG,CAAA,MAAI,IACrB,QAAS,uBACT,SAAU,SAAAA,EAAG,CAAA,OAAIA,IAAQ,IAAQA,IAAQ,KAE3C,qBAAsB,CACpB,aAAc,UAAA,CAAA,OAAM,MACpB,QAAS,gCACT,SAAU,SAAAiB,EAAK,CAAA,OAAIA,IAAU,MAASV,EAAQU,CAAK,GAAKd,EAAOc,EAAO,SAAAzB,EAAC,CAAA,OAAI,OAAOA,GAAM,SAAQ,EAAE,SAAWyB,EAAM,SAErH,aAAc,CACZ,aAAc,UAAA,CAAA,MAAM,cACpB,QAAS,qBACT,SAAU,SAAAA,EAAK,CAAA,OAAI,OAAOA,GAAU,UAAYA,EAAM,SAExD,eAAgB,CACd,aAAc,UAAA,CAAA,MAAM,KACpB,QAAS,+BACT,SAAU,SAAAA,EAAK,CAAA,OAAIH,GAAS,EAAG,GAAG,EAAEG,CAAK,IAE3C,uBAAwB,CACtB,aAAc,UAAA,CAAA,OAAMtB,GACpB,QAAO,2DAA6DA,EAAiB,KAAK,GAAG,EAAC,IAC9F,SAAU,SAAAsB,EAAK,CAAA,OAAIA,IAAU,MAASV,EAAQU,CAAK,GAAKrB,EAAOqB,EAAO,SAAClB,EAAO2B,EAAc,CAC1F,OAAI3B,IAAU,GAAcA,EACrBM,EAASV,EAAkB+B,CAAS,GAC1C,EAAI,IAET,QAAS,CACP,aAAc,UAAA,GACd,QAAS,qBACT,SAAU,SAAAT,EAAK,CAAA,OAAIA,IAAU,QAAa,OAAOA,GAAU,WAE7D,KAAM,CACJ,aAAc,UAAA,CAAA,MAAO,CAAA,GACrB,QAAS,0DACT,SAAU,SAAAA,EAAK,CAAA,OACZA,IAAU,MACVA,GAASrB,EACRe,EAAKM,CAAK,EACV,SAAClB,EAAO4B,EAAG,CAAA,OAAK5B,GAASM,EAAS,CAAC,KAAM,QAAS,MAAM,EAAGsB,CAAG,GAC9D,EACF,IAEJ,SAAU,CACR,aAAc,UAAA,CAAA,MAAO,CAAA,GACrB,QAAS,sBACT,SAAU,SAACV,EAAK,CAAA,OAAK,OAAOA,GAAU,UAAYA,IAAU,OAE9D,OAAQ,CACN,aAAc,UAAA,GACd,QAAS,wEACT,SAAU,SAAAA,EAAK,CAAA,MACZ,CAACA,GACDA,GAASrB,EACR,CAAC,QAAS,OAAQ,OAAQ,OAAO,EACjC,SAACG,EAAO6B,EAAM,CAAA,OAAK7B,GAAS,OAAOkB,EAAMW,CAAM,GAAM,YACrD,EACF,IAEJ,aAAc,CACZ,aAAc,UAAA,CAAA,MAAM,CAAC,UAAU,GAC/B,QAAS,wCACT,SAAU,SAAAX,EAAK,CAAA,OACbV,EAAQU,CAAK,GAAKA,EAAM,SAAWd,EAAOc,EAAO,SAAAY,EAAC,CAAA,OAC/C,OAAOA,GAAM,UAAaA,GAAK,OAAOA,EAAE,MAAS,WACpD,EAAE,SAEN,QAAS,CACP,aAAc,UAAA,CAAA,MAAO,CAAA,GACrB,QAAS,uCACT,SAAU,SAAAZ,EAAK,CAAA,OACbV,EAAQU,CAAK,GAAKA,EAAM,SAAWd,EAAOc,EAAO,SAAAa,EAAC,CAAA,OAC/CA,GAAK,OAAOA,GAAM,UAAY,OAAOA,EAAE,MAAS,WACnD,EAAE,SAEN,aAAc,CACZ,aAAc,UAAA,CAAA,MAAM,CAAA,GACpB,QAAS,4DACT,SAAU,SAAAb,EAAK,CAAA,OACbV,EAAQU,CAAK,GAAKA,EAAM,SAAWd,EAAOc,EAAO,SAAAc,EAAO,CAAA,OACtDA,GAAW,OAAOA,GAAY,UAAY,OAAOA,EAAQ,MAAS,SACpE,EAAE,SAEN,0CAA2C,CACzC,aAAc,UAAA,CAAA,MAAM,IACpB,QAAS,uBACT,SAAU,SAAAd,EAAK,CAAA,OAAIA,IAAU,IAAQA,IAAU,MC5KnD,IAAAe,EAAiB,SAAUC,EAAQ,CACjC,QAAShC,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAIiC,EAAS,UAAUjC,CAAC,EACxB,QAAS0B,KAAOO,EACV,OAAO,UAAU,eAAe,KAAKA,EAAQP,CAAG,IAClDM,EAAON,CAAG,EAAIO,EAAOP,CAAG,GAI9B,OAAOM,GCRTE,EAAiB,SAACtC,EAAKC,EAAE,CAAA,OACvBF,EAAOC,EAAK,SAACE,EAAOK,EAAMH,EAAGJ,EAAG,CAAA,OAAKE,EAAM,OAAOD,EAAGM,EAAMH,EAAGJ,CAAG,CAAC,GAAG,CAAA,CAAE,0OCJzE,IAAQuC,GAAMf,EAAN,OAIRgB,GAAiB,CACf,aAAcL,EAAO,CAAA,EAAII,GAAO,aAAc,CAC5C,aAAc,UAAM,CAClB,MAAI,qBAAqB,KAAK,OAAO,SAAS,IAAI,EAAU,cACrD,cAEV,EACD,QAAOE,GAAA,CAAA,EACFF,GAAO,QAAO,CACjB,aAAc,UAAA,CAAA,MAAM,WAAS,EAE/B,OAAQJ,EAAO,CAAA,EAAII,GAAO,OAAQ,CAChC,aAAc,UAAA,CAAA,OAEX,OAAO,SAAY,aAAe,OAAO,QAAQ,OAAU,WACxDG,GAAkB,EAClB,QACP,GAGGA,GAAqB,UAAM,CAC/B,IAAMC,EAAS,CAAA,EACTC,EAAa,QAAQ,IAC3B,OAAAN,EAAI,CAAC,QAAS,OAAQ,OAAQ,OAAO,EAAG,SAACP,EAAW,CAClD,IAAMc,EAAgB,QAAQd,CAAM,EACpCY,EAAOZ,CAAM,EAAI,OAAOc,GAAkB,WACtCA,EAAc,KAAK,QAAS,WAAW,EACvCD,EAAW,KAAK,QAAS,WAAW,EACzC,EACMD,GCjCHG,GAAU,UAAA,CACd,SAAAA,EAAaC,EAASC,EAAUC,EAAMC,EAAwB,CAAxBA,IAAS,SAATA,EAAY,IAAI,MACpD,KAAK,KAAOD,EACZ,KAAK,QAAUF,EACf,KAAK,SAAWC,EAChB,KAAK,UAAYE,EAClB,IAAAC,EAAAL,EAAA,UAAA,OAAAK,EAED,OAAA,UAAU,CACR,MAAO,CACL,KAAM,KAAK,KACX,KAAM,KAAK,QACX,UAAW,KAAK,UAChB,SAAU,KAAK,WAElBL,GAAA,EAGHM,GAAiBN,SClBhB,SAASO,EAAMC,EAAS,CACrB,aAII,OAAOzD,GAAW,YAAcA,EAAO,IACvCA,EAAO,aAAc,CAAA,EAAIyD,CAAO,EACzB,OAAOC,GAAY,SAC1BA,EAAiBD,EAAO,EAExBD,EAAK,WAAaC,EAAO,IAE/B,KAAM,UAAW,CACf,aACA,SAASE,EAAUC,EAAG,CAClB,MAAO,CAAC,MAAM,WAAWA,CAAC,CAAC,GAAK,SAASA,CAAC,EAG9C,SAASC,EAAYC,EAAK,CACtB,OAAOA,EAAI,OAAO,CAAC,EAAE,YAAW,EAAKA,EAAI,UAAU,CAAC,EAGxD,SAASC,EAAQ3B,EAAG,CAChB,OAAO,UAAW,CACd,OAAO,KAAKA,CAAC,GAIrB,IAAI4B,EAAe,CAAC,gBAAiB,SAAU,WAAY,YAAY,EACnEC,EAAe,CAAC,eAAgB,YAAY,EAC5CC,EAAc,CAAC,WAAY,eAAgB,QAAQ,EACnDC,EAAa,CAAC,MAAM,EACpBC,EAAc,CAAC,YAAY,EAE3BC,EAAQL,EAAa,OAAOC,EAAcC,EAAaC,EAAYC,CAAW,EAElF,SAASE,EAAWxD,EAAK,CACrB,GAAKA,EACL,QAASP,EAAI,EAAGA,EAAI8D,EAAM,OAAQ9D,IAC1BO,EAAIuD,EAAM9D,CAAC,CAAC,IAAM,QAClB,KAAK,MAAQsD,EAAYQ,EAAM9D,CAAC,CAAC,CAAC,EAAEO,EAAIuD,EAAM9D,CAAC,CAAC,CAAC,EAK7D+D,EAAW,UAAY,CACnB,QAAS,UAAW,CAChB,OAAO,KAAK,MAEhB,QAAS,SAASC,EAAG,CACjB,GAAI,OAAO,UAAU,SAAS,KAAKA,CAAC,IAAM,iBACtC,MAAM,IAAI,UAAU,uBAAuB,EAE/C,KAAK,KAAOA,GAGhB,cAAe,UAAW,CACtB,OAAO,KAAK,YAEhB,cAAe,SAASA,EAAG,CACvB,GAAIA,aAAaD,EACb,KAAK,WAAaC,UACXA,aAAa,OACpB,KAAK,WAAa,IAAID,EAAWC,CAAC,MAElC,OAAM,IAAI,UAAU,6CAA6C,GAIzE,SAAU,UAAW,CACjB,IAAIC,EAAW,KAAK,YAAW,GAAM,GACjCC,EAAa,KAAK,cAAa,GAAM,GACrCC,EAAe,KAAK,gBAAe,GAAM,GACzCC,EAAe,KAAK,gBAAe,GAAM,GAC7C,OAAI,KAAK,UAAS,EACVH,EACO,WAAaA,EAAW,IAAMC,EAAa,IAAMC,EAAe,IAEpE,UAAYD,EAAa,IAAMC,EAEtCC,EACOA,EAAe,KAAOH,EAAW,IAAMC,EAAa,IAAMC,EAAe,IAE7EF,EAAW,IAAMC,EAAa,IAAMC,IAInDJ,EAAW,WAAa,SAAgCR,EAAK,CACzD,IAAIc,EAAiBd,EAAI,QAAQ,GAAG,EAChCe,EAAef,EAAI,YAAY,GAAG,EAElCa,EAAeb,EAAI,UAAU,EAAGc,CAAc,EAC9CE,EAAOhB,EAAI,UAAUc,EAAiB,EAAGC,CAAY,EAAE,MAAM,GAAG,EAChEE,EAAiBjB,EAAI,UAAUe,EAAe,CAAC,EAEnD,GAAIE,EAAe,QAAQ,GAAG,IAAM,EAChC,IAAIC,EAAQ,gCAAgC,KAAKD,EAAgB,EAAE,EAC/DP,EAAWQ,EAAM,CAAC,EAClBP,EAAaO,EAAM,CAAC,EACpBN,EAAeM,EAAM,CAAC,EAG9B,OAAO,IAAIV,EAAW,CAClB,aAAcK,EACd,KAAMG,GAAQ,OACd,SAAUN,EACV,WAAYC,GAAc,OAC1B,aAAcC,GAAgB,OACjC,GAGL,QAASnE,EAAI,EAAGA,EAAIyD,EAAa,OAAQzD,IACrC+D,EAAW,UAAU,MAAQT,EAAYG,EAAazD,CAAC,CAAC,CAAC,EAAIwD,EAAQC,EAAazD,CAAC,CAAC,EACpF+D,EAAW,UAAU,MAAQT,EAAYG,EAAazD,CAAC,CAAC,CAAC,EAAK,SAAS6B,EAAG,CACtE,OAAO,SAASmC,EAAG,CACf,KAAKnC,CAAC,EAAI,EAAQmC,IAEvBP,EAAazD,CAAC,CAAC,EAGtB,QAAS0E,EAAI,EAAGA,EAAIhB,EAAa,OAAQgB,IACrCX,EAAW,UAAU,MAAQT,EAAYI,EAAagB,CAAC,CAAC,CAAC,EAAIlB,EAAQE,EAAagB,CAAC,CAAC,EACpFX,EAAW,UAAU,MAAQT,EAAYI,EAAagB,CAAC,CAAC,CAAC,EAAK,SAAS7C,EAAG,CACtE,OAAO,SAASmC,EAAG,CACf,GAAI,CAACZ,EAAUY,CAAC,EACZ,MAAM,IAAI,UAAUnC,EAAI,mBAAmB,EAE/C,KAAKA,CAAC,EAAI,OAAOmC,CAAC,IAEvBN,EAAagB,CAAC,CAAC,EAGtB,QAASnD,EAAI,EAAGA,EAAIoC,EAAY,OAAQpC,IACpCwC,EAAW,UAAU,MAAQT,EAAYK,EAAYpC,CAAC,CAAC,CAAC,EAAIiC,EAAQG,EAAYpC,CAAC,CAAC,EAClFwC,EAAW,UAAU,MAAQT,EAAYK,EAAYpC,CAAC,CAAC,CAAC,EAAK,SAASM,EAAG,CACrE,OAAO,SAASmC,EAAG,CACf,KAAKnC,CAAC,EAAI,OAAOmC,CAAC,IAEvBL,EAAYpC,CAAC,CAAC,EAGrB,OAAOwC,EACV,aC9IA,SAASd,EAAMC,EAAS,CACrB,aAII,OAAOzD,GAAW,YAAcA,EAAO,IACvCA,EAAO,kBAAmB,CAAC,YAAY,EAAGyD,CAAO,EAC1C,OAAOyB,IAAY,SAC1BA,GAAiBzB,EAAQC,CAAqB,EAE9CF,EAAK,eAAiBC,EAAQD,EAAK,UAAU,IAEnD,KAAM,SAASc,EAAY,CACzB,MAAO,CACH,UAAW,SAAmCa,EAAM,CAChD,IAAIC,EAAQ,CAAA,EACRC,EAAe,GAEf,OAAOF,GAAS,UAAY,OAAOA,EAAK,cAAiB,WACzDE,EAAeF,EAAK,cAIxB,QADIG,EAAO,UAAU,OACdA,GAAQF,EAAM,OAASC,GAAgBC,EAAK,WAAc,CAG7D,QADIR,EAAO,IAAI,MAAMQ,EAAK,UAAa,MAAM,EACpC/E,EAAI,EAAGA,EAAIuE,EAAK,OAAQ,EAAEvE,EAC/BuE,EAAKvE,CAAC,EAAI+E,EAAK,UAAa/E,CAAC,EAE7B,gCAAgC,KAAK+E,EAAK,SAAQ,CAAE,EACpDF,EAAM,KAAK,IAAId,EAAW,CAAC,aAAc,OAAO,IAAM,OAAW,KAAMQ,EAAK,CAAC,EAE7EM,EAAM,KAAK,IAAId,EAAW,CAAC,KAAMQ,EAAK,CAAC,EAG3C,GAAI,CACAQ,EAAOA,EAAK,aACPC,EAAG,CACR,OAGR,OAAOH,IAGlB,aC5CA,SAAS5B,EAAMC,EAAS,CACrB,aAII,OAAOzD,GAAW,YAAcA,EAAO,IACvCA,EAAO,qBAAsB,CAAC,YAAY,EAAGyD,CAAO,EAC7C,OAAO+B,IAAY,SAC1BA,GAAiB/B,EAAQC,CAAqB,EAE9CF,EAAK,iBAAmBC,EAAQD,EAAK,UAAU,IAErD,KAAM,SAA0Bc,EAAY,CAC1C,aAEA,IAAImB,EAA8B,eAC9BC,EAAyB,iCACzBC,EAA4B,8BAEhC,MAAO,CAOH,MAAO,SAAiCC,EAAO,CAC3C,GAAI,OAAOA,EAAM,YAAe,aAAe,OAAOA,EAAM,iBAAiB,GAAM,YAC/E,OAAO,KAAK,WAAWA,CAAK,EACzB,GAAIA,EAAM,OAASA,EAAM,MAAM,MAAMF,CAAsB,EAC9D,OAAO,KAAK,YAAYE,CAAK,EAC1B,GAAIA,EAAM,MACb,OAAO,KAAK,gBAAgBA,CAAK,EAEjC,MAAM,IAAI,MAAM,iCAAiC,GAKzD,gBAAiB,SAA2CC,EAAS,CAEjE,GAAIA,EAAQ,QAAQ,GAAG,IAAM,GACzB,MAAO,CAACA,CAAO,EAGnB,IAAIC,EAAS,+BACTd,EAAQc,EAAO,KAAKD,EAAQ,QAAQ,QAAS,EAAE,CAAC,EACpD,MAAO,CAACb,EAAM,CAAC,EAAGA,EAAM,CAAC,GAAK,OAAWA,EAAM,CAAC,GAAK,MAAS,GAGlE,YAAa,SAAuCY,EAAO,CACvD,IAAIG,EAAWH,EAAM,MAAM,MAAM;CAAI,EAAE,OAAO,SAASI,EAAM,CACzD,MAAO,CAAC,CAACA,EAAK,MAAMN,CAAsB,GAC3C,IAAI,EAEP,OAAOK,EAAS,IAAI,SAASC,EAAM,CAC3BA,EAAK,QAAQ,QAAQ,EAAI,KAEzBA,EAAOA,EAAK,QAAQ,aAAc,MAAM,EAAE,QAAQ,+BAAgC,EAAE,GAExF,IAAIC,EAAgBD,EAAK,QAAQ,OAAQ,EAAE,EAAE,QAAQ,eAAgB,GAAG,EAIpEE,EAAWD,EAAc,MAAM,0BAA0B,EAG7DA,EAAgBC,EAAWD,EAAc,QAAQC,EAAS,CAAC,EAAG,EAAE,EAAID,EAEpE,IAAIE,EAASF,EAAc,MAAM,KAAK,EAAE,MAAM,CAAC,EAE3CG,EAAgB,KAAK,gBAAgBF,EAAWA,EAAS,CAAC,EAAIC,EAAO,IAAG,CAAE,EAC1ExB,EAAewB,EAAO,KAAK,GAAG,GAAK,OACnC3B,EAAW,CAAC,OAAQ,aAAa,EAAE,QAAQ4B,EAAc,CAAC,CAAC,EAAI,GAAK,OAAYA,EAAc,CAAC,EAEnG,OAAO,IAAI9B,EAAW,CAClB,aAAcK,EACd,SAAUH,EACV,WAAY4B,EAAc,CAAC,EAC3B,aAAcA,EAAc,CAAC,EAC7B,OAAQJ,EACX,GACF,IAAI,GAGX,gBAAiB,SAA2CJ,EAAO,CAC/D,IAAIG,EAAWH,EAAM,MAAM,MAAM;CAAI,EAAE,OAAO,SAASI,EAAM,CACzD,MAAO,CAACA,EAAK,MAAML,CAAyB,GAC7C,IAAI,EAEP,OAAOI,EAAS,IAAI,SAASC,EAAM,CAM/B,GAJIA,EAAK,QAAQ,SAAS,EAAI,KAC1BA,EAAOA,EAAK,QAAQ,mDAAoD,KAAK,GAG7EA,EAAK,QAAQ,GAAG,IAAM,IAAMA,EAAK,QAAQ,GAAG,IAAM,GAElD,OAAO,IAAI1B,EAAW,CAClB,aAAc0B,EACjB,EAED,IAAIK,EAAoB,6BACpBC,EAAUN,EAAK,MAAMK,CAAiB,EACtC1B,EAAe2B,GAAWA,EAAQ,CAAC,EAAIA,EAAQ,CAAC,EAAI,OACpDF,EAAgB,KAAK,gBAAgBJ,EAAK,QAAQK,EAAmB,EAAE,CAAC,EAE5E,OAAO,IAAI/B,EAAW,CAClB,aAAcK,EACd,SAAUyB,EAAc,CAAC,EACzB,WAAYA,EAAc,CAAC,EAC3B,aAAcA,EAAc,CAAC,EAC7B,OAAQJ,EACX,GAEN,IAAI,GAGX,WAAY,SAAsCT,EAAG,CACjD,MAAI,CAACA,EAAE,YAAeA,EAAE,QAAQ,QAAQ;CAAI,EAAI,IAC5CA,EAAE,QAAQ,MAAM;CAAI,EAAE,OAASA,EAAE,WAAW,MAAM;CAAI,EAAE,OACjD,KAAK,YAAYA,CAAC,EACjBA,EAAE,MAGH,KAAK,aAAaA,CAAC,EAFnB,KAAK,aAAaA,CAAC,GAMlC,YAAa,SAAuCA,EAAG,CAKnD,QAJIgB,EAAS,oCACTC,EAAQjB,EAAE,QAAQ,MAAM;CAAI,EAC5BrE,EAAS,CAAA,EAEJX,EAAI,EAAGC,EAAMgG,EAAM,OAAQjG,EAAIC,EAAKD,GAAK,EAAG,CACjD,IAAIkG,EAAQF,EAAO,KAAKC,EAAMjG,CAAC,CAAC,EAC5BkG,GACAvF,EAAO,KAAK,IAAIoD,EAAW,CACvB,SAAUmC,EAAM,CAAC,EACjB,WAAYA,EAAM,CAAC,EACnB,OAAQD,EAAMjG,CAAC,EAClB,CAAC,EAIV,OAAOW,GAGX,aAAc,SAAwCqE,EAAG,CAKrD,QAJIgB,EAAS,6DACTC,EAAQjB,EAAE,WAAW,MAAM;CAAI,EAC/BrE,EAAS,CAAA,EAEJX,EAAI,EAAGC,EAAMgG,EAAM,OAAQjG,EAAIC,EAAKD,GAAK,EAAG,CACjD,IAAIkG,EAAQF,EAAO,KAAKC,EAAMjG,CAAC,CAAC,EAC5BkG,GACAvF,EAAO,KACH,IAAIoD,EAAW,CACX,aAAcmC,EAAM,CAAC,GAAK,OAC1B,SAAUA,EAAM,CAAC,EACjB,WAAYA,EAAM,CAAC,EACnB,OAAQD,EAAMjG,CAAC,EAClB,CACL,EAIR,OAAOW,GAIX,aAAc,SAAwC0E,EAAO,CACzD,IAAIG,EAAWH,EAAM,MAAM,MAAM;CAAI,EAAE,OAAO,SAASI,EAAM,CACzD,MAAO,CAAC,CAACA,EAAK,MAAMP,CAA2B,GAAK,CAACO,EAAK,MAAM,mBAAmB,GACpF,IAAI,EAEP,OAAOD,EAAS,IAAI,SAASC,EAAM,CAC/B,IAAIG,EAASH,EAAK,MAAM,GAAG,EACvBI,EAAgB,KAAK,gBAAgBD,EAAO,IAAG,CAAE,EACjDO,EAAgBP,EAAO,MAAK,GAAM,GAClCxB,EAAe+B,EACd,QAAQ,iCAAkC,IAAI,EAC9C,QAAQ,aAAc,EAAE,GAAK,OAC9BC,EACAD,EAAa,MAAM,aAAa,IAChCC,EAAUD,EAAa,QAAQ,qBAAsB,IAAI,GAE7D,IAAI5B,EAAQ6B,IAAY,QAAaA,IAAY,4BAC7C,OAAYA,EAAQ,MAAM,GAAG,EAEjC,OAAO,IAAIrC,EAAW,CAClB,aAAcK,EACd,KAAMG,EACN,SAAUsB,EAAc,CAAC,EACzB,WAAYA,EAAc,CAAC,EAC3B,aAAcA,EAAc,CAAC,EAC7B,OAAQJ,EACX,GACF,IAAI,IAGlB,ECzMD,IAAAY,GAAiBpB,GCAjBqB,EAAiB,SAAUC,EAAMC,EAAUC,EAAO7B,EAAM,CACtD,IAAI8B,EAAe9B,GAAQA,EAAK,aAAeA,EAAK,aAAe,CAAA,EAC/D+B,EAAgB/B,GAAQA,EAAK,cAAgBA,EAAK,cAAgB,CAAA,EACtE,OAAO,KAAK,UACVgC,GAA2BL,EAAMG,EAAcC,CAAa,EAC5DH,EACAC,CACF,GAGEI,GAAY,GACZC,GAAY,KACZC,GAAsB,EAEtBC,EAAmB,MAEvB,SAASC,GAASC,EAAG,CACnB,OAAOA,aAAa,OAClB,uCAAuC,KAAK,OAAO,UAAU,SAAS,KAAKA,CAAC,CAAC,EAGjF,SAASC,GAAeC,EAAK,CAC3B,MAAO,aAAeA,EAAMA,EAAI,QAAU,KAAO,IAGnD,SAASC,GAAMC,EAAUC,EAAQ,CAC/B,QAASvH,EAAI,EAAGC,EAAMqH,EAAS,OAAQtH,EAAIC,EAAKD,IAC9C,GAAIsH,EAAStH,CAAC,IAAMuH,EAAQ,MAAO,GAErC,MAAO,GAIT,SAASC,GAAcC,EAAOC,EAAM,CAClC,QAAS1H,EAAI,EAAGC,EAAMwH,EAAM,OAAQzH,EAAIC,EAAKD,IAC3C,GAAI0H,EAAK,QAAQD,EAAMzH,CAAC,CAAC,IAAM,EAAG,MAAO,GAE3C,MAAO,GAGT,SAAS2H,GAAcC,EAAUlG,EAAK,CACpC,QAAS1B,EAAI,EAAGC,EAAM2H,EAAS,OAAQ5H,EAAIC,EAAKD,IAE9C,GADI,OAAO4H,EAAS5H,CAAC,GAAM,UAAY4H,EAAS5H,CAAC,EAAE,YAAW,IAAO0B,EAAI,YAAW,GAChFkG,EAAS5H,CAAC,GAAK,OAAO4H,EAAS5H,CAAC,EAAE,MAAS,YAAc4H,EAAS5H,CAAC,EAAE,KAAK0B,CAAG,EAAG,MAAO,GAE7F,MAAO,GAGT,SAASmG,GAAStH,EAAK,CACrB,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAG,IAAM,iBAGjD,SAASuH,GAAevH,EAAKK,EAAM,CACjC,GAAI,CACF,OAAOL,EAAIK,CAAI,QACRwG,EAAK,CACZ,OAAOD,GAAcC,CAAG,GAI5B,SAASR,GAA4BrG,EAAKmG,EAAcC,EAAe,CACrE,IAAIoB,EAAO,CAAA,EACPC,EAAQ,EAEZ,SAASC,EAAO1H,EAAKmH,EAAM,CACzB,SAASQ,GAAiB,CACxB,OAAOR,EAAK,OAASX,IAAuBiB,EAAQlB,GAMtD,GAHAkB,IAEIN,EAAK,OAASb,IACdqB,EAAa,EAAI,OAAOlB,EAC5B,GAAIzG,IAAQ,MAAQ,OAAOA,GAAQ,SAAU,OAAOA,EACpD,GAAI8G,GAAKU,EAAMxH,CAAG,EAAG,MAAO,aAI5B,GAFAwH,EAAK,KAAKxH,CAAG,EAET,OAAOA,EAAI,QAAW,WACxB,GAAI,CAGFyH,IACA,IAAIG,EAAUF,EAAM1H,EAAI,OAAM,EAAImH,CAAI,EACtC,OAAAK,EAAK,IAAG,EACDI,QACAf,EAAK,CACZ,OAAOD,GAAcC,CAAG,EAI5B,IAAIgB,EAAKnB,GAAQ1G,CAAG,EACpB,GAAI6H,EAAI,CACNJ,IACA,IAAIK,EAAUJ,EAAM,CAAE,KAAM1H,EAAI,KAAM,QAASA,EAAI,SAAWmH,CAAI,EAClE,OAAAK,EAAK,IAAG,EACDM,EAGT,GAAIR,GAAQtH,CAAG,EAAG,CAEhB,QADI+H,EAAU,CAAA,EACLtI,EAAI,EAAGC,EAAMM,EAAI,OAAQP,EAAIC,EAAKD,IAAK,CAC9C,GAAIkI,EAAa,EAAI,CACnBI,EAAQ,KAAKtB,CAAgB,EAC7B,MAEFsB,EAAQ,KAAKL,EAAM1H,EAAIP,CAAC,EAAG0H,EAAK,OAAO,IAAI,CAAC,CAAC,EAE/C,OAAAK,EAAK,IAAG,EACDO,EAGT,IAAI3H,EAAS,CAAA,EACb,GAAI,CACF,QAASC,KAAQL,EACf,GAAK,OAAO,UAAU,eAAe,KAAKA,EAAKK,CAAI,EACnD,IAAI4G,GAAab,EAAee,EAAK,KAAK,GAAG,CAAC,GAAKC,GAAajB,EAAc9F,CAAI,EAAG,CACnFD,EAAOC,CAAI,EAAI,aACf,SAEF,GAAIsH,EAAa,EAAI,CACnBvH,EAAOC,CAAI,EAAIoG,EACf,MAEFrG,EAAOC,CAAI,EAAIqH,EAAMH,GAAcvH,EAAKK,CAAI,EAAG8G,EAAK,OAAO9G,CAAI,CAAC,SAE3DoE,EAAG,CAAA,CACZ,OAAA+C,EAAK,IAAG,EACDpH,EAGT,OAAOsH,EAAM1H,EAAK,CAAA,CAAE,EC9HtB,SAASgI,GAAKC,EAAkBC,EAAqBC,EAAMC,EAAS,CAClE,GAAI,OAAOD,GAAS,SAIpB,CAAIC,IAAY,OACdA,EAAU,KACDA,IAAY,MAAQ,OAAOA,GAAY,WAChDA,EAAUrC,EAAcqC,CAAO,GAGjC,IAAMC,EAAgBH,EAAoBC,CAAI,EAC9C,GAAI,OAAOE,GAAkB,SAAU,CACrCJ,EAAiBI,CAAa,EAAI,CAAE,KAAAF,EAAM,QAAAC,GAC1C,OAGFH,EAAiB,KAAK,CAAE,KAAAE,EAAM,QAAAC,EAAS,EACvCF,EAAoBC,CAAI,EAAIF,EAAiB,OAAS,GAGxD,SAASK,GAAOL,EAAkBM,EAAaL,EAAqB,CAClE,GAAKnI,EAAQwI,CAAW,EAIxB,SAAS9I,EAAI,EAAGA,EAAI8I,EAAY,OAAQ,EAAE9I,EAAG,CAC3C,IAAM8B,EAAUgH,EAAY9I,CAAC,EAEzB8B,IAAY,MAAQ,OAAOA,GAAY,UAK3CyG,GAAIC,EAAkBC,EAAqB3G,EAAQ,KAAMA,EAAQ,OAAO,EAG1E,OAAO0G,GAMT,SAASO,GAAYC,EAAc,CACjC,OAAO9G,EACLhC,EAAO8I,EAAc,OAAO,EAC5B,SAAAC,EAAuB,CAAA,IAApBP,EAAIO,EAAJ,KAAMN,EAAOM,EAAP,QACDC,EAAO,CAAE,YAAaR,GAG5B,OAAI,OAAOC,GAAY,WACrBO,EAAK,QAAUP,GAGVO,EAEX,EAGF,SAASC,GAAOC,EAAUC,EAAeX,EAAM,CAC7C,IAAME,EAAgBS,EAAcX,CAAI,EACpC,OAAOE,GAAkB,WAC3BQ,EAASR,CAAa,EAAI,KAC1B,OAAOS,EAAcX,CAAI,GAI7B,IAAAY,EAAiB,CAAE,IAAAf,GAAK,MAAAY,GAAO,MAAAN,GAAO,WAAAE,ICvEtCQ,EAAiB,SAAAnC,EAAG,CAAA,MAClB,CAAC,CAACA,IACD,CAAC,CAACA,EAAI,OAAS,CAAC,CAACA,EAAI,YAAc,CAAC,CAACA,EAAI,iBAAiB,IAC3D,OAAQA,EAAI,OAASA,EAAI,YAAcA,EAAI,iBAAiB,IAAO,UACnEA,EAAI,QAAaA,EAAI,KAAI,KAAKA,EAAI,SCApCoC,GAAiBC,GASjB,SAASA,GAAQzI,EAAO,CACtB,OAAQ,OAAO,UAAU,SAAS,KAAKA,CAAK,EAAC,CAC3C,IAAK,iBAAkB,MAAO,GAC9B,IAAK,qBAAsB,MAAO,GAClC,IAAK,wBAAyB,MAAO,GACrC,QAAS,OAAOA,aAAiB,OCnBrC,IAAA0I,EAAiBF,GCEXG,GAAM,SAACC,EAAOC,EAASC,EAAUC,EAAa,CAAA,IAAAC,EAClD,GAAKH,EACL,KAAII,EAGJ,GAAIH,IAAa,KAAM,OAAOI,GAAMN,EAAOC,CAAO,EAG9C,OAAOC,GAAa,WAAUG,EAAUH,GACxC,OAAOA,GAAa,WAAUG,GAAOD,EAAA,CAAA,EAAAA,EAAMF,CAAQ,EAAGC,EAAQC,IAG7DC,IAGDJ,IAAY,aAAeA,IAAY,eAAiBA,IAAY,cAKnED,EAAMC,CAAO,IAAGD,EAAMC,CAAO,EAAI,CAAA,GAGtCD,EAAMC,CAAO,EAAI9H,EAAO,CAAA,EAAI6H,EAAMC,CAAO,EAAGI,CAAO,MAG/CE,GAAM,SAACP,EAAOC,EAASnI,EAAQ,CACnC,GAAI,OAAOmI,GAAY,SACvB,IAAI,CAACnI,EACH,OAAOkI,EAAMC,CAAO,EAEtB,GAAID,EAAMC,CAAO,EACf,OAAOD,EAAMC,CAAO,EAAEnI,CAAG,IAKvBwI,GAAQ,SAACN,EAAOC,EAASnI,EAAQ,CACrC,GAAI,OAAOmI,GAAY,SAGvB,IAAI,CAACnI,EAAK,CACR,OAAOkI,EAAMC,CAAO,EACpB,OAIEA,IAAY,aAAeA,IAAY,eAAiBA,IAAY,aAKpED,EAAMC,CAAO,GACf,OAAOD,EAAMC,CAAO,EAAEnI,CAAG,IAI7B0I,EAAiB,CAAE,IAAAT,GAAK,IAAAQ,GAAK,MAAAD,2OClDW,IAElCG,EAAK,UAAA,CACT,SAAAA,EAAaC,EAAYC,EAAcC,EAAiBC,EAAsCC,EAAe,CAAtEF,IAAU,SAAVA,EAAa,CAAA,GAAIC,IAAY,SAAZA,EAAeE,GAAmB,GACxF,KAAK,OAAS,OACd,KAAK,QAAU,OACf,KAAK,aAAe,OACpB,KAAK,cAAgBD,EAErB,KAAK,cAAgBD,EACrB,KAAK,SAAW,KAAK,cAAc,SACnC,KAAK,UAAY,KAAK,cAAc,UAEpC,KAAK,IAAM,CAAA,EACX,KAAK,OAAS,CAAA,EACd,KAAK,QAAU,CAAA,EAEf,KAAK,YAAc,CAAA,EACnB,KAAK,QAAU,CAAA,EAEf,KAAK,UAAY,CAAA,EACjB,KAAK,UAAY,CAAA,EACjB,KAAK,eAAiB,CAAA,EACtB,KAAK,MAAQ,CAAA,EACb,KAAK,SAAW,OAChB,KAAK,aAAe,OAEpB,KAAK,OAAS,CACZG,GAAmBN,EAAYC,EAAcF,EAAM,OAAQG,CAAU,CAAC,EAQzE,IAAAzH,EAAAsH,EAAA,UAAA,OAAAtH,EAED,YAAA,SAAa8G,EAASC,EAAUC,EAAU,CACxC,OAAOK,EAAiB,IAAI,KAAK,UAAWP,EAASC,EAAUC,CAAQ,GAGzEhH,EAOA,oBAAA,SAAqB8H,EAASC,EAAQ,CAChC,OAAOD,GAAY,WACrB,KAAK,aAAYE,GAAA,CAAK,QAAAF,GAAY,OAAOC,GAAW,SAAW,CAAE,OAAAA,GAAW,CAAA,CAAG,IAElF/H,EAED,YAAA,SAAa8G,EAASnI,EAAK,CACzB,OAAO0I,EAAiB,IAAI,KAAK,UAAWP,EAASnI,CAAG,GACzDqB,EAED,cAAA,SAAe8G,EAASnI,EAAK,CAC3B,OAAO0I,EAAiB,MAAM,KAAK,UAAWP,EAASnI,CAAG,GAC3DqB,EAED,eAAA,SAAgB2F,EAAMC,EAAgB,CAAhBA,IAAO,SAAPA,EAAU,MAC9BW,EAAoB,IAAI,KAAK,UAAW,KAAK,eAAgBZ,EAAMC,CAAO,GAC3E5F,EAED,gBAAA,SAAiBiG,EAAc,CAC7BM,EAAoB,MAAM,KAAK,UAAWN,EAAc,KAAK,cAAc,GAC5EjG,EAED,gBAAA,UAAmB,CACjB,OAAOuG,EAAoB,WAAW,KAAK,SAAS,GACrDvG,EAED,iBAAA,SAAkB2F,EAAM,CACtBY,EAAoB,MAAM,KAAK,UAAW,KAAK,eAAgBZ,CAAI,GACpE3F,EAED,kBAAA,UAAqB,CACnB,KAAK,UAAY,CAAA,EACjB,KAAK,eAAiB,CAAA,GACvBA,EAED,QAAA,UAAW,CACT,OAAO,KAAK,OACbA,EAED,QAAA,SAASiI,EAAIC,EAAOvC,EAAM,CACxB,KAAK,MAAQ,CAAE,GAAAsC,EAAI,MAAAC,EAAO,KAAAvC,IAC3B3F,EAED,OAAA,UAAU,CACR,MAAO,CACL,eAAgB,IAChB,WAAYb,EAAI,KAAK,OAAQ,SAAAkG,EAAE,CAAA,OAAIrG,EAAO,CAAA,EAAIqG,EAAI,CAAE,QAASA,EAAG,aAAc,EAAC,EAC/E,SAAU,KAAK,SACf,UAAW,KAAK,cAAc,UAC9B,eAAgB,KAAK,cAAc,eACnC,IAAK,KAAK,IACV,OAAQ,KAAK,OACb,QAAS,KAAK,QACd,YAAa,KAAK,YAClB,QAAS,KAAK,QACd,aAAc,KAAK,aACnB,SAAU,KAAK,UACf,KAAM,KAAK,MACX,QAAS,KAAK,SACd,aAAc,KAAK,gBAAe,EAClC,YAAa,KAAK,eAErBiC,GAAA,EAKGa,GAAmB,SAAAC,EAAS,CAChC,IAAM5L,EAAI,CACR,KAAM4L,EAAM,SACZ,OAAQC,GAAsBD,EAAM,YAAY,EAChD,WAAYA,EAAM,WAClB,aAAcA,EAAM,aACpB,KAAM,OACN,UAAW,QAMb,OAAI5L,EAAE,WAAa,IAAM,CAACA,EAAE,MAAQ,CAACA,EAAE,SACrCA,EAAE,KAAO,eAEJA,GAGH6L,GAAwB,SAAA1C,EAAI,CAAA,MAAI,iBAAiB,KAAKA,CAAI,EAAI,cAAgBA,GAE9EiC,GAAsB,UAAA,CAAA,MAAO,CACjC,UAAW,GACX,SAAU,UACV,eAAgB,CAAE,KAAM,sBAGpBU,GAAe,SAAC9H,EAAG,CAAA,OAAK,OAAOA,GAAQ,SAAWA,EAAM,IAE9D,SAASqH,GAAoBN,EAAYC,EAAc1H,EAAM2H,EAAY,CACvE,MAAO,CACL,WAAYa,GAAaf,CAAU,EACnC,aAAce,GAAad,CAAY,EACvC,KAAA1H,EACA,WAAYlD,EAAO6K,EAAY,SAAC1K,EAAOqL,EAAU,CAC/C,IAAM5L,EAAI2L,GAAiBC,CAAK,EAEhC,GAAI,CACF,OAAI,KAAK,UAAU5L,CAAC,IAAM,KAAaO,EAChCA,EAAM,OAAOP,CAAC,QACdyF,EAAG,CACV,OAAOlF,IAER,CAAA,CAAE,GAIT,SAASwL,GAAejG,EAAO,CAC7B,OAAIA,EAAM,MACR,CAAQA,CAAK,EAAA,OAAKiG,GAAcjG,EAAM,KAAK,CAAC,EAErC,CAACA,CAAK,EAMjBgF,EAAM,cAAgB,SAAUhF,EAAOkG,EAAmBC,EAAuB,CAC/E,GAAIjC,EAASlE,CAAK,EAAG,OAAOgB,GAAiB,MAAMhB,CAAK,EAAE,MAAMkG,CAAiB,EAEjF,GAAI,CACF,OAAOrL,EAAOyE,GAAe,UAAS,EAAI,SAAAwG,EAAK,CAAA,OAC5CA,EAAM,cAAgB,IAAI,QAAQ,kBAAkB,IAAM,GAC7D,EAAE,MAAM,EAAIK,CAAqB,QAC1BxG,EAAG,CACV,MAAO,CAAA,IAIXqF,EAAM,OAAS,SAAUoB,EAAYC,EAAmBjB,EAAckB,EAAWJ,EAAuBhJ,EAAQ,CAA/BgJ,IAAiB,SAAjBA,EAAoB,GACnG,IAAAK,EAAgCC,GAAeJ,EAAYC,EAAmBC,EAAWpJ,CAAM,EAAxF8C,EAAKuG,EAAA,CAAA,EAAEE,EAAcF,EAAA,CAAA,EACxBG,EACJ,GAAI,CACF,IAAMvB,EAAaH,EAAM,cACvBhF,EAKAyG,EAAiB,EAAI,EAAIA,EAAiBP,EAAoB,EAG9D,EAAIA,CACN,EACAQ,EAAQ,IAAI1B,EAAMhF,EAAM,KAAMA,EAAM,QAASmF,EAAYC,EAAcgB,CAAU,QAC1EzG,EAAG,CACV+G,EAAQ,IAAI1B,EAAMhF,EAAM,KAAMA,EAAM,QAAS,CAAA,EAAIoF,EAAcgB,CAAU,EAK3E,GAHIpG,EAAM,OAAS,gBACjB0G,EAAM,YAAW,GAAIJ,EAAa,sBAAuBK,GAAiBP,CAAU,CAAC,EAEnFpG,EAAM,MAAO,CAAA,IAAA4G,EACTC,EAASZ,GAAcjG,CAAK,EAAE,MAAM,CAAC,EACrC8G,EAAmBjK,EAAIgK,EAAQ,SAACE,EAAU,CAE9C,IAAM5B,EAAcd,EAAQ0C,CAAK,GAAK7C,EAAS6C,CAAK,EAAK/F,GAAiB,MAAM+F,CAAK,EAAI,CAAA,EACzFC,EAAgBR,GAAeO,EAAO,GAAM,aAAa,EAAlD/G,EAAKgH,EAAA,CAAA,EACZ,OAAIhH,EAAM,OAAS,gBAAgB0G,EAAM,YAAY,cAAeC,GAAiBI,CAAK,CAAC,EACpFxB,GAAmBvF,EAAM,KAAMA,EAAM,QAASgF,EAAM,OAAQG,CAAU,EAC9E,GAEDyB,EAAAF,EAAM,QAAO,KAAI,MAAAE,EAAIE,CAAgB,EAGvC,OAAOJ,GAGT,IAAMC,GAAmB,SAAC5E,EAAQ,CAChC,OAAIA,IAAQ,KAAa,OACrBA,IAAQ,OAAkB,YACvBA,GAGHyE,GAAiB,SAACJ,EAAYC,EAAmBC,EAAWpJ,EAAW,CAC3E,IAAI8C,EACAyG,EAAiB,EAEfQ,EAAyB,SAACC,EAAW,CACzC,IAAMC,EAAQb,IAAc,cAAgB,MAAQ,WAChDpJ,GAAQA,EAAO,KAAQoJ,EAAS,IAAIa,EAAI,kBAAkBD,EAAM,GAAG,EACvE,IAAMnF,EAAM,IAAI,MAASuE,EAAS,IAAIa,EAAI,sBAAsBb,EAAS,wBAAwB,EACjG,OAAAvE,EAAI,KAAO,eACJA,GAWT,GAAI,CAACsE,EACChC,EAAQ+B,CAAU,EACpBpG,EAAQoG,GAERpG,EAAQiH,EAAuB,OAAOb,CAAU,EAChDK,GAAkB,OAGpB,QAAQ,OAAOL,EAAU,CACvB,IAAK,SACL,IAAK,SACL,IAAK,UACHpG,EAAQ,IAAI,MAAM,OAAOoG,CAAU,CAAC,EACpCK,GAAkB,EAClB,MACF,IAAK,WACHzG,EAAQiH,EAAuB,UAAU,EACzCR,GAAkB,EAClB,MACF,IAAK,SACCL,IAAe,MAAQ/B,EAAQ+B,CAAU,EAC3CpG,EAAQoG,EACCA,IAAe,MAAQgB,GAAmBhB,CAAU,GAC7DpG,EAAQ,IAAI,MAAMoG,EAAW,SAAWA,EAAW,YAAY,EAC/DpG,EAAM,KAAOoG,EAAW,MAAQA,EAAW,WAC3CK,GAAkB,IAElBzG,EAAQiH,EAAuBb,IAAe,KAAO,OAAS,oBAAoB,EAClFK,GAAkB,GAEpB,MACF,QACEzG,EAAQiH,EAAuB,SAAS,EACxCR,GAAkB,EAIxB,GAAI,CAACvC,EAASlE,CAAK,EAEjB,GAAI,CACF,MAAMA,QACCL,EAAG,CACNuE,EAASvE,CAAC,IACZK,EAAQL,EAIR8G,EAAiB,GAKvB,MAAO,CAACzG,EAAOyG,CAAc,GAI/BzB,EAAM,OAAS,YAEf,IAAMoC,GAAqB,SAAApH,EAAK,CAAA,OAC7B,OAAOA,EAAM,MAAS,UAAY,OAAOA,EAAM,YAAe,YAC9D,OAAOA,EAAM,SAAY,UAAY,OAAOA,EAAM,cAAiB,WAEtEqH,GAAiBrC,ECrTjBsC,GAAiB,SAAC/M,EAAKC,EAAI+M,EAAO,CAChC,IAAIC,EAAQ,EAENC,EAAO,UAAM,CACjB,GAAID,GAASjN,EAAI,OAAQ,OAAOgN,EAAG,KAAM,EAAI,EAC7C/M,EAAGD,EAAIiN,CAAK,EAAG,SAACzF,EAAKzG,EAAW,CAC9B,GAAIyG,EAAK,OAAOwF,EAAGxF,CAAG,EACtB,GAAIzG,IAAW,GAAO,OAAOiM,EAAG,KAAM,EAAK,EAC3CC,IACAC,EAAI,EACL,GAGHA,EAAI,GCtBNC,GAAiB,SAACC,EAAWjB,EAAOkB,EAAiBL,EAAO,CAM1D,IAAMM,EAAwB,SAACrN,EAAI+M,EAAO,CACxC,GAAI,OAAO/M,GAAO,WAAY,OAAO+M,EAAG,IAAI,EAC5C,GAAI,CAEF,GAAI/M,EAAG,SAAW,EAAG,CACnB,IAAMsN,EAAMtN,EAAGkM,CAAK,EAEpB,OAAIoB,GAAO,OAAOA,EAAI,MAAS,WACtBA,EAAI,KAET,SAAApN,EAAG,CAAA,OAAI,WAAW,UAAA,CAAA,OAAM6M,EAAG,KAAM7M,CAAG,EAAC,GAErC,SAAAqH,EAAO,CACL,WAAW,UAAM,CACf,OAAA6F,EAAgB7F,CAAG,EACZwF,EAAG,KAAM,EAAI,EACrB,EAEL,EAEKA,EAAG,KAAMO,CAAG,EAGrBtN,EAAGkM,EAAO,SAAC3E,EAAKzG,EAAW,CACzB,GAAIyG,EACF,OAAA6F,EAAgB7F,CAAG,EACZwF,EAAG,IAAI,EAEhBA,EAAG,KAAMjM,CAAM,EAChB,QACMqE,EAAG,CACViI,EAAgBjI,CAAC,EACjB4H,EAAG,IAAI,IAIXD,GAAKK,EAAWE,EAAuBN,CAAE,GC5C3CQ,GAAiB,SAACJ,EAAWK,EAAaC,EAAc/K,EAAW,CAGjE,QAFIgL,EAAS,GACPC,EAAMR,EAAU,MAAK,EACpB,CAACO,GACDC,EAAI,QACT,GAAI,CACFD,EAASC,EAAI,IAAG,EAAGH,CAAW,IAAM,SAC7BrI,EAAG,CACVzC,EAAO,MAAK,qBAAsB+K,EAAY,oCAA+B,EAC7E/K,EAAO,MAAMyC,CAAC,EAGlB,OAAOuI,GCZTE,GAAiB,SAAcC,EAAKC,EAAM,CACxC,IAAI/L,EAAI,YAAc8L,EACtB,OAAO9L,EAAE,OAAOA,EAAE,OAAS+L,CAAI,GCA7BC,GAAM,OAAO,QAAW,SAAW,OAAS,KAC5CC,GAAc,EAClB,QAASjN,MAAQgN,GACX,OAAO,eAAe,KAAKA,GAAKhN,EAAI,GAAGiN,KAE7C,IAAIC,GAAkB,UAAU,UAAY,UAAU,UAAU,OAAS,EACrEC,GAAWN,IAAKK,GAClB,UAAU,UAAU,QAAQ,SAAS,EAAE,EACvCD,GAAY,SAAS,EAAE,EAAG,CAAC,EAE7BG,GAAiB,UAAwB,CACvC,OAAOD,ICRTE,GAAiB,SAAiBjN,EAAO,CACrC,OAAO,OAAOA,GAAU,UAAa,qBAAsB,KAAKA,CAAK,GCUrEkN,EAAI,EACNC,GAAY,EACZC,EAAO,GACPC,GAAiB,KAAK,IAAID,EAAMD,EAAS,EAE3C,SAASG,IAAe,CACtB,OAAOb,IAAK,KAAK,OAAM,EACrBY,IAAkB,GACjB,SAASD,CAAI,EAAGD,EAAS,EAG9B,SAASI,IAAe,CACtB,OAAAL,EAAIA,EAAIG,GAAiBH,EAAI,EAC7BA,IACOA,EAAI,EAGb,SAASM,IAAQ,CAGf,IAAIC,EAAS,IAKX3L,EAAY,IAAI,KAAI,EAAG,QAAO,EAAG,SAASsL,CAAI,EAG9CM,EAAUjB,GAAIc,GAAW,EAAG,SAASH,CAAI,EAAGD,EAAS,EAKrDQ,EAAQX,GAAW,EAGnBY,EAASN,GAAW,EAAKA,GAAW,EAEtC,OAAOG,EAAS3L,EAAY4L,EAAUC,EAAQC,EAGhDJ,GAAK,YAAcR,GACnBQ,GAAK,OAASP,GAEd,IAAAY,GAAiBL,GC1DXM,GAAO,UAAA,CACX,SAAAA,GAAe,CACb,KAAK,GAAKD,GAAI,EACd,KAAK,UAAY,IAAI,KACrB,KAAK,SAAW,EAChB,KAAK,WAAa,EAClB,KAAK,MAAQ,CAAA,EACb,KAAK,IAAM,CAAA,EACX,KAAK,OAAS,CAAA,EACf,IAAA9L,EAAA+L,EAAA,UAAA,OAAA/L,EAED,QAAA,UAAW,CACT,OAAO,KAAK,OACbA,EAED,QAAA,SAASiI,EAAIC,EAAOvC,EAAM,CACxB,KAAK,MAAQ,CAAE,GAAAsC,EAAI,MAAAC,EAAO,KAAAvC,IAC3B3F,EAED,OAAA,UAAU,CACR,MAAO,CACL,GAAI,KAAK,GACT,UAAW,KAAK,UAChB,OAAQ,CAAE,QAAS,KAAK,SAAU,UAAW,KAAK,cAErDA,EAED,OAAA,SAAQgJ,EAAO,CACb,KAAKA,EAAM,cAAc,UAAY,aAAe,UAAU,GAAK,GACpE+C,GAAA,EAGHC,GAAiBD,GCpBTE,GAAG1F,EAAH,IAAK2F,GAAK3F,EAAL,MAAO4F,GAAK5F,EAAL,MAEd6F,EAAO,UAAM,CAAA,EAEbC,GAAM,UAAA,CACV,SAAAA,EAAaC,EAAelN,EAAwBmN,EAAsBC,EAAU,CAAA,IAAAC,EAAA,KAAxDrN,IAAM,SAANA,EAASf,EAAO,QAAQkO,IAAe,SAAfA,EAAkB,CAAA,GAEpE,KAAK,UAAYC,EAGjB,KAAK,QAAU,CAAA,EACf,KAAK,QAAUpN,EAGf,KAAK,UAAY,CAAE,YAAagN,EAAM,UAAWA,GACjD,KAAK,QAAU,CAAE,MAAOA,EAAM,KAAMA,EAAM,KAAMA,EAAM,MAAOA,GAG7D,KAAK,SAAW,CAAA,EAGhB,KAAK,aAAe,CAAA,EACpB,KAAK,SAAW,KAChB,KAAK,UAAY,CAAA,EACjB,KAAK,eAAiB,CAAA,EACtB,KAAK,UAAY,CAAA,EACjB,KAAK,SAAW,OAChB,KAAK,MAAQ,CAAA,EASb,KAAK,KAAO,CACV,EAAG,CAAA,EACH,EAAG,CAAA,EACH,GAAI,CAAA,EACJ,EAAG,CAAA,GAIL,KAAK,OAASC,EACd,KAAK,MAAQ1C,GACb,KAAK,WAAa1J,GAClB,KAAK,QAAU+L,GAEf,KAAK,QAAU,KAAK,WAAWM,EAAeC,CAAe,EAC7DpN,EAAIoN,EAAgB,OAAO,KAAK,QAAQ,OAAO,EAAG,SAAAG,EAAM,CAClDA,GAAID,EAAK,YAAYC,CAAE,EAC5B,EAKD,KAAK,OAAS,EAEd,IAAMC,EAAO,KACPC,EAAS,KAAK,OACpB,KAAK,OAAS,UAAY,CACxB,OAAOA,EAAO,MAAMD,EAAM,SAAS,GAEtC,IAAA3M,EAAAqM,EAAA,UAAA,OAAArM,EAED,YAAA,SAAa8G,EAASC,EAAUC,EAAU,CACxC,OAAOK,EAAiB,IAAI,KAAK,UAAWP,EAASC,EAAUC,CAAQ,GACxEhH,EAED,YAAA,SAAa8G,EAASnI,EAAK,CACzB,OAAO0I,EAAiB,IAAI,KAAK,UAAWP,EAASnI,CAAG,GACzDqB,EAED,cAAA,SAAe8G,EAASnI,EAAK,CAC3B,OAAO0I,EAAiB,MAAM,KAAK,UAAWP,EAASnI,CAAG,GAC3DqB,EAED,eAAA,SAAgB2F,EAAMC,EAAgB,CAAhBA,IAAO,SAAPA,EAAU,MAC9BqG,GAAI,KAAK,UAAW,KAAK,eAAgBtG,EAAMC,CAAO,GACvD5F,EAED,gBAAA,SAAiBiG,EAAc,CAC7BkG,GAAM,KAAK,UAAWlG,EAAc,KAAK,cAAc,GACxDjG,EAED,iBAAA,SAAkB2F,EAAM,CACtBuG,GAAM,KAAK,UAAW,KAAK,eAAgBvG,CAAI,GAChD3F,EAED,kBAAA,UAAqB,CACnB,KAAK,UAAY,CAAA,EACjB,KAAK,eAAiB,CAAA,GACvBA,EAED,WAAA,UAAc,CACZ,OAAO,KAAK,UACbA,EAED,WAAA,SAAYmL,EAAG,CACb,KAAK,SAAWA,GACjBnL,EAED,WAAA,SAAY6B,EAAM0K,EAAiB,CACjC,IAAMnN,EAASxC,EAAO2P,EAAiB,SAACnN,EAAQyN,EAAW,CACzD,OAAIA,GAAUA,EAAO,aAAqB7N,EAAO,CAAA,EAAII,EAAQyN,EAAO,YAAY,EACzEzN,GACN,KAAK,OAAO,EAGf0N,EAA2BlQ,EAAOe,EAAKyB,CAAM,EAAG,SAACrC,EAAO4B,EAAQ,CAC9D,IAAMoO,EAAe3N,EAAOT,CAAG,EAAE,aAAakD,EAAKlD,CAAG,CAAC,EAEvD,GAAIkD,EAAKlD,CAAG,IAAM,OAAW,CAC3B,IAAMqO,EAAQ5N,EAAOT,CAAG,EAAE,SAASkD,EAAKlD,CAAG,CAAC,EACvCqO,EAIC5N,EAAOT,CAAG,EAAE,mBACd5B,EAAM,OAAO4B,CAAG,EAAIK,EAAO+N,EAAclL,EAAKlD,CAAG,CAAC,EAElD5B,EAAM,OAAO4B,CAAG,EAAIkD,EAAKlD,CAAG,GAN9B5B,EAAM,OAAO4B,CAAG,EAAIS,EAAOT,CAAG,EAAE,QAChC5B,EAAM,OAAO4B,CAAG,EAAIoO,QAStBhQ,EAAM,OAAO4B,CAAG,EAAIoO,EAGtB,OAAOhQ,GACN,CAAE,OAAQ,CAAA,EAAI,OAAQ,CAAA,EAAI,EApBrBkQ,EAAMH,EAAN,OAAQI,EAAMJ,EAAN,OAsBhB,GAAI1N,EAAO,OAAQ,CAEjB,GAAI,CAAC8N,EAAO,OAAQ,MAAM,IAAI,MAAM,wBAAwB,EAEvD,kBAAkB,KAAKA,EAAO,MAAM,IAAGD,EAAO,OAAS,mDAI9D,YAAK,UAAYjO,EAAO,CAAA,EAAIkO,EAAO,QAAQ,EAC3Cf,GAAM,KAAK,UAAWe,EAAO,aAAc,KAAK,cAAc,EAC9D,KAAK,MAAQlO,EAAO,CAAA,EAAIkO,EAAO,IAAI,EACnC,KAAK,SAAWA,EAAO,QACnBA,EAAO,SAAQ,KAAK,QAAUA,EAAO,QAGrCA,EAAO,UAAS,KAAK,KAAK,EAAI,KAAK,KAAK,EAAE,OAAOA,EAAO,OAAO,GAC/DA,EAAO,eAAc,KAAK,KAAK,EAAI,KAAK,KAAK,EAAE,OAAOA,EAAO,YAAY,GACzEA,EAAO,YAAW,KAAK,KAAK,EAAI,KAAK,KAAK,EAAE,OAAOA,EAAO,SAAS,GAGnEvP,EAAKsP,CAAM,EAAE,QACf,KAAK,QAAQ,KAAKE,GAA2BF,EAAQpL,CAAI,CAAC,EAGrDqL,GACRlN,EAED,QAAA,UAAW,CACT,OAAO,KAAK,OACbA,EAED,QAAA,SAASiI,EAAIC,EAAOvC,EAAM,CACxB,KAAK,MAAQ,CAAE,GAAAsC,EAAI,MAAAC,EAAO,KAAAvC,IAC3B3F,EAED,YAAA,SAAa6M,EAAQ,CACnB,IAAMjP,EAASiP,EAAO,KAAK,IAAI,EAK3BA,EAAO,OAAM,KAAK,SAAQ,IAAKA,EAAO,KAAI,GAAA,EAAOjP,IACtDoC,EAED,UAAA,SAAW2F,EAAM,CACf,OAAO,KAAK,SAAQ,IAAKA,EAAI,GAAA,GAC9B3F,EAED,aAAA,SAAcoN,EAAG,CACf,KAAK,UAAYA,EAAE,IAAI,GACxBpN,EAED,aAAA,UAAgB,CACd,IAAMqN,EAAU,IAAIrB,GAEpBqB,EAAQ,IAAI,aAAe,KAAK,QAAQ,aACxCA,EAAQ,IAAI,QAAU,KAAK,QAAQ,WACnCA,EAAQ,IAAI,KAAO,KAAK,QAAQ,QAEhCA,EAAQ,MAAQrO,EAAO,CAAA,EAAI,KAAK,KAAK,EAGrC,IAAMwL,EAASH,GAAiB,KAAK,KAAK,EAAGgD,EAAS,YAAa,KAAK,OAAO,EAE/E,OAAI7C,GACF,KAAK,QAAQ,MAAM,+CAA+C,EAC3D,MAGF,KAAK,iBAAiB,aAAa,KAAM6C,CAAO,GACxDrN,EAED,WAAA,SAAYlD,EAAIwQ,EAAe,CAAfA,IAAK,SAALA,EAAQ,IACtB,KAAK,KAAK,EAAEA,EAAQ,UAAY,MAAM,EAAExQ,CAAE,GAC3CkD,EAED,cAAA,SAAelD,EAAI,CACjB,KAAK,KAAK,EAAIK,EAAO,KAAK,KAAK,EAAG,SAAAX,EAAC,CAAA,OAAIA,IAAMM,EAAE,GAChDkD,EAED,qBAAA,SAAsBlD,EAAI,CACxB,KAAK,KAAK,GAAG,KAAKA,CAAE,GACrBkD,EAED,aAAA,SAAclD,EAAI,CAChB,KAAK,KAAK,EAAE,KAAKA,CAAE,GACpBkD,EAED,gBAAA,SAAiBlD,EAAI,CACnB,KAAK,KAAK,EAAIK,EAAO,KAAK,KAAK,EAAG,SAAAX,EAAC,CAAA,OAAIA,IAAMM,EAAE,GAChDkD,EAED,gBAAA,SAAiBlD,EAAIwQ,EAAe,CAAfA,IAAK,SAALA,EAAQ,IAC3B,KAAK,KAAK,EAAEA,EAAQ,UAAY,MAAM,EAAExQ,CAAE,GAC3CkD,EAED,mBAAA,SAAoBlD,EAAI,CACtB,KAAK,KAAK,EAAIK,EAAO,KAAK,KAAK,EAAG,SAAAX,EAAC,CAAA,OAAIA,IAAMM,EAAE,GAChDkD,EAED,aAAA,UAAgB,CACd,OAAO,KAAK,iBAAiB,aAAa,IAAI,GAC/CA,EAED,cAAA,UAAiB,CACf,OAAO,KAAK,iBAAiB,cAAc,IAAI,GAChDA,EAED,gBAAA,SAAiBJ,EAASC,EAAUC,EAAM,CAOxC,GALAF,EAAU,OAAOA,GAAY,SAAWA,EAAU,GAClDE,EAAQ,OAAOA,GAAS,UAAYzC,EAASV,EAAkBmD,CAAI,EAAKA,EAAO,SAC/ED,EAAW,OAAOA,GAAa,UAAYA,IAAa,KAAOA,EAAW,CAAA,EAGtE,EAACD,EAEL,KAAM2N,EAAQ,IAAItN,GAAWL,EAASC,EAAUC,CAAI,EAG9C0K,EAASH,GAAiB,KAAK,KAAK,EAAGkD,EAAO,eAAgB,KAAK,OAAO,EAEhF,GAAI/C,EAAQ,CACV,KAAK,QAAQ,MAAM,sDAAsD,EACzE,OAIF,KAAK,aAAa,KAAK+C,CAAK,EACxB,KAAK,aAAa,OAAS,KAAK,QAAQ,iBAC1C,KAAK,aAAe,KAAK,aAAa,MAAM,KAAK,aAAa,OAAS,KAAK,QAAQ,cAAc,KAErGvN,EAED,yBAAA,SAA0BF,EAAM,CAC9B,IAAM0N,EAAQ,KAAK,QAAQ,uBAE3B,OAAOA,IAAU,MAAQnQ,EAASmQ,EAAO1N,CAAI,GAC9CE,EAED,OAAA,SAAQ0I,EAAY+E,EAASC,EAA2B,CAA3BA,IAAkB,SAAlBA,EAAqBtB,GAChD,IAAMpD,EAAQW,GAAM,OAAOjB,EAAY,GAAM,OAAW,WAAY,KAAK,OAAS,EAAG,KAAK,OAAO,EACjG,KAAK,QAAQM,EAAOyE,EAASC,CAAkB,GAChD1N,EAED,QAAA,SAASgJ,EAAOyE,EAASC,EAA2B,CAAA,IAAAC,EAAA,KAalD,GAbuBD,IAAkB,SAAlBA,EAAqBtB,GAC5CpD,EAAM,IAAMhK,EAAO,CAAA,EAAIgK,EAAM,IAAK,CAChC,aAAc,KAAK,QAAQ,aAC3B,QAAS,KAAK,QAAQ,WACtB,KAAM,KAAK,QAAQ,QACpB,EACDA,EAAM,QAAUA,EAAM,SAAW,KAAK,SACtCA,EAAM,UAAYhK,EAAO,CAAA,EAAIgK,EAAM,UAAW,KAAK,SAAS,EAC5DA,EAAM,MAAQhK,EAAO,CAAA,EAAIgK,EAAM,MAAO,KAAK,KAAK,EAChDA,EAAM,YAAc,KAAK,aAAa,MAAK,EAC3CmD,GAAMnD,EAAM,UAAW,KAAK,UAAWA,EAAM,cAAc,EAGvD,KAAK,QAAQ,uBAAyB,MAAQ,CAAC3L,EAAS,KAAK,QAAQ,qBAAsB,KAAK,QAAQ,YAAY,EACtH,YAAK,QAAQ,KAAK,uEAAuE,EAClFqQ,EAAmB,KAAM1E,CAAK,EAGvC,IAAM4E,EAAmB5E,EAAM,SAEzBkB,EAAkB,SAAA7F,EAAO,CAE7BsJ,EAAK,QAAQ,MAAM,6DAAwD,EAC3EA,EAAK,QAAQ,MAAMtJ,CAAG,GAGlB4F,EAAY,CAAA,EAAG,OAAO,KAAK,KAAK,CAAC,EAAE,OAAOwD,CAAO,EACvDzD,GAAaC,EAAWjB,EAAOkB,EAAiB,SAAC7F,EAAKwJ,EAAe,CAGnE,GAFIxJ,GAAK6F,EAAgB7F,CAAG,EAExB,CAACwJ,EACH,OAAAF,EAAK,QAAQ,MAAM,wCAAwC,EACpDD,EAAmB,KAAM1E,CAAK,EAGnC2E,EAAK,yBAAyB,OAAO,GAEvCtB,EAAO,UAAU,gBAAgB,KAAKsB,EAAM3E,EAAM,OAAO,CAAC,EAAE,WAAY,CACtE,WAAYA,EAAM,OAAO,CAAC,EAAE,WAC5B,aAAcA,EAAM,OAAO,CAAC,EAAE,aAC9B,SAAUA,EAAM,UACf,OAAO,EAGR4E,IAAqB5E,EAAM,WAC7BA,EAAM,cAAc,eAAiB,CAAE,KAAM,4BAG3CA,EAAM,YAAcA,EAAM,cAAc,YAC1CA,EAAM,cAAc,eAAe,oBAAsB,GACzDA,EAAM,cAAc,UAAYA,EAAM,WAGpC2E,EAAK,WACPA,EAAK,SAAS,OAAO3E,CAAK,EAC1BA,EAAM,SAAW2E,EAAK,UAGxBA,EAAK,UAAU,UAAU,CACvB,OAAQ3E,EAAM,QAAU2E,EAAK,QAAQ,OACrC,SAAUA,EAAK,UACf,OAAQ,CAAC3E,CAAK,GACb,SAAC3E,EAAG,CAAA,OAAKqJ,EAAmBrJ,EAAK2E,CAAK,EAAC,EAC3C,GACFqD,GAAA,EAGGc,GAA6B,SAACF,EAAQa,EAAa,CACvD,IAAMzI,EAAK,IAAI,MAAK;EACMlG,EAAIxB,EAAKsP,CAAM,EAAG,SAAAtO,EAAG,CAAA,MAAA,OAAWA,EAAG,IAAIsO,EAAOtO,CAAG,EAAC,SAASoP,GAAUD,EAASnP,CAAG,CAAC,EAAG,EAAE,KAAK;;CAAM,CAAG,EAC/H,OAAO0G,GAGH0I,GAAY,SAAA/Q,EAAO,CACvB,OAAQ,OAAOA,EAAG,CAChB,IAAK,SACL,IAAK,SACL,IAAK,SACH,OAAO,KAAK,UAAUA,CAAG,EAC3B,QAAS,OAAO,OAAOA,CAAG,IAI9BgR,GAAiB3B,QCrXX4B,GAAwB,CAC5B,qBACA,oCACA,mBAAmB,EAGrBC,EAAe,MAAQ,SAAClF,EAAOrF,EAAiB,CAC9C,IAAIwK,EAAU5K,EAAcyF,EAAO,KAAM,KAAM,CAAE,cAAeiF,GAAuB,aAAAtK,EAAc,EACrG,OAAIwK,EAAQ,OAAS,MACnBnF,EAAM,OAAO,CAAC,EAAE,UAAY,CAC1B,SAAQ;yBAEWmF,EAAQ,OAAS,IAAI;uBAG1CA,EAAU5K,EAAcyF,EAAO,KAAM,KAAM,CAAE,cAAeiF,GAAuB,aAAAtK,EAAc,GAE5FwK,GAGTD,EAAe,QAAU,SAACb,EAAS1J,EAAiB,CAClD,IAAMwK,EAAU5K,EAAc8J,EAAS,KAAM,IAAI,EACjD,OAAOc,aCrBTC,GAAiB,SAACC,EAAQC,EAAG,CAAA,OAAHA,IAAG,SAAHA,EAAM,QAAY,CAC1C,UAAW,SAACtF,EAAOa,EAAkB,CACnC,GADiBA,IAAE,SAAFA,EAAK,UAAM,CAAA,GACxBwE,EAAO,QAAQ,UAAU,SAAW,KAAM,CAC5C,IAAMhK,EAAM,IAAI,MAAM,yDAAyD,EAC/E,OAAOwF,EAAGxF,CAAG,EAGf,IAAMkK,EAAMC,GAAUH,EAAO,QAAS,SAAU,IAAKC,CAAG,EAClDG,EAAOP,EAAQ,MAAMlF,EAAOqF,EAAO,QAAQ,YAAY,EAEvDK,EAAM,IAAIJ,EAAI,eACpBI,EAAI,OAAS,UAAY,CACvB7E,EAAG,IAAI,GAET6E,EAAI,QAAU,UAAY,CACxB,IAAMrK,EAAM,IAAI,MAAM,sBAAsB,EAC5CgK,EAAO,QAAQ,MAAM,6BAAyBhK,CAAG,EAC7CoK,EAAK,OAAS,KAChBJ,EAAO,QAAQ,KAAI,qBAAsBI,EAAK,OAAS,KAAM,QAAQ,CAAC,EAAC,MAAM,EAE/E5E,EAAGxF,CAAG,GAERqK,EAAI,KAAK,OAAQH,CAAG,EACpB,WAAW,UAAM,CACf,GAAI,CACFG,EAAI,KAAKD,CAAI,QACNxM,EAAG,CACVoM,EAAO,QAAQ,MAAMpM,CAAC,EACtB4H,EAAG5H,CAAC,IAEL,CAAC,GAEN,YAAa,SAACoL,EAASxD,EAAkB,CACvC,GADqBA,IAAE,SAAFA,EAAK,UAAM,CAAA,GAC5BwE,EAAO,QAAQ,UAAU,WAAa,KAAM,CAC9C,IAAMhK,EAAM,IAAI,MAAM,2DAA2D,EACjF,OAAOwF,EAAGxF,CAAG,EAGf,IAAMkK,EAAMC,GAAUH,EAAO,QAAS,WAAY,IAAKC,CAAG,EACpDI,EAAM,IAAIJ,EAAI,eACpBI,EAAI,OAAS,UAAY,CACvB7E,EAAG,IAAI,GAET6E,EAAI,KAAK,OAAQH,CAAG,EACpB,WAAW,UAAM,CACf,GAAI,CACFG,EAAI,KAAKR,EAAQ,QAAQb,EAASgB,EAAO,QAAQ,YAAY,CAAC,QACvDpM,EAAG,CACVoM,EAAO,QAAQ,MAAMpM,CAAC,EACtB4H,EAAG5H,CAAC,IAEL,CAAC,KAIR,IAAMuM,GAAY,SAACtB,EAAQyB,EAAUC,EAASN,EAAQ,CAIpD,IAAMO,EAAU,KAAK,MAAM,KAAK,UAAU,IAAI,IAAM,CAAC,EAC/CN,EAAMO,GAAkB5B,EAAO,UAAUyB,CAAQ,EAAGL,EAAI,SAAS,QAAQ,EAC/E,OAAUC,EAAG,WAAW,mBAAmBrB,EAAO,MAAM,EAAC,mBAAmB0B,EAAO,WAAW,mBAAmBC,CAAO,GAGpHC,GAAoBV,GAAe,mBAAqB,SAACO,EAAUI,EAAY,CAAA,OACnFA,IAAiB,QACbJ,EAAS,QAAQ,UAAW,OAAO,EACnCA,GCnENK,GAAiB,SAACX,EAAQC,EAAG,CAAA,OAAHA,IAAG,SAAHA,EAAM,QAAY,CAC1C,UAAW,SAACtF,EAAOa,EAAkB,CAAlBA,IAAE,SAAFA,EAAK,UAAM,CAAA,GAC5B,GAAI,CACF,IAAM0E,EAAMF,EAAO,QAAQ,UAAU,OACrC,GAAIE,IAAQ,KAAM,CAChB,IAAMlK,EAAM,IAAI,MAAM,yDAAyD,EAC/E,OAAOwF,EAAGxF,CAAG,EAEf,IAAMqK,EAAM,IAAIJ,EAAI,eACdG,EAAOP,EAAQ,MAAMlF,EAAOqF,EAAO,QAAQ,YAAY,EAE7DK,EAAI,mBAAqB,UAAY,CACnC,GAAIA,EAAI,aAAeJ,EAAI,eAAe,KAAM,CAC9C,IAAMW,EAASP,EAAI,OACnB,GAAIO,IAAW,GAAKA,GAAU,IAAK,CACjC,IAAMC,EAAM,IAAI,MAAK,8BAA+BD,CAAQ,EAC5DZ,EAAO,QAAQ,MAAM,6BAAyBa,CAAG,EAC7CT,EAAK,OAAS,KAChBJ,EAAO,QAAQ,KAAI,qBAAsBI,EAAK,OAAS,KAAM,QAAQ,CAAC,EAAC,MAAM,EAE/E5E,EAAGqF,CAAG,OAENrF,EAAG,IAAI,IAKb6E,EAAI,KAAK,OAAQH,CAAG,EACpBG,EAAI,iBAAiB,eAAgB,kBAAkB,EACvDA,EAAI,iBAAiB,kBAAmB1F,EAAM,QAAUqF,EAAO,QAAQ,MAAM,EAC7EK,EAAI,iBAAiB,0BAA2B,GAAG,EACnDA,EAAI,iBAAiB,kBAAoB,IAAI,KAAI,EAAI,YAAW,CAAE,EAClEA,EAAI,KAAKD,CAAI,QACNxM,EAAG,CACVoM,EAAO,QAAQ,MAAMpM,CAAC,IAG1B,YAAa,SAACoL,EAASxD,EAAkB,CAAlBA,IAAE,SAAFA,EAAK,UAAM,CAAA,GAChC,GAAI,CACF,IAAM0E,EAAMF,EAAO,QAAQ,UAAU,SACrC,GAAIE,IAAQ,KAAM,CAChB,IAAMlK,EAAM,IAAI,MAAM,2DAA2D,EACjF,OAAOwF,EAAGxF,CAAG,EAEf,IAAMqK,EAAM,IAAIJ,EAAI,eAEpBI,EAAI,mBAAqB,UAAY,CACnC,GAAIA,EAAI,aAAeJ,EAAI,eAAe,KAAM,CAC9C,IAAMW,EAASP,EAAI,OACnB,GAAIO,IAAW,GAAKA,GAAU,IAAK,CACjC,IAAME,EAAM,IAAI,MAAK,8BAA+BF,CAAQ,EAC5DZ,EAAO,QAAQ,MAAM,+BAA2Bc,CAAG,EACnDtF,EAAGsF,CAAG,OAENtF,EAAG,IAAI,IAKb6E,EAAI,KAAK,OAAQH,CAAG,EACpBG,EAAI,iBAAiB,eAAgB,kBAAkB,EACvDA,EAAI,iBAAiB,kBAAmBL,EAAO,QAAQ,MAAM,EAC7DK,EAAI,iBAAiB,0BAA2B,GAAG,EACnDA,EAAI,iBAAiB,kBAAoB,IAAI,KAAI,EAAI,YAAW,CAAE,EAClEA,EAAI,KAAKR,EAAQ,QAAQb,EAASgB,EAAO,QAAQ,YAAY,CAAC,QACvDpM,EAAG,CACVoM,EAAO,QAAQ,MAAMpM,CAAC,MCpExBmN,GAAW,IAAI,KACbC,GAAQ,UAAM,CAAED,GAAW,IAAI,MAErCE,GAAiB,CACf,KAAM,cACN,KAAM,SAAAjB,EAAU,CACd,OAAAA,EAAO,WAAW,SAAArF,EAAS,CACzB,IAAMuG,EAAM,IAAI,KAEhBvG,EAAM,IAAI,SAAWuG,EAAMH,IAC1B,EAAI,EAEA,CAAE,MAAAC,MCTbG,GAAiB,SAAClB,EAAG,CAAA,OAAHA,IAAG,SAAHA,EAAM,QAAY,CAClC,KAAM,SAACD,EAAW,CAChBA,EAAO,WAAW,SAAArF,EAAS,CACrBA,EAAM,UAAY,SACtBA,EAAM,QAAUsF,EAAI,SAAS,WAC5B,EAAI,KCPLmB,GAA2B,uBAE3BC,GAAc,SAACpB,EAAQ,CAC3B,GAAI,CACF,IAAMqB,EAAUrB,EAAI,aAEhBrG,EAAK0H,EAAQ,QAAQF,EAAwB,EAIjD,OAAIxH,GAAM,qBAAqB,KAAKA,CAAE,IAKtCA,EAAK6D,GAAI,EAET6D,EAAQ,QAAQF,GAA0BxH,CAAE,GAErCA,QACA5D,EAAK,IAQhBuL,GAAiB,SAACC,EAAiBvB,EAAG,CAAA,OAApBuB,IAAG,SAAHA,EAAM,WAAWvB,IAAG,SAAHA,EAAM,QAAY,CACnD,KAAM,SAACD,EAAW,CAChB,IAAMyB,EAAS,CACb,OAAQD,EAAI,iBAAmBA,EAAI,gBAAkBA,EAAI,cAAgBA,EAAI,SAC7E,UAAWA,EAAI,WAGbvB,GAAOA,EAAI,QAAUA,EAAI,OAAO,aAAeA,EAAI,OAAO,YAAY,KACxEwB,EAAO,YAAcxB,EAAI,OAAO,YAAY,KACnCA,GAAOA,EAAI,WACpBwB,EAAO,YACLxB,EAAI,SAAS,gBAAgB,YAAcA,EAAI,SAAS,gBAAgB,aACpE,YACA,YAGJD,EAAO,QAAQ,sBACjByB,EAAO,GAAKJ,GAAYpB,CAAG,GAG7BD,EAAO,aAAa,SAAAhB,EAAW,CAC7BA,EAAQ,OAASrO,EAAO,CAAA,EAAIqO,EAAQ,OAAQyC,CAAM,EAE7CzB,EAAO,QAAQ,eAAe0B,GAAiB1C,CAAO,EAC5D,EAGDgB,EAAO,WAAW,SAACrF,EAAU,CAC3BA,EAAM,OAAShK,EAAO,CAAA,EACpBgK,EAAM,OACN8G,EACA,CAAE,KAAM,IAAI,KACd,EACKzB,EAAO,QAAQ,eAAe0B,GAAiB/G,CAAK,GACxD,EAAI,GAET,aAAc,CACZ,oBAAqB,CACnB,SAAU,SAAA/K,EAAK,CAAA,OAAIA,IAAU,IAAQA,IAAU,IAC/C,aAAc,UAAA,CAAA,MAAM,IACpB,QAAS,2BAKT8R,GAAmB,SAACC,EAAmB,CAE3C,IAAMC,EAAOD,EAAe,QAAO,GAC/B,CAACC,GAAQ,CAACA,EAAK,KACjBD,EAAe,QAAQA,EAAe,OAAO,EAAE,GCzEnDE,GAAiB,SAAC5B,EAAG,CAAA,OAAHA,IAAG,SAAHA,EAAM,QAAY,CAClC,KAAM,SAACD,EAAW,CAChBA,EAAO,WAAW,SAAArF,EAAS,CACrBA,EAAM,SAAWA,EAAM,QAAQ,MACnCA,EAAM,QAAUhK,EAAO,CAAA,EAAIgK,EAAM,QAAS,CAAE,IAAKsF,EAAI,SAAS,KAAM,IACnE,EAAI,KCRX6B,GAAiB,CACf,KAAM,SAAA9B,EAAU,CAAEA,EAAO,iBAAmB+B,KAGxCA,GAAkB,CACtB,aAAc,SAAC/B,EAAQhB,EAAY,CACjC,IAAMgD,EAAgBhC,EAKtB,OAJAgC,EAAc,SAAWhD,EACzBgD,EAAc,eAAiB,KAG3BA,EAAc,QAAQ,uBAAyB,MAAQ,CAAChT,EAASgT,EAAc,QAAQ,qBAAsBA,EAAc,QAAQ,YAAY,GACjJA,EAAc,QAAQ,KAAK,yEAAyE,EAC7FA,IAGTA,EAAc,UAAU,YAAY,CAClC,SAAUA,EAAc,UACxB,OAAQhD,EAAQ,OAChB,IAAKA,EAAQ,IACb,SAAU,CACR,CACE,GAAIA,EAAQ,GACZ,UAAWA,EAAQ,UACnB,KAAMA,EAAQ,MACf,EAEJ,EACMgD,IAET,cAAe,SAAChC,EAAW,CAEzB,OAAIA,EAAO,SACFA,EAILA,EAAO,gBACTA,EAAO,SAAWA,EAAO,eACzBA,EAAO,eAAiB,KAEjBA,GAIFA,EAAO,aAAY,GAE5B,aAAc,SAACA,EAAW,CACxBA,EAAO,eAAiBA,EAAO,SAC/BA,EAAO,SAAW,OC9CtBiC,GAAiB,CACf,KAAM,SAACjC,EAAW,CACZA,EAAO,QAAQ,eAEnBA,EAAO,WAAW,SAAArF,EAAS,CAGrBA,EAAM,OAAS,OAAOA,EAAM,MAAM,IAAO,aAAa,OAAOA,EAAM,MAAM,GAC7EA,EAAM,MAAQhK,EAAO,CAAE,GAAI,cAAgBgK,EAAM,KAAK,EACtDA,EAAM,QAAUhK,EAAO,CAAE,SAAU,cAAgBgK,EAAM,OAAO,EACjE,GAEH,aAAc,CACZ,cAAe,CACb,aAAc,UAAA,CAAA,MAAM,IACpB,QAAS,uBACT,SAAU,SAAA/K,EAAK,CAAA,OAAIA,IAAU,IAAQA,IAAU,aCdrDsS,GAAQ,KAAO,SAAClC,EAAW,CACzB,IAAMmC,EAAQ,4BAA4B,KAAKnC,EAAO,QAAQ,YAAY,EAEtEmC,GAAS,CAACnC,EAAO,yBAAyB,KAAK,GAEnDlP,EAAIsR,GAAqB,SAAA7R,EAAU,CACjC,IAAM8R,EAAW,QAAQ9R,CAAM,EAC/B,QAAQA,CAAM,EAAI,UAAa,CAAA,QAAA+R,EAAA,UAAA,OAATnP,EAAI,IAAA,MAAAmP,CAAA,EAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJpP,EAAIoP,CAAA,EAAA,UAAAA,CAAA,EACxBvC,EAAO,gBAAgB,iBAAkBzR,EAAO4E,EAAM,SAACzE,EAAO8T,EAAK5T,EAAM,CAEvE,IAAI6T,EAAc,kBAIlB,GAAI,CAAEA,EAAc,OAAOD,CAAG,QAAW5O,EAAG,CAAA,CAE5C,GAAI6O,IAAgB,kBAElB,GAAI,CAAEA,EAAc,KAAK,UAAUD,CAAG,QAAW5O,EAAG,CAAA,CAEtD,OAAAlF,EAAK,IAAKE,EAAC,GAAA,EAAO6T,EACX/T,GACN,CACD,SAAU6B,EAAO,QAAQ,OAAO,IAAM,EAAI,MAAQA,EACnD,EAAG,KAAK,EACT8R,EAAS,MAAM,QAASlP,CAAI,GAE9B,QAAQ5C,CAAM,EAAE,SAAW,UAAM,CAAE,QAAQA,CAAM,EAAI8R,GACtD,GASH,IAAMD,GAAsBtT,EAAO,CAAC,MAAO,QAAS,OAAQ,OAAQ,OAAO,EAAG,SAAAyB,EAAM,CAAA,OAClF,OAAO,SAAY,aAAe,OAAO,QAAQA,CAAM,GAAM,WAC/D,EC1CMmS,GAAkB,IAClBC,GAAoB,IAE1BC,GAAiB,SAACC,EAAgB5C,EAAG,CAAA,OAAnB4C,IAAG,SAAHA,EAAM,UAAU5C,IAAG,SAAHA,EAAM,QAAY,CAClD,KAAM,SAACD,EAAW,CAChB,GAAI,CAACA,EAAO,QAAQ,mBAAoB,OAExC,IAAM8C,EAAmB7C,EAAI,SAAS,KAClC8C,EAAO,GAILC,EAAU,CAAC,CAACH,EAAI,YAClBI,EAAmBD,EAAUH,EAAI,aAAe,WAAaA,EAAI,aAAe,UAC9EK,EAAU,UAAA,CAAA,OAAML,EAAI,gBAAgB,WAG1CE,EAAOG,EAAO,EACd,IAAMC,EAAON,EAAI,mBAEjBA,EAAI,mBAAqB,UAAY,CAE/BA,EAAI,aAAe,gBACrBE,EAAOG,EAAO,EACdD,EAAmB,IAErB,GAAI,CAAEE,EAAK,MAAM,KAAM,SAAS,QAAWvP,EAAG,CAAA,GAGhD,IAAIwP,EAAc,KACZC,EAAmB,SAAAC,EAAU,CACjCF,EAAcE,GAGVC,EAAmB,UAAM,CAC7B,IAAID,EAAST,EAAI,eAAiBO,EAClC,GAAI,CAACE,GAAU,CAACL,EAAkB,CAChC,IAAMO,EAAUX,EAAI,SAAWA,EAAI,qBAAqB,QAAQ,EAChES,EAASE,EAAQA,EAAQ,OAAS,CAAC,EAErC,OAAOF,GAGHG,EAAqB,SAAA3Q,EAAc,EAEnC,CAACmQ,GAAoB,CAACF,KAAMA,EAAOG,EAAO,GAE9C,IAAMQ,EAAY,CAAC,oBAAoB,EAAE,OAAOX,EAAK,MAAM;CAAI,CAAC,EAC1DY,EAAgB7Q,EAAa,EAC7B8Q,EAAQ,KAAK,IAAID,EAAgB,EAAG,CAAC,EACrCE,EAAM,KAAK,IAAIF,EAAgB,EAAGD,EAAU,MAAM,EACxD,OAAOnV,EAAOmV,EAAU,MAAME,EAAOC,CAAG,EAAG,SAACnV,EAAO2F,EAAMzF,EAAM,CAC7D,OAAAF,EAAMkV,EAAQ,EAAIhV,CAAC,EAAIyF,EAAK,QAAUqO,GAAkBrO,EAAOA,EAAK,OAAO,EAAGqO,EAAe,EACtFhU,GACN,CAAA,CAAE,GAGPsR,EAAO,WAAW,SAAArF,EAAS,CAGzBA,EAAM,OAAO,CAAC,EAAE,WAAa7L,EAAO6L,EAAM,OAAO,CAAC,EAAE,WAAY,SAAAxM,EAAC,CAAA,MAAI,CAAE,aAAa,KAAKA,EAAE,MAAM,EAAE,EAEnG,IAAM4L,EAAQY,EAAM,OAAO,CAAC,EAAE,WAAW,CAAC,EAGpCmJ,EAAW,SAAC5D,EAAG,CAAA,OAAKA,EAAI,QAAQ,OAAQ,EAAE,EAAE,QAAQ,QAAS,EAAE,GAGrE,GAAI,EAAAnG,GAASA,EAAM,MAAQ+J,EAAS/J,EAAM,IAAI,IAAM+J,EAAShB,CAAgB,GAG7E,KAAMiB,EAAgBR,EAAgB,EACtC,GAAIQ,EAAe,CACjB,IAAMC,EAAUD,EAAc,UAC9BpJ,EAAM,YACJ,SACA,UACAqJ,EAAQ,QAAUrB,GAAoBqB,EAAUA,EAAQ,OAAO,EAAGrB,EAAiB,CACrF,EAGI5I,GAASA,EAAM,aACjBA,EAAM,KAAO0J,EAAmB1J,EAAM,UAAU,MAGnD,EAAI,EAIP,IAAAkK,EAAsBnT,EAAI,CACxB,aACA,cACA,eACA,uBAAuB,EACtB,SAAArC,EAAE,CAAA,OACHyV,GAAQjE,EAAKxR,EAAI,SAAA4T,EAAQ,CAAA,OACvB8B,EAAsB9B,EAAU,SAAAlP,EAAI,CAAA,MAAK,CACvC,IAAK,UAAA,CAAA,OAAMA,EAAK,CAAC,GACjB,QAAS,SAAA1E,EAAM,CAAE0E,EAAK,CAAC,EAAI1E,IAC3B,EACJ,EACF,EAZO2V,EAAWH,EAAA,CAAA,EAelBnT,EAAI,CACF,cAAe,SAAU,OAAQ,mBAAoB,iBAAkB,oBACvE,kBAAmB,cAAe,aAAc,qBAAsB,cACtE,aAAc,iBAAkB,eAAgB,kBAAmB,cAAe,cAClF,eAAgB,qBAAsB,SAAU,YAAa,eAAgB,gBAC7E,YAAa,kBAAmB,SAAU,iBAAkB,4BAA6B,sBAAsB,EAC9G,SAAAgF,EAAK,CACF,CAACmK,EAAInK,CAAC,GAAK,CAACmK,EAAInK,CAAC,EAAE,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKmK,EAAInK,CAAC,EAAE,UAAW,kBAAkB,IAC9GoO,GAAQjE,EAAInK,CAAC,EAAE,UAAW,mBAAoB,SAAAuM,EAAQ,CAAA,OACpD8B,EAAsB9B,EAAUgC,EAA2B,EAC7D,EACAH,GAAQjE,EAAInK,CAAC,EAAE,UAAW,sBAAuB,SAAAuM,EAAQ,CAAA,OACvD8B,EAAsB9B,EAAUgC,GAA6B,EAAI,EACnE,GACD,EAED,SAASF,EAAuB1V,EAAI6V,EAAkBC,EAA0B,CAAA,OAA1BA,IAAgB,SAAhBA,EAAmB,IAChE,UAAY,CAGjB,IAAMpR,EAAO,CAAA,EAAG,MAAM,KAAK,SAAS,EACpC,GAAI,CACF,IAAMqR,EAAMF,EAAiBnR,CAAI,EAC3BqI,EAAKgJ,EAAI,IAAG,EAElB,GADID,GAAkB9V,EAAG,MAAM,KAAM0E,CAAI,EACrC,OAAOqI,GAAO,WAAY,OAAO/M,EAAG,MAAM,KAAM0E,CAAI,EACxD,GAAIqI,EAAG,UACLgJ,EAAI,QAAQhJ,EAAG,SAAS,MACnB,CACL,IAAM8H,EAASC,EAAgB,EAI/B/H,EAAG,UAAY,UAAsB,CAEnC6H,EAAiBC,CAAM,EAIvBc,EAAY,UAAY,CAAEf,EAAiB,IAAI,GAAK,CAAC,EACrD,IAAMtH,GAAMP,EAAG,MAAM,KAAM,SAAS,EACpC,OAAA6H,EAAiB,IAAI,EACdtH,IAETP,EAAG,UAAU,UAAYA,EAAG,UAC5BgJ,EAAI,QAAQhJ,EAAG,SAAS,SAEnB5H,EAAG,EAMZ,GAAInF,EAAG,MAAO,OAAOA,EAAG,MAAM,KAAM0E,CAAI,EACxC,OAAQA,EAAK,OAAM,CACjB,IAAK,GAAG,OAAO1E,EAAG0E,EAAK,CAAC,CAAC,EACzB,IAAK,GAAG,OAAO1E,EAAG0E,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,EAClC,QAAS,OAAO1E,EAAE,MAK1B,aAAc,CACZ,mBAAoB,CAClB,SAAU,SAAAmB,EAAK,CAAA,OAAIA,IAAU,IAAQA,IAAU,IAC/C,aAAc,UAAA,CAAA,MAAM,IACpB,QAAS,2BAKf,SAASsU,GAASO,EAAMnN,EAAMlC,EAAU,CACtC,IAAMiN,EAAWoC,EAAKnN,CAAI,EAC1B,GAAI,CAAC+K,EAAU,OAAOA,EACtB,IAAMqC,EAActP,EAASiN,CAAQ,EACrC,OAAAoC,EAAKnN,CAAI,EAAIoN,EACNrC,EAGT,SAASgC,GAA6BlR,EAAM,CAC1C,IAAMwR,EAAoB,CAAC,CAACxR,EAAK,CAAC,GAAK,OAAOA,EAAK,CAAC,EAAE,aAAgB,WACtE,MAAO,CACL,IAAK,UAAY,CACf,OAAOwR,EAAoBxR,EAAK,CAAC,EAAE,YAAcA,EAAK,CAAC,GAEzD,QAAS,SAAU1E,EAAI,CACjBkW,EACFxR,EAAK,CAAC,EAAE,YAAc1E,EAEtB0E,EAAK,CAAC,EAAI1E,IClMlB,IAAAmW,GAAiB,SAAC3E,EAAG,CAAA,OAAHA,IAAG,SAAHA,EAAM,QAAY,CAClC,KAAM,SAACD,EAAW,CACV,qBAAsBC,GACvBD,EAAO,yBAAyB,MAAM,GAE3CC,EAAI,iBAAiB,QAAS,SAACtF,EAAU,CACvC,IAAIkK,EAAYC,EAChB,GAAI,CACFD,EAAaE,GAAYpK,EAAM,MAAM,EACrCmK,EAAiBE,GAAgBrK,EAAM,OAAQsF,CAAG,QAC3CrM,EAAG,CACViR,EAAa,WACbC,EAAiB,WACjB9E,EAAO,QAAQ,MAAM,sFAAsF,EAE7GA,EAAO,gBAAgB,WAAY,CAAE,WAAA6E,EAAY,eAAAC,GAAkB,MAAM,GACxE,EAAI,KAILG,GAAO,oCAEb,SAASF,GAAaG,EAAI,CACxB,IAAIC,EAAOD,EAAG,aAAeA,EAAG,WAAa,GAQ7C,MANI,CAACC,IAASD,EAAG,OAAS,UAAYA,EAAG,OAAS,YAChDC,EAAOD,EAAG,OAGZC,EAAOA,EAAK,QAAQF,GAAM,IAAI,EAE1BE,EAAK,OAAS,IACTA,EAAK,MAAM,EAAG,GAAG,EAAI,QAGvBA,EAIT,SAASH,GAAiBE,EAAIjF,EAAK,CACjC,IAAM5M,EAAQ,CAAC6R,EAAG,OAAO,EAIzB,GAHIA,EAAG,IAAI7R,EAAM,KAAK,IAAM6R,EAAG,EAAE,EAC7BA,EAAG,WAAaA,EAAG,UAAU,QAAQ7R,EAAM,KAAI,IAAK6R,EAAG,UAAU,MAAM,GAAG,EAAE,KAAK,GAAG,CAAG,EAEvF,CAACjF,EAAI,SAAS,kBAAoB,CAAC,MAAM,UAAU,QAAS,OAAO5M,EAAM,KAAK,EAAE,EACpF,GAAI,CACF,GAAI4M,EAAI,SAAS,iBAAiB5M,EAAM,KAAK,EAAE,CAAC,EAAE,SAAW,EAAG,OAAOA,EAAM,KAAK,EAAE,QAC7EO,EAAG,CAEV,OAAOP,EAAM,KAAK,EAAE,EAGtB,GAAI6R,EAAG,WAAW,WAAW,OAAS,EAAG,CACvC,IAAMzJ,EAAQ,MAAM,UAAU,QAAQ,KAAKyJ,EAAG,WAAW,WAAYA,CAAE,EAAI,EAC3E7R,EAAM,KAAI,cAAeoI,EAAK,GAAG,EAEnC,OAAIwE,EAAI,SAAS,iBAAiB5M,EAAM,KAAK,EAAE,CAAC,EAAE,SAAW,EAAUA,EAAM,KAAK,EAAE,EAEhF6R,EAAG,WAAsBF,GAAgBE,EAAG,WAAYjF,CAAG,EAAC,MAAM5M,EAAM,KAAK,EAAE,EAC5EA,EAAM,KAAK,EAAE,YC3DtB+R,GAAiB,SAACnF,EAAiB,CAAjBA,IAAG,SAAHA,EAAM,QACtB,IAAMzB,EAAS,CACb,KAAM,SAACwB,EAAW,CAChB,GAAM,qBAAsBC,GACvBD,EAAO,yBAAyB,YAAY,EAGjD,KAAMqF,EAAO,SAAA/N,EAAI,CAAA,OAAI,UAAA,CAAA,OAAM0I,EAAO,gBAAgB1I,EAAM,CAAA,EAAI,YAAY,IAGxE2I,EAAI,iBAAiB,WAAYoF,EAAK,aAAa,EAAG,EAAI,EAC1DpF,EAAI,iBAAiB,WAAYoF,EAAK,YAAY,EAAG,EAAI,EACzDpF,EAAI,iBAAiB,OAAQoF,EAAK,aAAa,EAAG,EAAI,EACtDpF,EAAI,SAAS,iBAAiB,mBAAoBoF,EAAK,kBAAkB,EAAG,EAAI,EAEhFpF,EAAI,iBAAiB,OAAQ,UAAA,CAAA,OAAMA,EAAI,iBAAiB,WAAYoF,EAAK,gBAAgB,EAAG,EAAI,EAAC,EAGjGpF,EAAI,iBAAiB,aAAc,SAAAtF,EAAS,CAC1C,IAAMnJ,EAAWmJ,EAAM,OACnB,CAAE,KAAM2K,EAAiB3K,EAAM,OAAQsF,CAAG,EAAG,GAAIqF,EAAiB3K,EAAM,OAAQsF,CAAG,EAAG,MAAOsF,GAAgBtF,CAAG,GAChH,CAAE,GAAIqF,EAAiBrF,EAAI,SAAS,KAAMA,CAAG,GACjDD,EAAO,gBAAgB,eAAgBxO,EAAU,YAAY,GAC5D,EAAI,EAGHyO,EAAI,QAAQ,WAAWuF,GAAcxF,EAAQC,EAAI,QAAS,YAAaA,EAAK,EAAI,EAChFA,EAAI,QAAQ,cAAcuF,GAAcxF,EAAQC,EAAI,QAAS,eAAgBA,CAAG,KAWxF,OAAOzB,GAYT,IAAM8G,EAAmB,SAACpF,EAAKD,EAAQ,CACrC,IAAMwF,EAAIxF,EAAI,SAAS,cAAc,GAAG,EACxC,OAAAwF,EAAE,KAAOvF,EACT,GAAUuF,EAAE,SAAWA,EAAE,OAASA,EAAE,MAGhCC,GAAwB,SAACzF,EAAKzH,EAAOmN,EAAOzF,EAAQ,CACxD,IAAM0F,EAAcN,EAAiBrF,EAAI,SAAS,KAAMA,CAAG,EAC3D,MAAO,CAAE,MAAA0F,EAAO,MAAAnN,EAAO,UAAW+M,GAAgBtF,CAAG,EAAG,GAAIC,GAAO0F,EAAa,KAAMA,IAGlFJ,GAAgB,SAACxF,EAAQpP,EAAQnC,EAAIwR,EAAK4F,EAA4B,CAA5BA,IAAe,SAAfA,EAAkB,IAChE,IAAMC,EAAOlV,EAAOnC,CAAE,EACtBmC,EAAOnC,CAAE,EAAI,SAAC+J,EAAOmN,EAAOzF,EAAQ,CAClCF,EAAO,gBAAe,WAAYvR,EAAMiX,GAAsBzF,EAAKzH,EAAOmN,EAAOzF,CAAG,EAAG,YAAY,EAE/F2F,GAAmB,OAAO7F,EAAO,iBAAoB,YAAYA,EAAO,gBAAe,EAG3F8F,EAAK,MAAMlV,EAAQ,CAAC4H,EAAOmN,CAAK,EAAE,OAAOzF,IAAQ,OAAYA,EAAM,CAAA,CAAE,CAAC,IAOpEqF,GAAkB,SAACtF,EAAQ,CAC/B,GAAI,CACF,OAAOA,EAAI,QAAQ,YACZrM,EAAG,CAAA,GClFRmS,EAAkB,UAOxBC,GAAiB,SAACC,EAAmBhG,EAAiB,CAApCgG,IAAY,SAAZA,EAAe,CAAA,GAAIhG,IAAG,SAAHA,EAAM,QACzC,IAAIiG,EAAmB,CAAA,EACjB1H,EAAS,CACb,KAAM,SAAAwB,EAAU,CACd,GAAI,CAACA,EAAO,yBAAyB,SAAS,EAAG,OAEjD,IAAMmG,EAAc,CAClBnG,EAAO,QAAQ,UAAU,OACzBA,EAAO,QAAQ,UAAU,QAAQ,EACjC,OAAOiG,CAAY,EAErBG,EAAyB,EACzBC,EAAgB,EAGhB,SAASD,GAA6B,CACpC,GAAI,IAAE,qBAAsBnG,EAAI,eAAe,YAAc,EAAE,YAAaA,IAE5E,KAAMqG,EAAkB,IAAI,QACtBC,EAAkB,IAAI,QAEtBC,EAAevG,EAAI,eAAe,UAAU,KAClDA,EAAI,eAAe,UAAU,KAAO,SAAe1P,EAAQ2P,EAAK,CAE1D,MACFoG,EAAgB,IAAI,KAAM,CAAE,OAAA/V,EAAQ,IAAA2P,EAAK,EAE3CsG,EAAa,MAAM,KAAM,SAAS,GAGpC,IAAMC,EAAexG,EAAI,eAAe,UAAU,KAClDA,EAAI,eAAe,UAAU,KAAO,SAAeG,EAAM,CAAA,IAAAhC,EAAA,KACjDsI,EAAcJ,EAAgB,IAAI,IAAI,EAC5C,GAAII,EAAa,CAGf,IAAMC,EAAYJ,EAAgB,IAAI,IAAI,EACtCI,IACF,KAAK,oBAAoB,OAAQA,EAAU,IAAI,EAC/C,KAAK,oBAAoB,QAASA,EAAU,KAAK,GAGnD,IAAMC,EAAe,IAAI,KACnB3S,EAAQ,UAAA,CAAA,OAAM4S,EAAeH,EAAY,OAAQA,EAAY,IAAKI,EAAYF,CAAY,CAAC,GAC3FG,EAAO,UAAA,CAAA,OAAMC,EAAcN,EAAY,OAAQA,EAAY,IAAKtI,EAAK,OAAQ0I,EAAYF,CAAY,CAAC,GAE5G,KAAK,iBAAiB,OAAQG,CAAI,EAClC,KAAK,iBAAiB,QAAS9S,CAAK,EAEhC,MACFsS,EAAgB,IAAI,KAAM,CAAE,KAAAQ,EAAM,MAAA9S,EAAO,EAI7CwS,EAAa,MAAM,KAAM,SAAS,IAWtC,SAASO,EAAezW,EAAQ2P,EAAKU,EAAQqG,EAAU,CACrD,GAAI/G,IAAQ,OAAW,CACrBF,EAAO,QAAQ,KAAK,4GAA4G,EAChI,OAKF,GAAI,SAAOE,GAAQ,UAAYlR,EAASmX,EAAajG,EAAI,QAAQ,QAAS,EAAE,CAAC,GAI7E,KAAM1O,EAAW,CACf,OAAAoP,EACA,OAAQ,OAAOrQ,CAAM,EACrB,IAAK,OAAO2P,CAAG,EACf,SAAU+G,GAERrG,GAAU,IAEZZ,EAAO,gBAAgB,wBAAyBxO,EAAUuU,CAAe,EAEzE/F,EAAO,gBAAgB,2BAA4BxO,EAAUuU,CAAe,GAIhF,SAASc,EAAgBtW,EAAQ2P,EAAK+G,EAAU,CAC9C,GAAI/G,IAAQ,OAAW,CACrBF,EAAO,QAAQ,KAAK,4GAA4G,EAChI,OAGE,OAAOE,GAAQ,UAAYlR,EAASmX,EAAajG,EAAI,QAAQ,QAAS,EAAE,CAAC,GAM7EF,EAAO,gBAAgB,uBAAwB,CAC7C,OAAQ,OAAOzP,CAAM,EACrB,IAAK,OAAO2P,CAAG,EACf,SAAU+G,GACTlB,CAAe,EAIpB,SAASM,GAAoB,CAI3B,GAAI,IAAE,UAAWpG,IAAQA,EAAI,MAAM,UAEnC,KAAMiH,EAAWjH,EAAI,MACrBA,EAAI,MAAQ,UAAkB,CAAA,IAAAkH,EAAA,UACtBC,EAAe,UAAU,CAAC,EAC1BC,EAAU,UAAU,CAAC,EAEvB9W,EACA2P,EAAM,KAEV,OAAIkH,GAAgB,OAAOA,GAAiB,UAC1ClH,EAAMkH,EAAa,IACfC,GAAW,WAAYA,EACzB9W,EAAS8W,EAAQ,OACRD,GAAgB,WAAYA,IACrC7W,EAAS6W,EAAa,UAGxBlH,EAAMkH,EACFC,GAAW,WAAYA,IACzB9W,EAAS8W,EAAQ,SAIjB9W,IAAW,SACbA,EAAS,OAGJ,IAAI,QAAQ,SAAC+W,EAASC,EAAW,CACtC,IAAMX,EAAe,IAAI,KAGzBM,EAAQ,MAAA,OAAIC,CAAS,EAClB,KAAK,SAAAK,EAAY,CAChBC,EAAmBD,EAAUjX,EAAQ2P,EAAK4G,EAAYF,CAAY,CAAC,EACnEU,EAAQE,CAAQ,EACjB,EAAC,MACK,SAAAvT,EAAS,CACdyT,EAAiBnX,EAAQ2P,EAAK4G,EAAYF,CAAY,CAAC,EACvDW,EAAOtT,CAAK,EACb,EACJ,IAUL,IAAMwT,EAAqB,SAACD,EAAUjX,EAAQ2P,EAAK+G,EAAa,CAC9D,IAAMzV,EAAW,CACf,OAAQ,OAAOjB,CAAM,EACrB,OAAQiX,EAAS,OACjB,IAAK,OAAOtH,CAAG,EACf,SAAU+G,GAERO,EAAS,QAAU,IAErBxH,EAAO,gBAAgB,iBAAkBxO,EAAUuU,CAAe,EAElE/F,EAAO,gBAAgB,oBAAqBxO,EAAUuU,CAAe,GAInE2B,EAAmB,SAACnX,EAAQ2P,EAAK+G,EAAa,CAClDjH,EAAO,gBAAgB,gBAAiB,CAAE,OAAQ,OAAOzP,CAAM,EAAG,IAAK,OAAO2P,CAAG,EAAG,SAAU+G,GAAYlB,CAAe,KAY/H,OAAOvH,GAGHsI,EAAc,SAACa,EAAS,CAAA,OAAKA,GAAa,IAAI,KAASA,GCtM7DC,GAAiB,CACf,KAAM,SAAC5H,EAAW,CAEhB,IAAI/N,EAAI,EAGR+N,EAAO,WAAW,SAACrF,EAAU,CAE3B,GAAI1I,GAAK+N,EAAO,QAAQ,UACtB,OAAAA,EAAO,QAAQ,KAAI,+DAAgEA,EAAO,QAAQ,UAAS,gBAAgB,EACpH,GAET/N,IACD,EAED+N,EAAO,gBAAkB,UAAM,CAAE/N,EAAI,IAEvC,aAAc,CACZ,UAAW,CACT,aAAc,UAAA,CAAA,MAAM,KACpB,QAAS,yCACT,SAAU,SAAAtD,EAAG,CAAA,OAAIc,GAAS,EAAG,GAAG,EAAEd,CAAG,YCrB3CkZ,GAAiB,CACf,KAAM,SAAC7H,EAAW,CAChBA,EAAO,WAAW,SAAArF,EAAS,CACzB,IAAMmN,EAAYvZ,EAAOoM,EAAM,OAAQ,SAACjM,EAAOsI,EAAE,CAAA,OAAKtI,EAAM,OAAOsI,EAAG,UAAU,GAAG,CAAA,CAAE,EACrFlG,EAAIgX,EAAW,SAAA/N,EAAS,CACtBA,EAAM,KAAOgO,GAAMhO,EAAM,IAAI,EAC9B,EACF,IAIL,IAAMgO,GAAQF,GAAe,OAAS,SAAA1V,EAAG,CAAA,OACvC,OAAOA,GAAQ,SACXA,EAAI,QAAQ,QAAS,EAAE,EAAE,QAAQ,OAAQ,EAAE,EAC3CA,GChBN6V,GAAiB,SAAC/H,EAAc1F,EAAS,CAAA,OAAvB0F,IAAG,SAAHA,EAAM,QAAQ1F,IAAS,SAATA,EAAY,kBAAsB,CAChE,KAAM,SAACyF,EAAW,CAEhB,GADI,CAACA,EAAO,QAAQ,kBAChB,CAACA,EAAO,QAAQ,kBAAkB,oBAAqB,OAC3D,SAASiI,EAASC,EAAgBhI,EAAKiI,EAAQC,EAAQnU,EAAO,CAE5D,GAAIkU,IAAW,GAAK,kBAAkB,KAAKD,CAAc,EACvDlI,EAAO,QAAQ,KAAK,oFAAoF,MACnG,CAEL,IAAM3G,EAAe,CAAE,SAAU,QAAS,UAAW,GAAM,eAAgB,CAAE,KAAM,uBAE/EsB,EAKJ,GAAI1G,EAGF0G,EAAQqF,EAAO,MAAM,OAAO/L,EAAO,GAAMoF,EAAckB,EAAW,CAAC,EACnE8N,GAAc1N,EAAM,OAAO,CAAC,EAAE,WAAYuF,EAAKiI,EAAQC,CAAM,UAU5D,OAAOF,GAAmB,UAAYA,IAAmB,OACzD,CAAChI,GAAO,OAAOA,GAAQ,WACxB,CAACiI,GAAU,CAACC,GAAU,CAACnU,EACvB,CAEA,IAAMqD,EAAO4Q,EAAe,KAAI,UAAaA,EAAe,KAAS,QAG/D3W,EAAU2W,EAAe,SAAWA,EAAe,QAAU,GAEnEvN,EAAQqF,EAAO,MAAM,OAAO,CAAE,KAAA1I,EAAM,QAAA/F,GAAW,GAAM8H,EAAckB,EAAW,CAAC,EAG/EI,EAAM,cAAgBuN,EAGtBvN,EAAM,YAAYJ,EAAW,CAAE,MAAO2N,EAAgB,gBAAiBhI,EAAK,OAI5EvF,EAAQqF,EAAO,MAAM,OAAOkI,EAAgB,GAAM7O,EAAckB,EAAW,CAAC,EAC5E8N,GAAc1N,EAAM,OAAO,CAAC,EAAE,WAAYuF,EAAKiI,EAAQC,CAAM,EAG/DpI,EAAO,QAAQrF,CAAK,EAGlB,OAAO2N,GAAgB,YAAYA,EAAY,MAAM,KAAM,SAAS,EAG1E,IAAMA,EAAcrI,EAAI,QACxBA,EAAI,QAAUgI,KAOZI,GAAgB,SAAC5U,EAAOyM,EAAKiI,EAAQC,EAAW,CAC/C3U,EAAM,CAAC,GAAGA,EAAM,KAAK,CAAA,CAAE,EAC5B,IAAM8U,EAAU9U,EAAM,CAAC,EACnB,CAAC8U,EAAQ,MAAQ,OAAOrI,GAAQ,WAAUqI,EAAQ,KAAOrI,GACzD,CAACqI,EAAQ,YAAcC,GAAeL,CAAM,IAAGI,EAAQ,WAAaJ,GACnEI,EAAQ,eACPC,GAAeJ,CAAM,EACvBG,EAAQ,aAAeH,EACd,OAAO,OAASI,GAAe,OAAO,MAAM,cAAc,IACnED,EAAQ,aAAe,OAAO,MAAM,kBAKpCC,GAAiB,SAACvW,EAAC,CAAA,OAAK,OAAOA,GAAM,UAAY,OAAO,KAAKA,CAAC,IAAM,OCpFtEwW,GAIJC,GAAiB,SAACzI,EAAiB,CAAjBA,IAAG,SAAHA,EAAM,QACtB,IAAMzB,EAAS,CACb,KAAM,SAACwB,EAAW,CAChB,GAAI,GAACA,EAAO,QAAQ,kBAAoB,CAACA,EAAO,QAAQ,kBAAkB,qBAC1E,KAAM2I,EAAW,SAAAC,EAAO,CACtB,IAAI3U,EAAQ2U,EAAI,OACZC,EAAa,GAGjB,GAAI,CACED,EAAI,QAAUA,EAAI,OAAO,SAC3B3U,EAAQ2U,EAAI,OAAO,OACnBC,EAAa,UAERjV,EAAG,CAAA,CAGZ,IAAMkV,EAAY,CAAC9I,EAAO,QAAQ,0CAE5BrF,EAAQqF,EAAO,MAAM,OAAO/L,EAAO,GAAO,CAC9C,SAAU,QACV,UAAA6U,EACA,eAAgB,CAAE,KAAM,8BACvB,6BAA8B,EAAG9I,EAAO,OAAO,EAE9C6I,GACF/X,EAAI6J,EAAM,OAAO,CAAC,EAAE,WAAYoO,GAAsB9U,CAAK,CAAC,EAG9D+L,EAAO,QAAQrF,EAAO,SAACA,EAAU,CAC/B,GAAIrC,EAAQqC,EAAM,aAAa,GAAK,CAACA,EAAM,cAAc,MAAO,CAAA,IAAAqO,EAC9DrO,EAAM,YAAY,8BAA4BqO,EAAA,CAAA,EAAAA,EAC3C,OAAO,UAAU,SAAS,KAAKrO,EAAM,aAAa,CAAC,EAAG,CACrD,KAAMA,EAAM,cAAc,KAC1B,QAASA,EAAM,cAAc,QAC7B,KAAMA,EAAM,cAAc,MAC3BqO,EAAA,GAGN,GAEC,qBAAsB/I,EACxBA,EAAI,iBAAiB,qBAAsB0I,CAAQ,EAEnD1I,EAAI,qBAAuB,SAAC9E,EAAQ8N,EAAY,CAC9CN,EAAS,CAAE,OAAQ,CAAE,OAAAxN,EAAQ,QAAA8N,GAAW,GAG5CR,GAAYE,KAiBhB,OAAOnK,GAqBHuK,GAAwB,SAAC9U,EAAK,CAAA,OAAK,SAAC8F,EAAU,CAC9CA,EAAM,OAAS9F,EAAM,SAAQ,GAC7B8F,EAAM,SACRA,EAAM,OAASA,EAAM,OAAO,QAAQ,OAAQ,EAAE,UChG5CzC,GAAO,qBACPiJ,GAAU,QACVL,GAAM,wCAYNgJ,GAASvY,EAAO,CAAA,EAAIX,EAAgC,OAAQgB,EAAmB,EAsB/EmY,EAAU,CACd,QAAS,KACT,aAAc,SAAC3V,EAAS,CAElB,OAAOA,GAAS,WAAUA,EAAO,CAAE,OAAQA,IAC1CA,IAAMA,EAAO,CAAA,GAElB,IAAM0K,EAAkB,CAEtB+C,GACAM,GAAY,EACZJ,GAAa,EACbU,GAAa,EACb+F,GACA9F,GACAG,GACA4F,GACAG,GAAmB,EACnBU,GAAwB,EACxBtD,GAA2B,EAC3BR,GAA4B,EAC5BoB,GAAwB,EACxB9D,GAGAU,GAAyB,CAAE,EAIvBwG,EAAU,IAAIzJ,GAAOnM,EAAM0V,GAAQhL,EAAiB,CAAE,KAAA5G,GAAM,QAAAiJ,GAAS,IAAAL,GAAK,EAGhF,OAAAkJ,EAAQ,aAAa,OAAO,eAAiBrJ,GAAkBY,EAAe,EAE9EyI,EAAQ,QAAQ,MAAM,SAAS,EAC/BA,EAAQ,gBAAgB,iBAAkB,CAAA,EAAI,OAAO,EAE9CA,EAAQ,QAAQ,kBACnBA,EAAQ,aAAY,EACpBA,GAEN,MAAO,SAAC5V,EAAS,CACf,OAAI2V,EAAQ,SACVA,EAAQ,QAAQ,QAAQ,KAAK,sDAAsD,EAC5EA,EAAQ,UAEjBA,EAAQ,QAAUA,EAAQ,aAAa3V,CAAI,EACpC2V,EAAQ,UAEjB,UAAW,UAAM,CACf,OAAOA,EAAQ,SAAW,OAI9B,OAAArY,EAAI,CAAC,iBAAiB,EAAE,OAAOxB,EAAKqQ,GAAO,SAAS,CAAC,EAAG,SAAC0J,EAAM,CACzD,KAAK,KAAKA,CAAC,IACfF,EAAQE,CAAC,EAAI,UAAY,CACvB,GAAI,CAACF,EAAQ,QAAS,OAAO,QAAQ,IAAG,WAAYE,EAAC,sCAAsC,EAC3FF,EAAQ,QAAQ,QAAU,EAC1B,IAAMpN,EAAMoN,EAAQ,QAAQE,CAAC,EAAE,MAAMF,EAAQ,QAAS,SAAS,EAC/D,OAAAA,EAAQ,QAAQ,QAAU,EACnBpN,IAEV,EAEDuN,EAAiBH,EAEjBG,EAAe,OAAS3J,GACxB2J,EAAe,MAAQhO,GACvBgO,EAAe,QAAU3L,GACzB2L,EAAe,WAAa1X,GAG5B0X,EAAc,QAAWH,EC5GzBG,CAEA,CAAA,ICHA,IAAAC,GAAoB,SACpB,OAAO,QAAU,GAAAC",
  "names": ["require_bugsnag", "__commonJSMin", "exports", "module", "f", "g", "define", "_$breadcrumbTypes_17", "_$reduce_26", "arr", "fn", "accum", "val", "i", "len", "_$filter_21", "item", "_$includes_22", "x", "_$isArray_23", "obj", "_hasDontEnumBug", "_dontEnums", "_$keys_24", "result", "prop", "_$intRange_33", "min", "max", "value", "_$listOfFunctions_34", "_$stringWithLength_35", "defaultErrorTypes", "_$config_14", "providedKeys", "defaultKeys", "k", "endpoints", "maybeType", "key", "method", "s", "p", "feature", "_$assign_20", "target", "source", "_$map_25", "schema", "_$config_10", "_extends", "getPrefixedConsole", "logger", "consoleLog", "consoleMethod", "Breadcrumb", "message", "metadata", "type", "timestamp", "_proto", "_$Breadcrumb_12", "root", "factory", "_$stackframe_9", "_isNumber", "n", "_capitalize", "str", "_getter", "booleanProps", "numericProps", "stringProps", "arrayProps", "objectProps", "props", "StackFrame", "v", "fileName", "lineNumber", "columnNumber", "functionName", "argsStartIndex", "argsEndIndex", "args", "locationString", "parts", "j", "_$stackGenerator_8", "opts", "stack", "maxStackSize", "curr", "e", "_$errorStackParser_6", "FIREFOX_SAFARI_STACK_REGEXP", "CHROME_IE_STACK_REGEXP", "SAFARI_NATIVE_CODE_REGEXP", "error", "urlLike", "regExp", "filtered", "line", "sanitizedLine", "location", "tokens", "locationParts", "functionNameRegex", "matches", "lineRE", "lines", "match", "functionCall", "argsRaw", "_$errorStackParser_19", "_$safeJsonStringify_5", "data", "replacer", "space", "redactedKeys", "redactedPaths", "prepareObjForSerialization", "MAX_DEPTH", "MAX_EDGES", "MIN_PRESERVED_DEPTH", "REPLACEMENT_NODE", "isError", "o", "throwsMessage", "err", "find", "haystack", "needle", "isDescendent", "paths", "path", "shouldRedact", "patterns", "__isArray_5", "safelyGetProp", "seen", "edges", "visit", "edgesExceeded", "fResult", "er", "eResult", "aResult", "add", "existingFeatures", "existingFeatureKeys", "name", "variant", "existingIndex", "merge", "newFeatures", "toEventApi", "featureFlags", "_ref", "flag", "clear", "features", "featuresIndex", "_$featureFlagDelegate_27", "_$hasStack_28", "_$isError_7", "__isError_7", "_$iserror_29", "__add_31", "state", "section", "keyOrObj", "maybeVal", "_updates", "updates", "__clear_31", "get", "_$metadataDelegate_31", "Event", "errorClass", "errorMessage", "stacktrace", "handledState", "originalError", "defaultHandledState", "createBugsnagError", "traceId", "spanId", "___extends_15", "id", "email", "formatStackframe", "frame", "normaliseFunctionName", "ensureString", "getCauseStack", "errorFramesToSkip", "backtraceFramesToSkip", "maybeError", "tolerateNonErrors", "component", "_normaliseError", "normaliseError", "internalFrames", "event", "makeSerialisable", "_event$errors", "causes", "normalisedCauses", "cause", "_normaliseError2", "createAndLogInputError", "reason", "verb", "hasNecessaryFields", "_$Event_15", "_$asyncEvery_16", "cb", "index", "next", "_$callbackRunner_18", "callbacks", "onCallbackError", "runMaybeAsyncCallback", "ret", "_$syncCallbackRunner_32", "callbackArg", "callbackType", "ignore", "cbs", "_$pad_4", "num", "size", "env", "globalCount", "mimeTypesLength", "clientId", "_$fingerprint_2", "_$isCuid_3", "c", "blockSize", "base", "discreteValues", "randomBlock", "safeCounter", "cuid", "letter", "counter", "print", "random", "_$cuid_1", "Session", "_$Session_36", "__add_13", "__clear_13", "__merge_13", "noop", "Client", "configuration", "internalPlugins", "notifier", "_this", "pl", "self", "notify", "plugin", "_reduce", "defaultValue", "valid", "errors", "config", "generateConfigErrorMessage", "d", "session", "front", "crumb", "types", "onError", "postReportCallback", "_this2", "originalSeverity", "shouldSend", "rawInput", "stringify", "_$Client_13", "EVENT_REDACTION_PATHS", "_$jsonPayload_30", "payload", "_$delivery_37", "client", "win", "url", "getApiUrl", "body", "req", "endpoint", "version", "isoDate", "matchPageProtocol", "pageProtocol", "_$delivery_38", "status", "_err", "_err2", "appStart", "reset", "_$app_39", "now", "_$context_40", "BUGSNAG_ANONYMOUS_ID_KEY", "getDeviceId", "storage", "_$device_41", "nav", "device", "setDefaultUserId", "eventOrSession", "user", "_$request_42", "_$session_43", "sessionDelegate", "sessionClient", "_$clientIp_44", "_$consoleBreadcrumbs_45", "isDev", "CONSOLE_LOG_METHODS", "original", "_len", "_key", "arg", "stringified", "MAX_LINE_LENGTH", "MAX_SCRIPT_LENGTH", "_$inlineScriptContent_46", "doc", "originalLocation", "html", "isOldIe", "DOMContentLoaded", "getHtml", "prev", "_lastScript", "updateLastScript", "script", "getCurrentScript", "scripts", "addSurroundingCode", "htmlLines", "zeroBasedLine", "start", "end", "cleanUrl", "currentScript", "content", "_map", "__proxy", "__traceOriginalScript", "_setTimeout", "eventTargetCallbackAccessor", "callbackAccessor", "alsoCallOriginal", "cba", "host", "replacement", "isEventHandlerObj", "_$interactionBreadcrumbs_47", "targetText", "targetSelector", "getNodeText", "getNodeSelector", "trim", "el", "text", "_$navigationBreadcrumbs_48", "drop", "relativeLocation", "getCurrentState", "wrapHistoryFn", "a", "stateChangeToMetadata", "title", "currentPath", "resetEventCount", "orig", "BREADCRUMB_TYPE", "_$networkBreadcrumbs_49", "_ignoredUrls", "restoreFunctions", "ignoredUrls", "monkeyPatchXMLHttpRequest", "monkeyPatchFetch", "trackedRequests", "requestHandlers", "originalOpen", "originalSend", "requestData", "listeners", "requestStart", "handleXHRError", "getDuration", "load", "handleXHRLoad", "duration", "oldFetch", "_arguments", "urlOrRequest", "options", "resolve", "reject", "response", "handleFetchSuccess", "handleFetchError", "startTime", "_$throttle_50", "_$stripQueryString_51", "allFrames", "strip", "_$onerror_52", "onerror", "messageOrEvent", "lineNo", "charNo", "decorateStack", "prevOnError", "culprit", "isActualNumber", "_listener", "_$unhandledRejection_53", "listener", "evt", "isBluebird", "unhandled", "fixBluebirdStacktrace", "_event$addMetadata", "promise", "__schema_11", "Bugsnag", "bugsnag", "m", "_$notifier_11", "import_bugsnag", "Bugsnag"]
}
