Mercurial > repos > fubar > jbrowse2
view x/static/js/9245.d882c265.chunk.js.map @ 127:fbabf7498471 draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 116b1a4bbd62251ad552306df2dc8aa8f46c6721
author | fubar |
---|---|
date | Mon, 07 Oct 2024 02:11:55 +0000 |
parents | 49f3d3878413 |
children |
line wrap: on
line source
{"version":3,"file":"static/js/9245.d882c265.chunk.js","mappings":"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","sources":["../../../node_modules/@mui/material/Link/getTextDecoration.js","../../../node_modules/@mui/material/Link/Link.js","../../../node_modules/@mui/material/Link/linkClasses.js","../../../node_modules/source-map-js/lib/array-set.js","../../../node_modules/source-map-js/lib/base64-vlq.js","../../../node_modules/source-map-js/lib/base64.js","../../../node_modules/source-map-js/lib/binary-search.js","../../../node_modules/source-map-js/lib/mapping-list.js","../../../node_modules/source-map-js/lib/quick-sort.js","../../../node_modules/source-map-js/lib/source-map-consumer.js","../../../node_modules/source-map-js/lib/source-map-generator.js","../../../node_modules/source-map-js/lib/source-node.js","../../../node_modules/source-map-js/lib/util.js","../../../node_modules/source-map-js/source-map.js"],"sourcesContent":["import { getPath } from '@mui/system/style';\nimport { alpha } from '@mui/system/colorManipulator';\nconst getTextDecoration = ({\n theme,\n ownerState\n}) => {\n const transformedColor = ownerState.color;\n const color = getPath(theme, `palette.${transformedColor}`, false) || ownerState.color;\n const channelColor = getPath(theme, `palette.${transformedColor}Channel`);\n if ('vars' in theme && channelColor) {\n return `rgba(${channelColor} / 0.4)`;\n }\n return alpha(color, 0.4);\n};\nexport default getTextDecoration;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { alpha } from '@mui/system/colorManipulator';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport composeClasses from '@mui/utils/composeClasses';\nimport isFocusVisible from '@mui/utils/isFocusVisible';\nimport capitalize from \"../utils/capitalize.js\";\nimport { styled, useTheme } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport Typography from \"../Typography/index.js\";\nimport linkClasses, { getLinkUtilityClass } from \"./linkClasses.js\";\nimport getTextDecoration from \"./getTextDecoration.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst v6Colors = {\n primary: true,\n secondary: true,\n error: true,\n info: true,\n success: true,\n warning: true,\n textPrimary: true,\n textSecondary: true,\n textDisabled: true\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n component,\n focusVisible,\n underline\n } = ownerState;\n const slots = {\n root: ['root', `underline${capitalize(underline)}`, component === 'button' && 'button', focusVisible && 'focusVisible']\n };\n return composeClasses(slots, getLinkUtilityClass, classes);\n};\nconst LinkRoot = styled(Typography, {\n name: 'MuiLink',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`underline${capitalize(ownerState.underline)}`], ownerState.component === 'button' && styles.button];\n }\n})(memoTheme(({\n theme\n}) => {\n return {\n variants: [{\n props: {\n underline: 'none'\n },\n style: {\n textDecoration: 'none'\n }\n }, {\n props: {\n underline: 'hover'\n },\n style: {\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline'\n }\n }\n }, {\n props: {\n underline: 'always'\n },\n style: {\n textDecoration: 'underline',\n '&:hover': {\n textDecorationColor: 'inherit'\n }\n }\n }, {\n props: ({\n underline,\n ownerState\n }) => underline === 'always' && ownerState.color !== 'inherit',\n style: {\n textDecorationColor: 'var(--Link-underlineColor)'\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n underline: 'always',\n color\n },\n style: {\n '--Link-underlineColor': theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / 0.4)` : alpha(theme.palette[color].main, 0.4)\n }\n })), {\n props: {\n underline: 'always',\n color: 'textPrimary'\n },\n style: {\n '--Link-underlineColor': theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / 0.4)` : alpha(theme.palette.text.primary, 0.4)\n }\n }, {\n props: {\n underline: 'always',\n color: 'textSecondary'\n },\n style: {\n '--Link-underlineColor': theme.vars ? `rgba(${theme.vars.palette.text.secondaryChannel} / 0.4)` : alpha(theme.palette.text.secondary, 0.4)\n }\n }, {\n props: {\n underline: 'always',\n color: 'textDisabled'\n },\n style: {\n '--Link-underlineColor': (theme.vars || theme).palette.text.disabled\n }\n }, {\n props: {\n component: 'button'\n },\n style: {\n position: 'relative',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n },\n [`&.${linkClasses.focusVisible}`]: {\n outline: 'auto'\n }\n }\n }]\n };\n}));\nconst Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiLink'\n });\n const theme = useTheme();\n const {\n className,\n color = 'primary',\n component = 'a',\n onBlur,\n onFocus,\n TypographyClasses,\n underline = 'always',\n variant = 'inherit',\n sx,\n ...other\n } = props;\n const [focusVisible, setFocusVisible] = React.useState(false);\n const handleBlur = event => {\n if (!isFocusVisible(event.target)) {\n setFocusVisible(false);\n }\n if (onBlur) {\n onBlur(event);\n }\n };\n const handleFocus = event => {\n if (isFocusVisible(event.target)) {\n setFocusVisible(true);\n }\n if (onFocus) {\n onFocus(event);\n }\n };\n const ownerState = {\n ...props,\n color,\n component,\n focusVisible,\n underline,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(LinkRoot, {\n color: color,\n className: clsx(classes.root, className),\n classes: TypographyClasses,\n component: component,\n onBlur: handleBlur,\n onFocus: handleFocus,\n ref: ref,\n ownerState: ownerState,\n variant: variant,\n ...other,\n sx: [...(v6Colors[color] === undefined ? [{\n color\n }] : []), ...(Array.isArray(sx) ? sx : [sx])],\n style: {\n ...other.style,\n ...(underline === 'always' && color !== 'inherit' && !v6Colors[color] && {\n '--Link-underlineColor': getTextDecoration({\n theme,\n ownerState\n })\n })\n }\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the link.\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'success', 'error', 'info', 'warning', 'textPrimary', 'textSecondary', 'textDisabled']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: elementTypeAcceptingRef,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * `classes` prop applied to the [`Typography`](https://mui.com/material-ui/api/typography/) element.\n */\n TypographyClasses: PropTypes.object,\n /**\n * Controls when the link should have an underline.\n * @default 'always'\n */\n underline: PropTypes.oneOf(['always', 'hover', 'none']),\n /**\n * Applies the theme typography styles.\n * @default 'inherit'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['body1', 'body2', 'button', 'caption', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'inherit', 'overline', 'subtitle1', 'subtitle2']), PropTypes.string])\n} : void 0;\nexport default Link;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getLinkUtilityClass(slot) {\n return generateUtilityClass('MuiLink', slot);\n}\nconst linkClasses = generateUtilityClasses('MuiLink', ['root', 'underlineNone', 'underlineHover', 'underlineAlways', 'button', 'focusVisible']);\nexport default linkClasses;","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n this._array = [];\n this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n var set = new ArraySet();\n for (var i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n var idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n if (hasNativeMap) {\n this._set.set(aStr, idx);\n } else {\n this._set[sStr] = idx;\n }\n }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n if (hasNativeMap) {\n return this._set.has(aStr);\n } else {\n var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\n }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n if (hasNativeMap) {\n var idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n } else {\n var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\n }\n }\n\n throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following\n * disclaimer in the documentation and/or other materials provided\n * with the distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n// Continuation\n// | Sign\n// | |\n// V V\n// 101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n return aValue < 0\n ? ((-aValue) << 1) + 1\n : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n var isNegative = (aValue & 1) === 1;\n var shifted = aValue >> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n if (0 <= number && number < intToCharMap.length) {\n return intToCharMap[number];\n }\n throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n var bigA = 65; // 'A'\n var bigZ = 90; // 'Z'\n\n var littleA = 97; // 'a'\n var littleZ = 122; // 'z'\n\n var zero = 48; // '0'\n var nine = 57; // '9'\n\n var plus = 43; // '+'\n var slash = 47; // '/'\n\n var littleOffset = 26;\n var numberOffset = 52;\n\n // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n if (bigA <= charCode && charCode <= bigZ) {\n return (charCode - bigA);\n }\n\n // 26 - 51: abcdefghijklmnopqrstuvwxyz\n if (littleA <= charCode && charCode <= littleZ) {\n return (charCode - littleA + littleOffset);\n }\n\n // 52 - 61: 0123456789\n if (zero <= charCode && charCode <= nine) {\n return (charCode - zero + numberOffset);\n }\n\n // 62: +\n if (charCode == plus) {\n return 62;\n }\n\n // 63: /\n if (charCode == slash) {\n return 63;\n }\n\n // Invalid base64 digit.\n return -1;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\nfunction SortTemplate(comparator) {\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot, false) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n return doQuickSort;\n}\n\nfunction cloneSort(comparator) {\n let template = SortTemplate.toString();\n let templateFn = new Function(`return ${template}`)();\n return templateFn(comparator);\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\n\nlet sortCache = new WeakMap();\nexports.quickSort = function (ary, comparator, start = 0) {\n let doQuickSort = sortCache.get(comparator);\n if (doQuickSort === void 0) {\n doQuickSort = cloneSort(comparator);\n sortCache.set(comparator, doQuickSort);\n }\n doQuickSort(ary, comparator, start, ary.length - 1);\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n return sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n// {\n// generatedLine: The line number in the generated code,\n// generatedColumn: The column number in the generated code,\n// source: The path to the original source file that generated this\n// chunk of code,\n// originalLine: The line number in the original source that\n// corresponds to this chunk of generated code,\n// originalColumn: The column number in the original source that\n// corresponds to this chunk of generated code,\n// name: The name of the original symbol which generated this chunk of\n// code.\n// }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__generatedMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__originalMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n var c = aStr.charAt(index);\n return c === \";\" || c === \",\";\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n var boundCallback = aCallback.bind(context);\n var names = this._names;\n var sources = this._sources;\n var sourceMapURL = this._sourceMapURL;\n\n for (var i = 0, n = mappings.length; i < n; i++) {\n var mapping = mappings[i];\n var source = mapping.source === null ? null : sources.at(mapping.source);\n if(source !== null) {\n source = util.computeSourceURL(sourceRoot, source, sourceMapURL);\n }\n boundCallback({\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : names.at(mapping.name)\n });\n }\n };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number is 1-based.\n * - column: Optional. the column number in the original source.\n * The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n var line = util.getArg(aArgs, 'line');\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: line,\n originalColumn: util.getArg(aArgs, 'column', 0)\n };\n\n needle.source = this._findSourceIndex(needle.source);\n if (needle.source < 0) {\n return [];\n }\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n var originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n var originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referrenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sources = util.getArg(sourceMap, 'sources');\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n var names = util.getArg(sourceMap, 'names', []);\n var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n var mappings = util.getArg(sourceMap, 'mappings');\n var file = util.getArg(sourceMap, 'file', null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n if (sourceRoot) {\n sourceRoot = util.normalize(sourceRoot);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function (source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this._absoluteSources = this._sources.toArray().map(function (s) {\n return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n });\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this._sourceMapURL = aSourceMapURL;\n this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Utility function to find the index of a source. Returns -1 if not\n * found.\n */\nBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n if (this._sources.has(relativeSource)) {\n return this._sources.indexOf(relativeSource);\n }\n\n // Maybe aSource is an absolute URL as returned by |sources|. In\n // this case we can't simply undo the transform.\n var i;\n for (i = 0; i < this._absoluteSources.length; ++i) {\n if (this._absoluteSources[i] == aSource) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @param String aSourceMapURL\n * The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n smc.sourceRoot = aSourceMap._sourceRoot;\n smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n smc.sourceRoot);\n smc.file = aSourceMap._file;\n smc._sourceMapURL = aSourceMapURL;\n smc._absoluteSources = smc._sources.toArray().map(function (s) {\n return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n });\n\n // Because we are modifying the entries (by converting string sources and\n // names to indices into the sources and names ArraySets), we have to make\n // a copy of the entry or else bad things happen. Shared mutable state\n // strikes again! See github issue #191.\n\n var generatedMappings = aSourceMap._mappings.toArray().slice();\n var destGeneratedMappings = smc.__generatedMappings = [];\n var destOriginalMappings = smc.__originalMappings = [];\n\n for (var i = 0, length = generatedMappings.length; i < length; i++) {\n var srcMapping = generatedMappings[i];\n var destMapping = new Mapping;\n destMapping.generatedLine = srcMapping.generatedLine;\n destMapping.generatedColumn = srcMapping.generatedColumn;\n\n if (srcMapping.source) {\n destMapping.source = sources.indexOf(srcMapping.source);\n destMapping.originalLine = srcMapping.originalLine;\n destMapping.originalColumn = srcMapping.originalColumn;\n\n if (srcMapping.name) {\n destMapping.name = names.indexOf(srcMapping.name);\n }\n\n destOriginalMappings.push(destMapping);\n }\n\n destGeneratedMappings.push(destMapping);\n }\n\n quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n return smc;\n };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n get: function () {\n return this._absoluteSources.slice();\n }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\n\nconst compareGenerated = util.compareByGeneratedPositionsDeflatedNoLine;\nfunction sortGenerated(array, start) {\n let l = array.length;\n let n = array.length - start;\n if (n <= 1) {\n return;\n } else if (n == 2) {\n let a = array[start];\n let b = array[start + 1];\n if (compareGenerated(a, b) > 0) {\n array[start] = b;\n array[start + 1] = a;\n }\n } else if (n < 20) {\n for (let i = start; i < l; i++) {\n for (let j = i; j > start; j--) {\n let a = array[j - 1];\n let b = array[j];\n if (compareGenerated(a, b) <= 0) {\n break;\n }\n array[j - 1] = b;\n array[j] = a;\n }\n }\n } else {\n quickSort(array, compareGenerated, start);\n }\n}\nBasicSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n var generatedLine = 1;\n var previousGeneratedColumn = 0;\n var previousOriginalLine = 0;\n var previousOriginalColumn = 0;\n var previousSource = 0;\n var previousName = 0;\n var length = aStr.length;\n var index = 0;\n var cachedSegments = {};\n var temp = {};\n var originalMappings = [];\n var generatedMappings = [];\n var mapping, str, segment, end, value;\n\n let subarrayStart = 0;\n while (index < length) {\n if (aStr.charAt(index) === ';') {\n generatedLine++;\n index++;\n previousGeneratedColumn = 0;\n\n sortGenerated(generatedMappings, subarrayStart);\n subarrayStart = generatedMappings.length;\n }\n else if (aStr.charAt(index) === ',') {\n index++;\n }\n else {\n mapping = new Mapping();\n mapping.generatedLine = generatedLine;\n\n for (end = index; end < length; end++) {\n if (this._charIsMappingSeparator(aStr, end)) {\n break;\n }\n }\n str = aStr.slice(index, end);\n\n segment = [];\n while (index < end) {\n base64VLQ.decode(aStr, index, temp);\n value = temp.value;\n index = temp.rest;\n segment.push(value);\n }\n\n if (segment.length === 2) {\n throw new Error('Found a source, but no line and column');\n }\n\n if (segment.length === 3) {\n throw new Error('Found a source and line, but no column');\n }\n\n // Generated column.\n mapping.generatedColumn = previousGeneratedColumn + segment[0];\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (segment.length > 1) {\n // Original source.\n mapping.source = previousSource + segment[1];\n previousSource += segment[1];\n\n // Original line.\n mapping.originalLine = previousOriginalLine + segment[2];\n previousOriginalLine = mapping.originalLine;\n // Lines are stored 0-based\n mapping.originalLine += 1;\n\n // Original column.\n mapping.originalColumn = previousOriginalColumn + segment[3];\n previousOriginalColumn = mapping.originalColumn;\n\n if (segment.length > 4) {\n // Original name.\n mapping.name = previousName + segment[4];\n previousName += segment[4];\n }\n }\n\n generatedMappings.push(mapping);\n if (typeof mapping.originalLine === 'number') {\n let currentSource = mapping.source;\n while (originalMappings.length <= currentSource) {\n originalMappings.push(null);\n }\n if (originalMappings[currentSource] === null) {\n originalMappings[currentSource] = [];\n }\n originalMappings[currentSource].push(mapping);\n }\n }\n }\n\n sortGenerated(generatedMappings, subarrayStart);\n this.__generatedMappings = generatedMappings;\n\n for (var i = 0; i < originalMappings.length; i++) {\n if (originalMappings[i] != null) {\n quickSort(originalMappings[i], util.compareByOriginalPositionsNoSource);\n }\n }\n this.__originalMappings = [].concat(...originalMappings);\n };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError('Line must be greater than or equal to 1, got '\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError('Column must be greater than or equal to 0, got '\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n function SourceMapConsumer_computeColumnSpans() {\n for (var index = 0; index < this._generatedMappings.length; ++index) {\n var mapping = this._generatedMappings[index];\n\n // Mappings do not contain a field for the last generated columnt. We\n // can come up with an optimistic estimate, however, by assuming that\n // mappings are contiguous (i.e. given two consecutive mappings, the\n // first mapping ends where the second one starts).\n if (index + 1 < this._generatedMappings.length) {\n var nextMapping = this._generatedMappings[index + 1];\n\n if (mapping.generatedLine === nextMapping.generatedLine) {\n mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n continue;\n }\n }\n\n // The last mapping for each line spans the entire line.\n mapping.lastGeneratedColumn = Infinity;\n }\n };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n function SourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._generatedMappings,\n \"generatedLine\",\n \"generatedColumn\",\n util.compareByGeneratedPositionsDeflated,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._generatedMappings[index];\n\n if (mapping.generatedLine === needle.generatedLine) {\n var source = util.getArg(mapping, 'source', null);\n if (source !== null) {\n source = this._sources.at(source);\n source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n }\n var name = util.getArg(mapping, 'name', null);\n if (name !== null) {\n name = this._names.at(name);\n }\n return {\n source: source,\n line: util.getArg(mapping, 'originalLine', null),\n column: util.getArg(mapping, 'originalColumn', null),\n name: name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n function BasicSourceMapConsumer_hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function (sc) { return sc == null; });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n var index = this._findSourceIndex(aSource);\n if (index >= 0) {\n return this.sourcesContent[index];\n }\n\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n var url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + relativeSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n function SourceMapConsumer_generatedPositionFor(aArgs) {\n var source = util.getArg(aArgs, 'source');\n source = this._findSourceIndex(source);\n if (source < 0) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n\n var needle = {\n source: source,\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (mapping.source === needle.source) {\n return {\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sections = util.getArg(sourceMap, 'sections');\n\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n\n var lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(function (s) {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error('Support for url field in sections not implemented.');\n }\n var offset = util.getArg(s, 'offset');\n var offsetLine = util.getArg(offset, 'line');\n var offsetColumn = util.getArg(offset, 'column');\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error('Section offsets must be ordered and non-overlapping.');\n }\n lastOffset = offset;\n\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n }\n });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n get: function () {\n var sources = [];\n for (var i = 0; i < this._sections.length; i++) {\n for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n var sectionIndex = binarySearch.search(needle, this._sections,\n function(needle, section) {\n var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (needle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n var section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n return this._sections.every(function (s) {\n return s.consumer.hasContentsOfAllSources();\n });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n var content = section.consumer.sourceContentFor(aSource, true);\n if (content || content === '') {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based. \n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n continue;\n }\n var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n var ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n var sectionMappings = section.consumer._generatedMappings;\n for (var j = 0; j < sectionMappings.length; j++) {\n var mapping = sectionMappings[j];\n\n var source = section.consumer._sources.at(mapping.source);\n if(source !== null) {\n source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n }\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n var name = null;\n if (mapping.name) {\n name = section.consumer._names.at(mapping.name);\n this._names.add(name);\n name = this._names.indexOf(name);\n }\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n var adjustedMapping = {\n source: source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: name\n };\n\n this.__generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === 'number') {\n this.__originalMappings.push(adjustedMapping);\n }\n }\n }\n\n quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n quickSort(this.__originalMappings, util.compareByOriginalPositions);\n };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._ignoreInvalidMapping = util.getArg(aArgs, 'ignoreInvalidMapping', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer, generatorOps) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator(Object.assign(generatorOps || {}, {\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n }));\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var sourceRelative = sourceFile;\n if (sourceRoot !== null) {\n sourceRelative = util.relative(sourceRoot, sourceFile);\n }\n\n if (!generator._sources.has(sourceRelative)) {\n generator._sources.add(sourceRelative);\n }\n\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n if (this._validateMapping(generated, original, source, name) === false) {\n return;\n }\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n // When aOriginal is truthy but has empty values for .line and .column,\n // it is most likely a programmer error. In this case we throw a very\n // specific error message to try to guide them the right way.\n // For example: https://github.com/Polymer/polymer-bundler/pull/519\n if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n var message = 'original.line and original.column are not numbers -- you probably meant to omit ' +\n 'the original mapping entirely and only map the generated position. If so, pass ' +\n 'null for the original mapping instead of an object with empty or null values.'\n\n if (this._ignoreInvalidMapping) {\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message);\n }\n return false;\n } else {\n throw new Error(message);\n }\n }\n\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n var message = 'Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n });\n\n if (this._ignoreInvalidMapping) {\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message);\n }\n return false;\n } else {\n throw new Error(message)\n }\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are accessed by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var remainingLinesIndex = 0;\n var shiftNextLine = function() {\n var lineContents = getNextLine();\n // The last line of a file might not have a newline.\n var newLine = getNextLine() || \"\";\n return lineContents + newLine;\n\n function getNextLine() {\n return remainingLinesIndex < remainingLines.length ?\n remainingLines[remainingLinesIndex++] : undefined;\n }\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[remainingLinesIndex] || '';\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[remainingLinesIndex] || '';\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLinesIndex < remainingLines.length) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\nvar MAX_CACHED_INPUTS = 32;\n\n/**\n * Takes some function `f(input) -> result` and returns a memoized version of\n * `f`.\n *\n * We keep at most `MAX_CACHED_INPUTS` memoized results of `f` alive. The\n * memoization is a dumb-simple, linear least-recently-used cache.\n */\nfunction lruMemoize(f) {\n var cache = [];\n\n return function(input) {\n for (var i = 0; i < cache.length; i++) {\n if (cache[i].input === input) {\n var temp = cache[0];\n cache[0] = cache[i];\n cache[i] = temp;\n return cache[0].result;\n }\n }\n\n var result = f(input);\n\n cache.unshift({\n input,\n result,\n });\n\n if (cache.length > MAX_CACHED_INPUTS) {\n cache.pop();\n }\n\n return result;\n };\n}\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '<dir>/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nvar normalize = lruMemoize(function normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n // Split the path into parts between `/` characters. This is much faster than\n // using `.split(/\\/+/g)`.\n var parts = [];\n var start = 0;\n var i = 0;\n while (true) {\n start = i;\n i = path.indexOf(\"/\", start);\n if (i === -1) {\n parts.push(path.slice(start));\n break;\n } else {\n parts.push(path.slice(start, i));\n while (i < path.length && path[i] === \"/\") {\n i++;\n }\n }\n }\n\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n});\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\nfunction compareByOriginalPositionsNoSource(mappingA, mappingB, onlyCompareOriginal) {\n var cmp\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositionsNoSource = compareByOriginalPositionsNoSource;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction compareByGeneratedPositionsDeflatedNoLine(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflatedNoLine = compareByGeneratedPositionsDeflatedNoLine;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 === null) {\n return 1; // aStr2 !== null\n }\n\n if (aStr2 === null) {\n return -1; // aStr1 !== null\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n sourceURL = sourceURL || '';\n\n if (sourceRoot) {\n // This follows what Chrome does.\n if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n sourceRoot += '/';\n }\n // The spec says:\n // Line 4: An optional source root, useful for relocating source\n // files on a server or removing repeated values in the\n // “sources” entry. This value is prepended to the individual\n // entries in the “source” field.\n sourceURL = sourceRoot + sourceURL;\n }\n\n // Historically, SourceMapConsumer did not take the sourceMapURL as\n // a parameter. This mode is still somewhat supported, which is why\n // this code block is conditional. However, it's preferable to pass\n // the source map URL to SourceMapConsumer, so that this function\n // can implement the source URL resolution algorithm as outlined in\n // the spec. This block is basically the equivalent of:\n // new URL(sourceURL, sourceMapURL).toString()\n // ... except it avoids using URL, which wasn't available in the\n // older releases of node still supported by this library.\n //\n // The spec says:\n // If the sources are not absolute URLs after prepending of the\n // “sourceRoot”, the sources are resolved relative to the\n // SourceMap (like resolving script src in a html document).\n if (sourceMapURL) {\n var parsed = urlParse(sourceMapURL);\n if (!parsed) {\n throw new Error(\"sourceMapURL could not be parsed\");\n }\n if (parsed.path) {\n // Strip the last path component, but keep the \"/\".\n var index = parsed.path.lastIndexOf('/');\n if (index >= 0) {\n parsed.path = parsed.path.substring(0, index + 1);\n }\n }\n sourceURL = join(urlGenerate(parsed), sourceURL);\n }\n\n return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n"],"names":["theme","ownerState","transformedColor","color","channelColor","v6Colors","primary","secondary","error","info","success","warning","textPrimary","textSecondary","textDisabled","LinkRoot","styled","Typography","name","slot","overridesResolver","props","styles","root","capitalize","underline","component","button","memoTheme","variants","style","textDecoration","textDecorationColor","Object","entries","palette","filter","createSimplePaletteValueFilter","map","vars","mainChannel","main","text","primaryChannel","secondaryChannel","disabled","position","WebkitTapHighlightColor","backgroundColor","outline","border","margin","borderRadius","padding","cursor","userSelect","verticalAlign","MozAppearance","WebkitAppearance","borderStyle","linkClasses","focusVisible","inProps","ref","useTheme","className","onBlur","onFocus","TypographyClasses","variant","sx","other","setFocusVisible","classes","slots","composeClasses","useUtilityClasses","clsx","event","isFocusVisible","target","undefined","Array","isArray","getLinkUtilityClass","util","has","prototype","hasOwnProperty","hasNativeMap","Map","ArraySet","this","_array","_set","create","fromArray","aArray","aAllowDuplicates","set","i","len","length","add","size","getOwnPropertyNames","aStr","sStr","toSetString","isDuplicate","call","idx","push","indexOf","get","Error","at","aIdx","toArray","slice","exports","base64","encode","aValue","digit","encoded","vlq","toVLQSigned","VLQ_BASE","decode","aIndex","aOutParam","continuation","shifted","strLen","result","shift","charCodeAt","charAt","value","rest","intToCharMap","split","number","TypeError","charCode","recursiveSearch","aLow","aHigh","aNeedle","aHaystack","aCompare","aBias","mid","Math","floor","cmp","LEAST_UPPER_BOUND","GREATEST_LOWER_BOUND","search","index","MappingList","_sorted","_last","generatedLine","generatedColumn","unsortedForEach","aCallback","aThisArg","forEach","aMapping","mappingA","mappingB","lineA","lineB","columnA","columnB","compareByGeneratedPositionsInflated","sort","SortTemplate","comparator","swap","ary","x","y","temp","doQuickSort","p","r","low","high","round","random","pivot","j","q","sortCache","WeakMap","start","template","toString","Function","templateFn","cloneSort","binarySearch","base64VLQ","quickSort","SourceMapConsumer","aSourceMap","aSourceMapURL","sourceMap","parseSourceMapInput","sections","IndexedSourceMapConsumer","BasicSourceMapConsumer","version","getArg","sources","names","sourceRoot","sourcesContent","mappings","file","_version","normalize","String","source","isAbsolute","relative","_names","_sources","_absoluteSources","s","computeSourceURL","_mappings","_sourceMapURL","Mapping","originalLine","originalColumn","fromSourceMap","__generatedMappings","defineProperty","configurable","enumerable","_parseMappings","__originalMappings","_charIsMappingSeparator","c","aSourceRoot","GENERATED_ORDER","ORIGINAL_ORDER","eachMapping","aContext","aOrder","context","_generatedMappings","_originalMappings","boundCallback","bind","sourceMapURL","n","mapping","allGeneratedPositionsFor","aArgs","line","needle","_findSourceIndex","_findMapping","compareByOriginalPositions","column","lastColumn","consumer","aSource","relativeSource","smc","_sourceRoot","_generateSourcesContent","_file","generatedMappings","destGeneratedMappings","destOriginalMappings","srcMapping","destMapping","compareGenerated","compareByGeneratedPositionsDeflatedNoLine","sortGenerated","array","l","a","b","lastOffset","_sections","url","offset","offsetLine","offsetColumn","generatedOffset","segment","end","previousGeneratedColumn","previousOriginalLine","previousOriginalColumn","previousSource","previousName","originalMappings","subarrayStart","currentSource","compareByOriginalPositionsNoSource","concat","aMappings","aLineName","aColumnName","aComparator","computeColumnSpans","nextMapping","lastGeneratedColumn","Infinity","originalPositionFor","compareByGeneratedPositionsDeflated","hasContentsOfAllSources","some","sc","sourceContentFor","nullOnMissing","urlParse","fileUriAbsPath","replace","scheme","path","generatedPositionFor","constructor","sectionIndex","section","bias","every","content","generatedPosition","sectionMappings","adjustedMapping","SourceMapGenerator","_skipValidation","_ignoreInvalidMapping","_sourcesContents","aSourceMapConsumer","generatorOps","generator","assign","newMapping","generated","original","addMapping","sourceFile","sourceRelative","setSourceContent","_validateMapping","aSourceFile","aSourceContent","keys","applySourceMap","aSourceMapPath","newSources","newNames","join","aGenerated","aOriginal","aName","message","console","warn","JSON","stringify","_serializeMappings","next","nameIdx","sourceIdx","previousGeneratedLine","aSources","key","toJSON","REGEX_NEWLINE","isSourceNode","SourceNode","aLine","aColumn","aChunks","children","sourceContents","fromStringWithSourceMap","aGeneratedCode","aRelativePath","node","remainingLines","remainingLinesIndex","shiftNextLine","getNextLine","lastGeneratedLine","lastMapping","code","nextLine","substr","addMappingWithCode","splice","aChunk","chunk","prepend","unshift","walk","aFn","aSep","newChildren","replaceRight","aPattern","aReplacement","lastChild","walkSourceContents","fromSetString","str","toStringWithSourceMap","sourceMappingActive","lastOriginalSource","lastOriginalLine","lastOriginalColumn","lastOriginalName","sourceContent","aDefaultValue","arguments","urlRegexp","dataUrlRegexp","aUrl","match","auth","host","port","urlGenerate","aParsedUrl","f","cache","aPath","parts","part","up","input","pop","aRoot","aPathUrl","aRootUrl","joined","test","level","lastIndexOf","supportsNullProto","identity","isProtoString","strcmp","aStr1","aStr2","onlyCompareOriginal","onlyCompareGenerated","parse","sourceURL","parsed","substring"],"sourceRoot":""}