{"version":3,"sources":["webpack:///./node_modules/core-js/internals/queue.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/function-bind.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///./node_modules/core-js/internals/array-species-constructor.js","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/es.promise.all.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/modules/es.array.reverse.js","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/core-js/internals/function-apply.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack:///./node_modules/core-js/modules/es.promise.race.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/core-js/internals/native-symbol-registry.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/core-js/modules/es.array.for-each.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/modules/es.array.some.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/core-js/internals/promise-constructor-detection.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/core-js/modules/es.reflect.construct.js","webpack:///./node_modules/core-js/internals/array-slice-simple.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/object-is-extensible.js","webpack:///./node_modules/core-js/internals/a-constructor.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/internals/symbol-define-to-primitive.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/rgbcolor/index.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-symbols.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/core-js/modules/es.promise.constructor.js","webpack:///./node_modules/stackblur-canvas/dist/stackblur-es.js","webpack:///./node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/core-js/internals/engine-is-browser.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///./node_modules/core-js/internals/is-constructor.js","webpack:///./node_modules/core-js/internals/define-built-ins.js","webpack:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/core-js/internals/engine-is-deno.js","webpack:///./node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/core-js/modules/es.map.constructor.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/core-js/modules/es.promise.resolve.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/core-js/internals/dom-token-list-prototype.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack:///./node_modules/core-js/modules/es.reflect.get-prototype-of.js","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/canvg/index.js","webpack:///./node_modules/@babel/runtime/helpers/get.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/regexp-get-flags.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/@babel/runtime/helpers/superPropBase.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/core-js/modules/es.array.every.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/modules/es.reflect.apply.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/internals/install-error-cause.js","webpack:///./node_modules/core-js/modules/es.reflect.delete-property.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/proxy-accessor.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/core-js/modules/es.symbol.for.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/core-js/internals/error-stack-installable.js","webpack:///./node_modules/core-js/internals/freezing.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///./node_modules/raf/index.js","webpack:///./node_modules/core-js/modules/es.symbol.key-for.js","webpack:///./node_modules/core-js/internals/clear-error-stack.js","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/modules/es.array.fill.js","webpack:///./node_modules/core-js/modules/es.promise.catch.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/promise-native-constructor.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/internals/validate-arguments-length.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/core-js/internals/array-buffer-non-extensible.js","webpack:///./node_modules/core-js/modules/es.error.cause.js","webpack:///./node_modules/core-js/modules/es.symbol.constructor.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/normalize-string-argument.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/modules/es.json.stringify.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/internals/internal-metadata.js","webpack:///./node_modules/core-js/modules/es.promise.reject.js","webpack:///./node_modules/core-js/internals/array-slice.js","webpack:///./node_modules/core-js/modules/es.reflect.to-string-tag.js","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack:///./node_modules/core-js/internals/dom-iterables.js"],"names":["Queue","this","head","tail","prototype","add","item","entry","next","get","module","exports","uncurryThis","aCallable","NATIVE_BIND","bind","fn","that","undefined","apply","arguments","isObject","hasOwn","arraySlice","$Function","Function","concat","join","factories","construct","C","argsLength","args","list","i","F","Prototype","partArgs","boundFunction","length","classof","toIndexedObject","$getOwnPropertyNames","f","windowNames","window","Object","getOwnPropertyNames","getWindowNames","it","error","_nonIterableSpread","TypeError","__esModule","isArray","isConstructor","wellKnownSymbol","SPECIES","$Array","Array","originalArray","constructor","toObject","floor","Math","charAt","replace","stringSlice","slice","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","str","position","captures","namedCaptures","replacement","tailPos","m","symbols","match","ch","capture","n","fails","global","$RegExp","RegExp","re","exec","groups","a","_iterableToArray","iter","Symbol","iterator","from","call","fixRegExpWellKnownSymbolLogic","isRegExp","anObject","requireObjectCoercible","speciesConstructor","advanceStringIndex","toLength","toString","getMethod","callRegExpExec","regexpExec","stickyHelpers","UNSUPPORTED_Y","MAX_UINT32","min","$push","push","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","result","split","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","string","lim","lastIndex","lastLength","output","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","source","index","O","splitter","rx","S","res","done","value","unicodeMatching","p","q","A","e","z","$","$reduce","left","arrayMethodIsStrict","CHROME_VERSION","IS_NODE","STRICT_METHOD","CHROME_BUG","target","proto","forced","reduce","callbackfn","isCallable","$TypeError","R","newPromiseCapabilityModule","perform","iterate","PROMISE_STATICS_INCORRECT_ITERATION","stat","all","iterable","capability","resolve","reject","$promiseResolve","values","counter","remaining","promise","alreadyCalled","then","DOMIterables","DOMTokenListPrototype","forEach","createNonEnumerableProperty","handlePrototype","CollectionPrototype","COLLECTION_NAME","$forEach","isPrototypeOf","getBuiltIn","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","object","userAgent","test","V8_VERSION","METHOD_NAME","array","foo","Boolean","arrayLikeToArray","require","_arrayWithoutHoles","arr","tryToString","isArrayIteratorMethod","lengthOfArrayLike","getIterator","getIteratorMethod","iteratorClose","Result","stopped","ResultPrototype","unboundFunction","options","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","notARegExp","correctIsRegExpLogic","stringIndexOf","indexOf","includes","searchString","PROPER_FUNCTION_NAME","PROPER","defineBuiltIn","$toString","getRegExpFlags","TO_STRING","RegExpPrototype","n$ToString","NOT_GENERIC","INCORRECT_NAME","name","pattern","unsafe","definePropertyModule","DESCRIPTORS","CONSTRUCTOR_NAME","Constructor","defineProperty","configurable","un$Reverse","reverse","String","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_slicedToArray","kind","innerResult","innerError","FunctionPrototype","Reflect","getOwnPropertyDescriptor","IS_PURE","un$StartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","writable","search","location","defer","channel","port","html","createElement","validateArgumentsLength","IS_IOS","set","setImmediate","clear","clearImmediate","process","Dispatch","MessageChannel","queue","ONREADYSTATECHANGE","run","id","runner","listener","event","data","post","postMessage","protocol","host","handler","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","MAX_SAFE_INTEGER","race","Iterators","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","V8_PROTOTYPE_DEFINE_BUG","objectKeys","defineProperties","Properties","key","props","keys","$String","argument","_assertThisInitialized","self","ReferenceError","InternalStateModule","defineIterator","STRING_ITERATOR","setInternalState","getInternalState","getterFor","iterated","type","point","state","NATIVE_SYMBOL","keyFor","valueOf","arrayWithoutHoles","iterableToArray","nonIterableSpread","_toConsumableArray","create","UNSCOPABLES","ArrayPrototype","b","console","MATCH","$some","some","regExpExec","nativeMatch","regexp","matcher","fullUnicode","matchStr","NativePromiseConstructor","isForced","inspectSource","IS_BROWSER","IS_DENO","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","CONSTRUCTOR","REJECTION_EVENT","aConstructor","defaultConstructor","$trim","trim","forcedStringTrimMethod","_setPrototypeOf","nativeConstruct","ObjectPrototype","NEW_TARGET_BUG","ARGS_BUG","FORCED","sham","Target","newTarget","$args","instance","toAbsoluteIndex","createProperty","max","start","end","k","fin","$filter","filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","callWithSafeIterationClosing","arrayLike","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","iteratorMethod","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","isExtensible","FAILS_ON_PRIMITIVES","toIntegerOrInfinity","getSubstitution","REPLACE","maybeToString","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","_","nativeReplace","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","results","accumulatedResult","nextSourcePosition","j","replacerArgs","SymbolPrototype","TO_PRIMITIVE","hint","arity","whitespaces","whitespace","ltrim","rtrim","createMethod","TYPE","$this","color_string","ok","alpha","substr","toLowerCase","simple_colors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","color_defs","example","bits","parseInt","parseFloat","processor","channels","r","g","isNaN","toRGB","toRGBA","toHex","getHelpXML","examples","sc","xml","document","setAttribute","list_item","list_color","RGBColor","example_div","style","cssText","createTextNode","list_item_value","_arrayLikeToArray","len","arr2","getOwnPropertySymbolsModule","getOwnPropertySymbols","$getOwnPropertySymbols","_defineProperties","enumerable","_createClass","protoProps","staticProps","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","setToStringTag","setSpecies","anInstance","task","microtask","hostReportErrors","PromiseConstructorDetection","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","PromiseConstructor","PromisePrototype","newPromiseCapability","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","isThenable","callReaction","reaction","exited","fail","domain","rejection","onHandleUnhandled","enter","exit","notify","isReject","notified","reactions","onUnhandled","reason","initEvent","facade","IS_UNHANDLED","isUnhandled","emit","parent","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","wrap","Promise","_typeof","obj","_classCallCheck","mulTable","shgTable","getImageDataFromCanvas","canvas","topX","topY","width","height","getElementById","context","getContext","getImageData","Error","processCanvasRGBA","radius","imageData","processImageDataRGBA","putImageData","stackEnd","pixels","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stack","stackIn","stackOut","yw","yi","mulSum","shgSum","y","pr","pg","pb","pa","_i","rInSum","gInSum","bInSum","aInSum","rOutSum","gOutSum","bOutSum","aOutSum","rSum","gSum","bSum","aSum","_i2","rbs","x","paInitial","_a2","_p","_stackOut","_r","_g","_b","_a","_x","_pr","_pg","_pb","_pa","_rOutSum","_gOutSum","_bOutSum","_aOutSum","_rSum","_gSum","_bSum","_aSum","_i3","yp","_gInSum","_bInSum","_aInSum","_rInSum","_i4","_rbs","_y","_p2","checkCorrectnessOfIteration","charCodeAt","CONVERT_TO_STRING","pos","first","second","size","codeAt","defineBuiltIns","fastKey","internalStateGetterFor","getConstructor","IS_MAP","ADDER","last","define","previous","getEntry","removed","prev","has","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","arraySpeciesConstructor","_unsupportedIterableToArray","minLen","noop","empty","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","src","assertThisInitialized","_possibleConstructorReturn","Deno","version","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","hr","uptime","Date","getTime","InternalMetadataModule","inheritIfRequired","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","KEY","uncurriedNativeMethod","entries","enable","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","collection","collectionStrong","init","promiseResolve","PromiseConstructorWrapper","CHECK_WRAPPER","Wrapper","NewTarget","NewTargetPrototype","path","wrappedWellKnownSymbolModule","NAME","documentCreateElement","classList","activeXDocument","definePropertiesModule","enumBugKeys","hiddenKeys","sharedKey","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","display","contentWindow","open","NullProtoObject","ActiveXObject","FunctionName","createIteratorConstructor","IteratorsCore","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","getIterationMethod","KIND","defaultIterator","IterablePrototype","TO_STRING_TAG","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","_regeneratorRuntime","Op","hasOwnProperty","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","err","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","method","arg","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","pop","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","objectGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","endPos","toPropertyKey","createPropertyDescriptor","propertyKey","compressSpaces","trimLeft","trimRight","toNumbers","matches","map","allUppercase","normalizeAttributeName","parseExternalUrl","url","urlMatch","normalizeColor","color","rgbParts","normalizedColor","num","isFloat","round","attributeRegex","idRegex","classRegex","pseudoElementRegex","pseudoClassWithBracketsRegex","pseudoClassRegex","elementRegex","findSelectorMatch","selector","regex","getSelectorSpecificity","specificity","currentSelector","delta","_findSelectorMatch","_findSelectorMatch2","_findSelectorMatch3","_findSelectorMatch4","_findSelectorMatch5","_findSelectorMatch6","_findSelectorMatch7","_findSelectorMatch8","_findSelectorMatch9","_findSelectorMatch10","_findSelectorMatch11","_findSelectorMatch12","_findSelectorMatch13","_findSelectorMatch14","PSEUDO_ZERO","vectorMagnitude","v","sqrt","pow","vectorsRatio","u","vectorsAngle","acos","CB1","t","CB2","CB3","CB4","QB1","QB2","QB3","createCommonjsModule","runtime","undefined$1","makeInvokeMethod","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","enqueue","rootEntry","regeneratorRuntime","accidentalStrictMode","Property","isNormalizedColor","isString","hasValue","asString","getString","def","rootEmSize","emSize","axisOrIsFontSize","processPercent","_ref","_ref2","axis","isFontSize","viewPort","screen","getNumber","computeSize","getRem","getEm","getDpi","PI","definitions","element","opacity","getDefinition","createGradient","ctx","createPattern","getHrefAttribute","patternTransform","getAttribute","setValue","textBaselineMapping","getColor","commas","ViewPort","viewPorts","d","getCurrent","Point","atan2","transform","xp","defaultValue","_toNumbers","_toNumbers2","_toNumbers2$","_toNumbers2$2","scale","_toNumbers3","_toNumbers4","_toNumbers4$","_toNumbers4$2","points","pathPoints","Mouse","working","events","eventElements","onClick","onMouseMove","onclick","onmousemove","cursor","isPointInPath","boundingBox","_ref3","isPointInBox","_this$screen","offsetLeft","offsetTop","offsetParent","scrollX","scrollY","evt","_this$mapXY","mapXY","clientX","clientY","_this$mapXY2","defaultWindow","defaultFetch","fetch","Screen","_ref$fetch","_ref$window","FRAMERATE","MAX_VIRTUAL_PIXELS","CLIENT_WIDTH","CLIENT_HEIGHT","mouse","animations","waits","frameDuration","isReadyLock","isFirstRender","intervalId","checker","readyPromise","every","resolveReady","strokeStyle","lineCap","lineJoin","miterLimit","aspectRatio","desiredWidth","desiredHeight","_ref2$minX","minX","_ref2$minY","minY","refX","refY","_ref2$clip","clip","_ref2$clipX","clipX","_ref2$clipY","clipY","cleanAspectRatio","_cleanAspectRatio$spl","_cleanAspectRatio$spl2","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","_this","_ref3$enableRedraw","enableRedraw","_ref3$ignoreMouse","ignoreMouse","_ref3$ignoreAnimation","ignoreAnimation","_ref3$ignoreDimension","ignoreDimensions","_ref3$ignoreClear","ignoreClear","forceRedraw","scaleWidth","scaleHeight","offsetX","offsetY","isReady","render","tick","shouldUpdate","runEvents","cancel","animation","update","hasEvents","setCurrent","widthStyle","getStyle","heightStyle","cWidth","clientWidth","cHeight","clientHeight","viewBox","xRatio","yRatio","_widthStyle","_heightStyle","transformStyle","clearRect","defaultFetch$1","DefaultDOMParser","DOMParser","Parser","_ref$DOMParser","_parse","_callee","resource","_context","parseFromString","load","parse","parser","checkDocument","parserError","getElementsByTagName","textContent","_load","_callee2","response","_context2","text","_x2","Translate","_this$point","_this$point2","_this$point3","applyTransform","Rotate","rotate","transformOrigin","angle","cx","cy","numbers","getRadians","rad","cos","sin","Scale","scaleSize","parseScale","_this$scale","_this$scale2","_this$scale3","Matrix","matrix","c","h","det","_createSuper","Derived","Super","_isNativeReflectConstruct","Proxy","Skew","_Matrix","_super","skew","_createSuper$1","_isNativeReflectConstruct$1","SkewX","_Skew","_createSuper$2","_isNativeReflectConstruct$2","SkewY","parseTransforms","parseTransform","_transform$split","_transform$split2","Transform","transforms","originCoords","_parseTransform","_parseTransform2","TransformType","transformTypes","unapply","applyToPoint","transformOriginStyle","skewX","skewY","Element","node","captureTextNodes","attributes","styles","stylesSpecificity","animationFrozen","animationFrozenValue","children","nodeType","attribute","nodeName","addStylesFromStyleDefinition","_style$split$map","_style$split$map2","getValue","childNodes","childNode","addChild","textNode","getText","createIfNotExists","attr","_attr","skipAncestors","parentStyle","_style","save","mask","applyEffects","setContext","renderChildren","clearContext","restore","fromElement","clipPathStyleProp","child","ignoreChildTypes","styleClasses","styleClass","_this$document","matchesSelector","existingSpecificity","ignoreStyles","toRestore","styleProp","_createSuper$3","_isNativeReflectConstruct$3","UnknownElement","_Element","wrapFontFamily","fontFamily","trimmed","prepareFontFamily","prepareFontStyle","fontStyle","targetFontStyle","prepareFontWeight","fontWeight","targetFontWeight","Font","fontVariant","fontSize","inherit","inheritFont","font","parts","part","variants","weights","_part$split","_part$split2","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","_createSuper$4","_isNativeReflectConstruct$4","RenderedElement","modifiedEmSizeStack","opacityStyle","fromMeasure","fillStyleProp","fillOpacityStyleProp","strokeStyleProp","strokeOpacityProp","isUrlDefinition","fillStyle","getFillStyleDefinition","_fillStyle","_fillStyle2","addOpacity","_strokeStyle","_strokeStyle2","strokeWidthStyleProp","newLineWidth","lineWidth","strokeLinecapStyleProp","strokeLinejoinStyleProp","strokeMiterlimitProp","pointOrderStyleProp","strokeDasharrayStyleProp","strokeDashoffsetProp","paintOrder","gaps","setLineDash","webkitLineDash","mozDash","offset","lineDashOffset","webkitLineDashOffset","mozDashOffset","fontStyleProp","fontStyleStyleProp","fontVariantStyleProp","fontWeightStyleProp","fontSizeStyleProp","fontFamilyStyleProp","isPixels","globalAlpha","calculateOpacity","popEmSize","_createSuper$5","_isNativeReflectConstruct$5","TextElement","_RenderedElement","measureCache","textBaseline","getTextBaseline","dxAttr","dyAttr","getAnchorDelta","_this2","getTElementBoundingBox","initializeCoordinates","childBoundingBox","getChildBoundingBox","addBoundingBox","inheritFontSize","getFontSize","measureText","char","glyph","isArabic","prevChar","nextChar","arabicForm","glyphs","missingGlyph","parentNode","_this3","renderChild","isWorking","checkBoundingBox","getBoundingBox","renderTElementChildren","renderText","customFont","unitsPerEm","fontFace","ctxFont","isRTL","dx","getGlyph","lw","horizAdvX","strokeText","fillText","startI","textAnchor","measureTextRecursive","textParent","xAttr","yAttr","_width","adjustChildCoordinates","measure","measureTargetText","targetText","_measure","_ctx$measureText","_createSuper$6","_isNativeReflectConstruct$6","TSpanElement","_TextElement","getTextFromNode","_createSuper$7","_isNativeReflectConstruct$7","TextNode","_TSpanElement","preparePath","PathParser","control","current","command","tokens","previousCommand","angles","isEnd","getToken","getScalar","makeAbsolute","getPoint","_this$current","_this$control","ox","oy","isRelativeCommand","_this$current2","priorTo","angleTo","addMarkerAngle","_createSuper$8","_isNativeReflectConstruct$8","PathElement","pathParser","nextCommand","pathM","pathL","pathH","pathV","pathC","pathS","pathQ","pathT","pathA","pathZ","getMarkerPoints","getMarkerAngles","markers","checkPath","fillRuleStyleProp","fill","stroke","getMarkers","markersLastIndex","markerStartStyleProp","markerMidStyleProp","markerEndStyleProp","marker","_markers$","_marker","_markers$i","_point","_angle","_marker2","_markers$markersLastI","_point2","_angle2","getAsCurrentPoint","addMarker","isCommandOrEnd","_point3","controlPoint","getAsControlPoint","currentPoint","bezierCurveTo","getReflectedControlPoint","addQuadraticCurve","quadraticCurveTo","ry","xAxisRotation","largeArcFlag","sweepFlag","currp","l","s","cpp","centp","a1","ad","dir","ah","halfWay","sx","sy","arc","_createSuper$9","_isNativeReflectConstruct$9","SVGElement","root","removeCurrent","setDefaults","getComputedStyle","getPropertyValue","fontSizeProp","_screen$viewPort","refXAttr","refYAttr","viewBoxAttr","setViewBox","preserveAspectRatio","widthAttr","heightAttr","styleAttr","originWidth","originHeight","preserveAspectRatioAttr","_createSuper$a","_isNativeReflectConstruct$a","RectElement","_PathElement","rxAttr","ryAttr","KAPPA","_createSuper$b","_isNativeReflectConstruct$b","CircleElement","_createSuper$c","_isNativeReflectConstruct$c","EllipseElement","_createSuper$d","_isNativeReflectConstruct$d","LineElement","_this$getPoints","getPoints","_this$getPoints2","_this$getPoints2$","x0","y0","_this$getPoints2$2","_this$getPoints3","_this$getPoints4","_createSuper$e","_isNativeReflectConstruct$e","PolylineElement","parsePath","_points","_points$","_createSuper$f","_isNativeReflectConstruct$f","PolygonElement","_PolylineElement","_this$points","_this$points$","_createSuper$g","_isNativeReflectConstruct$g","PatternElement","parentOpacityProp","patternSvg","patternCanvas","createCanvas","patternCtx","deleteProperty","_createSuper$h","_isNativeReflectConstruct$h","MarkerElement","orient","markerUnits","markerSvg","overflow","_createSuper$i","_isNativeReflectConstruct$i","DefsElement","_createSuper$j","_isNativeReflectConstruct$j","GElement","_createSuper$k","_isNativeReflectConstruct$k","GradientElement","attributesToInherit","stops","_assertThisInitialize","stopsContainer","inheritStopContainer","_stopsContainer","gradient","getGradient","addParentOpacity","addColorStop","_document$screen","_viewPort$viewPorts","rootView","rect","group","attributeToInherit","colorProp","_createSuper$l","_isNativeReflectConstruct$l","LinearGradientElement","_GradientElement","isBoundingBoxUnits","getGradientUnits","createLinearGradient","_createSuper$m","_isNativeReflectConstruct$m","RadialGradientElement","fx","fy","fr","createRadialGradient","_createSuper$n","_isNativeReflectConstruct$n","StopElement","stopOpacity","stopColor","_createSuper$o","_isNativeReflectConstruct$o","AnimateElement","duration","initialValue","initialUnits","frozen","begin","getMilliseconds","maxDuration","to","attributeType","attributeName","_this$getProgress","getProgress","progress","newValue","prop","getProperty","getUnits","updated","calcValue","typeAttr","lb","ub","ceil","_createSuper$p","_isNativeReflectConstruct$p","AnimateColorElement","_AnimateElement","colorFrom","colorTo","_createSuper$q","_isNativeReflectConstruct$q","AnimateTransformElement","transformFrom","transformTo","_createForOfIteratorHelper","_e","normalCompletion","didErr","_e2","return","_createSuper$r","_isNativeReflectConstruct$r","FontElement","_step","_iterator","fontFamilyStyle","_createSuper$s","_isNativeReflectConstruct$s","FontFaceElement","ascent","descent","_createSuper$t","_isNativeReflectConstruct$t","MissingGlyphElement","_createSuper$u","_isNativeReflectConstruct$u","GlyphElement","_createSuper$v","_isNativeReflectConstruct$v","TRefElement","firstChild","_createSuper$w","_isNativeReflectConstruct$w","AElement","hasText","_createForOfIteratorHelper$1","_unsupportedIterableToArray$1","_arrayLikeToArray$1","_createSuper$x","_isNativeReflectConstruct$x","TextPathElement","textWidth","textHeight","pathLength","glyphInfo","letterSpacingCache","measuresCache","Map","pathElement","dataArray","parsePathData","theta","dTheta","psi","fs","setTextData","textDecoration","partialText","rotation","idx","anchor","textFullWidth","fullPathWidth","spacesNumber","inputOffset","charI","glyphWidth","getLetterSpacingAt","splineStep","segment","getEquidistantPointOnPath","chars","thisSpacing","parentSpacing","letterSpacing","textLen","dxSum","acc","cur","getPathLength","startOffset","_this2$findSegmentToF","findSegmentToFitChar","nextOffset","getLineLength","kern","midpoint","getPointOnLine","transposeX","transposeY","pathCommands","startX","startY","cmd","upperCommand","toUpperCase","calcLength","getPointOnCubicBezier","getPointOnQuadraticBezier","inc","abs","getPointOnEllipticalArc","dist","P1x","P1y","P2x","P2y","fromX","fromY","rise","pt","ix","iy","pRise","pRun","distance","fullLen","cumulativePathLength","pathCmd","currentT","pct","P3x","P3y","P4x","P4y","cosPsi","sinPsi","inputStep","inputPrecision","precision","equidistantCache","getPointOnPath","targetDistance","buildEquidistantCache","_createSuper$y","_isNativeReflectConstruct$y","ImageElement","loaded","href","isSvg","images","loadSvg","loadImage","_loadImage","image","createImage","t0","_loadSvg","svg","canvg","forkString","_image","drawImage","_createSuper$z","_isNativeReflectConstruct$z","SymbolElement","SVGFontLoader","fonts","svgDocument","fontNode","_createSuper$A","_isNativeReflectConstruct$A","StyleElement","css","cssDefs","cssParts","cssClasses","cssProps","cssClass","cssProp","srcs","_createSuper$B","_isNativeReflectConstruct$B","UseElement","tempSvg","oldParent","_element","_createSuper$C","_isNativeReflectConstruct$C","imGet","img","rgba","imSet","val","mi","m1","m2","m3","FeColorMatrixElement","includeOpacity","__","srcData","nr","ng","nb","na","_createSuper$D","_isNativeReflectConstruct$D","MaskElement","ignoredStyles","removeStyles","maskCanvas","maskCtx","tmpCanvas","tmpCtx","globalCompositeOperation","fillRect","restoreStyles","_createSuper$E","_isNativeReflectConstruct$E","ClipPathElement","contextProto","elementTransform","_createSuper$F","_isNativeReflectConstruct$F","FilterElement","px","py","efd","extraFilterDistance","tmpCanvasWidth","tmpCanvasHeight","_createSuper$G","_isNativeReflectConstruct$G","FeDropShadowElement","___","____","_____","_createSuper$H","_isNativeReflectConstruct$H","FeMorphologyElement","_createSuper$I","_isNativeReflectConstruct$I","FeCompositeElement","_createSuper$J","_isNativeReflectConstruct$J","FeGaussianBlurElement","blurRadius","body","getUniqueId","_createSuper$K","_isNativeReflectConstruct$K","TitleElement","_createSuper$L","_isNativeReflectConstruct$L","DescElement","elementTypes","ownKeys","enumerableOnly","sym","_objectSpread","getOwnPropertyDescriptors","_createImage","anonymousCrossOrigin","_args","crossOrigin","onload","onerror","Document","_ref$rootEmSize","_ref$emSize","_ref$createCanvas","_ref$createImage","emSizeStack","uniqueId","bindCreateImage","wait","isImagesLoaded","isFontsLoaded","forceAnonymousCrossOrigin","documentElement","elementType","ElementType","config","ownKeys$1","_objectSpread$1","Canvg","createDocumentElement","fromString","ready","_render","baseOptions","resize","_from","_args2","offscreen","DOMParserFallback","preset","OffscreenCanvas","blob","createImageBitmap","freeze","superPropBase","_get","property","receiver","base","desc","regExpFlags","regexpFlags","shared","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","raw","charsAdded","strCopy","input","_defineProperty","doesNotExceedSafeInteger","arraySpeciesCreate","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","usingIterator","_iterableToArrayLimit","_s","_arr","_n","_d","ENUMERABLE_NEXT","_superPropBase","MISSED_STICKY","IndexedObject","un$Join","ES3_STRINGS","globalThis","$every","INCORRECT_ITERATION","functionApply","OPTIONAL_ARGUMENTS_LIST","thisArgument","argumentsList","isSymbol","toPrimitive","thisNumberValue","NUMBER","NativeNumber","NumberPrototype","toNumeric","primValue","toNumber","third","radix","maxCode","digits","code","NumberWrapper","error1","error2","cause","hasIndices","dotAll","unicodeSets","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","Source","TO_STRING_TAG_SUPPORT","FUNCTION_NAME_EXISTS","EXISTS","functionToString","nameRE","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","symbol","flush","toggle","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","observe","characterData","nativeKeys","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","specificCreate","find","findIndex","filterReject","preventExtensions","_arrayWithHoles","_nonIterableRest","vendors","suffix","raf","caf","callback","_now","cp","cancelled","polyfill","requestAnimationFrame","cancelAnimationFrame","$Error","TEST","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","prepareStackTrace","non","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","$IndexOf","un$IndexOf","NEGATIVE_ZERO","searchElement","fromIndex","$includes","addToUnscopables","BROKEN_ON_SPARSE","el","real","promiseCapability","defineWellKnownSymbol","aPossiblePrototype","setter","CORRECT_SETTER","TAG","STATIC","Pebble","IS_RIGHT","memo","right","passed","required","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","uncurriedNativeRegExpMethod","nativeMethod","arg2","forceStringMethod","$exec","$map","ArrayBuffer","buffer","wrapErrorConstructorWithCause","WEB_ASSEMBLY","WebAssembly","exportGlobalErrorCauseWrapper","ERROR_NAME","exportWebAssemblyErrorCauseWrapper","message","nativeObjectCreate","getOwnPropertyNamesModule","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","propertyIsEnumerableModule","uid","defineSymbolToPrimitive","HIDDEN","QObject","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","WellKnownSymbolsStore","USE_SETTER","findChild","setSymbolDescriptor","P","Attributes","ObjectPrototypeDescriptor","tag","description","$defineProperty","$defineProperties","properties","$propertyIsEnumerable","$create","V","$getOwnPropertyDescriptor","names","IS_OBJECT_PROTOTYPE","useSetter","useSimple","ArrayIteratorMethods","ArrayValues","internalObjectKeys","copyConstructorProperties","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolToString","symbolValueOf","$Object","ARRAY_ITERATOR","Arguments","$default","proxyAccessor","normalizeStringArgument","installErrorCause","clearErrorStack","ERROR_STACK_INSTALLABLE","FULL_NAME","IS_AGGREGATE_ERROR","STACK_TRACE_LIMIT","OPTIONS_POSITION","OriginalError","OriginalErrorPrototype","BaseError","WrappedError","$stringify","numberToString","tester","low","hi","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","$replacer","fixIllFormed","stringify","space","_inherits","subClass","superClass","PromiseCapability","$$resolve","$$reject","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","getWeakData","onFreeze","meta","splice","un$Slice","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"],"mappings":"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AK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClwCC,EAAW,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI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","file":"js/canvg.c7cfb219.js","sourcesContent":["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 if (this.head) this.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 this.head = entry.next;\n if (this.tail === entry) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var uncurryThis = require('../internals/function-uncurry-this');\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 uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar $Function = Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!hasOwn(factories, argsLength)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) {\n var F = aCallable(this);\n var Prototype = F.prototype;\n var partArgs = arraySlice(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = concat(partArgs, arraySlice(arguments));\n return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n };\n if (isObject(Prototype)) boundFunction.prototype = Prototype;\n return boundFunction;\n};\n","/* eslint-disable es-x/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\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);\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 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","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'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 isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\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 = separator == undefined ? 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","'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\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\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;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\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 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","'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 global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es-x/no-array-prototype-foreach -- safe\n} : [].forEach;\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 getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\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-x/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 userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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","'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","'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 n$ToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.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","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\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 var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar un$Reverse = 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 un$Reverse(this);\n }\n});\n","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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","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-x/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\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-x/no-string-prototype-startswith -- safe\nvar un$StartsWith = 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 un$StartsWith\n ? un$StartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\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\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\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 listener = function (event) {\n run(event.data);\n};\n\nvar post = 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 = listener;\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(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, 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 $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\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","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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-x/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","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","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\n/* eslint-disable es-x/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n// eslint-disable-next-line es-x/no-array-prototype-foreach -- safe\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\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","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\n\n// `Array.prototype.some` method\n// https://tc39.es/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\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 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 = regexp == undefined ? 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');\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 anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\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 || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\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","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n apply(push, $args, args);\n return new (apply(bind, Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : ObjectPrototype);\n var result = apply(Target, instance, args);\n return isObject(result) ? result : instance;\n }\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","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es-x/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\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 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 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 = searchValue == undefined ? 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","var call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\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 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 whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\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, '');\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","/*\n\tBased on rgbcolor.js by Stoyan Stefanov \n\thttp://www.phpied.com/rgb-color-parser-in-javascript/\n*/\n\nmodule.exports = function(color_string) {\n this.ok = false;\n this.alpha = 1.0;\n\n // strip any leading #\n if (color_string.charAt(0) == '#') { // remove # if any\n color_string = color_string.substr(1,6);\n }\n\n color_string = color_string.replace(/ /g,'');\n color_string = color_string.toLowerCase();\n\n // before getting into regexps, try simple matches\n // and overwrite the input\n var simple_colors = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dodgerblue: '1e90ff',\n feldspar: 'd19275',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred : 'cd5c5c',\n indigo : '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgrey: 'd3d3d3',\n lightgreen: '90ee90',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslateblue: '8470ff',\n lightslategray: '778899',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '00ff00',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'ff00ff',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370d8',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'd87093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '663399',\n red: 'ff0000',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n violetred: 'd02090',\n wheat: 'f5deb3',\n white: 'ffffff',\n whitesmoke: 'f5f5f5',\n yellow: 'ffff00',\n yellowgreen: '9acd32'\n };\n color_string = simple_colors[color_string] || color_string;\n // emd of simple type-in colors\n\n // array of color definition objects\n var color_defs = [\n {\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*((?:\\d?\\.)?\\d)\\)$/,\n example: ['rgba(123, 234, 45, 0.8)', 'rgba(255,234,245,1.0)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3]),\n parseFloat(bits[4])\n ];\n }\n },\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3])\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n example: ['#00ff00', '336699'],\n process: function (bits){\n return [\n parseInt(bits[1], 16),\n parseInt(bits[2], 16),\n parseInt(bits[3], 16)\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n example: ['#fb0', 'f0f'],\n process: function (bits){\n return [\n parseInt(bits[1] + bits[1], 16),\n parseInt(bits[2] + bits[2], 16),\n parseInt(bits[3] + bits[3], 16)\n ];\n }\n }\n ];\n\n // search through the definitions to find a match\n for (var i = 0; i < color_defs.length; i++) {\n var re = color_defs[i].re;\n var processor = color_defs[i].process;\n var bits = re.exec(color_string);\n if (bits) {\n var channels = processor(bits);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n if (channels.length > 3) {\n this.alpha = channels[3];\n }\n this.ok = true;\n }\n\n }\n\n // validate/cleanup values\n this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);\n this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);\n this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);\n this.alpha = (this.alpha < 0) ? 0 : ((this.alpha > 1.0 || isNaN(this.alpha)) ? 1.0 : this.alpha);\n\n // some getters\n this.toRGB = function () {\n return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';\n }\n this.toRGBA = function () {\n return 'rgba(' + this.r + ', ' + this.g + ', ' + this.b + ', ' + this.alpha + ')';\n }\n this.toHex = function () {\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n if (r.length == 1) r = '0' + r;\n if (g.length == 1) g = '0' + g;\n if (b.length == 1) b = '0' + b;\n return '#' + r + g + b;\n }\n\n // help\n this.getHelpXML = function () {\n\n var examples = new Array();\n // add regexps\n for (var i = 0; i < color_defs.length; i++) {\n var example = color_defs[i].example;\n for (var j = 0; j < example.length; j++) {\n examples[examples.length] = example[j];\n }\n }\n // add type-in colors\n for (var sc in simple_colors) {\n examples[examples.length] = sc;\n }\n\n var xml = document.createElement('ul');\n xml.setAttribute('id', 'rgbcolor-examples');\n for (var i = 0; i < examples.length; i++) {\n try {\n var list_item = document.createElement('li');\n var list_color = new RGBColor(examples[i]);\n var example_div = document.createElement('div');\n example_div.style.cssText =\n 'margin: 3px; '\n + 'border: 1px solid black; '\n + 'background:' + list_color.toHex() + '; '\n + 'color:' + list_color.toHex()\n ;\n example_div.appendChild(document.createTextNode('test'));\n var list_item_value = document.createTextNode(\n ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()\n );\n list_item.appendChild(example_div);\n list_item.appendChild(list_item_value);\n xml.appendChild(list_item);\n\n } catch(e){}\n }\n return xml;\n\n }\n\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","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'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","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\n/* eslint-disable no-bitwise -- used for calculations */\n\n/* eslint-disable unicorn/prefer-query-selector -- aiming at\n backward-compatibility */\n\n/**\n* StackBlur - a fast almost Gaussian Blur For Canvas\n*\n* In case you find this class useful - especially in commercial projects -\n* I am not totally unhappy for a small donation to my PayPal account\n* mario@quasimondo.de\n*\n* Or support me on flattr:\n* {@link https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript}.\n*\n* @module StackBlur\n* @author Mario Klingemann\n* Contact: mario@quasimondo.com\n* Website: {@link http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html}\n* Twitter: @quasimondo\n*\n* @copyright (c) 2010 Mario Klingemann\n*\n* Permission is hereby granted, free of charge, to any person\n* obtaining a copy of this software and associated documentation\n* files (the \"Software\"), to deal in the Software without\n* restriction, including without limitation the rights to use,\n* copy, modify, merge, publish, distribute, sublicense, and/or sell\n* copies of the Software, and to permit persons to whom the\n* Software is furnished to do so, subject to the following\n* conditions:\n*\n* The above copyright notice and this permission notice shall be\n* included in all copies or substantial portions of the Software.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n* OTHER DEALINGS IN THE SOFTWARE.\n*/\nvar mulTable = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259];\nvar shgTable = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];\n/**\n * @param {string|HTMLImageElement} img\n * @param {string|HTMLCanvasElement} canvas\n * @param {Float} radius\n * @param {boolean} blurAlphaChannel\n * @param {boolean} useOffset\n * @param {boolean} skipStyles\n * @returns {undefined}\n */\n\nfunction processImage(img, canvas, radius, blurAlphaChannel, useOffset, skipStyles) {\n if (typeof img === 'string') {\n img = document.getElementById(img);\n }\n\n if (!img || !('naturalWidth' in img)) {\n return;\n }\n\n var dimensionType = useOffset ? 'offset' : 'natural';\n var w = img[dimensionType + 'Width'];\n var h = img[dimensionType + 'Height'];\n\n if (typeof canvas === 'string') {\n canvas = document.getElementById(canvas);\n }\n\n if (!canvas || !('getContext' in canvas)) {\n return;\n }\n\n if (!skipStyles) {\n canvas.style.width = w + 'px';\n canvas.style.height = h + 'px';\n }\n\n canvas.width = w;\n canvas.height = h;\n var context = canvas.getContext('2d');\n context.clearRect(0, 0, w, h);\n context.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, w, h);\n\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n if (blurAlphaChannel) {\n processCanvasRGBA(canvas, 0, 0, w, h, radius);\n } else {\n processCanvasRGB(canvas, 0, 0, w, h, radius);\n }\n}\n/**\n * @param {string|HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @throws {Error|TypeError}\n * @returns {ImageData} See {@link https://html.spec.whatwg.org/multipage/canvas.html#imagedata}\n */\n\n\nfunction getImageDataFromCanvas(canvas, topX, topY, width, height) {\n if (typeof canvas === 'string') {\n canvas = document.getElementById(canvas);\n }\n\n if (!canvas || _typeof(canvas) !== 'object' || !('getContext' in canvas)) {\n throw new TypeError('Expecting canvas with `getContext` method ' + 'in processCanvasRGB(A) calls!');\n }\n\n var context = canvas.getContext('2d');\n\n try {\n return context.getImageData(topX, topY, width, height);\n } catch (e) {\n throw new Error('unable to access image data: ' + e);\n }\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGBA(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGBA(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGBA(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null,\n stackOut = null,\n yw = 0,\n yi = 0;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n\n for (var y = 0; y < height; y++) {\n stack = stackStart;\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n pa = pixels[yi + 3];\n\n for (var _i = 0; _i < radiusPlus1; _i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0,\n aInSum = 0,\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n aOutSum = radiusPlus1 * pa,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb,\n aSum = sumFactor * pa;\n\n for (var _i2 = 1; _i2 < radiusPlus1; _i2++) {\n var p = yi + ((widthMinus1 < _i2 ? widthMinus1 : _i2) << 2);\n var r = pixels[p],\n g = pixels[p + 1],\n b = pixels[p + 2],\n a = pixels[p + 3];\n var rbs = radiusPlus1 - _i2;\n rSum += (stack.r = r) * rbs;\n gSum += (stack.g = g) * rbs;\n bSum += (stack.b = b) * rbs;\n aSum += (stack.a = a) * rbs;\n rInSum += r;\n gInSum += g;\n bInSum += b;\n aInSum += a;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n var paInitial = aSum * mulSum >> shgSum;\n pixels[yi + 3] = paInitial;\n\n if (paInitial !== 0) {\n var _a2 = 255 / paInitial;\n\n pixels[yi] = (rSum * mulSum >> shgSum) * _a2;\n pixels[yi + 1] = (gSum * mulSum >> shgSum) * _a2;\n pixels[yi + 2] = (bSum * mulSum >> shgSum) * _a2;\n } else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n aSum -= aOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n aOutSum -= stackIn.a;\n\n var _p = x + radius + 1;\n\n _p = yw + (_p < widthMinus1 ? _p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[_p];\n gInSum += stackIn.g = pixels[_p + 1];\n bInSum += stackIn.b = pixels[_p + 2];\n aInSum += stackIn.a = pixels[_p + 3];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n aSum += aInSum;\n stackIn = stackIn.next;\n var _stackOut = stackOut,\n _r = _stackOut.r,\n _g = _stackOut.g,\n _b = _stackOut.b,\n _a = _stackOut.a;\n rOutSum += _r;\n gOutSum += _g;\n bOutSum += _b;\n aOutSum += _a;\n rInSum -= _r;\n gInSum -= _g;\n bInSum -= _b;\n aInSum -= _a;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x = 0; _x < width; _x++) {\n yi = _x << 2;\n\n var _pr = pixels[yi],\n _pg = pixels[yi + 1],\n _pb = pixels[yi + 2],\n _pa = pixels[yi + 3],\n _rOutSum = radiusPlus1 * _pr,\n _gOutSum = radiusPlus1 * _pg,\n _bOutSum = radiusPlus1 * _pb,\n _aOutSum = radiusPlus1 * _pa,\n _rSum = sumFactor * _pr,\n _gSum = sumFactor * _pg,\n _bSum = sumFactor * _pb,\n _aSum = sumFactor * _pa;\n\n stack = stackStart;\n\n for (var _i3 = 0; _i3 < radiusPlus1; _i3++) {\n stack.r = _pr;\n stack.g = _pg;\n stack.b = _pb;\n stack.a = _pa;\n stack = stack.next;\n }\n\n var yp = width;\n var _gInSum = 0,\n _bInSum = 0,\n _aInSum = 0,\n _rInSum = 0;\n\n for (var _i4 = 1; _i4 <= radius; _i4++) {\n yi = yp + _x << 2;\n\n var _rbs = radiusPlus1 - _i4;\n\n _rSum += (stack.r = _pr = pixels[yi]) * _rbs;\n _gSum += (stack.g = _pg = pixels[yi + 1]) * _rbs;\n _bSum += (stack.b = _pb = pixels[yi + 2]) * _rbs;\n _aSum += (stack.a = _pa = pixels[yi + 3]) * _rbs;\n _rInSum += _pr;\n _gInSum += _pg;\n _bInSum += _pb;\n _aInSum += _pa;\n stack = stack.next;\n\n if (_i4 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y = 0; _y < height; _y++) {\n var _p2 = yi << 2;\n\n pixels[_p2 + 3] = _pa = _aSum * mulSum >> shgSum;\n\n if (_pa > 0) {\n _pa = 255 / _pa;\n pixels[_p2] = (_rSum * mulSum >> shgSum) * _pa;\n pixels[_p2 + 1] = (_gSum * mulSum >> shgSum) * _pa;\n pixels[_p2 + 2] = (_bSum * mulSum >> shgSum) * _pa;\n } else {\n pixels[_p2] = pixels[_p2 + 1] = pixels[_p2 + 2] = 0;\n }\n\n _rSum -= _rOutSum;\n _gSum -= _gOutSum;\n _bSum -= _bOutSum;\n _aSum -= _aOutSum;\n _rOutSum -= stackIn.r;\n _gOutSum -= stackIn.g;\n _bOutSum -= stackIn.b;\n _aOutSum -= stackIn.a;\n _p2 = _x + ((_p2 = _y + radiusPlus1) < heightMinus1 ? _p2 : heightMinus1) * width << 2;\n _rSum += _rInSum += stackIn.r = pixels[_p2];\n _gSum += _gInSum += stackIn.g = pixels[_p2 + 1];\n _bSum += _bInSum += stackIn.b = pixels[_p2 + 2];\n _aSum += _aInSum += stackIn.a = pixels[_p2 + 3];\n stackIn = stackIn.next;\n _rOutSum += _pr = stackOut.r;\n _gOutSum += _pg = stackOut.g;\n _bOutSum += _pb = stackOut.b;\n _aOutSum += _pa = stackOut.a;\n _rInSum -= _pr;\n _gInSum -= _pg;\n _bInSum -= _pb;\n _aInSum -= _pa;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGB(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGB(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGB(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null;\n var stackOut = null;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n var p, rbs;\n var yw = 0,\n yi = 0;\n\n for (var y = 0; y < height; y++) {\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb;\n stack = stackStart;\n\n for (var _i5 = 0; _i5 < radiusPlus1; _i5++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0;\n\n for (var _i6 = 1; _i6 < radiusPlus1; _i6++) {\n p = yi + ((widthMinus1 < _i6 ? widthMinus1 : _i6) << 2);\n rSum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - _i6);\n gSum += (stack.g = pg = pixels[p + 1]) * rbs;\n bSum += (stack.b = pb = pixels[p + 2]) * rbs;\n rInSum += pr;\n gInSum += pg;\n bInSum += pb;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n pixels[yi] = rSum * mulSum >> shgSum;\n pixels[yi + 1] = gSum * mulSum >> shgSum;\n pixels[yi + 2] = bSum * mulSum >> shgSum;\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n p = yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[p];\n gInSum += stackIn.g = pixels[p + 1];\n bInSum += stackIn.b = pixels[p + 2];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n stackIn = stackIn.next;\n rOutSum += pr = stackOut.r;\n gOutSum += pg = stackOut.g;\n bOutSum += pb = stackOut.b;\n rInSum -= pr;\n gInSum -= pg;\n bInSum -= pb;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x2 = 0; _x2 < width; _x2++) {\n yi = _x2 << 2;\n\n var _pr2 = pixels[yi],\n _pg2 = pixels[yi + 1],\n _pb2 = pixels[yi + 2],\n _rOutSum2 = radiusPlus1 * _pr2,\n _gOutSum2 = radiusPlus1 * _pg2,\n _bOutSum2 = radiusPlus1 * _pb2,\n _rSum2 = sumFactor * _pr2,\n _gSum2 = sumFactor * _pg2,\n _bSum2 = sumFactor * _pb2;\n\n stack = stackStart;\n\n for (var _i7 = 0; _i7 < radiusPlus1; _i7++) {\n stack.r = _pr2;\n stack.g = _pg2;\n stack.b = _pb2;\n stack = stack.next;\n }\n\n var _rInSum2 = 0,\n _gInSum2 = 0,\n _bInSum2 = 0;\n\n for (var _i8 = 1, yp = width; _i8 <= radius; _i8++) {\n yi = yp + _x2 << 2;\n _rSum2 += (stack.r = _pr2 = pixels[yi]) * (rbs = radiusPlus1 - _i8);\n _gSum2 += (stack.g = _pg2 = pixels[yi + 1]) * rbs;\n _bSum2 += (stack.b = _pb2 = pixels[yi + 2]) * rbs;\n _rInSum2 += _pr2;\n _gInSum2 += _pg2;\n _bInSum2 += _pb2;\n stack = stack.next;\n\n if (_i8 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x2;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y2 = 0; _y2 < height; _y2++) {\n p = yi << 2;\n pixels[p] = _rSum2 * mulSum >> shgSum;\n pixels[p + 1] = _gSum2 * mulSum >> shgSum;\n pixels[p + 2] = _bSum2 * mulSum >> shgSum;\n _rSum2 -= _rOutSum2;\n _gSum2 -= _gOutSum2;\n _bSum2 -= _bOutSum2;\n _rOutSum2 -= stackIn.r;\n _gOutSum2 -= stackIn.g;\n _bOutSum2 -= stackIn.b;\n p = _x2 + ((p = _y2 + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width << 2;\n _rSum2 += _rInSum2 += stackIn.r = pixels[p];\n _gSum2 += _gInSum2 += stackIn.g = pixels[p + 1];\n _bSum2 += _bInSum2 += stackIn.b = pixels[p + 2];\n stackIn = stackIn.next;\n _rOutSum2 += _pr2 = stackOut.r;\n _gOutSum2 += _pg2 = stackOut.g;\n _bOutSum2 += _pb2 = stackOut.b;\n _rInSum2 -= _pr2;\n _gInSum2 -= _pg2;\n _bInSum2 -= _pb2;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n *\n */\n\n\nvar BlurStack =\n/**\n * Set properties.\n */\nfunction BlurStack() {\n _classCallCheck(this, BlurStack);\n\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n};\n\nexport { BlurStack, processCanvasRGB as canvasRGB, processCanvasRGBA as canvasRGBA, processImage as image, processImageDataRGB as imageDataRGB, processImageDataRGBA as imageDataRGBA };\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 classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\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","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 defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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 defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'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","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\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","/* 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-x/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","'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/create-iterator-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","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nfunction _regeneratorRuntime() {\n \"use strict\";\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return generator._invoke = function (innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }(innerFn, self, context), generator;\n }\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n exports.wrap = wrap;\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n\n reject(record.arg);\n }\n\n var previousPromise;\n\n this._invoke = function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n\n return next.value = undefined, next.done = !0, next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\n\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\n// `Reflect.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-reflect.getprototypeof\n$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(target) {\n return objectGetPrototypeOf(anObject(target));\n }\n});\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = lengthOfArrayLike(O);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\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","import 'core-js/modules/es.array.map';\nimport 'core-js/modules/es.regexp.exec';\nimport 'core-js/modules/es.string.match';\nimport 'core-js/modules/es.string.replace';\nimport 'core-js/modules/es.string.starts-with';\nimport 'core-js/modules/es.array.join';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport 'core-js/modules/es.symbol';\nimport 'core-js/modules/es.array.filter';\nimport 'core-js/modules/es.array.for-each';\nimport 'core-js/modules/es.object.get-own-property-descriptor';\nimport 'core-js/modules/es.object.get-own-property-descriptors';\nimport 'core-js/modules/es.object.keys';\nimport 'core-js/modules/web.dom-collections.for-each';\nimport _regeneratorRuntime from '@babel/runtime/regenerator';\nimport _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _classCallCheck from '@babel/runtime/helpers/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/createClass';\nimport 'core-js/modules/es.array.concat';\nimport 'core-js/modules/es.array.every';\nimport 'core-js/modules/es.array.reduce';\nimport 'core-js/modules/es.object.to-string';\nimport 'core-js/modules/es.promise';\nimport 'core-js/modules/es.string.split';\nimport requestAnimationFrame from 'raf';\nimport 'core-js/modules/es.function.name';\nimport RGBColor from 'rgbcolor';\nimport 'core-js/modules/es.reflect.construct';\nimport 'core-js/modules/es.regexp.to-string';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';\nimport _inherits from '@babel/runtime/helpers/inherits';\nimport 'core-js/modules/es.array.from';\nimport 'core-js/modules/es.array.includes';\nimport 'core-js/modules/es.array.some';\nimport 'core-js/modules/es.string.includes';\nimport 'core-js/modules/es.string.iterator';\nimport 'core-js/modules/es.string.trim';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport 'core-js/modules/es.array.index-of';\nimport 'core-js/modules/es.array.reverse';\nimport _get from '@babel/runtime/helpers/get';\nimport 'core-js/modules/es.number.constructor';\nimport 'core-js/modules/es.array.fill';\nimport 'core-js/modules/es.reflect.delete-property';\nimport _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';\nimport 'core-js/modules/es.array.iterator';\nimport 'core-js/modules/web.dom-collections.iterator';\nimport 'core-js/modules/es.symbol.description';\nimport 'core-js/modules/es.symbol.iterator';\nimport 'core-js/modules/es.array.slice';\nimport 'core-js/modules/es.map';\nimport 'core-js/modules/es.reflect.apply';\nimport 'core-js/modules/es.reflect.get-prototype-of';\nimport { canvasRGBA } from 'stackblur-canvas';\n\n/**\n * HTML-safe compress white-spaces.\n * @param str - String to compress.\n */\nfunction compressSpaces(str) {\n return str.replace(/(?!\\u3000)\\s+/gm, ' ');\n}\n/**\n * HTML-safe left trim.\n * @param str - String to trim.\n */\n\nfunction trimLeft(str) {\n return str.replace(/^[\\n \\t]+/, '');\n}\n/**\n * HTML-safe right trim.\n * @param str - String to trim.\n */\n\nfunction trimRight(str) {\n return str.replace(/[\\n \\t]+$/, '');\n}\n/**\n * String to numbers array.\n * @param str - Numbers string.\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/**\n * Normalize attribute name.\n * @param name - Attribute name.\n */\n\nfunction normalizeAttributeName(name) {\n if (allUppercase.test(name)) {\n return name.toLowerCase();\n }\n\n return name;\n}\n/**\n * Parse external URL.\n * @param url - CSS url string.\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.match(/url\\(('([^']+)'|\"([^\"]+)\"|([^'\"\\)]+))\\)/) || [];\n return urlMatch[2] || urlMatch[3] || urlMatch[4];\n}\n/**\n * Transform floats to integers in rgb colors.\n * @param color - Color to normalize.\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, function (num, isFloat) {\n return rgbParts-- && isFloat ? String(Math.round(parseFloat(num))) : num;\n });\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 = selector.match(regex);\n\n if (!matches) {\n return [selector, 0];\n }\n\n return [selector.replace(regex, ' '), matches.length];\n}\n/**\n * Measure selector specificity.\n * @param selector - Selector to measure.\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\n var _findSelectorMatch = findSelectorMatch(currentSelector, attributeRegex);\n\n var _findSelectorMatch2 = _slicedToArray(_findSelectorMatch, 2);\n\n currentSelector = _findSelectorMatch2[0];\n delta = _findSelectorMatch2[1];\n specificity[1] += delta;\n\n var _findSelectorMatch3 = findSelectorMatch(currentSelector, idRegex);\n\n var _findSelectorMatch4 = _slicedToArray(_findSelectorMatch3, 2);\n\n currentSelector = _findSelectorMatch4[0];\n delta = _findSelectorMatch4[1];\n specificity[0] += delta;\n\n var _findSelectorMatch5 = findSelectorMatch(currentSelector, classRegex);\n\n var _findSelectorMatch6 = _slicedToArray(_findSelectorMatch5, 2);\n\n currentSelector = _findSelectorMatch6[0];\n delta = _findSelectorMatch6[1];\n specificity[1] += delta;\n\n var _findSelectorMatch7 = findSelectorMatch(currentSelector, pseudoElementRegex);\n\n var _findSelectorMatch8 = _slicedToArray(_findSelectorMatch7, 2);\n\n currentSelector = _findSelectorMatch8[0];\n delta = _findSelectorMatch8[1];\n specificity[2] += delta;\n\n var _findSelectorMatch9 = findSelectorMatch(currentSelector, pseudoClassWithBracketsRegex);\n\n var _findSelectorMatch10 = _slicedToArray(_findSelectorMatch9, 2);\n\n currentSelector = _findSelectorMatch10[0];\n delta = _findSelectorMatch10[1];\n specificity[1] += delta;\n\n var _findSelectorMatch11 = findSelectorMatch(currentSelector, pseudoClassRegex);\n\n var _findSelectorMatch12 = _slicedToArray(_findSelectorMatch11, 2);\n\n currentSelector = _findSelectorMatch12[0];\n delta = _findSelectorMatch12[1];\n specificity[1] += delta;\n currentSelector = currentSelector.replace(/[\\*\\s\\+>~]/g, ' ').replace(/[#\\.]/g, ' ');\n\n var _findSelectorMatch13 = findSelectorMatch(currentSelector, elementRegex);\n\n var _findSelectorMatch14 = _slicedToArray(_findSelectorMatch13, 2);\n\n currentSelector = _findSelectorMatch14[0];\n delta = _findSelectorMatch14[1];\n // lgtm [js/useless-assignment-to-local]\n specificity[2] += delta;\n return specificity.join('');\n}\n\nvar PSEUDO_ZERO = .00000001;\n/**\n * Vector magnitude.\n */\n\nfunction vectorMagnitude(v) {\n return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2));\n}\n/**\n * Ratio between two vectors.\n */\n\nfunction vectorsRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vectorMagnitude(u) * vectorMagnitude(v));\n}\n/**\n * Angle between two vectors.\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\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar runtime_1 = createCommonjsModule(function (module) {\n /**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n var runtime = function (exports) {\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined$1; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\"; // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined$1) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined$1;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined$1;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\"; // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined$1;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined$1,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function (skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined$1;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined$1;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined$1;\n }\n }\n }\n },\n stop: function () {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function (exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined$1;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function (type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function (record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function (finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function (tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function (iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined$1;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n }( // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n module.exports );\n\n try {\n regeneratorRuntime = runtime;\n } catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n});\n\nvar Property = /*#__PURE__*/function () {\n function Property(document, name, value) {\n _classCallCheck(this, Property);\n\n this.document = document;\n this.name = name;\n this.value = value;\n this.isNormalizedColor = false;\n }\n\n _createClass(Property, [{\n key: \"hasValue\",\n value: function hasValue() {\n var value = this.value;\n return value !== null && value !== '' && value !== 0 && typeof value !== 'undefined';\n }\n }, {\n key: \"isString\",\n value: function isString(regexp) {\n var value = this.value;\n var result = typeof value === 'string';\n\n if (!result || !regexp) {\n return result;\n }\n\n return regexp.test(value);\n }\n }, {\n key: \"isUrlDefinition\",\n value: function isUrlDefinition() {\n return this.isString(/^url\\(/);\n }\n }, {\n key: \"isPixels\",\n value: function isPixels() {\n if (!this.hasValue()) {\n return false;\n }\n\n var asString = this.getString();\n\n switch (true) {\n case /px$/.test(asString):\n case /^[0-9]+$/.test(asString):\n return true;\n\n default:\n return false;\n }\n }\n }, {\n key: \"setValue\",\n value: function setValue(value) {\n this.value = value;\n return this;\n }\n }, {\n key: \"getValue\",\n value: function getValue(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return this.value;\n }\n\n return def;\n }\n }, {\n key: \"getNumber\",\n value: function getNumber(def) {\n if (!this.hasValue()) {\n if (typeof def === 'undefined') {\n return 0;\n }\n\n return parseFloat(def);\n }\n\n var value = this.value;\n var n = parseFloat(value);\n\n if (this.isString(/%$/)) {\n n = n / 100.0;\n }\n\n return n;\n }\n }, {\n key: \"getString\",\n value: function 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 key: \"getColor\",\n value: function 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 key: \"getDpi\",\n value: function getDpi() {\n return 96.0; // TODO: compute?\n }\n }, {\n key: \"getRem\",\n value: function getRem() {\n return this.document.rootEmSize;\n }\n }, {\n key: \"getEm\",\n value: function getEm() {\n return this.document.emSize;\n }\n }, {\n key: \"getUnits\",\n value: function getUnits() {\n return this.getString().replace(/[0-9\\.\\-]/g, '');\n }\n }, {\n key: \"getPixels\",\n value: function 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 _ref = typeof axisOrIsFontSize === 'boolean' ? [undefined, axisOrIsFontSize] : [axisOrIsFontSize],\n _ref2 = _slicedToArray(_ref, 2),\n axis = _ref2[0],\n isFontSize = _ref2[1];\n\n var viewPort = this.document.screen.viewPort;\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 key: \"getMilliseconds\",\n value: function 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 key: \"getRadians\",\n value: function 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 key: \"getDefinition\",\n value: function getDefinition() {\n var asString = this.getString();\n var name = asString.match(/#([^\\)'\"]+)/);\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 key: \"getFillStyleDefinition\",\n value: function 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 key: \"getTextBaseline\",\n value: function getTextBaseline() {\n if (!this.hasValue()) {\n return null;\n }\n\n return Property.textBaselineMapping[this.getString()];\n }\n }, {\n key: \"addOpacity\",\n value: function 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 key: \"empty\",\n value: function empty(document) {\n return new Property(document, 'EMPTY', '');\n }\n }]);\n\n return Property;\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\nvar ViewPort = /*#__PURE__*/function () {\n function ViewPort() {\n _classCallCheck(this, ViewPort);\n\n this.viewPorts = [];\n }\n\n _createClass(ViewPort, [{\n key: \"clear\",\n value: function clear() {\n this.viewPorts = [];\n }\n }, {\n key: \"setCurrent\",\n value: function setCurrent(width, height) {\n this.viewPorts.push({\n width: width,\n height: height\n });\n }\n }, {\n key: \"removeCurrent\",\n value: function removeCurrent() {\n this.viewPorts.pop();\n }\n }, {\n key: \"getCurrent\",\n value: function getCurrent() {\n var viewPorts = this.viewPorts;\n return viewPorts[viewPorts.length - 1];\n }\n }, {\n key: \"computeSize\",\n value: function 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 key: \"width\",\n get: function get() {\n return this.getCurrent().width;\n }\n }, {\n key: \"height\",\n get: function get() {\n return this.getCurrent().height;\n }\n }]);\n\n return ViewPort;\n}();\n\nvar Point = /*#__PURE__*/function () {\n function Point(x, y) {\n _classCallCheck(this, Point);\n\n this.x = x;\n this.y = y;\n }\n\n _createClass(Point, [{\n key: \"angleTo\",\n value: function angleTo(point) {\n return Math.atan2(point.y - this.y, point.x - this.x);\n }\n }, {\n key: \"applyTransform\",\n value: function applyTransform(transform) {\n var x = this.x,\n y = this.y;\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 key: \"parse\",\n value: function parse(point) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var _toNumbers = toNumbers(point),\n _toNumbers2 = _slicedToArray(_toNumbers, 2),\n _toNumbers2$ = _toNumbers2[0],\n x = _toNumbers2$ === void 0 ? defaultValue : _toNumbers2$,\n _toNumbers2$2 = _toNumbers2[1],\n y = _toNumbers2$2 === void 0 ? defaultValue : _toNumbers2$2;\n\n return new Point(x, y);\n }\n }, {\n key: \"parseScale\",\n value: function parseScale(scale) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n var _toNumbers3 = toNumbers(scale),\n _toNumbers4 = _slicedToArray(_toNumbers3, 2),\n _toNumbers4$ = _toNumbers4[0],\n x = _toNumbers4$ === void 0 ? defaultValue : _toNumbers4$,\n _toNumbers4$2 = _toNumbers4[1],\n y = _toNumbers4$2 === void 0 ? x : _toNumbers4$2;\n\n return new Point(x, y);\n }\n }, {\n key: \"parsePath\",\n value: function 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\n return Point;\n}();\n\nvar Mouse = /*#__PURE__*/function () {\n function Mouse(screen) {\n _classCallCheck(this, Mouse);\n\n this.screen = screen;\n this.working = false;\n this.events = [];\n this.eventElements = [];\n this.onClick = this.onClick.bind(this);\n this.onMouseMove = this.onMouseMove.bind(this);\n }\n\n _createClass(Mouse, [{\n key: \"isWorking\",\n value: function isWorking() {\n return this.working;\n }\n }, {\n key: \"start\",\n value: function start() {\n if (this.working) {\n return;\n }\n\n var screen = this.screen,\n onClick = this.onClick,\n onMouseMove = this.onMouseMove;\n var canvas = screen.ctx.canvas;\n canvas.onclick = onClick;\n canvas.onmousemove = onMouseMove;\n this.working = true;\n }\n }, {\n key: \"stop\",\n value: function 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 key: \"hasEvents\",\n value: function hasEvents() {\n return this.working && this.events.length > 0;\n }\n }, {\n key: \"runEvents\",\n value: function runEvents() {\n if (!this.working) {\n return;\n }\n\n var document = this.screen,\n events = this.events,\n eventElements = this.eventElements;\n var style = document.ctx.canvas.style;\n\n if (style) {\n style.cursor = '';\n }\n\n events.forEach(function (_ref, i) {\n var run = _ref.run;\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 key: \"checkPath\",\n value: function checkPath(element, ctx) {\n if (!this.working || !ctx) {\n return;\n }\n\n var events = this.events,\n eventElements = this.eventElements;\n events.forEach(function (_ref2, i) {\n var x = _ref2.x,\n y = _ref2.y;\n\n if (!eventElements[i] && ctx.isPointInPath && ctx.isPointInPath(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n }, {\n key: \"checkBoundingBox\",\n value: function checkBoundingBox(element, boundingBox) {\n if (!this.working || !boundingBox) {\n return;\n }\n\n var events = this.events,\n eventElements = this.eventElements;\n events.forEach(function (_ref3, i) {\n var x = _ref3.x,\n y = _ref3.y;\n\n if (!eventElements[i] && boundingBox.isPointInBox(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n }, {\n key: \"mapXY\",\n value: function mapXY(x, y) {\n var _this$screen = this.screen,\n window = _this$screen.window,\n ctx = _this$screen.ctx;\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 key: \"onClick\",\n value: function onClick(evt) {\n var _this$mapXY = this.mapXY((evt || event).clientX, (evt || event).clientY),\n x = _this$mapXY.x,\n y = _this$mapXY.y;\n\n this.events.push({\n type: 'onclick',\n x: x,\n y: y,\n run: function run(event) {\n if (event.onClick) {\n event.onClick();\n }\n }\n });\n }\n }, {\n key: \"onMouseMove\",\n value: function onMouseMove(evt) {\n var _this$mapXY2 = this.mapXY((evt || event).clientX, (evt || event).clientY),\n x = _this$mapXY2.x,\n y = _this$mapXY2.y;\n\n this.events.push({\n type: 'onmousemove',\n x: x,\n y: y,\n run: function run(event) {\n if (event.onMouseMove) {\n event.onMouseMove();\n }\n }\n });\n }\n }]);\n\n return Mouse;\n}();\n\nvar defaultWindow = typeof window !== 'undefined' ? window : null;\nvar defaultFetch = typeof fetch !== 'undefined' ? fetch.bind(void 0) // `fetch` depends on context: `someObject.fetch(...)` will throw error.\n: null;\n\nvar Screen = /*#__PURE__*/function () {\n function Screen(ctx) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$fetch = _ref.fetch,\n fetch = _ref$fetch === void 0 ? defaultFetch : _ref$fetch,\n _ref$window = _ref.window,\n window = _ref$window === void 0 ? defaultWindow : _ref$window;\n\n _classCallCheck(this, Screen);\n\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 _createClass(Screen, [{\n key: \"wait\",\n value: function wait(checker) {\n this.waits.push(checker);\n }\n }, {\n key: \"ready\",\n value: function ready() {\n if (!this.readyPromise) {\n return Promise.resolve();\n }\n\n return this.readyPromise;\n }\n }, {\n key: \"isReady\",\n value: function isReady() {\n if (this.isReadyLock) {\n return true;\n }\n\n var isReadyLock = this.waits.every(function (_) {\n return _();\n });\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 key: \"setDefaults\",\n value: function 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 key: \"setViewBox\",\n value: function setViewBox(_ref2) {\n var document = _ref2.document,\n ctx = _ref2.ctx,\n aspectRatio = _ref2.aspectRatio,\n width = _ref2.width,\n desiredWidth = _ref2.desiredWidth,\n height = _ref2.height,\n desiredHeight = _ref2.desiredHeight,\n _ref2$minX = _ref2.minX,\n minX = _ref2$minX === void 0 ? 0 : _ref2$minX,\n _ref2$minY = _ref2.minY,\n minY = _ref2$minY === void 0 ? 0 : _ref2$minY,\n refX = _ref2.refX,\n refY = _ref2.refY,\n _ref2$clip = _ref2.clip,\n clip = _ref2$clip === void 0 ? false : _ref2$clip,\n _ref2$clipX = _ref2.clipX,\n clipX = _ref2$clipX === void 0 ? 0 : _ref2$clipX,\n _ref2$clipY = _ref2.clipY,\n clipY = _ref2$clipY === void 0 ? 0 : _ref2$clipY;\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 _cleanAspectRatio$spl = cleanAspectRatio.split(' '),\n _cleanAspectRatio$spl2 = _slicedToArray(_cleanAspectRatio$spl, 2),\n aspectRatioAlign = _cleanAspectRatio$spl2[0],\n aspectRatioMeetOrSlice = _cleanAspectRatio$spl2[1];\n\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 (/^xMid/.test(align) && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width / 2.0 - finalDesiredWidth / 2.0, 0);\n }\n\n if (/YMid$/.test(align) && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height / 2.0 - finalDesiredHeight / 2.0);\n }\n\n if (/^xMax/.test(align) && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width - finalDesiredWidth, 0);\n }\n\n if (/YMax$/.test(align) && (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 key: \"start\",\n value: function start(element) {\n var _this = this;\n\n var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref3$enableRedraw = _ref3.enableRedraw,\n enableRedraw = _ref3$enableRedraw === void 0 ? false : _ref3$enableRedraw,\n _ref3$ignoreMouse = _ref3.ignoreMouse,\n ignoreMouse = _ref3$ignoreMouse === void 0 ? false : _ref3$ignoreMouse,\n _ref3$ignoreAnimation = _ref3.ignoreAnimation,\n ignoreAnimation = _ref3$ignoreAnimation === void 0 ? false : _ref3$ignoreAnimation,\n _ref3$ignoreDimension = _ref3.ignoreDimensions,\n ignoreDimensions = _ref3$ignoreDimension === void 0 ? false : _ref3$ignoreDimension,\n _ref3$ignoreClear = _ref3.ignoreClear,\n ignoreClear = _ref3$ignoreClear === void 0 ? false : _ref3$ignoreClear,\n forceRedraw = _ref3.forceRedraw,\n scaleWidth = _ref3.scaleWidth,\n scaleHeight = _ref3.scaleHeight,\n offsetX = _ref3.offsetX,\n offsetY = _ref3.offsetY;\n\n var FRAMERATE = this.FRAMERATE,\n mouse = this.mouse;\n var frameDuration = 1000 / FRAMERATE;\n this.frameDuration = frameDuration;\n this.readyPromise = new Promise(function (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 = function 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\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 key: \"stop\",\n value: function stop() {\n if (this.intervalId) {\n requestAnimationFrame.cancel(this.intervalId);\n this.intervalId = null;\n }\n\n this.mouse.stop();\n }\n }, {\n key: \"shouldUpdate\",\n value: function shouldUpdate(ignoreAnimation, forceRedraw) {\n // need update from animations?\n if (!ignoreAnimation) {\n var frameDuration = this.frameDuration;\n var shouldUpdate = this.animations.reduce(function (shouldUpdate, animation) {\n return animation.update(frameDuration) || shouldUpdate;\n }, 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 key: \"render\",\n value: function render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY) {\n var CLIENT_WIDTH = this.CLIENT_WIDTH,\n CLIENT_HEIGHT = this.CLIENT_HEIGHT,\n viewPort = this.viewPort,\n ctx = this.ctx,\n isFirstRender = this.isFirstRender;\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\n return Screen;\n}();\nScreen.defaultWindow = defaultWindow;\nScreen.defaultFetch = defaultFetch;\n\nvar defaultFetch$1 = Screen.defaultFetch;\nvar DefaultDOMParser = typeof DOMParser !== 'undefined' ? DOMParser : null;\n\nvar Parser = /*#__PURE__*/function () {\n function Parser() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$fetch = _ref.fetch,\n fetch = _ref$fetch === void 0 ? defaultFetch$1 : _ref$fetch,\n _ref$DOMParser = _ref.DOMParser,\n DOMParser = _ref$DOMParser === void 0 ? DefaultDOMParser : _ref$DOMParser;\n\n _classCallCheck(this, Parser);\n\n this.fetch = fetch;\n this.DOMParser = DOMParser;\n }\n\n _createClass(Parser, [{\n key: \"parse\",\n value: function () {\n var _parse = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(resource) {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!/^ 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n _classCallCheck(this, Rotate);\n\n this.type = 'rotate';\n this.angle = 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.cx = (numbers[1] || 0) + (transformOrigin[0] || 0);\n this.cy = (numbers[2] || 0) + (transformOrigin[1] || 0);\n }\n\n _createClass(Rotate, [{\n key: \"apply\",\n value: function apply(ctx) {\n var cx = this.cx,\n cy = this.cy,\n angle = this.angle;\n ctx.translate(cx, cy);\n ctx.rotate(angle.getRadians());\n ctx.translate(-cx, -cy);\n }\n }, {\n key: \"unapply\",\n value: function unapply(ctx) {\n var cx = this.cx,\n cy = this.cy,\n angle = this.angle;\n ctx.translate(cx, cy);\n ctx.rotate(-1.0 * angle.getRadians());\n ctx.translate(-cx, -cy);\n }\n }, {\n key: \"applyToPoint\",\n value: function applyToPoint(point) {\n var cx = this.cx,\n cy = this.cy,\n angle = this.angle;\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 return Rotate;\n}();\n\nvar Scale = /*#__PURE__*/function () {\n function Scale(_, scale) {\n _classCallCheck(this, Scale);\n\n this.type = 'scale';\n this.scale = 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 }\n\n _createClass(Scale, [{\n key: \"apply\",\n value: function apply(ctx) {\n var _this$scale = this.scale,\n x = _this$scale.x,\n y = _this$scale.y;\n ctx.scale(x, y || x);\n }\n }, {\n key: \"unapply\",\n value: function unapply(ctx) {\n var _this$scale2 = this.scale,\n x = _this$scale2.x,\n y = _this$scale2.y;\n ctx.scale(1.0 / x, 1.0 / y || x);\n }\n }, {\n key: \"applyToPoint\",\n value: function applyToPoint(point) {\n var _this$scale3 = this.scale,\n x = _this$scale3.x,\n y = _this$scale3.y;\n point.applyTransform([x || 0.0, 0, 0, y || 0.0, 0, 0]);\n }\n }]);\n\n return Scale;\n}();\n\nvar Matrix = /*#__PURE__*/function () {\n function Matrix(_, matrix) {\n _classCallCheck(this, Matrix);\n\n this.type = 'matrix';\n this.matrix = [];\n this.matrix = toNumbers(matrix);\n }\n\n _createClass(Matrix, [{\n key: \"apply\",\n value: function apply(ctx) {\n var matrix = this.matrix;\n ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n }\n }, {\n key: \"unapply\",\n value: function unapply(ctx) {\n var matrix = this.matrix;\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 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 }\n }, {\n key: \"applyToPoint\",\n value: function applyToPoint(point) {\n point.applyTransform(this.matrix);\n }\n }]);\n\n return Matrix;\n}();\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar Skew = /*#__PURE__*/function (_Matrix) {\n _inherits(Skew, _Matrix);\n\n var _super = _createSuper(Skew);\n\n function Skew(document, skew) {\n var _this;\n\n _classCallCheck(this, Skew);\n\n _this = _super.call(this, document, skew);\n _this.type = 'skew';\n _this.angle = null;\n _this.angle = new Property(document, 'angle', skew);\n return _this;\n }\n\n return Skew;\n}(Matrix);\n\nfunction _createSuper$1(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$1()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar SkewX = /*#__PURE__*/function (_Skew) {\n _inherits(SkewX, _Skew);\n\n var _super = _createSuper$1(SkewX);\n\n function SkewX(document, skew) {\n var _this;\n\n _classCallCheck(this, SkewX);\n\n _this = _super.call(this, document, skew);\n _this.type = 'skewX';\n _this.matrix = [1, 0, Math.tan(_this.angle.getRadians()), 1, 0, 0];\n return _this;\n }\n\n return SkewX;\n}(Skew);\n\nfunction _createSuper$2(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$2()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar SkewY = /*#__PURE__*/function (_Skew) {\n _inherits(SkewY, _Skew);\n\n var _super = _createSuper$2(SkewY);\n\n function SkewY(document, skew) {\n var _this;\n\n _classCallCheck(this, SkewY);\n\n _this = _super.call(this, document, skew);\n _this.type = 'skewY';\n _this.matrix = [1, Math.tan(_this.angle.getRadians()), 0, 1, 0, 0];\n return _this;\n }\n\n return SkewY;\n}(Skew);\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 _transform$split = transform.split('('),\n _transform$split2 = _slicedToArray(_transform$split, 2),\n type = _transform$split2[0],\n value = _transform$split2[1];\n\n return [type.trim(), value.trim().replace(')', '')];\n}\n\nvar Transform = /*#__PURE__*/function () {\n function Transform(document, transform, transformOrigin) {\n var _this = this;\n\n _classCallCheck(this, Transform);\n\n this.document = document;\n this.transforms = [];\n var data = parseTransforms(transform);\n var originCoords = transformOrigin ? toNumbers(transformOrigin) : [];\n data.forEach(function (transform) {\n if (transform === 'none') {\n return;\n }\n\n var _parseTransform = parseTransform(transform),\n _parseTransform2 = _slicedToArray(_parseTransform, 2),\n type = _parseTransform2[0],\n value = _parseTransform2[1];\n\n var TransformType = Transform.transformTypes[type];\n\n if (typeof TransformType !== 'undefined') {\n _this.transforms.push(new TransformType(_this.document, value, originCoords));\n }\n });\n }\n\n _createClass(Transform, [{\n key: \"apply\",\n value: function apply(ctx) {\n var transforms = this.transforms;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].apply(ctx);\n }\n }\n }, {\n key: \"unapply\",\n value: function unapply(ctx) {\n var transforms = this.transforms;\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 key: \"applyToPoint\",\n value: function applyToPoint(point) {\n var transforms = this.transforms;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].applyToPoint(point);\n }\n }\n }], [{\n key: \"fromElement\",\n value: function fromElement(document, element) {\n var transformStyle = element.getStyle('transform', false, true);\n var transformOriginStyle = element.getStyle('transform-origin', false, true);\n\n if (transformStyle.hasValue()) {\n return new Transform(document, transformStyle.getString(), transformOriginStyle.getString());\n }\n\n return null;\n }\n }]);\n\n return Transform;\n}();\nTransform.transformTypes = {\n translate: Translate,\n rotate: Rotate,\n scale: Scale,\n matrix: Matrix,\n skewX: SkewX,\n skewY: SkewY\n};\n\nvar Element = /*#__PURE__*/function () {\n function Element(document, node) {\n var _this = this;\n\n var captureTextNodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n _classCallCheck(this, Element);\n\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(function (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(function (_) {\n return _.trim();\n });\n styles.forEach(function (style) {\n if (!style) {\n return;\n }\n\n var _style$split$map = style.split(':').map(function (_) {\n return _.trim();\n }),\n _style$split$map2 = _slicedToArray(_style$split$map, 2),\n name = _style$split$map2[0],\n value = _style$split$map2[1];\n\n _this.styles[name] = new Property(document, name, value);\n });\n }\n\n var definitions = document.definitions;\n var id = this.getAttribute('id'); // add id\n\n if (id.hasValue()) {\n if (!definitions[id.getValue()]) {\n definitions[id.getValue()] = this;\n }\n }\n\n Array.from(node.childNodes).forEach(function (childNode) {\n if (childNode.nodeType === 1) {\n _this.addChild(childNode); // ELEMENT_NODE\n\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\n _createClass(Element, [{\n key: \"getAttribute\",\n value: function 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 key: \"getHrefAttribute\",\n value: function getHrefAttribute() {\n for (var key in this.attributes) {\n if (key === 'href' || /:href$/.test(key)) {\n return this.attributes[key];\n }\n }\n\n return Property.empty(this.document);\n }\n }, {\n key: \"getStyle\",\n value: function 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 && attr.hasValue()) {\n this.styles[name] = attr; // move up to me to cache\n\n return attr;\n }\n\n if (!skipAncestors) {\n var parent = this.parent;\n\n if (parent) {\n var parentStyle = parent.getStyle(name);\n\n if (parentStyle && 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 key: \"render\",\n value: function 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 key: \"setContext\",\n value: function setContext(_) {}\n }, {\n key: \"applyEffects\",\n value: function 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 key: \"clearContext\",\n value: function clearContext(_) {}\n }, {\n key: \"renderChildren\",\n value: function renderChildren(ctx) {\n this.children.forEach(function (child) {\n child.render(ctx);\n });\n }\n }, {\n key: \"addChild\",\n value: function 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 key: \"matchesSelector\",\n value: function matchesSelector(selector) {\n var node = this.node;\n\n if (typeof node.matches === 'function') {\n return node.matches(selector);\n }\n\n var styleClasses = node.getAttribute('class');\n\n if (!styleClasses || styleClasses === '') {\n return false;\n }\n\n return styleClasses.split(' ').some(function (styleClass) {\n if (\".\".concat(styleClass) === selector) {\n return true;\n }\n });\n }\n }, {\n key: \"addStylesFromStyleDefinition\",\n value: function addStylesFromStyleDefinition() {\n var _this$document = this.document,\n styles = _this$document.styles,\n stylesSpecificity = _this$document.stylesSpecificity;\n\n for (var selector in styles) {\n if (selector[0] !== '@' && 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 key: \"removeStyles\",\n value: function removeStyles(element, ignoreStyles) {\n var toRestore = ignoreStyles.reduce(function (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 [].concat(_toConsumableArray(toRestore), [[name, value]]);\n }, []);\n return toRestore;\n }\n }, {\n key: \"restoreStyles\",\n value: function restoreStyles(element, styles) {\n styles.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n name = _ref2[0],\n value = _ref2[1];\n\n element.getStyle(name, true).setValue(value);\n });\n }\n }]);\n\n return Element;\n}();\nElement.ignoreChildTypes = ['title'];\n\nfunction _createSuper$3(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$3()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar UnknownElement = /*#__PURE__*/function (_Element) {\n _inherits(UnknownElement, _Element);\n\n var _super = _createSuper$3(UnknownElement);\n\n function UnknownElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, UnknownElement);\n\n _this = _super.call(this, document, node, captureTextNodes);\n\n return _this;\n }\n\n return UnknownElement;\n}(Element);\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/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\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/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\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\nvar Font = /*#__PURE__*/function () {\n function Font(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {\n _classCallCheck(this, Font);\n\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 _createClass(Font, [{\n key: \"toString\",\n value: function 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 key: \"parse\",\n value: function 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(function (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 var _part$split = part.split('/');\n\n var _part$split2 = _slicedToArray(_part$split, 1);\n\n fontSize = _part$split2[0];\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\n return Font;\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\nvar BoundingBox = /*#__PURE__*/function () {\n function BoundingBox() {\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\n _classCallCheck(this, BoundingBox);\n\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 _createClass(BoundingBox, [{\n key: \"addPoint\",\n value: function 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 key: \"addX\",\n value: function addX(x) {\n this.addPoint(x, null);\n }\n }, {\n key: \"addY\",\n value: function addY(y) {\n this.addPoint(null, y);\n }\n }, {\n key: \"addBoundingBox\",\n value: function addBoundingBox(boundingBox) {\n if (!boundingBox) {\n return;\n }\n\n var x1 = boundingBox.x1,\n y1 = boundingBox.y1,\n x2 = boundingBox.x2,\n y2 = boundingBox.y2;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n }, {\n key: \"sumCubic\",\n value: function 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 key: \"bezierCurveAdd\",\n value: function 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 key: \"addBezierCurve\",\n value: function 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 key: \"addQuadraticCurve\",\n value: function 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 key: \"isPointInBox\",\n value: function isPointInBox(x, y) {\n var x1 = this.x1,\n y1 = this.y1,\n x2 = this.x2,\n y2 = this.y2;\n return x1 <= x && x <= x2 && y1 <= y && y <= y2;\n }\n }, {\n key: \"x\",\n get: function get() {\n return this.x1;\n }\n }, {\n key: \"y\",\n get: function get() {\n return this.y1;\n }\n }, {\n key: \"width\",\n get: function get() {\n return this.x2 - this.x1;\n }\n }, {\n key: \"height\",\n get: function get() {\n return this.y2 - this.y1;\n }\n }]);\n\n return BoundingBox;\n}();\n\nfunction _createSuper$4(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$4()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$4() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar RenderedElement = /*#__PURE__*/function (_Element) {\n _inherits(RenderedElement, _Element);\n\n var _super = _createSuper$4(RenderedElement);\n\n function RenderedElement() {\n var _this;\n\n _classCallCheck(this, RenderedElement);\n\n _this = _super.apply(this, arguments);\n _this.modifiedEmSizeStack = false;\n return _this;\n }\n\n _createClass(RenderedElement, [{\n key: \"calculateOpacity\",\n value: function calculateOpacity() {\n var opacity = 1.0; // tslint:disable-next-line: no-this-assignment\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()) {\n opacity *= opacityStyle.getNumber();\n }\n\n element = element.parent;\n }\n\n return opacity;\n }\n }, {\n key: \"setContext\",\n value: function 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');\n var pointOrderStyleProp = this.getStyle('paint-order');\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 }\n\n if (pointOrderStyleProp.hasValue()) {\n // ?\n ctx.paintOrder = pointOrderStyleProp.getValue();\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 if (typeof ctx.webkitLineDash !== 'undefined') {\n ctx.webkitLineDash = gaps;\n } else if (typeof ctx.mozDash !== 'undefined' && !(gaps.length === 1 && gaps[0] === 0)) {\n ctx.mozDash = gaps;\n }\n\n var offset = strokeDashoffsetProp.getPixels();\n\n if (typeof ctx.lineDashOffset !== 'undefined') {\n ctx.lineDashOffset = offset;\n } else if (typeof ctx.webkitLineDashOffset !== 'undefined') {\n ctx.webkitLineDashOffset = offset;\n } else if (typeof ctx.mozDashOffset !== 'undefined') {\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 key: \"clearContext\",\n value: function clearContext(ctx) {\n _get(_getPrototypeOf(RenderedElement.prototype), \"clearContext\", this).call(this, ctx);\n\n if (this.modifiedEmSizeStack) {\n this.document.popEmSize();\n }\n }\n }]);\n\n return RenderedElement;\n}(Element);\n\nfunction _createSuper$5(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$5()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$5() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar TextElement = /*#__PURE__*/function (_RenderedElement) {\n _inherits(TextElement, _RenderedElement);\n\n var _super = _createSuper$5(TextElement);\n\n function TextElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, TextElement);\n\n _this = _super.call(this, document, node, (this instanceof TextElement ? this.constructor : void 0) === TextElement ? true : captureTextNodes);\n _this.type = 'text';\n _this.x = 0;\n _this.y = 0;\n _this.measureCache = -1;\n return _this;\n }\n\n _createClass(TextElement, [{\n key: \"setContext\",\n value: function setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n _get(_getPrototypeOf(TextElement.prototype), \"setContext\", this).call(this, ctx, fromMeasure);\n\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 key: \"initializeCoordinates\",\n value: function initializeCoordinates(ctx) {\n this.x = this.getAttribute('x').getPixels('x');\n this.y = this.getAttribute('y').getPixels('y');\n var dxAttr = this.getAttribute('dx');\n var dyAttr = this.getAttribute('dy');\n\n if (dxAttr.hasValue()) {\n this.x += dxAttr.getPixels('x');\n }\n\n if (dyAttr.hasValue()) {\n this.y += dyAttr.getPixels('y');\n }\n\n this.x += this.getAnchorDelta(ctx, this, 0);\n }\n }, {\n key: \"getBoundingBox\",\n value: function getBoundingBox(ctx) {\n var _this2 = this;\n\n if (this.type !== 'text') {\n return this.getTElementBoundingBox(ctx);\n }\n\n this.initializeCoordinates(ctx);\n var boundingBox = null;\n this.children.forEach(function (_, i) {\n var childBoundingBox = _this2.getChildBoundingBox(ctx, _this2, _this2, i);\n\n if (!boundingBox) {\n boundingBox = childBoundingBox;\n } else {\n boundingBox.addBoundingBox(childBoundingBox);\n }\n });\n return boundingBox;\n }\n }, {\n key: \"getFontSize\",\n value: function getFontSize() {\n var document = this.document,\n parent = this.parent;\n var inheritFontSize = Font.parse(document.ctx.font).fontSize;\n var fontSize = parent.getStyle('font-size').getNumber(inheritFontSize);\n return fontSize;\n }\n }, {\n key: \"getTElementBoundingBox\",\n value: function 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 key: \"getGlyph\",\n value: function 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 - 2 && nextChar !== ' ') {\n arabicForm = 'terminal';\n }\n\n if (i > 0 && prevChar !== ' ' && i < len - 2 && 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 glyph = font.glyphs[char][arabicForm];\n\n if (!glyph && font.glyphs[char].type === 'glyph') {\n glyph = font.glyphs[char];\n }\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 key: \"getText\",\n value: function getText() {\n return '';\n }\n }, {\n key: \"getTextFromNode\",\n value: function 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 || textNode.text || 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 key: \"renderChildren\",\n value: function renderChildren(ctx) {\n var _this3 = this;\n\n if (this.type !== 'text') {\n this.renderTElementChildren(ctx);\n return;\n }\n\n this.initializeCoordinates(ctx);\n this.children.forEach(function (_, i) {\n _this3.renderChild(ctx, _this3, _this3, i);\n });\n var mouse = this.document.screen.mouse; // 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 key: \"renderTElementChildren\",\n value: function renderTElementChildren(ctx) {\n var document = this.document,\n parent = this.parent;\n var renderText = this.getText();\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var unitsPerEm = customFont.fontFace.unitsPerEm;\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 x = this.x,\n y = this.y;\n\n if (ctx.paintOrder === 'stroke') {\n if (ctx.strokeStyle) {\n ctx.strokeText(renderText, x, y);\n }\n\n if (ctx.fillStyle) {\n ctx.fillText(renderText, x, y);\n }\n } else {\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 key: \"getAnchorDelta\",\n value: function getAnchorDelta(ctx, parent, startI) {\n var textAnchor = this.getStyle('text-anchor').getString('start');\n\n if (textAnchor !== 'start') {\n var children = parent.children;\n var len = children.length;\n var child = null;\n var width = 0;\n\n for (var i = startI; i < len; i++) {\n child = children[i];\n\n if (i > startI && child.getAttribute('x').hasValue() || child.getAttribute('text-anchor').hasValue()) {\n break; // new group\n }\n\n width += child.measureTextRecursive(ctx);\n }\n\n return -1 * (textAnchor === 'end' ? width : width / 2.0);\n }\n\n return 0;\n }\n }, {\n key: \"adjustChildCoordinates\",\n value: function 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 textAnchor = child.getAttribute('text-anchor').getString('start');\n\n if (i === 0 && child.type !== 'textNode') {\n if (!xAttr.hasValue()) {\n xAttr.setValue(textParent.getAttribute('x').getValue('0'));\n }\n\n if (!yAttr.hasValue()) {\n yAttr.setValue(textParent.getAttribute('y').getValue('0'));\n }\n\n if (!dxAttr.hasValue()) {\n dxAttr.setValue(textParent.getAttribute('dx').getValue('0'));\n }\n\n if (!dyAttr.hasValue()) {\n dyAttr.setValue(textParent.getAttribute('dy').getValue('0'));\n }\n }\n\n if (xAttr.hasValue()) {\n child.x = xAttr.getPixels('x') + textParent.getAnchorDelta(ctx, parent, i);\n\n if (textAnchor !== 'start') {\n var width = child.measureTextRecursive(ctx);\n child.x += -1 * (textAnchor === 'end' ? width : width / 2.0);\n }\n\n if (dxAttr.hasValue()) {\n child.x += dxAttr.getPixels('x');\n }\n } else {\n if (textAnchor !== 'start') {\n var _width = child.measureTextRecursive(ctx);\n\n textParent.x += -1 * (textAnchor === 'end' ? _width : _width / 2.0);\n }\n\n if (dxAttr.hasValue()) {\n textParent.x += dxAttr.getPixels('x');\n }\n\n child.x = textParent.x;\n }\n\n textParent.x = child.x + child.measureText(ctx);\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;\n child.clearContext(ctx);\n ctx.restore();\n return child;\n }\n }, {\n key: \"getChildBoundingBox\",\n value: function getChildBoundingBox(ctx, textParent, parent, i) {\n var child = this.adjustChildCoordinates(ctx, textParent, parent, i);\n var boundingBox = child.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return null;\n }\n\n child.children.forEach(function (_, i) {\n var childBoundingBox = textParent.getChildBoundingBox(ctx, textParent, child, i);\n boundingBox.addBoundingBox(childBoundingBox);\n });\n return boundingBox;\n }\n }, {\n key: \"renderChild\",\n value: function renderChild(ctx, textParent, parent, i) {\n var child = this.adjustChildCoordinates(ctx, textParent, parent, i);\n child.render(ctx);\n child.children.forEach(function (_, i) {\n textParent.renderChild(ctx, textParent, child, i);\n });\n }\n }, {\n key: \"measureTextRecursive\",\n value: function measureTextRecursive(ctx) {\n var width = this.children.reduce(function (width, child) {\n return width + child.measureTextRecursive(ctx);\n }, this.measureText(ctx));\n return width;\n }\n }, {\n key: \"measureText\",\n value: function measureText(ctx) {\n var measureCache = this.measureCache;\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 key: \"measureTargetText\",\n value: function measureTargetText(ctx, targetText) {\n if (!targetText.length) {\n return 0;\n }\n\n var parent = this.parent;\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\n var _ctx$measureText = ctx.measureText(targetText),\n measure = _ctx$measureText.width;\n\n this.clearContext(ctx);\n ctx.restore();\n return measure;\n }\n }]);\n\n return TextElement;\n}(RenderedElement);\n\nfunction _createSuper$6(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$6()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$6() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar TSpanElement = /*#__PURE__*/function (_TextElement) {\n _inherits(TSpanElement, _TextElement);\n\n var _super = _createSuper$6(TSpanElement);\n\n function TSpanElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, TSpanElement);\n\n _this = _super.call(this, document, node, (this instanceof TSpanElement ? this.constructor : void 0) === 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 return _this;\n }\n\n _createClass(TSpanElement, [{\n key: \"getText\",\n value: function getText() {\n return this.text;\n }\n }]);\n\n return TSpanElement;\n}(TextElement);\n\nfunction _createSuper$7(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$7()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$7() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar TextNode = /*#__PURE__*/function (_TSpanElement) {\n _inherits(TextNode, _TSpanElement);\n\n var _super = _createSuper$7(TextNode);\n\n function TextNode() {\n var _this;\n\n _classCallCheck(this, TextNode);\n\n _this = _super.apply(this, arguments);\n _this.type = 'textNode';\n return _this;\n }\n\n return TextNode;\n}(TSpanElement);\n\nfunction preparePath(path) {\n var d = path.replace(/,/gm, ' ') // get rid of all commas\n // As the end of a match can also be the start of the next match, we need to run this replace twice.\n .replace(/([MmZzLlHhVvCcSsQqTtAa])([^\\s])/gm, '$1 $2') // suffix commands with spaces\n .replace(/([MmZzLlHhVvCcSsQqTtAa])([^\\s])/gm, '$1 $2') // suffix commands with spaces\n .replace(/([^\\s])([MmZzLlHhVvCcSsQqTtAa])/gm, '$1 $2') // prefix commands with spaces\n .replace(/([0-9])([+\\-])/gm, '$1 $2') // separate digits on +- signs\n // Again, we need to run this twice to find all occurances\n .replace(/(\\.[0-9]*)(\\.)/gm, '$1 $2') // separate digits when they start with a comma\n .replace(/(\\.[0-9]*)(\\.)/gm, '$1 $2') // separate digits when they start with a comma\n .replace(/([Aa](?:\\s+(?:[0-9]*\\.)?[0-9]+){3})\\s+([01])\\s*([01])/gm, '$1 $2 $3 '); // shorthand elliptical arc path syntax\n\n return compressSpaces(d).trim();\n}\n\nvar PathParser = /*#__PURE__*/function () {\n function PathParser(path) {\n _classCallCheck(this, PathParser);\n\n this.control = null;\n this.start = null;\n this.current = null;\n this.command = '';\n this.tokens = [];\n this.i = -1;\n this.previousCommand = '';\n this.points = [];\n this.angles = [];\n this.tokens = preparePath(path).split(' ');\n }\n\n _createClass(PathParser, [{\n key: \"reset\",\n value: function reset() {\n this.i = -1;\n this.command = '';\n this.previousCommand = '';\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 key: \"isEnd\",\n value: function isEnd() {\n var i = this.i,\n tokens = this.tokens;\n return i >= tokens.length - 1;\n }\n }, {\n key: \"isCommandOrEnd\",\n value: function isCommandOrEnd() {\n if (this.isEnd()) {\n return true;\n }\n\n var i = this.i,\n tokens = this.tokens;\n return /^[A-Za-z]$/.test(tokens[i + 1]);\n }\n }, {\n key: \"isRelativeCommand\",\n value: function isRelativeCommand() {\n switch (this.command) {\n case 'm':\n case 'l':\n case 'h':\n case 'v':\n case 'c':\n case 's':\n case 'q':\n case 't':\n case 'a':\n case 'z':\n return true;\n\n default:\n return false;\n }\n }\n }, {\n key: \"getToken\",\n value: function getToken() {\n this.i++;\n return this.tokens[this.i];\n }\n }, {\n key: \"getScalar\",\n value: function getScalar() {\n return parseFloat(this.getToken());\n }\n }, {\n key: \"nextCommand\",\n value: function nextCommand() {\n this.previousCommand = this.command;\n this.command = this.getToken();\n }\n }, {\n key: \"getPoint\",\n value: function getPoint() {\n var point = new Point(this.getScalar(), this.getScalar());\n return this.makeAbsolute(point);\n }\n }, {\n key: \"getAsControlPoint\",\n value: function getAsControlPoint() {\n var point = this.getPoint();\n this.control = point;\n return point;\n }\n }, {\n key: \"getAsCurrentPoint\",\n value: function getAsCurrentPoint() {\n var point = this.getPoint();\n this.current = point;\n return point;\n }\n }, {\n key: \"getReflectedControlPoint\",\n value: function getReflectedControlPoint() {\n var previousCommand = this.previousCommand.toLowerCase();\n\n if (previousCommand !== 'c' && previousCommand !== 's' && previousCommand !== 'q' && previousCommand !== 't') {\n return this.current;\n } // reflect point\n\n\n var _this$current = this.current,\n cx = _this$current.x,\n cy = _this$current.y,\n _this$control = this.control,\n ox = _this$control.x,\n oy = _this$control.y;\n var point = new Point(2 * cx - ox, 2 * cy - oy);\n return point;\n }\n }, {\n key: \"makeAbsolute\",\n value: function makeAbsolute(point) {\n if (this.isRelativeCommand()) {\n var _this$current2 = this.current,\n x = _this$current2.x,\n y = _this$current2.y;\n point.x += x;\n point.y += y;\n }\n\n return point;\n }\n }, {\n key: \"addMarker\",\n value: function addMarker(point, from, priorTo) {\n var points = this.points,\n angles = this.angles; // 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 key: \"addMarkerAngle\",\n value: function addMarkerAngle(point, angle) {\n this.points.push(point);\n this.angles.push(angle);\n }\n }, {\n key: \"getMarkerPoints\",\n value: function getMarkerPoints() {\n return this.points;\n }\n }, {\n key: \"getMarkerAngles\",\n value: function getMarkerAngles() {\n var angles = this.angles;\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 return PathParser;\n}();\n\nfunction _createSuper$8(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$8()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$8() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar PathElement = /*#__PURE__*/function (_RenderedElement) {\n _inherits(PathElement, _RenderedElement);\n\n var _super = _createSuper$8(PathElement);\n\n function PathElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, PathElement);\n\n _this = _super.call(this, document, node, captureTextNodes);\n _this.type = 'path';\n _this.pathParser = null;\n _this.pathParser = new PathParser(_this.getAttribute('d').getString());\n return _this;\n }\n\n _createClass(PathElement, [{\n key: \"path\",\n value: function path(ctx) {\n var pathParser = this.pathParser;\n var boundingBox = new BoundingBox();\n pathParser.reset();\n\n if (ctx) {\n ctx.beginPath();\n }\n\n while (!pathParser.isEnd()) {\n pathParser.nextCommand();\n\n switch (pathParser.command) {\n case 'M':\n case 'm':\n this.pathM(ctx, boundingBox);\n break;\n\n case 'L':\n case 'l':\n this.pathL(ctx, boundingBox);\n break;\n\n case 'H':\n case 'h':\n this.pathH(ctx, boundingBox);\n break;\n\n case 'V':\n case 'v':\n this.pathV(ctx, boundingBox);\n break;\n\n case 'C':\n case 'c':\n this.pathC(ctx, boundingBox);\n break;\n\n case 'S':\n case 's':\n this.pathS(ctx, boundingBox);\n break;\n\n case 'Q':\n case 'q':\n this.pathQ(ctx, boundingBox);\n break;\n\n case 'T':\n case 't':\n this.pathT(ctx, boundingBox);\n break;\n\n case 'A':\n case 'a':\n this.pathA(ctx, boundingBox);\n break;\n\n case 'Z':\n case 'z':\n this.pathZ(ctx, boundingBox);\n break;\n }\n }\n\n return boundingBox;\n }\n }, {\n key: \"getBoundingBox\",\n value: function getBoundingBox(_) {\n return this.path();\n }\n }, {\n key: \"getMarkers\",\n value: function getMarkers() {\n var pathParser = this.pathParser;\n var points = pathParser.getMarkerPoints();\n var angles = pathParser.getMarkerAngles();\n var markers = points.map(function (point, i) {\n return [point, angles[i]];\n });\n return markers;\n }\n }, {\n key: \"renderChildren\",\n value: function 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 ctx.stroke();\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\n var _markers$ = _slicedToArray(markers[0], 2),\n point = _markers$[0],\n angle = _markers$[1];\n\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 _markers$i = _slicedToArray(markers[i], 2),\n _point = _markers$i[0],\n _angle = _markers$i[1];\n\n _marker.render(ctx, _point, _angle);\n }\n }\n\n if (markerEndStyleProp.isUrlDefinition()) {\n var _marker2 = markerEndStyleProp.getDefinition();\n\n var _markers$markersLastI = _slicedToArray(markers[markersLastIndex], 2),\n _point2 = _markers$markersLastI[0],\n _angle2 = _markers$markersLastI[1];\n\n _marker2.render(ctx, _point2, _angle2);\n }\n }\n }\n }, {\n key: \"pathM\",\n value: function pathM(ctx, boundingBox) {\n var pathParser = this.pathParser;\n var point = pathParser.getAsCurrentPoint();\n var x = point.x,\n y = point.y;\n pathParser.addMarker(point);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.moveTo(x, y);\n }\n\n pathParser.start = pathParser.current;\n\n while (!pathParser.isCommandOrEnd()) {\n var _point3 = pathParser.getAsCurrentPoint();\n\n var _x = _point3.x,\n _y = _point3.y;\n pathParser.addMarker(_point3, pathParser.start);\n boundingBox.addPoint(_x, _y);\n\n if (ctx) {\n ctx.lineTo(_x, _y);\n }\n }\n }\n }, {\n key: \"pathL\",\n value: function pathL(ctx, boundingBox) {\n var pathParser = this.pathParser;\n\n while (!pathParser.isCommandOrEnd()) {\n var current = pathParser.current;\n var point = pathParser.getAsCurrentPoint();\n var x = point.x,\n y = point.y;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n }\n }, {\n key: \"pathH\",\n value: function pathH(ctx, boundingBox) {\n var pathParser = this.pathParser;\n\n while (!pathParser.isCommandOrEnd()) {\n var current = pathParser.current;\n var point = new Point((pathParser.isRelativeCommand() ? current.x : 0) + pathParser.getScalar(), current.y);\n pathParser.addMarker(point, current);\n pathParser.current = point;\n boundingBox.addPoint(point.x, point.y);\n\n if (ctx) {\n ctx.lineTo(point.x, point.y);\n }\n }\n }\n }, {\n key: \"pathV\",\n value: function pathV(ctx, boundingBox) {\n var pathParser = this.pathParser;\n\n while (!pathParser.isCommandOrEnd()) {\n var current = pathParser.current;\n var point = new Point(current.x, (pathParser.isRelativeCommand() ? current.y : 0) + pathParser.getScalar());\n pathParser.addMarker(point, current);\n pathParser.current = point;\n boundingBox.addPoint(point.x, point.y);\n\n if (ctx) {\n ctx.lineTo(point.x, point.y);\n }\n }\n }\n }, {\n key: \"pathC\",\n value: function pathC(ctx, boundingBox) {\n var pathParser = this.pathParser;\n\n while (!pathParser.isCommandOrEnd()) {\n var current = pathParser.current;\n var point = pathParser.getPoint();\n var controlPoint = pathParser.getAsControlPoint();\n var currentPoint = pathParser.getAsCurrentPoint();\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 }, {\n key: \"pathS\",\n value: function pathS(ctx, boundingBox) {\n var pathParser = this.pathParser;\n\n while (!pathParser.isCommandOrEnd()) {\n var current = pathParser.current;\n var point = pathParser.getReflectedControlPoint();\n var controlPoint = pathParser.getAsControlPoint();\n var currentPoint = pathParser.getAsCurrentPoint();\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 }, {\n key: \"pathQ\",\n value: function pathQ(ctx, boundingBox) {\n var pathParser = this.pathParser;\n\n while (!pathParser.isCommandOrEnd()) {\n var current = pathParser.current;\n var controlPoint = pathParser.getAsControlPoint();\n var currentPoint = pathParser.getAsCurrentPoint();\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 }, {\n key: \"pathT\",\n value: function pathT(ctx, boundingBox) {\n var pathParser = this.pathParser;\n\n while (!pathParser.isCommandOrEnd()) {\n var current = pathParser.current;\n var controlPoint = pathParser.getReflectedControlPoint();\n pathParser.control = controlPoint;\n var currentPoint = pathParser.getAsCurrentPoint();\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 }, {\n key: \"pathA\",\n value: function pathA(ctx, boundingBox) {\n var pathParser = this.pathParser;\n\n while (!pathParser.isCommandOrEnd()) {\n var current = pathParser.current;\n var rx = pathParser.getScalar();\n var ry = pathParser.getScalar();\n var xAxisRotation = pathParser.getScalar() * (Math.PI / 180.0);\n var largeArcFlag = pathParser.getScalar();\n var sweepFlag = pathParser.getScalar();\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 = (largeArcFlag === 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]); // 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 } // for markers\n\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 }, {\n key: \"pathZ\",\n value: function pathZ(ctx, boundingBox) {\n var pathParser = 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 pathParser.current = pathParser.start;\n }\n }]);\n\n return PathElement;\n}(RenderedElement);\n\nfunction _createSuper$9(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$9()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$9() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar SVGElement = /*#__PURE__*/function (_RenderedElement) {\n _inherits(SVGElement, _RenderedElement);\n\n var _super = _createSuper$9(SVGElement);\n\n function SVGElement() {\n var _this;\n\n _classCallCheck(this, SVGElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'svg';\n _this.root = false;\n return _this;\n }\n\n _createClass(SVGElement, [{\n key: \"clearContext\",\n value: function clearContext(ctx) {\n _get(_getPrototypeOf(SVGElement.prototype), \"clearContext\", this).call(this, ctx);\n\n this.document.screen.viewPort.removeCurrent();\n }\n }, {\n key: \"setContext\",\n value: function setContext(ctx) {\n var document = this.document;\n var screen = document.screen,\n window = document.window;\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 }\n\n _get(_getPrototypeOf(SVGElement.prototype), \"setContext\", this).call(this, ctx); // 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 ctx.translate(this.getAttribute('x').getPixels('x'), this.getAttribute('y').getPixels('y'));\n var _screen$viewPort = screen.viewPort,\n width = _screen$viewPort.width,\n height = _screen$viewPort.height;\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.getAttribute('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);\n\n if (viewBox) {\n width = viewBox[2];\n height = viewBox[3];\n }\n\n document.setViewBox({\n ctx: 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: minX,\n minY: minY,\n refX: refXAttr.getValue(),\n refY: refYAttr.getValue(),\n clip: clip,\n clipX: clipX,\n clipY: clipY\n });\n\n if (viewBox) {\n screen.viewPort.removeCurrent();\n screen.viewPort.setCurrent(width, height);\n }\n }\n /**\n * Resize SVG to fit in given size.\n * @param width\n * @param height\n * @param preserveAspectRatio\n */\n\n }, {\n key: \"resize\",\n value: function 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 return SVGElement;\n}(RenderedElement);\n\nfunction _createSuper$a(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$a()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$a() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar RectElement = /*#__PURE__*/function (_PathElement) {\n _inherits(RectElement, _PathElement);\n\n var _super = _createSuper$a(RectElement);\n\n function RectElement() {\n var _this;\n\n _classCallCheck(this, RectElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'rect';\n return _this;\n }\n\n _createClass(RectElement, [{\n key: \"path\",\n value: function path(ctx) {\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 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 key: \"getMarkers\",\n value: function getMarkers() {\n return null;\n }\n }]);\n\n return RectElement;\n}(PathElement);\n\nfunction _createSuper$b(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$b()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$b() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar CircleElement = /*#__PURE__*/function (_PathElement) {\n _inherits(CircleElement, _PathElement);\n\n var _super = _createSuper$b(CircleElement);\n\n function CircleElement() {\n var _this;\n\n _classCallCheck(this, CircleElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'circle';\n return _this;\n }\n\n _createClass(CircleElement, [{\n key: \"path\",\n value: function 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 key: \"getMarkers\",\n value: function getMarkers() {\n return null;\n }\n }]);\n\n return CircleElement;\n}(PathElement);\n\nfunction _createSuper$c(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$c()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$c() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar EllipseElement = /*#__PURE__*/function (_PathElement) {\n _inherits(EllipseElement, _PathElement);\n\n var _super = _createSuper$c(EllipseElement);\n\n function EllipseElement() {\n var _this;\n\n _classCallCheck(this, EllipseElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'ellipse';\n return _this;\n }\n\n _createClass(EllipseElement, [{\n key: \"path\",\n value: function 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 key: \"getMarkers\",\n value: function getMarkers() {\n return null;\n }\n }]);\n\n return EllipseElement;\n}(PathElement);\n\nfunction _createSuper$d(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$d()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$d() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar LineElement = /*#__PURE__*/function (_PathElement) {\n _inherits(LineElement, _PathElement);\n\n var _super = _createSuper$d(LineElement);\n\n function LineElement() {\n var _this;\n\n _classCallCheck(this, LineElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'line';\n return _this;\n }\n\n _createClass(LineElement, [{\n key: \"getPoints\",\n value: function 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 key: \"path\",\n value: function path(ctx) {\n var _this$getPoints = this.getPoints(),\n _this$getPoints2 = _slicedToArray(_this$getPoints, 2),\n _this$getPoints2$ = _this$getPoints2[0],\n x0 = _this$getPoints2$.x,\n y0 = _this$getPoints2$.y,\n _this$getPoints2$2 = _this$getPoints2[1],\n x1 = _this$getPoints2$2.x,\n y1 = _this$getPoints2$2.y;\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 key: \"getMarkers\",\n value: function getMarkers() {\n var _this$getPoints3 = this.getPoints(),\n _this$getPoints4 = _slicedToArray(_this$getPoints3, 2),\n p0 = _this$getPoints4[0],\n p1 = _this$getPoints4[1];\n\n var a = p0.angleTo(p1);\n return [[p0, a], [p1, a]];\n }\n }]);\n\n return LineElement;\n}(PathElement);\n\nfunction _createSuper$e(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$e()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$e() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar PolylineElement = /*#__PURE__*/function (_PathElement) {\n _inherits(PolylineElement, _PathElement);\n\n var _super = _createSuper$e(PolylineElement);\n\n function PolylineElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, PolylineElement);\n\n _this = _super.call(this, document, node, captureTextNodes);\n _this.type = 'polyline';\n _this.points = [];\n _this.points = Point.parsePath(_this.getAttribute('points').getString());\n return _this;\n }\n\n _createClass(PolylineElement, [{\n key: \"path\",\n value: function path(ctx) {\n var points = this.points;\n\n var _points = _slicedToArray(points, 1),\n _points$ = _points[0],\n x0 = _points$.x,\n y0 = _points$.y;\n\n var boundingBox = new BoundingBox(x0, y0);\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n }\n\n points.forEach(function (_ref) {\n var x = _ref.x,\n y = _ref.y;\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n });\n return boundingBox;\n }\n }, {\n key: \"getMarkers\",\n value: function getMarkers() {\n var points = this.points;\n var lastIndex = points.length - 1;\n var markers = [];\n points.forEach(function (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 return PolylineElement;\n}(PathElement);\n\nfunction _createSuper$f(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$f()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$f() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar PolygonElement = /*#__PURE__*/function (_PolylineElement) {\n _inherits(PolygonElement, _PolylineElement);\n\n var _super = _createSuper$f(PolygonElement);\n\n function PolygonElement() {\n var _this;\n\n _classCallCheck(this, PolygonElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'polygon';\n return _this;\n }\n\n _createClass(PolygonElement, [{\n key: \"path\",\n value: function path(ctx) {\n var boundingBox = _get(_getPrototypeOf(PolygonElement.prototype), \"path\", this).call(this, ctx);\n\n var _this$points = _slicedToArray(this.points, 1),\n _this$points$ = _this$points[0],\n x = _this$points$.x,\n y = _this$points$.y;\n\n if (ctx) {\n ctx.lineTo(x, y);\n ctx.closePath();\n }\n\n return boundingBox;\n }\n }]);\n\n return PolygonElement;\n}(PolylineElement);\n\nfunction _createSuper$g(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$g()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$g() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar PatternElement = /*#__PURE__*/function (_Element) {\n _inherits(PatternElement, _Element);\n\n var _super = _createSuper$g(PatternElement);\n\n function PatternElement() {\n var _this;\n\n _classCallCheck(this, PatternElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'pattern';\n return _this;\n }\n\n _createClass(PatternElement, [{\n key: \"createPattern\",\n value: function 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 return PatternElement;\n}(Element);\n\nfunction _createSuper$h(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$h()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$h() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar MarkerElement = /*#__PURE__*/function (_Element) {\n _inherits(MarkerElement, _Element);\n\n var _super = _createSuper$h(MarkerElement);\n\n function MarkerElement() {\n var _this;\n\n _classCallCheck(this, MarkerElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'marker';\n return _this;\n }\n\n _createClass(MarkerElement, [{\n key: \"render\",\n value: function render(ctx, point, angle) {\n if (!point) {\n return;\n }\n\n var x = point.x,\n y = point.y;\n var orient = this.getAttribute('orient').getValue('auto');\n var markerUnits = this.getAttribute('markerUnits').getValue('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 return MarkerElement;\n}(Element);\n\nfunction _createSuper$i(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$i()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$i() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar DefsElement = /*#__PURE__*/function (_Element) {\n _inherits(DefsElement, _Element);\n\n var _super = _createSuper$i(DefsElement);\n\n function DefsElement() {\n var _this;\n\n _classCallCheck(this, DefsElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'defs';\n return _this;\n }\n\n _createClass(DefsElement, [{\n key: \"render\",\n value: function render() {// NOOP\n }\n }]);\n\n return DefsElement;\n}(Element);\n\nfunction _createSuper$j(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$j()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$j() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar GElement = /*#__PURE__*/function (_RenderedElement) {\n _inherits(GElement, _RenderedElement);\n\n var _super = _createSuper$j(GElement);\n\n function GElement() {\n var _this;\n\n _classCallCheck(this, GElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'g';\n return _this;\n }\n\n _createClass(GElement, [{\n key: \"getBoundingBox\",\n value: function getBoundingBox(ctx) {\n var boundingBox = new BoundingBox();\n this.children.forEach(function (child) {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n return boundingBox;\n }\n }]);\n\n return GElement;\n}(RenderedElement);\n\nfunction _createSuper$k(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$k()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$k() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar GradientElement = /*#__PURE__*/function (_Element) {\n _inherits(GradientElement, _Element);\n\n var _super = _createSuper$k(GradientElement);\n\n function GradientElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, GradientElement);\n\n _this = _super.call(this, document, node, captureTextNodes);\n _this.attributesToInherit = ['gradientUnits'];\n _this.stops = [];\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n stops = _assertThisInitialize.stops,\n children = _assertThisInitialize.children;\n\n children.forEach(function (child) {\n if (child.type === 'stop') {\n stops.push(child);\n }\n });\n return _this;\n }\n\n _createClass(GradientElement, [{\n key: \"getGradientUnits\",\n value: function getGradientUnits() {\n return this.getAttribute('gradientUnits').getString('objectBoundingBox');\n }\n }, {\n key: \"createGradient\",\n value: function createGradient(ctx, element, parentOpacityProp) {\n var _this2 = this;\n\n // tslint:disable-next-line: no-this-assignment\n var stopsContainer = this;\n\n if (this.getHrefAttribute().hasValue()) {\n stopsContainer = this.getHrefAttribute().getDefinition();\n this.inheritStopContainer(stopsContainer);\n }\n\n var _stopsContainer = stopsContainer,\n stops = _stopsContainer.stops;\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(function (stop) {\n gradient.addColorStop(stop.offset, _this2.addParentOpacity(parentOpacityProp, stop.color));\n });\n\n if (this.getAttribute('gradientTransform').hasValue()) {\n // render as transformed pattern on temporary canvas\n var document = this.document;\n var _document$screen = document.screen,\n MAX_VIRTUAL_PIXELS = _document$screen.MAX_VIRTUAL_PIXELS,\n viewPort = _document$screen.viewPort;\n\n var _viewPort$viewPorts = _slicedToArray(viewPort.viewPorts, 1),\n rootView = _viewPort$viewPorts[0];\n\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 key: \"inheritStopContainer\",\n value: function inheritStopContainer(stopsContainer) {\n var _this3 = this;\n\n this.attributesToInherit.forEach(function (attributeToInherit) {\n if (!_this3.getAttribute(attributeToInherit).hasValue() && stopsContainer.getAttribute(attributeToInherit).hasValue()) {\n _this3.getAttribute(attributeToInherit, true).setValue(stopsContainer.getAttribute(attributeToInherit).getValue());\n }\n });\n }\n }, {\n key: \"addParentOpacity\",\n value: function 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 return GradientElement;\n}(Element);\n\nfunction _createSuper$l(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$l()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$l() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar LinearGradientElement = /*#__PURE__*/function (_GradientElement) {\n _inherits(LinearGradientElement, _GradientElement);\n\n var _super = _createSuper$l(LinearGradientElement);\n\n function LinearGradientElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, LinearGradientElement);\n\n _this = _super.call(this, document, node, captureTextNodes);\n _this.type = 'linearGradient';\n\n _this.attributesToInherit.push('x1', 'y1', 'x2', 'y2');\n\n return _this;\n }\n\n _createClass(LinearGradientElement, [{\n key: \"getGradient\",\n value: function 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 return LinearGradientElement;\n}(GradientElement);\n\nfunction _createSuper$m(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$m()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$m() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar RadialGradientElement = /*#__PURE__*/function (_GradientElement) {\n _inherits(RadialGradientElement, _GradientElement);\n\n var _super = _createSuper$m(RadialGradientElement);\n\n function RadialGradientElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, RadialGradientElement);\n\n _this = _super.call(this, document, node, captureTextNodes);\n _this.type = 'radialGradient';\n\n _this.attributesToInherit.push('cx', 'cy', 'r', 'fx', 'fy', 'fr');\n\n return _this;\n }\n\n _createClass(RadialGradientElement, [{\n key: \"getGradient\",\n value: function 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 return RadialGradientElement;\n}(GradientElement);\n\nfunction _createSuper$n(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$n()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$n() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar StopElement = /*#__PURE__*/function (_Element) {\n _inherits(StopElement, _Element);\n\n var _super = _createSuper$n(StopElement);\n\n function StopElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, StopElement);\n\n _this = _super.call(this, document, node, captureTextNodes);\n _this.type = 'stop';\n var offset = Math.max(0, Math.min(1, _this.getAttribute('offset').getNumber()));\n\n var stopOpacity = _this.getStyle('stop-opacity');\n\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 return _this;\n }\n\n return StopElement;\n}(Element);\n\nfunction _createSuper$o(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$o()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$o() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar AnimateElement = /*#__PURE__*/function (_Element) {\n _inherits(AnimateElement, _Element);\n\n var _super = _createSuper$o(AnimateElement);\n\n function AnimateElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, AnimateElement);\n\n _this = _super.call(this, 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(_assertThisInitialized(_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 = _this.getAttribute('values');\n\n if (_this.values.hasValue()) {\n _this.values.setValue(_this.values.getString().split(';'));\n }\n\n return _this;\n }\n\n _createClass(AnimateElement, [{\n key: \"getProperty\",\n value: function 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 key: \"calcValue\",\n value: function calcValue() {\n var initialUnits = this.initialUnits;\n\n var _this$getProgress = this.getProgress(),\n progress = _this$getProgress.progress,\n from = _this$getProgress.from,\n to = _this$getProgress.to; // tween value linearly\n\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 key: \"update\",\n value: function update(delta) {\n var parent = this.parent;\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 key: \"getProgress\",\n value: function getProgress() {\n var document = this.document,\n values = this.values;\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 return AnimateElement;\n}(Element);\n\nfunction _createSuper$p(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$p()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$p() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar AnimateColorElement = /*#__PURE__*/function (_AnimateElement) {\n _inherits(AnimateColorElement, _AnimateElement);\n\n var _super = _createSuper$p(AnimateColorElement);\n\n function AnimateColorElement() {\n var _this;\n\n _classCallCheck(this, AnimateColorElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'animateColor';\n return _this;\n }\n\n _createClass(AnimateColorElement, [{\n key: \"calcValue\",\n value: function calcValue() {\n var _this$getProgress = this.getProgress(),\n progress = _this$getProgress.progress,\n from = _this$getProgress.from,\n to = _this$getProgress.to;\n\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(parseInt(r, 10), \", \").concat(parseInt(g, 10), \", \").concat(parseInt(b, 10), \")\");\n }\n\n return this.getAttribute('from').getColor();\n }\n }]);\n\n return AnimateColorElement;\n}(AnimateElement);\n\nfunction _createSuper$q(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$q()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$q() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar AnimateTransformElement = /*#__PURE__*/function (_AnimateElement) {\n _inherits(AnimateTransformElement, _AnimateElement);\n\n var _super = _createSuper$q(AnimateTransformElement);\n\n function AnimateTransformElement() {\n var _this;\n\n _classCallCheck(this, AnimateTransformElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'animateTransform';\n return _this;\n }\n\n _createClass(AnimateTransformElement, [{\n key: \"calcValue\",\n value: function calcValue() {\n var _this$getProgress = this.getProgress(),\n progress = _this$getProgress.progress,\n from = _this$getProgress.from,\n to = _this$getProgress.to; // tween value linearly\n\n\n var transformFrom = toNumbers(from.getString());\n var transformTo = toNumbers(to.getString());\n var newValue = transformFrom.map(function (from, i) {\n var to = transformTo[i];\n return from + (to - from) * progress;\n }).join(' ');\n return newValue;\n }\n }]);\n\n return AnimateTransformElement;\n}(AnimateElement);\n\nfunction _createForOfIteratorHelper(o) { if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper$r(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$r()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$r() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar FontElement = /*#__PURE__*/function (_Element) {\n _inherits(FontElement, _Element);\n\n var _super = _createSuper$r(FontElement);\n\n function FontElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, FontElement);\n\n _this = _super.call(this, document, node, captureTextNodes);\n _this.type = 'font';\n _this.glyphs = {};\n _this.horizAdvX = _this.getAttribute('horiz-adv-x').getNumber();\n var definitions = document.definitions;\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n children = _assertThisInitialize.children;\n\n var _iterator = _createForOfIteratorHelper(children),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var child = _step.value;\n\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()] = _assertThisInitialized(_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 default:\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return _this;\n }\n\n _createClass(FontElement, [{\n key: \"render\",\n value: function render() {// NO RENDER\n }\n }]);\n\n return FontElement;\n}(Element);\n\nfunction _createSuper$s(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$s()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$s() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar FontFaceElement = /*#__PURE__*/function (_Element) {\n _inherits(FontFaceElement, _Element);\n\n var _super = _createSuper$s(FontFaceElement);\n\n function FontFaceElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, FontFaceElement);\n\n _this = _super.call(this, 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 return _this;\n }\n\n return FontFaceElement;\n}(Element);\n\nfunction _createSuper$t(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$t()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$t() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar MissingGlyphElement = /*#__PURE__*/function (_PathElement) {\n _inherits(MissingGlyphElement, _PathElement);\n\n var _super = _createSuper$t(MissingGlyphElement);\n\n function MissingGlyphElement() {\n var _this;\n\n _classCallCheck(this, MissingGlyphElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'missing-glyph';\n _this.horizAdvX = 0;\n return _this;\n }\n\n return MissingGlyphElement;\n}(PathElement);\n\nfunction _createSuper$u(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$u()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$u() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar GlyphElement = /*#__PURE__*/function (_PathElement) {\n _inherits(GlyphElement, _PathElement);\n\n var _super = _createSuper$u(GlyphElement);\n\n function GlyphElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, GlyphElement);\n\n _this = _super.call(this, 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 return _this;\n }\n\n return GlyphElement;\n}(PathElement);\n\nfunction _createSuper$v(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$v()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$v() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar TRefElement = /*#__PURE__*/function (_TextElement) {\n _inherits(TRefElement, _TextElement);\n\n var _super = _createSuper$v(TRefElement);\n\n function TRefElement() {\n var _this;\n\n _classCallCheck(this, TRefElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'tref';\n return _this;\n }\n\n _createClass(TRefElement, [{\n key: \"getText\",\n value: function 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 return TRefElement;\n}(TextElement);\n\nfunction _createSuper$w(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$w()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$w() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar AElement = /*#__PURE__*/function (_TextElement) {\n _inherits(AElement, _TextElement);\n\n var _super = _createSuper$w(AElement);\n\n function AElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, AElement);\n\n _this = _super.call(this, document, node, captureTextNodes);\n _this.type = 'a';\n var childNodes = node.childNodes;\n var firstChild = childNodes[0];\n var hasText = childNodes.length > 0 && Array.from(childNodes).every(function (node) {\n return node.nodeType === 3;\n });\n _this.hasText = hasText;\n _this.text = hasText ? _this.getTextFromNode(firstChild) : '';\n return _this;\n }\n\n _createClass(AElement, [{\n key: \"getText\",\n value: function getText() {\n return this.text;\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren(ctx) {\n if (this.hasText) {\n // render as text element\n _get(_getPrototypeOf(AElement.prototype), \"renderChildren\", this).call(this, ctx);\n\n var document = this.document,\n x = this.x,\n y = this.y;\n var mouse = document.screen.mouse;\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 key: \"onClick\",\n value: function onClick() {\n var window = this.document.window;\n\n if (window) {\n window.open(this.getHrefAttribute().getString());\n }\n }\n }, {\n key: \"onMouseMove\",\n value: function onMouseMove() {\n var ctx = this.document.ctx;\n ctx.canvas.style.cursor = 'pointer';\n }\n }]);\n\n return AElement;\n}(TextElement);\n\nfunction _createForOfIteratorHelper$1(o) { if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray$1(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$1(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); }\n\nfunction _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper$x(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$x()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$x() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar TextPathElement = /*#__PURE__*/function (_TextElement) {\n _inherits(TextPathElement, _TextElement);\n\n var _super = _createSuper$x(TextPathElement);\n\n function TextPathElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, TextPathElement);\n\n _this = _super.call(this, 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\n var pathElement = _this.getHrefAttribute().getDefinition();\n\n _this.text = _this.getTextFromNode();\n _this.dataArray = _this.parsePathData(pathElement);\n return _this;\n }\n\n _createClass(TextPathElement, [{\n key: \"getText\",\n value: function getText() {\n return this.text;\n }\n }, {\n key: \"path\",\n value: function path(ctx) {\n var dataArray = this.dataArray;\n\n if (ctx) {\n ctx.beginPath();\n }\n\n dataArray.forEach(function (_ref) {\n var command = _ref.command,\n points = _ref.points;\n\n switch (command) {\n case 'L':\n if (ctx) {\n ctx.lineTo(points[0], points[1]);\n }\n\n break;\n\n case 'M':\n if (ctx) {\n ctx.moveTo(points[0], points[1]);\n }\n\n break;\n\n case 'C':\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 'Q':\n if (ctx) {\n ctx.quadraticCurveTo(points[0], points[1], points[2], points[3]);\n }\n\n break;\n\n case 'A':\n {\n var cx = points[0];\n var cy = points[1];\n var rx = points[2];\n var ry = points[3];\n var theta = points[4];\n var dTheta = points[5];\n var psi = points[6];\n var fs = points[7];\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 'z':\n if (ctx) {\n ctx.closePath();\n }\n\n break;\n }\n });\n }\n }, {\n key: \"renderChildren\",\n value: function 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 glyphInfo = this.glyphInfo;\n var fill = ctx.fillStyle;\n\n if (textDecoration === 'underline') {\n ctx.beginPath();\n }\n\n glyphInfo.forEach(function (glyph, i) {\n var p0 = glyph.p0,\n p1 = glyph.p1,\n partialText = glyph.text;\n ctx.save();\n ctx.translate(p0.x, p0.y);\n ctx.rotate(glyphInfo[i].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 key: \"getLetterSpacingAt\",\n value: function getLetterSpacingAt() {\n var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return this.letterSpacingCache[idx] || 0;\n }\n }, {\n key: \"findSegmentToFitChar\",\n value: function findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, inputOffset, 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 segment = {\n p0: this.getEquidistantPointOnPath(offset, splineStep),\n p1: this.getEquidistantPointOnPath(offset + glyphWidth, splineStep)\n };\n offset += glyphWidth;\n return {\n offset: offset,\n segment: segment\n };\n }\n }, {\n key: \"measureText\",\n value: function measureText(ctx, text) {\n var measuresCache = this.measuresCache;\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 key: \"setTextData\",\n value: function setTextData(ctx) {\n var _this2 = this;\n\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 = toNumbers(this.parent.getAttribute('dx').getString('0'));\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(function (acc, cur) {\n return acc + cur || 0;\n }, 0);\n this.textWidth = this.measureText(ctx);\n this.textHeight = this.getFontSize();\n var textFullWidth = Math.max(this.textWidth + dxSum, 0);\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(function (char, i) {\n // Find such segment what distance between p0 and p1 is approx. width of glyph\n var _this2$findSegmentToF = _this2.findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, offset, char, i),\n nextOffset = _this2$findSegmentToF.offset,\n segment = _this2$findSegmentToF.segment;\n\n offset = nextOffset;\n\n if (!segment.p0 || !segment.p1) {\n return;\n }\n\n var width = _this2.getLineLength(segment.p0.x, segment.p0.y, segment.p1.x, segment.p1.y); // 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\n\n var kern = 0; // placeholder for future implementation\n\n var midpoint = _this2.getPointOnLine(kern + width / 2.0, segment.p0.x, segment.p0.y, segment.p1.x, segment.p1.y);\n\n var rotation = Math.atan2(segment.p1.y - segment.p0.y, segment.p1.x - segment.p0.x);\n\n _this2.glyphInfo.push({\n transposeX: midpoint.x,\n transposeY: midpoint.y,\n text: chars[i],\n p0: segment.p0,\n p1: segment.p1,\n rotation: rotation\n });\n });\n }\n }, {\n key: \"parsePathData\",\n value: function parsePathData(path) {\n this.pathLength = -1; // reset path length\n\n if (!path) {\n return [];\n }\n\n var pathCommands = [];\n var pathParser = path.pathParser;\n pathParser.reset(); // convert l, H, h, V, and v to L\n\n while (!pathParser.isEnd()) {\n var current = pathParser.current;\n var startX = current ? current.x : 0;\n var startY = current ? current.y : 0;\n var cmd = '';\n var points = [];\n pathParser.nextCommand();\n var upperCommand = pathParser.command.toUpperCase();\n\n switch (pathParser.command) {\n case 'M':\n case 'm':\n cmd = this.pathM(pathParser, points);\n break;\n\n case 'L':\n case 'l':\n cmd = this.pathL(pathParser, points);\n break;\n\n case 'H':\n case 'h':\n cmd = this.pathH(pathParser, points);\n break;\n\n case 'V':\n case 'v':\n cmd = this.pathV(pathParser, points);\n break;\n\n case 'C':\n case 'c':\n this.pathC(pathParser, points);\n break;\n\n case 'S':\n case 's':\n cmd = this.pathS(pathParser, points);\n break;\n\n case 'Q':\n case 'q':\n this.pathQ(pathParser, points);\n break;\n\n case 'T':\n case 't':\n cmd = this.pathT(pathParser, points);\n break;\n\n case 'A':\n case 'a':\n points = this.pathA(pathParser);\n break;\n\n case 'Z':\n case 'z':\n pathParser.current = pathParser.start;\n break;\n }\n\n if (upperCommand !== 'Z') {\n pathCommands.push({\n command: cmd || upperCommand,\n points: points,\n start: {\n x: startX,\n y: startY\n },\n pathLength: this.calcLength(startX, startY, cmd || upperCommand, points)\n });\n } else {\n pathCommands.push({\n command: 'z',\n points: [],\n pathLength: 0\n });\n }\n }\n\n return pathCommands;\n }\n }, {\n key: \"pathM\",\n value: function pathM(pathParser, points) {\n var p = pathParser.getAsCurrentPoint(); // pathParser.addMarker(p);\n\n points.push(p.x, p.y);\n pathParser.start = pathParser.current;\n\n while (!pathParser.isCommandOrEnd()) {\n var _p = pathParser.getAsCurrentPoint();\n\n points.push(_p.x, _p.y);\n return 'L';\n }\n }\n }, {\n key: \"pathL\",\n value: function pathL(pathParser, points) {\n while (!pathParser.isCommandOrEnd()) {\n var p = pathParser.getAsCurrentPoint();\n points.push(p.x, p.y);\n }\n\n return 'L';\n }\n }, {\n key: \"pathH\",\n value: function pathH(pathParser, points) {\n while (!pathParser.isCommandOrEnd()) {\n var current = pathParser.current;\n var point = new Point((pathParser.isRelativeCommand() ? current.x : 0) + pathParser.getScalar(), current.y);\n points.push(point.x, point.y);\n pathParser.current = point;\n }\n\n return 'L';\n }\n }, {\n key: \"pathV\",\n value: function pathV(pathParser, points) {\n while (!pathParser.isCommandOrEnd()) {\n var current = pathParser.current;\n var point = new Point(current.x, (pathParser.isRelativeCommand() ? current.y : 0) + pathParser.getScalar());\n points.push(point.x, point.y);\n pathParser.current = point;\n }\n\n return 'L';\n }\n }, {\n key: \"pathC\",\n value: function pathC(pathParser, points) {\n while (!pathParser.isCommandOrEnd()) {\n var point = pathParser.getPoint();\n var controlPoint = pathParser.getAsControlPoint();\n var currentPoint = pathParser.getAsCurrentPoint();\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n }, {\n key: \"pathS\",\n value: function pathS(pathParser, points) {\n while (!pathParser.isCommandOrEnd()) {\n var point = pathParser.getReflectedControlPoint();\n var controlPoint = pathParser.getAsControlPoint();\n var currentPoint = pathParser.getAsCurrentPoint();\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n return 'C';\n }\n }, {\n key: \"pathQ\",\n value: function pathQ(pathParser, points) {\n while (!pathParser.isCommandOrEnd()) {\n var controlPoint = pathParser.getAsControlPoint();\n var currentPoint = pathParser.getAsCurrentPoint();\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n }, {\n key: \"pathT\",\n value: function pathT(pathParser, points) {\n while (!pathParser.isCommandOrEnd()) {\n var controlPoint = pathParser.getReflectedControlPoint();\n pathParser.control = controlPoint;\n var currentPoint = pathParser.getAsCurrentPoint();\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n return 'Q';\n }\n }, {\n key: \"pathA\",\n value: function pathA(pathParser) {\n while (!pathParser.isCommandOrEnd()) {\n var current = pathParser.current; // x1, y1\n\n var rx = pathParser.getScalar();\n var ry = pathParser.getScalar();\n var xAxisRotation = pathParser.getScalar() * (Math.PI / 180.0); // φ\n\n var largeArcFlag = pathParser.getScalar(); // fA\n\n var sweepFlag = pathParser.getScalar(); // fS\n\n var currentPoint = pathParser.getAsCurrentPoint(); // x2, y2\n // 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 = (largeArcFlag === 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 if (sweepFlag === 0 && ad > 0) {\n ad = ad - 2 * Math.PI;\n }\n\n if (sweepFlag === 1 && ad < 0) {\n ad = ad + 2 * Math.PI;\n }\n\n return [centp.x, centp.y, rx, ry, a1, ad, xAxisRotation, sweepFlag];\n }\n }\n }, {\n key: \"calcLength\",\n value: function calcLength(x, y, cmd, points) {\n var len = 0;\n var p1 = null;\n var p2 = null;\n var t = 0;\n\n switch (cmd) {\n case 'L':\n return this.getLineLength(x, y, points[0], points[1]);\n\n case 'C':\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 'Q':\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 'A':\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 return 0;\n }\n }, {\n key: \"getPointOnLine\",\n value: function 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 = 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 key: \"getPointOnPath\",\n value: function 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 dataArray = this.dataArray;\n\n var _iterator = _createForOfIteratorHelper$1(dataArray),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var pathCmd = _step.value;\n\n if (pathCmd && (pathCmd.pathLength < 0.00005 || cumulativePathLength + pathCmd.pathLength + 0.00005 < distance)) {\n cumulativePathLength += pathCmd.pathLength;\n continue;\n }\n\n var delta = distance - cumulativePathLength;\n var currentT = 0;\n\n switch (pathCmd.command) {\n case 'L':\n p = this.getPointOnLine(delta, pathCmd.start.x, pathCmd.start.y, pathCmd.points[0], pathCmd.points[1], pathCmd.start.x, pathCmd.start.y);\n break;\n\n case 'A':\n var start = pathCmd.points[4]; // 4 = theta\n\n var dTheta = pathCmd.points[5]; // 5 = dTheta\n\n var end = pathCmd.points[4] + dTheta;\n currentT = start + delta / pathCmd.pathLength * dTheta;\n\n if (dTheta < 0 && currentT < end || dTheta >= 0 && currentT > end) {\n break;\n }\n\n p = this.getPointOnEllipticalArc(pathCmd.points[0], pathCmd.points[1], pathCmd.points[2], pathCmd.points[3], currentT, pathCmd.points[6]);\n break;\n\n case 'C':\n currentT = delta / pathCmd.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnCubicBezier(currentT, pathCmd.start.x, pathCmd.start.y, pathCmd.points[0], pathCmd.points[1], pathCmd.points[2], pathCmd.points[3], pathCmd.points[4], pathCmd.points[5]);\n break;\n\n case 'Q':\n currentT = delta / pathCmd.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnQuadraticBezier(currentT, pathCmd.start.x, pathCmd.start.y, pathCmd.points[0], pathCmd.points[1], pathCmd.points[2], pathCmd.points[3]);\n break;\n\n default:\n }\n\n if (p) {\n return p;\n }\n\n break;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return null;\n }\n }, {\n key: \"getLineLength\",\n value: function getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n }, {\n key: \"getPathLength\",\n value: function getPathLength() {\n if (this.pathLength === -1) {\n this.pathLength = this.dataArray.reduce(function (length, command) {\n return command.pathLength > 0 ? length + command.pathLength : length;\n }, 0);\n }\n\n return this.pathLength;\n }\n }, {\n key: \"getPointOnCubicBezier\",\n value: function 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: x,\n y: y\n };\n }\n }, {\n key: \"getPointOnQuadraticBezier\",\n value: function 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: x,\n y: y\n };\n }\n }, {\n key: \"getPointOnEllipticalArc\",\n value: function 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 key: \"buildEquidistantCache\",\n value: function 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: step,\n precision: 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 key: \"getEquidistantPointOnPath\",\n value: function 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 return TextPathElement;\n}(TextElement);\n\nfunction _createSuper$y(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$y()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$y() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar ImageElement = /*#__PURE__*/function (_RenderedElement) {\n _inherits(ImageElement, _RenderedElement);\n\n var _super = _createSuper$y(ImageElement);\n\n function ImageElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, ImageElement);\n\n _this = _super.call(this, document, node, captureTextNodes);\n _this.type = 'image';\n _this.loaded = false;\n\n var href = _this.getHrefAttribute().getString();\n\n if (!href) {\n return _possibleConstructorReturn(_this);\n }\n\n var isSvg = /\\.svg$/.test(href);\n document.images.push(_assertThisInitialized(_this));\n\n if (!isSvg) {\n _this.loadImage(href);\n } else {\n _this.loadSvg(href);\n }\n\n _this.isSvg = isSvg;\n return _this;\n }\n\n _createClass(ImageElement, [{\n key: \"loadImage\",\n value: function () {\n var _loadImage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(href) {\n var image;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n _context.next = 3;\n return this.document.createImage(href);\n\n case 3:\n image = _context.sent;\n this.image = image;\n _context.next = 10;\n break;\n\n case 7:\n _context.prev = 7;\n _context.t0 = _context[\"catch\"](0);\n // tslint:disable-next-line: no-console\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), _context.t0);\n\n case 10:\n this.loaded = true;\n\n case 11:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[0, 7]]);\n }));\n\n function loadImage(_x) {\n return _loadImage.apply(this, arguments);\n }\n\n return loadImage;\n }()\n }, {\n key: \"loadSvg\",\n value: function () {\n var _loadSvg = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(href) {\n var response, svg;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n _context2.next = 3;\n return this.document.fetch(href);\n\n case 3:\n response = _context2.sent;\n _context2.next = 6;\n return response.text();\n\n case 6:\n svg = _context2.sent;\n this.image = svg;\n _context2.next = 13;\n break;\n\n case 10:\n _context2.prev = 10;\n _context2.t0 = _context2[\"catch\"](0);\n // tslint:disable-next-line: no-console\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), _context2.t0);\n\n case 13:\n this.loaded = true;\n\n case 14:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this, [[0, 10]]);\n }));\n\n function loadSvg(_x2) {\n return _loadSvg.apply(this, arguments);\n }\n\n return loadSvg;\n }()\n }, {\n key: \"renderChildren\",\n value: function renderChildren(ctx) {\n var document = this.document,\n image = this.image,\n loaded = this.loaded;\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\n if (this.isSvg) {\n document.canvg.forkString(ctx, this.image, {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true,\n ignoreClear: true,\n offsetX: x,\n offsetY: y,\n scaleWidth: width,\n scaleHeight: height\n }).render();\n } else {\n var _image = this.image;\n ctx.translate(x, y);\n document.setViewBox({\n ctx: ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width: width,\n desiredWidth: _image.width,\n height: 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 key: \"getBoundingBox\",\n value: function 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 return ImageElement;\n}(RenderedElement);\n\nfunction _createSuper$z(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$z()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$z() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar SymbolElement = /*#__PURE__*/function (_RenderedElement) {\n _inherits(SymbolElement, _RenderedElement);\n\n var _super = _createSuper$z(SymbolElement);\n\n function SymbolElement() {\n var _this;\n\n _classCallCheck(this, SymbolElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'symbol';\n return _this;\n }\n\n _createClass(SymbolElement, [{\n key: \"render\",\n value: function render(_) {// NO RENDER\n }\n }]);\n\n return SymbolElement;\n}(RenderedElement);\n\nvar SVGFontLoader = /*#__PURE__*/function () {\n function SVGFontLoader(document) {\n _classCallCheck(this, SVGFontLoader);\n\n this.document = document;\n this.loaded = false;\n document.fonts.push(this);\n }\n\n _createClass(SVGFontLoader, [{\n key: \"load\",\n value: function () {\n var _load = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(fontFamily, url) {\n var document, svgDocument, fonts;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n document = this.document;\n _context.next = 4;\n return document.canvg.parser.load(url);\n\n case 4:\n svgDocument = _context.sent;\n fonts = svgDocument.getElementsByTagName('font');\n Array.from(fonts).forEach(function (fontNode) {\n var font = document.createElement(fontNode);\n document.definitions[fontFamily] = font;\n });\n _context.next = 12;\n break;\n\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n // tslint:disable-next-line: no-console\n console.error(\"Error while loading font \\\"\".concat(url, \"\\\":\"), _context.t0);\n\n case 12:\n this.loaded = true;\n\n case 13:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[0, 9]]);\n }));\n\n function load(_x, _x2) {\n return _load.apply(this, arguments);\n }\n\n return load;\n }()\n }]);\n\n return SVGFontLoader;\n}();\n\nfunction _createSuper$A(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$A()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$A() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar StyleElement = /*#__PURE__*/function (_Element) {\n _inherits(StyleElement, _Element);\n\n var _super = _createSuper$A(StyleElement);\n\n function StyleElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, StyleElement);\n\n _this = _super.call(this, document, node, captureTextNodes);\n _this.type = 'style';\n var css = compressSpaces(Array.from(node.childNodes).map(function (_) {\n return _.data;\n }).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(function (_) {\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(function (_) {\n var cssClass = _.trim();\n\n if (!cssClass) {\n return;\n }\n\n var props = document.styles[cssClass] || {};\n cssProps.forEach(function (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(function (src) {\n if (src.indexOf('format(\"svg\")') > 0) {\n var url = parseExternalUrl(src);\n\n if (url) {\n new SVGFontLoader(document).load(fontFamily, url);\n }\n }\n });\n }\n });\n });\n return _this;\n }\n\n return StyleElement;\n}(Element);\nStyleElement.parseExternalUrl = parseExternalUrl;\n\nfunction _createSuper$B(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$B()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$B() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar UseElement = /*#__PURE__*/function (_RenderedElement) {\n _inherits(UseElement, _RenderedElement);\n\n var _super = _createSuper$B(UseElement);\n\n function UseElement() {\n var _this;\n\n _classCallCheck(this, UseElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'use';\n return _this;\n }\n\n _createClass(UseElement, [{\n key: \"setContext\",\n value: function setContext(ctx) {\n _get(_getPrototypeOf(UseElement.prototype), \"setContext\", this).call(this, ctx);\n\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 key: \"path\",\n value: function path(ctx) {\n var element = this.element;\n\n if (element) {\n element.path(ctx);\n }\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren(ctx) {\n var document = this.document,\n element = this.element;\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;\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 key: \"getBoundingBox\",\n value: function getBoundingBox(ctx) {\n var element = this.element;\n\n if (element) {\n return element.getBoundingBox(ctx);\n }\n\n return null;\n }\n }, {\n key: \"elementTransform\",\n value: function elementTransform() {\n var document = this.document,\n element = this.element;\n return Transform.fromElement(document, element);\n }\n }, {\n key: \"element\",\n get: function get() {\n if (!this._element) {\n this._element = this.getHrefAttribute().getDefinition();\n }\n\n return this._element;\n }\n }]);\n\n return UseElement;\n}(RenderedElement);\n\nfunction _createSuper$C(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$C()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$C() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction imGet(img, x, y, width, _, rgba) {\n return img[y * width * 4 + x * 4 + rgba];\n}\n\nfunction imSet(img, x, y, width, _, 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 * (mi < 0 ? v - 255 : v);\n}\n\nfunction c(a, m1, m2, m3) {\n return m1 + Math.cos(a) * m2 + Math.sin(a) * m3;\n}\n\nvar FeColorMatrixElement = /*#__PURE__*/function (_Element) {\n _inherits(FeColorMatrixElement, _Element);\n\n var _super = _createSuper$C(FeColorMatrixElement);\n\n function FeColorMatrixElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, FeColorMatrixElement);\n\n _this = _super.call(this, 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 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 break;\n }\n\n case 'hueRotate':\n {\n var a = matrix[0] * Math.PI / 180.0;\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 break;\n }\n\n case 'luminanceToAlpha':\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 break;\n }\n\n _this.matrix = matrix;\n _this.includeOpacity = _this.getAttribute('includeOpacity').hasValue();\n return _this;\n }\n\n _createClass(FeColorMatrixElement, [{\n key: \"apply\",\n value: function apply(ctx, _, __, width, height) {\n // assuming x==0 && y==0 for now\n var includeOpacity = this.includeOpacity,\n matrix = this.matrix;\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 = ng = 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 return FeColorMatrixElement;\n}(Element);\n\nfunction _createSuper$D(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$D()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$D() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar MaskElement = /*#__PURE__*/function (_Element) {\n _inherits(MaskElement, _Element);\n\n var _super = _createSuper$D(MaskElement);\n\n function MaskElement() {\n var _this;\n\n _classCallCheck(this, MaskElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'mask';\n return _this;\n }\n\n _createClass(MaskElement, [{\n key: \"apply\",\n value: function apply(ctx, element) {\n var document = this.document; // 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(function (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 key: \"render\",\n value: function render(_) {// NO RENDER\n }\n }]);\n\n return MaskElement;\n}(Element);\nMaskElement.ignoreStyles = ['mask', 'transform', 'clip-path'];\n\nfunction _createSuper$E(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$E()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$E() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar noop = function noop() {};\n\nvar ClipPathElement = /*#__PURE__*/function (_Element) {\n _inherits(ClipPathElement, _Element);\n\n var _super = _createSuper$E(ClipPathElement);\n\n function ClipPathElement() {\n var _this;\n\n _classCallCheck(this, ClipPathElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'clipPath';\n return _this;\n }\n\n _createClass(ClipPathElement, [{\n key: \"apply\",\n value: function apply(ctx) {\n var document = this.document;\n var contextProto = Reflect.getPrototypeOf(ctx);\n var beginPath = ctx.beginPath,\n closePath = ctx.closePath;\n\n if (contextProto) {\n contextProto.beginPath = noop;\n contextProto.closePath = noop;\n }\n\n Reflect.apply(beginPath, ctx, []);\n this.children.forEach(function (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 key: \"render\",\n value: function render(_) {// NO RENDER\n }\n }]);\n\n return ClipPathElement;\n}(Element);\n\nfunction _createSuper$F(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$F()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$F() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar FilterElement = /*#__PURE__*/function (_Element) {\n _inherits(FilterElement, _Element);\n\n var _super = _createSuper$F(FilterElement);\n\n function FilterElement() {\n var _this;\n\n _classCallCheck(this, FilterElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'filter';\n return _this;\n }\n\n _createClass(FilterElement, [{\n key: \"apply\",\n value: function apply(ctx, element) {\n // render as temp svg\n var document = this.document,\n children = this.children;\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(function (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(function (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 key: \"render\",\n value: function render(_) {// NO RENDER\n }\n }]);\n\n return FilterElement;\n}(Element);\nFilterElement.ignoreStyles = ['filter', 'transform', 'clip-path'];\n\nfunction _createSuper$G(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$G()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$G() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar FeDropShadowElement = /*#__PURE__*/function (_Element) {\n _inherits(FeDropShadowElement, _Element);\n\n var _super = _createSuper$G(FeDropShadowElement);\n\n function FeDropShadowElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, FeDropShadowElement);\n\n _this = _super.call(this, document, node, captureTextNodes);\n _this.type = 'feDropShadow';\n\n _this.addStylesFromStyleDefinition();\n\n return _this;\n }\n\n _createClass(FeDropShadowElement, [{\n key: \"apply\",\n value: function apply(_, __, ___, ____, _____) {// TODO: implement\n }\n }]);\n\n return FeDropShadowElement;\n}(Element);\n\nfunction _createSuper$H(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$H()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$H() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar FeMorphologyElement = /*#__PURE__*/function (_Element) {\n _inherits(FeMorphologyElement, _Element);\n\n var _super = _createSuper$H(FeMorphologyElement);\n\n function FeMorphologyElement() {\n var _this;\n\n _classCallCheck(this, FeMorphologyElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'feMorphology';\n return _this;\n }\n\n _createClass(FeMorphologyElement, [{\n key: \"apply\",\n value: function apply(_, __, ___, ____, _____) {// TODO: implement\n }\n }]);\n\n return FeMorphologyElement;\n}(Element);\n\nfunction _createSuper$I(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$I()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$I() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar FeCompositeElement = /*#__PURE__*/function (_Element) {\n _inherits(FeCompositeElement, _Element);\n\n var _super = _createSuper$I(FeCompositeElement);\n\n function FeCompositeElement() {\n var _this;\n\n _classCallCheck(this, FeCompositeElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'feComposite';\n return _this;\n }\n\n _createClass(FeCompositeElement, [{\n key: \"apply\",\n value: function apply(_, __, ___, ____, _____) {// TODO: implement\n }\n }]);\n\n return FeCompositeElement;\n}(Element);\n\nfunction _createSuper$J(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$J()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$J() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar FeGaussianBlurElement = /*#__PURE__*/function (_Element) {\n _inherits(FeGaussianBlurElement, _Element);\n\n var _super = _createSuper$J(FeGaussianBlurElement);\n\n function FeGaussianBlurElement(document, node, captureTextNodes) {\n var _this;\n\n _classCallCheck(this, FeGaussianBlurElement);\n\n _this = _super.call(this, document, node, captureTextNodes);\n _this.type = 'feGaussianBlur';\n _this.blurRadius = Math.floor(_this.getAttribute('stdDeviation').getNumber());\n _this.extraFilterDistance = _this.blurRadius;\n return _this;\n }\n\n _createClass(FeGaussianBlurElement, [{\n key: \"apply\",\n value: function apply(ctx, x, y, width, height) {\n var document = this.document,\n blurRadius = this.blurRadius;\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 return FeGaussianBlurElement;\n}(Element);\n\nfunction _createSuper$K(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$K()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$K() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar TitleElement = /*#__PURE__*/function (_Element) {\n _inherits(TitleElement, _Element);\n\n var _super = _createSuper$K(TitleElement);\n\n function TitleElement() {\n var _this;\n\n _classCallCheck(this, TitleElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'title';\n return _this;\n }\n\n return TitleElement;\n}(Element);\n\nfunction _createSuper$L(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct$L()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$L() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar DescElement = /*#__PURE__*/function (_Element) {\n _inherits(DescElement, _Element);\n\n var _super = _createSuper$L(DescElement);\n\n function DescElement() {\n var _this;\n\n _classCallCheck(this, DescElement);\n\n _this = _super.apply(this, arguments);\n _this.type = 'desc';\n return _this;\n }\n\n return DescElement;\n}(Element);\n\nvar elementTypes = {\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(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\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( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(src) {\n var anonymousCrossOrigin,\n image,\n _args = arguments;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n anonymousCrossOrigin = _args.length > 1 && _args[1] !== undefined ? _args[1] : false;\n image = document.createElement('img');\n\n if (anonymousCrossOrigin) {\n image.crossOrigin = 'Anonymous';\n }\n\n return _context.abrupt(\"return\", new Promise(function (resolve, reject) {\n image.onload = function () {\n resolve(image);\n };\n\n image.onerror = function () {\n reject();\n };\n\n image.src = src;\n }));\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _createImage.apply(this, arguments);\n}\n\nvar Document = /*#__PURE__*/function () {\n function Document(canvg) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$rootEmSize = _ref.rootEmSize,\n rootEmSize = _ref$rootEmSize === void 0 ? 12 : _ref$rootEmSize,\n _ref$emSize = _ref.emSize,\n emSize = _ref$emSize === void 0 ? 12 : _ref$emSize,\n _ref$createCanvas = _ref.createCanvas,\n createCanvas = _ref$createCanvas === void 0 ? Document.createCanvas : _ref$createCanvas,\n _ref$createImage = _ref.createImage,\n createImage = _ref$createImage === void 0 ? Document.createImage : _ref$createImage,\n anonymousCrossOrigin = _ref.anonymousCrossOrigin;\n\n _classCallCheck(this, Document);\n\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 _createClass(Document, [{\n key: \"bindCreateImage\",\n value: function bindCreateImage(createImage, anonymousCrossOrigin) {\n if (typeof anonymousCrossOrigin === 'boolean') {\n return function (source, forceAnonymousCrossOrigin) {\n return createImage(source, typeof forceAnonymousCrossOrigin === 'boolean' ? forceAnonymousCrossOrigin : anonymousCrossOrigin);\n };\n }\n\n return createImage;\n }\n }, {\n key: \"popEmSize\",\n value: function popEmSize() {\n var emSizeStack = this.emSizeStack;\n emSizeStack.pop();\n }\n }, {\n key: \"getUniqueId\",\n value: function getUniqueId() {\n return \"canvg\".concat(++this.uniqueId);\n }\n }, {\n key: \"isImagesLoaded\",\n value: function isImagesLoaded() {\n return this.images.every(function (_) {\n return _.loaded;\n });\n }\n }, {\n key: \"isFontsLoaded\",\n value: function isFontsLoaded() {\n return this.fonts.every(function (_) {\n return _.loaded;\n });\n }\n }, {\n key: \"createDocumentElement\",\n value: function 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 key: \"createElement\",\n value: function 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 key: \"createTextNode\",\n value: function createTextNode(node) {\n return new TextNode(this, node);\n }\n }, {\n key: \"setViewBox\",\n value: function setViewBox(config) {\n this.screen.setViewBox(_objectSpread({\n document: this\n }, config));\n }\n }, {\n key: \"window\",\n get: function get() {\n return this.screen.window;\n }\n }, {\n key: \"fetch\",\n get: function get() {\n return this.screen.fetch;\n }\n }, {\n key: \"ctx\",\n get: function get() {\n return this.screen.ctx;\n }\n }, {\n key: \"emSize\",\n get: function get() {\n var emSizeStack = this.emSizeStack;\n return emSizeStack[emSizeStack.length - 1];\n },\n set: function set(value) {\n var emSizeStack = this.emSizeStack;\n emSizeStack.push(value);\n }\n }]);\n\n return Document;\n}();\nDocument.createCanvas = createCanvas;\nDocument.createImage = createImage;\nDocument.elementTypes = elementTypes;\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/**\n * SVG renderer on canvas.\n */\n\nvar Canvg = /*#__PURE__*/function () {\n /**\n * Main constructor.\n * @param ctx - Rendering context.\n * @param svg - SVG Document.\n * @param options - Rendering options.\n */\n function Canvg(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n _classCallCheck(this, Canvg);\n\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 /**\n * Create Canvg isntance from SVG source string or URL.\n * @param ctx - Rendering context.\n * @param svg - SVG source string or URL.\n * @param options - Rendering options.\n */\n\n\n _createClass(Canvg, [{\n key: \"fork\",\n\n /**\n * Create new Canvg instance with inherited options.\n * @param ctx - Rendering context.\n * @param svg - SVG source string or URL.\n * @param options - Rendering options.\n */\n value: function fork(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.from(ctx, svg, _objectSpread$1({}, this.options, {}, options));\n }\n /**\n * Create new Canvg instance with inherited options.\n * @param ctx - Rendering context.\n * @param svg - SVG source string.\n * @param options - Rendering options.\n */\n\n }, {\n key: \"forkString\",\n value: function forkString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.fromString(ctx, svg, _objectSpread$1({}, this.options, {}, options));\n }\n /**\n * Document is ready promise.\n */\n\n }, {\n key: \"ready\",\n value: function ready() {\n return this.screen.ready();\n }\n /**\n * Document is ready value.\n */\n\n }, {\n key: \"isReady\",\n value: function isReady() {\n return this.screen.isReady();\n }\n /**\n * Render only first frame, ignoring animations and mouse.\n * @param options - Rendering options.\n */\n\n }, {\n key: \"render\",\n value: function () {\n var _render = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var options,\n _args = arguments;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n options = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};\n this.start(_objectSpread$1({\n enableRedraw: true,\n ignoreAnimation: true,\n ignoreMouse: true\n }, options));\n _context.next = 4;\n return this.ready();\n\n case 4:\n this.stop();\n\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function render() {\n return _render.apply(this, arguments);\n }\n\n return render;\n }()\n /**\n * Start rendering.\n * @param options - Render options.\n */\n\n }, {\n key: \"start\",\n value: function start() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var documentElement = this.documentElement,\n screen = this.screen,\n baseOptions = this.options;\n screen.start(documentElement, _objectSpread$1({\n enableRedraw: true\n }, baseOptions, {}, options));\n }\n /**\n * Stop rendering.\n */\n\n }, {\n key: \"stop\",\n value: function stop() {\n this.screen.stop();\n }\n /**\n * Resize SVG to fit in given size.\n * @param width\n * @param height\n * @param preserveAspectRatio\n */\n\n }, {\n key: \"resize\",\n value: function 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 key: \"from\",\n value: function () {\n var _from = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(ctx, svg) {\n var options,\n parser,\n svgDocument,\n _args2 = arguments;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n options = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : {};\n parser = new Parser(options);\n _context2.next = 4;\n return parser.parse(svg);\n\n case 4:\n svgDocument = _context2.sent;\n return _context2.abrupt(\"return\", new Canvg(ctx, svgDocument, options));\n\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n function from(_x, _x2) {\n return _from.apply(this, arguments);\n }\n\n return from;\n }()\n /**\n * Create Canvg isntance from SVG source string.\n * @param ctx - Rendering context.\n * @param svg - SVG source string.\n * @param options - Rendering options.\n */\n\n }, {\n key: \"fromString\",\n value: function 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 }]);\n\n return Canvg;\n}();\n\n/**\n * Options preset for `OffscreenCanvas`.\n * @param config - Preset requirements.\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\n */\nfunction offscreen() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n DOMParserFallback = _ref.DOMParser;\n\n var preset = {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser: DOMParserFallback,\n createCanvas: function createCanvas(width, height) {\n return new OffscreenCanvas(width, height);\n },\n createImage: function createImage(url) {\n return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var response, blob, img;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return fetch(url);\n\n case 2:\n response = _context.sent;\n _context.next = 5;\n return response.blob();\n\n case 5:\n blob = _context.sent;\n _context.next = 8;\n return createImageBitmap(blob);\n\n case 8:\n img = _context.sent;\n return _context.abrupt(\"return\", img);\n\n case 10:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\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/**\n * Options preset for `node-canvas`.\n * @param config - Preset requirements.\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\n * @param config.canvas - `node-canvas` exports.\n * @param config.fetch - WHATWG-compatible `fetch` function.\n */\nfunction node(_ref) {\n var DOMParser = _ref.DOMParser,\n canvas = _ref.canvas,\n fetch = _ref.fetch;\n return {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser: DOMParser,\n fetch: fetch,\n createCanvas: canvas.createCanvas,\n createImage: canvas.loadImage\n };\n}\n\n\n\nvar index = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\toffscreen: offscreen,\n\tnode: node\n});\n\nexport default Canvg;\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, getSelectorSpecificity, normalizeAttributeName, normalizeColor, parseExternalUrl, index as presets, toNumbers, trimLeft, trimRight, vectorMagnitude, vectorsAngle, vectorsRatio };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9yZWdlbmVyYXRvci1ydW50aW1lL3J1bnRpbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG52YXIgcnVudGltZSA9IChmdW5jdGlvbiAoZXhwb3J0cykge1xuICBcInVzZSBzdHJpY3RcIjtcblxuICB2YXIgT3AgPSBPYmplY3QucHJvdG90eXBlO1xuICB2YXIgaGFzT3duID0gT3AuaGFzT3duUHJvcGVydHk7XG4gIHZhciB1bmRlZmluZWQ7IC8vIE1vcmUgY29tcHJlc3NpYmxlIHRoYW4gdm9pZCAwLlxuICB2YXIgJFN5bWJvbCA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiA/IFN5bWJvbCA6IHt9O1xuICB2YXIgaXRlcmF0b3JTeW1ib2wgPSAkU3ltYm9sLml0ZXJhdG9yIHx8IFwiQEBpdGVyYXRvclwiO1xuICB2YXIgYXN5bmNJdGVyYXRvclN5bWJvbCA9ICRTeW1ib2wuYXN5bmNJdGVyYXRvciB8fCBcIkBAYXN5bmNJdGVyYXRvclwiO1xuICB2YXIgdG9TdHJpbmdUYWdTeW1ib2wgPSAkU3ltYm9sLnRvU3RyaW5nVGFnIHx8IFwiQEB0b1N0cmluZ1RhZ1wiO1xuXG4gIGZ1bmN0aW9uIHdyYXAoaW5uZXJGbiwgb3V0ZXJGbiwgc2VsZiwgdHJ5TG9jc0xpc3QpIHtcbiAgICAvLyBJZiBvdXRlckZuIHByb3ZpZGVkIGFuZCBvdXRlckZuLnByb3RvdHlwZSBpcyBhIEdlbmVyYXRvciwgdGhlbiBvdXRlckZuLnByb3RvdHlwZSBpbnN0YW5jZW9mIEdlbmVyYXRvci5cbiAgICB2YXIgcHJvdG9HZW5lcmF0b3IgPSBvdXRlckZuICYmIG91dGVyRm4ucHJvdG90eXBlIGluc3RhbmNlb2YgR2VuZXJhdG9yID8gb3V0ZXJGbiA6IEdlbmVyYXRvcjtcbiAgICB2YXIgZ2VuZXJhdG9yID0gT2JqZWN0LmNyZWF0ZShwcm90b0dlbmVyYXRvci5wcm90b3R5cGUpO1xuICAgIHZhciBjb250ZXh0ID0gbmV3IENvbnRleHQodHJ5TG9jc0xpc3QgfHwgW10pO1xuXG4gICAgLy8gVGhlIC5faW52b2tlIG1ldGhvZCB1bmlmaWVzIHRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIC5uZXh0LFxuICAgIC8vIC50aHJvdywgYW5kIC5yZXR1cm4gbWV0aG9kcy5cbiAgICBnZW5lcmF0b3IuX2ludm9rZSA9IG1ha2VJbnZva2VNZXRob2QoaW5uZXJGbiwgc2VsZiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9yO1xuICB9XG4gIGV4cG9ydHMud3JhcCA9IHdyYXA7XG5cbiAgLy8gVHJ5L2NhdGNoIGhlbHBlciB0byBtaW5pbWl6ZSBkZW9wdGltaXphdGlvbnMuIFJldHVybnMgYSBjb21wbGV0aW9uXG4gIC8vIHJlY29yZCBsaWtlIGNvbnRleHQudHJ5RW50cmllc1tpXS5jb21wbGV0aW9uLiBUaGlzIGludGVyZmFjZSBjb3VsZFxuICAvLyBoYXZlIGJlZW4gKGFuZCB3YXMgcHJldmlvdXNseSkgZGVzaWduZWQgdG8gdGFrZSBhIGNsb3N1cmUgdG8gYmVcbiAgLy8gaW52b2tlZCB3aXRob3V0IGFyZ3VtZW50cywgYnV0IGluIGFsbCB0aGUgY2FzZXMgd2UgY2FyZSBhYm91dCB3ZVxuICAvLyBhbHJlYWR5IGhhdmUgYW4gZXhpc3RpbmcgbWV0aG9kIHdlIHdhbnQgdG8gY2FsbCwgc28gdGhlcmUncyBubyBuZWVkXG4gIC8vIHRvIGNyZWF0ZSBhIG5ldyBmdW5jdGlvbiBvYmplY3QuIFdlIGNhbiBldmVuIGdldCBhd2F5IHdpdGggYXNzdW1pbmdcbiAgLy8gdGhlIG1ldGhvZCB0YWtlcyBleGFjdGx5IG9uZSBhcmd1bWVudCwgc2luY2UgdGhhdCBoYXBwZW5zIHRvIGJlIHRydWVcbiAgLy8gaW4gZXZlcnkgY2FzZSwgc28gd2UgZG9uJ3QgaGF2ZSB0byB0b3VjaCB0aGUgYXJndW1lbnRzIG9iamVjdC4gVGhlXG4gIC8vIG9ubHkgYWRkaXRpb25hbCBhbGxvY2F0aW9uIHJlcXVpcmVkIGlzIHRoZSBjb21wbGV0aW9uIHJlY29yZCwgd2hpY2hcbiAgLy8gaGFzIGEgc3RhYmxlIHNoYXBlIGFuZCBzbyBob3BlZnVsbHkgc2hvdWxkIGJlIGNoZWFwIHRvIGFsbG9jYXRlLlxuICBmdW5jdGlvbiB0cnlDYXRjaChmbiwgb2JqLCBhcmcpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHsgdHlwZTogXCJub3JtYWxcIiwgYXJnOiBmbi5jYWxsKG9iaiwgYXJnKSB9O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmV0dXJuIHsgdHlwZTogXCJ0aHJvd1wiLCBhcmc6IGVyciB9O1xuICAgIH1cbiAgfVxuXG4gIHZhciBHZW5TdGF0ZVN1c3BlbmRlZFN0YXJ0ID0gXCJzdXNwZW5kZWRTdGFydFwiO1xuICB2YXIgR2VuU3RhdGVTdXNwZW5kZWRZaWVsZCA9IFwic3VzcGVuZGVkWWllbGRcIjtcbiAgdmFyIEdlblN0YXRlRXhlY3V0aW5nID0gXCJleGVjdXRpbmdcIjtcbiAgdmFyIEdlblN0YXRlQ29tcGxldGVkID0gXCJjb21wbGV0ZWRcIjtcblxuICAvLyBSZXR1cm5pbmcgdGhpcyBvYmplY3QgZnJvbSB0aGUgaW5uZXJGbiBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzXG4gIC8vIGJyZWFraW5nIG91dCBvZiB0aGUgZGlzcGF0Y2ggc3dpdGNoIHN0YXRlbWVudC5cbiAgdmFyIENvbnRpbnVlU2VudGluZWwgPSB7fTtcblxuICAvLyBEdW1teSBjb25zdHJ1Y3RvciBmdW5jdGlvbnMgdGhhdCB3ZSB1c2UgYXMgdGhlIC5jb25zdHJ1Y3RvciBhbmRcbiAgLy8gLmNvbnN0cnVjdG9yLnByb3RvdHlwZSBwcm9wZXJ0aWVzIGZvciBmdW5jdGlvbnMgdGhhdCByZXR1cm4gR2VuZXJhdG9yXG4gIC8vIG9iamVjdHMuIEZvciBmdWxsIHNwZWMgY29tcGxpYW5jZSwgeW91IG1heSB3aXNoIHRvIGNvbmZpZ3VyZSB5b3VyXG4gIC8vIG1pbmlmaWVyIG5vdCB0byBtYW5nbGUgdGhlIG5hbWVzIG9mIHRoZXNlIHR3byBmdW5jdGlvbnMuXG4gIGZ1bmN0aW9uIEdlbmVyYXRvcigpIHt9XG4gIGZ1bmN0aW9uIEdlbmVyYXRvckZ1bmN0aW9uKCkge31cbiAgZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUoKSB7fVxuXG4gIC8vIFRoaXMgaXMgYSBwb2x5ZmlsbCBmb3IgJUl0ZXJhdG9yUHJvdG90eXBlJSBmb3IgZW52aXJvbm1lbnRzIHRoYXRcbiAgLy8gZG9uJ3QgbmF0aXZlbHkgc3VwcG9ydCBpdC5cbiAgdmFyIEl0ZXJhdG9yUHJvdG90eXBlID0ge307XG4gIEl0ZXJhdG9yUHJvdG90eXBlW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICB2YXIgZ2V0UHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG4gIHZhciBOYXRpdmVJdGVyYXRvclByb3RvdHlwZSA9IGdldFByb3RvICYmIGdldFByb3RvKGdldFByb3RvKHZhbHVlcyhbXSkpKTtcbiAgaWYgKE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlICYmXG4gICAgICBOYXRpdmVJdGVyYXRvclByb3RvdHlwZSAhPT0gT3AgJiZcbiAgICAgIGhhc093bi5jYWxsKE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlLCBpdGVyYXRvclN5bWJvbCkpIHtcbiAgICAvLyBUaGlzIGVudmlyb25tZW50IGhhcyBhIG5hdGl2ZSAlSXRlcmF0b3JQcm90b3R5cGUlOyB1c2UgaXQgaW5zdGVhZFxuICAgIC8vIG9mIHRoZSBwb2x5ZmlsbC5cbiAgICBJdGVyYXRvclByb3RvdHlwZSA9IE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlO1xuICB9XG5cbiAgdmFyIEdwID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUucHJvdG90eXBlID1cbiAgICBHZW5lcmF0b3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSk7XG4gIEdlbmVyYXRvckZ1bmN0aW9uLnByb3RvdHlwZSA9IEdwLmNvbnN0cnVjdG9yID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGU7XG4gIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLmNvbnN0cnVjdG9yID0gR2VuZXJhdG9yRnVuY3Rpb247XG4gIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlW3RvU3RyaW5nVGFnU3ltYm9sXSA9XG4gICAgR2VuZXJhdG9yRnVuY3Rpb24uZGlzcGxheU5hbWUgPSBcIkdlbmVyYXRvckZ1bmN0aW9uXCI7XG5cbiAgLy8gSGVscGVyIGZvciBkZWZpbmluZyB0aGUgLm5leHQsIC50aHJvdywgYW5kIC5yZXR1cm4gbWV0aG9kcyBvZiB0aGVcbiAgLy8gSXRlcmF0b3IgaW50ZXJmYWNlIGluIHRlcm1zIG9mIGEgc2luZ2xlIC5faW52b2tlIG1ldGhvZC5cbiAgZnVuY3Rpb24gZGVmaW5lSXRlcmF0b3JNZXRob2RzKHByb3RvdHlwZSkge1xuICAgIFtcIm5leHRcIiwgXCJ0aHJvd1wiLCBcInJldHVyblwiXS5mb3JFYWNoKGZ1bmN0aW9uKG1ldGhvZCkge1xuICAgICAgcHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbihhcmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ludm9rZShtZXRob2QsIGFyZyk7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0cy5pc0dlbmVyYXRvckZ1bmN0aW9uID0gZnVuY3Rpb24oZ2VuRnVuKSB7XG4gICAgdmFyIGN0b3IgPSB0eXBlb2YgZ2VuRnVuID09PSBcImZ1bmN0aW9uXCIgJiYgZ2VuRnVuLmNvbnN0cnVjdG9yO1xuICAgIHJldHVybiBjdG9yXG4gICAgICA/IGN0b3IgPT09IEdlbmVyYXRvckZ1bmN0aW9uIHx8XG4gICAgICAgIC8vIEZvciB0aGUgbmF0aXZlIEdlbmVyYXRvckZ1bmN0aW9uIGNvbnN0cnVjdG9yLCB0aGUgYmVzdCB3ZSBjYW5cbiAgICAgICAgLy8gZG8gaXMgdG8gY2hlY2sgaXRzIC5uYW1lIHByb3BlcnR5LlxuICAgICAgICAoY3Rvci5kaXNwbGF5TmFtZSB8fCBjdG9yLm5hbWUpID09PSBcIkdlbmVyYXRvckZ1bmN0aW9uXCJcbiAgICAgIDogZmFsc2U7XG4gIH07XG5cbiAgZXhwb3J0cy5tYXJrID0gZnVuY3Rpb24oZ2VuRnVuKSB7XG4gICAgaWYgKE9iamVjdC5zZXRQcm90b3R5cGVPZikge1xuICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGdlbkZ1biwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBnZW5GdW4uX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGU7XG4gICAgICBpZiAoISh0b1N0cmluZ1RhZ1N5bWJvbCBpbiBnZW5GdW4pKSB7XG4gICAgICAgIGdlbkZ1blt0b1N0cmluZ1RhZ1N5bWJvbF0gPSBcIkdlbmVyYXRvckZ1bmN0aW9uXCI7XG4gICAgICB9XG4gICAgfVxuICAgIGdlbkZ1bi5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEdwKTtcbiAgICByZXR1cm4gZ2VuRnVuO1xuICB9O1xuXG4gIC8vIFdpdGhpbiB0aGUgYm9keSBvZiBhbnkgYXN5bmMgZnVuY3Rpb24sIGBhd2FpdCB4YCBpcyB0cmFuc2Zvcm1lZCB0b1xuICAvLyBgeWllbGQgcmVnZW5lcmF0b3JSdW50aW1lLmF3cmFwKHgpYCwgc28gdGhhdCB0aGUgcnVudGltZSBjYW4gdGVzdFxuICAvLyBgaGFzT3duLmNhbGwodmFsdWUsIFwiX19hd2FpdFwiKWAgdG8gZGV0ZXJtaW5lIGlmIHRoZSB5aWVsZGVkIHZhbHVlIGlzXG4gIC8vIG1lYW50IHRvIGJlIGF3YWl0ZWQuXG4gIGV4cG9ydHMuYXdyYXAgPSBmdW5jdGlvbihhcmcpIHtcbiAgICByZXR1cm4geyBfX2F3YWl0OiBhcmcgfTtcbiAgfTtcblxuICBmdW5jdGlvbiBBc3luY0l0ZXJhdG9yKGdlbmVyYXRvciwgUHJvbWlzZUltcGwpIHtcbiAgICBmdW5jdGlvbiBpbnZva2UobWV0aG9kLCBhcmcsIHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgdmFyIHJlY29yZCA9IHRyeUNhdGNoKGdlbmVyYXRvclttZXRob2RdLCBnZW5lcmF0b3IsIGFyZyk7XG4gICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICByZWplY3QocmVjb3JkLmFyZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgcmVzdWx0ID0gcmVjb3JkLmFyZztcbiAgICAgICAgdmFyIHZhbHVlID0gcmVzdWx0LnZhbHVlO1xuICAgICAgICBpZiAodmFsdWUgJiZcbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICAgICAgaGFzT3duLmNhbGwodmFsdWUsIFwiX19hd2FpdFwiKSkge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlSW1wbC5yZXNvbHZlKHZhbHVlLl9fYXdhaXQpLnRoZW4oZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICAgIGludm9rZShcIm5leHRcIiwgdmFsdWUsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgfSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgICBpbnZva2UoXCJ0aHJvd1wiLCBlcnIsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUHJvbWlzZUltcGwucmVzb2x2ZSh2YWx1ZSkudGhlbihmdW5jdGlvbih1bndyYXBwZWQpIHtcbiAgICAgICAgICAvLyBXaGVuIGEgeWllbGRlZCBQcm9taXNlIGlzIHJlc29sdmVkLCBpdHMgZmluYWwgdmFsdWUgYmVjb21lc1xuICAgICAgICAgIC8vIHRoZSAudmFsdWUgb2YgdGhlIFByb21pc2U8e3ZhbHVlLGRvbmV9PiByZXN1bHQgZm9yIHRoZVxuICAgICAgICAgIC8vIGN1cnJlbnQgaXRlcmF0aW9uLlxuICAgICAgICAgIHJlc3VsdC52YWx1ZSA9IHVud3JhcHBlZDtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIH0sIGZ1bmN0aW9uKGVycm9yKSB7XG4gICAgICAgICAgLy8gSWYgYSByZWplY3RlZCBQcm9taXNlIHdhcyB5aWVsZGVkLCB0aHJvdyB0aGUgcmVqZWN0aW9uIGJhY2tcbiAgICAgICAgICAvLyBpbnRvIHRoZSBhc3luYyBnZW5lcmF0b3IgZnVuY3Rpb24gc28gaXQgY2FuIGJlIGhhbmRsZWQgdGhlcmUuXG4gICAgICAgICAgcmV0dXJuIGludm9rZShcInRocm93XCIsIGVycm9yLCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgcHJldmlvdXNQcm9taXNlO1xuXG4gICAgZnVuY3Rpb24gZW5xdWV1ZShtZXRob2QsIGFyZykge1xuICAgICAgZnVuY3Rpb24gY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZUltcGwoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgaW52b2tlKG1ldGhvZCwgYXJnLCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHByZXZpb3VzUHJvbWlzZSA9XG4gICAgICAgIC8vIElmIGVucXVldWUgaGFzIGJlZW4gY2FsbGVkIGJlZm9yZSwgdGhlbiB3ZSB3YW50IHRvIHdhaXQgdW50aWxcbiAgICAgICAgLy8gYWxsIHByZXZpb3VzIFByb21pc2VzIGhhdmUgYmVlbiByZXNvbHZlZCBiZWZvcmUgY2FsbGluZyBpbnZva2UsXG4gICAgICAgIC8vIHNvIHRoYXQgcmVzdWx0cyBhcmUgYWx3YXlzIGRlbGl2ZXJlZCBpbiB0aGUgY29ycmVjdCBvcmRlci4gSWZcbiAgICAgICAgLy8gZW5xdWV1ZSBoYXMgbm90IGJlZW4gY2FsbGVkIGJlZm9yZSwgdGhlbiBpdCBpcyBpbXBvcnRhbnQgdG9cbiAgICAgICAgLy8gY2FsbCBpbnZva2UgaW1tZWRpYXRlbHksIHdpdGhvdXQgd2FpdGluZyBvbiBhIGNhbGxiYWNrIHRvIGZpcmUsXG4gICAgICAgIC8vIHNvIHRoYXQgdGhlIGFzeW5jIGdlbmVyYXRvciBmdW5jdGlvbiBoYXMgdGhlIG9wcG9ydHVuaXR5IHRvIGRvXG4gICAgICAgIC8vIGFueSBuZWNlc3Nhcnkgc2V0dXAgaW4gYSBwcmVkaWN0YWJsZSB3YXkuIFRoaXMgcHJlZGljdGFiaWxpdHlcbiAgICAgICAgLy8gaXMgd2h5IHRoZSBQcm9taXNlIGNvbnN0cnVjdG9yIHN5bmNocm9ub3VzbHkgaW52b2tlcyBpdHNcbiAgICAgICAgLy8gZXhlY3V0b3IgY2FsbGJhY2ssIGFuZCB3aHkgYXN5bmMgZnVuY3Rpb25zIHN5bmNocm9ub3VzbHlcbiAgICAgICAgLy8gZXhlY3V0ZSBjb2RlIGJlZm9yZSB0aGUgZmlyc3QgYXdhaXQuIFNpbmNlIHdlIGltcGxlbWVudCBzaW1wbGVcbiAgICAgICAgLy8gYXN5bmMgZnVuY3Rpb25zIGluIHRlcm1zIG9mIGFzeW5jIGdlbmVyYXRvcnMsIGl0IGlzIGVzcGVjaWFsbHlcbiAgICAgICAgLy8gaW1wb3J0YW50IHRvIGdldCB0aGlzIHJpZ2h0LCBldmVuIHRob3VnaCBpdCByZXF1aXJlcyBjYXJlLlxuICAgICAgICBwcmV2aW91c1Byb21pc2UgPyBwcmV2aW91c1Byb21pc2UudGhlbihcbiAgICAgICAgICBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyxcbiAgICAgICAgICAvLyBBdm9pZCBwcm9wYWdhdGluZyBmYWlsdXJlcyB0byBQcm9taXNlcyByZXR1cm5lZCBieSBsYXRlclxuICAgICAgICAgIC8vIGludm9jYXRpb25zIG9mIHRoZSBpdGVyYXRvci5cbiAgICAgICAgICBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZ1xuICAgICAgICApIDogY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKTtcbiAgICB9XG5cbiAgICAvLyBEZWZpbmUgdGhlIHVuaWZpZWQgaGVscGVyIG1ldGhvZCB0aGF0IGlzIHVzZWQgdG8gaW1wbGVtZW50IC5uZXh0LFxuICAgIC8vIC50aHJvdywgYW5kIC5yZXR1cm4gKHNlZSBkZWZpbmVJdGVyYXRvck1ldGhvZHMpLlxuICAgIHRoaXMuX2ludm9rZSA9IGVucXVldWU7XG4gIH1cblxuICBkZWZpbmVJdGVyYXRvck1ldGhvZHMoQXN5bmNJdGVyYXRvci5wcm90b3R5cGUpO1xuICBBc3luY0l0ZXJhdG9yLnByb3RvdHlwZVthc3luY0l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbiAgZXhwb3J0cy5Bc3luY0l0ZXJhdG9yID0gQXN5bmNJdGVyYXRvcjtcblxuICAvLyBOb3RlIHRoYXQgc2ltcGxlIGFzeW5jIGZ1bmN0aW9ucyBhcmUgaW1wbGVtZW50ZWQgb24gdG9wIG9mXG4gIC8vIEFzeW5jSXRlcmF0b3Igb2JqZWN0czsgdGhleSBqdXN0IHJldHVybiBhIFByb21pc2UgZm9yIHRoZSB2YWx1ZSBvZlxuICAvLyB0aGUgZmluYWwgcmVzdWx0IHByb2R1Y2VkIGJ5IHRoZSBpdGVyYXRvci5cbiAgZXhwb3J0cy5hc3luYyA9IGZ1bmN0aW9uKGlubmVyRm4sIG91dGVyRm4sIHNlbGYsIHRyeUxvY3NMaXN0LCBQcm9taXNlSW1wbCkge1xuICAgIGlmIChQcm9taXNlSW1wbCA9PT0gdm9pZCAwKSBQcm9taXNlSW1wbCA9IFByb21pc2U7XG5cbiAgICB2YXIgaXRlciA9IG5ldyBBc3luY0l0ZXJhdG9yKFxuICAgICAgd3JhcChpbm5lckZuLCBvdXRlckZuLCBzZWxmLCB0cnlMb2NzTGlzdCksXG4gICAgICBQcm9taXNlSW1wbFxuICAgICk7XG5cbiAgICByZXR1cm4gZXhwb3J0cy5pc0dlbmVyYXRvckZ1bmN0aW9uKG91dGVyRm4pXG4gICAgICA/IGl0ZXIgLy8gSWYgb3V0ZXJGbiBpcyBhIGdlbmVyYXRvciwgcmV0dXJuIHRoZSBmdWxsIGl0ZXJhdG9yLlxuICAgICAgOiBpdGVyLm5leHQoKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQuZG9uZSA/IHJlc3VsdC52YWx1ZSA6IGl0ZXIubmV4dCgpO1xuICAgICAgICB9KTtcbiAgfTtcblxuICBmdW5jdGlvbiBtYWtlSW52b2tlTWV0aG9kKGlubmVyRm4sIHNlbGYsIGNvbnRleHQpIHtcbiAgICB2YXIgc3RhdGUgPSBHZW5TdGF0ZVN1c3BlbmRlZFN0YXJ0O1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGludm9rZShtZXRob2QsIGFyZykge1xuICAgICAgaWYgKHN0YXRlID09PSBHZW5TdGF0ZUV4ZWN1dGluZykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGUgPT09IEdlblN0YXRlQ29tcGxldGVkKSB7XG4gICAgICAgIGlmIChtZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgIHRocm93IGFyZztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJlIGZvcmdpdmluZywgcGVyIDI1LjMuMy4zLjMgb2YgdGhlIHNwZWM6XG4gICAgICAgIC8vIGh0dHBzOi8vcGVvcGxlLm1vemlsbGEub3JnL35qb3JlbmRvcmZmL2VzNi1kcmFmdC5odG1sI3NlYy1nZW5lcmF0b3JyZXN1bWVcbiAgICAgICAgcmV0dXJuIGRvbmVSZXN1bHQoKTtcbiAgICAgIH1cblxuICAgICAgY29udGV4dC5tZXRob2QgPSBtZXRob2Q7XG4gICAgICBjb250ZXh0LmFyZyA9IGFyZztcblxuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgdmFyIGRlbGVnYXRlID0gY29udGV4dC5kZWxlZ2F0ZTtcbiAgICAgICAgaWYgKGRlbGVnYXRlKSB7XG4gICAgICAgICAgdmFyIGRlbGVnYXRlUmVzdWx0ID0gbWF5YmVJbnZva2VEZWxlZ2F0ZShkZWxlZ2F0ZSwgY29udGV4dCk7XG4gICAgICAgICAgaWYgKGRlbGVnYXRlUmVzdWx0KSB7XG4gICAgICAgICAgICBpZiAoZGVsZWdhdGVSZXN1bHQgPT09IENvbnRpbnVlU2VudGluZWwpIGNvbnRpbnVlO1xuICAgICAgICAgICAgcmV0dXJuIGRlbGVnYXRlUmVzdWx0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb250ZXh0Lm1ldGhvZCA9PT0gXCJuZXh0XCIpIHtcbiAgICAgICAgICAvLyBTZXR0aW5nIGNvbnRleHQuX3NlbnQgZm9yIGxlZ2FjeSBzdXBwb3J0IG9mIEJhYmVsJ3NcbiAgICAgICAgICAvLyBmdW5jdGlvbi5zZW50IGltcGxlbWVudGF0aW9uLlxuICAgICAgICAgIGNvbnRleHQuc2VudCA9IGNvbnRleHQuX3NlbnQgPSBjb250ZXh0LmFyZztcblxuICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQubWV0aG9kID09PSBcInRocm93XCIpIHtcbiAgICAgICAgICBpZiAoc3RhdGUgPT09IEdlblN0YXRlU3VzcGVuZGVkU3RhcnQpIHtcbiAgICAgICAgICAgIHN0YXRlID0gR2VuU3RhdGVDb21wbGV0ZWQ7XG4gICAgICAgICAgICB0aHJvdyBjb250ZXh0LmFyZztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb250ZXh0LmRpc3BhdGNoRXhjZXB0aW9uKGNvbnRleHQuYXJnKTtcblxuICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQubWV0aG9kID09PSBcInJldHVyblwiKSB7XG4gICAgICAgICAgY29udGV4dC5hYnJ1cHQoXCJyZXR1cm5cIiwgY29udGV4dC5hcmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhdGUgPSBHZW5TdGF0ZUV4ZWN1dGluZztcblxuICAgICAgICB2YXIgcmVjb3JkID0gdHJ5Q2F0Y2goaW5uZXJGbiwgc2VsZiwgY29udGV4dCk7XG4gICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gXCJub3JtYWxcIikge1xuICAgICAgICAgIC8vIElmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gZnJvbSBpbm5lckZuLCB3ZSBsZWF2ZSBzdGF0ZSA9PT1cbiAgICAgICAgICAvLyBHZW5TdGF0ZUV4ZWN1dGluZyBhbmQgbG9vcCBiYWNrIGZvciBhbm90aGVyIGludm9jYXRpb24uXG4gICAgICAgICAgc3RhdGUgPSBjb250ZXh0LmRvbmVcbiAgICAgICAgICAgID8gR2VuU3RhdGVDb21wbGV0ZWRcbiAgICAgICAgICAgIDogR2VuU3RhdGVTdXNwZW5kZWRZaWVsZDtcblxuICAgICAgICAgIGlmIChyZWNvcmQuYXJnID09PSBDb250aW51ZVNlbnRpbmVsKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWU6IHJlY29yZC5hcmcsXG4gICAgICAgICAgICBkb25lOiBjb250ZXh0LmRvbmVcbiAgICAgICAgICB9O1xuXG4gICAgICAgIH0gZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgIHN0YXRlID0gR2VuU3RhdGVDb21wbGV0ZWQ7XG4gICAgICAgICAgLy8gRGlzcGF0Y2ggdGhlIGV4Y2VwdGlvbiBieSBsb29waW5nIGJhY2sgYXJvdW5kIHRvIHRoZVxuICAgICAgICAgIC8vIGNvbnRleHQuZGlzcGF0Y2hFeGNlcHRpb24oY29udGV4dC5hcmcpIGNhbGwgYWJvdmUuXG4gICAgICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICAgICAgY29udGV4dC5hcmcgPSByZWNvcmQuYXJnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8vIENhbGwgZGVsZWdhdGUuaXRlcmF0b3JbY29udGV4dC5tZXRob2RdKGNvbnRleHQuYXJnKSBhbmQgaGFuZGxlIHRoZVxuICAvLyByZXN1bHQsIGVpdGhlciBieSByZXR1cm5pbmcgYSB7IHZhbHVlLCBkb25lIH0gcmVzdWx0IGZyb20gdGhlXG4gIC8vIGRlbGVnYXRlIGl0ZXJhdG9yLCBvciBieSBtb2RpZnlpbmcgY29udGV4dC5tZXRob2QgYW5kIGNvbnRleHQuYXJnLFxuICAvLyBzZXR0aW5nIGNvbnRleHQuZGVsZWdhdGUgdG8gbnVsbCwgYW5kIHJldHVybmluZyB0aGUgQ29udGludWVTZW50aW5lbC5cbiAgZnVuY3Rpb24gbWF5YmVJbnZva2VEZWxlZ2F0ZShkZWxlZ2F0ZSwgY29udGV4dCkge1xuICAgIHZhciBtZXRob2QgPSBkZWxlZ2F0ZS5pdGVyYXRvcltjb250ZXh0Lm1ldGhvZF07XG4gICAgaWYgKG1ldGhvZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBBIC50aHJvdyBvciAucmV0dXJuIHdoZW4gdGhlIGRlbGVnYXRlIGl0ZXJhdG9yIGhhcyBubyAudGhyb3dcbiAgICAgIC8vIG1ldGhvZCBhbHdheXMgdGVybWluYXRlcyB0aGUgeWllbGQqIGxvb3AuXG4gICAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcblxuICAgICAgaWYgKGNvbnRleHQubWV0aG9kID09PSBcInRocm93XCIpIHtcbiAgICAgICAgLy8gTm90ZTogW1wicmV0dXJuXCJdIG11c3QgYmUgdXNlZCBmb3IgRVMzIHBhcnNpbmcgY29tcGF0aWJpbGl0eS5cbiAgICAgICAgaWYgKGRlbGVnYXRlLml0ZXJhdG9yW1wicmV0dXJuXCJdKSB7XG4gICAgICAgICAgLy8gSWYgdGhlIGRlbGVnYXRlIGl0ZXJhdG9yIGhhcyBhIHJldHVybiBtZXRob2QsIGdpdmUgaXQgYVxuICAgICAgICAgIC8vIGNoYW5jZSB0byBjbGVhbiB1cC5cbiAgICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwicmV0dXJuXCI7XG4gICAgICAgICAgY29udGV4dC5hcmcgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgbWF5YmVJbnZva2VEZWxlZ2F0ZShkZWxlZ2F0ZSwgY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAoY29udGV4dC5tZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgICAgLy8gSWYgbWF5YmVJbnZva2VEZWxlZ2F0ZShjb250ZXh0KSBjaGFuZ2VkIGNvbnRleHQubWV0aG9kIGZyb21cbiAgICAgICAgICAgIC8vIFwicmV0dXJuXCIgdG8gXCJ0aHJvd1wiLCBsZXQgdGhhdCBvdmVycmlkZSB0aGUgVHlwZUVycm9yIGJlbG93LlxuICAgICAgICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICAgIGNvbnRleHQuYXJnID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICBcIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ3Rocm93JyBtZXRob2RcIik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cblxuICAgIHZhciByZWNvcmQgPSB0cnlDYXRjaChtZXRob2QsIGRlbGVnYXRlLml0ZXJhdG9yLCBjb250ZXh0LmFyZyk7XG5cbiAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICBjb250ZXh0LmFyZyA9IHJlY29yZC5hcmc7XG4gICAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cblxuICAgIHZhciBpbmZvID0gcmVjb3JkLmFyZztcblxuICAgIGlmICghIGluZm8pIHtcbiAgICAgIGNvbnRleHQubWV0aG9kID0gXCJ0aHJvd1wiO1xuICAgICAgY29udGV4dC5hcmcgPSBuZXcgVHlwZUVycm9yKFwiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3RcIik7XG4gICAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cblxuICAgIGlmIChpbmZvLmRvbmUpIHtcbiAgICAgIC8vIEFzc2lnbiB0aGUgcmVzdWx0IG9mIHRoZSBmaW5pc2hlZCBkZWxlZ2F0ZSB0byB0aGUgdGVtcG9yYXJ5XG4gICAgICAvLyB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgZGVsZWdhdGUucmVzdWx0TmFtZSAoc2VlIGRlbGVnYXRlWWllbGQpLlxuICAgICAgY29udGV4dFtkZWxlZ2F0ZS5yZXN1bHROYW1lXSA9IGluZm8udmFsdWU7XG5cbiAgICAgIC8vIFJlc3VtZSBleGVjdXRpb24gYXQgdGhlIGRlc2lyZWQgbG9jYXRpb24gKHNlZSBkZWxlZ2F0ZVlpZWxkKS5cbiAgICAgIGNvbnRleHQubmV4dCA9IGRlbGVnYXRlLm5leHRMb2M7XG5cbiAgICAgIC8vIElmIGNvbnRleHQubWV0aG9kIHdhcyBcInRocm93XCIgYnV0IHRoZSBkZWxlZ2F0ZSBoYW5kbGVkIHRoZVxuICAgICAgLy8gZXhjZXB0aW9uLCBsZXQgdGhlIG91dGVyIGdlbmVyYXRvciBwcm9jZWVkIG5vcm1hbGx5LiBJZlxuICAgICAgLy8gY29udGV4dC5tZXRob2Qgd2FzIFwibmV4dFwiLCBmb3JnZXQgY29udGV4dC5hcmcgc2luY2UgaXQgaGFzIGJlZW5cbiAgICAgIC8vIFwiY29uc3VtZWRcIiBieSB0aGUgZGVsZWdhdGUgaXRlcmF0b3IuIElmIGNvbnRleHQubWV0aG9kIHdhc1xuICAgICAgLy8gXCJyZXR1cm5cIiwgYWxsb3cgdGhlIG9yaWdpbmFsIC5yZXR1cm4gY2FsbCB0byBjb250aW51ZSBpbiB0aGVcbiAgICAgIC8vIG91dGVyIGdlbmVyYXRvci5cbiAgICAgIGlmIChjb250ZXh0Lm1ldGhvZCAhPT0gXCJyZXR1cm5cIikge1xuICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwibmV4dFwiO1xuICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZS15aWVsZCB0aGUgcmVzdWx0IHJldHVybmVkIGJ5IHRoZSBkZWxlZ2F0ZSBtZXRob2QuXG4gICAgICByZXR1cm4gaW5mbztcbiAgICB9XG5cbiAgICAvLyBUaGUgZGVsZWdhdGUgaXRlcmF0b3IgaXMgZmluaXNoZWQsIHNvIGZvcmdldCBpdCBhbmQgY29udGludWUgd2l0aFxuICAgIC8vIHRoZSBvdXRlciBnZW5lcmF0b3IuXG4gICAgY29udGV4dC5kZWxlZ2F0ZSA9IG51bGw7XG4gICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gIH1cblxuICAvLyBEZWZpbmUgR2VuZXJhdG9yLnByb3RvdHlwZS57bmV4dCx0aHJvdyxyZXR1cm59IGluIHRlcm1zIG9mIHRoZVxuICAvLyB1bmlmaWVkIC5faW52b2tlIGhlbHBlciBtZXRob2QuXG4gIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhHcCk7XG5cbiAgR3BbdG9TdHJpbmdUYWdTeW1ib2xdID0gXCJHZW5lcmF0b3JcIjtcblxuICAvLyBBIEdlbmVyYXRvciBzaG91bGQgYWx3YXlzIHJldHVybiBpdHNlbGYgYXMgdGhlIGl0ZXJhdG9yIG9iamVjdCB3aGVuIHRoZVxuICAvLyBAQGl0ZXJhdG9yIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiBpdC4gU29tZSBicm93c2VycycgaW1wbGVtZW50YXRpb25zIG9mIHRoZVxuICAvLyBpdGVyYXRvciBwcm90b3R5cGUgY2hhaW4gaW5jb3JyZWN0bHkgaW1wbGVtZW50IHRoaXMsIGNhdXNpbmcgdGhlIEdlbmVyYXRvclxuICAvLyBvYmplY3QgdG8gbm90IGJlIHJldHVybmVkIGZyb20gdGhpcyBjYWxsLiBUaGlzIGVuc3VyZXMgdGhhdCBkb2Vzbid0IGhhcHBlbi5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWdlbmVyYXRvci9pc3N1ZXMvMjc0IGZvciBtb3JlIGRldGFpbHMuXG4gIEdwW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEdwLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIFwiW29iamVjdCBHZW5lcmF0b3JdXCI7XG4gIH07XG5cbiAgZnVuY3Rpb24gcHVzaFRyeUVudHJ5KGxvY3MpIHtcbiAgICB2YXIgZW50cnkgPSB7IHRyeUxvYzogbG9jc1swXSB9O1xuXG4gICAgaWYgKDEgaW4gbG9jcykge1xuICAgICAgZW50cnkuY2F0Y2hMb2MgPSBsb2NzWzFdO1xuICAgIH1cblxuICAgIGlmICgyIGluIGxvY3MpIHtcbiAgICAgIGVudHJ5LmZpbmFsbHlMb2MgPSBsb2NzWzJdO1xuICAgICAgZW50cnkuYWZ0ZXJMb2MgPSBsb2NzWzNdO1xuICAgIH1cblxuICAgIHRoaXMudHJ5RW50cmllcy5wdXNoKGVudHJ5KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlc2V0VHJ5RW50cnkoZW50cnkpIHtcbiAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbiB8fCB7fTtcbiAgICByZWNvcmQudHlwZSA9IFwibm9ybWFsXCI7XG4gICAgZGVsZXRlIHJlY29yZC5hcmc7XG4gICAgZW50cnkuY29tcGxldGlvbiA9IHJlY29yZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIENvbnRleHQodHJ5TG9jc0xpc3QpIHtcbiAgICAvLyBUaGUgcm9vdCBlbnRyeSBvYmplY3QgKGVmZmVjdGl2ZWx5IGEgdHJ5IHN0YXRlbWVudCB3aXRob3V0IGEgY2F0Y2hcbiAgICAvLyBvciBhIGZpbmFsbHkgYmxvY2spIGdpdmVzIHVzIGEgcGxhY2UgdG8gc3RvcmUgdmFsdWVzIHRocm93biBmcm9tXG4gICAgLy8gbG9jYXRpb25zIHdoZXJlIHRoZXJlIGlzIG5vIGVuY2xvc2luZyB0cnkgc3RhdGVtZW50LlxuICAgIHRoaXMudHJ5RW50cmllcyA9IFt7IHRyeUxvYzogXCJyb290XCIgfV07XG4gICAgdHJ5TG9jc0xpc3QuZm9yRWFjaChwdXNoVHJ5RW50cnksIHRoaXMpO1xuICAgIHRoaXMucmVzZXQodHJ1ZSk7XG4gIH1cblxuICBleHBvcnRzLmtleXMgPSBmdW5jdGlvbihvYmplY3QpIHtcbiAgICB2YXIga2V5cyA9IFtdO1xuICAgIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICAgIGtleXMucHVzaChrZXkpO1xuICAgIH1cbiAgICBrZXlzLnJldmVyc2UoKTtcblxuICAgIC8vIFJhdGhlciB0aGFuIHJldHVybmluZyBhbiBvYmplY3Qgd2l0aCBhIG5leHQgbWV0aG9kLCB3ZSBrZWVwXG4gICAgLy8gdGhpbmdzIHNpbXBsZSBhbmQgcmV0dXJuIHRoZSBuZXh0IGZ1bmN0aW9uIGl0c2VsZi5cbiAgICByZXR1cm4gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgIHdoaWxlIChrZXlzLmxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0ga2V5cy5wb3AoKTtcbiAgICAgICAgaWYgKGtleSBpbiBvYmplY3QpIHtcbiAgICAgICAgICBuZXh0LnZhbHVlID0ga2V5O1xuICAgICAgICAgIG5leHQuZG9uZSA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFRvIGF2b2lkIGNyZWF0aW5nIGFuIGFkZGl0aW9uYWwgb2JqZWN0LCB3ZSBqdXN0IGhhbmcgdGhlIC52YWx1ZVxuICAgICAgLy8gYW5kIC5kb25lIHByb3BlcnRpZXMgb2ZmIHRoZSBuZXh0IGZ1bmN0aW9uIG9iamVjdCBpdHNlbGYuIFRoaXNcbiAgICAgIC8vIGFsc28gZW5zdXJlcyB0aGF0IHRoZSBtaW5pZmllciB3aWxsIG5vdCBhbm9ueW1pemUgdGhlIGZ1bmN0aW9uLlxuICAgICAgbmV4dC5kb25lID0gdHJ1ZTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH07XG4gIH07XG5cbiAgZnVuY3Rpb24gdmFsdWVzKGl0ZXJhYmxlKSB7XG4gICAgaWYgKGl0ZXJhYmxlKSB7XG4gICAgICB2YXIgaXRlcmF0b3JNZXRob2QgPSBpdGVyYWJsZVtpdGVyYXRvclN5bWJvbF07XG4gICAgICBpZiAoaXRlcmF0b3JNZXRob2QpIHtcbiAgICAgICAgcmV0dXJuIGl0ZXJhdG9yTWV0aG9kLmNhbGwoaXRlcmFibGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGl0ZXJhYmxlLm5leHQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gaXRlcmFibGU7XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNOYU4oaXRlcmFibGUubGVuZ3RoKSkge1xuICAgICAgICB2YXIgaSA9IC0xLCBuZXh0ID0gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICB3aGlsZSAoKytpIDwgaXRlcmFibGUubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duLmNhbGwoaXRlcmFibGUsIGkpKSB7XG4gICAgICAgICAgICAgIG5leHQudmFsdWUgPSBpdGVyYWJsZVtpXTtcbiAgICAgICAgICAgICAgbmV4dC5kb25lID0gZmFsc2U7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIG5leHQudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgbmV4dC5kb25lID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBuZXh0Lm5leHQgPSBuZXh0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldHVybiBhbiBpdGVyYXRvciB3aXRoIG5vIHZhbHVlcy5cbiAgICByZXR1cm4geyBuZXh0OiBkb25lUmVzdWx0IH07XG4gIH1cbiAgZXhwb3J0cy52YWx1ZXMgPSB2YWx1ZXM7XG5cbiAgZnVuY3Rpb24gZG9uZVJlc3VsdCgpIHtcbiAgICByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIH1cblxuICBDb250ZXh0LnByb3RvdHlwZSA9IHtcbiAgICBjb25zdHJ1Y3RvcjogQ29udGV4dCxcblxuICAgIHJlc2V0OiBmdW5jdGlvbihza2lwVGVtcFJlc2V0KSB7XG4gICAgICB0aGlzLnByZXYgPSAwO1xuICAgICAgdGhpcy5uZXh0ID0gMDtcbiAgICAgIC8vIFJlc2V0dGluZyBjb250ZXh0Ll9zZW50IGZvciBsZWdhY3kgc3VwcG9ydCBvZiBCYWJlbCdzXG4gICAgICAvLyBmdW5jdGlvbi5zZW50IGltcGxlbWVudGF0aW9uLlxuICAgICAgdGhpcy5zZW50ID0gdGhpcy5fc2VudCA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgdGhpcy5kZWxlZ2F0ZSA9IG51bGw7XG5cbiAgICAgIHRoaXMubWV0aG9kID0gXCJuZXh0XCI7XG4gICAgICB0aGlzLmFyZyA9IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy50cnlFbnRyaWVzLmZvckVhY2gocmVzZXRUcnlFbnRyeSk7XG5cbiAgICAgIGlmICghc2tpcFRlbXBSZXNldCkge1xuICAgICAgICBmb3IgKHZhciBuYW1lIGluIHRoaXMpIHtcbiAgICAgICAgICAvLyBOb3Qgc3VyZSBhYm91dCB0aGUgb3B0aW1hbCBvcmRlciBvZiB0aGVzZSBjb25kaXRpb25zOlxuICAgICAgICAgIGlmIChuYW1lLmNoYXJBdCgwKSA9PT0gXCJ0XCIgJiZcbiAgICAgICAgICAgICAgaGFzT3duLmNhbGwodGhpcywgbmFtZSkgJiZcbiAgICAgICAgICAgICAgIWlzTmFOKCtuYW1lLnNsaWNlKDEpKSkge1xuICAgICAgICAgICAgdGhpc1tuYW1lXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgc3RvcDogZnVuY3Rpb24oKSB7XG4gICAgICB0aGlzLmRvbmUgPSB0cnVlO1xuXG4gICAgICB2YXIgcm9vdEVudHJ5ID0gdGhpcy50cnlFbnRyaWVzWzBdO1xuICAgICAgdmFyIHJvb3RSZWNvcmQgPSByb290RW50cnkuY29tcGxldGlvbjtcbiAgICAgIGlmIChyb290UmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICB0aHJvdyByb290UmVjb3JkLmFyZztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMucnZhbDtcbiAgICB9LFxuXG4gICAgZGlzcGF0Y2hFeGNlcHRpb246IGZ1bmN0aW9uKGV4Y2VwdGlvbikge1xuICAgICAgaWYgKHRoaXMuZG9uZSkge1xuICAgICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgICB9XG5cbiAgICAgIHZhciBjb250ZXh0ID0gdGhpcztcbiAgICAgIGZ1bmN0aW9uIGhhbmRsZShsb2MsIGNhdWdodCkge1xuICAgICAgICByZWNvcmQudHlwZSA9IFwidGhyb3dcIjtcbiAgICAgICAgcmVjb3JkLmFyZyA9IGV4Y2VwdGlvbjtcbiAgICAgICAgY29udGV4dC5uZXh0ID0gbG9jO1xuXG4gICAgICAgIGlmIChjYXVnaHQpIHtcbiAgICAgICAgICAvLyBJZiB0aGUgZGlzcGF0Y2hlZCBleGNlcHRpb24gd2FzIGNhdWdodCBieSBhIGNhdGNoIGJsb2NrLFxuICAgICAgICAgIC8vIHRoZW4gbGV0IHRoYXQgY2F0Y2ggYmxvY2sgaGFuZGxlIHRoZSBleGNlcHRpb24gbm9ybWFsbHkuXG4gICAgICAgICAgY29udGV4dC5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhISBjYXVnaHQ7XG4gICAgICB9XG5cbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjtcblxuICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSBcInJvb3RcIikge1xuICAgICAgICAgIC8vIEV4Y2VwdGlvbiB0aHJvd24gb3V0c2lkZSBvZiBhbnkgdHJ5IGJsb2NrIHRoYXQgY291bGQgaGFuZGxlXG4gICAgICAgICAgLy8gaXQsIHNvIHNldCB0aGUgY29tcGxldGlvbiB2YWx1ZSBvZiB0aGUgZW50aXJlIGZ1bmN0aW9uIHRvXG4gICAgICAgICAgLy8gdGhyb3cgdGhlIGV4Y2VwdGlvbi5cbiAgICAgICAgICByZXR1cm4gaGFuZGxlKFwiZW5kXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA8PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICB2YXIgaGFzQ2F0Y2ggPSBoYXNPd24uY2FsbChlbnRyeSwgXCJjYXRjaExvY1wiKTtcbiAgICAgICAgICB2YXIgaGFzRmluYWxseSA9IGhhc093bi5jYWxsKGVudHJ5LCBcImZpbmFsbHlMb2NcIik7XG5cbiAgICAgICAgICBpZiAoaGFzQ2F0Y2ggJiYgaGFzRmluYWxseSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGVudHJ5LmNhdGNoTG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuY2F0Y2hMb2MsIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuZmluYWxseUxvYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0NhdGNoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcmV2IDwgZW50cnkuY2F0Y2hMb2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZShlbnRyeS5jYXRjaExvYywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0ZpbmFsbHkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuZmluYWxseUxvYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHlcIik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcblxuICAgIGFicnVwdDogZnVuY3Rpb24odHlwZSwgYXJnKSB7XG4gICAgICBmb3IgKHZhciBpID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgIHZhciBlbnRyeSA9IHRoaXMudHJ5RW50cmllc1tpXTtcbiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA8PSB0aGlzLnByZXYgJiZcbiAgICAgICAgICAgIGhhc093bi5jYWxsKGVudHJ5LCBcImZpbmFsbHlMb2NcIikgJiZcbiAgICAgICAgICAgIHRoaXMucHJldiA8IGVudHJ5LmZpbmFsbHlMb2MpIHtcbiAgICAgICAgICB2YXIgZmluYWxseUVudHJ5ID0gZW50cnk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGZpbmFsbHlFbnRyeSAmJlxuICAgICAgICAgICh0eXBlID09PSBcImJyZWFrXCIgfHxcbiAgICAgICAgICAgdHlwZSA9PT0gXCJjb250aW51ZVwiKSAmJlxuICAgICAgICAgIGZpbmFsbHlFbnRyeS50cnlMb2MgPD0gYXJnICYmXG4gICAgICAgICAgYXJnIDw9IGZpbmFsbHlFbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgIC8vIElnbm9yZSB0aGUgZmluYWxseSBlbnRyeSBpZiBjb250cm9sIGlzIG5vdCBqdW1waW5nIHRvIGFcbiAgICAgICAgLy8gbG9jYXRpb24gb3V0c2lkZSB0aGUgdHJ5L2NhdGNoIGJsb2NrLlxuICAgICAgICBmaW5hbGx5RW50cnkgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICB2YXIgcmVjb3JkID0gZmluYWxseUVudHJ5ID8gZmluYWxseUVudHJ5LmNvbXBsZXRpb24gOiB7fTtcbiAgICAgIHJlY29yZC50eXBlID0gdHlwZTtcbiAgICAgIHJlY29yZC5hcmcgPSBhcmc7XG5cbiAgICAgIGlmIChmaW5hbGx5RW50cnkpIHtcbiAgICAgICAgdGhpcy5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgdGhpcy5uZXh0ID0gZmluYWxseUVudHJ5LmZpbmFsbHlMb2M7XG4gICAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5jb21wbGV0ZShyZWNvcmQpO1xuICAgIH0sXG5cbiAgICBjb21wbGV0ZTogZnVuY3Rpb24ocmVjb3JkLCBhZnRlckxvYykge1xuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcInRocm93XCIpIHtcbiAgICAgICAgdGhyb3cgcmVjb3JkLmFyZztcbiAgICAgIH1cblxuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcImJyZWFrXCIgfHxcbiAgICAgICAgICByZWNvcmQudHlwZSA9PT0gXCJjb250aW51ZVwiKSB7XG4gICAgICAgIHRoaXMubmV4dCA9IHJlY29yZC5hcmc7XG4gICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBlID09PSBcInJldHVyblwiKSB7XG4gICAgICAgIHRoaXMucnZhbCA9IHRoaXMuYXJnID0gcmVjb3JkLmFyZztcbiAgICAgICAgdGhpcy5tZXRob2QgPSBcInJldHVyblwiO1xuICAgICAgICB0aGlzLm5leHQgPSBcImVuZFwiO1xuICAgICAgfSBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0gXCJub3JtYWxcIiAmJiBhZnRlckxvYykge1xuICAgICAgICB0aGlzLm5leHQgPSBhZnRlckxvYztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfSxcblxuICAgIGZpbmlzaDogZnVuY3Rpb24oZmluYWxseUxvYykge1xuICAgICAgZm9yICh2YXIgaSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICB2YXIgZW50cnkgPSB0aGlzLnRyeUVudHJpZXNbaV07XG4gICAgICAgIGlmIChlbnRyeS5maW5hbGx5TG9jID09PSBmaW5hbGx5TG9jKSB7XG4gICAgICAgICAgdGhpcy5jb21wbGV0ZShlbnRyeS5jb21wbGV0aW9uLCBlbnRyeS5hZnRlckxvYyk7XG4gICAgICAgICAgcmVzZXRUcnlFbnRyeShlbnRyeSk7XG4gICAgICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgXCJjYXRjaFwiOiBmdW5jdGlvbih0cnlMb2MpIHtcbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSB0cnlMb2MpIHtcbiAgICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjtcbiAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgICAgdmFyIHRocm93biA9IHJlY29yZC5hcmc7XG4gICAgICAgICAgICByZXNldFRyeUVudHJ5KGVudHJ5KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRocm93bjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgY29udGV4dC5jYXRjaCBtZXRob2QgbXVzdCBvbmx5IGJlIGNhbGxlZCB3aXRoIGEgbG9jYXRpb25cbiAgICAgIC8vIGFyZ3VtZW50IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBrbm93biBjYXRjaCBibG9jay5cbiAgICAgIHRocm93IG5ldyBFcnJvcihcImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdFwiKTtcbiAgICB9LFxuXG4gICAgZGVsZWdhdGVZaWVsZDogZnVuY3Rpb24oaXRlcmFibGUsIHJlc3VsdE5hbWUsIG5leHRMb2MpIHtcbiAgICAgIHRoaXMuZGVsZWdhdGUgPSB7XG4gICAgICAgIGl0ZXJhdG9yOiB2YWx1ZXMoaXRlcmFibGUpLFxuICAgICAgICByZXN1bHROYW1lOiByZXN1bHROYW1lLFxuICAgICAgICBuZXh0TG9jOiBuZXh0TG9jXG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5tZXRob2QgPT09IFwibmV4dFwiKSB7XG4gICAgICAgIC8vIERlbGliZXJhdGVseSBmb3JnZXQgdGhlIGxhc3Qgc2VudCB2YWx1ZSBzbyB0aGF0IHdlIGRvbid0XG4gICAgICAgIC8vIGFjY2lkZW50YWxseSBwYXNzIGl0IG9uIHRvIHRoZSBkZWxlZ2F0ZS5cbiAgICAgICAgdGhpcy5hcmcgPSB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cbiAgfTtcblxuICAvLyBSZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhpcyBzY3JpcHQgaXMgZXhlY3V0aW5nIGFzIGEgQ29tbW9uSlMgbW9kdWxlXG4gIC8vIG9yIG5vdCwgcmV0dXJuIHRoZSBydW50aW1lIG9iamVjdCBzbyB0aGF0IHdlIGNhbiBkZWNsYXJlIHRoZSB2YXJpYWJsZVxuICAvLyByZWdlbmVyYXRvclJ1bnRpbWUgaW4gdGhlIG91dGVyIHNjb3BlLCB3aGljaCBhbGxvd3MgdGhpcyBtb2R1bGUgdG8gYmVcbiAgLy8gaW5qZWN0ZWQgZWFzaWx5IGJ5IGBiaW4vcmVnZW5lcmF0b3IgLS1pbmNsdWRlLXJ1bnRpbWUgc2NyaXB0LmpzYC5cbiAgcmV0dXJuIGV4cG9ydHM7XG5cbn0oXG4gIC8vIElmIHRoaXMgc2NyaXB0IGlzIGV4ZWN1dGluZyBhcyBhIENvbW1vbkpTIG1vZHVsZSwgdXNlIG1vZHVsZS5leHBvcnRzXG4gIC8vIGFzIHRoZSByZWdlbmVyYXRvclJ1bnRpbWUgbmFtZXNwYWNlLiBPdGhlcndpc2UgY3JlYXRlIGEgbmV3IGVtcHR5XG4gIC8vIG9iamVjdC4gRWl0aGVyIHdheSwgdGhlIHJlc3VsdGluZyBvYmplY3Qgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemVcbiAgLy8gdGhlIHJlZ2VuZXJhdG9yUnVudGltZSB2YXJpYWJsZSBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS5cbiAgdHlwZW9mIG1vZHVsZSA9PT0gXCJvYmplY3RcIiA/IG1vZHVsZS5leHBvcnRzIDoge31cbikpO1xuXG50cnkge1xuICByZWdlbmVyYXRvclJ1bnRpbWUgPSBydW50aW1lO1xufSBjYXRjaCAoYWNjaWRlbnRhbFN0cmljdE1vZGUpIHtcbiAgLy8gVGhpcyBtb2R1bGUgc2hvdWxkIG5vdCBiZSBydW5uaW5nIGluIHN0cmljdCBtb2RlLCBzbyB0aGUgYWJvdmVcbiAgLy8gYXNzaWdubWVudCBzaG91bGQgYWx3YXlzIHdvcmsgdW5sZXNzIHNvbWV0aGluZyBpcyBtaXNjb25maWd1cmVkLiBKdXN0XG4gIC8vIGluIGNhc2UgcnVudGltZS5qcyBhY2NpZGVudGFsbHkgcnVucyBpbiBzdHJpY3QgbW9kZSwgd2UgY2FuIGVzY2FwZVxuICAvLyBzdHJpY3QgbW9kZSB1c2luZyBhIGdsb2JhbCBGdW5jdGlvbiBjYWxsLiBUaGlzIGNvdWxkIGNvbmNlaXZhYmx5IGZhaWxcbiAgLy8gaWYgYSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBmb3JiaWRzIHVzaW5nIEZ1bmN0aW9uLCBidXQgaW4gdGhhdCBjYXNlXG4gIC8vIHRoZSBwcm9wZXIgc29sdXRpb24gaXMgdG8gZml4IHRoZSBhY2NpZGVudGFsIHN0cmljdCBtb2RlIHByb2JsZW0uIElmXG4gIC8vIHlvdSd2ZSBtaXNjb25maWd1cmVkIHlvdXIgYnVuZGxlciB0byBmb3JjZSBzdHJpY3QgbW9kZSBhbmQgYXBwbGllZCBhXG4gIC8vIENTUCB0byBmb3JiaWQgRnVuY3Rpb24sIGFuZCB5b3UncmUgbm90IHdpbGxpbmcgdG8gZml4IGVpdGhlciBvZiB0aG9zZVxuICAvLyBwcm9ibGVtcywgcGxlYXNlIGRldGFpbCB5b3VyIHVuaXF1ZSBwcmVkaWNhbWVudCBpbiBhIEdpdEh1YiBpc3N1ZS5cbiAgRnVuY3Rpb24oXCJyXCIsIFwicmVnZW5lcmF0b3JSdW50aW1lID0gclwiKShydW50aW1lKTtcbn1cbiJdLCJuYW1lcyI6WyJydW50aW1lIiwiZXhwb3J0cyIsIk9wIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duIiwiaGFzT3duUHJvcGVydHkiLCJ1bmRlZmluZWQiLCIkU3ltYm9sIiwiU3ltYm9sIiwiaXRlcmF0b3JTeW1ib2wiLCJpdGVyYXRvciIsImFzeW5jSXRlcmF0b3JTeW1ib2wiLCJhc3luY0l0ZXJhdG9yIiwidG9TdHJpbmdUYWdTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsIndyYXAiLCJpbm5lckZuIiwib3V0ZXJGbiIsInNlbGYiLCJ0cnlMb2NzTGlzdCIsInByb3RvR2VuZXJhdG9yIiwiR2VuZXJhdG9yIiwiZ2VuZXJhdG9yIiwiY3JlYXRlIiwiY29udGV4dCIsIkNvbnRleHQiLCJfaW52b2tlIiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwiZm4iLCJvYmoiLCJhcmciLCJ0eXBlIiwiY2FsbCIsImVyciIsIkdlblN0YXRlU3VzcGVuZGVkU3RhcnQiLCJHZW5TdGF0ZVN1c3BlbmRlZFlpZWxkIiwiR2VuU3RhdGVFeGVjdXRpbmciLCJHZW5TdGF0ZUNvbXBsZXRlZCIsIkNvbnRpbnVlU2VudGluZWwiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwiSXRlcmF0b3JQcm90b3R5cGUiLCJnZXRQcm90byIsImdldFByb3RvdHlwZU9mIiwiTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUiLCJ2YWx1ZXMiLCJHcCIsImNvbnN0cnVjdG9yIiwiZGlzcGxheU5hbWUiLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwibWV0aG9kIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImdlbkZ1biIsImN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJfX2F3YWl0IiwiQXN5bmNJdGVyYXRvciIsIlByb21pc2VJbXBsIiwiaW52b2tlIiwicmVzb2x2ZSIsInJlamVjdCIsInJlY29yZCIsInJlc3VsdCIsInZhbHVlIiwidGhlbiIsInVud3JhcHBlZCIsImVycm9yIiwicHJldmlvdXNQcm9taXNlIiwiZW5xdWV1ZSIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiYXN5bmMiLCJQcm9taXNlIiwiaXRlciIsIm5leHQiLCJkb25lIiwic3RhdGUiLCJFcnJvciIsImRvbmVSZXN1bHQiLCJkZWxlZ2F0ZSIsImRlbGVnYXRlUmVzdWx0IiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwiVHlwZUVycm9yIiwiaW5mbyIsInJlc3VsdE5hbWUiLCJuZXh0TG9jIiwidG9TdHJpbmciLCJwdXNoVHJ5RW50cnkiLCJsb2NzIiwiZW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImtleXMiLCJvYmplY3QiLCJrZXkiLCJyZXZlcnNlIiwibGVuZ3RoIiwicG9wIiwiaXRlcmFibGUiLCJpdGVyYXRvck1ldGhvZCIsImlzTmFOIiwiaSIsInNraXBUZW1wUmVzZXQiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicm9vdEVudHJ5Iiwicm9vdFJlY29yZCIsInJ2YWwiLCJleGNlcHRpb24iLCJoYW5kbGUiLCJsb2MiLCJjYXVnaHQiLCJoYXNDYXRjaCIsImhhc0ZpbmFsbHkiLCJmaW5hbGx5RW50cnkiLCJjb21wbGV0ZSIsImZpbmlzaCIsInRocm93biIsImRlbGVnYXRlWWllbGQiLCJtb2R1bGUiLCJyZWdlbmVyYXRvclJ1bnRpbWUiLCJhY2NpZGVudGFsU3RyaWN0TW9kZSIsIkZ1bmN0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9\n","var superPropBase = require(\"./superPropBase.js\");\n\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n\n return _get.apply(this, arguments);\n}\n\nmodule.exports = _get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'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","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","'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","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\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","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\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 getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$Join = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\n\n// `Array.prototype.every` method\n// https://tc39.es/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es-x/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\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 $ = require('../internals/export');\nvar functionApply = require('../internals/function-apply');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\n\n// MS Edge argumentsList argument is optional\nvar OPTIONAL_ARGUMENTS_LIST = !fails(function () {\n // eslint-disable-next-line es-x/no-reflect -- required for testing\n Reflect.apply(function () { /* empty */ });\n});\n\n// `Reflect.apply` method\n// https://tc39.es/ecma262/#sec-reflect.apply\n$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {\n apply: function apply(target, thisArgument, argumentsList) {\n return functionApply(aCallable(target), thisArgument, anObject(argumentsList));\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar arraySlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = arraySlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n var dummy = this;\n // check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); })\n ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n;\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(NativeNumber, key = keys[j]) && !hasOwn(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n defineBuiltIn(global, NUMBER, NumberWrapper, { constructor: true });\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 isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Reflect.deleteProperty` method\n// https://tc39.es/ecma262/#sec-reflect.deleteproperty\n$({ target: 'Reflect', stat: true }, {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey);\n return descriptor && !descriptor.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.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","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\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-x/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 = IteratorPrototype == undefined || 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","var defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n key in Target || defineProperty(Target, key, {\n configurable: true,\n get: function () { return Source[key]; },\n set: function (it) { Source[key] = it; }\n });\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/native-symbol-registry');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\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 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 queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\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 // strange IE + webpack dev server bug - use .bind(global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-isextensible, es-x/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","var $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/native-symbol-registry');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\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","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n/* eslint-disable es-x/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar $IndexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$IndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!un$IndexOf && 1 / un$IndexOf([1], 1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\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 ? un$IndexOf(this, searchElement, fromIndex) || 0\n : $IndexOf(this, searchElement, fromIndex);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\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 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 global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\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-x/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 // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(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 TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\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 userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\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 $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\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');\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","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es-x/no-object-isextensible, es-x/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = global[WEB_ASSEMBLY];\n\nvar FORCED = Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n if (WebAssembly && WebAssembly[ERROR_NAME]) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n }\n};\n\n// https://github.com/tc39/proposal-error-cause\nexportGlobalErrorCauseWrapper('Error', function (init) {\n return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","var 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","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-x/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n var symbolToString = uncurryThis(SymbolPrototype.toString);\n var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = symbolValueOf(this);\n var string = symbolToString(symbol);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, constructor: true, forced: true }, {\n Symbol: SymbolWrapper\n });\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-x/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","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-x/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\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/define-iterator');\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 { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: 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","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n var STACK_TRACE_LIMIT = 'stackTraceLimit';\n var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n var path = FULL_NAME.split('.');\n var ERROR_NAME = path[path.length - 1];\n var OriginalError = getBuiltIn.apply(null, path);\n\n if (!OriginalError) return;\n\n var OriginalErrorPrototype = OriginalError.prototype;\n\n // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n if (!FORCED) return OriginalError;\n\n var BaseError = getBuiltIn('Error');\n\n var WrappedError = wrapper(function (a, b) {\n var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(result, 'stack', clearErrorStack(result.stack, 2));\n if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n return result;\n });\n\n WrappedError.prototype = OriginalErrorPrototype;\n\n if (ERROR_NAME !== 'Error') {\n if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n else copyConstructorProperties(WrappedError, BaseError, { name: true });\n } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n }\n\n copyConstructorProperties(WrappedError, OriginalError);\n\n if (!IS_PURE) try {\n // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n if (OriginalErrorPrototype.name !== ERROR_NAME) {\n createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n }\n OriginalErrorPrototype.constructor = WrappedError;\n } catch (error) { /* empty */ }\n\n return WrappedError;\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","// 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","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es-x/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\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 $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\nvar aCallable = require('../internals/a-callable');\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 $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\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 uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n$({ global: true }, { Reflect: {} });\n\n// Reflect[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-reflect-@@tostringtag\nsetToStringTag(global.Reflect, 'Reflect', true);\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar un$Slice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return un$Slice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","// 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"],"sourceRoot":""}