{"version":3,"sources":["webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/collection.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/an-object.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/to-length.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.array.every.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/set-global.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/is-object.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/microtask.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.array.some.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/path.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.reflect.delete-property.js","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.reflect.construct.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/uid.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/native-promise-constructor.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/rgbcolor/index.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/stackblur-canvas/dist/stackblur-es.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/global.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.array.fill.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/shared.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/array-from.js","webpack:///./node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/array-method-uses-to-length.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/fails.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/perform.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.map.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.reflect.apply.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/internal-metadata.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/classof.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/canvg/index.js","webpack:///./node_modules/@babel/runtime/helpers/get.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/function-bind.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/html.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/array-fill.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/@babel/runtime/helpers/superPropBase.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/to-object.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/iterators.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/set-species.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/is-array.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/create-property.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/has.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.array.reverse.js","webpack:///./node_modules/raf/index.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/export.js","webpack:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/a-function.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.array.for-each.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/redefine.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/task.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/iterate.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.reflect.get-prototype-of.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/object-create.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/freezing.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/@amcharts/amcharts4/node_modules/core-js/internals/create-property-descriptor.js"],"names":["DESCRIPTORS","definePropertyModule","createPropertyDescriptor","module","exports","object","key","value","f","$","global","isForced","redefine","InternalMetadataModule","iterate","anInstance","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","CONSTRUCTOR_NAME","wrapper","common","IS_MAP","indexOf","IS_WEAK","ADDER","NativeConstructor","NativePrototype","prototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","this","undefined","forEach","entries","next","getConstructor","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","has","ACCEPT_ITERABLES","iterable","BUGGY_ZERO","$instance","index","dummy","that","constructor","clear","forced","setStrong","nativePropertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","Object","NASHORN_BUG","1","V","descriptor","enumerable","it","TypeError","String","_nonIterableSpread","classof","Iterators","wellKnownSymbol","ITERATOR","toInteger","min","Math","argument","max","length","integer","_iterableToArray","iter","Symbol","iterator","Array","from","$every","every","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","target","proto","callbackfn","arguments","createNonEnumerableProperty","error","$trim","trim","forcedStringTrimMethod","isRegExp","src","options","toObject","nativeKeys","FAILS_ON_PRIMITIVES","stat","keys","TO_STRING_TAG_SUPPORT","toString","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","anObject","newPromiseCapability","C","x","promiseCapability","resolve","promise","path","aFunction","variable","namespace","method","arrayLikeToArray","_arrayWithoutHoles","arr","isArray","flush","head","last","notify","toggle","node","then","macrotask","set","IS_IOS","MutationObserver","WebKitMutationObserver","process","Promise","IS_NODE","queueMicrotaskDescriptor","queueMicrotask","parent","fn","domain","exit","enter","nextTick","document","createTextNode","observe","characterData","task","create","UNSCOPABLES","ArrayPrototype","configurable","getBuiltIn","IS_PURE","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","toIndexedObject","toPrimitive","nativeObjectCreate","objectKeys","getOwnPropertyNamesModule","getOwnPropertyNamesExternal","getOwnPropertySymbolsModule","getOwnPropertyDescriptorModule","propertyIsEnumerableModule","shared","sharedKey","hiddenKeys","uid","wrappedWellKnownSymbolModule","defineWellKnownSymbol","InternalStateModule","$forEach","HIDDEN","SYMBOL","PROTOTYPE","TO_PRIMITIVE","setInternalState","getInternalState","getterFor","ObjectPrototype","$Symbol","$stringify","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","get","a","O","P","Attributes","ObjectPrototypeDescriptor","wrap","tag","description","symbol","type","isSymbol","$defineProperty","$defineProperties","Properties","properties","concat","$getOwnPropertySymbols","$propertyIsEnumerable","$create","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","result","push","IS_OBJECT_PROTOTYPE","setter","name","unsafe","sham","keyFor","sym","useSetter","useSimple","defineProperty","defineProperties","getOwnPropertyNames","getOwnPropertySymbols","FORCED_JSON_STRINGIFY","stringify","replacer","space","$replacer","args","apply","valueOf","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_slicedToArray","i","EXISTS","createElement","RE","s","RegExp","UNSUPPORTED_Y","re","lastIndex","exec","BROKEN_CARET","MATCH","fixRegExpWellKnownSymbolLogic","toLength","requireObjectCoercible","advanceStringIndex","regExpExec","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","nativeReplace","maybeCallNative","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","regexp","res","done","rx","S","functionalReplace","fullUnicode","unicode","results","matchStr","accumulatedResult","nextSourcePosition","matched","position","captures","j","namedCaptures","groups","replacerArgs","getSubstitution","slice","str","tailPos","m","symbols","match","ch","capture","charAt","n","$some","some","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","split","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","flags","nativeRegExpMethod","methods","arg2","forceStringMethod","stringMethod","regexMethod","arg","METHOD_NAME","IndexedObject","nativeJoin","join","ES3_STRINGS","separator","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","source","INCORRECT_NAME","R","p","rf","PromiseCapability","reject","$$resolve","$$reject","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","F","_assertThisInitialized","self","ReferenceError","IE8_DOM_DEFINE","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","deleteProperty","propertyKey","arrayWithoutHoles","iterableToArray","nonIterableSpread","_toConsumableArray","setGlobal","SHARED","store","ArrayIteratorMethods","TO_STRING_TAG","ArrayValues","values","_setPrototypeOf","bind","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","FORCED","construct","Target","newTarget","$args","Function","id","postfix","random","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","first","third","radix","maxCode","digits","code","charCodeAt","NaN","parseInt","NumberWrapper","V8_VERSION","array","foo","Boolean","defaultConstructor","IteratorPrototype","returnThis","IteratorConstructor","NAME","color_string","ok","alpha","substr","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","parseFloat","processor","channels","r","g","b","isNaN","toRGB","toRGBA","toHex","getHelpXML","examples","sc","xml","setAttribute","list_item","list_color","RGBColor","example_div","style","cssText","appendChild","list_item_value","e","_arrayLikeToArray","len","arr2","_defineProperties","props","writable","_createClass","protoProps","staticProps","CORRECT_PROTOTYPE_GETTER","IE_PROTO","regexpFlags","stickyHelpers","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","reCopy","sticky","charsAdded","strCopy","multiline","input","_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","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","createWellKnownSymbol","withoutSetter","check","globalThis","window","nativeMatch","matcher","A","_unsupportedIterableToArray","minLen","test","fill","addToUnscopables","toAbsoluteIndex","createProperty","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","ACCESSORS","0","nativeSlice","start","end","k","fin","version","mode","copyright","TAG","STATIC","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","redefineAll","setSpecies","inspectSource","speciesConstructor","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","GLOBAL_CORE_JS_PROMISE","PromiseRejectionEvent","FakePromise","INCORRECT_ITERATION","all","isThenable","state","isReject","notified","chain","reactions","exited","reaction","handler","fail","rejection","onHandleUnhandled","onUnhandled","event","initEvent","IS_UNHANDLED","isUnhandled","emit","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","fetch","capability","$promiseResolve","counter","remaining","alreadyCalled","race","assertThisInitialized","_possibleConstructorReturn","callWithSafeIterationClosing","isArrayIteratorMethod","getIteratorMethod","arrayLike","step","argumentsLength","mapfn","mapping","iteratorMethod","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","now","hr","uptime","Date","getTime","cache","thrower","argument0","argument1","aPossiblePrototype","CORRECT_SETTER","PREFERRED_STRING","val","whitespaces","non","ownKeys","defineIterator","STRING_ITERATOR","iterated","point","collection","collectionStrong","init","ARRAY_ITERATOR","kind","Arguments","nativeApply","functionApply","OPTIONAL_ARGUMENTS_LIST","thisArgument","argumentsList","$includes","includes","el","userAgent","FREEZING","METADATA","isExtensible","setMetadata","objectID","weakData","fastKey","getWeakData","onFreeze","meta","c","ignoreCase","dotAll","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","arraySpeciesCreate","createMethod","TYPE","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","specificCreate","boundFunction","map","filter","find","findIndex","compressSpaces","trimLeft","trimRight","toNumbers","matches","allUppercase","normalizeAttributeName","parseExternalUrl","url","urlMatch","normalizeColor","color","startsWith","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","Op","hasOwn","hasOwnProperty","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","makeInvokeMethod","tryCatch","err","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","reverse","pop","skipTempReset","prev","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","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","run","isPointInPath","boundingBox","_ref3","isPointInBox","_this$screen","offsetLeft","offsetTop","offsetParent","scrollX","scrollY","evt","_this$mapXY","mapXY","clientX","clientY","_this$mapXY2","defaultWindow","defaultFetch","Screen","_ref$fetch","_ref$window","FRAMERATE","MAX_VIRTUAL_PIXELS","CLIENT_WIDTH","CLIENT_HEIGHT","mouse","animations","waits","frameDuration","isReadyLock","isFirstRender","intervalId","checker","readyPromise","_","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","reduce","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","h","det","_createSuper","Derived","Super","_isNativeReflectConstruct","NewTarget","Reflect","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","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","empty","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","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","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","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","pattern","_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","removed","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","open","_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","console","_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","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","noop","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","display","removeChild","_createSuper$K","_isNativeReflectConstruct$K","TitleElement","_createSuper$L","_isNativeReflectConstruct$L","DescElement","elementTypes","enumerableOnly","_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","WeakMap","$filter","factories","argsLength","list","partArgs","_defineProperty","endPos","_iterableToArrayLimit","_arr","_n","_d","_s","_superPropBase","notARegExp","correctIsRegExpLogic","nativeStartsWith","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","searchString","search","IS_INCLUDES","fromIndex","functionToString","$map","internalObjectKeys","enumBugKeys","Wrapper","NewTargetPrototype","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","whitespace","ltrim","rtrim","_arrayWithHoles","_nonIterableRest","callRegExpExec","arrayPush","MAX_UINT32","SUPPORTS_Y","SPLIT","nativeSplit","internalSplit","limit","lim","lastLength","output","lastLastIndex","separatorCopy","splitter","unicodeMatching","q","z","CONVERT_TO_STRING","pos","second","size","codeAt","nativeReverse","vendors","suffix","raf","caf","queue","callback","_now","setTimeout","cp","cancelled","polyfill","requestAnimationFrame","cancelAnimationFrame","PrototypeOfArrayIteratorPrototype","arrayIterator","BUGGY_SAFARI_ITERATORS","internalStateGetterFor","define","previous","getEntry","add","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","copyConstructorProperties","targetProperty","sourceProperty","TARGET","GLOBAL","noTargetGet","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","ENTRIES","returnMethod","versions","v8","enforceInternalState","enforce","TEMPLATE","simple","defer","channel","port","html","location","setImmediate","clearImmediate","MessageChannel","Dispatch","ONREADYSTATECHANGE","runner","listener","post","postMessage","protocol","host","port2","port1","onmessage","addEventListener","importScripts","Result","stopped","AS_ENTRIES","IS_ITERATOR","iterFn","IS_RIGHT","memo","left","right","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","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","createIteratorConstructor","IteratorsCore","KEYS","VALUES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","originalArray","objectGetPrototypeOf","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","_inherits","subClass","superClass","NATIVE_WEAK_MAP","objectHas","wmget","wmhas","wmset","metadata","STATE","windowNames","getWindowNames","activeXDocument","documentCreateElement","GT","LT","SCRIPT","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","contentWindow","NullProtoObject","ActiveXObject","FunctionPrototype","FunctionPrototypeToString","nameRE","preventExtensions","$reduce","bitmap"],"mappings":"4FAAA,IAAIA,EAAc,EAAQ,QACtBC,EAAuB,EAAQ,QAC/BC,EAA2B,EAAQ,QAEvCC,EAAOC,QAAUJ,EAAc,SAAUK,EAAQC,EAAKC,GACpD,OAAON,EAAqBO,EAAEH,EAAQC,EAAKJ,EAAyB,EAAGK,KACrE,SAAUF,EAAQC,EAAKC,GAEzB,OADAF,EAAOC,GAAOC,EACPF,I,oCCPT,IAAII,EAAI,EAAQ,QACZC,EAAS,EAAQ,QACjBC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBC,EAAyB,EAAQ,QACjCC,EAAU,EAAQ,QAClBC,EAAa,EAAQ,QACrBC,EAAW,EAAQ,QACnBC,EAAQ,EAAQ,QAChBC,EAA8B,EAAQ,QACtCC,EAAiB,EAAQ,QACzBC,EAAoB,EAAQ,QAEhCjB,EAAOC,QAAU,SAAUiB,EAAkBC,EAASC,GACpD,IAAIC,GAA8C,IAArCH,EAAiBI,QAAQ,OAClCC,GAAgD,IAAtCL,EAAiBI,QAAQ,QACnCE,EAAQH,EAAS,MAAQ,MACzBI,EAAoBlB,EAAOW,GAC3BQ,EAAkBD,GAAqBA,EAAkBE,UACzDC,EAAcH,EACdI,EAAW,GAEXC,EAAY,SAAUC,GACxB,IAAIC,EAAeN,EAAgBK,GACnCtB,EAASiB,EAAiBK,EACjB,OAAPA,EAAe,SAAa3B,GAE1B,OADA4B,EAAaC,KAAKC,KAAgB,IAAV9B,EAAc,EAAIA,GACnC8B,MACE,UAAPH,EAAkB,SAAU5B,GAC9B,QAAOoB,IAAYV,EAASV,KAAe6B,EAAaC,KAAKC,KAAc,IAAR/B,EAAY,EAAIA,IAC1E,OAAP4B,EAAe,SAAa5B,GAC9B,OAAOoB,IAAYV,EAASV,QAAOgC,EAAYH,EAAaC,KAAKC,KAAc,IAAR/B,EAAY,EAAIA,IAC9E,OAAP4B,EAAe,SAAa5B,GAC9B,QAAOoB,IAAYV,EAASV,KAAe6B,EAAaC,KAAKC,KAAc,IAAR/B,EAAY,EAAIA,IACjF,SAAaA,EAAKC,GAEpB,OADA4B,EAAaC,KAAKC,KAAc,IAAR/B,EAAY,EAAIA,EAAKC,GACtC8B,QAMb,GAAI1B,EAASU,EAA8C,mBAArBO,KAAqCF,GAAWG,EAAgBU,UAAYtB,GAAM,YACtH,IAAIW,GAAoBY,UAAUC,YAGlCV,EAAcR,EAAOmB,eAAepB,EAASD,EAAkBG,EAAQG,GACvEd,EAAuB8B,UAAW,OAC7B,GAAIhC,EAASU,GAAkB,GAAO,CAC3C,IAAIuB,EAAW,IAAIb,EAEfc,EAAiBD,EAASjB,GAAOD,EAAU,IAAM,EAAG,IAAMkB,EAE1DE,EAAuB7B,GAAM,WAAc2B,EAASG,IAAI,MAGxDC,EAAmB9B,GAA4B,SAAU+B,GAAY,IAAIrB,EAAkBqB,MAE3FC,GAAcxB,GAAWT,GAAM,WAEjC,IAAIkC,EAAY,IAAIvB,EAChBwB,EAAQ,EACZ,MAAOA,IAASD,EAAUxB,GAAOyB,EAAOA,GACxC,OAAQD,EAAUJ,KAAK,MAGpBC,IACHjB,EAAcT,GAAQ,SAAU+B,EAAOJ,GACrClC,EAAWsC,EAAOtB,EAAaV,GAC/B,IAAIiC,EAAOlC,EAAkB,IAAIQ,EAAqByB,EAAOtB,GAE7D,YADgBO,GAAZW,GAAuBnC,EAAQmC,EAAUK,EAAK3B,GAAQ2B,EAAM9B,GACzD8B,KAETvB,EAAYD,UAAYD,EACxBA,EAAgB0B,YAAcxB,IAG5Be,GAAwBI,KAC1BjB,EAAU,UACVA,EAAU,OACVT,GAAUS,EAAU,SAGlBiB,GAAcL,IAAgBZ,EAAUN,GAGxCD,GAAWG,EAAgB2B,cAAc3B,EAAgB2B,MAU/D,OAPAxB,EAASX,GAAoBU,EAC7BtB,EAAE,CAAEC,QAAQ,EAAM+C,OAAQ1B,GAAeH,GAAqBI,GAE9Db,EAAeY,EAAaV,GAEvBK,GAASH,EAAOmC,UAAU3B,EAAaV,EAAkBG,GAEvDO,I,oCChGT,IAAI4B,EAA6B,GAAGC,qBAChCC,EAA2BC,OAAOD,yBAGlCE,EAAcF,IAA6BF,EAA2BvB,KAAK,CAAE4B,EAAG,GAAK,GAIzF5D,EAAQI,EAAIuD,EAAc,SAA8BE,GACtD,IAAIC,EAAaL,EAAyBxB,KAAM4B,GAChD,QAASC,GAAcA,EAAWC,YAChCR,G,uBCZJ,IAAI3C,EAAW,EAAQ,QAEvBb,EAAOC,QAAU,SAAUgE,GACzB,IAAKpD,EAASoD,GACZ,MAAMC,UAAUC,OAAOF,GAAM,qBAC7B,OAAOA,I,qBCLX,SAASG,IACP,MAAM,IAAIF,UAAU,wIAGtBlE,EAAOC,QAAUmE,G,uBCJjB,IAAIC,EAAU,EAAQ,QAClBC,EAAY,EAAQ,QACpBC,EAAkB,EAAQ,QAE1BC,EAAWD,EAAgB,YAE/BvE,EAAOC,QAAU,SAAUgE,GACzB,QAAU9B,GAAN8B,EAAiB,OAAOA,EAAGO,IAC1BP,EAAG,eACHK,EAAUD,EAAQJ,M,uBCTzB,IAAIQ,EAAY,EAAQ,QAEpBC,EAAMC,KAAKD,IAIf1E,EAAOC,QAAU,SAAU2E,GACzB,OAAOA,EAAW,EAAIF,EAAID,EAAUG,GAAW,kBAAoB,I,uBCPrE,IAAIH,EAAY,EAAQ,QAEpBI,EAAMF,KAAKE,IACXH,EAAMC,KAAKD,IAKf1E,EAAOC,QAAU,SAAUgD,EAAO6B,GAChC,IAAIC,EAAUN,EAAUxB,GACxB,OAAO8B,EAAU,EAAIF,EAAIE,EAAUD,EAAQ,GAAKJ,EAAIK,EAASD,K,qBCV/D,SAASE,EAAiBC,GACxB,GAAsB,qBAAXC,QAA0BA,OAAOC,YAAYxB,OAAOsB,GAAO,OAAOG,MAAMC,KAAKJ,GAG1FjF,EAAOC,QAAU+E,G,oCCHjB,IAAI1E,EAAI,EAAQ,QACZgF,EAAS,EAAQ,QAAgCC,MACjDC,EAAsB,EAAQ,QAC9BC,EAA0B,EAAQ,QAElCC,EAAgBF,EAAoB,SACpCG,EAAiBF,EAAwB,SAI7CnF,EAAE,CAAEsF,OAAQ,QAASC,OAAO,EAAMvC,QAASoC,IAAkBC,GAAkB,CAC7EJ,MAAO,SAAeO,GACpB,OAAOR,EAAOpD,KAAM4D,EAAYC,UAAUjB,OAAS,EAAIiB,UAAU,QAAK5D,O,uBCb1E,IAAI5B,EAAS,EAAQ,QACjByF,EAA8B,EAAQ,QAE1ChG,EAAOC,QAAU,SAAUE,EAAKC,GAC9B,IACE4F,EAA4BzF,EAAQJ,EAAKC,GACzC,MAAO6F,GACP1F,EAAOJ,GAAOC,EACd,OAAOA,I,kCCPX,IAAIE,EAAI,EAAQ,QACZ4F,EAAQ,EAAQ,QAA4BC,KAC5CC,EAAyB,EAAQ,QAIrC9F,EAAE,CAAEsF,OAAQ,SAAUC,OAAO,EAAMvC,OAAQ8C,EAAuB,SAAW,CAC3ED,KAAM,WACJ,OAAOD,EAAMhE,U,uBCTjB,IAAImE,EAAW,EAAQ,QAEvBrG,EAAOC,QAAU,SAAUgE,GACzB,GAAIoC,EAASpC,GACX,MAAMC,UAAU,iDAChB,OAAOD,I,qBCLX,IAAIxD,EAAW,EAAQ,QAEvBT,EAAOC,QAAU,SAAU2F,EAAQU,EAAKC,GACtC,IAAK,IAAIpG,KAAOmG,EAAK7F,EAASmF,EAAQzF,EAAKmG,EAAInG,GAAMoG,GACrD,OAAOX,I,uBCJT,IAAItF,EAAI,EAAQ,QACZkG,EAAW,EAAQ,QACnBC,EAAa,EAAQ,QACrB3F,EAAQ,EAAQ,QAEhB4F,EAAsB5F,GAAM,WAAc2F,EAAW,MAIzDnG,EAAE,CAAEsF,OAAQ,SAAUe,MAAM,EAAMrD,OAAQoD,GAAuB,CAC/DE,KAAM,SAAc3C,GAClB,OAAOwC,EAAWD,EAASvC,Q,oCCV/B,IAAI4C,EAAwB,EAAQ,QAChCxC,EAAU,EAAQ,QAItBrE,EAAOC,QAAU4G,EAAwB,GAAGC,SAAW,WACrD,MAAO,WAAazC,EAAQnC,MAAQ,M,uBCPtC,IAAIpB,EAAQ,EAAQ,QAEhBiG,EAAc,kBAEdvG,EAAW,SAAUwG,EAASC,GAChC,IAAI7G,EAAQ8G,EAAKC,EAAUH,IAC3B,OAAO5G,GAASgH,GACZhH,GAASiH,IACW,mBAAbJ,EAA0BnG,EAAMmG,KACrCA,IAGJE,EAAY3G,EAAS2G,UAAY,SAAUG,GAC7C,OAAOnD,OAAOmD,GAAQC,QAAQR,EAAa,KAAKS,eAG9CN,EAAO1G,EAAS0G,KAAO,GACvBG,EAAS7G,EAAS6G,OAAS,IAC3BD,EAAW5G,EAAS4G,SAAW,IAEnCpH,EAAOC,QAAUO,G,uBCpBjB,IAAIiH,EAAW,EAAQ,QACnB5G,EAAW,EAAQ,QACnB6G,EAAuB,EAAQ,QAEnC1H,EAAOC,QAAU,SAAU0H,EAAGC,GAE5B,GADAH,EAASE,GACL9G,EAAS+G,IAAMA,EAAExE,cAAgBuE,EAAG,OAAOC,EAC/C,IAAIC,EAAoBH,EAAqBrH,EAAEsH,GAC3CG,EAAUD,EAAkBC,QAEhC,OADAA,EAAQF,GACDC,EAAkBE,U,uBCV3B,IAAIC,EAAO,EAAQ,QACfzH,EAAS,EAAQ,QAEjB0H,EAAY,SAAUC,GACxB,MAA0B,mBAAZA,EAAyBA,OAAW/F,GAGpDnC,EAAOC,QAAU,SAAUkI,EAAWC,GACpC,OAAOrC,UAAUjB,OAAS,EAAImD,EAAUD,EAAKG,KAAeF,EAAU1H,EAAO4H,IACzEH,EAAKG,IAAcH,EAAKG,GAAWC,IAAW7H,EAAO4H,IAAc5H,EAAO4H,GAAWC,K,qBCP3FpI,EAAOC,QAAU,iD,qBCFjBD,EAAOC,QAAU,SAAUgE,GACzB,MAAqB,kBAAPA,EAAyB,OAAPA,EAA4B,oBAAPA,I,qBCDvD,IAAIoE,EAAmB,EAAQ,QAE/B,SAASC,EAAmBC,GAC1B,GAAInD,MAAMoD,QAAQD,GAAM,OAAOF,EAAiBE,GAGlDvI,EAAOC,QAAUqI,G,qBCNjB,IAcIG,EAAOC,EAAMC,EAAMC,EAAQC,EAAQC,EAAMf,EAASgB,EAdlDxI,EAAS,EAAQ,QACjBmD,EAA2B,EAAQ,QAAmDrD,EACtFgE,EAAU,EAAQ,QAClB2E,EAAY,EAAQ,QAAqBC,IACzCC,EAAS,EAAQ,QAEjBC,EAAmB5I,EAAO4I,kBAAoB5I,EAAO6I,uBACrDC,EAAU9I,EAAO8I,QACjBC,EAAU/I,EAAO+I,QACjBC,EAA8B,WAApBlF,EAAQgF,GAElBG,EAA2B9F,EAAyBnD,EAAQ,kBAC5DkJ,EAAiBD,GAA4BA,EAAyBpJ,MAKrEqJ,IACHhB,EAAQ,WACN,IAAIiB,EAAQC,EACRJ,IAAYG,EAASL,EAAQO,SAASF,EAAOG,OACjD,MAAOnB,EAAM,CACXiB,EAAKjB,EAAKiB,GACVjB,EAAOA,EAAKpG,KACZ,IACEqH,IACA,MAAO1D,GAGP,MAFIyC,EAAME,IACLD,OAAOxG,EACN8D,GAER0C,OAAOxG,EACLuH,GAAQA,EAAOI,SAIjBP,EACFX,EAAS,WACPS,EAAQU,SAAStB,IAGVU,IAAqBD,GAC9BL,GAAS,EACTC,EAAOkB,SAASC,eAAe,IAC/B,IAAId,EAAiBV,GAAOyB,QAAQpB,EAAM,CAAEqB,eAAe,IAC3DvB,EAAS,WACPE,EAAK5B,KAAO2B,GAAUA,IAGfS,GAAWA,EAAQxB,SAE5BC,EAAUuB,EAAQxB,aAAQ3F,GAC1B4G,EAAOhB,EAAQgB,KACfH,EAAS,WACPG,EAAK9G,KAAK8F,EAASU,KASrBG,EAAS,WAEPI,EAAU/G,KAAK1B,EAAQkI,KAK7BzI,EAAOC,QAAUwJ,GAAkB,SAAUE,GAC3C,IAAIS,EAAO,CAAET,GAAIA,EAAIrH,UAAMH,GACvBwG,IAAMA,EAAKrG,KAAO8H,GACjB1B,IACHA,EAAO0B,EACPxB,KACAD,EAAOyB,I,uBC5EX,IAAI7F,EAAkB,EAAQ,QAC1B8F,EAAS,EAAQ,QACjBvK,EAAuB,EAAQ,QAE/BwK,EAAc/F,EAAgB,eAC9BgG,EAAiBnF,MAAMzD,eAIQQ,GAA/BoI,EAAeD,IACjBxK,EAAqBO,EAAEkK,EAAgBD,EAAa,CAClDE,cAAc,EACdpK,MAAOiK,EAAO,QAKlBrK,EAAOC,QAAU,SAAUE,GACzBoK,EAAeD,GAAanK,IAAO,I,oCCjBrC,IAAIG,EAAI,EAAQ,QACZC,EAAS,EAAQ,QACjBkK,EAAa,EAAQ,QACrBC,EAAU,EAAQ,QAClB7K,EAAc,EAAQ,QACtB8K,EAAgB,EAAQ,QACxBC,EAAoB,EAAQ,QAC5B9J,EAAQ,EAAQ,QAChB8B,EAAM,EAAQ,QACd4F,EAAU,EAAQ,QAClB3H,EAAW,EAAQ,QACnB4G,EAAW,EAAQ,QACnBjB,EAAW,EAAQ,QACnBqE,EAAkB,EAAQ,QAC1BC,EAAc,EAAQ,QACtB/K,EAA2B,EAAQ,QACnCgL,EAAqB,EAAQ,QAC7BC,EAAa,EAAQ,QACrBC,EAA4B,EAAQ,QACpCC,EAA8B,EAAQ,QACtCC,EAA8B,EAAQ,QACtCC,EAAiC,EAAQ,QACzCtL,EAAuB,EAAQ,QAC/BuL,EAA6B,EAAQ,QACrCrF,EAA8B,EAAQ,QACtCvF,EAAW,EAAQ,QACnB6K,EAAS,EAAQ,QACjBC,EAAY,EAAQ,QACpBC,EAAa,EAAQ,QACrBC,EAAM,EAAQ,QACdlH,EAAkB,EAAQ,QAC1BmH,EAA+B,EAAQ,QACvCC,EAAwB,EAAQ,QAChC3K,EAAiB,EAAQ,QACzB4K,EAAsB,EAAQ,QAC9BC,EAAW,EAAQ,QAAgCzJ,QAEnD0J,EAASP,EAAU,UACnBQ,EAAS,SACTC,EAAY,YACZC,EAAe1H,EAAgB,eAC/B2H,EAAmBN,EAAoB3C,IACvCkD,EAAmBP,EAAoBQ,UAAUL,GACjDM,EAAkB1I,OAAOqI,GACzBM,EAAU/L,EAAO2E,OACjBqH,EAAa9B,EAAW,OAAQ,aAChC+B,EAAiCpB,EAA+B/K,EAChEoM,EAAuB3M,EAAqBO,EAC5CqM,EAA4BxB,EAA4B7K,EACxDmD,EAA6B6H,EAA2BhL,EACxDsM,EAAarB,EAAO,WACpBsB,EAAyBtB,EAAO,cAChCuB,GAAyBvB,EAAO,6BAChCwB,GAAyBxB,EAAO,6BAChCyB,GAAwBzB,EAAO,OAC/B0B,GAAUzM,EAAOyM,QAEjBC,IAAcD,KAAYA,GAAQhB,KAAegB,GAAQhB,GAAWkB,UAGpEC,GAAsBtN,GAAeiB,GAAM,WAC7C,OAES,GAFFiK,EAAmB0B,EAAqB,GAAI,IAAK,CACtDW,IAAK,WAAc,OAAOX,EAAqBvK,KAAM,IAAK,CAAE9B,MAAO,IAAKiN,MACtEA,KACD,SAAUC,EAAGC,EAAGC,GACnB,IAAIC,EAA4BjB,EAA+BH,EAAiBkB,GAC5EE,UAAkCpB,EAAgBkB,GACtDd,EAAqBa,EAAGC,EAAGC,GACvBC,GAA6BH,IAAMjB,GACrCI,EAAqBJ,EAAiBkB,EAAGE,IAEzChB,EAEAiB,GAAO,SAAUC,EAAKC,GACxB,IAAIC,EAASlB,EAAWgB,GAAO5C,EAAmBuB,EAAQN,IAO1D,OANAE,EAAiB2B,EAAQ,CACvBC,KAAM/B,EACN4B,IAAKA,EACLC,YAAaA,IAEV/N,IAAagO,EAAOD,YAAcA,GAChCC,GAGLE,GAAWnD,EAAoB,SAAU3G,GAC3C,MAAoB,iBAANA,GACZ,SAAUA,GACZ,OAAON,OAAOM,aAAeqI,GAG3B0B,GAAkB,SAAwBV,EAAGC,EAAGC,GAC9CF,IAAMjB,GAAiB2B,GAAgBpB,EAAwBW,EAAGC,GACtE/F,EAAS6F,GACT,IAAInN,EAAM2K,EAAYyC,GAAG,GAEzB,OADA9F,EAAS+F,GACL5K,EAAI+J,EAAYxM,IACbqN,EAAWxJ,YAIVpB,EAAI0K,EAAGxB,IAAWwB,EAAExB,GAAQ3L,KAAMmN,EAAExB,GAAQ3L,IAAO,GACvDqN,EAAazC,EAAmByC,EAAY,CAAExJ,WAAYjE,EAAyB,GAAG,OAJjF6C,EAAI0K,EAAGxB,IAASW,EAAqBa,EAAGxB,EAAQ/L,EAAyB,EAAG,KACjFuN,EAAExB,GAAQ3L,IAAO,GAIVgN,GAAoBG,EAAGnN,EAAKqN,IAC9Bf,EAAqBa,EAAGnN,EAAKqN,IAGpCS,GAAoB,SAA0BX,EAAGY,GACnDzG,EAAS6F,GACT,IAAIa,EAAatD,EAAgBqD,GAC7BtH,EAAOoE,EAAWmD,GAAYC,OAAOC,GAAuBF,IAIhE,OAHAtC,EAASjF,GAAM,SAAUzG,GAClBN,IAAeyO,GAAsBrM,KAAKkM,EAAYhO,IAAM6N,GAAgBV,EAAGnN,EAAKgO,EAAWhO,OAE/FmN,GAGLiB,GAAU,SAAgBjB,EAAGY,GAC/B,YAAsB/L,IAAf+L,EAA2BnD,EAAmBuC,GAAKW,GAAkBlD,EAAmBuC,GAAIY,IAGjGI,GAAwB,SAA8BxK,GACxD,IAAIyJ,EAAIzC,EAAYhH,GAAG,GACnBE,EAAaR,EAA2BvB,KAAKC,KAAMqL,GACvD,QAAIrL,OAASmK,GAAmBzJ,EAAI+J,EAAYY,KAAO3K,EAAIgK,EAAwBW,QAC5EvJ,IAAepB,EAAIV,KAAMqL,KAAO3K,EAAI+J,EAAYY,IAAM3K,EAAIV,KAAM4J,IAAW5J,KAAK4J,GAAQyB,KAAKvJ,IAGlGwK,GAA4B,SAAkClB,EAAGC,GACnE,IAAItJ,EAAK4G,EAAgByC,GACrBnN,EAAM2K,EAAYyC,GAAG,GACzB,GAAItJ,IAAOoI,IAAmBzJ,EAAI+J,EAAYxM,IAASyC,EAAIgK,EAAwBzM,GAAnF,CACA,IAAI4D,EAAayI,EAA+BvI,EAAI9D,GAIpD,OAHI4D,IAAcnB,EAAI+J,EAAYxM,IAAUyC,EAAIqB,EAAI6H,IAAW7H,EAAG6H,GAAQ3L,KACxE4D,EAAWC,YAAa,GAEnBD,IAGL0K,GAAuB,SAA6BnB,GACtD,IAAIoB,EAAQhC,EAA0B7B,EAAgByC,IAClDqB,EAAS,GAIb,OAHA9C,EAAS6C,GAAO,SAAUvO,GACnByC,EAAI+J,EAAYxM,IAASyC,EAAI4I,EAAYrL,IAAMwO,EAAOC,KAAKzO,MAE3DwO,GAGLN,GAAyB,SAA+Bf,GAC1D,IAAIuB,EAAsBvB,IAAMjB,EAC5BqC,EAAQhC,EAA0BmC,EAAsBjC,EAAyB/B,EAAgByC,IACjGqB,EAAS,GAMb,OALA9C,EAAS6C,GAAO,SAAUvO,IACpByC,EAAI+J,EAAYxM,IAAU0O,IAAuBjM,EAAIyJ,EAAiBlM,IACxEwO,EAAOC,KAAKjC,EAAWxM,OAGpBwO,GAkHT,GA7GKhE,IACH2B,EAAU,WACR,GAAIpK,gBAAgBoK,EAAS,MAAMpI,UAAU,+BAC7C,IAAI0J,EAAe7H,UAAUjB,aAA2B3C,IAAjB4D,UAAU,GAA+B5B,OAAO4B,UAAU,SAA7B5D,EAChEwL,EAAMlC,EAAImC,GACVkB,EAAS,SAAU1O,GACjB8B,OAASmK,GAAiByC,EAAO7M,KAAK2K,EAAwBxM,GAC9DwC,EAAIV,KAAM4J,IAAWlJ,EAAIV,KAAK4J,GAAS6B,KAAMzL,KAAK4J,GAAQ6B,IAAO,GACrER,GAAoBjL,KAAMyL,EAAK5N,EAAyB,EAAGK,KAG7D,OADIP,GAAeoN,IAAYE,GAAoBd,EAAiBsB,EAAK,CAAEnD,cAAc,EAAMvB,IAAK6F,IAC7FpB,GAAKC,EAAKC,IAGnBnN,EAAS6L,EAAQN,GAAY,YAAY,WACvC,OAAOG,EAAiBjK,MAAMyL,OAGhClN,EAAS6L,EAAS,iBAAiB,SAAUsB,GAC3C,OAAOF,GAAKjC,EAAImC,GAAcA,MAGhCvC,EAA2BhL,EAAIiO,GAC/BxO,EAAqBO,EAAI2N,GACzB5C,EAA+B/K,EAAImO,GACnCvD,EAA0B5K,EAAI6K,EAA4B7K,EAAIoO,GAC9DtD,EAA4B9K,EAAIgO,GAEhC3C,EAA6BrL,EAAI,SAAU0O,GACzC,OAAOrB,GAAKnJ,EAAgBwK,GAAOA,IAGjClP,IAEF4M,EAAqBH,EAAQN,GAAY,cAAe,CACtDxB,cAAc,EACd4C,IAAK,WACH,OAAOjB,EAAiBjK,MAAM0L,eAG7BlD,GACHjK,EAAS4L,EAAiB,uBAAwBiC,GAAuB,CAAEU,QAAQ,MAKzF1O,EAAE,CAAEC,QAAQ,EAAMmN,MAAM,EAAMpK,QAASqH,EAAesE,MAAOtE,GAAiB,CAC5EzF,OAAQoH,IAGVT,EAASb,EAAW+B,KAAwB,SAAUgC,GACpDpD,EAAsBoD,MAGxBzO,EAAE,CAAEsF,OAAQmG,EAAQpF,MAAM,EAAMrD,QAASqH,GAAiB,CAGxD,IAAO,SAAUxK,GACf,IAAImH,EAASnD,OAAOhE,GACpB,GAAIyC,EAAIiK,GAAwBvF,GAAS,OAAOuF,GAAuBvF,GACvE,IAAIuG,EAASvB,EAAQhF,GAGrB,OAFAuF,GAAuBvF,GAAUuG,EACjCf,GAAuBe,GAAUvG,EAC1BuG,GAITqB,OAAQ,SAAgBC,GACtB,IAAKpB,GAASoB,GAAM,MAAMjL,UAAUiL,EAAM,oBAC1C,GAAIvM,EAAIkK,GAAwBqC,GAAM,OAAOrC,GAAuBqC,IAEtEC,UAAW,WAAcnC,IAAa,GACtCoC,UAAW,WAAcpC,IAAa,KAGxC3M,EAAE,CAAEsF,OAAQ,SAAUe,MAAM,EAAMrD,QAASqH,EAAesE,MAAOpP,GAAe,CAG9EwK,OAAQkE,GAGRe,eAAgBtB,GAGhBuB,iBAAkBtB,GAGlBvK,yBAA0B8K,KAG5BlO,EAAE,CAAEsF,OAAQ,SAAUe,MAAM,EAAMrD,QAASqH,GAAiB,CAG1D6E,oBAAqBf,GAGrBgB,sBAAuBpB,KAKzB/N,EAAE,CAAEsF,OAAQ,SAAUe,MAAM,EAAMrD,OAAQxC,GAAM,WAAcqK,EAA4B9K,EAAE,OAAU,CACpGoP,sBAAuB,SAA+BxL,GACpD,OAAOkH,EAA4B9K,EAAEmG,EAASvC,OAM9CsI,EAAY,CACd,IAAImD,IAAyB/E,GAAiB7J,GAAM,WAClD,IAAI+M,EAASvB,IAEb,MAA+B,UAAxBC,EAAW,CAACsB,KAEe,MAA7BtB,EAAW,CAAEc,EAAGQ,KAEc,MAA9BtB,EAAW5I,OAAOkK,OAGzBvN,EAAE,CAAEsF,OAAQ,OAAQe,MAAM,EAAMrD,OAAQoM,IAAyB,CAE/DC,UAAW,SAAmB1L,EAAI2L,EAAUC,GAC1C,IAEIC,EAFAC,EAAO,CAAC9L,GACRhB,EAAQ,EAEZ,MAAO8C,UAAUjB,OAAS7B,EAAO8M,EAAKnB,KAAK7I,UAAU9C,MAErD,GADA6M,EAAYF,GACP/O,EAAS+O,SAAoBzN,IAAP8B,KAAoB8J,GAAS9J,GAMxD,OALKuE,EAAQoH,KAAWA,EAAW,SAAUzP,EAAKC,GAEhD,GADwB,mBAAb0P,IAAyB1P,EAAQ0P,EAAU7N,KAAKC,KAAM/B,EAAKC,KACjE2N,GAAS3N,GAAQ,OAAOA,IAE/B2P,EAAK,GAAKH,EACHrD,EAAWyD,MAAM,KAAMD,MAO/BzD,EAAQN,GAAWC,IACtBjG,EAA4BsG,EAAQN,GAAYC,EAAcK,EAAQN,GAAWiE,SAInFjP,EAAesL,EAASP,GAExBP,EAAWM,IAAU,G,uBCtTrB,IAAIoE,EAAiB,EAAQ,QAEzBC,EAAuB,EAAQ,QAE/BC,EAA6B,EAAQ,QAErCC,EAAkB,EAAQ,QAE9B,SAASC,EAAe/H,EAAKgI,GAC3B,OAAOL,EAAe3H,IAAQ4H,EAAqB5H,EAAKgI,IAAMH,EAA2B7H,EAAKgI,IAAMF,IAGtGrQ,EAAOC,QAAUqQ,G,sBCZjB,IAAI/P,EAAS,EAAQ,QACjBM,EAAW,EAAQ,QAEnBmJ,EAAWzJ,EAAOyJ,SAElBwG,EAAS3P,EAASmJ,IAAanJ,EAASmJ,EAASyG,eAErDzQ,EAAOC,QAAU,SAAUgE,GACzB,OAAOuM,EAASxG,EAASyG,cAAcxM,GAAM,K,oCCN/C,IAAInD,EAAQ,EAAQ,QAIpB,SAAS4P,EAAGC,EAAGtQ,GACb,OAAOuQ,OAAOD,EAAGtQ,GAGnBJ,EAAQ4Q,cAAgB/P,GAAM,WAE5B,IAAIgQ,EAAKJ,EAAG,IAAK,KAEjB,OADAI,EAAGC,UAAY,EACW,MAAnBD,EAAGE,KAAK,WAGjB/Q,EAAQgR,aAAenQ,GAAM,WAE3B,IAAIgQ,EAAKJ,EAAG,KAAM,MAElB,OADAI,EAAGC,UAAY,EACU,MAAlBD,EAAGE,KAAK,W,uBCrBjB,IAAInQ,EAAW,EAAQ,QACnBwD,EAAU,EAAQ,QAClBE,EAAkB,EAAQ,QAE1B2M,EAAQ3M,EAAgB,SAI5BvE,EAAOC,QAAU,SAAUgE,GACzB,IAAIoC,EACJ,OAAOxF,EAASoD,UAAmC9B,KAA1BkE,EAAWpC,EAAGiN,MAA0B7K,EAA0B,UAAfhC,EAAQJ,M,oCCTtF,IAAIkN,EAAgC,EAAQ,QACxC1J,EAAW,EAAQ,QACnBjB,EAAW,EAAQ,QACnB4K,EAAW,EAAQ,QACnB3M,EAAY,EAAQ,QACpB4M,EAAyB,EAAQ,QACjCC,EAAqB,EAAQ,QAC7BC,EAAa,EAAQ,QAErB1M,EAAMF,KAAKE,IACXH,EAAMC,KAAKD,IACX8M,EAAQ7M,KAAK6M,MACbC,EAAuB,4BACvBC,EAAgC,oBAEhCC,EAAgB,SAAU1N,GAC5B,YAAc9B,IAAP8B,EAAmBA,EAAKE,OAAOF,IAIxCkN,EAA8B,UAAW,GAAG,SAAUS,EAASC,EAAeC,EAAiBC,GAC7F,IAAIC,EAA+CD,EAAOC,6CACtDC,EAAmBF,EAAOE,iBAC1BC,EAAoBF,EAA+C,IAAM,KAE7E,MAAO,CAGL,SAAiBG,EAAaC,GAC5B,IAAI9E,EAAI+D,EAAuBnP,MAC3B0N,OAA0BzN,GAAfgQ,OAA2BhQ,EAAYgQ,EAAYP,GAClE,YAAoBzP,IAAbyN,EACHA,EAAS3N,KAAKkQ,EAAa7E,EAAG8E,GAC9BP,EAAc5P,KAAKkC,OAAOmJ,GAAI6E,EAAaC,IAIjD,SAAUC,EAAQD,GAChB,IACIJ,GAAgDC,GACzB,kBAAjBG,IAA0E,IAA7CA,EAAa9Q,QAAQ4Q,GAC1D,CACA,IAAII,EAAMR,EAAgBD,EAAeQ,EAAQnQ,KAAMkQ,GACvD,GAAIE,EAAIC,KAAM,OAAOD,EAAIlS,MAG3B,IAAIoS,EAAK/K,EAAS4K,GACdI,EAAItO,OAAOjC,MAEXwQ,EAA4C,oBAAjBN,EAC1BM,IAAmBN,EAAejO,OAAOiO,IAE9C,IAAI7R,EAASiS,EAAGjS,OAChB,GAAIA,EAAQ,CACV,IAAIoS,EAAcH,EAAGI,QACrBJ,EAAGzB,UAAY,EAEjB,IAAI8B,EAAU,GACd,MAAO,EAAM,CACX,IAAIlE,EAAS4C,EAAWiB,EAAIC,GAC5B,GAAe,OAAX9D,EAAiB,MAGrB,GADAkE,EAAQjE,KAAKD,IACRpO,EAAQ,MAEb,IAAIuS,EAAW3O,OAAOwK,EAAO,IACZ,KAAbmE,IAAiBN,EAAGzB,UAAYO,EAAmBmB,EAAGrB,EAASoB,EAAGzB,WAAY4B,IAKpF,IAFA,IAAII,EAAoB,GACpBC,EAAqB,EAChBzC,EAAI,EAAGA,EAAIsC,EAAQ/N,OAAQyL,IAAK,CACvC5B,EAASkE,EAAQtC,GAUjB,IARA,IAAI0C,EAAU9O,OAAOwK,EAAO,IACxBuE,EAAWrO,EAAIH,EAAID,EAAUkK,EAAO1L,OAAQwP,EAAE3N,QAAS,GACvDqO,EAAW,GAMNC,EAAI,EAAGA,EAAIzE,EAAO7J,OAAQsO,IAAKD,EAASvE,KAAK+C,EAAchD,EAAOyE,KAC3E,IAAIC,EAAgB1E,EAAO2E,OAC3B,GAAIZ,EAAmB,CACrB,IAAIa,EAAe,CAACN,GAAS7E,OAAO+E,EAAUD,EAAUT,QAClCtQ,IAAlBkR,GAA6BE,EAAa3E,KAAKyE,GACnD,IAAItM,EAAc5C,OAAOiO,EAAapC,WAAM7N,EAAWoR,SAEvDxM,EAAcyM,EAAgBP,EAASR,EAAGS,EAAUC,EAAUE,EAAejB,GAE3Ec,GAAYF,IACdD,GAAqBN,EAAEgB,MAAMT,EAAoBE,GAAYnM,EAC7DiM,EAAqBE,EAAWD,EAAQnO,QAG5C,OAAOiO,EAAoBN,EAAEgB,MAAMT,KAKvC,SAASQ,EAAgBP,EAASS,EAAKR,EAAUC,EAAUE,EAAetM,GACxE,IAAI4M,EAAUT,EAAWD,EAAQnO,OAC7B8O,EAAIT,EAASrO,OACb+O,EAAUnC,EAKd,YAJsBvP,IAAlBkR,IACFA,EAAgB7M,EAAS6M,GACzBQ,EAAUpC,GAELI,EAAc5P,KAAK8E,EAAa8M,GAAS,SAAUC,EAAOC,GAC/D,IAAIC,EACJ,OAAQD,EAAGE,OAAO,IAChB,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,OAAOhB,EACjB,IAAK,IAAK,OAAOS,EAAID,MAAM,EAAGP,GAC9B,IAAK,IAAK,OAAOQ,EAAID,MAAME,GAC3B,IAAK,IACHK,EAAUX,EAAcU,EAAGN,MAAM,GAAI,IACrC,MACF,QACE,IAAIS,GAAKH,EACT,GAAU,IAANG,EAAS,OAAOJ,EACpB,GAAII,EAAIN,EAAG,CACT,IAAIvT,EAAImR,EAAM0C,EAAI,IAClB,OAAU,IAAN7T,EAAgByT,EAChBzT,GAAKuT,OAA8BzR,IAApBgR,EAAS9S,EAAI,GAAmB0T,EAAGE,OAAO,GAAKd,EAAS9S,EAAI,GAAK0T,EAAGE,OAAO,GACvFH,EAETE,EAAUb,EAASe,EAAI,GAE3B,YAAmB/R,IAAZ6R,EAAwB,GAAKA,U,oCClI1C,IAAI1T,EAAI,EAAQ,QACZ6T,EAAQ,EAAQ,QAAgCC,KAChD5O,EAAsB,EAAQ,QAC9BC,EAA0B,EAAQ,QAElCC,EAAgBF,EAAoB,QACpCG,EAAiBF,EAAwB,QAI7CnF,EAAE,CAAEsF,OAAQ,QAASC,OAAO,EAAMvC,QAASoC,IAAkBC,GAAkB,CAC7EyO,KAAM,SAActO,GAClB,OAAOqO,EAAMjS,KAAM4D,EAAYC,UAAUjB,OAAS,EAAIiB,UAAU,QAAK5D,O,oCCXzE,EAAQ,QACR,IAAI1B,EAAW,EAAQ,QACnBK,EAAQ,EAAQ,QAChByD,EAAkB,EAAQ,QAC1B8P,EAAa,EAAQ,QACrBrO,EAA8B,EAAQ,QAEtCsO,EAAU/P,EAAgB,WAE1BgQ,GAAiCzT,GAAM,WAIzC,IAAIgQ,EAAK,IAMT,OALAA,EAAGE,KAAO,WACR,IAAIrC,EAAS,GAEb,OADAA,EAAO2E,OAAS,CAAEjG,EAAG,KACdsB,GAEyB,MAA3B,GAAGpH,QAAQuJ,EAAI,WAKpBmB,EAAmB,WACrB,MAAkC,OAA3B,IAAI1K,QAAQ,IAAK,MADH,GAInBqK,EAAUrN,EAAgB,WAE1ByN,EAA+C,WACjD,QAAI,IAAIJ,IAC6B,KAA5B,IAAIA,GAAS,IAAK,MAFsB,GAS/C4C,GAAqC1T,GAAM,WAC7C,IAAIgQ,EAAK,OACL2D,EAAe3D,EAAGE,KACtBF,EAAGE,KAAO,WAAc,OAAOyD,EAAazE,MAAM9N,KAAM6D,YACxD,IAAI4I,EAAS,KAAK+F,MAAM5D,GACxB,OAAyB,IAAlBnC,EAAO7J,QAA8B,MAAd6J,EAAO,IAA4B,MAAdA,EAAO,MAG5D3O,EAAOC,QAAU,SAAU8B,EAAK+C,EAAQkM,EAAM/B,GAC5C,IAAIlD,EAASxH,EAAgBxC,GAEzB4S,GAAuB7T,GAAM,WAE/B,IAAIwM,EAAI,GAER,OADAA,EAAEvB,GAAU,WAAc,OAAO,GACZ,GAAd,GAAGhK,GAAKuL,MAGbsH,EAAoBD,IAAwB7T,GAAM,WAEpD,IAAI+T,GAAa,EACb/D,EAAK,IAkBT,MAhBY,UAAR/O,IAIF+O,EAAK,GAGLA,EAAG1N,YAAc,GACjB0N,EAAG1N,YAAYkR,GAAW,WAAc,OAAOxD,GAC/CA,EAAGgE,MAAQ,GACXhE,EAAG/E,GAAU,IAAIA,IAGnB+E,EAAGE,KAAO,WAAiC,OAAnB6D,GAAa,EAAa,MAElD/D,EAAG/E,GAAQ,KACH8I,KAGV,IACGF,IACAC,GACQ,YAAR7S,KACCwS,IACAtC,GACCD,IAEM,UAARjQ,IAAoByS,EACrB,CACA,IAAIO,EAAqB,IAAIhJ,GACzBiJ,EAAUhE,EAAKjF,EAAQ,GAAGhK,IAAM,SAAUC,EAAcqQ,EAAQqB,EAAKuB,EAAMC,GAC7E,OAAI7C,EAAOrB,OAASqD,EACdM,IAAwBO,EAInB,CAAE3C,MAAM,EAAMnS,MAAO2U,EAAmB9S,KAAKoQ,EAAQqB,EAAKuB,IAE5D,CAAE1C,MAAM,EAAMnS,MAAO4B,EAAaC,KAAKyR,EAAKrB,EAAQ4C,IAEtD,CAAE1C,MAAM,KACd,CACDN,iBAAkBA,EAClBD,6CAA8CA,IAE5CmD,EAAeH,EAAQ,GACvBI,EAAcJ,EAAQ,GAE1BvU,EAAS0D,OAAOxC,UAAWI,EAAKoT,GAChC1U,EAASmQ,OAAOjP,UAAWoK,EAAkB,GAAVjH,EAG/B,SAAUwC,EAAQ+N,GAAO,OAAOD,EAAYnT,KAAKqF,EAAQpF,KAAMmT,IAG/D,SAAU/N,GAAU,OAAO8N,EAAYnT,KAAKqF,EAAQpF,QAItD+M,GAAMjJ,EAA4B4K,OAAOjP,UAAUoK,GAAS,QAAQ,K,oCC1H1E,IAAIjL,EAAQ,EAAQ,QAEpBd,EAAOC,QAAU,SAAUqV,EAAa1Q,GACtC,IAAIwD,EAAS,GAAGkN,GAChB,QAASlN,GAAUtH,GAAM,WAEvBsH,EAAOnG,KAAK,KAAM2C,GAAY,WAAc,MAAM,GAAM,Q,kCCN5D,IAAItE,EAAI,EAAQ,QACZiV,EAAgB,EAAQ,QACxB1K,EAAkB,EAAQ,QAC1BrF,EAAsB,EAAQ,QAE9BgQ,EAAa,GAAGC,KAEhBC,EAAcH,GAAiB5R,OAC/B+B,EAAgBF,EAAoB,OAAQ,KAIhDlF,EAAE,CAAEsF,OAAQ,QAASC,OAAO,EAAMvC,OAAQoS,IAAgBhQ,GAAiB,CACzE+P,KAAM,SAAcE,GAClB,OAAOH,EAAWvT,KAAK4I,EAAgB3I,WAAqBC,IAAdwT,EAA0B,IAAMA,O,qBCflF,IAAI9V,EAAc,EAAQ,QACtBiB,EAAQ,EAAQ,QAChB2P,EAAgB,EAAQ,SAG5BzQ,EAAOC,SAAWJ,IAAgBiB,GAAM,WACtC,OAEQ,GAFD6C,OAAO2L,eAAemB,EAAc,OAAQ,IAAK,CACtDrD,IAAK,WAAc,OAAO,KACzBC,M,kCCPL,IAAI5M,EAAW,EAAQ,QACnBgH,EAAW,EAAQ,QACnB3G,EAAQ,EAAQ,QAChBgU,EAAQ,EAAQ,QAEhBc,EAAY,WACZC,EAAkBjF,OAAOjP,UACzBmU,EAAiBD,EAAgBD,GAEjCG,EAAcjV,GAAM,WAAc,MAA2D,QAApDgV,EAAe7T,KAAK,CAAE+T,OAAQ,IAAKlB,MAAO,SAEnFmB,EAAiBH,EAAe/G,MAAQ6G,GAIxCG,GAAeE,IACjBxV,EAASmQ,OAAOjP,UAAWiU,GAAW,WACpC,IAAIM,EAAIzO,EAASvF,MACbiU,EAAIhS,OAAO+R,EAAEF,QACbI,EAAKF,EAAEpB,MACPzU,EAAI8D,YAAchC,IAAPiU,GAAoBF,aAAatF,UAAY,UAAWiF,GAAmBf,EAAM7S,KAAKiU,GAAKE,GAC1G,MAAO,IAAMD,EAAI,IAAM9V,IACtB,CAAE2O,QAAQ,K,kCCtBf,IAAI/G,EAAY,EAAQ,QAEpBoO,EAAoB,SAAU1O,GAChC,IAAIG,EAASwO,EACbpU,KAAK6F,QAAU,IAAIJ,GAAE,SAAU4O,EAAWC,GACxC,QAAgBrU,IAAZ2F,QAAoC3F,IAAXmU,EAAsB,MAAMpS,UAAU,2BACnE4D,EAAUyO,EACVD,EAASE,KAEXtU,KAAK4F,QAAUG,EAAUH,GACzB5F,KAAKoU,OAASrO,EAAUqO,IAI1BtW,EAAOC,QAAQI,EAAI,SAAUsH,GAC3B,OAAO,IAAI0O,EAAkB1O,K,qBChB/B,SAAS8O,EAAgBC,GAIvB,OAHA1W,EAAOC,QAAUwW,EAAkB9S,OAAOgT,eAAiBhT,OAAOiT,eAAiB,SAAyBF,GAC1G,OAAOA,EAAEG,WAAalT,OAAOiT,eAAeF,IAEvCD,EAAgBC,GAGzB1W,EAAOC,QAAUwW,G,qBCPjB,IAAI3V,EAAQ,EAAQ,QAEpBd,EAAOC,SAAWa,GAAM,WACtB,SAASgW,KAET,OADAA,EAAEnV,UAAUyB,YAAc,KACnBO,OAAOiT,eAAe,IAAIE,KAASA,EAAEnV,c,qBCL9C,IAAI8I,EAAa,EAAQ,QACrBQ,EAA4B,EAAQ,QACpCE,EAA8B,EAAQ,QACtC1D,EAAW,EAAQ,QAGvBzH,EAAOC,QAAUwK,EAAW,UAAW,YAAc,SAAiBxG,GACpE,IAAI2C,EAAOqE,EAA0B5K,EAAEoH,EAASxD,IAC5CwL,EAAwBtE,EAA4B9K,EACxD,OAAOoP,EAAwB7I,EAAKwH,OAAOqB,EAAsBxL,IAAO2C,I,qBCT1E,SAASmQ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGThX,EAAOC,QAAU8W,G,uBCRjB,IAAIlX,EAAc,EAAQ,QACtBwL,EAA6B,EAAQ,QACrCtL,EAA2B,EAAQ,QACnC8K,EAAkB,EAAQ,QAC1BC,EAAc,EAAQ,QACtBlI,EAAM,EAAQ,QACdsU,EAAiB,EAAQ,QAEzB1K,EAAiC7I,OAAOD,yBAI5CzD,EAAQI,EAAIR,EAAc2M,EAAiC,SAAkCc,EAAGC,GAG9F,GAFAD,EAAIzC,EAAgByC,GACpBC,EAAIzC,EAAYyC,GAAG,GACf2J,EAAgB,IAClB,OAAO1K,EAA+Bc,EAAGC,GACzC,MAAOtH,IACT,GAAIrD,EAAI0K,EAAGC,GAAI,OAAOxN,GAA0BsL,EAA2BhL,EAAE4B,KAAKqL,EAAGC,GAAID,EAAEC,M,qBClB7F,IAAIhN,EAAS,EAAQ,QACjB4W,EAAe,EAAQ,QACvB/U,EAAU,EAAQ,QAClB4D,EAA8B,EAAQ,QAE1C,IAAK,IAAIoR,KAAmBD,EAAc,CACxC,IAAIE,EAAa9W,EAAO6W,GACpBE,EAAsBD,GAAcA,EAAW1V,UAEnD,GAAI2V,GAAuBA,EAAoBlV,UAAYA,EAAS,IAClE4D,EAA4BsR,EAAqB,UAAWlV,GAC5D,MAAO6D,GACPqR,EAAoBlV,QAAUA,K,qBCZlCpC,EAAOC,QAAU,SAAUgE,EAAIrC,EAAamN,GAC1C,KAAM9K,aAAcrC,GAClB,MAAMsC,UAAU,cAAgB6K,EAAOA,EAAO,IAAM,IAAM,cAC1D,OAAO9K,I,qBCHXjE,EAAOC,SAAU,G,qBCAjB,IAAIM,EAAS,EAAQ,QAErBP,EAAOC,QAAUM,G,uBCFjB,IAAID,EAAI,EAAQ,QACZmH,EAAW,EAAQ,QACnB/D,EAA2B,EAAQ,QAAmDrD,EAI1FC,EAAE,CAAEsF,OAAQ,UAAWe,MAAM,GAAQ,CACnC4Q,eAAgB,SAAwB3R,EAAQ4R,GAC9C,IAAIzT,EAAaL,EAAyB+D,EAAS7B,GAAS4R,GAC5D,QAAOzT,IAAeA,EAAWyG,sBAA8B5E,EAAO4R,O,uBCT1E,IAAIC,EAAoB,EAAQ,QAE5BC,EAAkB,EAAQ,QAE1BtH,EAA6B,EAAQ,QAErCuH,EAAoB,EAAQ,QAEhC,SAASC,EAAmBrP,GAC1B,OAAOkP,EAAkBlP,IAAQmP,EAAgBnP,IAAQ6H,EAA2B7H,IAAQoP,IAG9F3X,EAAOC,QAAU2X,G,qBCZjB,IAAIrX,EAAS,EAAQ,QACjBsX,EAAY,EAAQ,QAEpBC,EAAS,qBACTC,EAAQxX,EAAOuX,IAAWD,EAAUC,EAAQ,IAEhD9X,EAAOC,QAAU8X,G,qBCNjB,IAAIxX,EAAS,EAAQ,QACjB4W,EAAe,EAAQ,QACvBa,EAAuB,EAAQ,QAC/BhS,EAA8B,EAAQ,QACtCzB,EAAkB,EAAQ,QAE1BC,EAAWD,EAAgB,YAC3B0T,EAAgB1T,EAAgB,eAChC2T,EAAcF,EAAqBG,OAEvC,IAAK,IAAIf,KAAmBD,EAAc,CACxC,IAAIE,EAAa9W,EAAO6W,GACpBE,EAAsBD,GAAcA,EAAW1V,UACnD,GAAI2V,EAAqB,CAEvB,GAAIA,EAAoB9S,KAAc0T,EAAa,IACjDlS,EAA4BsR,EAAqB9S,EAAU0T,GAC3D,MAAOjS,GACPqR,EAAoB9S,GAAY0T,EAKlC,GAHKZ,EAAoBW,IACvBjS,EAA4BsR,EAAqBW,EAAeb,GAE9DD,EAAaC,GAAkB,IAAK,IAAI9B,KAAe0C,EAEzD,GAAIV,EAAoBhC,KAAiB0C,EAAqB1C,GAAc,IAC1EtP,EAA4BsR,EAAqBhC,EAAa0C,EAAqB1C,IACnF,MAAOrP,GACPqR,EAAoBhC,GAAe0C,EAAqB1C,O,qBC5BhE,SAAS8C,EAAgB1B,EAAGP,GAM1B,OALAnW,EAAOC,QAAUmY,EAAkBzU,OAAOgT,gBAAkB,SAAyBD,EAAGP,GAEtF,OADAO,EAAEG,UAAYV,EACPO,GAGF0B,EAAgB1B,EAAGP,GAG5BnW,EAAOC,QAAUmY,G,oCCRjB,IAAIvM,EAAW,EAAQ,QAAgCzJ,QACnDoD,EAAsB,EAAQ,QAC9BC,EAA0B,EAAQ,QAElCC,EAAgBF,EAAoB,WACpCG,EAAiBF,EAAwB,WAI7CzF,EAAOC,QAAYyF,GAAkBC,EAEjC,GAAGvD,QAFgD,SAAiB0D,GACtE,OAAO+F,EAAS3J,KAAM4D,EAAYC,UAAUjB,OAAS,EAAIiB,UAAU,QAAK5D,K,uBCX1E,IAAIwI,EAAgB,EAAQ,QAE5B3K,EAAOC,QAAU0K,IAEXzF,OAAO+J,MAEkB,iBAAnB/J,OAAOC,U,uBCNnB,IAAIsF,EAAa,EAAQ,QAEzBzK,EAAOC,QAAUwK,EAAW,YAAa,cAAgB,I,uBCFzD,IAAInK,EAAI,EAAQ,QACZmK,EAAa,EAAQ,QACrBxC,EAAY,EAAQ,QACpBR,EAAW,EAAQ,QACnB5G,EAAW,EAAQ,QACnBwJ,EAAS,EAAQ,QACjBgO,EAAO,EAAQ,QACfvX,EAAQ,EAAQ,QAEhBwX,EAAkB7N,EAAW,UAAW,aAMxC8N,EAAiBzX,GAAM,WACzB,SAASgW,KACT,QAASwB,GAAgB,cAA6B,GAAIxB,aAAcA,MAEtE0B,GAAY1X,GAAM,WACpBwX,GAAgB,kBAEdG,EAASF,GAAkBC,EAE/BlY,EAAE,CAAEsF,OAAQ,UAAWe,MAAM,EAAMrD,OAAQmV,EAAQxJ,KAAMwJ,GAAU,CACjEC,UAAW,SAAmBC,EAAQ5I,GACpC9H,EAAU0Q,GACVlR,EAASsI,GACT,IAAI6I,EAAY7S,UAAUjB,OAAS,EAAI6T,EAAS1Q,EAAUlC,UAAU,IACpE,GAAIyS,IAAaD,EAAgB,OAAOD,EAAgBK,EAAQ5I,EAAM6I,GACtE,GAAID,GAAUC,EAAW,CAEvB,OAAQ7I,EAAKjL,QACX,KAAK,EAAG,OAAO,IAAI6T,EACnB,KAAK,EAAG,OAAO,IAAIA,EAAO5I,EAAK,IAC/B,KAAK,EAAG,OAAO,IAAI4I,EAAO5I,EAAK,GAAIA,EAAK,IACxC,KAAK,EAAG,OAAO,IAAI4I,EAAO5I,EAAK,GAAIA,EAAK,GAAIA,EAAK,IACjD,KAAK,EAAG,OAAO,IAAI4I,EAAO5I,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAG5D,IAAI8I,EAAQ,CAAC,MAEb,OADAA,EAAMjK,KAAKoB,MAAM6I,EAAO9I,GACjB,IAAKsI,EAAKrI,MAAM2I,EAAQE,IAGjC,IAAIhT,EAAQ+S,EAAUjX,UAClBc,EAAW4H,EAAOxJ,EAASgF,GAASA,EAAQlC,OAAOhC,WACnDgN,EAASmK,SAAS9I,MAAM/N,KAAK0W,EAAQlW,EAAUsN,GACnD,OAAOlP,EAAS8N,GAAUA,EAASlM,M,qBC/CvC,IAAI8S,EAAgB,EAAQ,QACxBlE,EAAyB,EAAQ,QAErCrR,EAAOC,QAAU,SAAUgE,GACzB,OAAOsR,EAAclE,EAAuBpN,M,qBCL9C,IAAI8U,EAAK,EACLC,EAAUrU,KAAKsU,SAEnBjZ,EAAOC,QAAU,SAAUE,GACzB,MAAO,UAAYgE,YAAehC,IAARhC,EAAoB,GAAKA,GAAO,QAAU4Y,EAAKC,GAASlS,SAAS,M,kCCH7F,IAAIjH,EAAc,EAAQ,QACtBU,EAAS,EAAQ,QACjBC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBmC,EAAM,EAAQ,QACdyB,EAAU,EAAQ,QAClBpD,EAAoB,EAAQ,QAC5B6J,EAAc,EAAQ,QACtBhK,EAAQ,EAAQ,QAChBuJ,EAAS,EAAQ,QACjBmF,EAAsB,EAAQ,QAA8CnP,EAC5EqD,EAA2B,EAAQ,QAAmDrD,EACtFiP,EAAiB,EAAQ,QAAuCjP,EAChE8F,EAAO,EAAQ,QAA4BA,KAE3C+S,EAAS,SACTC,EAAe5Y,EAAO2Y,GACtBE,EAAkBD,EAAaxX,UAG/B0X,EAAiBhV,EAAQgG,EAAO+O,KAAqBF,EAIrDI,EAAW,SAAU1U,GACvB,IACI2U,EAAOC,EAAOC,EAAOC,EAASC,EAAQ7U,EAAQ7B,EAAO2W,EADrD3V,EAAK6G,EAAYlG,GAAU,GAE/B,GAAiB,iBAANX,GAAkBA,EAAGa,OAAS,EAGvC,GAFAb,EAAKkC,EAAKlC,GACVsV,EAAQtV,EAAG4V,WAAW,GACR,KAAVN,GAA0B,KAAVA,GAElB,GADAC,EAAQvV,EAAG4V,WAAW,GACR,KAAVL,GAA0B,MAAVA,EAAe,OAAOM,SACrC,GAAc,KAAVP,EAAc,CACvB,OAAQtV,EAAG4V,WAAW,IACpB,KAAK,GAAI,KAAK,GAAIJ,EAAQ,EAAGC,EAAU,GAAI,MAC3C,KAAK,GAAI,KAAK,IAAKD,EAAQ,EAAGC,EAAU,GAAI,MAC5C,QAAS,OAAQzV,EAInB,IAFA0V,EAAS1V,EAAGwP,MAAM,GAClB3O,EAAS6U,EAAO7U,OACX7B,EAAQ,EAAGA,EAAQ6B,EAAQ7B,IAI9B,GAHA2W,EAAOD,EAAOE,WAAW5W,GAGrB2W,EAAO,IAAMA,EAAOF,EAAS,OAAOI,IACxC,OAAOC,SAASJ,EAAQF,GAE5B,OAAQxV,GAKZ,GAAIzD,EAAS0Y,GAASC,EAAa,UAAYA,EAAa,QAAUA,EAAa,SAAU,CAS3F,IARA,IAcqBhZ,EAdjB6Z,EAAgB,SAAgB5Z,GAClC,IAAI6D,EAAK8B,UAAUjB,OAAS,EAAI,EAAI1E,EAChC8C,EAAQhB,KACZ,OAAOgB,aAAiB8W,IAElBX,EAAiBvY,GAAM,WAAcsY,EAAgBnJ,QAAQhO,KAAKiB,MAAamB,EAAQnB,IAAUgW,GACjGjY,EAAkB,IAAIkY,EAAaG,EAASrV,IAAMf,EAAO8W,GAAiBV,EAASrV,IAElF2C,EAAO/G,EAAc2P,EAAoB2J,GAAgB,6KAMhEzE,MAAM,KAAMtB,EAAI,EAAQxM,EAAK9B,OAASsO,EAAGA,IACrCxQ,EAAIuW,EAAchZ,EAAMyG,EAAKwM,MAAQxQ,EAAIoX,EAAe7Z,IAC1DmP,EAAe0K,EAAe7Z,EAAKuD,EAAyByV,EAAchZ,IAG9E6Z,EAAcrY,UAAYyX,EAC1BA,EAAgBhW,YAAc4W,EAC9BvZ,EAASF,EAAQ2Y,EAAQc,K,uBC5E3B,IAAIlZ,EAAQ,EAAQ,QAChByD,EAAkB,EAAQ,QAC1B0V,EAAa,EAAQ,QAErB3F,EAAU/P,EAAgB,WAE9BvE,EAAOC,QAAU,SAAUqV,GAIzB,OAAO2E,GAAc,KAAOnZ,GAAM,WAChC,IAAIoZ,EAAQ,GACR9W,EAAc8W,EAAM9W,YAAc,GAItC,OAHAA,EAAYkR,GAAW,WACrB,MAAO,CAAE6F,IAAK,IAE2B,IAApCD,EAAM5E,GAAa8E,SAASD,S,uBChBvC,IAAI1S,EAAW,EAAQ,QACnBQ,EAAY,EAAQ,QACpB1D,EAAkB,EAAQ,QAE1B+P,EAAU/P,EAAgB,WAI9BvE,EAAOC,QAAU,SAAUqN,EAAG+M,GAC5B,IACI5H,EADA9K,EAAIF,EAAS6F,GAAGlK,YAEpB,YAAajB,IAANwF,QAAiDxF,IAA7BsQ,EAAIhL,EAASE,GAAG2M,IAAyB+F,EAAqBpS,EAAUwK,K,qBCXrG,IAAIlS,EAAS,EAAQ,QAErBP,EAAOC,QAAUM,EAAO+I,S,uBCFxB,IAAIxI,EAAQ,EAAQ,QAGpBd,EAAOC,SAAWa,GAAM,WACtB,OAA8E,GAAvE6C,OAAO2L,eAAe,GAAI,EAAG,CAAElC,IAAK,WAAc,OAAO,KAAQ,O,kCCH1E,IAAIkN,EAAoB,EAAQ,QAA+BA,kBAC3DjQ,EAAS,EAAQ,QACjBtK,EAA2B,EAAQ,QACnCiB,EAAiB,EAAQ,QACzBsD,EAAY,EAAQ,QAEpBiW,EAAa,WAAc,OAAOrY,MAEtClC,EAAOC,QAAU,SAAUua,EAAqBC,EAAMnY,GACpD,IAAI2V,EAAgBwC,EAAO,YAI3B,OAHAD,EAAoB7Y,UAAY0I,EAAOiQ,EAAmB,CAAEhY,KAAMvC,EAAyB,EAAGuC,KAC9FtB,EAAewZ,EAAqBvC,GAAe,GAAO,GAC1D3T,EAAU2T,GAAiBsC,EACpBC,I,qBCTTxa,EAAOC,QAAU,SAASya,GACtBxY,KAAKyY,IAAK,EACVzY,KAAK0Y,MAAQ,EAGiB,KAA1BF,EAAazG,OAAO,KACpByG,EAAeA,EAAaG,OAAO,EAAE,IAGzCH,EAAeA,EAAanT,QAAQ,KAAK,IACzCmT,EAAeA,EAAalT,cAI5B,IAAIsT,EAAgB,CAChBC,UAAW,SACXC,aAAc,SACdC,KAAM,SACNC,WAAY,SACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,SACPC,eAAgB,SAChBC,KAAM,SACNC,WAAY,SACZC,MAAO,SACPC,UAAW,SACXC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,SAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,SACNC,SAAU,SACVC,SAAU,SACVC,cAAe,SACfC,SAAU,SACVC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,eAAgB,SAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,SACTC,WAAY,SACZC,aAAc,SACdC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,SAAU,SACVC,YAAa,SACbC,QAAS,SACTC,WAAY,SACZC,SAAU,SACVC,UAAW,SACXC,YAAa,SACbC,YAAa,SACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,SACNC,MAAO,SACPC,YAAa,SACbC,SAAU,SACVC,QAAS,SACTC,UAAY,SACZC,OAAS,SACTC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,SACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,YAAa,SACbC,cAAe,SACfC,aAAc,SACdC,eAAgB,SAChBC,eAAgB,SAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,SACNC,UAAW,SACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,SACRC,iBAAkB,SAClBC,WAAY,SACZC,aAAc,SACdC,aAAc,SACdC,eAAgB,SAChBC,gBAAiB,SACjBC,kBAAmB,SACnBC,gBAAiB,SACjBC,gBAAiB,SACjBC,aAAc,SACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,UAAW,SACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,SACRC,cAAe,SACfC,IAAK,SACLC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,UAAW,SACXC,KAAM,SACNC,YAAa,SACbC,UAAW,SACXC,IAAK,SACLC,KAAM,SACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,UAAW,SACXC,MAAO,SACPC,MAAO,SACPC,WAAY,SACZC,OAAQ,SACRC,YAAa,UAEjBpJ,EAAeI,EAAcJ,IAAiBA,EAqD9C,IAjDA,IAAIqJ,EAAa,CACb,CACIjT,GAAI,kEACJkT,QAAS,CAAC,0BAA2B,yBACrC3a,QAAS,SAAU4a,GACf,MAAO,CACHlK,SAASkK,EAAK,IACdlK,SAASkK,EAAK,IACdlK,SAASkK,EAAK,IACdC,WAAWD,EAAK,OAI5B,CACInT,GAAI,+CACJkT,QAAS,CAAC,oBAAqB,oBAC/B3a,QAAS,SAAU4a,GACf,MAAO,CACHlK,SAASkK,EAAK,IACdlK,SAASkK,EAAK,IACdlK,SAASkK,EAAK,OAI1B,CACInT,GAAI,qDACJkT,QAAS,CAAC,UAAW,UACrB3a,QAAS,SAAU4a,GACf,MAAO,CACHlK,SAASkK,EAAK,GAAI,IAClBlK,SAASkK,EAAK,GAAI,IAClBlK,SAASkK,EAAK,GAAI,OAI9B,CACInT,GAAI,qDACJkT,QAAS,CAAC,OAAQ,OAClB3a,QAAS,SAAU4a,GACf,MAAO,CACHlK,SAASkK,EAAK,GAAKA,EAAK,GAAI,IAC5BlK,SAASkK,EAAK,GAAKA,EAAK,GAAI,IAC5BlK,SAASkK,EAAK,GAAKA,EAAK,GAAI,QAOnC1T,EAAI,EAAGA,EAAIwT,EAAWjf,OAAQyL,IAAK,CACxC,IAAIO,EAAKiT,EAAWxT,GAAGO,GACnBqT,EAAYJ,EAAWxT,GAAGlH,QAC1B4a,EAAOnT,EAAGE,KAAK0J,GACnB,GAAIuJ,EAAM,CACN,IAAIG,EAAWD,EAAUF,GACzB/hB,KAAKmiB,EAAID,EAAS,GAClBliB,KAAKoiB,EAAIF,EAAS,GAClBliB,KAAKqiB,EAAIH,EAAS,GACdA,EAAStf,OAAS,IAClB5C,KAAK0Y,MAAQwJ,EAAS,IAE1BliB,KAAKyY,IAAK,GAMlBzY,KAAKmiB,EAAKniB,KAAKmiB,EAAI,GAAKG,MAAMtiB,KAAKmiB,GAAM,EAAMniB,KAAKmiB,EAAI,IAAO,IAAMniB,KAAKmiB,EAC1EniB,KAAKoiB,EAAKpiB,KAAKoiB,EAAI,GAAKE,MAAMtiB,KAAKoiB,GAAM,EAAMpiB,KAAKoiB,EAAI,IAAO,IAAMpiB,KAAKoiB,EAC1EpiB,KAAKqiB,EAAKriB,KAAKqiB,EAAI,GAAKC,MAAMtiB,KAAKqiB,GAAM,EAAMriB,KAAKqiB,EAAI,IAAO,IAAMriB,KAAKqiB,EAC1EriB,KAAK0Y,MAAS1Y,KAAK0Y,MAAQ,EAAK,EAAM1Y,KAAK0Y,MAAQ,GAAO4J,MAAMtiB,KAAK0Y,OAAU,EAAM1Y,KAAK0Y,MAG1F1Y,KAAKuiB,MAAQ,WACT,MAAO,OAASviB,KAAKmiB,EAAI,KAAOniB,KAAKoiB,EAAI,KAAOpiB,KAAKqiB,EAAI,KAE7DriB,KAAKwiB,OAAS,WACV,MAAO,QAAUxiB,KAAKmiB,EAAI,KAAOniB,KAAKoiB,EAAI,KAAOpiB,KAAKqiB,EAAI,KAAOriB,KAAK0Y,MAAQ,KAElF1Y,KAAKyiB,MAAQ,WACT,IAAIN,EAAIniB,KAAKmiB,EAAEvd,SAAS,IACpBwd,EAAIpiB,KAAKoiB,EAAExd,SAAS,IACpByd,EAAIriB,KAAKqiB,EAAEzd,SAAS,IAIxB,OAHgB,GAAZud,EAAEvf,SAAauf,EAAI,IAAMA,GACb,GAAZC,EAAExf,SAAawf,EAAI,IAAMA,GACb,GAAZC,EAAEzf,SAAayf,EAAI,IAAMA,GACtB,IAAMF,EAAIC,EAAIC,GAIzBriB,KAAK0iB,WAAa,WAId,IAFA,IAAIC,EAAW,IAAIzf,MAEVmL,EAAI,EAAGA,EAAIwT,EAAWjf,OAAQyL,IAEnC,IADA,IAAIyT,EAAUD,EAAWxT,GAAGyT,QACnB5Q,EAAI,EAAGA,EAAI4Q,EAAQlf,OAAQsO,IAChCyR,EAASA,EAAS/f,QAAUkf,EAAQ5Q,GAI5C,IAAK,IAAI0R,KAAMhK,EACX+J,EAASA,EAAS/f,QAAUggB,EAGhC,IAAIC,EAAM/a,SAASyG,cAAc,MACjCsU,EAAIC,aAAa,KAAM,qBACvB,IAASzU,EAAI,EAAGA,EAAIsU,EAAS/f,OAAQyL,IACjC,IACI,IAAI0U,EAAYjb,SAASyG,cAAc,MACnCyU,EAAa,IAAIC,SAASN,EAAStU,IACnC6U,EAAcpb,SAASyG,cAAc,OACzC2U,EAAYC,MAAMC,QACV,oDAEkBJ,EAAWP,QAF7B,WAGaO,EAAWP,QAEhCS,EAAYG,YAAYvb,SAASC,eAAe,SAChD,IAAIub,EAAkBxb,SAASC,eAC3B,IAAM4a,EAAStU,GAAK,OAAS2U,EAAWT,QAAU,OAASS,EAAWP,SAE1EM,EAAUM,YAAYH,GACtBH,EAAUM,YAAYC,GACtBT,EAAIQ,YAAYN,GAElB,MAAMQ,IAEZ,OAAOV,K,qBCzSf,IAAIxgB,EAAkB,EAAQ,QAC1BD,EAAY,EAAQ,QAEpBE,EAAWD,EAAgB,YAC3BgG,EAAiBnF,MAAMzD,UAG3B3B,EAAOC,QAAU,SAAUgE,GACzB,YAAc9B,IAAP8B,IAAqBK,EAAUc,QAAUnB,GAAMsG,EAAe/F,KAAcP,K,qBCRrF,SAASyhB,EAAkBnd,EAAKod,IACnB,MAAPA,GAAeA,EAAMpd,EAAIzD,UAAQ6gB,EAAMpd,EAAIzD,QAE/C,IAAK,IAAIyL,EAAI,EAAGqV,EAAO,IAAIxgB,MAAMugB,GAAMpV,EAAIoV,EAAKpV,IAC9CqV,EAAKrV,GAAKhI,EAAIgI,GAGhB,OAAOqV,EAGT5lB,EAAOC,QAAUylB,G,uBCVjB,IAAI7e,EAAwB,EAAQ,QAChCpG,EAAW,EAAQ,QACnBqG,EAAW,EAAQ,QAIlBD,GACHpG,EAASkD,OAAOhC,UAAW,WAAYmF,EAAU,CAAEkI,QAAQ,K,qBCP7D,SAAS6W,EAAkBjgB,EAAQkgB,GACjC,IAAK,IAAIvV,EAAI,EAAGA,EAAIuV,EAAMhhB,OAAQyL,IAAK,CACrC,IAAIxM,EAAa+hB,EAAMvV,GACvBxM,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWyG,cAAe,EACtB,UAAWzG,IAAYA,EAAWgiB,UAAW,GACjDpiB,OAAO2L,eAAe1J,EAAQ7B,EAAW5D,IAAK4D,IAIlD,SAASiiB,EAAapkB,EAAaqkB,EAAYC,GAG7C,OAFID,GAAYJ,EAAkBjkB,EAAYD,UAAWskB,GACrDC,GAAaL,EAAkBjkB,EAAaskB,GACzCtkB,EAGT5B,EAAOC,QAAU+lB,G,uBChBjB,IAAIpjB,EAAM,EAAQ,QACd4D,EAAW,EAAQ,QACnB+E,EAAY,EAAQ,QACpB4a,EAA2B,EAAQ,QAEnCC,EAAW7a,EAAU,YACrBc,EAAkB1I,OAAOhC,UAI7B3B,EAAOC,QAAUkmB,EAA2BxiB,OAAOiT,eAAiB,SAAUtJ,GAE5E,OADAA,EAAI9G,EAAS8G,GACT1K,EAAI0K,EAAG8Y,GAAkB9Y,EAAE8Y,GACH,mBAAjB9Y,EAAElK,aAA6BkK,aAAaA,EAAElK,YAChDkK,EAAElK,YAAYzB,UACd2L,aAAa3J,OAAS0I,EAAkB,O,oCCdnD,IAAIga,EAAc,EAAQ,QACtBC,EAAgB,EAAQ,QAExBC,EAAa3V,OAAOjP,UAAUqP,KAI9Ba,EAAgB1N,OAAOxC,UAAU4F,QAEjCif,EAAcD,EAEdE,EAA2B,WAC7B,IAAIC,EAAM,IACNC,EAAM,MAGV,OAFAJ,EAAWtkB,KAAKykB,EAAK,KACrBH,EAAWtkB,KAAK0kB,EAAK,KACI,IAAlBD,EAAI3V,WAAqC,IAAlB4V,EAAI5V,UALL,GAQ3BF,EAAgByV,EAAczV,eAAiByV,EAAcrV,aAG7D2V,OAAuCzkB,IAAvB,OAAO6O,KAAK,IAAI,GAEhC6V,EAAQJ,GAA4BG,GAAiB/V,EAErDgW,IACFL,EAAc,SAAc9S,GAC1B,IACI3C,EAAW+V,EAAQhT,EAAOvD,EAD1BO,EAAK5O,KAEL6kB,EAASlW,GAAiBC,EAAGiW,OAC7BjS,EAAQuR,EAAYpkB,KAAK6O,GACzBkF,EAASlF,EAAGkF,OACZgR,EAAa,EACbC,EAAUvT,EA+Cd,OA7CIqT,IACFjS,EAAQA,EAAMvN,QAAQ,IAAK,KACC,IAAxBuN,EAAMxT,QAAQ,OAChBwT,GAAS,KAGXmS,EAAU9iB,OAAOuP,GAAKD,MAAM3C,EAAGC,WAE3BD,EAAGC,UAAY,KAAOD,EAAGoW,WAAapW,EAAGoW,WAAuC,OAA1BxT,EAAI5C,EAAGC,UAAY,MAC3EiF,EAAS,OAASA,EAAS,IAC3BiR,EAAU,IAAMA,EAChBD,KAIFF,EAAS,IAAIlW,OAAO,OAASoF,EAAS,IAAKlB,IAGzC8R,IACFE,EAAS,IAAIlW,OAAO,IAAMoF,EAAS,WAAYlB,IAE7C2R,IAA0B1V,EAAYD,EAAGC,WAE7C+C,EAAQyS,EAAWtkB,KAAK8kB,EAASD,EAAShW,EAAImW,GAE1CF,EACEjT,GACFA,EAAMqT,MAAQrT,EAAMqT,MAAM1T,MAAMuT,GAChClT,EAAM,GAAKA,EAAM,GAAGL,MAAMuT,GAC1BlT,EAAM7Q,MAAQ6N,EAAGC,UACjBD,EAAGC,WAAa+C,EAAM,GAAGhP,QACpBgM,EAAGC,UAAY,EACb0V,GAA4B3S,IACrChD,EAAGC,UAAYD,EAAGvQ,OAASuT,EAAM7Q,MAAQ6Q,EAAM,GAAGhP,OAASiM,GAEzD6V,GAAiB9S,GAASA,EAAMhP,OAAS,GAG3C+M,EAAc5P,KAAK6R,EAAM,GAAIgT,GAAQ,WACnC,IAAKvW,EAAI,EAAGA,EAAIxK,UAAUjB,OAAS,EAAGyL,SACfpO,IAAjB4D,UAAUwK,KAAkBuD,EAAMvD,QAAKpO,MAK1C2R,IAIX9T,EAAOC,QAAUumB,G,oCCtFjB,SAASY,EAAQC,GAaf,OATED,EADoB,oBAAXliB,QAAoD,kBAApBA,OAAOC,SACtC,SAAUkiB,GAClB,cAAcA,GAGN,SAAUA,GAClB,OAAOA,GAAyB,oBAAXniB,QAAyBmiB,EAAIjkB,cAAgB8B,QAAUmiB,IAAQniB,OAAOvD,UAAY,gBAAkB0lB,GAItHD,EAAQC,GAGjB,SAASC,EAAgB7kB,EAAUb,GACjC,KAAMa,aAAoBb,GACxB,MAAM,IAAIsC,UAAU,qCAlBxB,kCAkEA,IAAIqjB,EAAW,CAAC,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,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,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,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,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IA4DvgC,SAASC,EAAuBC,EAAQC,EAAMC,EAAMC,E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","file":"js/canvg.6b9467e9.js","sourcesContent":["var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\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 nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n // eslint-disable-next-line max-len\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\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\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, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], that, 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, 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 nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return 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;","var classof = require('../internals/classof');\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 it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('every');\n\n// `Array.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\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.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\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.github.io/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","'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.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var 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 path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\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 // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\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 (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, 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 wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\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 propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\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 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';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\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($Symbol[PROTOTYPE]);\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 isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(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 || $propertyIsEnumerable.call(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 = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(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 (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(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 (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(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 redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\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($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: 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 // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\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.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $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 $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $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 (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\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.github.io/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 fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(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 = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(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 nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('some');\n\n// `Array.prototype.some` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\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 return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\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\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 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\nmodule.exports = function (KEY, length, exec, 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 (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar aFunction = require('../internals/a-function');\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 = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\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;","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\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","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","module.exports = false;\n","var global = require('../internals/global');\n\nmodule.exports = global;\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.github.io/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","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\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\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\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","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar bind = require('../internals/function-bind');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\n\n// `Reflect.construct` method\n// https://tc39.github.io/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});\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\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 aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(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 $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\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 trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(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 = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(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.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\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,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\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 anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/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 : aFunction(S);\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\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) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\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 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","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;","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\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 return Constructor;\n}\n\nmodule.exports = _createClass;","var has = require('../internals/has');\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 ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && 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 = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\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} useOffsetWidth\n * @returns {undefined}\n */\n\nfunction processImage(img, canvas, radius, blurAlphaChannel, useOffsetWidth) {\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 = useOffsetWidth ? '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 canvas.style.width = w + 'px';\n canvas.style.height = h + 'px';\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 global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\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 (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\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 = String(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 arrayLikeToArray = require(\"./arrayLikeToArray\");\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;","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.github.io/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\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 arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/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 || !USES_TO_LENGTH }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\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 (typeof Constructor == 'function' && (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 nativeSlice.call(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 IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\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;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\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 (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['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 >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\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(promise, 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 then.call(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 state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, 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 (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\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 (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, 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(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === 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 then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\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 && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(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 values.push(undefined);\n remaining++;\n $promiseResolve.call(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 // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(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 = toLength(O.length);\n result = new C(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","// 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","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(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.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(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\nmodule.exports = _typeof;","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var 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]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\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 Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","var path = require('../internals/path');\nvar has = require('../internals/has');\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 (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\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.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/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","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.github.io/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\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 defineIterator = require('../internals/define-iterator');\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.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/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.github.io/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.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\n\nvar nativeApply = getBuiltIn('Reflect', 'apply');\nvar functionApply = Function.apply;\n\n// MS Edge argumentsList argument is optional\nvar OPTIONAL_ARGUMENTS_LIST = !fails(function () {\n nativeApply(function () { /* empty */ });\n});\n\n// `Reflect.apply` method\n// https://tc39.github.io/ecma262/#sec-reflect.apply\n$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {\n apply: function apply(target, thisArgument, argumentsList) {\n aFunction(target);\n anObject(argumentsList);\n return nativeApply\n ? nativeApply(target, thisArgument, argumentsList)\n : functionApply.call(target, thisArgument, argumentsList);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\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 (!has(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 (!has(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 && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\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.github.io/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 aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` 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 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, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? 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.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\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.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\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\");\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get;\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(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nmodule.exports = _get;","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!(argsLength in factories)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.github.io/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = slice.call(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = partArgs.concat(slice.call(arguments));\n return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n };\n if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n return boundFunction;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\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;","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;","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\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","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_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;","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 getPrototypeOf = require(\"./getPrototypeOf\");\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;","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\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\nvar nativeStartsWith = ''.startsWith;\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.github.io/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 = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith\n ? nativeStartsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","module.exports = require(\"regenerator-runtime\");\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","module.exports = {};\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\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","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var 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 typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'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 toLength = require('../internals/to-length');\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');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\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.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\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 = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\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 = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.github.io/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","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","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;","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\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 callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\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 = String(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 nativeSplit.call(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 = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(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 || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(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 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/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 (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\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 (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', 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 = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/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","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = [].reverse;\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.github.io/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\n if (isArray(this)) this.length = this.length;\n return nativeReverse.call(this);\n }\n});\n","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","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\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++], Properties[key]);\n return O;\n};\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\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\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\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\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\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 C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\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, IS_MAP);\n });\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 redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 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 // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\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 // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\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 // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n defineIterator(C, 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 // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\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;","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","exports.f = Object.getOwnPropertySymbols;\n","var anObject = require('../internals/an-object');\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 // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(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(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(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 (classof(process) == 'process') {\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, 1);\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 typeof postMessage == 'function' &&\n !global.importScripts &&\n !fails(post) &&\n location.protocol !== 'file:'\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 anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\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.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\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 : String(arguments[0]);\n var result = this instanceof SymbolWrapper\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 copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\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","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar 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 redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\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 (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(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#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\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 redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (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 new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","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.github.io/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 $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var setPrototypeOf = require(\"./setPrototypeOf\");\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 if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = 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 /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\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.github.io/ecma262/#sec-object.create\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 : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n"],"sourceRoot":""}