{"version":3,"sources":["webpack:///./node_modules/canvg/node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/iterators.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.promise.all.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/canvg/lib/index.es.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/a-constructor.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.promise.race.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.promise.reject.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/engine-is-ios-pebble.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/iterator-define.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/dom-token-list-prototype.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/to-property-key.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/promise-constructor-detection.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/try-to-string.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-callable.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/promise-native-constructor.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/global.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/uid.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/weak-map-basic-detection.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/function-name.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/to-integer-or-infinity.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-object.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/regexp-get-flags.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/define-built-in.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/define-built-in-accessor.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/an-object.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-create.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/task.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/define-global-property.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/has-own-property.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/function-uncurry-this.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/shared.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-symbol.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/html.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/to-length.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/engine-is-deno.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/fails.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/microtask.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/classof.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.array.reverse.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/create-iter-result-object.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.promise.resolve.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/validate-arguments-length.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/function-call.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/export.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/iterate.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/get-method.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/create-property.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/iterator-create-constructor.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/to-string.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/function-uncurry-this-clause.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/length-of-array-like.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.promise.constructor.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-array.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/engine-is-browser.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/symbol-constructor-detection.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-null-or-undefined.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/queue.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/array-slice.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/document-all.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/function-apply.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/canvg/node_modules/core-js/modules/es.promise.catch.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/make-built-in.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-is-prototype-of.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/is-constructor.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/function-bind-native.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/to-object.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/a-callable.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/array-slice-simple.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/perform.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/set-species.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/math-trunc.js","webpack:///./node_modules/canvg/node_modules/core-js/internals/engine-is-webos-webkit.js"],"names":["internalObjectKeys","enumBugKeys","module","exports","Object","keys","O","$","call","aCallable","newPromiseCapabilityModule","perform","iterate","PROMISE_STATICS_INCORRECT_ITERATION","target","stat","forced","all","iterable","C","this","capability","f","resolve","reject","result","$promiseResolve","values","counter","remaining","promise","index","alreadyCalled","then","value","error","isObject","classof","wellKnownSymbol","MATCH","it","isRegExp","undefined","offscreen","DOMParser","DOMParserFallback","arguments","length","preset","window","ignoreAnimation","ignoreMouse","width","height","OffscreenCanvas","url","response","fetch","blob","img","createImageBitmap","Reflect","deleteProperty","node","_ref","canvas","createCanvas","createImage","loadImage","freeze","__proto__","compressSpaces","str","replace","trimLeft","trimRight","toNumbers","matches","match","map","parseFloat","allUppercase","normalizeAttributeName","name","test","toLowerCase","parseExternalUrl","urlMatch","exec","normalizeColor","color","startsWith","rgbParts","normalizedColor","num","isFloat","String","Math","round","attributeRegex","idRegex","classRegex","pseudoElementRegex","pseudoClassWithBracketsRegex","pseudoClassRegex","elementRegex","findSelectorMatch","selector","regex","getSelectorSpecificity","specificity","currentSelector","delta","join","PSEUDO_ZERO","vectorMagnitude","v","sqrt","pow","vectorsRatio","u","vectorsAngle","acos","CB1","t","CB2","CB3","CB4","QB1","QB2","QB3","Property","document","isNormalizedColor","separator","getString","trim","split","zeroIsValue","regexp","isString","hasValue","asString","endsWith","def","n","rootEmSize","emSize","axisOrIsFontSize","processPercent","axis","isFontSize","viewPort","screen","getNumber","min","computeSize","max","getRem","getEm","getDpi","PI","definitions","element","opacity","getDefinition","createGradient","ctx","createPattern","getHrefAttribute","patternTransform","getAttribute","setValue","textBaselineMapping","getColor","len","commas","i","ok","alpha","toRGBA","ViewPort","viewPorts","push","pop","getCurrent","d","Point","x","y","point","defaultValue","scale","path","points","pathPoints","atan2","transform","xp","yp","Mouse","working","events","eventElements","onClick","bind","onMouseMove","onclick","onmousemove","style","cursor","forEach","run","parent","_ref2","isPointInPath","boundingBox","_ref3","isPointInBox","offsetLeft","offsetTop","offsetParent","scrollX","scrollY","event","mapXY","clientX","clientY","type","eventTarget","defaultWindow","defaultFetch$1","Screen","FRAMERATE","MAX_VIRTUAL_PIXELS","CLIENT_WIDTH","CLIENT_HEIGHT","mouse","animations","waits","frameDuration","isReadyLock","isFirstRender","intervalId","checker","readyPromise","Promise","every","_","resolveReady","strokeStyle","lineCap","lineJoin","miterLimit","aspectRatio","desiredWidth","desiredHeight","minX","minY","refX","refY","clip","clipX","clipY","cleanAspectRatio","aspectRatioAlign","aspectRatioMeetOrSlice","align","meetOrSlice","scaleX","scaleY","scaleMin","scaleMax","finalDesiredWidth","finalDesiredHeight","refXProp","refYProp","hasRefs","translate","getPixels","scaledClipX","scaledClipY","beginPath","moveTo","lineTo","closePath","isMeetMinY","isSliceMaxY","isMeetMinX","isSliceMaxX","enableRedraw","ignoreDimensions","ignoreClear","forceRedraw","scaleWidth","scaleHeight","offsetX","offsetY","isReady","render","now","Date","tick","shouldUpdate","runEvents","start","cancel","stop","reduce","animation","update","hasEvents","clear","setCurrent","widthStyle","getStyle","heightStyle","concat","cWidth","clientWidth","cHeight","clientHeight","viewBox","xRatio","yRatio","_widthStyle","isNaN","_heightStyle","transformStyle","clearRect","defaultFetch","DefaultDOMParser","Parser","resource","_this","parseFromString","load","xml","parser","checkDocument","err","parserError","getElementsByTagName","Error","textContent","_this2","text","Translate","parse","applyTransform","Rotate","rotate","transformOrigin","angle","originX","originY","cx","cy","numbers","tx","ty","getRadians","rad","cos","sin","Scale","scaleSize","parseScale","Matrix","matrix","a","b","c","e","g","h","det","Skew","skew","super","SkewX","tan","SkewY","parseTransforms","parseTransform","Transform","transforms","data","TransformType","transformTypes","transformOriginXProperty","transformOriginYProperty","apply","unapply","applyToPoint","skewX","skewY","Element","captureTextNodes","attributes","styles","stylesSpecificity","animationFrozen","animationFrozenValue","children","nodeType","Array","from","attribute","nodeName","addStylesFromStyleDefinition","id","childNodes","childNode","addChild","textNode","createTextNode","getText","createIfNotExists","attr","_attr","empty","key","skipAncestors","parentStyle","_style","save","mask","applyEffects","getValue","filter","setContext","renderChildren","clearContext","restore","fromElement","clipPathStyleProp","child","createElement","ignoreChildTypes","includes","_node$getAttribute","styleClasses","some","styleClass","matchesSelector","existingSpecificity","ignoreStyles","toRestore","styleProp","_this$parent","indexOf","UnknownElement","wrapFontFamily","fontFamily","trimmed","prepareFontFamily","process","prepareFontStyle","fontStyle","targetFontStyle","prepareFontWeight","fontWeight","targetFontWeight","Font","fontVariant","fontSize","inherit","inheritFont","font","parts","set","part","variants","weights","BoundingBox","x1","Number","NaN","y1","x2","y2","addPoint","p0","p1","p2","p3","forX","b2ac","t1","addX","sumCubic","addY","t2","p0x","p0y","p1x","p1y","p2x","p2y","p3x","p3y","bezierCurveAdd","cp1x","cp1y","cp2x","cp2y","addBezierCurve","PathParser","control","current","command","commands","previousCommand","angles","xProp","yProp","makeAbsolute","getPoint","CURVE_TO","SMOOTH_CURVE_TO","QUAD_TO","SMOOTH_QUAD_TO","ox","oy","relative","priorTo","angleTo","addMarkerAngle","j","RenderedElement","modifiedEmSizeStack","opacityStyle","fromMeasure","fillStyleProp","fillOpacityStyleProp","strokeStyleProp","strokeOpacityProp","isUrlDefinition","fillStyle","getFillStyleDefinition","_fillStyle","_fillStyle2","addOpacity","_strokeStyle","_strokeStyle2","strokeWidthStyleProp","newLineWidth","lineWidth","strokeLinecapStyleProp","strokeLinejoinStyleProp","strokeMiterlimitProp","strokeDasharrayStyleProp","strokeDashoffsetProp","gaps","setLineDash","webkitLineDash","mozDash","offset","lineDashOffset","webkitLineDashOffset","mozDashOffset","fontStyleProp","fontStyleStyleProp","fontVariantStyleProp","fontWeightStyleProp","fontSizeStyleProp","fontFamilyStyleProp","toString","isPixels","globalAlpha","calculateOpacity","popEmSize","PathElement","pathParser","reset","isEnd","next","MOVE_TO","pathM","LINE_TO","pathL","HORIZ_LINE_TO","pathH","VERT_LINE_TO","pathV","pathC","pathS","pathQ","pathT","ARC","pathA","CLOSE_PATH","pathZ","getMarkerPoints","getMarkerAngles","markers","checkPath","fillRuleStyleProp","fill","setTransform","stroke","getMarkers","markersLastIndex","markerStartStyleProp","markerMidStyleProp","markerEndStyleProp","marker","_marker","_point","_angle","_marker2","_point2","_angle2","getAsCurrentPoint","addMarker","controlPoint","getAsControlPoint","currentPoint","bezierCurveTo","getReflectedControlPoint","addQuadraticCurve","quadraticCurveTo","rX","rY","xRot","lArcFlag","sweepFlag","xAxisRotation","currp","l","s","cpp","centp","a1","ad","dir","ah","halfWay","r","sx","sy","arc","Boolean","GlyphElement","horizAdvX","unicode","arabicForm","TextElement","measureCache","textBaseline","getTextBaseline","leafTexts","textChunkStart","POSITIVE_INFINITY","maxX","NEGATIVE_INFINITY","getTElementBoundingBox","initializeCoordinates","adjustChildCoordinatesRecursive","childBoundingBox","getChildBoundingBox","addBoundingBox","inheritFontSize","getFontSize","measureText","char","glyph","isArabic","prevChar","nextChar","glyphs","maybeGlyph","missingGlyph","parentNode","lastIndex","renderChild","isWorking","checkBoundingBox","getBoundingBox","renderTElementChildren","renderText","customFont","unitsPerEm","fontFace","ctxFont","isRTL","reverse","dx","getGlyph","lw","fillText","strokeText","firstElement","textAnchor","shift","adjustChildCoordinatesRecursiveCore","applyAnchoring","textParent","adjustChildCoordinates","xAttr","yAttr","dxAttr","dyAttr","getInheritedAttribute","measure","measureTargetText","targetText","_measure","isFirstChild","parentAttr","TSpanElement","getTextFromNode","TextNode","SVGElement","root","_this$node$parentNode","setDefaults","getComputedStyle","getPropertyValue","fontSizeProp","refXAttr","refYAttr","viewBoxAttr","setViewBox","removeCurrent","preserveAspectRatio","widthAttr","heightAttr","styleAttr","originWidth","originHeight","preserveAspectRatioAttr","RectElement","rxAttr","ryAttr","rx","ry","KAPPA","CircleElement","EllipseElement","LineElement","x0","y0","getPoints","PolylineElement","parsePath","PolygonElement","PatternElement","parentOpacityProp","patternSvg","patternCanvas","patternCtx","getContext","pattern","MarkerElement","orient","markerUnits","markerSvg","overflow","DefsElement","GElement","GradientElement","attributesToInherit","stops","stopsContainer","inheritStopContainer","gradient","getGradient","addParentOpacity","addColorStop","rootView","rect","group","attributeToInherit","colorProp","LinearGradientElement","isBoundingBoxUnits","getGradientUnits","createLinearGradient","RadialGradientElement","fx","fy","fr","createRadialGradient","StopElement","stopOpacity","stopColor","AnimateElement","duration","initialValue","initialUnits","removed","frozen","begin","getMilliseconds","maxDuration","to","valuesAttr","attributeType","attributeName","progress","getProgress","newValue","prop","getProperty","getUnits","updated","calcValue","typeAttr","p","lb","floor","ub","ceil","AnimateColorElement","colorFrom","colorTo","AnimateTransformElement","transformFrom","transformTo","FontElement","fontFamilyStyle","FontFaceElement","ascent","descent","MissingGlyphElement","TRefElement","firstChild","AElement","hasText","open","ownKeys$2","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread$2","source","getOwnPropertyDescriptors","defineProperties","defineProperty","TextPathElement","textWidth","textHeight","pathLength","glyphInfo","letterSpacingCache","measuresCache","Map","pathElement","dataArray","parsePathData","theta","dTheta","psi","fs","setTextData","textDecoration","rotation","partialText","idx","anchor","textFullWidth","fullPathWidth","spacesNumber","inputOffset","dy","charI","glyphWidth","getLetterSpacingAt","splineStep","getEquidistantPointOnPath","segment","dyX","dyY","has","get","chars","thisSpacing","parentSpacing","letterSpacing","textLen","dxSum","acc","cur","getPathLength","startOffset","nextOffset","findSegmentToFitChar","pathCommands","startX","startY","nextCommandType","calcLength","commandType","getLineLength","getPointOnCubicBezier","getPointOnQuadraticBezier","end","inc","abs","getPointOnEllipticalArc","dist","fromX","fromY","m","rise","pt","ix","iy","pRise","pRun","distance","fullLen","cumulativePathLength","currentT","getPointOnLine","pct","p4x","p4y","cosPsi","sinPsi","inputStep","inputPrecision","precision","step","equidistantCache","getPointOnPath","targetDistance","buildEquidistantCache","dataUriRegex","ImageElement","loaded","href","isSvg","images","loadSvg","image","console","atob","decodeURIComponent","svg","subDocument","canvg","forkString","documentElement","_image","complete","drawImage","SymbolElement","SVGFontLoader","fonts","svgDocument","fontNode","StyleElement","css","cssDefs","cssParts","cssClasses","cssProps","cssClass","props","cssProp","substr","srcs","src","UseElement","tempSvg","oldParent","cachedElement","imGet","_height","rgba","imSet","val","mi","m1","m2","m3","FeColorMatrixElement","includeOpacity","_x","_y","srcData","getImageData","nr","ng","nb","na","putImageData","MaskElement","ignoredStyles","removeStyles","maskCanvas","maskCtx","tmpCanvas","tmpCtx","globalCompositeOperation","fillRect","restoreStyles","noop","ClipPathElement","contextProto","getPrototypeOf","elementTransform","FilterElement","px","py","efd","extraFilterDistance","tmpCanvasWidth","tmpCanvasHeight","FeDropShadowElement","_width","FeMorphologyElement","FeCompositeElement","FeGaussianBlurElement","blurRadius","body","getUniqueId","display","appendChild","removeChild","TitleElement","DescElement","elements","ownKeys$1","_objectSpread$1","_createImage","anonymousCrossOrigin","crossOrigin","onload","onerror","_event","_source","_lineno","_colno","Document","emSizeStack","uniqueId","bindCreateImage","wait","isImagesLoaded","isFontsLoaded","forceAnonymousCrossOrigin","elementType","ElementType","elementTypes","config","ownKeys","_objectSpread","Canvg","options","createDocumentElement","_arguments","fromString","ready","_arguments2","baseOptions","resize","isConstructor","tryToString","$TypeError","TypeError","argument","race","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","FORCED_PROMISE_CONSTRUCTOR","CONSTRUCTOR","toObject","IndexedObject","lengthOfArrayLike","createMethod","IS_RIGHT","that","callbackfn","argumentsLength","memo","self","left","right","DESCRIPTORS","fails","writable","prototype","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","CONFIGURABLE","WRITABLE","P","Attributes","configurable","userAgent","Pebble","IS_PURE","FunctionName","isCallable","createIteratorConstructor","setPrototypeOf","setToStringTag","createNonEnumerableProperty","defineBuiltIn","Iterators","IteratorsCore","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","IteratorPrototype","BUGGY_SAFARI_ITERATORS","ITERATOR","KEYS","VALUES","ENTRIES","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","TO_STRING_TAG","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","proto","documentCreateElement","classList","DOMTokenListPrototype","constructor","toPrimitive","isSymbol","uncurryThis","toLength","notARegExp","requireObjectCoercible","correctIsRegExpLogic","nativeEndsWith","slice","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","searchString","endPosition","search","global","NativePromiseConstructor","isForced","inspectSource","IS_BROWSER","IS_DENO","V8_VERSION","NativePromisePrototype","SPECIES","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","REJECTION_EVENT","F","create","UNSCOPABLES","ArrayPrototype","hasIndices","ignoreCase","multiline","dotAll","unicodeSets","sticky","$String","uncurryThisAccessor","aPossiblePrototype","setter","CORRECT_SETTER","$documentAll","documentAll","IS_HTMLDDA","fixRegExpWellKnownSymbolLogic","isNullOrUndefined","getMethod","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","matcher","RegExp","string","S","res","done","fullUnicode","A","matchStr","nativeStartsWith","stringSlice","check","globalThis","Function","toIndexedObject","addToUnscopables","InternalStateModule","defineIterator","createIterResultObject","ARRAY_ITERATOR","setInternalState","getInternalState","getterFor","iterated","kind","state","Arguments","stringIndexOf","postfix","random","charAt","speciesConstructor","arraySlice","callRegExpExec","regexpExec","stickyHelpers","UNSUPPORTED_Y","MAX_UINT32","$push","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","re","originalExec","SPLIT","nativeSplit","internalSplit","limit","lim","lastLength","output","flags","lastLastIndex","separatorCopy","splitter","unicodeMatching","q","z","WeakMap","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","position","captures","namedCaptures","replacement","tailPos","ch","capture","aConstructor","defaultConstructor","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","hasOwn","FunctionPrototype","getDescriptor","EXISTS","method","METHOD_NAME","hiddenKeys","getOwnPropertyNames","whitespaces","ltrim","rtrim","TYPE","aFunction","namespace","$RegExp","MISSED_STICKY","BROKEN_CARET","trunc","number","shared","uid","newPromiseCapability","promiseCapability","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","NATIVE_WEAK_MAP","sharedKey","OBJECT_ALREADY_INITIALIZED","enforce","store","metadata","facade","STATE","isPrototypeOf","regExpFlags","RegExpPrototype","R","CORRECT_PROTOTYPE_GETTER","IE_PROTO","$Object","ObjectPrototype","regexpFlags","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","reCopy","raw","groups","charsAdded","strCopy","input","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","uncurriedNativeRegExpMethod","nativeMethod","arg2","forceStringMethod","uncurriedNativeMethod","$exec","makeBuiltIn","defineGlobalProperty","simple","unsafe","nonConfigurable","nonWritable","getter","activeXDocument","definePropertiesModule","html","GT","LT","PROTOTYPE","SCRIPT","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","contentWindow","NullProtoObject","ActiveXObject","domain","Properties","$location","defer","channel","port","validateArgumentsLength","IS_IOS","IS_NODE","setImmediate","clearImmediate","Dispatch","MessageChannel","queue","ONREADYSTATECHANGE","location","fn","runner","eventListener","globalPostMessageDefer","postMessage","protocol","host","handler","args","nextTick","port2","port1","onmessage","addEventListener","importScripts","setTimeout","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","hasOwnProperty","names","NATIVE_BIND","uncurryThisWithBind","version","Deno","versions","v8","mode","copyright","license","getBuiltIn","USE_SYMBOL_AS_UID","$Symbol","toIntegerOrInfinity","navigator","propertyIsEnumerableModule","createPropertyDescriptor","notify","toggle","macrotask","Queue","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","microtask","flush","exit","head","enter","observe","characterData","add","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","tag","callee","$indexOf","arrayMethodIsStrict","nativeIndexOf","NEGATIVE_ZERO","searchElement","getIteratorMethod","usingIterator","iteratorMethod","iterator","innerResult","innerError","isArray","nativeReverse","promiseResolve","PromiseConstructorWrapper","CHECK_WRAPPER","passed","required","feature","detection","normalize","POLYFILL","NATIVE","$reduce","CHROME_VERSION","CHROME_BUG","ordinaryToPrimitive","TO_PRIMITIVE","pref","exoticToPrim","copyConstructorProperties","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","dontCallGetSet","sham","isArrayIteratorMethod","getIterator","iteratorClose","Result","stopped","ResultPrototype","unboundFunction","iterFn","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","condition","callFn","integer","V","func","objectKeys","propertyKey","propertyIsEnumerable","DOMIterables","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","ENUMERABLE_NEXT","functionToString","obj","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","setSpecies","anInstance","task","hostReportErrors","PromiseConstructorDetection","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","isThenable","callReaction","reaction","exited","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","IS_UNHANDLED","isUnhandled","emit","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","wrap","TAG","Prototype","symbol","Symbol","$trim","forcedStringTrimMethod","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","getSubstitution","REPLACE","maybeToString","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","results","accumulatedResult","nextSourcePosition","replacerArgs","$toString","getRegExpFlags","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","charCodeAt","CONVERT_TO_STRING","pos","first","second","size","codeAt","PromiseCapability","$$resolve","$$reject","tail","item","entry","NATIVE_SYMBOL","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","real","checkCorrectnessOfIteration","valueOf","enforceInternalState","CONFIGURABLE_LENGTH","TEMPLATE","arity","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","SHARED","bitmap","non","$propertyIsEnumerable","NASHORN_BUG","1","createProperty","$Array","k","fin","defineBuiltInAccessor","CONSTRUCTOR_NAME","Constructor","error1","error2"],"mappings":"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","file":"js/npm.canvg.e5e0a9f0.js","sourcesContent":["var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","module.exports = {};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\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","import 'core-js/modules/es.promise.js';\nimport _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';\nimport 'core-js/modules/es.string.match.js';\nimport 'core-js/modules/es.string.replace.js';\nimport 'core-js/modules/es.string.starts-with.js';\nimport 'core-js/modules/es.array.iterator.js';\nimport 'core-js/modules/web.dom-collections.iterator.js';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport 'core-js/modules/es.array.reduce.js';\nimport 'core-js/modules/es.string.ends-with.js';\nimport 'core-js/modules/es.string.split.js';\nimport requestAnimationFrame from 'raf';\nimport 'core-js/modules/es.string.trim.js';\nimport RGBColor from 'rgbcolor';\nimport 'core-js/modules/es.array.index-of.js';\nimport 'core-js/modules/es.string.includes.js';\nimport 'core-js/modules/es.array.reverse.js';\nimport { SVGPathData } from 'svg-pathdata';\nimport 'core-js/modules/es.regexp.to-string.js';\nimport { canvasRGBA } from 'stackblur-canvas';\n\n/**\r\n * Options preset for `OffscreenCanvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @returns Preset object.\r\n */\nfunction offscreen() {\n var {\n DOMParser: DOMParserFallback\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var preset = {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser: DOMParserFallback,\n\n createCanvas(width, height) {\n return new OffscreenCanvas(width, height);\n },\n\n createImage(url) {\n return _asyncToGenerator(function* () {\n var response = yield fetch(url);\n var blob = yield response.blob();\n var img = yield createImageBitmap(blob);\n return img;\n })();\n }\n\n };\n\n if (typeof DOMParser !== 'undefined' || typeof DOMParserFallback === 'undefined') {\n Reflect.deleteProperty(preset, 'DOMParser');\n }\n\n return preset;\n}\n\n/**\r\n * Options preset for `node-canvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @param config.canvas - `node-canvas` exports.\r\n * @param config.fetch - WHATWG-compatible `fetch` function.\r\n * @returns Preset object.\r\n */\nfunction node(_ref) {\n var {\n DOMParser,\n canvas,\n fetch\n } = _ref;\n return {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser,\n fetch,\n createCanvas: canvas.createCanvas,\n createImage: canvas.loadImage\n };\n}\n\nvar index = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\toffscreen: offscreen,\n\tnode: node\n});\n\n/**\r\n * HTML-safe compress white-spaces.\r\n * @param str - String to compress.\r\n * @returns String.\r\n */\nfunction compressSpaces(str) {\n return str.replace(/(?!\\u3000)\\s+/gm, ' ');\n}\n/**\r\n * HTML-safe left trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimLeft(str) {\n return str.replace(/^[\\n \\t]+/, '');\n}\n/**\r\n * HTML-safe right trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimRight(str) {\n return str.replace(/[\\n \\t]+$/, '');\n}\n/**\r\n * String to numbers array.\r\n * @param str - Numbers string.\r\n * @returns Numbers array.\r\n */\n\nfunction toNumbers(str) {\n var matches = (str || '').match(/-?(\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?|\\.\\d+)(?=\\D|$)/gm) || [];\n return matches.map(parseFloat);\n} // Microsoft Edge fix\n\nvar allUppercase = /^[A-Z-]+$/;\n/**\r\n * Normalize attribute name.\r\n * @param name - Attribute name.\r\n * @returns Normalized attribute name.\r\n */\n\nfunction normalizeAttributeName(name) {\n if (allUppercase.test(name)) {\n return name.toLowerCase();\n }\n\n return name;\n}\n/**\r\n * Parse external URL.\r\n * @param url - CSS url string.\r\n * @returns Parsed URL.\r\n */\n\nfunction parseExternalUrl(url) {\n // single quotes [2]\n // v double quotes [3]\n // v v no quotes [4]\n // v v v\n var urlMatch = /url\\(('([^']+)'|\"([^\"]+)\"|([^'\")]+))\\)/.exec(url) || [];\n return urlMatch[2] || urlMatch[3] || urlMatch[4];\n}\n/**\r\n * Transform floats to integers in rgb colors.\r\n * @param color - Color to normalize.\r\n * @returns Normalized color.\r\n */\n\nfunction normalizeColor(color) {\n if (!color.startsWith('rgb')) {\n return color;\n }\n\n var rgbParts = 3;\n var normalizedColor = color.replace(/\\d+(\\.\\d+)?/g, (num, isFloat) => rgbParts-- && isFloat ? String(Math.round(parseFloat(num))) : num);\n return normalizedColor;\n}\n\n// slightly modified version of https://github.com/keeganstreet/specificity/blob/master/specificity.js\nvar attributeRegex = /(\\[[^\\]]+\\])/g;\nvar idRegex = /(#[^\\s+>~.[:]+)/g;\nvar classRegex = /(\\.[^\\s+>~.[:]+)/g;\nvar pseudoElementRegex = /(::[^\\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi;\nvar pseudoClassWithBracketsRegex = /(:[\\w-]+\\([^)]*\\))/gi;\nvar pseudoClassRegex = /(:[^\\s+>~.[:]+)/g;\nvar elementRegex = /([^\\s+>~.[:]+)/g;\n\nfunction findSelectorMatch(selector, regex) {\n var matches = regex.exec(selector);\n\n if (!matches) {\n return [selector, 0];\n }\n\n return [selector.replace(regex, ' '), matches.length];\n}\n/**\r\n * Measure selector specificity.\r\n * @param selector - Selector to measure.\r\n * @returns Specificity.\r\n */\n\n\nfunction getSelectorSpecificity(selector) {\n var specificity = [0, 0, 0];\n var currentSelector = selector.replace(/:not\\(([^)]*)\\)/g, ' $1 ').replace(/{[\\s\\S]*/gm, ' ');\n var delta = 0;\n [currentSelector, delta] = findSelectorMatch(currentSelector, attributeRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, idRegex);\n specificity[0] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, classRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoElementRegex);\n specificity[2] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassWithBracketsRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassRegex);\n specificity[1] += delta;\n currentSelector = currentSelector.replace(/[*\\s+>~]/g, ' ').replace(/[#.]/g, ' ');\n [currentSelector, delta] = findSelectorMatch(currentSelector, elementRegex); // lgtm [js/useless-assignment-to-local]\n\n specificity[2] += delta;\n return specificity.join('');\n}\n\nvar PSEUDO_ZERO = .00000001;\n/**\r\n * Vector magnitude.\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorMagnitude(v) {\n return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2));\n}\n/**\r\n * Ratio between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vectorMagnitude(u) * vectorMagnitude(v));\n}\n/**\r\n * Angle between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vectorsRatio(u, v));\n}\nfunction CB1(t) {\n return t * t * t;\n}\nfunction CB2(t) {\n return 3 * t * t * (1 - t);\n}\nfunction CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n}\nfunction CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n}\nfunction QB1(t) {\n return t * t;\n}\nfunction QB2(t) {\n return 2 * t * (1 - t);\n}\nfunction QB3(t) {\n return (1 - t) * (1 - t);\n}\n\nclass Property {\n constructor(document, name, value) {\n this.document = document;\n this.name = name;\n this.value = value;\n this.isNormalizedColor = false;\n }\n\n static empty(document) {\n return new Property(document, 'EMPTY', '');\n }\n\n split() {\n var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' ';\n var {\n document,\n name\n } = this;\n return compressSpaces(this.getString()).trim().split(separator).map(value => new Property(document, name, value));\n }\n\n hasValue(zeroIsValue) {\n var {\n value\n } = this;\n return value !== null && value !== '' && (zeroIsValue || value !== 0) && typeof value !== 'undefined';\n }\n\n isString(regexp) {\n var {\n value\n } = this;\n var result = typeof value === 'string';\n\n if (!result || !regexp) {\n return result;\n }\n\n return regexp.test(value);\n }\n\n isUrlDefinition() {\n return this.isString(/^url\\(/);\n }\n\n isPixels() {\n if (!this.hasValue()) {\n return false;\n }\n\n var asString = this.getString();\n\n switch (true) {\n case asString.endsWith('px'):\n case /^[0-9]+$/.test(asString):\n return true;\n\n default:\n return false;\n }\n }\n\n setValue(value) {\n this.value = value;\n return this;\n }\n\n getValue(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return this.value;\n }\n\n return def;\n }\n\n getNumber(def) {\n if (!this.hasValue()) {\n if (typeof def === 'undefined') {\n return 0;\n }\n\n return parseFloat(def);\n }\n\n var {\n value\n } = this;\n var n = parseFloat(value);\n\n if (this.isString(/%$/)) {\n n /= 100.0;\n }\n\n return n;\n }\n\n getString(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return typeof this.value === 'undefined' ? '' : String(this.value);\n }\n\n return String(def);\n }\n\n getColor(def) {\n var color = this.getString(def);\n\n if (this.isNormalizedColor) {\n return color;\n }\n\n this.isNormalizedColor = true;\n color = normalizeColor(color);\n this.value = color;\n return color;\n }\n\n getDpi() {\n return 96.0; // TODO: compute?\n }\n\n getRem() {\n return this.document.rootEmSize;\n }\n\n getEm() {\n return this.document.emSize;\n }\n\n getUnits() {\n return this.getString().replace(/[0-9.-]/g, '');\n }\n\n getPixels(axisOrIsFontSize) {\n var processPercent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!this.hasValue()) {\n return 0;\n }\n\n var [axis, isFontSize] = typeof axisOrIsFontSize === 'boolean' ? [undefined, axisOrIsFontSize] : [axisOrIsFontSize];\n var {\n viewPort\n } = this.document.screen;\n\n switch (true) {\n case this.isString(/vmin$/):\n return this.getNumber() / 100.0 * Math.min(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vmax$/):\n return this.getNumber() / 100.0 * Math.max(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vw$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('x');\n\n case this.isString(/vh$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('y');\n\n case this.isString(/rem$/):\n return this.getNumber() * this.getRem();\n\n case this.isString(/em$/):\n return this.getNumber() * this.getEm();\n\n case this.isString(/ex$/):\n return this.getNumber() * this.getEm() / 2.0;\n\n case this.isString(/px$/):\n return this.getNumber();\n\n case this.isString(/pt$/):\n return this.getNumber() * this.getDpi() * (1.0 / 72.0);\n\n case this.isString(/pc$/):\n return this.getNumber() * 15;\n\n case this.isString(/cm$/):\n return this.getNumber() * this.getDpi() / 2.54;\n\n case this.isString(/mm$/):\n return this.getNumber() * this.getDpi() / 25.4;\n\n case this.isString(/in$/):\n return this.getNumber() * this.getDpi();\n\n case this.isString(/%$/) && isFontSize:\n return this.getNumber() * this.getEm();\n\n case this.isString(/%$/):\n return this.getNumber() * viewPort.computeSize(axis);\n\n default:\n {\n var n = this.getNumber();\n\n if (processPercent && n < 1.0) {\n return n * viewPort.computeSize(axis);\n }\n\n return n;\n }\n }\n }\n\n getMilliseconds() {\n if (!this.hasValue()) {\n return 0;\n }\n\n if (this.isString(/ms$/)) {\n return this.getNumber();\n }\n\n return this.getNumber() * 1000;\n }\n\n getRadians() {\n if (!this.hasValue()) {\n return 0;\n }\n\n switch (true) {\n case this.isString(/deg$/):\n return this.getNumber() * (Math.PI / 180.0);\n\n case this.isString(/grad$/):\n return this.getNumber() * (Math.PI / 200.0);\n\n case this.isString(/rad$/):\n return this.getNumber();\n\n default:\n return this.getNumber() * (Math.PI / 180.0);\n }\n }\n\n getDefinition() {\n var asString = this.getString();\n var name = /#([^)'\"]+)/.exec(asString);\n\n if (name) {\n name = name[1];\n }\n\n if (!name) {\n name = asString;\n }\n\n return this.document.definitions[name];\n }\n\n getFillStyleDefinition(element, opacity) {\n var def = this.getDefinition();\n\n if (!def) {\n return null;\n } // gradient\n\n\n if (typeof def.createGradient === 'function') {\n return def.createGradient(this.document.ctx, element, opacity);\n } // pattern\n\n\n if (typeof def.createPattern === 'function') {\n if (def.getHrefAttribute().hasValue()) {\n var patternTransform = def.getAttribute('patternTransform');\n def = def.getHrefAttribute().getDefinition();\n\n if (patternTransform.hasValue()) {\n def.getAttribute('patternTransform', true).setValue(patternTransform.value);\n }\n }\n\n return def.createPattern(this.document.ctx, element, opacity);\n }\n\n return null;\n }\n\n getTextBaseline() {\n if (!this.hasValue()) {\n return null;\n }\n\n return Property.textBaselineMapping[this.getString()];\n }\n\n addOpacity(opacity) {\n var value = this.getColor();\n var len = value.length;\n var commas = 0; // Simulate old RGBColor version, which can't parse rgba.\n\n for (var i = 0; i < len; i++) {\n if (value[i] === ',') {\n commas++;\n }\n\n if (commas === 3) {\n break;\n }\n }\n\n if (opacity.hasValue() && this.isString() && commas !== 3) {\n var color = new RGBColor(value);\n\n if (color.ok) {\n color.alpha = opacity.getNumber();\n value = color.toRGBA();\n }\n }\n\n return new Property(this.document, this.name, value);\n }\n\n}\nProperty.textBaselineMapping = {\n 'baseline': 'alphabetic',\n 'before-edge': 'top',\n 'text-before-edge': 'top',\n 'middle': 'middle',\n 'central': 'middle',\n 'after-edge': 'bottom',\n 'text-after-edge': 'bottom',\n 'ideographic': 'ideographic',\n 'alphabetic': 'alphabetic',\n 'hanging': 'hanging',\n 'mathematical': 'alphabetic'\n};\n\nclass ViewPort {\n constructor() {\n this.viewPorts = [];\n }\n\n clear() {\n this.viewPorts = [];\n }\n\n setCurrent(width, height) {\n this.viewPorts.push({\n width,\n height\n });\n }\n\n removeCurrent() {\n this.viewPorts.pop();\n }\n\n getCurrent() {\n var {\n viewPorts\n } = this;\n return viewPorts[viewPorts.length - 1];\n }\n\n get width() {\n return this.getCurrent().width;\n }\n\n get height() {\n return this.getCurrent().height;\n }\n\n computeSize(d) {\n if (typeof d === 'number') {\n return d;\n }\n\n if (d === 'x') {\n return this.width;\n }\n\n if (d === 'y') {\n return this.height;\n }\n\n return Math.sqrt(Math.pow(this.width, 2) + Math.pow(this.height, 2)) / Math.sqrt(2);\n }\n\n}\n\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n\n static parse(point) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var [x = defaultValue, y = defaultValue] = toNumbers(point);\n return new Point(x, y);\n }\n\n static parseScale(scale) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var [x = defaultValue, y = x] = toNumbers(scale);\n return new Point(x, y);\n }\n\n static parsePath(path) {\n var points = toNumbers(path);\n var len = points.length;\n var pathPoints = [];\n\n for (var i = 0; i < len; i += 2) {\n pathPoints.push(new Point(points[i], points[i + 1]));\n }\n\n return pathPoints;\n }\n\n angleTo(point) {\n return Math.atan2(point.y - this.y, point.x - this.x);\n }\n\n applyTransform(transform) {\n var {\n x,\n y\n } = this;\n var xp = x * transform[0] + y * transform[2] + transform[4];\n var yp = x * transform[1] + y * transform[3] + transform[5];\n this.x = xp;\n this.y = yp;\n }\n\n}\n\nclass Mouse {\n constructor(screen) {\n this.screen = screen;\n this.working = false;\n this.events = [];\n this.eventElements = []; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onClick = this.onClick.bind(this); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onMouseMove = this.onMouseMove.bind(this);\n }\n\n isWorking() {\n return this.working;\n }\n\n start() {\n if (this.working) {\n return;\n }\n\n var {\n screen,\n onClick,\n onMouseMove\n } = this;\n var canvas = screen.ctx.canvas;\n canvas.onclick = onClick;\n canvas.onmousemove = onMouseMove;\n this.working = true;\n }\n\n stop() {\n if (!this.working) {\n return;\n }\n\n var canvas = this.screen.ctx.canvas;\n this.working = false;\n canvas.onclick = null;\n canvas.onmousemove = null;\n }\n\n hasEvents() {\n return this.working && this.events.length > 0;\n }\n\n runEvents() {\n if (!this.working) {\n return;\n }\n\n var {\n screen: document,\n events,\n eventElements\n } = this;\n var {\n style\n } = document.ctx.canvas;\n\n if (style) {\n style.cursor = '';\n }\n\n events.forEach((_ref, i) => {\n var {\n run\n } = _ref;\n var element = eventElements[i];\n\n while (element) {\n run(element);\n element = element.parent;\n }\n }); // done running, clear\n\n this.events = [];\n this.eventElements = [];\n }\n\n checkPath(element, ctx) {\n if (!this.working || !ctx) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref2, i) => {\n var {\n x,\n y\n } = _ref2;\n\n if (!eventElements[i] && ctx.isPointInPath && ctx.isPointInPath(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n checkBoundingBox(element, boundingBox) {\n if (!this.working || !boundingBox) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref3, i) => {\n var {\n x,\n y\n } = _ref3;\n\n if (!eventElements[i] && boundingBox.isPointInBox(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n mapXY(x, y) {\n var {\n window,\n ctx\n } = this.screen;\n var point = new Point(x, y);\n var element = ctx.canvas;\n\n while (element) {\n point.x -= element.offsetLeft;\n point.y -= element.offsetTop;\n element = element.offsetParent;\n }\n\n if (window.scrollX) {\n point.x += window.scrollX;\n }\n\n if (window.scrollY) {\n point.y += window.scrollY;\n }\n\n return point;\n }\n\n onClick(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onclick',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onClick) {\n eventTarget.onClick();\n }\n }\n\n });\n }\n\n onMouseMove(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onmousemove',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onMouseMove) {\n eventTarget.onMouseMove();\n }\n }\n\n });\n }\n\n}\n\nvar defaultWindow = typeof window !== 'undefined' ? window : null;\nvar defaultFetch$1 = typeof fetch !== 'undefined' ? fetch.bind(undefined) // `fetch` depends on context: `someObject.fetch(...)` will throw error.\n: null;\nclass Screen {\n constructor(ctx) {\n var {\n fetch = defaultFetch$1,\n window = defaultWindow\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.ctx = ctx;\n this.FRAMERATE = 30;\n this.MAX_VIRTUAL_PIXELS = 30000;\n this.CLIENT_WIDTH = 800;\n this.CLIENT_HEIGHT = 600;\n this.viewPort = new ViewPort();\n this.mouse = new Mouse(this);\n this.animations = [];\n this.waits = [];\n this.frameDuration = 0;\n this.isReadyLock = false;\n this.isFirstRender = true;\n this.intervalId = null;\n this.window = window;\n this.fetch = fetch;\n }\n\n wait(checker) {\n this.waits.push(checker);\n }\n\n ready() {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.readyPromise) {\n return Promise.resolve();\n }\n\n return this.readyPromise;\n }\n\n isReady() {\n if (this.isReadyLock) {\n return true;\n }\n\n var isReadyLock = this.waits.every(_ => _());\n\n if (isReadyLock) {\n this.waits = [];\n\n if (this.resolveReady) {\n this.resolveReady();\n }\n }\n\n this.isReadyLock = isReadyLock;\n return isReadyLock;\n }\n\n setDefaults(ctx) {\n // initial values and defaults\n ctx.strokeStyle = 'rgba(0,0,0,0)';\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n }\n\n setViewBox(_ref) {\n var {\n document,\n ctx,\n aspectRatio,\n width,\n desiredWidth,\n height,\n desiredHeight,\n minX = 0,\n minY = 0,\n refX,\n refY,\n clip = false,\n clipX = 0,\n clipY = 0\n } = _ref;\n // aspect ratio - http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute\n var cleanAspectRatio = compressSpaces(aspectRatio).replace(/^defer\\s/, ''); // ignore defer\n\n var [aspectRatioAlign, aspectRatioMeetOrSlice] = cleanAspectRatio.split(' ');\n var align = aspectRatioAlign || 'xMidYMid';\n var meetOrSlice = aspectRatioMeetOrSlice || 'meet'; // calculate scale\n\n var scaleX = width / desiredWidth;\n var scaleY = height / desiredHeight;\n var scaleMin = Math.min(scaleX, scaleY);\n var scaleMax = Math.max(scaleX, scaleY);\n var finalDesiredWidth = desiredWidth;\n var finalDesiredHeight = desiredHeight;\n\n if (meetOrSlice === 'meet') {\n finalDesiredWidth *= scaleMin;\n finalDesiredHeight *= scaleMin;\n }\n\n if (meetOrSlice === 'slice') {\n finalDesiredWidth *= scaleMax;\n finalDesiredHeight *= scaleMax;\n }\n\n var refXProp = new Property(document, 'refX', refX);\n var refYProp = new Property(document, 'refY', refY);\n var hasRefs = refXProp.hasValue() && refYProp.hasValue();\n\n if (hasRefs) {\n ctx.translate(-scaleMin * refXProp.getPixels('x'), -scaleMin * refYProp.getPixels('y'));\n }\n\n if (clip) {\n var scaledClipX = scaleMin * clipX;\n var scaledClipY = scaleMin * clipY;\n ctx.beginPath();\n ctx.moveTo(scaledClipX, scaledClipY);\n ctx.lineTo(width, scaledClipY);\n ctx.lineTo(width, height);\n ctx.lineTo(scaledClipX, height);\n ctx.closePath();\n ctx.clip();\n }\n\n if (!hasRefs) {\n var isMeetMinY = meetOrSlice === 'meet' && scaleMin === scaleY;\n var isSliceMaxY = meetOrSlice === 'slice' && scaleMax === scaleY;\n var isMeetMinX = meetOrSlice === 'meet' && scaleMin === scaleX;\n var isSliceMaxX = meetOrSlice === 'slice' && scaleMax === scaleX;\n\n if (align.startsWith('xMid') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width / 2.0 - finalDesiredWidth / 2.0, 0);\n }\n\n if (align.endsWith('YMid') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height / 2.0 - finalDesiredHeight / 2.0);\n }\n\n if (align.startsWith('xMax') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width - finalDesiredWidth, 0);\n }\n\n if (align.endsWith('YMax') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height - finalDesiredHeight);\n }\n } // scale\n\n\n switch (true) {\n case align === 'none':\n ctx.scale(scaleX, scaleY);\n break;\n\n case meetOrSlice === 'meet':\n ctx.scale(scaleMin, scaleMin);\n break;\n\n case meetOrSlice === 'slice':\n ctx.scale(scaleMax, scaleMax);\n break;\n } // translate\n\n\n ctx.translate(-minX, -minY);\n }\n\n start(element) {\n var {\n enableRedraw = false,\n ignoreMouse = false,\n ignoreAnimation = false,\n ignoreDimensions = false,\n ignoreClear = false,\n forceRedraw,\n scaleWidth,\n scaleHeight,\n offsetX,\n offsetY\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n FRAMERATE,\n mouse\n } = this;\n var frameDuration = 1000 / FRAMERATE;\n this.frameDuration = frameDuration;\n this.readyPromise = new Promise(resolve => {\n this.resolveReady = resolve;\n });\n\n if (this.isReady()) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n }\n\n if (!enableRedraw) {\n return;\n }\n\n var now = Date.now();\n var then = now;\n var delta = 0;\n\n var tick = () => {\n now = Date.now();\n delta = now - then;\n\n if (delta >= frameDuration) {\n then = now - delta % frameDuration;\n\n if (this.shouldUpdate(ignoreAnimation, forceRedraw)) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n mouse.runEvents();\n }\n }\n\n this.intervalId = requestAnimationFrame(tick);\n };\n\n if (!ignoreMouse) {\n mouse.start();\n }\n\n this.intervalId = requestAnimationFrame(tick);\n }\n\n stop() {\n if (this.intervalId) {\n requestAnimationFrame.cancel(this.intervalId);\n this.intervalId = null;\n }\n\n this.mouse.stop();\n }\n\n shouldUpdate(ignoreAnimation, forceRedraw) {\n // need update from animations?\n if (!ignoreAnimation) {\n var {\n frameDuration\n } = this;\n var shouldUpdate = this.animations.reduce((shouldUpdate, animation) => animation.update(frameDuration) || shouldUpdate, false);\n\n if (shouldUpdate) {\n return true;\n }\n } // need update from redraw?\n\n\n if (typeof forceRedraw === 'function' && forceRedraw()) {\n return true;\n }\n\n if (!this.isReadyLock && this.isReady()) {\n return true;\n } // need update from mouse events?\n\n\n if (this.mouse.hasEvents()) {\n return true;\n }\n\n return false;\n }\n\n render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY) {\n var {\n CLIENT_WIDTH,\n CLIENT_HEIGHT,\n viewPort,\n ctx,\n isFirstRender\n } = this;\n var canvas = ctx.canvas;\n viewPort.clear();\n\n if (canvas.width && canvas.height) {\n viewPort.setCurrent(canvas.width, canvas.height);\n } else {\n viewPort.setCurrent(CLIENT_WIDTH, CLIENT_HEIGHT);\n }\n\n var widthStyle = element.getStyle('width');\n var heightStyle = element.getStyle('height');\n\n if (!ignoreDimensions && (isFirstRender || typeof scaleWidth !== 'number' && typeof scaleHeight !== 'number')) {\n // set canvas size\n if (widthStyle.hasValue()) {\n canvas.width = widthStyle.getPixels('x');\n\n if (canvas.style) {\n canvas.style.width = \"\".concat(canvas.width, \"px\");\n }\n }\n\n if (heightStyle.hasValue()) {\n canvas.height = heightStyle.getPixels('y');\n\n if (canvas.style) {\n canvas.style.height = \"\".concat(canvas.height, \"px\");\n }\n }\n }\n\n var cWidth = canvas.clientWidth || canvas.width;\n var cHeight = canvas.clientHeight || canvas.height;\n\n if (ignoreDimensions && widthStyle.hasValue() && heightStyle.hasValue()) {\n cWidth = widthStyle.getPixels('x');\n cHeight = heightStyle.getPixels('y');\n }\n\n viewPort.setCurrent(cWidth, cHeight);\n\n if (typeof offsetX === 'number') {\n element.getAttribute('x', true).setValue(offsetX);\n }\n\n if (typeof offsetY === 'number') {\n element.getAttribute('y', true).setValue(offsetY);\n }\n\n if (typeof scaleWidth === 'number' || typeof scaleHeight === 'number') {\n var viewBox = toNumbers(element.getAttribute('viewBox').getString());\n var xRatio = 0;\n var yRatio = 0;\n\n if (typeof scaleWidth === 'number') {\n var _widthStyle = element.getStyle('width');\n\n if (_widthStyle.hasValue()) {\n xRatio = _widthStyle.getPixels('x') / scaleWidth;\n } else if (!isNaN(viewBox[2])) {\n xRatio = viewBox[2] / scaleWidth;\n }\n }\n\n if (typeof scaleHeight === 'number') {\n var _heightStyle = element.getStyle('height');\n\n if (_heightStyle.hasValue()) {\n yRatio = _heightStyle.getPixels('y') / scaleHeight;\n } else if (!isNaN(viewBox[3])) {\n yRatio = viewBox[3] / scaleHeight;\n }\n }\n\n if (!xRatio) {\n xRatio = yRatio;\n }\n\n if (!yRatio) {\n yRatio = xRatio;\n }\n\n element.getAttribute('width', true).setValue(scaleWidth);\n element.getAttribute('height', true).setValue(scaleHeight);\n var transformStyle = element.getStyle('transform', true, true);\n transformStyle.setValue(\"\".concat(transformStyle.getString(), \" scale(\").concat(1.0 / xRatio, \", \").concat(1.0 / yRatio, \")\"));\n } // clear and render\n\n\n if (!ignoreClear) {\n ctx.clearRect(0, 0, cWidth, cHeight);\n }\n\n element.render(ctx);\n\n if (isFirstRender) {\n this.isFirstRender = false;\n }\n }\n\n}\nScreen.defaultWindow = defaultWindow;\nScreen.defaultFetch = defaultFetch$1;\n\nvar {\n defaultFetch\n} = Screen;\nvar DefaultDOMParser = typeof DOMParser !== 'undefined' ? DOMParser : null;\nclass Parser {\n constructor() {\n var {\n fetch = defaultFetch,\n DOMParser = DefaultDOMParser\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.fetch = fetch;\n this.DOMParser = DOMParser;\n }\n\n parse(resource) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n if (resource.startsWith('<')) {\n return _this.parseFromString(resource);\n }\n\n return _this.load(resource);\n })();\n }\n\n parseFromString(xml) {\n var parser = new this.DOMParser();\n\n try {\n return this.checkDocument(parser.parseFromString(xml, 'image/svg+xml'));\n } catch (err) {\n return this.checkDocument(parser.parseFromString(xml, 'text/xml'));\n }\n }\n\n checkDocument(document) {\n var parserError = document.getElementsByTagName('parsererror')[0];\n\n if (parserError) {\n throw new Error(parserError.textContent);\n }\n\n return document;\n }\n\n load(url) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var response = yield _this2.fetch(url);\n var xml = yield response.text();\n return _this2.parseFromString(xml);\n })();\n }\n\n}\n\nclass Translate {\n constructor(_, point) {\n this.type = 'translate';\n this.point = null;\n this.point = Point.parse(point);\n }\n\n apply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(x || 0.0, y || 0.0);\n }\n\n unapply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(-1.0 * x || 0.0, -1.0 * y || 0.0);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.point;\n point.applyTransform([1, 0, 0, 1, x || 0.0, y || 0.0]);\n }\n\n}\n\nclass Rotate {\n constructor(document, rotate, transformOrigin) {\n this.type = 'rotate';\n this.angle = null;\n this.originX = null;\n this.originY = null;\n this.cx = 0;\n this.cy = 0;\n var numbers = toNumbers(rotate);\n this.angle = new Property(document, 'angle', numbers[0]);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n this.cx = numbers[1] || 0;\n this.cy = numbers[2] || 0;\n }\n\n apply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(-1.0 * angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n cx,\n cy,\n angle\n } = this;\n var rad = angle.getRadians();\n point.applyTransform([1, 0, 0, 1, cx || 0.0, cy || 0.0 // this.p.y\n ]);\n point.applyTransform([Math.cos(rad), Math.sin(rad), -Math.sin(rad), Math.cos(rad), 0, 0]);\n point.applyTransform([1, 0, 0, 1, -cx || 0.0, -cy || 0.0 // -this.p.y\n ]);\n }\n\n}\n\nclass Scale {\n constructor(_, scale, transformOrigin) {\n this.type = 'scale';\n this.scale = null;\n this.originX = null;\n this.originY = null;\n var scaleSize = Point.parseScale(scale); // Workaround for node-canvas\n\n if (scaleSize.x === 0 || scaleSize.y === 0) {\n scaleSize.x = PSEUDO_ZERO;\n scaleSize.y = PSEUDO_ZERO;\n }\n\n this.scale = scaleSize;\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(x, y || x);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(1.0 / x, 1.0 / y || x);\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.scale;\n point.applyTransform([x || 0.0, 0, 0, y || 0.0, 0, 0]);\n }\n\n}\n\nclass Matrix {\n constructor(_, matrix, transformOrigin) {\n this.type = 'matrix';\n this.matrix = [];\n this.originX = null;\n this.originY = null;\n this.matrix = toNumbers(matrix);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var a = matrix[0];\n var b = matrix[2];\n var c = matrix[4];\n var d = matrix[1];\n var e = matrix[3];\n var f = matrix[5];\n var g = 0.0;\n var h = 0.0;\n var i = 1.0;\n var det = 1 / (a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g));\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(det * (e * i - f * h), det * (f * g - d * i), det * (c * h - b * i), det * (a * i - c * g), det * (b * f - c * e), det * (c * d - a * f));\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n point.applyTransform(this.matrix);\n }\n\n}\n\nclass Skew extends Matrix {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skew';\n this.angle = null;\n this.angle = new Property(document, 'angle', skew);\n }\n\n}\n\nclass SkewX extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewX';\n this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0];\n }\n\n}\n\nclass SkewY extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewY';\n this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0];\n }\n\n}\n\nfunction parseTransforms(transform) {\n return compressSpaces(transform).trim().replace(/\\)([a-zA-Z])/g, ') $1').replace(/\\)(\\s?,\\s?)/g, ') ').split(/\\s(?=[a-z])/);\n}\n\nfunction parseTransform(transform) {\n var [type, value] = transform.split('(');\n return [type.trim(), value.trim().replace(')', '')];\n}\n\nclass Transform {\n constructor(document, transform, transformOrigin) {\n this.document = document;\n this.transforms = [];\n var data = parseTransforms(transform);\n data.forEach(transform => {\n if (transform === 'none') {\n return;\n }\n\n var [type, value] = parseTransform(transform);\n var TransformType = Transform.transformTypes[type];\n\n if (typeof TransformType !== 'undefined') {\n this.transforms.push(new TransformType(this.document, value, transformOrigin));\n }\n });\n }\n\n static fromElement(document, element) {\n var transformStyle = element.getStyle('transform', false, true);\n var [transformOriginXProperty, transformOriginYProperty = transformOriginXProperty] = element.getStyle('transform-origin', false, true).split();\n var transformOrigin = [transformOriginXProperty, transformOriginYProperty];\n\n if (transformStyle.hasValue()) {\n return new Transform(document, transformStyle.getString(), transformOrigin);\n }\n\n return null;\n }\n\n apply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].apply(ctx);\n }\n }\n\n unapply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = len - 1; i >= 0; i--) {\n transforms[i].unapply(ctx);\n }\n } // TODO: applyToPoint unused ... remove?\n\n\n applyToPoint(point) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].applyToPoint(point);\n }\n }\n\n}\nTransform.transformTypes = {\n translate: Translate,\n rotate: Rotate,\n scale: Scale,\n matrix: Matrix,\n skewX: SkewX,\n skewY: SkewY\n};\n\nclass Element {\n constructor(document, node) {\n var captureTextNodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.document = document;\n this.node = node;\n this.captureTextNodes = captureTextNodes;\n this.attributes = {};\n this.styles = {};\n this.stylesSpecificity = {};\n this.animationFrozen = false;\n this.animationFrozenValue = '';\n this.parent = null;\n this.children = [];\n\n if (!node || node.nodeType !== 1) {\n // ELEMENT_NODE\n return;\n } // add attributes\n\n\n Array.from(node.attributes).forEach(attribute => {\n var nodeName = normalizeAttributeName(attribute.nodeName);\n this.attributes[nodeName] = new Property(document, nodeName, attribute.value);\n });\n this.addStylesFromStyleDefinition(); // add inline styles\n\n if (this.getAttribute('style').hasValue()) {\n var styles = this.getAttribute('style').getString().split(';').map(_ => _.trim());\n styles.forEach(style => {\n if (!style) {\n return;\n }\n\n var [name, value] = style.split(':').map(_ => _.trim());\n this.styles[name] = new Property(document, name, value);\n });\n }\n\n var {\n definitions\n } = document;\n var id = this.getAttribute('id'); // add id\n\n if (id.hasValue()) {\n if (!definitions[id.getString()]) {\n definitions[id.getString()] = this;\n }\n }\n\n Array.from(node.childNodes).forEach(childNode => {\n if (childNode.nodeType === 1) {\n this.addChild(childNode); // ELEMENT_NODE\n } else if (captureTextNodes && (childNode.nodeType === 3 || childNode.nodeType === 4)) {\n var textNode = document.createTextNode(childNode);\n\n if (textNode.getText().length > 0) {\n this.addChild(textNode); // TEXT_NODE\n }\n }\n });\n }\n\n getAttribute(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var attr = this.attributes[name];\n\n if (!attr && createIfNotExists) {\n var _attr = new Property(this.document, name, '');\n\n this.attributes[name] = _attr;\n return _attr;\n }\n\n return attr || Property.empty(this.document);\n }\n\n getHrefAttribute() {\n for (var key in this.attributes) {\n if (key === 'href' || key.endsWith(':href')) {\n return this.attributes[key];\n }\n }\n\n return Property.empty(this.document);\n }\n\n getStyle(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var skipAncestors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var style = this.styles[name];\n\n if (style) {\n return style;\n }\n\n var attr = this.getAttribute(name);\n\n if (attr !== null && attr !== void 0 && attr.hasValue()) {\n this.styles[name] = attr; // move up to me to cache\n\n return attr;\n }\n\n if (!skipAncestors) {\n var {\n parent\n } = this;\n\n if (parent) {\n var parentStyle = parent.getStyle(name);\n\n if (parentStyle !== null && parentStyle !== void 0 && parentStyle.hasValue()) {\n return parentStyle;\n }\n }\n }\n\n if (createIfNotExists) {\n var _style = new Property(this.document, name, '');\n\n this.styles[name] = _style;\n return _style;\n }\n\n return style || Property.empty(this.document);\n }\n\n render(ctx) {\n // don't render display=none\n // don't render visibility=hidden\n if (this.getStyle('display').getString() === 'none' || this.getStyle('visibility').getString() === 'hidden') {\n return;\n }\n\n ctx.save();\n\n if (this.getStyle('mask').hasValue()) {\n // mask\n var mask = this.getStyle('mask').getDefinition();\n\n if (mask) {\n this.applyEffects(ctx);\n mask.apply(ctx, this);\n }\n } else if (this.getStyle('filter').getValue('none') !== 'none') {\n // filter\n var filter = this.getStyle('filter').getDefinition();\n\n if (filter) {\n this.applyEffects(ctx);\n filter.apply(ctx, this);\n }\n } else {\n this.setContext(ctx);\n this.renderChildren(ctx);\n this.clearContext(ctx);\n }\n\n ctx.restore();\n }\n\n setContext(_) {// NO RENDER\n }\n\n applyEffects(ctx) {\n // transform\n var transform = Transform.fromElement(this.document, this);\n\n if (transform) {\n transform.apply(ctx);\n } // clip\n\n\n var clipPathStyleProp = this.getStyle('clip-path', false, true);\n\n if (clipPathStyleProp.hasValue()) {\n var clip = clipPathStyleProp.getDefinition();\n\n if (clip) {\n clip.apply(ctx);\n }\n }\n }\n\n clearContext(_) {// NO RENDER\n }\n\n renderChildren(ctx) {\n this.children.forEach(child => {\n child.render(ctx);\n });\n }\n\n addChild(childNode) {\n var child = childNode instanceof Element ? childNode : this.document.createElement(childNode);\n child.parent = this;\n\n if (!Element.ignoreChildTypes.includes(child.type)) {\n this.children.push(child);\n }\n }\n\n matchesSelector(selector) {\n var _node$getAttribute;\n\n var {\n node\n } = this;\n\n if (typeof node.matches === 'function') {\n return node.matches(selector);\n }\n\n var styleClasses = (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'class');\n\n if (!styleClasses || styleClasses === '') {\n return false;\n }\n\n return styleClasses.split(' ').some(styleClass => \".\".concat(styleClass) === selector);\n }\n\n addStylesFromStyleDefinition() {\n var {\n styles,\n stylesSpecificity\n } = this.document;\n\n for (var selector in styles) {\n if (!selector.startsWith('@') && this.matchesSelector(selector)) {\n var style = styles[selector];\n var specificity = stylesSpecificity[selector];\n\n if (style) {\n for (var name in style) {\n var existingSpecificity = this.stylesSpecificity[name];\n\n if (typeof existingSpecificity === 'undefined') {\n existingSpecificity = '000';\n }\n\n if (specificity >= existingSpecificity) {\n this.styles[name] = style[name];\n this.stylesSpecificity[name] = specificity;\n }\n }\n }\n }\n }\n }\n\n removeStyles(element, ignoreStyles) {\n var toRestore = ignoreStyles.reduce((toRestore, name) => {\n var styleProp = element.getStyle(name);\n\n if (!styleProp.hasValue()) {\n return toRestore;\n }\n\n var value = styleProp.getString();\n styleProp.setValue('');\n return [...toRestore, [name, value]];\n }, []);\n return toRestore;\n }\n\n restoreStyles(element, styles) {\n styles.forEach(_ref => {\n var [name, value] = _ref;\n element.getStyle(name, true).setValue(value);\n });\n }\n\n isFirstChild() {\n var _this$parent;\n\n return ((_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.children.indexOf(this)) === 0;\n }\n\n}\nElement.ignoreChildTypes = ['title'];\n\nclass UnknownElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n }\n\n}\n\nfunction wrapFontFamily(fontFamily) {\n var trimmed = fontFamily.trim();\n return /^('|\")/.test(trimmed) ? trimmed : \"\\\"\".concat(trimmed, \"\\\"\");\n}\n\nfunction prepareFontFamily(fontFamily) {\n return typeof process === 'undefined' ? fontFamily : fontFamily.trim().split(',').map(wrapFontFamily).join(',');\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\r\n * @param fontStyle\r\n * @returns CSS font style.\r\n */\n\n\nfunction prepareFontStyle(fontStyle) {\n if (!fontStyle) {\n return '';\n }\n\n var targetFontStyle = fontStyle.trim().toLowerCase();\n\n switch (targetFontStyle) {\n case 'normal':\n case 'italic':\n case 'oblique':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontStyle;\n\n default:\n if (/^oblique\\s+(-|)\\d+deg$/.test(targetFontStyle)) {\n return targetFontStyle;\n }\n\n return '';\n }\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\r\n * @param fontWeight\r\n * @returns CSS font weight.\r\n */\n\n\nfunction prepareFontWeight(fontWeight) {\n if (!fontWeight) {\n return '';\n }\n\n var targetFontWeight = fontWeight.trim().toLowerCase();\n\n switch (targetFontWeight) {\n case 'normal':\n case 'bold':\n case 'lighter':\n case 'bolder':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontWeight;\n\n default:\n if (/^[\\d.]+$/.test(targetFontWeight)) {\n return targetFontWeight;\n }\n\n return '';\n }\n}\n\nclass Font {\n constructor(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {\n var inheritFont = inherit ? typeof inherit === 'string' ? Font.parse(inherit) : inherit : {};\n this.fontFamily = fontFamily || inheritFont.fontFamily;\n this.fontSize = fontSize || inheritFont.fontSize;\n this.fontStyle = fontStyle || inheritFont.fontStyle;\n this.fontWeight = fontWeight || inheritFont.fontWeight;\n this.fontVariant = fontVariant || inheritFont.fontVariant;\n }\n\n static parse() {\n var font = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var inherit = arguments.length > 1 ? arguments[1] : undefined;\n var fontStyle = '';\n var fontVariant = '';\n var fontWeight = '';\n var fontSize = '';\n var fontFamily = '';\n var parts = compressSpaces(font).trim().split(' ');\n var set = {\n fontSize: false,\n fontStyle: false,\n fontWeight: false,\n fontVariant: false\n };\n parts.forEach(part => {\n switch (true) {\n case !set.fontStyle && Font.styles.includes(part):\n if (part !== 'inherit') {\n fontStyle = part;\n }\n\n set.fontStyle = true;\n break;\n\n case !set.fontVariant && Font.variants.includes(part):\n if (part !== 'inherit') {\n fontVariant = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n break;\n\n case !set.fontWeight && Font.weights.includes(part):\n if (part !== 'inherit') {\n fontWeight = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n break;\n\n case !set.fontSize:\n if (part !== 'inherit') {\n [fontSize] = part.split('/');\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n set.fontSize = true;\n break;\n\n default:\n if (part !== 'inherit') {\n fontFamily += part;\n }\n\n }\n });\n return new Font(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit);\n }\n\n toString() {\n return [prepareFontStyle(this.fontStyle), this.fontVariant, prepareFontWeight(this.fontWeight), this.fontSize, // Wrap fontFamily only on nodejs and only for canvas.ctx\n prepareFontFamily(this.fontFamily)].join(' ').trim();\n }\n\n}\nFont.styles = 'normal|italic|oblique|inherit';\nFont.variants = 'normal|small-caps|inherit';\nFont.weights = 'normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit';\n\nclass BoundingBox {\n constructor() {\n var x1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.NaN;\n var y1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.NaN;\n var x2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Number.NaN;\n var y2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Number.NaN;\n this.x1 = x1;\n this.y1 = y1;\n this.x2 = x2;\n this.y2 = y2;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n get x() {\n return this.x1;\n }\n\n get y() {\n return this.y1;\n }\n\n get width() {\n return this.x2 - this.x1;\n }\n\n get height() {\n return this.y2 - this.y1;\n }\n\n addPoint(x, y) {\n if (typeof x !== 'undefined') {\n if (isNaN(this.x1) || isNaN(this.x2)) {\n this.x1 = x;\n this.x2 = x;\n }\n\n if (x < this.x1) {\n this.x1 = x;\n }\n\n if (x > this.x2) {\n this.x2 = x;\n }\n }\n\n if (typeof y !== 'undefined') {\n if (isNaN(this.y1) || isNaN(this.y2)) {\n this.y1 = y;\n this.y2 = y;\n }\n\n if (y < this.y1) {\n this.y1 = y;\n }\n\n if (y > this.y2) {\n this.y2 = y;\n }\n }\n }\n\n addX(x) {\n this.addPoint(x, null);\n }\n\n addY(y) {\n this.addPoint(null, y);\n }\n\n addBoundingBox(boundingBox) {\n if (!boundingBox) {\n return;\n }\n\n var {\n x1,\n y1,\n x2,\n y2\n } = boundingBox;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n sumCubic(t, p0, p1, p2, p3) {\n return Math.pow(1 - t, 3) * p0 + 3 * Math.pow(1 - t, 2) * t * p1 + 3 * (1 - t) * Math.pow(t, 2) * p2 + Math.pow(t, 3) * p3;\n }\n\n bezierCurveAdd(forX, p0, p1, p2, p3) {\n var b = 6 * p0 - 12 * p1 + 6 * p2;\n var a = -3 * p0 + 9 * p1 - 9 * p2 + 3 * p3;\n var c = 3 * p1 - 3 * p0;\n\n if (a === 0) {\n if (b === 0) {\n return;\n }\n\n var t = -c / b;\n\n if (0 < t && t < 1) {\n if (forX) {\n this.addX(this.sumCubic(t, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t, p0, p1, p2, p3));\n }\n }\n\n return;\n }\n\n var b2ac = Math.pow(b, 2) - 4 * c * a;\n\n if (b2ac < 0) {\n return;\n }\n\n var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t1, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t1, p0, p1, p2, p3));\n }\n }\n\n var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t2, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t2, p0, p1, p2, p3));\n }\n }\n } // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n\n\n addBezierCurve(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {\n this.addPoint(p0x, p0y);\n this.addPoint(p3x, p3y);\n this.bezierCurveAdd(true, p0x, p1x, p2x, p3x);\n this.bezierCurveAdd(false, p0y, p1y, p2y, p3y);\n }\n\n addQuadraticCurve(p0x, p0y, p1x, p1y, p2x, p2y) {\n var cp1x = p0x + 2 / 3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp1y = p0y + 2 / 3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp2x = cp1x + 1 / 3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n var cp2y = cp1y + 1 / 3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y, cp2y, p2x, p2y);\n }\n\n isPointInBox(x, y) {\n var {\n x1,\n y1,\n x2,\n y2\n } = this;\n return x1 <= x && x <= x2 && y1 <= y && y <= y2;\n }\n\n}\n\nclass PathParser extends SVGPathData {\n constructor(path) {\n super(path // Fix spaces after signs.\n .replace(/([+\\-.])\\s+/gm, '$1') // Remove invalid part.\n .replace(/[^MmZzLlHhVvCcSsQqTtAae\\d\\s.,+-].*/g, ''));\n this.control = null;\n this.start = null;\n this.current = null;\n this.command = null;\n this.commands = this.commands;\n this.i = -1;\n this.previousCommand = null;\n this.points = [];\n this.angles = [];\n }\n\n reset() {\n this.i = -1;\n this.command = null;\n this.previousCommand = null;\n this.start = new Point(0, 0);\n this.control = new Point(0, 0);\n this.current = new Point(0, 0);\n this.points = [];\n this.angles = [];\n }\n\n isEnd() {\n var {\n i,\n commands\n } = this;\n return i >= commands.length - 1;\n }\n\n next() {\n var command = this.commands[++this.i];\n this.previousCommand = this.command;\n this.command = command;\n return command;\n }\n\n getPoint() {\n var xProp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'x';\n var yProp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'y';\n var point = new Point(this.command[xProp], this.command[yProp]);\n return this.makeAbsolute(point);\n }\n\n getAsControlPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.control = point;\n return point;\n }\n\n getAsCurrentPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.current = point;\n return point;\n }\n\n getReflectedControlPoint() {\n var previousCommand = this.previousCommand.type;\n\n if (previousCommand !== SVGPathData.CURVE_TO && previousCommand !== SVGPathData.SMOOTH_CURVE_TO && previousCommand !== SVGPathData.QUAD_TO && previousCommand !== SVGPathData.SMOOTH_QUAD_TO) {\n return this.current;\n } // reflect point\n\n\n var {\n current: {\n x: cx,\n y: cy\n },\n control: {\n x: ox,\n y: oy\n }\n } = this;\n var point = new Point(2 * cx - ox, 2 * cy - oy);\n return point;\n }\n\n makeAbsolute(point) {\n if (this.command.relative) {\n var {\n x,\n y\n } = this.current;\n point.x += x;\n point.y += y;\n }\n\n return point;\n }\n\n addMarker(point, from, priorTo) {\n var {\n points,\n angles\n } = this; // if the last angle isn't filled in because we didn't have this point yet ...\n\n if (priorTo && angles.length > 0 && !angles[angles.length - 1]) {\n angles[angles.length - 1] = points[points.length - 1].angleTo(priorTo);\n }\n\n this.addMarkerAngle(point, from ? from.angleTo(point) : null);\n }\n\n addMarkerAngle(point, angle) {\n this.points.push(point);\n this.angles.push(angle);\n }\n\n getMarkerPoints() {\n return this.points;\n }\n\n getMarkerAngles() {\n var {\n angles\n } = this;\n var len = angles.length;\n\n for (var i = 0; i < len; i++) {\n if (!angles[i]) {\n for (var j = i + 1; j < len; j++) {\n if (angles[j]) {\n angles[i] = angles[j];\n break;\n }\n }\n }\n }\n\n return angles;\n }\n\n}\n\nclass RenderedElement extends Element {\n constructor() {\n super(...arguments);\n this.modifiedEmSizeStack = false;\n }\n\n calculateOpacity() {\n var opacity = 1.0; // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n\n var element = this;\n\n while (element) {\n var opacityStyle = element.getStyle('opacity', false, true); // no ancestors on style call\n\n if (opacityStyle.hasValue(true)) {\n opacity *= opacityStyle.getNumber();\n }\n\n element = element.parent;\n }\n\n return opacity;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!fromMeasure) {\n // causes stack overflow when measuring text with gradients\n // fill\n var fillStyleProp = this.getStyle('fill');\n var fillOpacityStyleProp = this.getStyle('fill-opacity');\n var strokeStyleProp = this.getStyle('stroke');\n var strokeOpacityProp = this.getStyle('stroke-opacity');\n\n if (fillStyleProp.isUrlDefinition()) {\n var fillStyle = fillStyleProp.getFillStyleDefinition(this, fillOpacityStyleProp);\n\n if (fillStyle) {\n ctx.fillStyle = fillStyle;\n }\n } else if (fillStyleProp.hasValue()) {\n if (fillStyleProp.getString() === 'currentColor') {\n fillStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _fillStyle = fillStyleProp.getColor();\n\n if (_fillStyle !== 'inherit') {\n ctx.fillStyle = _fillStyle === 'none' ? 'rgba(0,0,0,0)' : _fillStyle;\n }\n }\n\n if (fillOpacityStyleProp.hasValue()) {\n var _fillStyle2 = new Property(this.document, 'fill', ctx.fillStyle).addOpacity(fillOpacityStyleProp).getColor();\n\n ctx.fillStyle = _fillStyle2;\n } // stroke\n\n\n if (strokeStyleProp.isUrlDefinition()) {\n var strokeStyle = strokeStyleProp.getFillStyleDefinition(this, strokeOpacityProp);\n\n if (strokeStyle) {\n ctx.strokeStyle = strokeStyle;\n }\n } else if (strokeStyleProp.hasValue()) {\n if (strokeStyleProp.getString() === 'currentColor') {\n strokeStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _strokeStyle = strokeStyleProp.getString();\n\n if (_strokeStyle !== 'inherit') {\n ctx.strokeStyle = _strokeStyle === 'none' ? 'rgba(0,0,0,0)' : _strokeStyle;\n }\n }\n\n if (strokeOpacityProp.hasValue()) {\n var _strokeStyle2 = new Property(this.document, 'stroke', ctx.strokeStyle).addOpacity(strokeOpacityProp).getString();\n\n ctx.strokeStyle = _strokeStyle2;\n }\n\n var strokeWidthStyleProp = this.getStyle('stroke-width');\n\n if (strokeWidthStyleProp.hasValue()) {\n var newLineWidth = strokeWidthStyleProp.getPixels();\n ctx.lineWidth = !newLineWidth ? PSEUDO_ZERO // browsers don't respect 0 (or node-canvas? :-)\n : newLineWidth;\n }\n\n var strokeLinecapStyleProp = this.getStyle('stroke-linecap');\n var strokeLinejoinStyleProp = this.getStyle('stroke-linejoin');\n var strokeMiterlimitProp = this.getStyle('stroke-miterlimit'); // NEED TEST\n // const pointOrderStyleProp = this.getStyle('paint-order');\n\n var strokeDasharrayStyleProp = this.getStyle('stroke-dasharray');\n var strokeDashoffsetProp = this.getStyle('stroke-dashoffset');\n\n if (strokeLinecapStyleProp.hasValue()) {\n ctx.lineCap = strokeLinecapStyleProp.getString();\n }\n\n if (strokeLinejoinStyleProp.hasValue()) {\n ctx.lineJoin = strokeLinejoinStyleProp.getString();\n }\n\n if (strokeMiterlimitProp.hasValue()) {\n ctx.miterLimit = strokeMiterlimitProp.getNumber();\n } // NEED TEST\n // if (pointOrderStyleProp.hasValue()) {\n // \t// ?\n // \tctx.paintOrder = pointOrderStyleProp.getValue();\n // }\n\n\n if (strokeDasharrayStyleProp.hasValue() && strokeDasharrayStyleProp.getString() !== 'none') {\n var gaps = toNumbers(strokeDasharrayStyleProp.getString());\n\n if (typeof ctx.setLineDash !== 'undefined') {\n ctx.setLineDash(gaps);\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDash !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDash = gaps;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDash !== 'undefined' && !(gaps.length === 1 && gaps[0] === 0)) {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDash = gaps;\n }\n\n var offset = strokeDashoffsetProp.getPixels();\n\n if (typeof ctx.lineDashOffset !== 'undefined') {\n ctx.lineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDashOffset = offset;\n }\n }\n } // font\n\n\n this.modifiedEmSizeStack = false;\n\n if (typeof ctx.font !== 'undefined') {\n var fontStyleProp = this.getStyle('font');\n var fontStyleStyleProp = this.getStyle('font-style');\n var fontVariantStyleProp = this.getStyle('font-variant');\n var fontWeightStyleProp = this.getStyle('font-weight');\n var fontSizeStyleProp = this.getStyle('font-size');\n var fontFamilyStyleProp = this.getStyle('font-family');\n var font = new Font(fontStyleStyleProp.getString(), fontVariantStyleProp.getString(), fontWeightStyleProp.getString(), fontSizeStyleProp.hasValue() ? \"\".concat(fontSizeStyleProp.getPixels(true), \"px\") : '', fontFamilyStyleProp.getString(), Font.parse(fontStyleProp.getString(), ctx.font));\n fontStyleStyleProp.setValue(font.fontStyle);\n fontVariantStyleProp.setValue(font.fontVariant);\n fontWeightStyleProp.setValue(font.fontWeight);\n fontSizeStyleProp.setValue(font.fontSize);\n fontFamilyStyleProp.setValue(font.fontFamily);\n ctx.font = font.toString();\n\n if (fontSizeStyleProp.isPixels()) {\n this.document.emSize = fontSizeStyleProp.getPixels();\n this.modifiedEmSizeStack = true;\n }\n }\n\n if (!fromMeasure) {\n // effects\n this.applyEffects(ctx); // opacity\n\n ctx.globalAlpha = this.calculateOpacity();\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n\n if (this.modifiedEmSizeStack) {\n this.document.popEmSize();\n }\n }\n\n}\n\nclass PathElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'path';\n this.pathParser = null;\n this.pathParser = new PathParser(this.getAttribute('d').getString());\n }\n\n path(ctx) {\n var {\n pathParser\n } = this;\n var boundingBox = new BoundingBox();\n pathParser.reset();\n\n if (ctx) {\n ctx.beginPath();\n }\n\n while (!pathParser.isEnd()) {\n switch (pathParser.next().type) {\n case PathParser.MOVE_TO:\n this.pathM(ctx, boundingBox);\n break;\n\n case PathParser.LINE_TO:\n this.pathL(ctx, boundingBox);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n this.pathH(ctx, boundingBox);\n break;\n\n case PathParser.VERT_LINE_TO:\n this.pathV(ctx, boundingBox);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n this.pathS(ctx, boundingBox);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n this.pathT(ctx, boundingBox);\n break;\n\n case PathParser.ARC:\n this.pathA(ctx, boundingBox);\n break;\n\n case PathParser.CLOSE_PATH:\n this.pathZ(ctx, boundingBox);\n break;\n }\n }\n\n return boundingBox;\n }\n\n getBoundingBox(_) {\n return this.path();\n }\n\n getMarkers() {\n var {\n pathParser\n } = this;\n var points = pathParser.getMarkerPoints();\n var angles = pathParser.getMarkerAngles();\n var markers = points.map((point, i) => [point, angles[i]]);\n return markers;\n }\n\n renderChildren(ctx) {\n this.path(ctx);\n this.document.screen.mouse.checkPath(this, ctx);\n var fillRuleStyleProp = this.getStyle('fill-rule');\n\n if (ctx.fillStyle !== '') {\n if (fillRuleStyleProp.getString('inherit') !== 'inherit') {\n ctx.fill(fillRuleStyleProp.getString());\n } else {\n ctx.fill();\n }\n }\n\n if (ctx.strokeStyle !== '') {\n if (this.getAttribute('vector-effect').getString() === 'non-scaling-stroke') {\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.stroke();\n }\n }\n\n var markers = this.getMarkers();\n\n if (markers) {\n var markersLastIndex = markers.length - 1;\n var markerStartStyleProp = this.getStyle('marker-start');\n var markerMidStyleProp = this.getStyle('marker-mid');\n var markerEndStyleProp = this.getStyle('marker-end');\n\n if (markerStartStyleProp.isUrlDefinition()) {\n var marker = markerStartStyleProp.getDefinition();\n var [point, angle] = markers[0];\n marker.render(ctx, point, angle);\n }\n\n if (markerMidStyleProp.isUrlDefinition()) {\n var _marker = markerMidStyleProp.getDefinition();\n\n for (var i = 1; i < markersLastIndex; i++) {\n var [_point, _angle] = markers[i];\n\n _marker.render(ctx, _point, _angle);\n }\n }\n\n if (markerEndStyleProp.isUrlDefinition()) {\n var _marker2 = markerEndStyleProp.getDefinition();\n\n var [_point2, _angle2] = markers[markersLastIndex];\n\n _marker2.render(ctx, _point2, _angle2);\n }\n }\n }\n\n static pathM(pathParser) {\n var point = pathParser.getAsCurrentPoint();\n pathParser.start = pathParser.current;\n return {\n point\n };\n }\n\n pathM(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n point\n } = PathElement.pathM(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.moveTo(x, y);\n }\n }\n\n static pathL(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getAsCurrentPoint();\n return {\n current,\n point\n };\n }\n\n pathL(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathL(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathH(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point((command.relative ? current.x : 0) + command.x, current.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathH(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathH(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathV(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point(current.x, (command.relative ? current.y : 0) + command.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathV(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathV(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathC(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getPoint('x1', 'y1');\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathC(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathS(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getReflectedControlPoint();\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathS(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathQ(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getAsControlPoint('x1', 'y1');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathQ(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathT(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getReflectedControlPoint();\n pathParser.control = controlPoint;\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathT(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathA(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var {\n rX,\n rY,\n xRot,\n lArcFlag,\n sweepFlag\n } = command;\n var xAxisRotation = xRot * (Math.PI / 180.0);\n var currentPoint = pathParser.getAsCurrentPoint(); // Conversion from endpoint to center parameterization\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n // x1', y1'\n\n var currp = new Point(Math.cos(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.sin(xAxisRotation) * (current.y - currentPoint.y) / 2.0, -Math.sin(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * (current.y - currentPoint.y) / 2.0); // adjust radii\n\n var l = Math.pow(currp.x, 2) / Math.pow(rX, 2) + Math.pow(currp.y, 2) / Math.pow(rY, 2);\n\n if (l > 1) {\n rX *= Math.sqrt(l);\n rY *= Math.sqrt(l);\n } // cx', cy'\n\n\n var s = (lArcFlag === sweepFlag ? -1 : 1) * Math.sqrt((Math.pow(rX, 2) * Math.pow(rY, 2) - Math.pow(rX, 2) * Math.pow(currp.y, 2) - Math.pow(rY, 2) * Math.pow(currp.x, 2)) / (Math.pow(rX, 2) * Math.pow(currp.y, 2) + Math.pow(rY, 2) * Math.pow(currp.x, 2)));\n\n if (isNaN(s)) {\n s = 0;\n }\n\n var cpp = new Point(s * rX * currp.y / rY, s * -rY * currp.x / rX); // cx, cy\n\n var centp = new Point((current.x + currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y, (current.y + currentPoint.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y); // initial angle\n\n var a1 = vectorsAngle([1, 0], [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY]); // θ1\n // angle delta\n\n var u = [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY];\n var v = [(-currp.x - cpp.x) / rX, (-currp.y - cpp.y) / rY];\n var ad = vectorsAngle(u, v); // Δθ\n\n if (vectorsRatio(u, v) <= -1) {\n ad = Math.PI;\n }\n\n if (vectorsRatio(u, v) >= 1) {\n ad = 0;\n }\n\n return {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n };\n }\n\n pathA(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser); // for markers\n\n var dir = 1 - sweepFlag ? 1.0 : -1.0;\n var ah = a1 + dir * (ad / 2.0);\n var halfWay = new Point(centp.x + rX * Math.cos(ah), centp.y + rY * Math.sin(ah));\n pathParser.addMarkerAngle(halfWay, ah - dir * Math.PI / 2);\n pathParser.addMarkerAngle(currentPoint, ah - dir * Math.PI);\n boundingBox.addPoint(currentPoint.x, currentPoint.y); // TODO: this is too naive, make it better\n\n if (ctx && !isNaN(a1) && !isNaN(ad)) {\n var r = rX > rY ? rX : rY;\n var sx = rX > rY ? 1 : rX / rY;\n var sy = rX > rY ? rY / rX : 1;\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, r, a1, a1 + ad, Boolean(1 - sweepFlag));\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n }\n }\n\n static pathZ(pathParser) {\n pathParser.current = pathParser.start;\n }\n\n pathZ(ctx, boundingBox) {\n PathElement.pathZ(this.pathParser);\n\n if (ctx) {\n // only close path if it is not a straight line\n if (boundingBox.x1 !== boundingBox.x2 && boundingBox.y1 !== boundingBox.y2) {\n ctx.closePath();\n }\n }\n }\n\n}\n\nclass GlyphElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'glyph';\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n this.unicode = this.getAttribute('unicode').getString();\n this.arabicForm = this.getAttribute('arabic-form').getString();\n }\n\n}\n\nclass TextElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TextElement ? true : captureTextNodes);\n this.type = 'text';\n this.x = 0;\n this.y = 0;\n this.measureCache = -1;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n super.setContext(ctx, fromMeasure);\n var textBaseline = this.getStyle('dominant-baseline').getTextBaseline() || this.getStyle('alignment-baseline').getTextBaseline();\n\n if (textBaseline) {\n ctx.textBaseline = textBaseline;\n }\n }\n\n initializeCoordinates() {\n this.x = 0;\n this.y = 0;\n this.leafTexts = [];\n this.textChunkStart = 0;\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n }\n\n getBoundingBox(ctx) {\n if (this.type !== 'text') {\n return this.getTElementBoundingBox(ctx);\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx);\n var boundingBox = null; // then calculate bounding box\n\n this.children.forEach((_, i) => {\n var childBoundingBox = this.getChildBoundingBox(ctx, this, this, i);\n\n if (!boundingBox) {\n boundingBox = childBoundingBox;\n } else {\n boundingBox.addBoundingBox(childBoundingBox);\n }\n });\n return boundingBox;\n }\n\n getFontSize() {\n var {\n document,\n parent\n } = this;\n var inheritFontSize = Font.parse(document.ctx.font).fontSize;\n var fontSize = parent.getStyle('font-size').getNumber(inheritFontSize);\n return fontSize;\n }\n\n getTElementBoundingBox(ctx) {\n var fontSize = this.getFontSize();\n return new BoundingBox(this.x, this.y - fontSize, this.x + this.measureText(ctx), this.y);\n }\n\n getGlyph(font, text, i) {\n var char = text[i];\n var glyph = null;\n\n if (font.isArabic) {\n var len = text.length;\n var prevChar = text[i - 1];\n var nextChar = text[i + 1];\n var arabicForm = 'isolated';\n\n if ((i === 0 || prevChar === ' ') && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'terminal';\n }\n\n if (i > 0 && prevChar !== ' ' && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'medial';\n }\n\n if (i > 0 && prevChar !== ' ' && (i === len - 1 || nextChar === ' ')) {\n arabicForm = 'initial';\n }\n\n if (typeof font.glyphs[char] !== 'undefined') {\n // NEED TEST\n var maybeGlyph = font.glyphs[char];\n glyph = maybeGlyph instanceof GlyphElement ? maybeGlyph : maybeGlyph[arabicForm];\n }\n } else {\n glyph = font.glyphs[char];\n }\n\n if (!glyph) {\n glyph = font.missingGlyph;\n }\n\n return glyph;\n }\n\n getText() {\n return '';\n }\n\n getTextFromNode(node) {\n var textNode = node || this.node;\n var childNodes = Array.from(textNode.parentNode.childNodes);\n var index = childNodes.indexOf(textNode);\n var lastIndex = childNodes.length - 1;\n var text = compressSpaces( // textNode.value\n // || textNode.text\n textNode.textContent || '');\n\n if (index === 0) {\n text = trimLeft(text);\n }\n\n if (index === lastIndex) {\n text = trimRight(text);\n }\n\n return text;\n }\n\n renderChildren(ctx) {\n if (this.type !== 'text') {\n this.renderTElementChildren(ctx);\n return;\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx); // then render\n\n this.children.forEach((_, i) => {\n this.renderChild(ctx, this, this, i);\n });\n var {\n mouse\n } = this.document.screen; // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, this.getBoundingBox(ctx));\n }\n }\n\n renderTElementChildren(ctx) {\n var {\n document,\n parent\n } = this;\n var renderText = this.getText();\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var {\n unitsPerEm\n } = customFont.fontFace;\n var ctxFont = Font.parse(document.ctx.font);\n var fontSize = parent.getStyle('font-size').getNumber(ctxFont.fontSize);\n var fontStyle = parent.getStyle('font-style').getString(ctxFont.fontStyle);\n var scale = fontSize / unitsPerEm;\n var text = customFont.isRTL ? renderText.split('').reverse().join('') : renderText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n ctx.translate(this.x, this.y);\n ctx.scale(scale, -scale);\n var lw = ctx.lineWidth;\n ctx.lineWidth = ctx.lineWidth * unitsPerEm / fontSize;\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, .4, 1, 0, 0);\n }\n\n glyph.render(ctx);\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, -.4, 1, 0, 0);\n }\n\n ctx.lineWidth = lw;\n ctx.scale(1 / scale, -1 / scale);\n ctx.translate(-this.x, -this.y);\n this.x += fontSize * (glyph.horizAdvX || customFont.horizAdvX) / unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n this.x += dx[i];\n }\n }\n\n return;\n }\n\n var {\n x,\n y\n } = this; // NEED TEST\n // if (ctx.paintOrder === 'stroke') {\n // \tif (ctx.strokeStyle) {\n // \t\tctx.strokeText(renderText, x, y);\n // \t}\n // \tif (ctx.fillStyle) {\n // \t\tctx.fillText(renderText, x, y);\n // \t}\n // } else {\n\n if (ctx.fillStyle) {\n ctx.fillText(renderText, x, y);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(renderText, x, y);\n } // }\n\n }\n\n applyAnchoring() {\n if (this.textChunkStart >= this.leafTexts.length) {\n return;\n } // This is basically the \"Apply anchoring\" part of https://www.w3.org/TR/SVG2/text.html#TextLayoutAlgorithm.\n // The difference is that we apply the anchoring as soon as a chunk is finished. This saves some extra looping.\n // Vertical text is not supported.\n\n\n var firstElement = this.leafTexts[this.textChunkStart];\n var textAnchor = firstElement.getStyle('text-anchor').getString('start');\n var isRTL = false; // we treat RTL like LTR\n\n var shift = 0;\n\n if (textAnchor === 'start' && !isRTL || textAnchor === 'end' && isRTL) {\n shift = firstElement.x - this.minX;\n } else if (textAnchor === 'end' && !isRTL || textAnchor === 'start' && isRTL) {\n shift = firstElement.x - this.maxX;\n } else {\n shift = firstElement.x - (this.minX + this.maxX) / 2;\n }\n\n for (var i = this.textChunkStart; i < this.leafTexts.length; i++) {\n this.leafTexts[i].x += shift;\n } // start new chunk\n\n\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n this.textChunkStart = this.leafTexts.length;\n }\n\n adjustChildCoordinatesRecursive(ctx) {\n this.children.forEach((_, i) => {\n this.adjustChildCoordinatesRecursiveCore(ctx, this, this, i);\n });\n this.applyAnchoring();\n }\n\n adjustChildCoordinatesRecursiveCore(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (child.children.length > 0) {\n child.children.forEach((_, i) => {\n textParent.adjustChildCoordinatesRecursiveCore(ctx, textParent, child, i);\n });\n } else {\n // only leafs are relevant\n this.adjustChildCoordinates(ctx, textParent, parent, i);\n }\n }\n\n adjustChildCoordinates(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (typeof child.measureText !== 'function') {\n return child;\n }\n\n ctx.save();\n child.setContext(ctx, true);\n var xAttr = child.getAttribute('x');\n var yAttr = child.getAttribute('y');\n var dxAttr = child.getAttribute('dx');\n var dyAttr = child.getAttribute('dy');\n var customFont = child.getStyle('font-family').getDefinition();\n var isRTL = Boolean(customFont) && customFont.isRTL;\n\n if (i === 0) {\n // First children inherit attributes from parent(s). Positional attributes\n // are only inherited from a parent to it's first child.\n if (!xAttr.hasValue()) {\n xAttr.setValue(child.getInheritedAttribute('x'));\n }\n\n if (!yAttr.hasValue()) {\n yAttr.setValue(child.getInheritedAttribute('y'));\n }\n\n if (!dxAttr.hasValue()) {\n dxAttr.setValue(child.getInheritedAttribute('dx'));\n }\n\n if (!dyAttr.hasValue()) {\n dyAttr.setValue(child.getInheritedAttribute('dy'));\n }\n }\n\n var width = child.measureText(ctx);\n\n if (isRTL) {\n textParent.x -= width;\n }\n\n if (xAttr.hasValue()) {\n // an \"x\" attribute marks the start of a new chunk\n textParent.applyAnchoring();\n child.x = xAttr.getPixels('x');\n\n if (dxAttr.hasValue()) {\n child.x += dxAttr.getPixels('x');\n }\n } else {\n if (dxAttr.hasValue()) {\n textParent.x += dxAttr.getPixels('x');\n }\n\n child.x = textParent.x;\n }\n\n textParent.x = child.x;\n\n if (!isRTL) {\n textParent.x += width;\n }\n\n if (yAttr.hasValue()) {\n child.y = yAttr.getPixels('y');\n\n if (dyAttr.hasValue()) {\n child.y += dyAttr.getPixels('y');\n }\n } else {\n if (dyAttr.hasValue()) {\n textParent.y += dyAttr.getPixels('y');\n }\n\n child.y = textParent.y;\n }\n\n textParent.y = child.y; // update the current chunk and it's bounds\n\n textParent.leafTexts.push(child);\n textParent.minX = Math.min(textParent.minX, child.x, child.x + width);\n textParent.maxX = Math.max(textParent.maxX, child.x, child.x + width);\n child.clearContext(ctx);\n ctx.restore();\n return child;\n }\n\n getChildBoundingBox(ctx, textParent, parent, i) {\n var child = parent.children[i]; // not a text node?\n\n if (typeof child.getBoundingBox !== 'function') {\n return null;\n }\n\n var boundingBox = child.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return null;\n }\n\n child.children.forEach((_, i) => {\n var childBoundingBox = textParent.getChildBoundingBox(ctx, textParent, child, i);\n boundingBox.addBoundingBox(childBoundingBox);\n });\n return boundingBox;\n }\n\n renderChild(ctx, textParent, parent, i) {\n var child = parent.children[i];\n child.render(ctx);\n child.children.forEach((_, i) => {\n textParent.renderChild(ctx, textParent, child, i);\n });\n }\n\n measureText(ctx) {\n var {\n measureCache\n } = this;\n\n if (~measureCache) {\n return measureCache;\n }\n\n var renderText = this.getText();\n var measure = this.measureTargetText(ctx, renderText);\n this.measureCache = measure;\n return measure;\n }\n\n measureTargetText(ctx, targetText) {\n if (!targetText.length) {\n return 0;\n }\n\n var {\n parent\n } = this;\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var fontSize = this.getFontSize();\n var text = customFont.isRTL ? targetText.split('').reverse().join('') : targetText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n var _measure = 0;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n _measure += (glyph.horizAdvX || customFont.horizAdvX) * fontSize / customFont.fontFace.unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n _measure += dx[i];\n }\n }\n\n return _measure;\n }\n\n if (!ctx.measureText) {\n return targetText.length * 10;\n }\n\n ctx.save();\n this.setContext(ctx, true);\n var {\n width: measure\n } = ctx.measureText(targetText);\n this.clearContext(ctx);\n ctx.restore();\n return measure;\n }\n /**\r\n * Inherits positional attributes from {@link TextElement} parent(s). Attributes\r\n * are only inherited from a parent to its first child.\r\n * @param name - The attribute name.\r\n * @returns The attribute value or null.\r\n */\n\n\n getInheritedAttribute(name) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias,consistent-this\n var current = this;\n\n while (current instanceof TextElement && current.isFirstChild()) {\n var parentAttr = current.parent.getAttribute(name);\n\n if (parentAttr.hasValue(true)) {\n return parentAttr.getValue('0');\n }\n\n current = current.parent;\n }\n\n return null;\n }\n\n}\n\nclass TSpanElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TSpanElement ? true : captureTextNodes);\n this.type = 'tspan'; // if this node has children, then they own the text\n\n this.text = this.children.length > 0 ? '' : this.getTextFromNode();\n }\n\n getText() {\n return this.text;\n }\n\n}\n\nclass TextNode extends TSpanElement {\n constructor() {\n super(...arguments);\n this.type = 'textNode';\n }\n\n}\n\nclass SVGElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'svg';\n this.root = false;\n }\n\n setContext(ctx) {\n var _this$node$parentNode;\n\n var {\n document\n } = this;\n var {\n screen,\n window\n } = document;\n var canvas = ctx.canvas;\n screen.setDefaults(ctx);\n\n if (canvas.style && typeof ctx.font !== 'undefined' && window && typeof window.getComputedStyle !== 'undefined') {\n ctx.font = window.getComputedStyle(canvas).getPropertyValue('font');\n var fontSizeProp = new Property(document, 'fontSize', Font.parse(ctx.font).fontSize);\n\n if (fontSizeProp.hasValue()) {\n document.rootEmSize = fontSizeProp.getPixels('y');\n document.emSize = document.rootEmSize;\n }\n } // create new view port\n\n\n if (!this.getAttribute('x').hasValue()) {\n this.getAttribute('x', true).setValue(0);\n }\n\n if (!this.getAttribute('y').hasValue()) {\n this.getAttribute('y', true).setValue(0);\n }\n\n var {\n width,\n height\n } = screen.viewPort;\n\n if (!this.getStyle('width').hasValue()) {\n this.getStyle('width', true).setValue('100%');\n }\n\n if (!this.getStyle('height').hasValue()) {\n this.getStyle('height', true).setValue('100%');\n }\n\n if (!this.getStyle('color').hasValue()) {\n this.getStyle('color', true).setValue('black');\n }\n\n var refXAttr = this.getAttribute('refX');\n var refYAttr = this.getAttribute('refY');\n var viewBoxAttr = this.getAttribute('viewBox');\n var viewBox = viewBoxAttr.hasValue() ? toNumbers(viewBoxAttr.getString()) : null;\n var clip = !this.root && this.getStyle('overflow').getValue('hidden') !== 'visible';\n var minX = 0;\n var minY = 0;\n var clipX = 0;\n var clipY = 0;\n\n if (viewBox) {\n minX = viewBox[0];\n minY = viewBox[1];\n }\n\n if (!this.root) {\n width = this.getStyle('width').getPixels('x');\n height = this.getStyle('height').getPixels('y');\n\n if (this.type === 'marker') {\n clipX = minX;\n clipY = minY;\n minX = 0;\n minY = 0;\n }\n }\n\n screen.viewPort.setCurrent(width, height); // Default value of transform-origin is center only for root SVG elements\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/transform-origin\n\n if (this.node // is not temporary SVGElement\n && (!this.parent || ((_this$node$parentNode = this.node.parentNode) === null || _this$node$parentNode === void 0 ? void 0 : _this$node$parentNode.nodeName) === 'foreignObject') && this.getStyle('transform', false, true).hasValue() && !this.getStyle('transform-origin', false, true).hasValue()) {\n this.getStyle('transform-origin', true, true).setValue('50% 50%');\n }\n\n super.setContext(ctx);\n ctx.translate(this.getAttribute('x').getPixels('x'), this.getAttribute('y').getPixels('y'));\n\n if (viewBox) {\n width = viewBox[2];\n height = viewBox[3];\n }\n\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width: screen.viewPort.width,\n desiredWidth: width,\n height: screen.viewPort.height,\n desiredHeight: height,\n minX,\n minY,\n refX: refXAttr.getValue(),\n refY: refYAttr.getValue(),\n clip,\n clipX,\n clipY\n });\n\n if (viewBox) {\n screen.viewPort.removeCurrent();\n screen.viewPort.setCurrent(width, height);\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n this.document.screen.viewPort.removeCurrent();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var widthAttr = this.getAttribute('width', true);\n var heightAttr = this.getAttribute('height', true);\n var viewBoxAttr = this.getAttribute('viewBox');\n var styleAttr = this.getAttribute('style');\n var originWidth = widthAttr.getNumber(0);\n var originHeight = heightAttr.getNumber(0);\n\n if (preserveAspectRatio) {\n if (typeof preserveAspectRatio === 'string') {\n this.getAttribute('preserveAspectRatio', true).setValue(preserveAspectRatio);\n } else {\n var preserveAspectRatioAttr = this.getAttribute('preserveAspectRatio');\n\n if (preserveAspectRatioAttr.hasValue()) {\n preserveAspectRatioAttr.setValue(preserveAspectRatioAttr.getString().replace(/^\\s*(\\S.*\\S)\\s*$/, '$1'));\n }\n }\n }\n\n widthAttr.setValue(width);\n heightAttr.setValue(height);\n\n if (!viewBoxAttr.hasValue()) {\n viewBoxAttr.setValue(\"0 0 \".concat(originWidth || width, \" \").concat(originHeight || height));\n }\n\n if (styleAttr.hasValue()) {\n var widthStyle = this.getStyle('width');\n var heightStyle = this.getStyle('height');\n\n if (widthStyle.hasValue()) {\n widthStyle.setValue(\"\".concat(width, \"px\"));\n }\n\n if (heightStyle.hasValue()) {\n heightStyle.setValue(\"\".concat(height, \"px\"));\n }\n }\n }\n\n}\n\nclass RectElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'rect';\n }\n\n path(ctx) {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width', false, true).getPixels('x');\n var height = this.getStyle('height', false, true).getPixels('y');\n var rxAttr = this.getAttribute('rx');\n var ryAttr = this.getAttribute('ry');\n var rx = rxAttr.getPixels('x');\n var ry = ryAttr.getPixels('y');\n\n if (rxAttr.hasValue() && !ryAttr.hasValue()) {\n ry = rx;\n }\n\n if (ryAttr.hasValue() && !rxAttr.hasValue()) {\n rx = ry;\n }\n\n rx = Math.min(rx, width / 2.0);\n ry = Math.min(ry, height / 2.0);\n\n if (ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n ctx.beginPath(); // always start the path so we don't fill prior paths\n\n if (height > 0 && width > 0) {\n ctx.moveTo(x + rx, y);\n ctx.lineTo(x + width - rx, y);\n ctx.bezierCurveTo(x + width - rx + KAPPA * rx, y, x + width, y + ry - KAPPA * ry, x + width, y + ry);\n ctx.lineTo(x + width, y + height - ry);\n ctx.bezierCurveTo(x + width, y + height - ry + KAPPA * ry, x + width - rx + KAPPA * rx, y + height, x + width - rx, y + height);\n ctx.lineTo(x + rx, y + height);\n ctx.bezierCurveTo(x + rx - KAPPA * rx, y + height, x, y + height - ry + KAPPA * ry, x, y + height - ry);\n ctx.lineTo(x, y + ry);\n ctx.bezierCurveTo(x, y + ry - KAPPA * ry, x + rx - KAPPA * rx, y, x + rx, y);\n ctx.closePath();\n }\n }\n\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass CircleElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'circle';\n }\n\n path(ctx) {\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n var r = this.getAttribute('r').getPixels();\n\n if (ctx && r > 0) {\n ctx.beginPath();\n ctx.arc(cx, cy, r, 0, Math.PI * 2, false);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - r, cy - r, cx + r, cy + r);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass EllipseElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'ellipse';\n }\n\n path(ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n var rx = this.getAttribute('rx').getPixels('x');\n var ry = this.getAttribute('ry').getPixels('y');\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n\n if (ctx && rx > 0 && ry > 0) {\n ctx.beginPath();\n ctx.moveTo(cx + rx, cy);\n ctx.bezierCurveTo(cx + rx, cy + KAPPA * ry, cx + KAPPA * rx, cy + ry, cx, cy + ry);\n ctx.bezierCurveTo(cx - KAPPA * rx, cy + ry, cx - rx, cy + KAPPA * ry, cx - rx, cy);\n ctx.bezierCurveTo(cx - rx, cy - KAPPA * ry, cx - KAPPA * rx, cy - ry, cx, cy - ry);\n ctx.bezierCurveTo(cx + KAPPA * rx, cy - ry, cx + rx, cy - KAPPA * ry, cx + rx, cy);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - rx, cy - ry, cx + rx, cy + ry);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass LineElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'line';\n }\n\n getPoints() {\n return [new Point(this.getAttribute('x1').getPixels('x'), this.getAttribute('y1').getPixels('y')), new Point(this.getAttribute('x2').getPixels('x'), this.getAttribute('y2').getPixels('y'))];\n }\n\n path(ctx) {\n var [{\n x: x0,\n y: y0\n }, {\n x: x1,\n y: y1\n }] = this.getPoints();\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n ctx.lineTo(x1, y1);\n }\n\n return new BoundingBox(x0, y0, x1, y1);\n }\n\n getMarkers() {\n var [p0, p1] = this.getPoints();\n var a = p0.angleTo(p1);\n return [[p0, a], [p1, a]];\n }\n\n}\n\nclass PolylineElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'polyline';\n this.points = [];\n this.points = Point.parsePath(this.getAttribute('points').getString());\n }\n\n path(ctx) {\n var {\n points\n } = this;\n var [{\n x: x0,\n y: y0\n }] = points;\n var boundingBox = new BoundingBox(x0, y0);\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n }\n\n points.forEach(_ref => {\n var {\n x,\n y\n } = _ref;\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n });\n return boundingBox;\n }\n\n getMarkers() {\n var {\n points\n } = this;\n var lastIndex = points.length - 1;\n var markers = [];\n points.forEach((point, i) => {\n if (i === lastIndex) {\n return;\n }\n\n markers.push([point, point.angleTo(points[i + 1])]);\n });\n\n if (markers.length > 0) {\n markers.push([points[points.length - 1], markers[markers.length - 1][1]]);\n }\n\n return markers;\n }\n\n}\n\nclass PolygonElement extends PolylineElement {\n constructor() {\n super(...arguments);\n this.type = 'polygon';\n }\n\n path(ctx) {\n var boundingBox = super.path(ctx);\n var [{\n x,\n y\n }] = this.points;\n\n if (ctx) {\n ctx.lineTo(x, y);\n ctx.closePath();\n }\n\n return boundingBox;\n }\n\n}\n\nclass PatternElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'pattern';\n }\n\n createPattern(ctx, _, parentOpacityProp) {\n var width = this.getStyle('width').getPixels('x', true);\n var height = this.getStyle('height').getPixels('y', true); // render me using a temporary svg element\n\n var patternSvg = new SVGElement(this.document, null);\n patternSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n patternSvg.attributes.width = new Property(this.document, 'width', \"\".concat(width, \"px\"));\n patternSvg.attributes.height = new Property(this.document, 'height', \"\".concat(height, \"px\"));\n patternSvg.attributes.transform = new Property(this.document, 'transform', this.getAttribute('patternTransform').getValue());\n patternSvg.children = this.children;\n var patternCanvas = this.document.createCanvas(width, height);\n var patternCtx = patternCanvas.getContext('2d');\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue() && yAttr.hasValue()) {\n patternCtx.translate(xAttr.getPixels('x', true), yAttr.getPixels('y', true));\n }\n\n if (parentOpacityProp.hasValue()) {\n this.styles['fill-opacity'] = parentOpacityProp;\n } else {\n Reflect.deleteProperty(this.styles, 'fill-opacity');\n } // render 3x3 grid so when we transform there's no white space on edges\n\n\n for (var x = -1; x <= 1; x++) {\n for (var y = -1; y <= 1; y++) {\n patternCtx.save();\n patternSvg.attributes.x = new Property(this.document, 'x', x * patternCanvas.width);\n patternSvg.attributes.y = new Property(this.document, 'y', y * patternCanvas.height);\n patternSvg.render(patternCtx);\n patternCtx.restore();\n }\n }\n\n var pattern = ctx.createPattern(patternCanvas, 'repeat');\n return pattern;\n }\n\n}\n\nclass MarkerElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'marker';\n }\n\n render(ctx, point, angle) {\n if (!point) {\n return;\n }\n\n var {\n x,\n y\n } = point;\n var orient = this.getAttribute('orient').getString('auto');\n var markerUnits = this.getAttribute('markerUnits').getString('strokeWidth');\n ctx.translate(x, y);\n\n if (orient === 'auto') {\n ctx.rotate(angle);\n }\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(ctx.lineWidth, ctx.lineWidth);\n }\n\n ctx.save(); // render me using a temporary svg element\n\n var markerSvg = new SVGElement(this.document, null);\n markerSvg.type = this.type;\n markerSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n markerSvg.attributes.refX = new Property(this.document, 'refX', this.getAttribute('refX').getValue());\n markerSvg.attributes.refY = new Property(this.document, 'refY', this.getAttribute('refY').getValue());\n markerSvg.attributes.width = new Property(this.document, 'width', this.getAttribute('markerWidth').getValue());\n markerSvg.attributes.height = new Property(this.document, 'height', this.getAttribute('markerHeight').getValue());\n markerSvg.attributes.overflow = new Property(this.document, 'overflow', this.getAttribute('overflow').getValue());\n markerSvg.attributes.fill = new Property(this.document, 'fill', this.getAttribute('fill').getColor('black'));\n markerSvg.attributes.stroke = new Property(this.document, 'stroke', this.getAttribute('stroke').getValue('none'));\n markerSvg.children = this.children;\n markerSvg.render(ctx);\n ctx.restore();\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(1 / ctx.lineWidth, 1 / ctx.lineWidth);\n }\n\n if (orient === 'auto') {\n ctx.rotate(-angle);\n }\n\n ctx.translate(-x, -y);\n }\n\n}\n\nclass DefsElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'defs';\n }\n\n render() {// NOOP\n }\n\n}\n\nclass GElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'g';\n }\n\n getBoundingBox(ctx) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n return boundingBox;\n }\n\n}\n\nclass GradientElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.attributesToInherit = ['gradientUnits'];\n this.stops = [];\n var {\n stops,\n children\n } = this;\n children.forEach(child => {\n if (child.type === 'stop') {\n stops.push(child);\n }\n });\n }\n\n getGradientUnits() {\n return this.getAttribute('gradientUnits').getString('objectBoundingBox');\n }\n\n createGradient(ctx, element, parentOpacityProp) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n var stopsContainer = this;\n\n if (this.getHrefAttribute().hasValue()) {\n stopsContainer = this.getHrefAttribute().getDefinition();\n this.inheritStopContainer(stopsContainer);\n }\n\n var {\n stops\n } = stopsContainer;\n var gradient = this.getGradient(ctx, element);\n\n if (!gradient) {\n return this.addParentOpacity(parentOpacityProp, stops[stops.length - 1].color);\n }\n\n stops.forEach(stop => {\n gradient.addColorStop(stop.offset, this.addParentOpacity(parentOpacityProp, stop.color));\n });\n\n if (this.getAttribute('gradientTransform').hasValue()) {\n // render as transformed pattern on temporary canvas\n var {\n document\n } = this;\n var {\n MAX_VIRTUAL_PIXELS,\n viewPort\n } = document.screen;\n var [rootView] = viewPort.viewPorts;\n var rect = new RectElement(document, null);\n rect.attributes.x = new Property(document, 'x', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.y = new Property(document, 'y', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.width = new Property(document, 'width', MAX_VIRTUAL_PIXELS);\n rect.attributes.height = new Property(document, 'height', MAX_VIRTUAL_PIXELS);\n var group = new GElement(document, null);\n group.attributes.transform = new Property(document, 'transform', this.getAttribute('gradientTransform').getValue());\n group.children = [rect];\n var patternSvg = new SVGElement(document, null);\n patternSvg.attributes.x = new Property(document, 'x', 0);\n patternSvg.attributes.y = new Property(document, 'y', 0);\n patternSvg.attributes.width = new Property(document, 'width', rootView.width);\n patternSvg.attributes.height = new Property(document, 'height', rootView.height);\n patternSvg.children = [group];\n var patternCanvas = document.createCanvas(rootView.width, rootView.height);\n var patternCtx = patternCanvas.getContext('2d');\n patternCtx.fillStyle = gradient;\n patternSvg.render(patternCtx);\n return patternCtx.createPattern(patternCanvas, 'no-repeat');\n }\n\n return gradient;\n }\n\n inheritStopContainer(stopsContainer) {\n this.attributesToInherit.forEach(attributeToInherit => {\n if (!this.getAttribute(attributeToInherit).hasValue() && stopsContainer.getAttribute(attributeToInherit).hasValue()) {\n this.getAttribute(attributeToInherit, true).setValue(stopsContainer.getAttribute(attributeToInherit).getValue());\n }\n });\n }\n\n addParentOpacity(parentOpacityProp, color) {\n if (parentOpacityProp.hasValue()) {\n var colorProp = new Property(this.document, 'color', color);\n return colorProp.addOpacity(parentOpacityProp).getColor();\n }\n\n return color;\n }\n\n}\n\nclass LinearGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'linearGradient';\n this.attributesToInherit.push('x1', 'y1', 'x2', 'y2');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = isBoundingBoxUnits ? element.getBoundingBox(ctx) : null;\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('x1').hasValue() && !this.getAttribute('y1').hasValue() && !this.getAttribute('x2').hasValue() && !this.getAttribute('y2').hasValue()) {\n this.getAttribute('x1', true).setValue(0);\n this.getAttribute('y1', true).setValue(0);\n this.getAttribute('x2', true).setValue(1);\n this.getAttribute('y2', true).setValue(0);\n }\n\n var x1 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x1').getNumber() : this.getAttribute('x1').getPixels('x');\n var y1 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y1').getNumber() : this.getAttribute('y1').getPixels('y');\n var x2 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x2').getNumber() : this.getAttribute('x2').getPixels('x');\n var y2 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y2').getNumber() : this.getAttribute('y2').getPixels('y');\n\n if (x1 === x2 && y1 === y2) {\n return null;\n }\n\n return ctx.createLinearGradient(x1, y1, x2, y2);\n }\n\n}\n\nclass RadialGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'radialGradient';\n this.attributesToInherit.push('cx', 'cy', 'r', 'fx', 'fy', 'fr');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = element.getBoundingBox(ctx);\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('cx').hasValue()) {\n this.getAttribute('cx', true).setValue('50%');\n }\n\n if (!this.getAttribute('cy').hasValue()) {\n this.getAttribute('cy', true).setValue('50%');\n }\n\n if (!this.getAttribute('r').hasValue()) {\n this.getAttribute('r', true).setValue('50%');\n }\n\n var cx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('cx').getNumber() : this.getAttribute('cx').getPixels('x');\n var cy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('cy').getNumber() : this.getAttribute('cy').getPixels('y');\n var fx = cx;\n var fy = cy;\n\n if (this.getAttribute('fx').hasValue()) {\n fx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('fx').getNumber() : this.getAttribute('fx').getPixels('x');\n }\n\n if (this.getAttribute('fy').hasValue()) {\n fy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('fy').getNumber() : this.getAttribute('fy').getPixels('y');\n }\n\n var r = isBoundingBoxUnits ? (boundingBox.width + boundingBox.height) / 2.0 * this.getAttribute('r').getNumber() : this.getAttribute('r').getPixels();\n var fr = this.getAttribute('fr').getPixels();\n return ctx.createRadialGradient(fx, fy, fr, cx, cy, r);\n }\n\n}\n\nclass StopElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'stop';\n var offset = Math.max(0, Math.min(1, this.getAttribute('offset').getNumber()));\n var stopOpacity = this.getStyle('stop-opacity');\n var stopColor = this.getStyle('stop-color', true);\n\n if (stopColor.getString() === '') {\n stopColor.setValue('#000');\n }\n\n if (stopOpacity.hasValue()) {\n stopColor = stopColor.addOpacity(stopOpacity);\n }\n\n this.offset = offset;\n this.color = stopColor.getColor();\n }\n\n}\n\nclass AnimateElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'animate';\n this.duration = 0;\n this.initialValue = null;\n this.initialUnits = '';\n this.removed = false;\n this.frozen = false;\n document.screen.animations.push(this);\n this.begin = this.getAttribute('begin').getMilliseconds();\n this.maxDuration = this.begin + this.getAttribute('dur').getMilliseconds();\n this.from = this.getAttribute('from');\n this.to = this.getAttribute('to');\n this.values = new Property(document, 'values', null);\n var valuesAttr = this.getAttribute('values');\n\n if (valuesAttr.hasValue()) {\n this.values.setValue(valuesAttr.getString().split(';'));\n }\n }\n\n getProperty() {\n var attributeType = this.getAttribute('attributeType').getString();\n var attributeName = this.getAttribute('attributeName').getString();\n\n if (attributeType === 'CSS') {\n return this.parent.getStyle(attributeName, true);\n }\n\n return this.parent.getAttribute(attributeName, true);\n }\n\n calcValue() {\n var {\n initialUnits\n } = this;\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var newValue = from.getNumber() + (to.getNumber() - from.getNumber()) * progress;\n\n if (initialUnits === '%') {\n newValue *= 100.0; // numValue() returns 0-1 whereas properties are 0-100\n }\n\n return \"\".concat(newValue).concat(initialUnits);\n }\n\n update(delta) {\n var {\n parent\n } = this;\n var prop = this.getProperty(); // set initial value\n\n if (!this.initialValue) {\n this.initialValue = prop.getString();\n this.initialUnits = prop.getUnits();\n } // if we're past the end time\n\n\n if (this.duration > this.maxDuration) {\n var fill = this.getAttribute('fill').getString('remove'); // loop for indefinitely repeating animations\n\n if (this.getAttribute('repeatCount').getString() === 'indefinite' || this.getAttribute('repeatDur').getString() === 'indefinite') {\n this.duration = 0;\n } else if (fill === 'freeze' && !this.frozen) {\n this.frozen = true;\n parent.animationFrozen = true;\n parent.animationFrozenValue = prop.getString();\n } else if (fill === 'remove' && !this.removed) {\n this.removed = true;\n prop.setValue(parent.animationFrozen ? parent.animationFrozenValue : this.initialValue);\n return true;\n }\n\n return false;\n }\n\n this.duration += delta; // if we're past the begin time\n\n var updated = false;\n\n if (this.begin < this.duration) {\n var newValue = this.calcValue(); // tween\n\n var typeAttr = this.getAttribute('type');\n\n if (typeAttr.hasValue()) {\n // for transform, etc.\n var type = typeAttr.getString();\n newValue = \"\".concat(type, \"(\").concat(newValue, \")\");\n }\n\n prop.setValue(newValue);\n updated = true;\n }\n\n return updated;\n }\n\n getProgress() {\n var {\n document,\n values\n } = this;\n var result = {\n progress: (this.duration - this.begin) / (this.maxDuration - this.begin)\n };\n\n if (values.hasValue()) {\n var p = result.progress * (values.getValue().length - 1);\n var lb = Math.floor(p);\n var ub = Math.ceil(p);\n result.from = new Property(document, 'from', parseFloat(values.getValue()[lb]));\n result.to = new Property(document, 'to', parseFloat(values.getValue()[ub]));\n result.progress = (p - lb) / (ub - lb);\n } else {\n result.from = this.from;\n result.to = this.to;\n }\n\n return result;\n }\n\n}\n\nclass AnimateColorElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateColor';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress();\n var colorFrom = new RGBColor(from.getColor());\n var colorTo = new RGBColor(to.getColor());\n\n if (colorFrom.ok && colorTo.ok) {\n // tween color linearly\n var r = colorFrom.r + (colorTo.r - colorFrom.r) * progress;\n var g = colorFrom.g + (colorTo.g - colorFrom.g) * progress;\n var b = colorFrom.b + (colorTo.b - colorFrom.b) * progress; // ? alpha\n\n return \"rgb(\".concat(Math.floor(r), \", \").concat(Math.floor(g), \", \").concat(Math.floor(b), \")\");\n }\n\n return this.getAttribute('from').getColor();\n }\n\n}\n\nclass AnimateTransformElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateTransform';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var transformFrom = toNumbers(from.getString());\n var transformTo = toNumbers(to.getString());\n var newValue = transformFrom.map((from, i) => {\n var to = transformTo[i];\n return from + (to - from) * progress;\n }).join(' ');\n return newValue;\n }\n\n}\n\nclass FontElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font';\n this.glyphs = {};\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n var {\n definitions\n } = document;\n var {\n children\n } = this;\n\n for (var child of children) {\n switch (child.type) {\n case 'font-face':\n {\n this.fontFace = child;\n var fontFamilyStyle = child.getStyle('font-family');\n\n if (fontFamilyStyle.hasValue()) {\n definitions[fontFamilyStyle.getString()] = this;\n }\n\n break;\n }\n\n case 'missing-glyph':\n this.missingGlyph = child;\n break;\n\n case 'glyph':\n {\n var glyph = child;\n\n if (glyph.arabicForm) {\n this.isRTL = true;\n this.isArabic = true;\n\n if (typeof this.glyphs[glyph.unicode] === 'undefined') {\n this.glyphs[glyph.unicode] = {};\n }\n\n this.glyphs[glyph.unicode][glyph.arabicForm] = glyph;\n } else {\n this.glyphs[glyph.unicode] = glyph;\n }\n\n break;\n }\n }\n }\n }\n\n render() {// NO RENDER\n }\n\n}\n\nclass FontFaceElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font-face';\n this.ascent = this.getAttribute('ascent').getNumber();\n this.descent = this.getAttribute('descent').getNumber();\n this.unitsPerEm = this.getAttribute('units-per-em').getNumber();\n }\n\n}\n\nclass MissingGlyphElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'missing-glyph';\n this.horizAdvX = 0;\n }\n\n}\n\nclass TRefElement extends TextElement {\n constructor() {\n super(...arguments);\n this.type = 'tref';\n }\n\n getText() {\n var element = this.getHrefAttribute().getDefinition();\n\n if (element) {\n var firstChild = element.children[0];\n\n if (firstChild) {\n return firstChild.getText();\n }\n }\n\n return '';\n }\n\n}\n\nclass AElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'a';\n var {\n childNodes\n } = node;\n var firstChild = childNodes[0];\n var hasText = childNodes.length > 0 && Array.from(childNodes).every(node => node.nodeType === 3);\n this.hasText = hasText;\n this.text = hasText ? this.getTextFromNode(firstChild) : '';\n }\n\n getText() {\n return this.text;\n }\n\n renderChildren(ctx) {\n if (this.hasText) {\n // render as text element\n super.renderChildren(ctx);\n var {\n document,\n x,\n y\n } = this;\n var {\n mouse\n } = document.screen;\n var fontSize = new Property(document, 'fontSize', Font.parse(document.ctx.font).fontSize); // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, new BoundingBox(x, y - fontSize.getPixels('y'), x + this.measureText(ctx), y));\n }\n } else if (this.children.length > 0) {\n // render as temporary group\n var g = new GElement(this.document, null);\n g.children = this.children;\n g.parent = this;\n g.render(ctx);\n }\n }\n\n onClick() {\n var {\n window\n } = this.document;\n\n if (window) {\n window.open(this.getHrefAttribute().getString());\n }\n }\n\n onMouseMove() {\n var ctx = this.document.ctx;\n ctx.canvas.style.cursor = 'pointer';\n }\n\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nclass TextPathElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'textPath';\n this.textWidth = 0;\n this.textHeight = 0;\n this.pathLength = -1;\n this.glyphInfo = null;\n this.letterSpacingCache = [];\n this.measuresCache = new Map([['', 0]]);\n var pathElement = this.getHrefAttribute().getDefinition();\n this.text = this.getTextFromNode();\n this.dataArray = this.parsePathData(pathElement);\n }\n\n getText() {\n return this.text;\n }\n\n path(ctx) {\n var {\n dataArray\n } = this;\n\n if (ctx) {\n ctx.beginPath();\n }\n\n dataArray.forEach(_ref => {\n var {\n type,\n points\n } = _ref;\n\n switch (type) {\n case PathParser.LINE_TO:\n if (ctx) {\n ctx.lineTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.MOVE_TO:\n if (ctx) {\n ctx.moveTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.CURVE_TO:\n if (ctx) {\n ctx.bezierCurveTo(points[0], points[1], points[2], points[3], points[4], points[5]);\n }\n\n break;\n\n case PathParser.QUAD_TO:\n if (ctx) {\n ctx.quadraticCurveTo(points[0], points[1], points[2], points[3]);\n }\n\n break;\n\n case PathParser.ARC:\n {\n var [cx, cy, rx, ry, theta, dTheta, psi, fs] = points;\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n\n if (ctx) {\n ctx.translate(cx, cy);\n ctx.rotate(psi);\n ctx.scale(scaleX, scaleY);\n ctx.arc(0, 0, r, theta, theta + dTheta, Boolean(1 - fs));\n ctx.scale(1 / scaleX, 1 / scaleY);\n ctx.rotate(-psi);\n ctx.translate(-cx, -cy);\n }\n\n break;\n }\n\n case PathParser.CLOSE_PATH:\n if (ctx) {\n ctx.closePath();\n }\n\n break;\n }\n });\n }\n\n renderChildren(ctx) {\n this.setTextData(ctx);\n ctx.save();\n var textDecoration = this.parent.getStyle('text-decoration').getString();\n var fontSize = this.getFontSize();\n var {\n glyphInfo\n } = this;\n var fill = ctx.fillStyle;\n\n if (textDecoration === 'underline') {\n ctx.beginPath();\n }\n\n glyphInfo.forEach((glyph, i) => {\n var {\n p0,\n p1,\n rotation,\n text: partialText\n } = glyph;\n ctx.save();\n ctx.translate(p0.x, p0.y);\n ctx.rotate(rotation);\n\n if (ctx.fillStyle) {\n ctx.fillText(partialText, 0, 0);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(partialText, 0, 0);\n }\n\n ctx.restore();\n\n if (textDecoration === 'underline') {\n if (i === 0) {\n ctx.moveTo(p0.x, p0.y + fontSize / 8);\n }\n\n ctx.lineTo(p1.x, p1.y + fontSize / 5);\n } // // To assist with debugging visually, uncomment following\n //\n // ctx.beginPath();\n // if (i % 2)\n // \tctx.strokeStyle = 'red';\n // else\n // \tctx.strokeStyle = 'green';\n // ctx.moveTo(p0.x, p0.y);\n // ctx.lineTo(p1.x, p1.y);\n // ctx.stroke();\n // ctx.closePath();\n\n });\n\n if (textDecoration === 'underline') {\n ctx.lineWidth = fontSize / 20;\n ctx.strokeStyle = fill;\n ctx.stroke();\n ctx.closePath();\n }\n\n ctx.restore();\n }\n\n getLetterSpacingAt() {\n var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return this.letterSpacingCache[idx] || 0;\n }\n\n findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, inputOffset, dy, c, charI) {\n var offset = inputOffset;\n var glyphWidth = this.measureText(ctx, c);\n\n if (c === ' ' && anchor === 'justify' && textFullWidth < fullPathWidth) {\n glyphWidth += (fullPathWidth - textFullWidth) / spacesNumber;\n }\n\n if (charI > -1) {\n offset += this.getLetterSpacingAt(charI);\n }\n\n var splineStep = this.textHeight / 20;\n var p0 = this.getEquidistantPointOnPath(offset, splineStep, 0);\n var p1 = this.getEquidistantPointOnPath(offset + glyphWidth, splineStep, 0);\n var segment = {\n p0,\n p1\n };\n var rotation = p0 && p1 ? Math.atan2(p1.y - p0.y, p1.x - p0.x) : 0;\n\n if (dy) {\n var dyX = Math.cos(Math.PI / 2 + rotation) * dy;\n var dyY = Math.cos(-rotation) * dy;\n segment.p0 = _objectSpread$2(_objectSpread$2({}, p0), {}, {\n x: p0.x + dyX,\n y: p0.y + dyY\n });\n segment.p1 = _objectSpread$2(_objectSpread$2({}, p1), {}, {\n x: p1.x + dyX,\n y: p1.y + dyY\n });\n }\n\n offset += glyphWidth;\n return {\n offset,\n segment,\n rotation\n };\n }\n\n measureText(ctx, text) {\n var {\n measuresCache\n } = this;\n var targetText = text || this.getText();\n\n if (measuresCache.has(targetText)) {\n return measuresCache.get(targetText);\n }\n\n var measure = this.measureTargetText(ctx, targetText);\n measuresCache.set(targetText, measure);\n return measure;\n } // This method supposes what all custom fonts already loaded.\n // If some font will be loaded after this method call, will not be rendered correctly.\n // You need to call this method manually to update glyphs cache.\n\n\n setTextData(ctx) {\n if (this.glyphInfo) {\n return;\n }\n\n var renderText = this.getText();\n var chars = renderText.split('');\n var spacesNumber = renderText.split(' ').length - 1;\n var dx = this.parent.getAttribute('dx').split().map(_ => _.getPixels('x'));\n var dy = this.parent.getAttribute('dy').getPixels('y');\n var anchor = this.parent.getStyle('text-anchor').getString('start');\n var thisSpacing = this.getStyle('letter-spacing');\n var parentSpacing = this.parent.getStyle('letter-spacing');\n var letterSpacing = 0;\n\n if (!thisSpacing.hasValue() || thisSpacing.getValue() === 'inherit') {\n letterSpacing = parentSpacing.getPixels();\n } else if (thisSpacing.hasValue()) {\n if (thisSpacing.getValue() !== 'initial' && thisSpacing.getValue() !== 'unset') {\n letterSpacing = thisSpacing.getPixels();\n }\n } // fill letter-spacing cache\n\n\n var letterSpacingCache = [];\n var textLen = renderText.length;\n this.letterSpacingCache = letterSpacingCache;\n\n for (var i = 0; i < textLen; i++) {\n letterSpacingCache.push(typeof dx[i] !== 'undefined' ? dx[i] : letterSpacing);\n }\n\n var dxSum = letterSpacingCache.reduce((acc, cur, i) => i === 0 ? 0 : acc + cur || 0, 0);\n var textWidth = this.measureText(ctx);\n var textFullWidth = Math.max(textWidth + dxSum, 0);\n this.textWidth = textWidth;\n this.textHeight = this.getFontSize();\n this.glyphInfo = [];\n var fullPathWidth = this.getPathLength();\n var startOffset = this.getStyle('startOffset').getNumber(0) * fullPathWidth;\n var offset = 0;\n\n if (anchor === 'middle' || anchor === 'center') {\n offset = -textFullWidth / 2;\n }\n\n if (anchor === 'end' || anchor === 'right') {\n offset = -textFullWidth;\n }\n\n offset += startOffset;\n chars.forEach((char, i) => {\n // Find such segment what distance between p0 and p1 is approx. width of glyph\n var {\n offset: nextOffset,\n segment,\n rotation\n } = this.findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, offset, dy, char, i);\n offset = nextOffset;\n\n if (!segment.p0 || !segment.p1) {\n return;\n } // const width = this.getLineLength(\n // \tsegment.p0.x,\n // \tsegment.p0.y,\n // \tsegment.p1.x,\n // \tsegment.p1.y\n // );\n // Note: Since glyphs are rendered one at a time, any kerning pair data built into the font will not be used.\n // Can foresee having a rough pair table built in that the developer can override as needed.\n // Or use \"dx\" attribute of the node as a naive replacement\n // const kern = 0;\n // placeholder for future implementation\n // const midpoint = this.getPointOnLine(\n // \tkern + width / 2.0,\n // \tsegment.p0.x, segment.p0.y, segment.p1.x, segment.p1.y\n // );\n\n\n this.glyphInfo.push({\n // transposeX: midpoint.x,\n // transposeY: midpoint.y,\n text: chars[i],\n p0: segment.p0,\n p1: segment.p1,\n rotation\n });\n });\n }\n\n parsePathData(path) {\n this.pathLength = -1; // reset path length\n\n if (!path) {\n return [];\n }\n\n var pathCommands = [];\n var {\n pathParser\n } = path;\n pathParser.reset(); // convert l, H, h, V, and v to L\n\n while (!pathParser.isEnd()) {\n var {\n current\n } = pathParser;\n var startX = current ? current.x : 0;\n var startY = current ? current.y : 0;\n var command = pathParser.next();\n var nextCommandType = command.type;\n var points = [];\n\n switch (command.type) {\n case PathParser.MOVE_TO:\n this.pathM(pathParser, points);\n break;\n\n case PathParser.LINE_TO:\n nextCommandType = this.pathL(pathParser, points);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n nextCommandType = this.pathH(pathParser, points);\n break;\n\n case PathParser.VERT_LINE_TO:\n nextCommandType = this.pathV(pathParser, points);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(pathParser, points);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n nextCommandType = this.pathS(pathParser, points);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(pathParser, points);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n nextCommandType = this.pathT(pathParser, points);\n break;\n\n case PathParser.ARC:\n points = this.pathA(pathParser);\n break;\n\n case PathParser.CLOSE_PATH:\n PathElement.pathZ(pathParser);\n break;\n }\n\n if (command.type !== PathParser.CLOSE_PATH) {\n pathCommands.push({\n type: nextCommandType,\n points,\n start: {\n x: startX,\n y: startY\n },\n pathLength: this.calcLength(startX, startY, nextCommandType, points)\n });\n } else {\n pathCommands.push({\n type: PathParser.CLOSE_PATH,\n points: [],\n pathLength: 0\n });\n }\n }\n\n return pathCommands;\n }\n\n pathM(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathM(pathParser).point;\n points.push(x, y);\n }\n\n pathL(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathL(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathH(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathH(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathV(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathV(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathC(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathS(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.CURVE_TO;\n }\n\n pathQ(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathT(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.QUAD_TO;\n }\n\n pathA(pathParser) {\n var {\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser);\n\n if (sweepFlag === 0 && ad > 0) {\n ad -= 2 * Math.PI;\n }\n\n if (sweepFlag === 1 && ad < 0) {\n ad += 2 * Math.PI;\n }\n\n return [centp.x, centp.y, rX, rY, a1, ad, xAxisRotation, sweepFlag];\n }\n\n calcLength(x, y, commandType, points) {\n var len = 0;\n var p1 = null;\n var p2 = null;\n var t = 0;\n\n switch (commandType) {\n case PathParser.LINE_TO:\n return this.getLineLength(x, y, points[0], points[1]);\n\n case PathParser.CURVE_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.QUAD_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.ARC:\n {\n // Approximates by breaking curve into line segments\n len = 0.0;\n var start = points[4]; // 4 = theta\n\n var dTheta = points[5]; // 5 = dTheta\n\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0; // 1 degree resolution\n\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n } // Note: for purpose of calculating arc length, not going to worry about rotating X-axis by angle psi\n\n\n p1 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n\n if (dTheta < 0) {\n // clockwise\n for (t = start - inc; t > end; t -= inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n } else {\n // counter-clockwise\n for (t = start + inc; t < end; t += inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n }\n\n return 0;\n }\n\n getPointOnLine(dist, p1x, p1y, p2x, p2y) {\n var fromX = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : p1x;\n var fromY = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : p1y;\n var m = (p2y - p1y) / (p2x - p1x + PSEUDO_ZERO);\n var run = Math.sqrt(dist * dist / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n var rise = m * run;\n var pt = null;\n\n if (p2x === p1x) {\n // vertical line\n pt = {\n x: fromX,\n y: fromY + rise\n };\n } else if ((fromY - p1y) / (fromX - p1x + PSEUDO_ZERO) === m) {\n pt = {\n x: fromX + run,\n y: fromY + rise\n };\n } else {\n var ix = 0;\n var iy = 0;\n var len = this.getLineLength(p1x, p1y, p2x, p2y);\n\n if (len < PSEUDO_ZERO) {\n return null;\n }\n\n var u = (fromX - p1x) * (p2x - p1x) + (fromY - p1y) * (p2y - p1y);\n u /= len * len;\n ix = p1x + u * (p2x - p1x);\n iy = p1y + u * (p2y - p1y);\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\n run = Math.sqrt(pRun * pRun / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n rise = m * run;\n pt = {\n x: ix + run,\n y: iy + rise\n };\n }\n\n return pt;\n }\n\n getPointOnPath(distance) {\n var fullLen = this.getPathLength();\n var cumulativePathLength = 0;\n var p = null;\n\n if (distance < -0.00005 || distance - 0.00005 > fullLen) {\n return null;\n }\n\n var {\n dataArray\n } = this;\n\n for (var command of dataArray) {\n if (command && (command.pathLength < 0.00005 || cumulativePathLength + command.pathLength + 0.00005 < distance)) {\n cumulativePathLength += command.pathLength;\n continue;\n }\n\n var delta = distance - cumulativePathLength;\n var currentT = 0;\n\n switch (command.type) {\n case PathParser.LINE_TO:\n p = this.getPointOnLine(delta, command.start.x, command.start.y, command.points[0], command.points[1], command.start.x, command.start.y);\n break;\n\n case PathParser.ARC:\n {\n var start = command.points[4]; // 4 = theta\n\n var dTheta = command.points[5]; // 5 = dTheta\n\n var end = command.points[4] + dTheta;\n currentT = start + delta / command.pathLength * dTheta;\n\n if (dTheta < 0 && currentT < end || dTheta >= 0 && currentT > end) {\n break;\n }\n\n p = this.getPointOnEllipticalArc(command.points[0], command.points[1], command.points[2], command.points[3], currentT, command.points[6]);\n break;\n }\n\n case PathParser.CURVE_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnCubicBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3], command.points[4], command.points[5]);\n break;\n\n case PathParser.QUAD_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnQuadraticBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3]);\n break;\n }\n\n if (p) {\n return p;\n }\n\n break;\n }\n\n return null;\n }\n\n getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n\n getPathLength() {\n if (this.pathLength === -1) {\n this.pathLength = this.dataArray.reduce((length, command) => command.pathLength > 0 ? length + command.pathLength : length, 0);\n }\n\n return this.pathLength;\n }\n\n getPointOnCubicBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) {\n var x = p4x * CB1(pct) + p3x * CB2(pct) + p2x * CB3(pct) + p1x * CB4(pct);\n var y = p4y * CB1(pct) + p3y * CB2(pct) + p2y * CB3(pct) + p1y * CB4(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnQuadraticBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y) {\n var x = p3x * QB1(pct) + p2x * QB2(pct) + p1x * QB3(pct);\n var y = p3y * QB1(pct) + p2y * QB2(pct) + p1y * QB3(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\n var cosPsi = Math.cos(psi);\n var sinPsi = Math.sin(psi);\n var pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta)\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi)\n };\n } // TODO need some optimisations. possibly build cache only for curved segments?\n\n\n buildEquidistantCache(inputStep, inputPrecision) {\n var fullLen = this.getPathLength();\n var precision = inputPrecision || 0.25; // accuracy vs performance\n\n var step = inputStep || fullLen / 100;\n\n if (!this.equidistantCache || this.equidistantCache.step !== step || this.equidistantCache.precision !== precision) {\n // Prepare cache\n this.equidistantCache = {\n step,\n precision,\n points: []\n }; // Calculate points\n\n var s = 0;\n\n for (var l = 0; l <= fullLen; l += precision) {\n var p0 = this.getPointOnPath(l);\n var p1 = this.getPointOnPath(l + precision);\n\n if (!p0 || !p1) {\n continue;\n }\n\n s += this.getLineLength(p0.x, p0.y, p1.x, p1.y);\n\n if (s >= step) {\n this.equidistantCache.points.push({\n x: p0.x,\n y: p0.y,\n distance: l\n });\n s -= step;\n }\n }\n }\n }\n\n getEquidistantPointOnPath(targetDistance, step, precision) {\n this.buildEquidistantCache(step, precision);\n\n if (targetDistance < 0 || targetDistance - this.getPathLength() > 0.00005) {\n return null;\n }\n\n var idx = Math.round(targetDistance / this.getPathLength() * (this.equidistantCache.points.length - 1));\n return this.equidistantCache.points[idx] || null;\n }\n\n}\n\nvar dataUriRegex = /^\\s*data:(([^/,;]+\\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;\nclass ImageElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'image';\n this.loaded = false;\n var href = this.getHrefAttribute().getString();\n\n if (!href) {\n return;\n }\n\n var isSvg = href.endsWith('.svg') || /^\\s*data:image\\/svg\\+xml/i.test(href);\n document.images.push(this);\n\n if (!isSvg) {\n void this.loadImage(href);\n } else {\n void this.loadSvg(href);\n }\n\n this.isSvg = isSvg;\n }\n\n loadImage(href) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var image = yield _this.document.createImage(href);\n _this.image = image;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n loadSvg(href) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var match = dataUriRegex.exec(href);\n\n if (match) {\n var data = match[5];\n\n if (match[4] === 'base64') {\n _this2.image = atob(data);\n } else {\n _this2.image = decodeURIComponent(data);\n }\n } else {\n try {\n var response = yield _this2.document.fetch(href);\n var svg = yield response.text();\n _this2.image = svg;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n }\n\n _this2.loaded = true;\n })();\n }\n\n renderChildren(ctx) {\n var {\n document,\n image,\n loaded\n } = this;\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!loaded || !image || !width || !height) {\n return;\n }\n\n ctx.save();\n ctx.translate(x, y);\n\n if (this.isSvg) {\n var subDocument = document.canvg.forkString(ctx, this.image, {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true,\n ignoreClear: true,\n offsetX: 0,\n offsetY: 0,\n scaleWidth: width,\n scaleHeight: height\n });\n subDocument.document.documentElement.parent = this;\n void subDocument.render();\n } else {\n var _image = this.image;\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width,\n desiredWidth: _image.width,\n height,\n desiredHeight: _image.height\n });\n\n if (this.loaded) {\n if (typeof _image.complete === 'undefined' || _image.complete) {\n ctx.drawImage(_image, 0, 0);\n }\n }\n }\n\n ctx.restore();\n }\n\n getBoundingBox() {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n}\n\nclass SymbolElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'symbol';\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass SVGFontLoader {\n constructor(document) {\n this.document = document;\n this.loaded = false;\n document.fonts.push(this);\n }\n\n load(fontFamily, url) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var {\n document\n } = _this;\n var svgDocument = yield document.canvg.parser.load(url);\n var fonts = svgDocument.getElementsByTagName('font');\n Array.from(fonts).forEach(fontNode => {\n var font = document.createElement(fontNode);\n document.definitions[fontFamily] = font;\n });\n } catch (err) {\n console.error(\"Error while loading font \\\"\".concat(url, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n}\n\nclass StyleElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'style';\n var css = compressSpaces(Array.from(node.childNodes) // NEED TEST\n .map(_ => _.textContent).join('').replace(/(\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\/)|(^[\\s]*\\/\\/.*)/gm, '') // remove comments\n .replace(/@import.*;/g, '') // remove imports\n );\n var cssDefs = css.split('}');\n cssDefs.forEach(_ => {\n var def = _.trim();\n\n if (!def) {\n return;\n }\n\n var cssParts = def.split('{');\n var cssClasses = cssParts[0].split(',');\n var cssProps = cssParts[1].split(';');\n cssClasses.forEach(_ => {\n var cssClass = _.trim();\n\n if (!cssClass) {\n return;\n }\n\n var props = document.styles[cssClass] || {};\n cssProps.forEach(cssProp => {\n var prop = cssProp.indexOf(':');\n var name = cssProp.substr(0, prop).trim();\n var value = cssProp.substr(prop + 1, cssProp.length - prop).trim();\n\n if (name && value) {\n props[name] = new Property(document, name, value);\n }\n });\n document.styles[cssClass] = props;\n document.stylesSpecificity[cssClass] = getSelectorSpecificity(cssClass);\n\n if (cssClass === '@font-face') {\n // && !nodeEnv\n var fontFamily = props['font-family'].getString().replace(/\"|'/g, '');\n var srcs = props.src.getString().split(',');\n srcs.forEach(src => {\n if (src.indexOf('format(\"svg\")') > 0) {\n var url = parseExternalUrl(src);\n\n if (url) {\n void new SVGFontLoader(document).load(fontFamily, url);\n }\n }\n });\n }\n });\n });\n }\n\n}\nStyleElement.parseExternalUrl = parseExternalUrl;\n\nclass UseElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'use';\n }\n\n setContext(ctx) {\n super.setContext(ctx);\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue()) {\n ctx.translate(xAttr.getPixels('x'), 0);\n }\n\n if (yAttr.hasValue()) {\n ctx.translate(0, yAttr.getPixels('y'));\n }\n }\n\n path(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n element.path(ctx);\n }\n }\n\n renderChildren(ctx) {\n var {\n document,\n element\n } = this;\n\n if (element) {\n var tempSvg = element;\n\n if (element.type === 'symbol') {\n // render me using a temporary svg element in symbol cases (http://www.w3.org/TR/SVG/struct.html#UseElement)\n tempSvg = new SVGElement(document, null);\n tempSvg.attributes.viewBox = new Property(document, 'viewBox', element.getAttribute('viewBox').getString());\n tempSvg.attributes.preserveAspectRatio = new Property(document, 'preserveAspectRatio', element.getAttribute('preserveAspectRatio').getString());\n tempSvg.attributes.overflow = new Property(document, 'overflow', element.getAttribute('overflow').getString());\n tempSvg.children = element.children; // element is still the parent of the children\n\n element.styles.opacity = new Property(document, 'opacity', this.calculateOpacity());\n }\n\n if (tempSvg.type === 'svg') {\n var widthStyle = this.getStyle('width', false, true);\n var heightStyle = this.getStyle('height', false, true); // if symbol or svg, inherit width/height from me\n\n if (widthStyle.hasValue()) {\n tempSvg.attributes.width = new Property(document, 'width', widthStyle.getString());\n }\n\n if (heightStyle.hasValue()) {\n tempSvg.attributes.height = new Property(document, 'height', heightStyle.getString());\n }\n }\n\n var oldParent = tempSvg.parent;\n tempSvg.parent = this;\n tempSvg.render(ctx);\n tempSvg.parent = oldParent;\n }\n }\n\n getBoundingBox(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n return element.getBoundingBox(ctx);\n }\n\n return null;\n }\n\n elementTransform() {\n var {\n document,\n element\n } = this;\n return Transform.fromElement(document, element);\n }\n\n get element() {\n if (!this.cachedElement) {\n this.cachedElement = this.getHrefAttribute().getDefinition();\n }\n\n return this.cachedElement;\n }\n\n}\n\nfunction imGet(img, x, y, width, _height, rgba) {\n return img[y * width * 4 + x * 4 + rgba];\n}\n\nfunction imSet(img, x, y, width, _height, rgba, val) {\n img[y * width * 4 + x * 4 + rgba] = val;\n}\n\nfunction m(matrix, i, v) {\n var mi = matrix[i];\n return mi * v;\n}\n\nfunction c(a, m1, m2, m3) {\n return m1 + Math.cos(a) * m2 + Math.sin(a) * m3;\n}\n\nclass FeColorMatrixElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feColorMatrix';\n var matrix = toNumbers(this.getAttribute('values').getString());\n\n switch (this.getAttribute('type').getString('matrix')) {\n // http://www.w3.org/TR/SVG/filters.html#feColorMatrixElement\n case 'saturate':\n {\n var s = matrix[0];\n /* eslint-disable array-element-newline */\n\n matrix = [0.213 + 0.787 * s, 0.715 - 0.715 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 + 0.285 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 - 0.715 * s, 0.072 + 0.928 * s, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'hueRotate':\n {\n var a = matrix[0] * Math.PI / 180.0;\n /* eslint-disable array-element-newline */\n\n matrix = [c(a, 0.213, 0.787, -0.213), c(a, 0.715, -0.715, -0.715), c(a, 0.072, -0.072, 0.928), 0, 0, c(a, 0.213, -0.213, 0.143), c(a, 0.715, 0.285, 0.140), c(a, 0.072, -0.072, -0.283), 0, 0, c(a, 0.213, -0.213, -0.787), c(a, 0.715, -0.715, 0.715), c(a, 0.072, 0.928, 0.072), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'luminanceToAlpha':\n /* eslint-disable array-element-newline */\n matrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2125, 0.7154, 0.0721, 0, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n this.matrix = matrix;\n this.includeOpacity = this.getAttribute('includeOpacity').hasValue();\n }\n\n apply(ctx, _x, _y, width, height) {\n // assuming x==0 && y==0 for now\n var {\n includeOpacity,\n matrix\n } = this;\n var srcData = ctx.getImageData(0, 0, width, height);\n\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var r = imGet(srcData.data, x, y, width, height, 0);\n var g = imGet(srcData.data, x, y, width, height, 1);\n var b = imGet(srcData.data, x, y, width, height, 2);\n var a = imGet(srcData.data, x, y, width, height, 3);\n var nr = m(matrix, 0, r) + m(matrix, 1, g) + m(matrix, 2, b) + m(matrix, 3, a) + m(matrix, 4, 1);\n var ng = m(matrix, 5, r) + m(matrix, 6, g) + m(matrix, 7, b) + m(matrix, 8, a) + m(matrix, 9, 1);\n var nb = m(matrix, 10, r) + m(matrix, 11, g) + m(matrix, 12, b) + m(matrix, 13, a) + m(matrix, 14, 1);\n var na = m(matrix, 15, r) + m(matrix, 16, g) + m(matrix, 17, b) + m(matrix, 18, a) + m(matrix, 19, 1);\n\n if (includeOpacity) {\n nr = 0;\n ng = 0;\n nb = 0;\n na *= a / 255;\n }\n\n imSet(srcData.data, x, y, width, height, 0, nr);\n imSet(srcData.data, x, y, width, height, 1, ng);\n imSet(srcData.data, x, y, width, height, 2, nb);\n imSet(srcData.data, x, y, width, height, 3, na);\n }\n }\n\n ctx.clearRect(0, 0, width, height);\n ctx.putImageData(srcData, 0, 0);\n }\n\n}\n\nclass MaskElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'mask';\n }\n\n apply(ctx, element) {\n var {\n document\n } = this; // render as temp svg\n\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!width && !height) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n x = Math.floor(boundingBox.x1);\n y = Math.floor(boundingBox.y1);\n width = Math.floor(boundingBox.width);\n height = Math.floor(boundingBox.height);\n }\n\n var ignoredStyles = this.removeStyles(element, MaskElement.ignoreStyles);\n var maskCanvas = document.createCanvas(x + width, y + height);\n var maskCtx = maskCanvas.getContext('2d');\n document.screen.setDefaults(maskCtx);\n this.renderChildren(maskCtx); // convert mask to alpha with a fake node\n // TODO: refactor out apply from feColorMatrix\n\n new FeColorMatrixElement(document, {\n nodeType: 1,\n childNodes: [],\n attributes: [{\n nodeName: 'type',\n value: 'luminanceToAlpha'\n }, {\n nodeName: 'includeOpacity',\n value: 'true'\n }]\n }).apply(maskCtx, 0, 0, x + width, y + height);\n var tmpCanvas = document.createCanvas(x + width, y + height);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n element.render(tmpCtx);\n tmpCtx.globalCompositeOperation = 'destination-in';\n tmpCtx.fillStyle = maskCtx.createPattern(maskCanvas, 'no-repeat');\n tmpCtx.fillRect(0, 0, x + width, y + height);\n ctx.fillStyle = tmpCtx.createPattern(tmpCanvas, 'no-repeat');\n ctx.fillRect(0, 0, x + width, y + height); // reassign mask\n\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nMaskElement.ignoreStyles = ['mask', 'transform', 'clip-path'];\n\nvar noop = () => {// NOOP\n};\n\nclass ClipPathElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'clipPath';\n }\n\n apply(ctx) {\n var {\n document\n } = this;\n var contextProto = Reflect.getPrototypeOf(ctx);\n var {\n beginPath,\n closePath\n } = ctx;\n\n if (contextProto) {\n contextProto.beginPath = noop;\n contextProto.closePath = noop;\n }\n\n Reflect.apply(beginPath, ctx, []);\n this.children.forEach(child => {\n if (typeof child.path === 'undefined') {\n return;\n }\n\n var transform = typeof child.elementTransform !== 'undefined' ? child.elementTransform() : null; // handle \n\n if (!transform) {\n transform = Transform.fromElement(document, child);\n }\n\n if (transform) {\n transform.apply(ctx);\n }\n\n child.path(ctx);\n\n if (contextProto) {\n contextProto.closePath = closePath;\n }\n\n if (transform) {\n transform.unapply(ctx);\n }\n });\n Reflect.apply(closePath, ctx, []);\n ctx.clip();\n\n if (contextProto) {\n contextProto.beginPath = beginPath;\n contextProto.closePath = closePath;\n }\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass FilterElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'filter';\n }\n\n apply(ctx, element) {\n // render as temp svg\n var {\n document,\n children\n } = this;\n var boundingBox = element.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return;\n }\n\n var px = 0;\n var py = 0;\n children.forEach(child => {\n var efd = child.extraFilterDistance || 0;\n px = Math.max(px, efd);\n py = Math.max(py, efd);\n });\n var width = Math.floor(boundingBox.width);\n var height = Math.floor(boundingBox.height);\n var tmpCanvasWidth = width + 2 * px;\n var tmpCanvasHeight = height + 2 * py;\n\n if (tmpCanvasWidth < 1 || tmpCanvasHeight < 1) {\n return;\n }\n\n var x = Math.floor(boundingBox.x);\n var y = Math.floor(boundingBox.y);\n var ignoredStyles = this.removeStyles(element, FilterElement.ignoreStyles);\n var tmpCanvas = document.createCanvas(tmpCanvasWidth, tmpCanvasHeight);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n tmpCtx.translate(-x + px, -y + py);\n element.render(tmpCtx); // apply filters\n\n children.forEach(child => {\n if (typeof child.apply === 'function') {\n child.apply(tmpCtx, 0, 0, tmpCanvasWidth, tmpCanvasHeight);\n }\n }); // render on me\n\n ctx.drawImage(tmpCanvas, 0, 0, tmpCanvasWidth, tmpCanvasHeight, x - px, y - py, tmpCanvasWidth, tmpCanvasHeight);\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nFilterElement.ignoreStyles = ['filter', 'transform', 'clip-path'];\n\nclass FeDropShadowElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feDropShadow';\n this.addStylesFromStyleDefinition();\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeMorphologyElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feMorphology';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeCompositeElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feComposite';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeGaussianBlurElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feGaussianBlur';\n this.blurRadius = Math.floor(this.getAttribute('stdDeviation').getNumber());\n this.extraFilterDistance = this.blurRadius;\n }\n\n apply(ctx, x, y, width, height) {\n var {\n document,\n blurRadius\n } = this;\n var body = document.window ? document.window.document.body : null;\n var canvas = ctx.canvas; // StackBlur requires canvas be on document\n\n canvas.id = document.getUniqueId();\n\n if (body) {\n canvas.style.display = 'none';\n body.appendChild(canvas);\n }\n\n canvasRGBA(canvas, x, y, width, height, blurRadius);\n\n if (body) {\n body.removeChild(canvas);\n }\n }\n\n}\n\nclass TitleElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'title';\n }\n\n}\n\nclass DescElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'desc';\n }\n\n}\n\nvar elements = {\n 'svg': SVGElement,\n 'rect': RectElement,\n 'circle': CircleElement,\n 'ellipse': EllipseElement,\n 'line': LineElement,\n 'polyline': PolylineElement,\n 'polygon': PolygonElement,\n 'path': PathElement,\n 'pattern': PatternElement,\n 'marker': MarkerElement,\n 'defs': DefsElement,\n 'linearGradient': LinearGradientElement,\n 'radialGradient': RadialGradientElement,\n 'stop': StopElement,\n 'animate': AnimateElement,\n 'animateColor': AnimateColorElement,\n 'animateTransform': AnimateTransformElement,\n 'font': FontElement,\n 'font-face': FontFaceElement,\n 'missing-glyph': MissingGlyphElement,\n 'glyph': GlyphElement,\n 'text': TextElement,\n 'tspan': TSpanElement,\n 'tref': TRefElement,\n 'a': AElement,\n 'textPath': TextPathElement,\n 'image': ImageElement,\n 'g': GElement,\n 'symbol': SymbolElement,\n 'style': StyleElement,\n 'use': UseElement,\n 'mask': MaskElement,\n 'clipPath': ClipPathElement,\n 'filter': FilterElement,\n 'feDropShadow': FeDropShadowElement,\n 'feMorphology': FeMorphologyElement,\n 'feComposite': FeCompositeElement,\n 'feColorMatrix': FeColorMatrixElement,\n 'feGaussianBlur': FeGaussianBlurElement,\n 'title': TitleElement,\n 'desc': DescElement\n};\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction createCanvas(width, height) {\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nfunction createImage(_x) {\n return _createImage.apply(this, arguments);\n}\n\nfunction _createImage() {\n _createImage = _asyncToGenerator(function* (src) {\n var anonymousCrossOrigin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var image = document.createElement('img');\n\n if (anonymousCrossOrigin) {\n image.crossOrigin = 'Anonymous';\n }\n\n return new Promise((resolve, reject) => {\n image.onload = () => {\n resolve(image);\n };\n\n image.onerror = (_event, _source, _lineno, _colno, error) => {\n reject(error);\n };\n\n image.src = src;\n });\n });\n return _createImage.apply(this, arguments);\n}\n\nclass Document {\n constructor(canvg) {\n var {\n rootEmSize = 12,\n emSize = 12,\n createCanvas = Document.createCanvas,\n createImage = Document.createImage,\n anonymousCrossOrigin\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.canvg = canvg;\n this.definitions = {};\n this.styles = {};\n this.stylesSpecificity = {};\n this.images = [];\n this.fonts = [];\n this.emSizeStack = [];\n this.uniqueId = 0;\n this.screen = canvg.screen;\n this.rootEmSize = rootEmSize;\n this.emSize = emSize;\n this.createCanvas = createCanvas;\n this.createImage = this.bindCreateImage(createImage, anonymousCrossOrigin);\n this.screen.wait(this.isImagesLoaded.bind(this));\n this.screen.wait(this.isFontsLoaded.bind(this));\n }\n\n bindCreateImage(createImage, anonymousCrossOrigin) {\n if (typeof anonymousCrossOrigin === 'boolean') {\n return (source, forceAnonymousCrossOrigin) => createImage(source, typeof forceAnonymousCrossOrigin === 'boolean' ? forceAnonymousCrossOrigin : anonymousCrossOrigin);\n }\n\n return createImage;\n }\n\n get window() {\n return this.screen.window;\n }\n\n get fetch() {\n return this.screen.fetch;\n }\n\n get ctx() {\n return this.screen.ctx;\n }\n\n get emSize() {\n var {\n emSizeStack\n } = this;\n return emSizeStack[emSizeStack.length - 1];\n }\n\n set emSize(value) {\n var {\n emSizeStack\n } = this;\n emSizeStack.push(value);\n }\n\n popEmSize() {\n var {\n emSizeStack\n } = this;\n emSizeStack.pop();\n }\n\n getUniqueId() {\n return \"canvg\".concat(++this.uniqueId);\n }\n\n isImagesLoaded() {\n return this.images.every(_ => _.loaded);\n }\n\n isFontsLoaded() {\n return this.fonts.every(_ => _.loaded);\n }\n\n createDocumentElement(document) {\n var documentElement = this.createElement(document.documentElement);\n documentElement.root = true;\n documentElement.addStylesFromStyleDefinition();\n this.documentElement = documentElement;\n return documentElement;\n }\n\n createElement(node) {\n var elementType = node.nodeName.replace(/^[^:]+:/, '');\n var ElementType = Document.elementTypes[elementType];\n\n if (typeof ElementType !== 'undefined') {\n return new ElementType(this, node);\n }\n\n return new UnknownElement(this, node);\n }\n\n createTextNode(node) {\n return new TextNode(this, node);\n }\n\n setViewBox(config) {\n this.screen.setViewBox(_objectSpread$1({\n document: this\n }, config));\n }\n\n}\nDocument.createCanvas = createCanvas;\nDocument.createImage = createImage;\nDocument.elementTypes = elements;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n/**\r\n * SVG renderer on canvas.\r\n */\n\nclass Canvg {\n /**\r\n * Main constructor.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG Document.\r\n * @param options - Rendering options.\r\n */\n constructor(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.parser = new Parser(options);\n this.screen = new Screen(ctx, options);\n this.options = options;\n var document = new Document(this, options);\n var documentElement = document.createDocumentElement(svg);\n this.document = document;\n this.documentElement = documentElement;\n }\n /**\r\n * Create Canvg instance from SVG source string or URL.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static from(ctx, svg) {\n var _arguments = arguments;\n return _asyncToGenerator(function* () {\n var options = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = yield parser.parse(svg);\n return new Canvg(ctx, svgDocument, options);\n })();\n }\n /**\r\n * Create Canvg instance from SVG source string.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static fromString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = parser.parseFromString(svg);\n return new Canvg(ctx, svgDocument, options);\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n fork(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.from(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n forkString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.fromString(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Document is ready promise.\r\n * @returns Ready promise.\r\n */\n\n\n ready() {\n return this.screen.ready();\n }\n /**\r\n * Document is ready value.\r\n * @returns Is ready or not.\r\n */\n\n\n isReady() {\n return this.screen.isReady();\n }\n /**\r\n * Render only first frame, ignoring animations and mouse.\r\n * @param options - Rendering options.\r\n */\n\n\n render() {\n var _arguments2 = arguments,\n _this = this;\n\n return _asyncToGenerator(function* () {\n var options = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};\n\n _this.start(_objectSpread({\n enableRedraw: true,\n ignoreAnimation: true,\n ignoreMouse: true\n }, options));\n\n yield _this.ready();\n\n _this.stop();\n })();\n }\n /**\r\n * Start rendering.\r\n * @param options - Render options.\r\n */\n\n\n start() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var {\n documentElement,\n screen,\n options: baseOptions\n } = this;\n screen.start(documentElement, _objectSpread(_objectSpread({\n enableRedraw: true\n }, baseOptions), options));\n }\n /**\r\n * Stop rendering.\r\n */\n\n\n stop() {\n this.screen.stop();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.documentElement.resize(width, height, preserveAspectRatio);\n }\n\n}\n\nexport { AElement, AnimateColorElement, AnimateElement, AnimateTransformElement, BoundingBox, CB1, CB2, CB3, CB4, Canvg, CircleElement, ClipPathElement, DefsElement, DescElement, Document, Element, EllipseElement, FeColorMatrixElement, FeCompositeElement, FeDropShadowElement, FeGaussianBlurElement, FeMorphologyElement, FilterElement, Font, FontElement, FontFaceElement, GElement, GlyphElement, GradientElement, ImageElement, LineElement, LinearGradientElement, MarkerElement, MaskElement, Matrix, MissingGlyphElement, Mouse, PSEUDO_ZERO, Parser, PathElement, PathParser, PatternElement, Point, PolygonElement, PolylineElement, Property, QB1, QB2, QB3, RadialGradientElement, RectElement, RenderedElement, Rotate, SVGElement, SVGFontLoader, Scale, Screen, Skew, SkewX, SkewY, StopElement, StyleElement, SymbolElement, TRefElement, TSpanElement, TextElement, TextPathElement, TitleElement, Transform, Translate, UnknownElement, UseElement, ViewPort, compressSpaces, Canvg as default, getSelectorSpecificity, normalizeAttributeName, normalizeColor, parseExternalUrl, index as presets, toNumbers, trimLeft, trimRight, vectorMagnitude, vectorsAngle, vectorsRatio };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","var aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar nativeEndsWith = uncurryThis(''.endsWith);\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return nativeEndsWith\n ? nativeEndsWith(that, search, end)\n : slice(that, end - search.length, end) === search;\n }\n});\n","var userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\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.hasIndices) result += 'd';\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.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar nativeStartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return nativeStartsWith\n ? nativeStartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\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\nvar stringIndexOf = uncurryThis(''.indexOf);\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 !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\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';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice-simple');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return call(nativeSplit, string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = call(regexpExec, separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n push(output, stringSlice(string, lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\n } else push(output, stringSlice(string, lastLastIndex));\n return output.length > lim ? arraySlice(output, 0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\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(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 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 ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\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 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","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\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 -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\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\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || 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\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\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 call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\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 nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar 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 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 = call(patchedExec, 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 = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, 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 = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], 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't work for /(.?)?/\n call(nativeReplace, 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","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar defineBuiltIn = require('../internals/define-built-in');\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 uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\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: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.29.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.29.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\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","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse(this);\n }\n});\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","module.exports = false;\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","module.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\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 isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\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;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\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 = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, 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 stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -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 push(results, 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(toIntegerOrInfinity(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++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\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 = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw $TypeError('RegExp#exec called on incompatible receiver');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\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","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\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","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n"],"sourceRoot":""}