{"version":3,"sources":["webpack:///./src/views/Topo.vue","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./src/topo/TerrainProfile.js","webpack:///./src/topo/TopoProfilesRequest.js","webpack:///./src/topo/TopoChart.js","webpack:///./src/views/Topo.vue?4830","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/core-js/modules/es.math.trunc.js","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./src/views/Topo.vue?af75","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-dot-all.js"],"names":["class","ref","style","title","type","addressInput","lookupAddress","placeholder","addressCountry","addressMessage","addressClass","addressResults","length","result","index","key","setSelectedAddress","formatted_address","getTerrainProfilesButtonClicked","showSettings","settings","terrain_profile_distance","sample_spacing","structure_height","flat_gradient_tolerance","request_heading_step","minHeightButtonClicked","maxHeightButtonClicked","_defineProperty","obj","value","Object","defineProperty","enumerable","configurable","writable","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","apply","_objectSpread2","target","i","arguments","source","forEach","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","_asyncToGenerator","fn","self","this","args","err","undefined","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","unsupportedIterableToArray","F","s","n","e","_e","f","TypeError","normalCompletion","didErr","call","step","next","_e2","_arrayWithHoles","arr","_iterableToArrayLimit","_i","_s","_arr","_n","_d","_nonIterableRest","_slicedToArray","arrayWithHoles","iterableToArrayLimit","nonIterableRest","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","prototype","_directions","name","fname","heading","TerrainProfile","elevationData","originIndex","google","topoMap","_elevations","_originIndex","_siteElevation","_origin","location","_destination","_distance","maps","geometry","spherical","computeDistanceBetween","_heading","computeHeading","_direction","constructor","getGeneralDirectionForHeading","_maxElevation","_minElevation","_halfElevation","_markers","_isSiteWithinZone","_isWorstCase","_maxElevationIndex","_minElevationIndex","_halfElevationIndex","processAll","indexes","findMinMax","maxIndex","processData","Math","abs","trunc","updateHalfHeight","getIndexes","findHalfHeightIndexBetween","minIndex","halfIndex","fromIndex","searchingFor","min","down","max","up","maxElevation","minElevation","maxElevationIndex","minElevationIndex","curEle","nextEle","slope","elevation","halfElevation","halfElevationIndex","offset","limit","halfHeight","smallestDifferenceFromMeanHeight","overwriteCurrentData","h","x","mh","lu","lOne","lTwo","overallSlope","minHeightIndex","findMinElevationIndexBetween","maxHeightIndex","findMaxElevationIndexBetween","minHeight","maxHeight","roughSlope","siteIsWithinZone","headingToZoneEdge","zoneEdge","computeOffset","zoneEdgeIndex","zoneEdgeDist","dist","ignoreSeparationZone","zoneIsInvalid","_mh","_zoneEdge","_zoneEdgeIndex","_lTwo","_h","_x","_lu","_slope","createMapMarkers","clearData","indexA","indexB","start","finish","isWorstCase","otherTerrainProfile","_chartData","_tableData","buildData","data","visualization","DataTable","addColumn","role","inZone","inRange","distanceFromPeak","v","toFixed","addRow","setCell","_addressMarker","address","awayFromAddress","colour","getHeadingSortValue","p","marker","_onMarkerClick","event","addListener","cb","clearMarkers","addMarker","createMarker","drawLine","hideMarkers","setMap","_map","range","TopoProfilesRequest","elevator","latLng","requestDelay","request_delay","profileDisance","samplesPerRequest","headings","getHeadings","successful","cancelled","timer","stop","clearTimeout","console","log","terrainProfiles","worstCases","totalResponses","sendNextRequest","eastPoint","westPoint","getElevationAlongPath","results","status","handleElevationResponse","ElevationStatus","OK","handleResults","INVALID_REQUEST","OVER_QUERY_LIMIT","msg","setTimeout","requestElevationSamples","cancel","REQUEST_DENIED","UNKNOWN_ERROR","westData","eastData","w","addProfile","profile","updateWorstCases","newProfileListener","direction","directionProfiles","getProfilesForDirection","indexOf","worstCaseIndex","worstCase","findWorstCase","isWorseThan","setWorstCase","showMarkers","success","finishListener","listener","TopoChart","container","chart","LineChart","trigger","chartData","getChartData","draw","legend","animation","duration","easing","titleY","getColumnLabel","titleX","events","removeAllListeners","selection","getSelection","row","profiles","parentElement","clearChildren","div","document","createElement","topoChart","classList","add","appendChild","element","lastChild","remove","position","elements","lat","lng","LatLng","_terrainProfileRequest","_profileOrigin","_selectedLocation","_selectedProfile","_selectingNewMin","_selectingNewMax","_profileOriginSymbol","path","strokeColor","strokeWeight","_elevator","ElevationService","_profileTable","_geocoder","Geocoder","_infowindow","InfoWindow","Marker","map","draggable","_mapOverlays","load","packages","setSelectedLocation","options","zoom","center","mapTypeControl","mapTypeControlOptions","MapTypeControlStyle","HORIZONTAL_BAR","ControlPosition","TOP_RIGHT","panControl","zoomControl","streetViewControl","mapTypeId","MapTypeId","TERRAIN","chartContainer","chartWrapper","mapCanvas","elevationTable","tableWrapper","extraCharts","exportTableWrapper","exportTable","Map","showInfoWindow","getTerrainProfilesAt","Polyline","findNearestAddress","hideElevationTable","_onSetAddress","onClick","button","textContent","addEventListener","setContent","setPosition","open","win","fail","geocode","GeocoderStatus","ERROR","ZERO_RESULTS","setAddress","terrainProfile","updated","setMin","setMax","processFrom","minMaxSelectEnd","isMin","line","strokeOpacity","origin","panTo","close","clearOverlays","siteMarker","icon","profileRequest","onNewProfile","onMarkerClick","drawChart","onFinish","setZoom","Table","drawProfileTable","tableRowSelected","alert","addr","updateLocation","setTitle","setCenter","distToSite","awayFromSite","overlay","hideTable","display","height","setOptions","scrollwheel","item","getProfilesFromTableSelection","drawCharts","displayRotatedExportData","exportData","Lu","Mh","html","hasOwnProperty","y","innerHTML","getTableData","showRowNumber","allowHtml","setSelection","getBoundingClientRect","addListeners","onPointSelected","minMaxSelected","scriptAlreadyLoaded","src","scripts","head","querySelectorAll","script","includes","loadScript","onload","setup","createMap","window","country","address_components","find","c","types","long_name","replace","all","minMaxSelectStart","getTerrainProfilesForSelectedLocation","lookUpAddress","__exports__","render","toObject","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","module","exports","matched","str","captures","namedCaptures","replacement","tailPos","m","match","ch","capture","charAt","slice","fails","global","$RegExp","RegExp","re","exec","groups","a","toInteger","toString","requireObjectCoercible","count","Infinity","RangeError","anObject","isCallable","classof","regexpExec","R","S","DOMIterables","DOMTokenListPrototype","createNonEnumerableProperty","handlePrototype","CollectionPrototype","COLLECTION_NAME","$forEach","arrayMethodIsStrict","STRICT_METHOD","callbackfn","$","notARegExp","correctIsRegExpLogic","proto","forced","searchString","valueOf","isObject","wellKnownSymbol","MATCH","isRegExp","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","fixRegExpWellKnownSymbolLogic","toLength","advanceStringIndex","getMethod","getSubstitution","regExpExec","REPLACE","maybeToString","String","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","_","nativeReplace","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","O","replacer","string","rx","res","functionalReplace","fullUnicode","unicode","lastIndex","matchStr","accumulatedResult","nextSourcePosition","j","replacerArgs","concat","$find","addToUnscopables","FIND","SKIPS_HOLES","regexpFlags","stickyHelpers","shared","create","getInternalState","get","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","group","state","raw","sticky","flags","charsAdded","strCopy","multiline","input","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","reverse","pop","skipTempReset","prev","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","Function","METHOD_NAME","argument","regexp","error1","error2","that","ignoreCase","dotAll","nativeKeys","FAILS_ON_PRIMITIVES","stat","ceil","thisNumberValue","repeat","nativeToFixed","pow","acc","x2","multiply","c2","divide","dataToString","t","FORCED","fractionDigits","z","k","number","fractDigits","sign","$includes","el","redefine","SPECIES","RegExpPrototype","KEY","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","methods","nativeMethod","arg2","forceStringMethod","$exec","DESCRIPTORS","toIndexedObject","getOwnPropertyDescriptorModule","createProperty","sham","nativeGetOwnPropertyDescriptor"],"mappings":"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","file":"js/topo.dd512d0a.js","sourcesContent":["\n \n \n \n \n \n \n Find\n \n \n {{ addressMessage }}\n \n 1\">\n {{ result.formatted_address }}\n \n \n \n Get Terrain Profiles\n {{ showSettings ? 'Hide' : 'Show' }} settings\n \n \n Profile distance: meters\n Sample every meters\n Structure height: meters\n Flat gradient tolerance +/-: \n Heading Step: °\n \n \n \n \n \n \n \n \n \n Select Min Height\n Select Max Height\n \n Wind Direction: ⇦\n \n \n \n \n Rotated Output\n \n \n \n \n\n\n\n\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","const _directions = [\n {name: 'N', fname: 'North', heading: 0},\n {name: 'NE', fname: 'Northeast', heading: 45},\n {name: 'E', fname: 'East', heading: 90},\n {name: 'SE', fname: 'Southeast', heading: 135},\n {name: 'S', fname: 'South', heading: 180},\n {name: 'SW', fname: 'Southwest', heading: -135},\n {name: 'W', fname: 'West', heading: -90},\n {name: 'NW', fname: 'Northwest', heading: -45},\n];\n\nexport default class TerrainProfile {\n constructor(elevationData, originIndex, settings, google, topoMap) {\n this.settings = settings;\n this.topoMap = topoMap;\n /** @param google.maps.geometry.spherical.computeDistanceBetween */\n /** @param google.maps.geometry.spherical.computeHeading */\n /** @param google.maps.geometry.spherical.computeOffset */\n /** @param google.visualization.DataTable */\n /** @param google.maps.event.addListener */\n this.google = google;\n this._elevations = elevationData;\n this._originIndex = originIndex;\n this._siteElevation = this._elevations[this._originIndex];\n this._origin = this._siteElevation.location;\n this._destination = this._elevations[this._elevations.length - 1].location;\n this._distance = this.google.maps.geometry.spherical.computeDistanceBetween(this._origin, this._destination);\n this._heading = this.google.maps.geometry.spherical.computeHeading(this._origin, this._destination);\n this._direction = this.constructor.getGeneralDirectionForHeading(this._heading);\n\n this._maxElevation = false;\n this._minElevation = false;\n this._halfElevation = false;\n\n this._markers = [];\n\n this._isSiteWithinZone = false;\n this._isWorstCase = false;\n this._maxElevationIndex = 0;\n this._minElevationIndex = this._elevations.length - 2;\n this._halfElevationIndex = (this._minElevationIndex + this._maxElevationIndex) / 2;\n this.processAll();\n }\n\n static getGeneralDirectionForHeading(heading) {\n const range = 22.5;\n const limit = 180;\n for (let i = 0; i < _directions.length; i++) {\n if (_directions[i].heading == limit && (limit - range <= heading || range - limit > heading)) {\n return _directions[i];\n }\n if ((_directions[i].heading - range) <= heading && heading < (_directions[i].heading + range)) {\n return _directions[i];\n }\n }\n return _directions[0];\n }\n\n processAll() {\n let indexes = this.findMinMax(this._elevations.length - 2);\n while (indexes.maxIndex >= 1) {\n this.processData(indexes);\n indexes = this.findMinMax(indexes.maxIndex - 1);\n }\n }\n\n processFrom(index) {\n this.processData(this.findMinMax(index), true);\n }\n\n setMin(index) {\n index = Math.abs(Math.trunc(index));\n if (index >= this._elevations.length) return;\n this._minElevationIndex = index;\n this._minElevation = this._elevations[index];\n this.updateHalfHeight();\n this.processData(this.getIndexes(), true);\n }\n\n setMax(index) {\n index = Math.abs(Math.trunc(index));\n if (index >= this._elevations.length) return;\n\n this._maxElevationIndex = index;\n this._maxElevation = this._elevations[index];\n this.updateHalfHeight();\n this.processData(this.getIndexes(), true);\n }\n\n updateHalfHeight() {\n this._halfElevationIndex = this.findHalfHeightIndexBetween(this._minElevationIndex, this._maxElevationIndex);\n this._halfElevation = this._elevations[this._halfElevationIndex];\n }\n\n getIndexes() {\n return {minIndex: this._minElevationIndex, maxIndex: this._maxElevationIndex, halfIndex: this._halfElevationIndex};\n }\n\n findMinMax(fromIndex) {\n let maxElevation = this._elevations[fromIndex];\n let minElevation = this._elevations[fromIndex];\n let maxElevationIndex = fromIndex;\n let minElevationIndex = fromIndex;\n // let minFound = 0;\n // let maxFound = 0;\n let searchingFor, min, down, max, up;\n\n searchingFor = min = down = -this.settings.flat_gradient_tolerance;\n max = up = this.settings.flat_gradient_tolerance;\n\n /** @property this._elevations.elevation */\n for (let i = fromIndex; i > 1; i--) {\n if (i + 1 >= this._elevations.length) {\n continue;\n }\n const curEle = this._elevations[i];\n const nextEle = this._elevations[i + 1]; // next elevation is upwind of the current elevation\n\n // loop is running backwards, a negative gradient is sloping upwards.\n const slope = (curEle.elevation - nextEle.elevation) / this.google.maps.geometry.spherical.computeDistanceBetween(nextEle.location, curEle.location);\n\n if (searchingFor == min) {\n if (curEle.elevation <= minElevation.elevation) {\n minElevationIndex = i;\n maxElevationIndex = i;\n minElevation = this._elevations[i];\n maxElevation = this._elevations[i];\n // minFound = 0;\n } else if (slope >= up) {\n searchingFor = max;\n }\n }\n\n if (searchingFor == max) {\n if (curEle.elevation > maxElevation.elevation) {\n maxElevationIndex = i;\n maxElevation = this._elevations[i];\n // maxFound = 0;\n } else if (slope <= down) {\n searchingFor = 0;\n }\n }\n }\n\n return {minIndex: minElevationIndex, maxIndex: maxElevationIndex, halfIndex: this.findHalfHeightIndexBetween(minElevationIndex, maxElevationIndex)};\n }\n\n findHalfHeightIndexBetween(minIndex, maxIndex) {\n let maxElevation = this._elevations[maxIndex];\n let minElevation = this._elevations[minIndex];\n\n let halfElevation = this._elevations[maxIndex];\n let halfElevationIndex = maxIndex;\n let offset = minIndex < maxIndex ? minIndex : maxIndex;\n let limit = minIndex > maxIndex ? minIndex : maxIndex;\n\n let halfHeight = (maxElevation.elevation + minElevation.elevation) / 2;\n let smallestDifferenceFromMeanHeight = Math.abs(halfElevation.elevation - halfHeight);\n for (let i = offset; i < limit; i++) {\n if (Math.abs(this._elevations[i].elevation - halfHeight) < smallestDifferenceFromMeanHeight) {\n halfElevation = this._elevations[i];\n halfElevationIndex = i;\n smallestDifferenceFromMeanHeight = Math.abs(halfElevation.elevation - halfHeight);\n }\n }\n\n return halfElevationIndex;\n }\n\n processData(indexes, overwriteCurrentData) {\n let maxElevation = this._elevations[indexes.maxIndex];\n let minElevation = this._elevations[indexes.minIndex];\n let halfElevation = this._elevations[indexes.halfIndex];\n\n // h: height range, difference between min and max elevation\n // x: peak to house\n // lu: peak to half height\n // lTwo: distance from the peak where it is especially windy?\n\n let h = maxElevation.elevation - minElevation.elevation;\n let x = this.google.maps.geometry.spherical.computeDistanceBetween(this._origin, maxElevation.location);\n if (this._maxElevationIndex > this._originIndex) {\n x = -x;\n }\n let lu = this.google.maps.geometry.spherical.computeDistanceBetween(halfElevation.location, maxElevation.location);\n let slope = lu > 0 ? h / (2 * lu) : 0;\n let lOne = Math.max(0.36 * lu, 0.4 * h);\n let lTwo = 4 * lOne;\n\n let mh;\n if (slope < 0.05) {\n mh = 1.0;\n } else if (0.05 <= slope && slope < 0.45) {\n let overallSlope = Math.abs(maxElevation.elevation - this._siteElevation.elevation) / Math.abs(x);\n if (Math.abs(x) > lTwo && x < 0 && overallSlope < 0.05) {\n let minHeightIndex = this.findMinElevationIndexBetween(this._originIndex, indexes.maxIndex);\n let maxHeightIndex = this.findMaxElevationIndexBetween(this._originIndex, indexes.maxIndex);\n let minHeight = this._elevations[minHeightIndex].elevation;\n let maxHeight = this._elevations[maxHeightIndex].elevation;\n let roughSlope = (maxHeight - minHeight) / Math.abs(x);\n if (roughSlope < 0.08) { // escarpment\n lTwo = 10 * lOne;\n }\n }\n mh = 1 + (h / (3.5 * (this.settings.structure_height + lOne)) * (1 - Math.abs(x) / lTwo));\n mh = mh < 1 ? 1 : mh;\n } else {\n mh = 1 + 0.71 * Math.abs(1 - Math.abs(x) / lTwo);\n }\n\n let siteIsWithinZone = x < lTwo;\n let headingToZoneEdge = this.google.maps.geometry.spherical.computeHeading(maxElevation.location, this._origin);\n let zoneEdge = this.google.maps.geometry.spherical.computeOffset(maxElevation.location, lTwo, headingToZoneEdge);\n let zoneEdgeIndex = -1;\n let zoneEdgeDist = this.google.maps.geometry.spherical.computeDistanceBetween(zoneEdge, this._elevations[0].location);\n for (let i = 0; i < this._elevations.length; i++) {\n let dist = this.google.maps.geometry.spherical.computeDistanceBetween(zoneEdge, this._elevations[i].location);\n if (dist < zoneEdgeDist) {\n zoneEdgeDist = dist;\n zoneEdgeIndex = i;\n }\n }\n\n if ((overwriteCurrentData === true || this._maxElevation === false)\n || (!this.ignoreSeparationZone(x, h, lu, lTwo, maxElevation.elevation) && siteIsWithinZone && !this._isSiteWithinZone)\n || (this.zoneIsInvalid() && this._mh <= mh)\n ) {\n this._maxElevation = maxElevation;\n this._minElevation = minElevation;\n this._halfElevation = halfElevation;\n this._maxElevationIndex = indexes.maxIndex;\n this._minElevationIndex = indexes.minIndex;\n this._halfElevationIndex = indexes.halfIndex;\n this._zoneEdge = zoneEdge;\n this._zoneEdgeIndex = zoneEdgeIndex;\n this._lTwo = lTwo;\n this._h = h;\n this._x = x;\n this._lu = lu;\n this._slope = slope;\n this._mh = mh;\n this._isSiteWithinZone = siteIsWithinZone;\n this.createMapMarkers();\n this.clearData();\n }\n }\n\n findMinElevationIndexBetween(indexA, indexB) {\n let start = indexA < indexB ? indexA : indexB;\n let finish = indexA < indexB ? indexB : indexA;\n let minElevation = this._elevations[start];\n let minElevationIndex = start;\n for (let i = start; i <= finish; i++) {\n if (this._elevations[i].elevation <= minElevation.elevation) {\n minElevationIndex = i;\n minElevation = this._elevations[i];\n }\n }\n return minElevationIndex;\n }\n\n findMaxElevationIndexBetween(indexA, indexB) {\n let start = indexA < indexB ? indexA : indexB;\n let finish = indexA < indexB ? indexB : indexA;\n let maxElevation = this._elevations[start];\n let maxElevationIndex = start;\n for (let i = start; i <= finish; i++) {\n if (this._elevations[i].elevation >= maxElevation.elevation) {\n maxElevationIndex = i;\n maxElevation = this._elevations[i];\n }\n }\n return maxElevationIndex;\n }\n\n /**\n * A separation zone is ignored if:\n * - The maximum height is invalid. Happens if the terrain is flat or a constant slope.\n * A maximum height is considered to be invalid if the difference between the maximum and\n * minimum height is less than 10 meters, or the peak is somehow closer to the building\n * than the first height sampled.\n * The min height is set to the max height when a new max height is found upwind of the previous\n * max height, as a result the difference between the min and max tends to be less than 10 meters\n * when the building is at the bottom of a constant slope.\n * - The zone is more than 80% of the sample distance.\n * - The site is somehow above the max height.\n */\n ignoreSeparationZone(x, h, lu, lTwo, maxElevation) {\n return h < 10 ||\n lTwo / this._distance > 0.80 ||\n lu < 25 || // ???????????????????????????????? lu < 25m invalid? ??????????????????????????????\n this._siteElevation.elevation > maxElevation;\n }\n\n setWorstCase(isWorstCase) {\n if (isWorstCase != this._isWorstCase) {\n this._isWorstCase = isWorstCase;\n this.clearData();\n }\n }\n\n isWorseThan(otherTerrainProfile) {\n if (this._isSiteWithinZone && !otherTerrainProfile._isSiteWithinZone) {\n return true;\n } else if (!this.zoneIsInvalid() && otherTerrainProfile.zoneIsInvalid()) {\n return true;\n } else return this._mh > otherTerrainProfile._mh;\n }\n\n zoneIsInvalid() {\n return this.ignoreSeparationZone(this._x, this._h, this._lu, this._lTwo, this._maxElevation.elevation);\n }\n\n clearData() {\n this._chartData = null;\n this._tableData = null;\n }\n\n getTableData() {\n if (!this._tableData) this.buildData();\n return this._tableData;\n }\n\n getChartData() {\n if (!this._chartData) this.buildData();\n return this._chartData;\n }\n\n buildData() {\n if (this._chartData || !this._maxElevation) return;\n\n /** @param data.addColumn */\n /** @param data.addRow */\n /** @param data.setCell */\n const data = new this.google.visualization.DataTable();\n data.addColumn('number', 'Distance from Max-Height');\n data.addColumn('number', 'Elevation');\n data.addColumn({type: 'string', role: 'annotation'});\n data.addColumn({type: 'string', role: 'annotationText'});\n data.addColumn({type: 'number', role: 'interval'});\n data.addColumn({type: 'number', role: 'interval'});\n data.addColumn({type: 'boolean', role: 'scope'});\n data.addColumn({type: 'boolean', role: 'emphasis'});\n\n for (let i = 0; i < this._elevations.length; i++) {\n const inZone = !(i < this._zoneEdgeIndex && i < this._maxElevationIndex) && !(i > this._zoneEdgeIndex && i > this._maxElevationIndex);\n const inRange = this._maxElevationIndex - (this._minElevationIndex - this._maxElevationIndex) <= i && i <= this._minElevationIndex;\n let distanceFromPeak = this.google.maps.geometry.spherical.computeDistanceBetween(this._maxElevation.location, this._elevations[i].location);\n if (i < this._maxElevationIndex) {\n distanceFromPeak = -distanceFromPeak;\n }\n const elevation = {\n v: this._elevations[i].elevation,\n f: this._elevations[i].elevation.toFixed(3) + 'm',\n };\n data.addRow([{v: distanceFromPeak, f: distanceFromPeak.toFixed(3) + 'm'}, elevation, null, null, null, null, inRange, inZone]);\n }\n\n data.setCell(this._halfElevationIndex, 4, this._minElevation.elevation);\n data.setCell(this._halfElevationIndex, 5, this._maxElevation.elevation);\n data.setCell(this._minElevationIndex, 4, this._minElevation.elevation);\n data.setCell(this._minElevationIndex, 5, this._maxElevation.elevation);\n data.setCell(this._maxElevationIndex, 4, this._minElevation.elevation);\n data.setCell(this._maxElevationIndex, 5, this._maxElevation.elevation);\n data.setCell(this._originIndex, 2, 'Site');\n if (this.topoMap._addressMarker.address) {\n data.setCell(this._originIndex, 3, this.topoMap._addressMarker.awayFromAddress);\n }\n this._chartData = data;\n const colour = this.zoneIsInvalid() ? '#ffffdd' : this._isSiteWithinZone ? '#ffdddd' : '#ddffdd';\n const style = {style: 'background: ' + colour + ';' + (this._isWorstCase ? 'font-weight: bolder;' : '')};\n this._tableData = [\n {v: this.constructor.getHeadingSortValue(this._heading), f: this._direction.fname},\n {v: this._heading, f: this._heading.toFixed(3) + '°'},\n {v: this._h, f: this._h.toFixed(3) + 'm', p: style},\n {v: this._x, f: this._x.toFixed(3) + 'm', p: style},\n {v: this._lu, f: this._lu.toFixed(3) + 'm', p: style},\n {v: this._mh, f: this._mh.toFixed(3), p: style},\n {v: this._slope, f: this._slope.toFixed(3), p: style},\n {v: this._maxElevation.elevation, f: this._maxElevation.elevation.toFixed(3) + 'm'},\n {v: this._minElevation.elevation, f: this._minElevation.elevation.toFixed(3) + 'm'},\n {v: this._halfElevation.elevation, f: this._halfElevation.elevation.toFixed(3) + 'm'},\n {v: (360 - this.constructor.getHeadingSortValue(this._heading)) * (this._isWorstCase ? -1 : 1), f: this._isWorstCase ? '✔' : '✗'},\n ];\n }\n\n static getHeadingSortValue(heading) {\n // clockwise from north\n heading += 15; // -15 to 15 is considered north, -16 would be northwest\n return (heading < 0 ? Math.abs(heading + 360) : heading) % 360;\n }\n\n addMarker(marker) {\n this._markers.push(marker);\n if (this._onMarkerClick) {\n this.google.maps.event.addListener(marker, 'click', this._onMarkerClick);\n }\n }\n\n onMarkerClick(cb) {\n this._onMarkerClick = cb;\n for (const marker of this._markers) {\n this.google.maps.event.addListener(marker, 'click', this._onMarkerClick);\n }\n }\n\n createMapMarkers() {\n this.clearMarkers();\n const colour = this.zoneIsInvalid() ? '#ffff00' : this._isSiteWithinZone ? '#ff0000' : '#00ff00';\n this.addMarker(this.topoMap.createMarker(\n this._maxElevation.location, this._direction.name + ' peak (' + this._maxElevation.elevation.toFixed(2) + ')',\n ));\n this.addMarker(this.topoMap.drawLine(this._maxElevation.location, this._zoneEdge, colour, this._direction.name));\n }\n\n clearMarkers() {\n this.hideMarkers();\n this._markers = [];\n }\n\n showMarkers() {\n /** @param marker.setMap */\n for (const marker of this._markers) {\n marker.setMap(this.topoMap._map);\n }\n }\n\n hideMarkers() {\n for (const marker of this._markers) {\n marker.setMap(null);\n }\n }\n}","import TerrainProfile from './TerrainProfile.js';\n\nexport default class TopoProfilesRequest {\n constructor(elevator, latLng, settings, google, topoMap) {\n /** @param google.maps.ElevationStatus.OK */\n /** @param google.maps.ElevationStatus.INVALID_REQUEST */\n /** @param google.maps.ElevationStatus.OVER_QUERY_LIMIT */\n /** @param google.maps.ElevationStatus.REQUEST_DENIED */\n /** @param google.maps.ElevationStatus.UNKNOWN_ERROR */\n /** @param elevator.getElevationAlongPath */\n this.settings = settings || {};\n this.google = google;\n this.topoMap = topoMap;\n this.latLng = latLng;\n this.elevator = elevator;\n this.requestDelay = this.settings.request_delay ? this.settings.request_delay : 333;\n\n this.profileDisance = this.settings.terrain_profile_distance;\n this.samplesPerRequest = Math.trunc(2 * this.profileDisance / this.settings.sample_spacing) + 1;\n\n const step = Math.abs(this.settings.request_heading_step) >= 1 ? Math.abs(this.settings.request_heading_step) : 15;\n this.headings = this.getHeadings(step);\n\n this.successful = false;\n this.cancelled = false;\n this.timer = null;\n }\n\n getHeadings(step) {\n const headings = [];\n let heading = 0;\n while (heading < 180) {\n headings.push(heading);\n heading += step;\n }\n return headings;\n }\n\n cancel() {\n this.cancelled = true;\n this.stop();\n }\n\n stop() {\n clearTimeout(this.timer);\n }\n\n start() {\n console.log('starting request');\n this.terrainProfiles = [];\n this.worstCases = [];\n this.totalResponses = 0;\n this.sendNextRequest();\n }\n\n requestElevationSamples(index) {\n const heading = this.headings[index];\n console.log('requesting profile for heading: ' + heading);\n const eastPoint = this.google.maps.geometry.spherical.computeOffset(this.latLng, this.profileDisance, heading);\n const westPoint = this.google.maps.geometry.spherical.computeOffset(this.latLng, this.profileDisance, (heading - 180));\n this.elevator.getElevationAlongPath({\n 'path': [westPoint, this.latLng, eastPoint],\n 'samples': this.samplesPerRequest,\n }, (results, status) => this.handleElevationResponse(index, results, status));\n }\n\n handleElevationResponse(index, results, status) {\n if (this.cancelled) {\n console.log('got response for cancelled request');\n return;\n }\n const heading = this.headings[index];\n\n this.totalResponses++;\n if (status == this.google.maps.ElevationStatus.OK) {\n this.handleResults(results);\n } else if (status == this.google.maps.ElevationStatus.INVALID_REQUEST) {\n console.log('Malformed elevation requests for heading: ' + heading);\n } else if (status == this.google.maps.ElevationStatus.OVER_QUERY_LIMIT) {\n let msg = 'Query limit exceeded for heading: ' + heading;\n if (this.totalResponses < 30) {\n console.log(msg + ', retrying...');\n this.timer = setTimeout(() => this.requestElevationSamples(index), this.requestDelay * 10);\n } else {\n console.log(msg + ', reached max requests, cancelling...');\n this.cancel();\n this.finish(false);\n }\n return;\n } else if (status === this.google.maps.ElevationStatus.REQUEST_DENIED) {\n // indicating the service did not complete the request, likely because on an invalid parameter\n console.log(`Request denied for heading: ${heading}`);\n } else if (status === this.google.maps.ElevationStatus.UNKNOWN_ERROR) {\n console.log(`Unknown error for heading: ${heading}`);\n } else {\n console.log(`Unknown status (${status}) received for heading: ${heading}`);\n }\n\n this.sendNextRequest(index);\n }\n\n handleResults(results) {\n const westData = [], eastData = [];\n let e = results.length - 1;\n\n let originIndex = 0;\n for (let w = 0; 0 <= e; w++) {\n westData[w] = results[w];\n eastData[w] = results[e];\n // the number of samples requested is always an odd number\n // where w meets e, it should be the point of origin\n if (w === e) {\n originIndex = w;\n }\n e--;\n }\n\n this.addProfile(new TerrainProfile(westData, originIndex, this.settings, this.google, this.topoMap));\n this.addProfile(new TerrainProfile(eastData, originIndex, this.settings, this.google, this.topoMap));\n }\n\n addProfile(profile) {\n this.terrainProfiles.push(profile);\n this.updateWorstCases(profile);\n if (this.newProfileListener) {\n this.newProfileListener(profile);\n }\n }\n\n sendNextRequest(index = null) {\n index = index === null ? 0 : index + 1;\n if (index === this.headings.length) {\n return this.finish(true);\n }\n\n this.timer = setTimeout(() => this.requestElevationSamples(index), this.requestDelay);\n }\n\n getProfilesForDirection(direction) {\n const directionProfiles = [];\n for (const profile of this.terrainProfiles) {\n if (profile._direction.heading == direction.heading) {\n directionProfiles.push(profile);\n }\n }\n return directionProfiles;\n }\n\n updateWorstCases(profile) {\n const directionProfiles = this.getProfilesForDirection(profile._direction);\n if (directionProfiles.indexOf(profile) < 0) {\n directionProfiles.push(profile);\n }\n\n let worstCaseIndex = -1;\n for (let i = 0; i < directionProfiles.length; i++) {\n let index = this.worstCases.indexOf(directionProfiles[i]);\n if (index >= 0) {\n worstCaseIndex = index;\n i = directionProfiles.length;\n }\n }\n\n const worstCase = this.findWorstCase(directionProfiles);\n if (worstCaseIndex >= 0) {\n this.worstCases[worstCaseIndex] = worstCase;\n } else {\n this.worstCases.push(worstCase);\n }\n }\n\n findWorstCase(directionProfiles) {\n let [worstCase] = directionProfiles;\n for (const profile of directionProfiles) {\n profile.hideMarkers();\n if (profile.isWorseThan(worstCase)) {\n worstCase.setWorstCase(false);\n worstCase = profile;\n } else {\n profile.setWorstCase(false);\n }\n }\n worstCase.setWorstCase(true);\n worstCase.showMarkers();\n return worstCase;\n }\n\n // events\n finish(success) {\n this.successful = success;\n console.log((success ? 'successfully completed' : 'failed to complete') + ' request');\n if (this.finishListener) {\n this.finishListener();\n }\n }\n\n onFinish(listener) {\n if (listener && typeof listener == 'function') {\n this.finishListener = listener;\n }\n }\n\n onNewProfile(listener) {\n if (listener && typeof listener == 'function') {\n this.newProfileListener = listener;\n }\n }\n}\n","export default class TopoChart {\n constructor(profile, google, container) {\n /** @prop google.visualization.LineChart */\n /** @prop google.visualization.events.removeAllListeners */\n /** @prop google.maps.event.trigger */\n /** @prop chart.getContainer */\n this.google = google;\n this.profile = profile;\n // this._onPointSelected = null;\n this.chart = new this.google.visualization.LineChart(container);\n this.google.maps.event.trigger(this.chart, 'resize');\n // this.container = container;\n }\n\n draw() {\n /** @prop chartData.getColumnLabel */\n const chartData = this.profile.getChartData();\n this.chart.draw(chartData, {\n title: this.profile._direction.fname + ' ' + this.profile._heading.toFixed(2) + '°',\n legend: 'none',\n animation: {\n duration: 100,\n easing: 'out',\n },\n titleY: chartData.getColumnLabel(1),\n titleX: chartData.getColumnLabel(0),\n });\n // if (this._onPointSelected) {\n // this.onPointSelected(this._onPointSelected, chart);\n // }\n // this.chart = chart;\n }\n\n\n onPointSelected(cb) {\n this.google.visualization.events.removeAllListeners(this.chart, 'select');\n this.google.visualization.events.addListener(this.chart, 'select', () => {\n const selection = this.chart.getSelection();\n if (selection.length > 0) {\n cb(selection[0].row);\n }\n });\n }\n\n // draws/redraws charts for these profiles, removes charts for profiles not in this list\n static drawCharts(profiles, parentElement, google) {\n if (!profiles || profiles.length < 1) return;\n clearChildren(parentElement);\n for (const profile of profiles) {\n const div = document.createElement('div');\n const topoChart = new TopoChart(profile, google, div);\n div.classList.add('elevation-chart');\n parentElement.appendChild(div);\n topoChart.draw();\n }\n }\n}\n\nfunction clearChildren(element) {\n while (element.lastChild) {\n element.lastChild.remove();\n }\n}","import { render } from \"./Topo.vue?vue&type=template&id=af935318\"\nimport script from \"./Topo.vue?vue&type=script&lang=js\"\nexport * from \"./Topo.vue?vue&type=script&lang=js\"\n\nimport \"./Topo.vue?vue&type=style&index=0&id=af935318&lang=scss\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = exec.call(R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return regexpExec.call(R, S);\n throw TypeError('RegExp#exec called on incompatible receiver');\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~toString(requireObjectCoercible(this))\n .indexOf(toString(notARegExp(searchString)), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var valueOf = 1.0.valueOf;\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n return valueOf.call(value);\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue === 'string' &&\n replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1 &&\n replaceValue.indexOf('$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = toString(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeExec = RegExp.prototype.exec;\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n // eslint-disable-next-line max-statements -- TODO\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = patchedExec.call(raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = str.slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str.charAt(re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nexports.UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var $ = require('../internals/export');\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n trunc: function trunc(it) {\n return (it > 0 ? floor : ceil)(it);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Topo.vue?vue&type=style&index=0&id=af935318&lang=scss\"","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n redefine(String.prototype, KEY, methods[0]);\n redefine(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n"],"sourceRoot":""}