{"version":3,"file":"static/js/main.518b380d.js","mappings":"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","sources":["../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/fast-deep-equal/es6/react.js","../node_modules/fast-deep-equal/react.js","../node_modules/invariant/browser.js","../node_modules/json2mq/index.js","../node_modules/lodash.throttle/index.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/lottie-web/build/player/lottie_light.js","../node_modules/object-assign/index.js","../node_modules/picocolors/picocolors.browser.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-lottie-player/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-lottie-player/node_modules/object-assign/index.js","../node_modules/react-lottie-player/node_modules/react-is/cjs/react-is.development.js","../node_modules/react-lottie-player/node_modules/react-is/index.js","../node_modules/react-lottie-player/node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-lottie-player/node_modules/prop-types/checkPropTypes.js","../node_modules/react-lottie-player/node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/react-lottie-player/node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/react-lottie-player/node_modules/prop-types/index.js","../node_modules/react-lottie-player/src/LottiePlayerLight.js","../node_modules/react-lottie-player/src/makeLottiePlayer.js","../node_modules/react-scroll/modules/components/Button.js","../node_modules/react-scroll/modules/components/Element.js","../node_modules/react-scroll/modules/components/Link.js","../node_modules/react-scroll/modules/index.js","../node_modules/react-scroll/modules/mixins/Helpers.js","../node_modules/react-scroll/modules/mixins/animate-scroll.js","../node_modules/react-scroll/modules/mixins/cancel-events.js","../node_modules/react-scroll/modules/mixins/passive-event-listeners.js","../node_modules/react-scroll/modules/mixins/scroll-element.js","../node_modules/react-scroll/modules/mixins/scroll-events.js","../node_modules/react-scroll/modules/mixins/scroll-hash.js","../node_modules/react-scroll/modules/mixins/scroll-link.js","../node_modules/react-scroll/modules/mixins/scroll-spy.js","../node_modules/react-scroll/modules/mixins/scroller.js","../node_modules/react-scroll/modules/mixins/smooth.js","../node_modules/react-scroll/modules/mixins/utils.js","../node_modules/react-side-effect/lib/index.js","../node_modules/react-tsparticles/cjs/particles.js","../node_modules/react-tsparticles/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/rfdc/default.js","../node_modules/rfdc/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/tailwindcss/colors.js","../node_modules/tailwindcss/lib/public/colors.js","../node_modules/tailwindcss/lib/util/log.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/tsparticles-engine/esm/Utils/EventDispatcher.js","../node_modules/tsparticles-engine/esm/Core/Utils/Vector.js","../node_modules/tsparticles-engine/esm/Utils/NumberUtils.js","../node_modules/tsparticles-engine/esm/Options/Classes/OptionsColor.js","../node_modules/tsparticles-engine/esm/Options/Classes/Background/Background.js","../node_modules/tsparticles-engine/esm/Options/Classes/BackgroundMask/BackgroundMaskCover.js","../node_modules/tsparticles-engine/esm/Options/Classes/BackgroundMask/BackgroundMask.js","../node_modules/tsparticles-engine/esm/Options/Classes/FullScreen/FullScreen.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/ClickEvent.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/DivEvent.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/Parallax.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/HoverEvent.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/Events.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Attract.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Bounce.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/BubbleBase.js","../node_modules/tsparticles-engine/esm/Options/Classes/Options.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/BubbleDiv.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Bubble.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/ConnectLinks.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Connect.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/GrabLinks.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Grab.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/LightGradient.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/LightArea.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/LightShadow.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Light.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Push.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Remove.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/RepulseBase.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/RepulseDiv.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Repulse.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Slow.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Trail.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Modes.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Interactivity.js","../node_modules/tsparticles-engine/esm/Options/Classes/ManualParticle.js","../node_modules/tsparticles-engine/esm/Options/Classes/Motion/MotionReduce.js","../node_modules/tsparticles-engine/esm/Options/Classes/Motion/Motion.js","../node_modules/tsparticles-engine/esm/Options/Classes/Responsive.js","../node_modules/tsparticles-engine/esm/Options/Classes/Theme/ThemeDefault.js","../node_modules/tsparticles-engine/esm/Options/Classes/Theme/Theme.js","../node_modules/tsparticles-engine/esm/Options/Classes/ColorAnimation.js","../node_modules/tsparticles-engine/esm/Options/Classes/HslAnimation.js","../node_modules/tsparticles-engine/esm/Options/Classes/AnimatableColor.js","../node_modules/tsparticles-engine/esm/Options/Classes/AnimatableGradient.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Collisions/CollisionsOverlap.js","../node_modules/tsparticles-engine/esm/Options/Classes/Random.js","../node_modules/tsparticles-engine/esm/Options/Classes/ValueWithRandom.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Bounce/ParticlesBounceFactor.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Bounce/ParticlesBounce.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Collisions/Collisions.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Destroy/SplitFactor.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Destroy/SplitRate.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Destroy/Split.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Destroy/Destroy.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Life/LifeDelay.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Life/LifeDuration.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Life/Life.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Links/LinksShadow.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Links/LinksTriangle.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Links/Links.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/MoveAngle.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/MoveAttract.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/MoveGravity.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/Path/MovePathDelay.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/Path/MovePath.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/MoveTrail.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/OutModes.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/Spin.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/Move.js","../node_modules/tsparticles-engine/esm/Options/Classes/AnimationOptions.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Opacity/OpacityAnimation.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Opacity/Opacity.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Orbit/OrbitRotation.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Orbit/Orbit.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Number/ParticlesDensity.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Number/ParticlesNumber.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Repulse/ParticlesRepulse.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Roll/RollLight.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Roll/Roll.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Rotate/RotateAnimation.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Rotate/Rotate.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Shadow.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Shape/Shape.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Size/SizeAnimation.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Size/Size.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Stroke.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Tilt/TiltAnimation.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Tilt/Tilt.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Twinkle/TwinkleValues.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Twinkle/Twinkle.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Wobble/Wobble.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/ZIndex/ZIndex.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/ParticlesOptions.js","../node_modules/tsparticles-engine/esm/Utils/Utils.js","../node_modules/tsparticles-engine/esm/Core/Utils/Constants.js","../node_modules/tsparticles-engine/esm/Utils/ColorUtils.js","../node_modules/tsparticles-engine/esm/Utils/CanvasUtils.js","../node_modules/tsparticles-engine/esm/Core/Canvas.js","../node_modules/tsparticles-engine/esm/Core/Utils/EventListeners.js","../node_modules/tsparticles-engine/esm/Core/Utils/InteractionManager.js","../node_modules/tsparticles-engine/esm/Core/Utils/FrameManager.js","../node_modules/tsparticles-engine/esm/Core/Utils/Vector3d.js","../node_modules/tsparticles-engine/esm/Core/Particle.js","../node_modules/tsparticles-engine/esm/Core/Utils/Point.js","../node_modules/tsparticles-engine/esm/Core/Particles.js","../node_modules/tsparticles-engine/esm/Core/Utils/Range.js","../node_modules/tsparticles-engine/esm/Core/Utils/Circle.js","../node_modules/tsparticles-engine/esm/Core/Utils/Rectangle.js","../node_modules/tsparticles-engine/esm/Core/Utils/CircleWarp.js","../node_modules/tsparticles-engine/esm/Core/Utils/QuadTree.js","../node_modules/tsparticles-engine/esm/Core/Retina.js","../node_modules/tsparticles-engine/esm/Core/Container.js","../node_modules/tsparticles-engine/esm/Core/Loader.js","../node_modules/tsparticles-engine/esm/Core/Utils/Plugins.js","../node_modules/tsparticles-engine/esm/engine.js","../node_modules/tsparticles-engine/esm/Core/Utils/ExternalInteractorBase.js","../node_modules/tsparticles-engine/esm/Core/Utils/ParticlesInteractorBase.js","../node_modules/tsparticles-engine/esm/index.js","../../../../../../../webpack/bootstrap","../../../../../../../node_modules/core-js/internals/global.js","../../../../../../../node_modules/core-js/internals/function-uncurry-this.js","../../../../../../../node_modules/core-js/internals/fails.js","../../../../../../../node_modules/core-js/internals/export.js","../../../../../../../node_modules/core-js/modules/es.object.to-string.js","../../../../../../../node_modules/core-js/modules/es.array.iterator.js","../../../../../../../node_modules/core-js/modules/es.string.iterator.js","../../../../../../../node_modules/core-js/modules/es.symbol.js","../../../../../../../node_modules/core-js/modules/web.dom-collections.iterator.js","../../../../../../../node_modules/core-js/modules/web.dom-collections.for-each.js","../../../../../../../node_modules/core-js/modules/es.symbol.description.js","../../../../../../../node_modules/core-js/modules/es.symbol.iterator.js","../../../../../../../node_modules/core-js/internals/well-known-symbol.js","../../../../../../../node_modules/core-js/modules/es.object.keys.js","../../../../../../../node_modules/core-js/internals/is-callable.js","../../../../../../../node_modules/core-js/modules/es.array.filter.js","../../../../../../../node_modules/core-js/modules/es.regexp.exec.js","../../../../../../../node_modules/core-js/internals/descriptors.js","../../../../../../../node_modules/core-js/internals/an-object.js","../../../../../../../node_modules/core-js/internals/is-object.js","../../../../../../../node_modules/core-js/internals/has-own-property.js","../../../../../../../node_modules/core-js/internals/function-call.js","../../../../../../../node_modules/core-js/internals/object-define-property.js","../../../../../../../node_modules/core-js/internals/to-string.js","../../../../../../../node_modules/core-js/modules/es.object.get-own-property-descriptor.js","../../../../../../../node_modules/core-js/modules/es.object.get-own-property-descriptors.js","../../../../../../../node_modules/core-js/modules/es.array.concat.js","../../../../../../../node_modules/core-js/modules/es.array.slice.js","../../../../../../../node_modules/core-js/modules/es.array.find.js","../../../../../../../node_modules/core-js/modules/es.object.set-prototype-of.js","../../../../../../../node_modules/core-js/internals/to-indexed-object.js","../../../../../../../node_modules/core-js/modules/es.object.get-prototype-of.js","../../../../../../../node_modules/core-js/modules/es.reflect.construct.js","../../../../../../../node_modules/core-js/modules/es.array.includes.js","../../../../../../../node_modules/core-js/modules/es.number.constructor.js","../../../../../../../node_modules/core-js/modules/es.array.from.js","../../../../../../../node_modules/core-js/internals/to-object.js","../../../../../../../node_modules/core-js/internals/redefine.js","../../../../../../../node_modules/core-js/modules/es.string.split.js","../../../../../../../node_modules/core-js/internals/require-object-coercible.js","../../../../../../../node_modules/core-js/modules/es.regexp.to-string.js","../../../../../../../node_modules/core-js/modules/es.function.name.js","../../../../../../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../../../../../../node_modules/core-js/internals/get-built-in.js","../../../../../../../node_modules/core-js/internals/object-is-prototype-of.js","../../../../../../../node_modules/core-js/internals/create-non-enumerable-property.js","../../../../../../../node_modules/core-js/internals/length-of-array-like.js","../../../../../../../node_modules/core-js/modules/es.string.replace.js","../../../../../../../node_modules/core-js/internals/classof-raw.js","../../../../../../../node_modules/core-js/internals/internal-state.js","../../../../../../../node_modules/core-js/internals/object-create.js","../../../../../../../node_modules/core-js/modules/es.string.includes.js","../../../../../../../node_modules/core-js/modules/es.regexp.constructor.js","../../../../../../../node_modules/core-js/internals/get-method.js","../../../../../../../node_modules/core-js/internals/is-pure.js","../../../../../../../node_modules/core-js/internals/object-get-own-property-names.js","../../../../../../../node_modules/core-js/internals/array-iteration.js","../../../../../../../node_modules/core-js/modules/es.string.starts-with.js","../../../../../../../node_modules/core-js/modules/es.array.map.js","../../../../../../../node_modules/core-js/modules/es.reflect.get.js","../../../../../../../node_modules/core-js/internals/function-bind-native.js","../../../../../../../node_modules/core-js/internals/create-property-descriptor.js","../../../../../../../node_modules/core-js/internals/a-callable.js","../../../../../../../node_modules/core-js/internals/hidden-keys.js","../../../../../../../node_modules/core-js/internals/function-name.js","../../../../../../../node_modules/core-js/internals/to-length.js","../../../../../../../node_modules/core-js/internals/object-keys.js","../../../../../../../node_modules/core-js/internals/create-property.js","../../../../../../../node_modules/core-js/internals/iterators.js","../../../../../../../node_modules/core-js/modules/es.string.match.js","../../../../../../../node_modules/core-js/internals/object-property-is-enumerable.js","../../../../../../../node_modules/core-js/internals/indexed-object.js","../../../../../../../node_modules/core-js/internals/to-property-key.js","../../../../../../../node_modules/core-js/internals/is-symbol.js","../../../../../../../node_modules/core-js/internals/engine-v8-version.js","../../../../../../../node_modules/core-js/internals/engine-user-agent.js","../../../../../../../node_modules/core-js/internals/try-to-string.js","../../../../../../../node_modules/core-js/internals/shared.js","../../../../../../../node_modules/core-js/internals/uid.js","../../../../../../../node_modules/core-js/internals/shared-key.js","../../../../../../../node_modules/core-js/internals/to-integer-or-infinity.js","../../../../../../../node_modules/core-js/internals/is-forced.js","../../../../../../../node_modules/core-js/internals/object-get-prototype-of.js","../../../../../../../node_modules/core-js/internals/classof.js","../../../../../../../node_modules/core-js/internals/function-apply.js","../../../../../../../node_modules/core-js/internals/is-constructor.js","../../../../../../../node_modules/core-js/internals/is-array.js","../../../../../../../node_modules/core-js/internals/set-to-string-tag.js","../../../../../../../node_modules/core-js/internals/function-bind-context.js","../../../../../../../node_modules/core-js/internals/add-to-unscopables.js","../../../../../../../node_modules/core-js/internals/regexp-exec.js","../../../../../../../node_modules/core-js/modules/es.string.trim.js","../../../../../../../node_modules/core-js/internals/string-trim.js","../../../../../../../node_modules/core-js/internals/whitespaces.js","../../../../../../../node_modules/core-js/internals/array-method-has-species-support.js","../../../../../../../node_modules/core-js/modules/es.array.join.js","../../../../../../../node_modules/core-js/internals/native-symbol.js","../../../../../../../node_modules/core-js/internals/shared-store.js","../../../../../../../node_modules/core-js/internals/set-global.js","../../../../../../../node_modules/core-js/internals/document-create-element.js","../../../../../../../node_modules/core-js/internals/inspect-source.js","../../../../../../../node_modules/core-js/internals/to-absolute-index.js","../../../../../../../node_modules/core-js/internals/enum-bug-keys.js","../../../../../../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../../../../../../node_modules/core-js/internals/object-set-prototype-of.js","../../../../../../../node_modules/core-js/internals/to-string-tag-support.js","../../../../../../../node_modules/core-js/internals/array-slice.js","../../../../../../../node_modules/core-js/internals/object-get-own-property-names-external.js","../../../../../../../node_modules/core-js/internals/array-slice-simple.js","../../../../../../../node_modules/core-js/internals/define-iterator.js","../../../../../../../node_modules/core-js/internals/regexp-flags.js","../../../../../../../node_modules/core-js/internals/regexp-sticky-helpers.js","../../../../../../../node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","../../../../../../../node_modules/core-js/internals/advance-string-index.js","../../../../../../../node_modules/core-js/internals/regexp-exec-abstract.js","../../../../../../../node_modules/core-js/internals/is-regexp.js","../../../../../../../node_modules/core-js/modules/es.number.parse-float.js","../../../../../../../node_modules/core-js/internals/inherit-if-required.js","../../../../../../../node_modules/core-js/internals/array-method-is-strict.js","../../../../../../../node_modules/core-js/modules/es.set.js","../../../../../../../node_modules/core-js/internals/get-iterator-method.js","../../../../../../../node_modules/core-js/modules/es.number.parse-int.js","../../../../../../../node_modules/core-js/internals/to-primitive.js","../../../../../../../node_modules/core-js/internals/use-symbol-as-uid.js","../../../../../../../node_modules/core-js/internals/ie8-dom-define.js","../../../../../../../node_modules/core-js/internals/v8-prototype-define-bug.js","../../../../../../../node_modules/core-js/internals/copy-constructor-properties.js","../../../../../../../node_modules/core-js/internals/own-keys.js","../../../../../../../node_modules/core-js/internals/object-keys-internal.js","../../../../../../../node_modules/core-js/internals/array-includes.js","../../../../../../../node_modules/core-js/internals/correct-prototype-getter.js","../../../../../../../node_modules/core-js/internals/a-constructor.js","../../../../../../../node_modules/core-js/internals/object-define-properties.js","../../../../../../../node_modules/core-js/internals/well-known-symbol-wrapped.js","../../../../../../../node_modules/core-js/internals/define-well-known-symbol.js","../../../../../../../node_modules/core-js/internals/array-species-create.js","../../../../../../../node_modules/core-js/internals/iterators-core.js","../../../../../../../node_modules/core-js/internals/string-multibyte.js","../../../../../../../node_modules/core-js/internals/dom-iterables.js","../../../../../../../node_modules/core-js/internals/dom-token-list-prototype.js","../../../../../../../node_modules/core-js/internals/regexp-unsupported-dot-all.js","../../../../../../../node_modules/core-js/internals/regexp-unsupported-ncg.js","../../../../../../../node_modules/core-js/internals/not-a-regexp.js","../../../../../../../node_modules/core-js/internals/correct-is-regexp-logic.js","../../../../../../../node_modules/core-js/internals/set-species.js","../../../../../../../node_modules/core-js/internals/collection.js","../../../../../../../node_modules/core-js/internals/internal-metadata.js","../../../../../../../node_modules/core-js/internals/iterate.js","../../../../../../../node_modules/core-js/internals/is-array-iterator-method.js","../../../../../../../node_modules/core-js/internals/get-iterator.js","../../../../../../../node_modules/core-js/internals/iterator-close.js","../../../../../../../node_modules/core-js/internals/an-instance.js","../../../../../../../node_modules/core-js/internals/check-correctness-of-iteration.js","../../../../../../../node_modules/core-js/internals/collection-strong.js","../../../../../../../(webpack)/buildin/global.js","../../../../../../../node_modules/core-js/internals/ordinary-to-primitive.js","../../../../../../../node_modules/core-js/internals/native-weak-map.js","../../../../../../../node_modules/core-js/internals/a-possible-prototype.js","../../../../../../../node_modules/core-js/internals/object-to-string.js","../../../../../../../node_modules/core-js/internals/function-bind.js","../../../../../../../node_modules/core-js/internals/html.js","../../../../../../../node_modules/core-js/internals/path.js","../../../../../../../node_modules/core-js/internals/array-species-constructor.js","../../../../../../../node_modules/core-js/internals/create-iterator-constructor.js","../../../../../../../node_modules/core-js/internals/species-constructor.js","../../../../../../../node_modules/core-js/internals/string-trim-forced.js","../../../../../../../node_modules/core-js/internals/number-parse-float.js","../../../../../../../node_modules/core-js/internals/this-number-value.js","../../../../../../../node_modules/core-js/internals/array-for-each.js","../../../../../../../node_modules/core-js/internals/object-is-extensible.js","../../../../../../../node_modules/core-js/internals/array-buffer-non-extensible.js","../../../../../../../node_modules/core-js/internals/freezing.js","../../../../../../../node_modules/core-js/internals/redefine-all.js","../../../../../../../node_modules/core-js/internals/get-substitution.js","../../../../../../../node_modules/core-js/internals/array-from.js","../../../../../../../node_modules/core-js/internals/call-with-safe-iteration-closing.js","../../../../../../../node_modules/core-js/modules/es.object.get-own-property-names.js","../../../../../../../node_modules/core-js/modules/es.map.js","../../../../../../../node_modules/core-js/internals/number-parse-int.js","../../../../../../../node_modules/core-js/internals/is-data-descriptor.js","../../../../../../../node_modules/core-js/modules/es.array.sort.js","../../../../../../../node_modules/core-js/internals/array-sort.js","../../../../../../../node_modules/core-js/internals/engine-ff-version.js","../../../../../../../node_modules/core-js/internals/engine-is-ie-or-edge.js","../../../../../../../node_modules/core-js/internals/engine-webkit-version.js","../../../../../../../node_modules/core-js/modules/es.object.assign.js","../../../../../../../node_modules/core-js/internals/object-assign.js","../../../../../../../node_modules/core-js/modules/es.array.find-index.js","../../../../../../../node_modules/core-js/modules/es.number.is-nan.js","../../../../../../../node_modules/core-js/modules/es.object.values.js","../../../../../../../node_modules/core-js/internals/object-to-array.js","../../../../../../../node_modules/core-js/modules/es.math.trunc.js","../../../../../../../src/js/bs/src/util/index.js","../../../../../../../src/js/bs/src/dom/event-handler.js","../../../../../../../src/js/bs/src/dom/data.js","../../../../../../../src/js/bs/src/base-component.js","../../../../../../../src/js/bs/src/button.js","../../../../../../../node_modules/@popperjs/core/lib/enums.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../../../../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../../../../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../../../../../../node_modules/@popperjs/core/lib/utils/math.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/contains.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../../../../../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../../../../../../node_modules/@popperjs/core/lib/utils/within.js","../../../../../../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../../../../../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../../../../../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../../../../../../node_modules/@popperjs/core/lib/modifiers/arrow.js","../../../../../../../node_modules/@popperjs/core/lib/utils/getVariation.js","../../../../../../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../../../../../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../../../../../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../../../../../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../../../../../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../../../../../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../../../../../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../../../../../../node_modules/@popperjs/core/lib/modifiers/flip.js","../../../../../../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../../../../../../node_modules/@popperjs/core/lib/modifiers/hide.js","../../../../../../../node_modules/@popperjs/core/lib/modifiers/offset.js","../../../../../../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../../../../../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../../../../../../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../../../../../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../../../../../../node_modules/@popperjs/core/lib/createPopper.js","../../../../../../../node_modules/@popperjs/core/lib/utils/debounce.js","../../../../../../../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../../../../../../node_modules/@popperjs/core/lib/utils/mergeByName.js","../../../../../../../node_modules/@popperjs/core/lib/popper.js","../../../../../../../node_modules/@popperjs/core/lib/popper-lite.js","../../../../../../../src/js/bs/src/dom/manipulator.js","../../../../../../../src/js/bs/src/dom/selector-engine.js","../../../../../../../src/js/bs/src/dropdown.js","../../../../../../../src/js/bs/src/collapse.js","../../../../../../../src/js/bs/src/util/scrollbar.js","../../../../../../../src/js/bs/src/util/backdrop.js","../../../../../../../src/js/bs/src/util/component-functions.js","../../../../../../../src/js/bs/src/util/focustrap.js","../../../../../../../src/js/bs/src/offcanvas.js","../../../../../../../src/js/bs/src/alert.js","../../../../../../../src/js/bs/src/carousel.js","../../../../../../../src/js/bs/src/modal.js","../../../../../../../src/js/bs/src/util/sanitizer.js","../../../../../../../src/js/bs/src/tooltip.js","../../../../../../../src/js/bs/src/popover.js","../../../../../../../src/js/bs/src/scrollspy.js","../../../../../../../src/js/bs/src/tab.js","../../../../../../../src/js/mdb/util/index.js","../../../../../../../src/js/bs/src/toast.js","../../../../../../../src/js/mdb/dom/data.js","../../../../../../../src/js/mdb/dom/event-handler.js","../../../../../../../src/js/mdb/dom/manipulator.js","../../../../../../../src/js/mdb/dom/selector-engine.js","../../../../../../../src/js/mdb/ripple.js","../../../../../../../src/js/mdb/util/focusTrap.js","../../../../../../../src/js/mdb/datepicker/date-utils.js","../../../../../../../src/js/mdb/datepicker/templates.js","../../../../../../../src/js/mdb/datepicker/index.js","../../../../../../../src/js/mdb/util/keycodes.js","../../../../../../../src/js/mdb/timepicker/utils.js","../../../../../../../src/js/mdb/timepicker/index.js","../../../../../../../src/js/mdb/timepicker/templates.js","../../../../../../../src/js/mdb/stepper.js","../../../../../../../src/js/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","logo.svg","../node_modules/@babel/runtime/helpers/esm/extends.js","../../packages/react-router/lib/context.ts","../../packages/react-router/lib/router.ts","../../packages/react-router/lib/hooks.tsx","../../packages/react-router/lib/components.tsx","../node_modules/tsparticles-plugin-emitters/esm/EmitterInstance.js","../node_modules/tsparticles-plugin-emitters/esm/Emitters.js","../node_modules/tsparticles-plugin-emitters/esm/ShapeManager.js","../node_modules/tsparticles-plugin-emitters/esm/index.js","../node_modules/tsparticles-plugin-polygon-mask/esm/PolygonMaskInstance.js","../node_modules/tsparticles-plugin-polygon-mask/esm/index.js","../node_modules/tsparticles-shape-image/esm/ImageDrawer.js","../node_modules/tsparticles-shape-square/esm/SquareDrawer.js","modules/ThemeContext/ThemeContext.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/framer-motion/node_modules/tslib/tslib.es6.js","../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../node_modules/framer-motion/dist/es/context/LazyContext.mjs","../node_modules/framer-motion/dist/es/motion/features/use-features.mjs","../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../node_modules/framer-motion/dist/es/utils/is-browser.mjs","../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../node_modules/framer-motion/dist/es/utils/use-reduced-motion.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../node_modules/framer-motion/dist/es/render/utils/variants.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../node_modules/framesync/dist/es/on-next-frame.mjs","../node_modules/framesync/dist/es/index.mjs","../node_modules/framesync/dist/es/create-render-step.mjs","../node_modules/popmotion/dist/es/utils/mix.mjs","../node_modules/popmotion/dist/es/utils/velocity-per-second.mjs","../node_modules/framer-motion/dist/es/utils/array.mjs","../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../node_modules/framer-motion/dist/es/value/index.mjs","../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../node_modules/popmotion/node_modules/tslib/tslib.es6.js","../node_modules/popmotion/dist/es/utils/clamp.mjs","../node_modules/popmotion/dist/es/animations/utils/find-spring.mjs","../node_modules/popmotion/dist/es/animations/generators/spring.mjs","../node_modules/popmotion/dist/es/utils/progress.mjs","../node_modules/style-value-types/dist/es/utils.mjs","../node_modules/style-value-types/dist/es/numbers/index.mjs","../node_modules/style-value-types/dist/es/color/utils.mjs","../node_modules/style-value-types/dist/es/color/rgba.mjs","../node_modules/style-value-types/dist/es/color/hex.mjs","../node_modules/style-value-types/dist/es/numbers/units.mjs","../node_modules/style-value-types/dist/es/color/hsla.mjs","../node_modules/popmotion/dist/es/utils/hsla-to-rgba.mjs","../node_modules/popmotion/dist/es/utils/mix-color.mjs","../node_modules/style-value-types/dist/es/color/index.mjs","../node_modules/style-value-types/dist/es/complex/index.mjs","../node_modules/popmotion/dist/es/utils/inc.mjs","../node_modules/popmotion/dist/es/utils/pipe.mjs","../node_modules/popmotion/dist/es/utils/mix-complex.mjs","../node_modules/popmotion/dist/es/utils/interpolate.mjs","../node_modules/popmotion/dist/es/easing/utils.mjs","../node_modules/popmotion/dist/es/easing/index.mjs","../node_modules/popmotion/dist/es/animations/generators/keyframes.mjs","../node_modules/popmotion/dist/es/animations/utils/detect-animation-from-options.mjs","../node_modules/popmotion/dist/es/animations/generators/decay.mjs","../node_modules/popmotion/dist/es/animations/utils/elapsed.mjs","../node_modules/popmotion/dist/es/animations/index.mjs","../node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../node_modules/popmotion/dist/es/easing/cubic-bezier.mjs","../node_modules/framer-motion/dist/es/animation/utils/easing.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../node_modules/style-value-types/dist/es/complex/filter.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","../node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","../node_modules/popmotion/dist/es/animations/inertia.mjs","../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../node_modules/popmotion/dist/es/utils/is-point.mjs","../node_modules/popmotion/dist/es/utils/is-point-3d.mjs","../node_modules/popmotion/dist/es/utils/distance.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../node_modules/framer-motion/dist/es/animation/animate.mjs","../node_modules/framer-motion/dist/es/projection/node/id.mjs","../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/VisualElementHandler.mjs","../node_modules/framer-motion/dist/es/motion/index.mjs","../node_modules/framer-motion/dist/es/motion/features/use-projection.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/html/use-props.mjs","../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../node_modules/framer-motion/dist/es/render/utils/types.mjs","../node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../node_modules/framer-motion/dist/es/events/use-dom-event.mjs","../node_modules/framer-motion/dist/es/gestures/utils/event-type.mjs","../node_modules/framer-motion/dist/es/events/event-info.mjs","../node_modules/framer-motion/dist/es/events/use-pointer-event.mjs","../node_modules/framer-motion/dist/es/events/utils.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../node_modules/framer-motion/dist/es/gestures/use-hover-gesture.mjs","../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/use-viewport.mjs","../node_modules/framer-motion/dist/es/motion/utils/make-renderless-component.mjs","../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../node_modules/framer-motion/dist/es/gestures/use-tap-gesture.mjs","../node_modules/framer-motion/dist/es/gestures/use-focus-gesture.mjs","../node_modules/framer-motion/dist/es/utils/use-id.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../node_modules/framer-motion/dist/es/render/utils/setters.mjs","../node_modules/framer-motion/dist/es/render/utils/animation.mjs","../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../node_modules/framer-motion/dist/es/gestures/PanSession.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../node_modules/framer-motion/dist/es/motion/features/drag.mjs","../node_modules/framer-motion/dist/es/gestures/use-pan-gesture.mjs","../node_modules/framer-motion/dist/es/gestures/drag/use-drag.mjs","../node_modules/framer-motion/dist/es/render/utils/lifecycles.mjs","../node_modules/framer-motion/dist/es/render/index.mjs","../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs","../node_modules/framer-motion/dist/es/render/html/visual-element.mjs","../node_modules/framer-motion/dist/es/render/svg/visual-element.mjs","../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/index.mjs","../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../node_modules/framer-motion/dist/es/render/dom/motion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","pages/AnimatedPage/AnimatedPage.js","../../packages/react-router-dom/index.tsx","../node_modules/react-media/esm/react-media.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-router-hash-link/node_modules/tslib/tslib.es6.js","../node_modules/react-router-hash-link/src/HashLink.jsx","modules/footer/index.js","../node_modules/react-helmet/es/Helmet.js","img/pods-title.svg","modules/quote/index.js","pages/Home/index.js","modules/navbar/index.js","pages/AboutUs/index.js","pages/ContactUs/index.js","pages/Business/index.js","pages/HowNogginWorks/index.js","../node_modules/react-lottie-player/src/LottiePlayer.js","pages/Developers/index.js","modules/backgroundAni/index.js","modules/ScrollToTop/index.js","App.js","pages/Users/index.js","reportWebVitals.js","index.js"],"sourcesContent":["function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nmodule.exports = _createForOfIteratorHelper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","module.exports = require(\"regenerator-runtime\");\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n var envHasBigInt64Array = typeof BigInt64Array !== 'undefined';\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n if ((a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n for (i of a.entries())\n if (!b.has(i[0])) return false;\n for (i of a.entries())\n if (!equal(i[1], b.get(i[0]))) return false;\n return true;\n }\n\n if ((a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n for (i of a.entries())\n if (!b.has(i[0])) return false;\n return true;\n }\n\n if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","/**\n * Copyright (c) 2013-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\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.tt) {\n layers[i - 1].td = layerData.tt;\n }\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n xhr.open('GET', path, true);\n } catch (error) {\n xhr.open('GET', fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n this.setParams(params);\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function () {\n this.renderer.updateContainerSize();\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_pause');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_play');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.renderer = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var PropertyFactory = function () {\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n function getProp(elem, data, type, mult, container) {\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.9.4';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n if (!this.a.k) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n var zeroWidthJoiner = [65039, 8205];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName);\n\n var index = _char2.charCodeAt(0);\n\n if (!fontData.cache[index + 1]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index + 1] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index + 1] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\n if (!secondCharCode) {\n return firstCharCode === zeroWidthJoiner[1];\n }\n\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isCombinedCharacter = isCombinedCharacter;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _prevValue;\n\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (stringValue !== _prevValue) {\n elem.textProperty.currentData.t = _prevValue;\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _opMdf: false,\n mat: new Matrix()\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n return ob;\n }();\n\n var registeredEffects = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n function registerEffect(id, effect, countsAsEffect) {\n registeredEffects[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n var filId;\n var fil;\n var gg;\n\n if (this.data.td) {\n if (this.data.td == 3 || this.data.td == 1) {\n // eslint-disable-line eqeqeq\n var masker = createNS('mask');\n masker.setAttribute('id', this.layerId);\n masker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq\n\n masker.appendChild(this.layerElement);\n layerElementParent = masker;\n this.globalData.defs.appendChild(masker); // This is only for IE and Edge when mask if of type alpha\n\n if (!featureSupport.maskType && this.data.td == 1) {\n // eslint-disable-line eqeqeq\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (this.data.td == 2) {\n // eslint-disable-line eqeqeq\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', this.layerId);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n // This solution doesn't work on Android when meta tag with viewport attribute is set\n\n /* var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n fil.appendChild(feColorMatrix); */\n /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n maskGrouper.appendChild(this.layerElement);\n layerElementParent = maskGrouper;\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._matMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var props;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n props = itemData.transformers[k].mProps.v.props;\n mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n\n while (i < len) {\n charCode = text.charCodeAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n shouldCombine = false;\n } else {\n charactersArray.push(text.substr(i, 2));\n }\n\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\n shouldCombine = true;\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n shouldCombine = true;\n } else {\n charactersArray.push(text.charAt(i));\n }\n\n i += 1;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n if (!this.elements[pos - 1] || this.elements[pos - 1] === true) {\n this.buildItem(pos - 1);\n this.addPendingElement(element);\n } else {\n element.setMatte(elements[pos - 1].layerId);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n element.setMatte(this.elements[i - 1].layerId);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function CVContextData() {\n this.saved = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n this.cO = 1;\n var i;\n var len = 15;\n this.savedOp = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = len;\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var currentSavedOp = this.savedOp;\n this.savedOp = createTypedArray('float32', newLength);\n this.savedOp.set(currentSavedOp);\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.cO = 1;\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n var props;\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n props = sequence.transforms[i].transform.mProps.v.props;\n sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n function CVEffects() {}\n\n CVEffects.prototype.renderFrame = function () {};\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n this.canvasContext = this.globalData.canvasContext;\n this.renderableEffectsManager = new CVEffects(this);\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n ctx.lineWidth = currentStyle.wi;\n ctx.lineCap = currentStyle.lc;\n ctx.lineJoin = currentStyle.lj;\n ctx.miterLimit = currentStyle.ml || 0;\n } else {\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n ctx.stroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n ctx.fill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n this.globalData.renderer.save();\n this.globalData.renderer.ctxTransform(renderedLetter.p);\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n lastFill = renderedLetter.fc;\n ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.fillStyle = this.data.sc;\n ctx.fillRect(0, 0, this.data.sw, this.data.sh); //\n };\n\n function CanvasRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || ''\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n return;\n }\n\n this.transformMat.cloneFromProps(props);\n var cProps = this.contextData.cTr.props;\n this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\n\n this.contextData.cTr.cloneFromProps(this.transformMat.props);\n var trProps = this.contextData.cTr.props;\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n /* if(op === 1){\r\n return;\r\n } */\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n this.globalData.currentGlobalAlpha = this.contextData.cO;\n return;\n }\n\n this.contextData.cO *= op < 0 ? 0 : op;\n\n if (this.globalData.currentGlobalAlpha !== this.contextData.cO) {\n this.canvasContext.globalAlpha = this.contextData.cO;\n this.globalData.currentGlobalAlpha = this.contextData.cO;\n }\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.save();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.save();\n }\n\n var props = this.contextData.cTr.props;\n\n if (this.contextData._length <= this.contextData.cArrPos) {\n this.contextData.duplicate();\n }\n\n var i;\n var arr = this.contextData.saved[this.contextData.cArrPos];\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = props[i];\n }\n\n this.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;\n this.contextData.cArrPos += 1;\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.restore();\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.cArrPos -= 1;\n var popped = this.contextData.saved[this.contextData.cArrPos];\n var i;\n var arr = this.contextData.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = popped[i];\n }\n\n this.canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\n popped = this.contextData.savedOp[this.contextData.cArrPos];\n this.contextData.cO = popped;\n\n if (this.globalData.currentGlobalAlpha !== popped) {\n this.canvasContext.globalAlpha = popped;\n this.globalData.currentGlobalAlpha = popped;\n }\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function () {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n this.animationItem.container.setAttribute('width', elementWidth * this.renderConfig.dpr);\n this.animationItem.container.setAttribute('height', elementHeight * this.renderConfig.dpr);\n } else {\n elementWidth = this.canvasContext.canvas.width * this.renderConfig.dpr;\n elementHeight = this.canvasContext.canvas.height * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || ''\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n this.elements[i].destroy();\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$1(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n initialize$2(BMMath);\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof(a);\n\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n if (tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath];\n return ob;\n }();\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var filterSize = filterManager.container.globalData.renderConfig.filterSize;\n filter.setAttribute('x', filterSize.x);\n filter.setAttribute('y', filterSize.y);\n filter.setAttribute('width', filterSize.width);\n filter.setAttribute('height', filterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect(20, SVGTintFilter, true);\n registerEffect(21, SVGFillFilter, true);\n registerEffect(22, SVGStrokeEffect, false);\n registerEffect(23, SVGTritoneFilter, true);\n registerEffect(24, SVGProLevelsFilter, true);\n registerEffect(25, SVGDropShadowEffect, true);\n registerEffect(28, SVGMatte3Effect, false);\n registerEffect(29, SVGGaussianBlurEffect, true);\n\n return lottie;\n\n}));\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$4(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.tt) {\n layers[i - 1].td = layerData.tt;\n }\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$3(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n xhr.open('GET', path, true);\n } catch (error) {\n xhr.open('GET', fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$2(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n this.setParams(params);\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function () {\n this.renderer.updateContainerSize();\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_pause');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_play');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$2(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.renderer = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var PropertyFactory = function () {\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n function getProp(elem, data, type, mult, container) {\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.9.4';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$1(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n if (!this.a.k) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n var zeroWidthJoiner = [65039, 8205];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName);\n\n var index = _char2.charCodeAt(0);\n\n if (!fontData.cache[index + 1]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index + 1] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index + 1] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\n if (!secondCharCode) {\n return firstCharCode === zeroWidthJoiner[1];\n }\n\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isCombinedCharacter = isCombinedCharacter;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _prevValue;\n\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (stringValue !== _prevValue) {\n elem.textProperty.currentData.t = _prevValue;\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _opMdf: false,\n mat: new Matrix()\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n return ob;\n }();\n\n var registeredEffects = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n function registerEffect(id, effect, countsAsEffect) {\n registeredEffects[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n var filId;\n var fil;\n var gg;\n\n if (this.data.td) {\n if (this.data.td == 3 || this.data.td == 1) {\n // eslint-disable-line eqeqeq\n var masker = createNS('mask');\n masker.setAttribute('id', this.layerId);\n masker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq\n\n masker.appendChild(this.layerElement);\n layerElementParent = masker;\n this.globalData.defs.appendChild(masker); // This is only for IE and Edge when mask if of type alpha\n\n if (!featureSupport.maskType && this.data.td == 1) {\n // eslint-disable-line eqeqeq\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (this.data.td == 2) {\n // eslint-disable-line eqeqeq\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', this.layerId);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n // This solution doesn't work on Android when meta tag with viewport attribute is set\n\n /* var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n fil.appendChild(feColorMatrix); */\n /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n maskGrouper.appendChild(this.layerElement);\n layerElementParent = maskGrouper;\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._matMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var props;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n props = itemData.transformers[k].mProps.v.props;\n mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n\n while (i < len) {\n charCode = text.charCodeAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n shouldCombine = false;\n } else {\n charactersArray.push(text.substr(i, 2));\n }\n\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\n shouldCombine = true;\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n shouldCombine = true;\n } else {\n charactersArray.push(text.charAt(i));\n }\n\n i += 1;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n if (!this.elements[pos - 1] || this.elements[pos - 1] === true) {\n this.buildItem(pos - 1);\n this.addPendingElement(element);\n } else {\n element.setMatte(elements[pos - 1].layerId);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n element.setMatte(this.elements[i - 1].layerId);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n\n return lottie;\n\n}));\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","/**\n * Copyright (c) 2013-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\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ba=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function t(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new t(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new t(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new t(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new t(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new t(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new t(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new t(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new t(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new t(a,5,!1,a.toLowerCase(),null,!1,!1)});var qa=/[\\-:]([a-z])/g;function ra(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(qa,\nra);z[b]=new t(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(qa,ra);z[b]=new t(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(qa,ra);z[b]=new t(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new t(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new t(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new t(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction sa(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Ma=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?La(a):\"\"}\nfunction Oa(a){switch(a.tag){case 5:return La(a.type);case 16:return La(\"Lazy\");case 13:return La(\"Suspense\");case 19:return La(\"SuspenseList\");case 0:case 2:case 15:return a=Na(a.type,!1),a;case 11:return a=Na(a.type.render,!1),a;case 1:return a=Na(a.type,!0),a;default:return\"\"}}\nfunction Pa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case wa:return\"Fragment\";case va:return\"Portal\";case za:return\"Profiler\";case xa:return\"StrictMode\";case Da:return\"Suspense\";case Ea:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ba:return(a.displayName||\"Context\")+\".Consumer\";case Aa:return(a._context.displayName||\"Context\")+\".Provider\";case Ca:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Fa:return b=a.displayName||null,null!==b?b:Pa(a.type)||\"Memo\";case Ga:b=a._payload;a=a._init;try{return Pa(a(b))}catch(c){}}return null}\nfunction Qa(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Pa(b);case 8:return b===xa?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Ra(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Sa(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ta(a){var b=Sa(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Ua(a){a._valueTracker||(a._valueTracker=Ta(a))}function Va(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Sa(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Wa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Xa(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Ya(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Ra(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function Za(a,b){b=b.checked;null!=b&&sa(a,\"checked\",b,!1)}\nfunction $a(a,b){Za(a,b);var c=Ra(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Ra(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Wa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var db=Array.isArray;\nfunction eb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=lb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction nb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar ob={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},pb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(ob).forEach(function(a){pb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);ob[b]=ob[a]})});function qb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||ob.hasOwnProperty(a)&&ob[a]?(\"\"+b).trim():b+\"px\"}\nfunction rb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=qb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var sb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction tb(a,b){if(b){if(sb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction ub(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var vb=null;function wb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var xb=null,yb=null,zb=null;\nfunction Ab(a){if(a=Bb(a)){if(\"function\"!==typeof xb)throw Error(p(280));var b=a.stateNode;b&&(b=Cb(b),xb(a.stateNode,a.type,b))}}function Db(a){yb?zb?zb.push(a):zb=[a]:yb=a}function Eb(){if(yb){var a=yb,b=zb;zb=yb=null;Ab(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(oc(a)/pc|0)|0}var qc=64,rc=4194304;\nfunction sc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function tc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=sc(h):(f&=g,0!==f&&(d=sc(f)))}else g=c&~e,0!==g?d=sc(g):0!==f&&(d=sc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction zc(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-nc(b);a[b]=c}function Ac(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=ae),de=String.fromCharCode(32),ee=!1;\nfunction fe(a,b){switch(a){case \"keyup\":return-1!==Zd.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function ge(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var he=!1;function ie(a,b){switch(a){case \"compositionend\":return ge(b);case \"keypress\":if(32!==b.which)return null;ee=!0;return de;case \"textInput\":return a=b.data,a===de&&ee?null:a;default:return null}}\nfunction je(a,b){if(he)return\"compositionend\"===a||!$d&&fe(a,b)?(a=md(),ld=kd=jd=null,he=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ie(c)}}function Ke(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Ke(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Le(){for(var a=window,b=Wa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Wa(a.document)}return b}function Me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Ne(a){var b=Le(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Ke(c.ownerDocument.documentElement,c)){if(null!==d&&Me(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Je(c,f);var g=Je(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Pe=null,Qe=null,Re=null,Se=!1;\nfunction Te(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Se||null==Pe||Pe!==Wa(d)||(d=Pe,\"selectionStart\"in d&&Me(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Re&&He(Re,d)||(Re=d,d=ne(Qe,\"onSelect\"),0Sf||(a.current=Rf[Sf],Rf[Sf]=null,Sf--)}function G(a,b){Sf++;Rf[Sf]=a.current;a.current=b}var Uf={},H=Tf(Uf),Vf=Tf(!1),Wf=Uf;function Xf(a,b){var c=a.type.contextTypes;if(!c)return Uf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Yf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Zf(){E(Vf);E(H)}function $f(a,b,c){if(H.current!==Uf)throw Error(p(168));G(H,b);G(Vf,c)}function ag(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Qa(a)||\"Unknown\",e));return A({},c,d)}\nfunction bg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Uf;Wf=H.current;G(H,a);G(Vf,Vf.current);return!0}function cg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=ag(a,b,Wf),d.__reactInternalMemoizedMergedChildContext=a,E(Vf),E(H),G(H,a)):E(Vf);G(Vf,c)}var dg=null,eg=!1,fg=!1;function gg(a){null===dg?dg=[a]:dg.push(a)}function hg(a){eg=!0;gg(a)}\nfunction ig(){if(!fg&&null!==dg){fg=!0;var a=0,b=C;try{var c=dg;for(C=1;a>=g;e-=g;Yg=1<<32-nc(b)+e|c<m?(x=r,r=null):x=r.sibling;var v=q(e,r,h[m],k);if(null===v){null===r&&(r=x);break}a&&r&&null===v.alternate&&b(e,r);g=f(v,g,m);null===n?l=v:n.sibling=v;n=v;r=x}if(m===h.length)return c(e,r),I&&$g(e,m),l;if(null===r){for(;mr?(x=m,m=null):x=m.sibling;var w=q(e,m,v.value,k);if(null===w){null===m&&(m=x);break}a&&m&&null===w.alternate&&b(e,m);g=f(w,g,r);null===n?l=w:n.sibling=w;n=w;m=x}if(v.done)return c(e,\nm),I&&$g(e,r),l;if(null===m){for(;!v.done;r++,v=h.next())v=u(e,v.value,k),null!==v&&(g=f(v,g,r),null===n?l=v:n.sibling=v,n=v);I&&$g(e,r);return l}for(m=d(e,m);!v.done;r++,v=h.next())v=y(m,e,r,v.value,k),null!==v&&(a&&null!==v.alternate&&m.delete(null===v.key?r:v.key),g=f(v,g,r),null===n?l=v:n.sibling=v,n=v);a&&m.forEach(function(a){return b(e,a)});I&&$g(e,r);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===wa&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case ua:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===wa){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ga&&rh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=ph(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===wa?(d=xh(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=vh(f.type,f.key,f.props,null,a.mode,h),h.ref=ph(a,d,f),h.return=a,a=h)}return g(a);case va:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=wh(f,a.mode,h);d.return=a;a=d}return g(a);case Ga:return l=f._init,J(a,d,l(f._payload),h)}if(db(f))return m(a,d,f,h);if(Ja(f))return w(a,d,f,h);qh(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=uh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var yh=sh(!0),zh=sh(!1),Ah={},Bh=Tf(Ah),Ch=Tf(Ah),Dh=Tf(Ah);function Eh(a){if(a===Ah)throw Error(p(174));return a}function Fh(a,b){G(Dh,b);G(Ch,a);G(Bh,Ah);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:kb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=kb(b,a)}E(Bh);G(Bh,b)}function Gh(){E(Bh);E(Ch);E(Dh)}\nfunction Hh(a){Eh(Dh.current);var b=Eh(Bh.current);var c=kb(b,a.type);b!==c&&(G(Ch,a),G(Bh,c))}function Ih(a){Ch.current===a&&(E(Bh),E(Ch))}var K=Tf(0);\nfunction Jh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Kh=[];\nfunction Lh(){for(var a=0;ac?c:4;a(!0);var d=Nh.transition;Nh.transition={};try{a(!1),b()}finally{C=c,Nh.transition=d}}function Bi(){return ai().memoizedState}\nfunction Ci(a,b,c){var d=Kg(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};Di(a)?Ei(b,c):(Fi(a,b,c),c=Jg(),a=Lg(a,d,c),null!==a&&Gi(a,b,d))}\nfunction ni(a,b,c){var d=Kg(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Di(a))Ei(b,e);else{Fi(a,b,e);var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(Ge(h,g))return}catch(k){}finally{}c=Jg();a=Lg(a,d,c);null!==a&&Gi(a,b,d)}}function Di(a){var b=a.alternate;return a===L||null!==b&&b===L}\nfunction Ei(a,b){Qh=Ph=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Fi(a,b,c){Bg(a)?(a=b.interleaved,null===a?(c.next=c,null===vg?vg=[b]:vg.push(b)):(c.next=a.next,a.next=c),b.interleaved=c):(a=b.pending,null===a?c.next=c:(c.next=a.next,a.next=c),b.pending=c)}function Gi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Bc(a,c)}}\nvar Yh={readContext:ug,useCallback:O,useContext:O,useEffect:O,useImperativeHandle:O,useInsertionEffect:O,useLayoutEffect:O,useMemo:O,useReducer:O,useRef:O,useState:O,useDebugValue:O,useDeferredValue:O,useTransition:O,useMutableSource:O,useSyncExternalStore:O,useId:O,unstable_isNewReconciler:!1},Vh={readContext:ug,useCallback:function(a,b){$h().memoizedState=[a,void 0===b?null:b];return a},useContext:ug,useEffect:ri,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return pi(4194308,\n4,ui.bind(null,b,a),c)},useLayoutEffect:function(a,b){return pi(4194308,4,a,b)},useInsertionEffect:function(a,b){return pi(4,2,a,b)},useMemo:function(a,b){var c=$h();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=$h();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Ci.bind(null,L,a);return[d.memoizedState,a]},useRef:function(a){var b=\n$h();a={current:a};return b.memoizedState=a},useState:mi,useDebugValue:wi,useDeferredValue:function(a){return $h().memoizedState=a},useTransition:function(){var a=mi(!1),b=a[0];a=Ai.bind(null,a[1]);$h().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=L,e=$h();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===P)throw Error(p(349));0!==(Oh&30)||ki(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;ri(hi.bind(null,d,\nf,a),[a]);d.flags|=2048;ii(9,ji.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=$h(),b=P.identifierPrefix;if(I){var c=Zg;var d=Yg;c=(d&~(1<<32-nc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Rh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Nf]=b;a[Of]=d;Ti(a,b,!1,!1);b.stateNode=a;a:{g=ub(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eaj&&(b.flags|=\n128,d=!0,Xi(f,!1),b.lanes=4194304)}else{if(!d)if(a=Jh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Xi(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return Q(b),null}else 2*B()-f.renderingStartTime>aj&&1073741824!==c&&(b.flags|=128,d=!0,Xi(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=b,f.tail=b.sibling,f.renderingStartTime=\nB(),b.sibling=null,c=K.current,G(K,d?c&1|2:c&1),b;Q(b);return null;case 22:case 23:return bj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(cj&1073741824)&&(Q(b),b.subtreeFlags&6&&(b.flags|=8192)):Q(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}var dj=ta.ReactCurrentOwner,tg=!1;function ej(a,b,c,d){b.child=null===a?zh(b,null,c,d):yh(b,a.child,c,d)}\nfunction fj(a,b,c,d,e){c=c.render;var f=b.ref;sg(b,e);d=Uh(a,b,c,d,f,e);c=Zh();if(null!==a&&!tg)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,gj(a,b,e);I&&c&&bh(b);b.flags|=1;ej(a,b,d,e);return b.child}\nfunction hj(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!ij(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,jj(a,b,f,d,e);a=vh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:He;if(c(g,d)&&a.ref===b.ref)return gj(a,b,e)}b.flags|=1;a=th(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction jj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(He(f,d)&&a.ref===b.ref)if(tg=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(tg=!0);else return b.lanes=a.lanes,gj(a,b,e)}return kj(a,b,c,d,e)}\nfunction lj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(mj,cj),cj|=c;else if(0!==(c&1073741824))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},d=null!==f?f.baseLanes:c,G(mj,cj),cj|=d;else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(mj,cj),cj|=a,null;\nelse null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(mj,cj),cj|=d;ej(a,b,e,c);return b.child}function nj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function kj(a,b,c,d,e){var f=Yf(c)?Wf:H.current;f=Xf(b,f);sg(b,e);c=Uh(a,b,c,d,f,e);d=Zh();if(null!==a&&!tg)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,gj(a,b,e);I&&d&&bh(b);b.flags|=1;ej(a,b,c,e);return b.child}\nfunction oj(a,b,c,d,e){if(Yf(c)){var f=!0;bg(b)}else f=!1;sg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),Og(b,c,d),Qg(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=ug(l):(l=Yf(c)?Wf:H.current,l=Xf(b,l));var n=c.getDerivedStateFromProps,u=\"function\"===typeof n||\"function\"===typeof g.getSnapshotBeforeUpdate;u||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Pg(b,g,d,l);wg=!1;var q=b.memoizedState;g.state=q;Eg(b,d,g,e);k=b.memoizedState;h!==d||q!==k||Vf.current||wg?(\"function\"===typeof n&&(Ig(b,c,n,d),k=b.memoizedState),(h=wg||Ng(b,c,h,d,q,k,l))?(u||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.flags|=4194308)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;yg(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:kg(b.type,h);g.props=l;u=b.pendingProps;q=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=ug(k):(k=Yf(c)?Wf:H.current,k=Xf(b,k));var y=c.getDerivedStateFromProps;(n=\"function\"===\ntypeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==u||q!==k)&&Pg(b,g,d,k);wg=!1;q=b.memoizedState;g.state=q;Eg(b,d,g,e);var m=b.memoizedState;h!==u||q!==m||Vf.current||wg?(\"function\"===typeof y&&(Ig(b,c,y,d),m=b.memoizedState),(l=wg||Ng(b,c,l,d,q,m,k)||!1)?(n||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&\ng.componentWillUpdate(d,m,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,m,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=m),g.props=d,g.state=m,g.context=\nk,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.flags|=1024),d=!1)}return pj(a,b,c,d,f,e)}\nfunction pj(a,b,c,d,e,f){nj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&cg(b,c,!1),gj(a,b,f);d=b.stateNode;dj.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=yh(b,a.child,null,f),b.child=yh(b,null,h,f)):ej(a,b,h,f);b.memoizedState=d.state;e&&cg(b,c,!0);return b.child}function qj(a){var b=a.stateNode;b.pendingContext?$f(a,b.pendingContext,b.pendingContext!==b.context):b.context&&$f(a,b.context,!1);Fh(a,b.containerInfo)}\nfunction rj(a,b,c,d,e){nh();oh(e);b.flags|=256;ej(a,b,c,d);return b.child}var sj={dehydrated:null,treeContext:null,retryLane:0};function tj(a){return{baseLanes:a,cachePool:null,transitions:null}}function uj(a,b){return{baseLanes:a.baseLanes|b,cachePool:null,transitions:a.transitions}}\nfunction vj(a,b,c){var d=b.pendingProps,e=K.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(K,e&1);if(null===a){kh(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;e=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,e={mode:\"hidden\",children:e},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ne):f=wj(e,d,0,null),a=xh(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=tj(c),b.memoizedState=sj,a):xj(b,e)}e=a.memoizedState;if(null!==e){h=e.dehydrated;if(null!==h){if(g){if(b.flags&256)return b.flags&=-257,yj(a,b,c,Error(p(422)));if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=wj({mode:\"visible\",children:d.children},e,0,null);f=xh(f,e,c,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&yh(b,a.child,\nnull,c);b.child.memoizedState=tj(c);b.memoizedState=sj;return f}if(0===(b.mode&1))b=yj(a,b,c,null);else if(\"$!\"===h.data)b=yj(a,b,c,Error(p(419)));else if(d=0!==(c&a.childLanes),tg||d){d=P;if(null!==d){switch(c&-c){case 4:f=2;break;case 16:f=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:f=32;break;case 536870912:f=\n268435456;break;default:f=0}d=0!==(f&(d.suspendedLanes|c))?0:f;0!==d&&d!==e.retryLane&&(e.retryLane=d,Lg(a,d,-1))}$i();b=yj(a,b,c,Error(p(421)))}else\"$?\"===h.data?(b.flags|=128,b.child=a.child,b=zj.bind(null,a),h._reactRetry=b,b=null):(c=e.treeContext,eh=Kf(h.nextSibling),dh=b,I=!0,fh=null,null!==c&&(Vg[Wg++]=Yg,Vg[Wg++]=Zg,Vg[Wg++]=Xg,Yg=c.id,Zg=c.overflow,Xg=b),b=xj(b,b.pendingProps.children),b.flags|=4096);return b}if(f)return d=Aj(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,\nf.memoizedState=null===e?tj(c):uj(e,c),f.childLanes=a.childLanes&~c,b.memoizedState=sj,d;c=Bj(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=Aj(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?tj(c):uj(e,c),f.childLanes=a.childLanes&~c,b.memoizedState=sj,d;c=Bj(a,b,d.children,c);b.memoizedState=null;return c}function xj(a,b){b=wj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}\nfunction Bj(a,b,c,d){var e=a.child;a=e.sibling;c=th(e,{mode:\"visible\",children:c});0===(b.mode&1)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(d=b.deletions,null===d?(b.deletions=[a],b.flags|=16):d.push(a));return b.child=c}\nfunction Aj(a,b,c,d,e){var f=b.mode;a=a.child;var g=a.sibling,h={mode:\"hidden\",children:c};0===(f&1)&&b.child!==a?(c=b.child,c.childLanes=0,c.pendingProps=h,b.deletions=null):(c=th(a,h),c.subtreeFlags=a.subtreeFlags&14680064);null!==g?d=th(g,d):(d=xh(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function yj(a,b,c,d){null!==d&&oh(d);yh(b,a.child,null,c);a=xj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction Cj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);rg(a.return,b,c)}function Dj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction Ej(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;ej(a,b,d.children,c);d=K.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&Cj(a,c,b);else if(19===a.tag)Cj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(K,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Jh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);Dj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Jh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}Dj(b,!0,c,null,f);break;case \"together\":Dj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction gj(a,b,c){null!==a&&(b.dependencies=a.dependencies);Fg|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=th(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=th(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction Fj(a,b,c){switch(b.tag){case 3:qj(b);nh();break;case 5:Hh(b);break;case 1:Yf(b.type)&&bg(b);break;case 4:Fh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(lg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(K,K.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return vj(a,b,c);G(K,K.current&1);a=gj(a,b,c);return null!==a?a.sibling:null}G(K,K.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return Ej(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(K,K.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,lj(a,b,c)}return gj(a,b,c)}\nfunction Gj(a,b){ch(b);switch(b.tag){case 1:return Yf(b.type)&&Zf(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Gh(),E(Vf),E(H),Lh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Ih(b),null;case 13:E(K);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));nh()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(K),null;case 4:return Gh(),null;case 10:return qg(b.type._context),null;case 22:case 23:return bj(),\nnull;case 24:return null;default:return null}}var Hj=!1,S=!1,Ij=\"function\"===typeof WeakSet?WeakSet:Set,T=null;function Jj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){U(a,b,d)}else c.current=null}function Kj(a,b,c){try{c()}catch(d){U(a,b,d)}}var Lj=!1;\nfunction Mj(a,b){Bf=cd;a=Le();if(Me(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(Z){c=null;break a}var g=0,h=-1,k=-1,l=0,n=0,u=a,q=null;b:for(;;){for(var y;;){u!==c||0!==e&&3!==u.nodeType||(h=g+e);u!==f||0!==d&&3!==u.nodeType||(k=g+d);3===u.nodeType&&(g+=\nu.nodeValue.length);if(null===(y=u.firstChild))break;q=u;u=y}for(;;){if(u===a)break b;q===c&&++l===e&&(h=g);q===f&&++n===d&&(k=g);if(null!==(y=u.nextSibling))break;u=q;q=u.parentNode}u=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Cf={focusedElem:a,selectionRange:c};cd=!1;for(T=b;null!==T;)if(b=T,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,T=a;else for(;null!==T;){b=T;try{var m=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==m){var w=m.memoizedProps,J=m.memoizedState,v=b.stateNode,x=v.getSnapshotBeforeUpdate(b.elementType===b.type?w:kg(b.type,w),J);v.__reactInternalSnapshotBeforeUpdate=x}break;case 3:var r=b.stateNode.containerInfo;if(1===r.nodeType)r.textContent=\"\";else if(9===r.nodeType){var F=r.body;null!=F&&(F.textContent=\"\")}break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(Z){U(b,b.return,Z)}a=b.sibling;if(null!==a){a.return=b.return;T=a;break}T=b.return}m=Lj;Lj=!1;return m}\nfunction Nj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Kj(b,c,f)}e=e.next}while(e!==d)}}function Oj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Pj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Qj(a){var b=a.alternate;null!==b&&(a.alternate=null,Qj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Nf],delete b[Of],delete b[nf],delete b[Pf],delete b[Qf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Rj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Sj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Rj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Tj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Af));else if(4!==d&&(a=a.child,null!==a))for(Tj(a,b,c),a=a.sibling;null!==a;)Tj(a,b,c),a=a.sibling}\nfunction Uj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Uj(a,b,c),a=a.sibling;null!==a;)Uj(a,b,c),a=a.sibling}var V=null,Vj=!1;function Wj(a,b,c){for(c=c.child;null!==c;)Xj(a,b,c),c=c.sibling}\nfunction Xj(a,b,c){if(kc&&\"function\"===typeof kc.onCommitFiberUnmount)try{kc.onCommitFiberUnmount(jc,c)}catch(h){}switch(c.tag){case 5:S||Jj(c,b);case 6:var d=V,e=Vj;V=null;Wj(a,b,c);V=d;Vj=e;null!==V&&(Vj?(a=V,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):V.removeChild(c.stateNode));break;case 18:null!==V&&(Vj?(a=V,c=c.stateNode,8===a.nodeType?Jf(a.parentNode,c):1===a.nodeType&&Jf(a,c),ad(a)):Jf(V,c.stateNode));break;case 4:d=V;e=Vj;V=c.stateNode.containerInfo;Vj=!0;\nWj(a,b,c);V=d;Vj=e;break;case 0:case 11:case 14:case 15:if(!S&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Kj(c,b,g):0!==(f&4)&&Kj(c,b,g));e=e.next}while(e!==d)}Wj(a,b,c);break;case 1:if(!S&&(Jj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){U(c,b,h)}Wj(a,b,c);break;case 21:Wj(a,b,c);break;case 22:c.mode&1?(S=(d=S)||null!==\nc.memoizedState,Wj(a,b,c),S=d):Wj(a,b,c);break;default:Wj(a,b,c)}}function Yj(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Ij);b.forEach(function(b){var d=Zj.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ak(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*jk(d/1960))-d;if(10a?16:a;if(null===uk)var d=!1;else{a=uk;uk=null;vk=0;if(0!==(W&6))throw Error(p(331));var e=W;W|=4;for(T=a.current;null!==T;){var f=T,g=f.child;if(0!==(T.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-dk?Jk(a,0):pk|=c);Ck(a,b)}function Xk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=rc,rc<<=1,0===(rc&130023424)&&(rc=4194304)));var c=Jg();a=Ak(a,b);null!==a&&(zc(a,b,c),Ck(a,c))}function zj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Xk(a,c)}\nfunction Zj(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Xk(a,c)}var Uk;\nUk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Vf.current)tg=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return tg=!1,Fj(a,b,c);tg=0!==(a.flags&131072)?!0:!1}else tg=!1,I&&0!==(b.flags&1048576)&&ah(b,Ug,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;var e=Xf(b,H.current);sg(b,c);e=Uh(null,b,d,a,e,c);var f=Zh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?\n(b.tag=1,b.memoizedState=null,b.updateQueue=null,Yf(d)?(f=!0,bg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,xg(b),e.updater=Mg,b.stateNode=e,e._reactInternals=b,Qg(b,d,a,c),b=pj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&bh(b),ej(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Yk(d);a=kg(d,a);switch(e){case 0:b=kj(null,b,d,a,c);break a;case 1:b=oj(null,b,\nd,a,c);break a;case 11:b=fj(null,b,d,a,c);break a;case 14:b=hj(null,b,d,kg(d.type,a),c);break a}throw Error(p(306,d,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:kg(d,e),kj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:kg(d,e),oj(a,b,d,e,c);case 3:a:{qj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;yg(a,b);Eg(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,\ncache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=f,b.memoizedState=f,b.flags&256){e=Error(p(423));b=rj(a,b,d,c,e);break a}else if(d!==e){e=Error(p(424));b=rj(a,b,d,c,e);break a}else for(eh=Kf(b.stateNode.containerInfo.firstChild),dh=b,I=!0,fh=null,c=zh(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{nh();if(d===e){b=gj(a,b,c);break a}ej(a,b,d,c)}b=b.child}return b;case 5:return Hh(b),null===a&&kh(b),d=b.type,e=\nb.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Df(d,e)?g=null:null!==f&&Df(d,f)&&(b.flags|=32),nj(a,b),ej(a,b,g,c),b.child;case 6:return null===a&&kh(b),null;case 13:return vj(a,b,c);case 4:return Fh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=yh(b,null,d,c):ej(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:kg(d,e),fj(a,b,d,e,c);case 7:return ej(a,b,b.pendingProps,c),b.child;case 8:return ej(a,b,b.pendingProps.children,c),b.child;case 12:return ej(a,\nb,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;g=e.value;G(lg,d._currentValue);d._currentValue=g;if(null!==f)if(Ge(f.value,g)){if(f.children===e.children&&!Vf.current){b=gj(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=zg(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var n=l.pending;null===n?k.next=\nk:(k.next=n.next,n.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);rg(f.return,c,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);rg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}ej(a,b,e.children,c);b=b.child}return b;\ncase 9:return e=b.type,d=b.pendingProps.children,sg(b,c),e=ug(e),d=d(e),b.flags|=1,ej(a,b,d,c),b.child;case 14:return d=b.type,e=kg(d,b.pendingProps),e=kg(d.type,e),hj(a,b,d,e,c);case 15:return jj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:kg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,Yf(d)?(a=!0,bg(b)):a=!1,sg(b,c),Og(b,d,e),Qg(b,d,e,c),pj(null,b,d,!0,a,c);case 19:return Ej(a,b,c);case 22:return lj(a,b,c)}throw Error(p(156,\nb.tag));};function Ek(a,b){return $b(a,b)}function Zk(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function hh(a,b,c,d){return new Zk(a,b,c,d)}\nfunction ij(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Yk(a){if(\"function\"===typeof a)return ij(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Ca)return 11;if(a===Fa)return 14}return 2}\nfunction th(a,b){var c=a.alternate;null===c?(c=hh(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction vh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)ij(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case wa:return xh(c.children,e,f,b);case xa:g=8;e|=8;break;case za:return a=hh(12,c,b,e|2),a.elementType=za,a.lanes=f,a;case Da:return a=hh(13,c,b,e),a.elementType=Da,a.lanes=f,a;case Ea:return a=hh(19,c,b,e),a.elementType=Ea,a.lanes=f,a;case Ha:return wj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Aa:g=10;break a;case Ba:g=9;break a;case Ca:g=11;\nbreak a;case Fa:g=14;break a;case Ga:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=hh(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function xh(a,b,c,d){a=hh(7,a,d,b);a.lanes=c;return a}function wj(a,b,c,d){a=hh(22,a,d,b);a.elementType=Ha;a.lanes=c;a.stateNode={};return a}function uh(a,b,c){a=hh(6,a,null,b);a.lanes=c;return a}\nfunction wh(a,b,c){b=hh(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction $k(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=yc(0);this.expirationTimes=yc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=yc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function al(a,b,c,d,e,f,g,h,k){a=new $k(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=hh(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};xg(f);return a}function bl(a,b,c){var d=3 &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * Copyright (c) 2013-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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-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\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-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\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-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\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import lottie from 'lottie-web/build/player/lottie_light'\nimport makeLottiePlayer from './makeLottiePlayer'\n\nexport default makeLottiePlayer(lottie)\n","import React, { memo, useRef, useEffect, useState } from 'react'\nimport PropTypes from 'prop-types'\nimport equal from 'fast-deep-equal/es6/react'\nimport clone from 'rfdc/default'\n\nconst makeLottiePlayer = (lottie) => {\n const Lottie = memo(({\n animationData,\n path,\n\n play,\n speed,\n direction,\n segments: segmentsIn,\n goTo,\n\n renderer,\n loop,\n rendererSettings: rendererSettingsIn,\n\n audioFactory,\n\n onLoad,\n onComplete,\n onLoopComplete,\n onEnterFrame,\n onSegmentStart,\n\n ...props\n }) => {\n const animElementRef = useRef()\n const animRef = useRef()\n\n const [ready, setReady] = useState(false)\n\n const [segments, setSegments] = useState(segmentsIn)\n\n // Prevent re-init\n useEffect(() => {\n if (!equal(segments, segmentsIn)) setSegments(segmentsIn)\n }, [segmentsIn, segments])\n\n const [rendererSettings, setRendererSettings] = useState(rendererSettingsIn)\n\n // Prevent re-init\n useEffect(() => {\n if (!equal(rendererSettings, rendererSettingsIn)) setRendererSettings(rendererSettingsIn)\n }, [rendererSettingsIn, rendererSettings])\n\n // In order to remove listeners before animRef gets destroyed:\n useEffect(() => () => animRef.current.removeEventListener('complete', onComplete), [onComplete])\n useEffect(() => () => animRef.current.removeEventListener('loopComplete', onLoopComplete), [onLoopComplete])\n useEffect(() => () => animRef.current.removeEventListener('enterFrame', onEnterFrame), [onEnterFrame])\n useEffect(() => () => animRef.current.removeEventListener('segmentStart', onSegmentStart), [onSegmentStart])\n\n useEffect(() => {\n function parseAnimationData() {\n if (animationData == null || typeof animationData !== 'object') return animationData\n\n // https://github.com/mifi/react-lottie-player/issues/11#issuecomment-879310039\n // https://github.com/chenqingspring/vue-lottie/issues/20\n if (typeof animationData.default === 'object') {\n return clone(animationData.default)\n }\n // cloneDeep to prevent memory leak. See #35\n return clone(animationData)\n }\n\n // console.log('init')\n animRef.current = lottie.loadAnimation({\n animationData: parseAnimationData(),\n path,\n container: animElementRef.current,\n renderer,\n loop: false,\n autoplay: false, // We want to explicitly control playback\n rendererSettings,\n audioFactory\n })\n\n function onDomLoaded() {\n setReady(true)\n onLoad()\n }\n animRef.current.addEventListener('DOMLoaded', onDomLoaded)\n\n return () => {\n animRef.current.removeEventListener('DOMLoaded', onDomLoaded)\n setReady(false)\n animRef.current.destroy()\n animRef.current = undefined\n }\n }, [loop, renderer, rendererSettings, animationData, path, audioFactory])\n\n useEffect(() => {\n animRef.current.addEventListener('complete', onComplete)\n }, [onComplete])\n\n useEffect(() => {\n animRef.current.addEventListener('loopComplete', onLoopComplete)\n }, [onLoopComplete])\n\n useEffect(() => {\n animRef.current.addEventListener('enterFrame', onEnterFrame)\n }, [onEnterFrame])\n\n useEffect(() => {\n animRef.current.addEventListener('segmentStart', onSegmentStart)\n }, [onSegmentStart])\n\n useEffect(() => {\n if (!ready) return\n animRef.current.loop = loop\n }, [ready, loop])\n\n const wasPlayingSegmentsRef = useRef(false)\n\n useEffect(() => {\n if (!ready) return\n\n // Without this code, when playback restarts, it will not play in reverse:\n // https://github.com/mifi/react-lottie-player/issues/19\n function playReverse(lastFrame) {\n animRef.current.goToAndPlay(lastFrame, true)\n animRef.current.setDirection(direction)\n }\n\n if (play === true) {\n const force = true\n if (segments) {\n animRef.current.playSegments(segments, force)\n wasPlayingSegmentsRef.current = true\n\n // This needs to be called after playSegments or it will not play backwards\n if (direction === -1) {\n // TODO What if more than one segment\n const lastFrame = segments[1]\n playReverse(lastFrame)\n }\n } else {\n // If we called playSegments last time, the segments are stored as a state in the lottie object\n // Need to reset segments or else it will still play the old segments also when calling play()\n // wasPlayingSegmentsRef: Only reset segments if playSegments last time, because resetSegments will also reset playback position\n // https://github.com/airbnb/lottie-web/blob/master/index.d.ts\n if (wasPlayingSegmentsRef.current) animRef.current.resetSegments(force)\n wasPlayingSegmentsRef.current = false\n\n if (direction === -1) {\n const lastFrame = animRef.current.getDuration(true)\n playReverse(lastFrame)\n } else {\n animRef.current.play()\n }\n }\n } else if (play === false) {\n animRef.current.pause()\n }\n }, [play, segments, ready])\n\n useEffect(() => {\n if (!ready) return\n if (Number.isNaN(speed)) return\n animRef.current.setSpeed(speed)\n }, [speed, ready])\n\n // This handles the case where only direction has changed (direction is not a dependency of the other effect that calls setDirection)\n useEffect(() => {\n if (!ready) return\n animRef.current.setDirection(direction)\n }, [direction, ready])\n\n useEffect(() => {\n if (!ready) return\n if (goTo == null) return\n const isFrame = true // TODO\n if (play) animRef.current.goToAndPlay(goTo, isFrame)\n else animRef.current.goToAndStop(goTo, isFrame)\n }, [goTo, play, ready])\n\n return (\n \n )\n })\n\n Lottie.propTypes = {\n // You can use either animationData OR path\n animationData: PropTypes.object,\n path: PropTypes.string,\n\n play: PropTypes.bool,\n goTo: PropTypes.number,\n speed: PropTypes.number,\n direction: PropTypes.number,\n loop: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n\n segments: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.bool]),\n\n rendererSettings: PropTypes.object,\n\n renderer: PropTypes.string,\n\n audioFactory: PropTypes.func,\n\n onComplete: PropTypes.func,\n onLoopComplete: PropTypes.func,\n onEnterFrame: PropTypes.func,\n onSegmentStart: PropTypes.func\n }\n\n Lottie.defaultProps = {\n animationData: null,\n path: null,\n\n play: null,\n segments: null,\n goTo: null,\n\n speed: 1,\n direction: 1,\n loop: true,\n\n rendererSettings: {},\n renderer: 'svg',\n\n audioFactory: null,\n\n onLoad: () => {},\n onComplete: () => {},\n onLoopComplete: () => {},\n onEnterFrame: () => {},\n onSegmentStart: () => {}\n }\n\n return Lottie\n}\n\nexport default makeLottiePlayer\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ButtonElement = function (_React$Component) {\n _inherits(ButtonElement, _React$Component);\n\n function ButtonElement() {\n _classCallCheck(this, ButtonElement);\n\n return _possibleConstructorReturn(this, (ButtonElement.__proto__ || Object.getPrototypeOf(ButtonElement)).apply(this, arguments));\n }\n\n _createClass(ButtonElement, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'input',\n this.props,\n this.props.children\n );\n }\n }]);\n\n return ButtonElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(ButtonElement);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollElement = require('../mixins/scroll-element');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ElementWrapper = function (_React$Component) {\n _inherits(ElementWrapper, _React$Component);\n\n function ElementWrapper() {\n _classCallCheck(this, ElementWrapper);\n\n return _possibleConstructorReturn(this, (ElementWrapper.__proto__ || Object.getPrototypeOf(ElementWrapper)).apply(this, arguments));\n }\n\n _createClass(ElementWrapper, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n // Remove `parentBindings` from props\n var newProps = _extends({}, this.props);\n if (newProps.parentBindings) {\n delete newProps.parentBindings;\n }\n\n return _react2.default.createElement(\n 'div',\n _extends({}, newProps, { ref: function ref(el) {\n _this2.props.parentBindings.domNode = el;\n } }),\n this.props.children\n );\n }\n }]);\n\n return ElementWrapper;\n}(_react2.default.Component);\n\n;\n\nElementWrapper.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n};\n\nexports.default = (0, _scrollElement2.default)(ElementWrapper);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar LinkElement = function (_React$Component) {\n _inherits(LinkElement, _React$Component);\n\n function LinkElement() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, LinkElement);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = LinkElement.__proto__ || Object.getPrototypeOf(LinkElement)).call.apply(_ref, [this].concat(args))), _this), _this.render = function () {\n return _react2.default.createElement(\n 'a',\n _this.props,\n _this.props.children\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return LinkElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(LinkElement);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Helpers = exports.ScrollElement = exports.ScrollLink = exports.animateScroll = exports.scrollSpy = exports.Events = exports.scroller = exports.Element = exports.Button = exports.Link = undefined;\n\nvar _Link = require('./components/Link.js');\n\nvar _Link2 = _interopRequireDefault(_Link);\n\nvar _Button = require('./components/Button.js');\n\nvar _Button2 = _interopRequireDefault(_Button);\n\nvar _Element = require('./components/Element.js');\n\nvar _Element2 = _interopRequireDefault(_Element);\n\nvar _scroller = require('./mixins/scroller.js');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _scrollEvents = require('./mixins/scroll-events.js');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nvar _scrollSpy = require('./mixins/scroll-spy.js');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _animateScroll = require('./mixins/animate-scroll.js');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollLink = require('./mixins/scroll-link.js');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nvar _scrollElement = require('./mixins/scroll-element.js');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _Helpers = require('./mixins/Helpers.js');\n\nvar _Helpers2 = _interopRequireDefault(_Helpers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Link = _Link2.default;\nexports.Button = _Button2.default;\nexports.Element = _Element2.default;\nexports.scroller = _scroller2.default;\nexports.Events = _scrollEvents2.default;\nexports.scrollSpy = _scrollSpy2.default;\nexports.animateScroll = _animateScroll2.default;\nexports.ScrollLink = _scrollLink2.default;\nexports.ScrollElement = _scrollElement2.default;\nexports.Helpers = _Helpers2.default;\nexports.default = { Link: _Link2.default, Button: _Button2.default, Element: _Element2.default, scroller: _scroller2.default, Events: _scrollEvents2.default, scrollSpy: _scrollSpy2.default, animateScroll: _animateScroll2.default, ScrollLink: _scrollLink2.default, ScrollElement: _scrollElement2.default, Helpers: _Helpers2.default };","\"use strict\";\n\n/* DEPRECATED */\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar React = require('react');\nvar ReactDOM = require('react-dom');\n\nvar utils = require('./utils');\nvar scrollSpy = require('./scroll-spy');\nvar defaultScroller = require('./scroller');\nvar PropTypes = require('prop-types');\nvar scrollHash = require('./scroll-hash');\n\nvar protoTypes = {\n to: PropTypes.string.isRequired,\n containerId: PropTypes.string,\n container: PropTypes.object,\n activeClass: PropTypes.string,\n spy: PropTypes.bool,\n smooth: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n offset: PropTypes.number,\n delay: PropTypes.number,\n isDynamic: PropTypes.bool,\n onClick: PropTypes.func,\n duration: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n absolute: PropTypes.bool,\n onSetActive: PropTypes.func,\n onSetInactive: PropTypes.func,\n ignoreCancelEvents: PropTypes.bool,\n hashSpy: PropTypes.bool,\n spyThrottle: PropTypes.number\n};\n\nvar Helpers = {\n Scroll: function Scroll(Component, customScroller) {\n\n console.warn(\"Helpers.Scroll is deprecated since v1.7.0\");\n\n var scroller = customScroller || defaultScroller;\n\n var Scroll = function (_React$Component) {\n _inherits(Scroll, _React$Component);\n\n function Scroll(props) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!scrollSpy.isMounted(scrollSpyContainer)) {\n scrollSpy.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!scrollHash.isMounted()) {\n scrollHash.mount(scroller);\n }\n scrollHash.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n if (this.props.spy) {\n scrollSpy.addStateHandler(this.stateHandler);\n }\n\n scrollSpy.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n scrollSpy.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return React.createElement(Component, props);\n }\n }]);\n\n return Scroll;\n }(React.Component);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.stateHandler = function () {\n if (scroller.getActiveLink() !== _this2.props.to) {\n if (_this2.state !== null && _this2.state.active && _this2.props.onSetInactive) {\n _this2.props.onSetInactive();\n }\n _this2.setState({ active: false });\n }\n };\n\n this.spyHandler = function (y) {\n\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (scrollHash.isMounted() && !scrollHash.isInitialized()) {\n return;\n }\n\n var to = _this2.props.to;\n var element = null;\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemTopBound = cords.top - containerTop + y;\n elemBottomBound = elemTopBound + cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n var isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n var isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && scrollHash.getHash() === to) {\n scrollHash.changeHash();\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive();\n }\n\n return scrollSpy.updateStates();\n }\n\n if (isInside && activeLink !== to) {\n scroller.setActiveLink(to);\n\n _this2.props.hashSpy && scrollHash.changeHash(to);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to);\n }\n return scrollSpy.updateStates();\n }\n };\n };\n\n ;\n\n Scroll.propTypes = protoTypes;\n\n Scroll.defaultProps = { offset: 0 };\n\n return Scroll;\n },\n Element: function Element(Component) {\n\n console.warn(\"Helpers.Element is deprecated since v1.7.0\");\n\n var Element = function (_React$Component2) {\n _inherits(Element, _React$Component2);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this3 = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this3.childBindings = {\n domNode: null\n };\n return _this3;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n defaultScroller.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n defaultScroller.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(React.Component);\n\n ;\n\n Element.propTypes = {\n name: PropTypes.string,\n id: PropTypes.string\n };\n\n return Element;\n }\n};\n\nmodule.exports = Helpers;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _smooth = require('./smooth');\n\nvar _smooth2 = _interopRequireDefault(_smooth);\n\nvar _cancelEvents = require('./cancel-events');\n\nvar _cancelEvents2 = _interopRequireDefault(_cancelEvents);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\r\n * Gets the easing type from the smooth prop within options.\r\n */\nvar getAnimationType = function getAnimationType(options) {\n return _smooth2.default[options.smooth] || _smooth2.default.defaultEasing;\n};\n/*\r\n * Function helper\r\n */\nvar functionWrapper = function functionWrapper(value) {\n return typeof value === 'function' ? value : function () {\n return value;\n };\n};\n/*\r\n * Wraps window properties to allow server side rendering\r\n */\nvar currentWindowProperties = function currentWindowProperties() {\n if (typeof window !== 'undefined') {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame;\n }\n};\n\n/*\r\n * Helper function to never extend 60fps on the webpage.\r\n */\nvar requestAnimationFrameHelper = function () {\n return currentWindowProperties() || function (callback, element, delay) {\n window.setTimeout(callback, delay || 1000 / 60, new Date().getTime());\n };\n}();\n\nvar makeData = function makeData() {\n return {\n currentPosition: 0,\n startPosition: 0,\n targetPosition: 0,\n progress: 0,\n duration: 0,\n cancel: false,\n\n target: null,\n containerElement: null,\n to: null,\n start: null,\n delta: null,\n percent: null,\n delayTimeout: null\n };\n};\n\nvar currentPositionX = function currentPositionX(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollLeft;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n }\n};\n\nvar currentPositionY = function currentPositionY(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollTop;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n }\n};\n\nvar scrollContainerWidth = function scrollContainerWidth(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollWidth - containerElement.offsetWidth;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);\n }\n};\n\nvar scrollContainerHeight = function scrollContainerHeight(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollHeight - containerElement.offsetHeight;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n }\n};\n\nvar animateScroll = function animateScroll(easing, options, timestamp) {\n var data = options.data;\n\n // Cancel on specific events\n if (!options.ignoreCancelEvents && data.cancel) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPositionY);\n }\n return;\n };\n\n data.delta = Math.round(data.targetPosition - data.startPosition);\n\n if (data.start === null) {\n data.start = timestamp;\n }\n\n data.progress = timestamp - data.start;\n\n data.percent = data.progress >= data.duration ? 1 : easing(data.progress / data.duration);\n\n data.currentPosition = data.startPosition + Math.ceil(data.delta * data.percent);\n\n if (data.containerElement && data.containerElement !== document && data.containerElement !== document.body) {\n if (options.horizontal) {\n data.containerElement.scrollLeft = data.currentPosition;\n } else {\n data.containerElement.scrollTop = data.currentPosition;\n }\n } else {\n if (options.horizontal) {\n window.scrollTo(data.currentPosition, 0);\n } else {\n window.scrollTo(0, data.currentPosition);\n }\n }\n\n if (data.percent < 1) {\n var easedAnimate = animateScroll.bind(null, easing, options);\n requestAnimationFrameHelper.call(window, easedAnimate);\n return;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPosition);\n }\n};\n\nvar setContainer = function setContainer(options) {\n options.data.containerElement = !options ? null : options.containerId ? document.getElementById(options.containerId) : options.container && options.container.nodeType ? options.container : document;\n};\n\nvar animateTopScroll = function animateTopScroll(scrollOffset, options, to, target) {\n options.data = options.data || makeData();\n\n window.clearTimeout(options.data.delayTimeout);\n\n _cancelEvents2.default.subscribe(function () {\n options.data.cancel = true;\n });\n\n setContainer(options);\n\n options.data.start = null;\n options.data.cancel = false;\n options.data.startPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n options.data.targetPosition = options.absolute ? scrollOffset : scrollOffset + options.data.startPosition;\n\n if (options.data.startPosition === options.data.targetPosition) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](options.data.to, options.data.target, options.data.currentPosition);\n }\n return;\n }\n\n options.data.delta = Math.round(options.data.targetPosition - options.data.startPosition);\n\n options.data.duration = functionWrapper(options.duration)(options.data.delta);\n options.data.duration = isNaN(parseFloat(options.data.duration)) ? 1000 : parseFloat(options.data.duration);\n options.data.to = to;\n options.data.target = target;\n\n var easing = getAnimationType(options);\n var easedAnimate = animateScroll.bind(null, easing, options);\n\n if (options && options.delay > 0) {\n options.data.delayTimeout = window.setTimeout(function () {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n }, options.delay);\n return;\n }\n\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n};\n\nvar proceedOptions = function proceedOptions(options) {\n options = _extends({}, options);\n options.data = options.data || makeData();\n options.absolute = true;\n return options;\n};\n\nvar scrollToTop = function scrollToTop(options) {\n animateTopScroll(0, proceedOptions(options));\n};\n\nvar scrollTo = function scrollTo(toPosition, options) {\n animateTopScroll(toPosition, proceedOptions(options));\n};\n\nvar scrollToBottom = function scrollToBottom(options) {\n options = proceedOptions(options);\n setContainer(options);\n animateTopScroll(options.horizontal ? scrollContainerWidth(options) : scrollContainerHeight(options), options);\n};\n\nvar scrollMore = function scrollMore(toPosition, options) {\n options = proceedOptions(options);\n setContainer(options);\n var currentPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n animateTopScroll(toPosition + currentPosition, options);\n};\n\nexports.default = {\n animateTopScroll: animateTopScroll,\n getAnimationType: getAnimationType,\n scrollToTop: scrollToTop,\n scrollToBottom: scrollToBottom,\n scrollTo: scrollTo,\n scrollMore: scrollMore\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar events = ['mousedown', 'mousewheel', 'touchmove', 'keydown'];\n\nexports.default = {\n subscribe: function subscribe(cancelEvent) {\n return typeof document !== 'undefined' && events.forEach(function (event) {\n return (0, _passiveEventListeners.addPassiveEventListener)(document, event, cancelEvent);\n });\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * Tell the browser that the event listener won't prevent a scroll.\r\n * Allowing the browser to continue scrolling without having to\r\n * to wait for the listener to return.\r\n */\nvar addPassiveEventListener = exports.addPassiveEventListener = function addPassiveEventListener(target, eventName, listener) {\n var supportsPassiveOption = function () {\n var supportsPassiveOption = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassiveOption = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return supportsPassiveOption;\n }();\n target.addEventListener(eventName, listener, supportsPassiveOption ? { passive: true } : false);\n};\n\nvar removePassiveEventListener = exports.removePassiveEventListener = function removePassiveEventListener(target, eventName, listener) {\n target.removeEventListener(eventName, listener);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nexports.default = function (Component) {\n var Element = function (_React$Component) {\n _inherits(Element, _React$Component);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this.childBindings = {\n domNode: null\n };\n return _this;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n _scroller2.default.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n _scroller2.default.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(_react2.default.Component);\n\n ;\n\n Element.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n };\n\n return Element;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar Events = {\n\tregistered: {},\n\tscrollEvent: {\n\t\tregister: function register(evtName, callback) {\n\t\t\tEvents.registered[evtName] = callback;\n\t\t},\n\t\tremove: function remove(evtName) {\n\t\t\tEvents.registered[evtName] = null;\n\t\t}\n\t}\n};\n\nexports.default = Events;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scrollHash = {\n mountFlag: false,\n initialized: false,\n scroller: null,\n containers: {},\n\n mount: function mount(scroller) {\n this.scroller = scroller;\n\n this.handleHashChange = this.handleHashChange.bind(this);\n window.addEventListener('hashchange', this.handleHashChange);\n\n this.initStateFromHash();\n this.mountFlag = true;\n },\n mapContainer: function mapContainer(to, container) {\n this.containers[to] = container;\n },\n isMounted: function isMounted() {\n return this.mountFlag;\n },\n isInitialized: function isInitialized() {\n return this.initialized;\n },\n initStateFromHash: function initStateFromHash() {\n var _this = this;\n\n var hash = this.getHash();\n if (hash) {\n window.setTimeout(function () {\n _this.scrollTo(hash, true);\n _this.initialized = true;\n }, 10);\n } else {\n this.initialized = true;\n }\n },\n scrollTo: function scrollTo(to, isInit) {\n var scroller = this.scroller;\n var element = scroller.get(to);\n if (element && (isInit || to !== scroller.getActiveLink())) {\n var container = this.containers[to] || document;\n scroller.scrollTo(to, { container: container });\n }\n },\n getHash: function getHash() {\n return _utils2.default.getHash();\n },\n changeHash: function changeHash(to, saveHashHistory) {\n if (this.isInitialized() && _utils2.default.getHash() !== to) {\n _utils2.default.updateHash(to, saveHashHistory);\n }\n },\n handleHashChange: function handleHashChange() {\n this.scrollTo(this.getHash());\n },\n unmount: function unmount() {\n this.scroller = null;\n this.containers = null;\n window.removeEventListener('hashchange', this.handleHashChange);\n }\n};\n\nexports.default = scrollHash;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollSpy = require('./scroll-spy');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _scrollHash = require('./scroll-hash');\n\nvar _scrollHash2 = _interopRequireDefault(_scrollHash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar protoTypes = {\n to: _propTypes2.default.string.isRequired,\n containerId: _propTypes2.default.string,\n container: _propTypes2.default.object,\n activeClass: _propTypes2.default.string,\n spy: _propTypes2.default.bool,\n horizontal: _propTypes2.default.bool,\n smooth: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n offset: _propTypes2.default.number,\n delay: _propTypes2.default.number,\n isDynamic: _propTypes2.default.bool,\n onClick: _propTypes2.default.func,\n duration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n absolute: _propTypes2.default.bool,\n onSetActive: _propTypes2.default.func,\n onSetInactive: _propTypes2.default.func,\n ignoreCancelEvents: _propTypes2.default.bool,\n hashSpy: _propTypes2.default.bool,\n saveHashHistory: _propTypes2.default.bool,\n spyThrottle: _propTypes2.default.number\n};\n\nexports.default = function (Component, customScroller) {\n\n var scroller = customScroller || _scroller2.default;\n\n var Link = function (_React$PureComponent) {\n _inherits(Link, _React$PureComponent);\n\n function Link(props) {\n _classCallCheck(this, Link);\n\n var _this = _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Link, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId && !container) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!_scrollSpy2.default.isMounted(scrollSpyContainer)) {\n _scrollSpy2.default.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!_scrollHash2.default.isMounted()) {\n _scrollHash2.default.mount(scroller);\n }\n _scrollHash2.default.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n _scrollSpy2.default.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n _scrollSpy2.default.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return _react2.default.createElement(Component, props);\n }\n }]);\n\n return Link;\n }(_react2.default.PureComponent);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.spyHandler = function (x, y) {\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (_scrollHash2.default.isMounted() && !_scrollHash2.default.isInitialized()) {\n return;\n }\n\n var horizontal = _this2.props.horizontal;\n\n var to = _this2.props.to;\n var element = null;\n var isInside = void 0;\n var isOutside = void 0;\n\n if (horizontal) {\n var elemLeftBound = 0;\n var elemRightBound = 0;\n var containerLeft = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerLeft = containerCords.left;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemLeftBound = cords.left - containerLeft + x;\n elemRightBound = elemLeftBound + cords.width;\n }\n\n var offsetX = x - _this2.props.offset;\n isInside = offsetX >= Math.floor(elemLeftBound) && offsetX < Math.floor(elemRightBound);\n isOutside = offsetX < Math.floor(elemLeftBound) || offsetX >= Math.floor(elemRightBound);\n } else {\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var _containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = _containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var _cords = element.getBoundingClientRect();\n elemTopBound = _cords.top - containerTop + y;\n elemBottomBound = elemTopBound + _cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n }\n\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && _scrollHash2.default.getHash() === to) {\n var _props$saveHashHistor = _this2.props.saveHashHistory,\n saveHashHistory = _props$saveHashHistor === undefined ? false : _props$saveHashHistor;\n\n _scrollHash2.default.changeHash(\"\", saveHashHistory);\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive(to, element);\n }\n }\n\n if (isInside && (activeLink !== to || _this2.state.active === false)) {\n scroller.setActiveLink(to);\n\n var _props$saveHashHistor2 = _this2.props.saveHashHistory,\n _saveHashHistory = _props$saveHashHistor2 === undefined ? false : _props$saveHashHistor2;\n\n _this2.props.hashSpy && _scrollHash2.default.changeHash(to, _saveHashHistory);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to, element);\n }\n }\n };\n };\n\n ;\n\n Link.propTypes = protoTypes;\n\n Link.defaultProps = { offset: 0 };\n\n return Link;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _lodash = require('lodash.throttle');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// The eventHandler will execute at a rate of 15fps by default\nvar eventThrottler = function eventThrottler(eventHandler) {\n var throttleAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 66;\n return (0, _lodash2.default)(eventHandler, throttleAmount);\n};\n\nvar scrollSpy = {\n\n spyCallbacks: [],\n spySetState: [],\n scrollSpyContainers: [],\n\n mount: function mount(scrollSpyContainer, throttle) {\n if (scrollSpyContainer) {\n var eventHandler = eventThrottler(function (event) {\n scrollSpy.scrollHandler(scrollSpyContainer);\n }, throttle);\n scrollSpy.scrollSpyContainers.push(scrollSpyContainer);\n (0, _passiveEventListeners.addPassiveEventListener)(scrollSpyContainer, 'scroll', eventHandler);\n }\n },\n isMounted: function isMounted(scrollSpyContainer) {\n return scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer) !== -1;\n },\n currentPositionX: function currentPositionX(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageYOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n } else {\n return scrollSpyContainer.scrollLeft;\n }\n },\n currentPositionY: function currentPositionY(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n } else {\n return scrollSpyContainer.scrollTop;\n }\n },\n scrollHandler: function scrollHandler(scrollSpyContainer) {\n var callbacks = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)].spyCallbacks || [];\n callbacks.forEach(function (c) {\n return c(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n });\n },\n addStateHandler: function addStateHandler(handler) {\n scrollSpy.spySetState.push(handler);\n },\n addSpyHandler: function addSpyHandler(handler, scrollSpyContainer) {\n var container = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)];\n\n if (!container.spyCallbacks) {\n container.spyCallbacks = [];\n }\n\n container.spyCallbacks.push(handler);\n\n handler(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n },\n updateStates: function updateStates() {\n scrollSpy.spySetState.forEach(function (s) {\n return s();\n });\n },\n unmount: function unmount(stateHandler, spyHandler) {\n scrollSpy.scrollSpyContainers.forEach(function (c) {\n return c.spyCallbacks && c.spyCallbacks.length && c.spyCallbacks.splice(c.spyCallbacks.indexOf(spyHandler), 1);\n });\n\n if (scrollSpy.spySetState && scrollSpy.spySetState.length) {\n scrollSpy.spySetState.splice(scrollSpy.spySetState.indexOf(stateHandler), 1);\n }\n\n document.removeEventListener('scroll', scrollSpy.scrollHandler);\n },\n\n\n update: function update() {\n return scrollSpy.scrollSpyContainers.forEach(function (c) {\n return scrollSpy.scrollHandler(c);\n });\n }\n};\n\nexports.default = scrollSpy;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _animateScroll = require('./animate-scroll');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar __mapped = {};\nvar __activeLink = void 0;\n\nexports.default = {\n\n unmount: function unmount() {\n __mapped = {};\n },\n\n register: function register(name, element) {\n __mapped[name] = element;\n },\n\n unregister: function unregister(name) {\n delete __mapped[name];\n },\n\n get: function get(name) {\n return __mapped[name] || document.getElementById(name) || document.getElementsByName(name)[0] || document.getElementsByClassName(name)[0];\n },\n\n setActiveLink: function setActiveLink(link) {\n return __activeLink = link;\n },\n\n getActiveLink: function getActiveLink() {\n return __activeLink;\n },\n\n scrollTo: function scrollTo(to, props) {\n\n var target = this.get(to);\n\n if (!target) {\n console.warn(\"target Element not found\");\n return;\n }\n\n props = _extends({}, props, { absolute: false });\n\n var containerId = props.containerId;\n var container = props.container;\n\n var containerElement = void 0;\n if (containerId) {\n containerElement = document.getElementById(containerId);\n } else if (container && container.nodeType) {\n containerElement = container;\n } else {\n containerElement = document;\n }\n\n props.absolute = true;\n\n var horizontal = props.horizontal;\n var scrollOffset = _utils2.default.scrollOffset(containerElement, target, horizontal) + (props.offset || 0);\n\n /*\r\n * if animate is not provided just scroll into the view\r\n */\n if (!props.smooth) {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](to, target);\n }\n\n if (containerElement === document) {\n if (props.horizontal) {\n window.scrollTo(scrollOffset, 0);\n } else {\n window.scrollTo(0, scrollOffset);\n }\n } else {\n containerElement.scrollTop = scrollOffset;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](to, target);\n }\n\n return;\n }\n\n /*\r\n * Animate scrolling\r\n */\n\n _animateScroll2.default.animateTopScroll(scrollOffset, props, to, target);\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n /*\r\n * https://github.com/oblador/angular-scroll (duScrollDefaultEasing)\r\n */\n defaultEasing: function defaultEasing(x) {\n if (x < 0.5) {\n return Math.pow(x * 2, 2) / 2;\n }\n return 1 - Math.pow((1 - x) * 2, 2) / 2;\n },\n /*\r\n * https://gist.github.com/gre/1650294\r\n */\n // no easing, no acceleration\n linear: function linear(x) {\n return x;\n },\n // accelerating from zero velocity\n easeInQuad: function easeInQuad(x) {\n return x * x;\n },\n // decelerating to zero velocity\n easeOutQuad: function easeOutQuad(x) {\n return x * (2 - x);\n },\n // acceleration until halfway, then deceleration\n easeInOutQuad: function easeInOutQuad(x) {\n return x < .5 ? 2 * x * x : -1 + (4 - 2 * x) * x;\n },\n // accelerating from zero velocity \n easeInCubic: function easeInCubic(x) {\n return x * x * x;\n },\n // decelerating to zero velocity π\n easeOutCubic: function easeOutCubic(x) {\n return --x * x * x + 1;\n },\n // acceleration until halfway, then deceleration \n easeInOutCubic: function easeInOutCubic(x) {\n return x < .5 ? 4 * x * x * x : (x - 1) * (2 * x - 2) * (2 * x - 2) + 1;\n },\n // accelerating from zero velocity \n easeInQuart: function easeInQuart(x) {\n return x * x * x * x;\n },\n // decelerating to zero velocity \n easeOutQuart: function easeOutQuart(x) {\n return 1 - --x * x * x * x;\n },\n // acceleration until halfway, then deceleration\n easeInOutQuart: function easeInOutQuart(x) {\n return x < .5 ? 8 * x * x * x * x : 1 - 8 * --x * x * x * x;\n },\n // accelerating from zero velocity\n easeInQuint: function easeInQuint(x) {\n return x * x * x * x * x;\n },\n // decelerating to zero velocity\n easeOutQuint: function easeOutQuint(x) {\n return 1 + --x * x * x * x * x;\n },\n // acceleration until halfway, then deceleration \n easeInOutQuint: function easeInOutQuint(x) {\n return x < .5 ? 16 * x * x * x * x * x : 1 + 16 * --x * x * x * x * x;\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar updateHash = function updateHash(hash, historyUpdate) {\n var hashVal = hash.indexOf(\"#\") === 0 ? hash.substring(1) : hash;\n var hashToUpdate = hashVal ? \"#\" + hashVal : \"\";\n var curLoc = window && window.location;\n var urlToPush = hashToUpdate ? curLoc.pathname + curLoc.search + hashToUpdate : curLoc.pathname + curLoc.search;\n historyUpdate ? history.pushState(history.state, \"\", urlToPush) : history.replaceState(history.state, \"\", urlToPush);\n};\n\nvar getHash = function getHash() {\n return window.location.hash.replace(/^#/, \"\");\n};\n\nvar filterElementInContainer = function filterElementInContainer(container) {\n return function (element) {\n return container.contains ? container != element && container.contains(element) : !!(container.compareDocumentPosition(element) & 16);\n };\n};\n\nvar isPositioned = function isPositioned(element) {\n return getComputedStyle(element).position !== \"static\";\n};\n\nvar getElementOffsetInfoUntil = function getElementOffsetInfoUntil(element, predicate) {\n var offsetTop = element.offsetTop;\n var currentOffsetParent = element.offsetParent;\n\n while (currentOffsetParent && !predicate(currentOffsetParent)) {\n offsetTop += currentOffsetParent.offsetTop;\n currentOffsetParent = currentOffsetParent.offsetParent;\n }\n\n return { offsetTop: offsetTop, offsetParent: currentOffsetParent };\n};\n\nvar scrollOffset = function scrollOffset(c, t, horizontal) {\n if (horizontal) {\n return c === document ? t.getBoundingClientRect().left + (window.scrollX || window.pageXOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetLeft : t.offsetLeft - c.offsetLeft;\n } else {\n if (c === document) {\n return t.getBoundingClientRect().top + (window.scrollY || window.pageYOffset);\n }\n\n // The offsetParent of an element, according to MDN, is its nearest positioned\n // (an element whose position is anything other than static) ancestor. The offsetTop\n // of an element is taken with respect to its offsetParent which may not neccessarily\n // be its parentElement except the parent itself is positioned.\n\n // So if containerElement is positioned, then it must be an offsetParent somewhere\n // If it happens that targetElement is a descendant of the containerElement, and there\n // is not intermediate positioned element between the two of them, i.e.\n // targetElement\"s offsetParent is the same as the containerElement, then the\n // distance between the two will be the offsetTop of the targetElement.\n // If, on the other hand, there are intermediate positioned elements between the\n // two entities, the distance between the targetElement and the containerElement\n // will be the accumulation of the offsetTop of the element and that of its\n // subsequent offsetParent until the containerElement is reached, since it\n // will also be an offsetParent at some point due to the fact that it is positioned.\n\n // If the containerElement is not positioned, then it can\"t be an offsetParent,\n // which means that the offsetTop of the targetElement would not be with respect to it.\n // However, if the two of them happen to have the same offsetParent, then\n // the distance between them will be the difference between their offsetTop\n // since they are both taken with respect to the same entity.\n // The last resort would be to accumulate their offsetTop until a common\n // offsetParent is reached (usually the document) and taking the difference\n // between the accumulated offsetTops\n\n if (isPositioned(c)) {\n if (t.offsetParent !== c) {\n var isContainerElementOrDocument = function isContainerElementOrDocument(e) {\n return e === c || e === document;\n };\n\n var _getElementOffsetInfo = getElementOffsetInfoUntil(t, isContainerElementOrDocument),\n offsetTop = _getElementOffsetInfo.offsetTop,\n offsetParent = _getElementOffsetInfo.offsetParent;\n\n if (offsetParent !== c) {\n throw new Error(\"Seems containerElement is not an ancestor of the Element\");\n }\n\n return offsetTop;\n }\n\n return t.offsetTop;\n }\n\n if (t.offsetParent === c.offsetParent) {\n return t.offsetTop - c.offsetTop;\n }\n\n var isDocument = function isDocument(e) {\n return e === document;\n };\n return getElementOffsetInfoUntil(t, isDocument).offsetTop - getElementOffsetInfoUntil(c, isDocument).offsetTop;\n }\n};\n\nexports.default = {\n updateHash: updateHash,\n getHash: getHash,\n filterElementInContainer: filterElementInContainer,\n scrollOffset: scrollOffset\n};","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _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\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","(()=>{var t={757:(t,e,r)=>{t.exports=r(666)},666:t=>{var e=function(t){\"use strict\";var e,r=Object.prototype,n=r.hasOwnProperty,o=\"function\"==typeof Symbol?Symbol:{},i=o.iterator||\"@@iterator\",a=o.asyncIterator||\"@@asyncIterator\",c=o.toStringTag||\"@@toStringTag\";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},\"\")}catch(t){u=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var o=e&&e.prototype instanceof v?e:v,i=Object.create(o.prototype),a=new L(n||[]);return i._invoke=function(t,e,r){var n=l;return function(o,i){if(n===p)throw new Error(\"Generator is already running\");if(n===y){if(\"throw\"===o)throw i;return N()}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var c=P(a,r);if(c){if(c===d)continue;return c}}if(\"next\"===r.method)r.sent=r._sent=r.arg;else if(\"throw\"===r.method){if(n===l)throw n=y,r.arg;r.dispatchException(r.arg)}else\"return\"===r.method&&r.abrupt(\"return\",r.arg);n=p;var u=f(t,e,r);if(\"normal\"===u.type){if(n=r.done?y:h,u.arg===d)continue;return{value:u.arg,done:r.done}}\"throw\"===u.type&&(n=y,r.method=\"throw\",r.arg=u.arg)}}}(t,r,a),i}function f(t,e,r){try{return{type:\"normal\",arg:t.call(e,r)}}catch(t){return{type:\"throw\",arg:t}}}t.wrap=s;var l=\"suspendedStart\",h=\"suspendedYield\",p=\"executing\",y=\"completed\",d={};function v(){}function m(){}function g(){}var w={};w[i]=function(){return this};var b=Object.getPrototypeOf,x=b&&b(b(S([])));x&&x!==r&&n.call(x,i)&&(w=x);var O=g.prototype=v.prototype=Object.create(w);function _(t){[\"next\",\"throw\",\"return\"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if(\"throw\"!==u.type){var s=u.arg,l=s.value;return l&&\"object\"==typeof l&&n.call(l,\"__await\")?e.resolve(l.__await).then((function(t){r(\"next\",t,a,c)}),(function(t){r(\"throw\",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r(\"throw\",t,a,c)}))}c(u.arg)}var o;this._invoke=function(t,n){function i(){return new e((function(e,o){r(t,n,e,o)}))}return o=o?o.then(i,i):i()}}function P(t,r){var n=t.iterator[r.method];if(n===e){if(r.delegate=null,\"throw\"===r.method){if(t.iterator.return&&(r.method=\"return\",r.arg=e,P(t,r),\"throw\"===r.method))return d;r.method=\"throw\",r.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return d}var o=f(n,t.iterator,r.arg);if(\"throw\"===o.type)return r.method=\"throw\",r.arg=o.arg,r.delegate=null,d;var i=o.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,\"return\"!==r.method&&(r.method=\"next\",r.arg=e),r.delegate=null,d):i:(r.method=\"throw\",r.arg=new TypeError(\"iterator result is not an object\"),r.delegate=null,d)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function E(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function S(t){if(t){var r=t[i];if(r)return r.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if(\"root\"===a.tryLoc)return o(\"end\");if(a.tryLoc<=this.prev){var u=n.call(a,\"catchLoc\"),s=n.call(a,\"finallyLoc\");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if(\"throw\"===n.type){var o=n.arg;E(r)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,r,n){return this.delegate={iterator:S(t),resultName:r,nextLoc:n},\"next\"===this.method&&(this.arg=e),d}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function(\"r\",\"regeneratorRuntime = r\")(e)}}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var i=e[n]={exports:{}};return t[n](i,i.exports,r),i.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})};var n={};(()=>{\"use strict\";function t(t,e){for(var r=0;rm,default:()=>g});var s=r(757),f=r.n(s);const l=require(\"react\");var h=r.n(l);const p=require(\"tsparticles-engine\"),y=require(\"fast-deep-equal/react\");var d=r.n(y);var v=function(t,e,r,n){return new(r||(r=Promise))((function(o,i){function a(t){try{u(n.next(t))}catch(t){i(t)}}function c(t){try{u(n.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(a,c)}u((n=n.apply(t,e||[])).next())}))},m=function(r){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");Object.defineProperty(t,\"prototype\",{value:Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),writable:!1}),e&&a(t,e)}(y,r);var n,o,c,s,l=(c=y,s=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}(),function(){var t,r=e(c);if(s){var n=e(this).constructor;t=Reflect.construct(r,arguments,n)}else t=r.apply(this,arguments);return u(this,t)});function y(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,y),(e=l.call(this,t)).state={init:!1,library:void 0},e}return n=y,(o=[{key:\"destroy\",value:function(){this.state.library&&(this.state.library.destroy(),this.setState({library:void 0}))}},{key:\"shouldComponentUpdate\",value:function(t){return!d()(t,this.props)}},{key:\"componentDidUpdate\",value:function(){this.refresh()}},{key:\"forceUpdate\",value:function(){var t=this;this.refresh().then((function(){i(e(y.prototype),\"forceUpdate\",t).call(t)}))}},{key:\"componentDidMount\",value:function(){v(this,void 0,void 0,f().mark((function t(){var e=this;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.props.init){t.next=3;break}return t.next=3,this.props.init(p.tsParticles);case 3:this.setState({init:!0},(function(){return v(e,void 0,void 0,f().mark((function t(){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.loadParticles();case 2:case\"end\":return t.stop()}}),t,this)})))}));case 4:case\"end\":return t.stop()}}),t,this)})))}},{key:\"componentWillUnmount\",value:function(){this.destroy()}},{key:\"render\",value:function(){var t=this.props,e=t.width,r=t.height,n=t.className,o=t.canvasClassName,i=t.id;return h().createElement(\"div\",{className:n,id:i},h().createElement(\"canvas\",{className:o,style:Object.assign(Object.assign({},this.props.style),{width:e,height:r})}))}},{key:\"refresh\",value:function(){return v(this,void 0,void 0,f().mark((function t(){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.destroy(),t.next=3,this.loadParticles();case 3:case\"end\":return t.stop()}}),t,this)})))}},{key:\"loadParticles\",value:function(){var t;return v(this,void 0,void 0,f().mark((function e(){var r,n,o=this;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.state.init){e.next=2;break}return e.abrupt(\"return\");case 2:if(r=function(t){return v(o,void 0,void 0,f().mark((function e(){return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.props.container&&(this.props.container.current=t),this.setState({library:t}),!this.props.loaded){e.next=5;break}return e.next=5,this.props.loaded(t);case 5:case\"end\":return e.stop()}}),e,this)})))},!this.props.url){e.next=9;break}return e.next=6,p.tsParticles.loadJSON(this.props.id,this.props.url);case 6:e.t0=e.sent,e.next=12;break;case 9:return e.next=11,p.tsParticles.load(this.props.id,null!==(t=this.props.params)&&void 0!==t?t:this.props.options);case 11:e.t0=e.sent;case 12:return n=e.t0,e.next=15,r(n);case 15:case\"end\":return e.stop()}}),e,this)})))}}])&&t(n.prototype,o),Object.defineProperty(n,\"prototype\",{writable:!1}),y}(l.Component);m.defaultProps={width:\"100%\",height:\"100%\",options:{},style:{},url:void 0,id:\"tsparticles\"};const g=m})();var o=exports;for(var i in n)o[i]=n[i];n.__esModule&&Object.defineProperty(o,\"__esModule\",{value:!0})})();","const ReactParticles = require(\"./cjs/particles\");\n\nfor (let key in ReactParticles) {\n ReactParticles.default[key] = ReactParticles[key];\n}\n\nmodule.exports = ReactParticles.default;\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1 result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","'use strict'\n\nmodule.exports = require('./index.js')()\n","'use strict'\nmodule.exports = rfdc\n\nfunction copyBuffer (cur) {\n if (cur instanceof Buffer) {\n return Buffer.from(cur)\n }\n\n return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length)\n}\n\nfunction rfdc (opts) {\n opts = opts || {}\n\n if (opts.circles) return rfdcCircles(opts)\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n a2[k] = fn(cur)\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = clone(cur)\n }\n }\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n return o2\n }\n}\n\nfunction rfdcCircles (opts) {\n var refs = []\n var refsNew = []\n\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n var index = refs.indexOf(cur)\n if (index !== -1) {\n a2[k] = refsNew[index]\n } else {\n a2[k] = fn(cur)\n }\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = clone(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","let colors = require('./lib/public/colors')\nmodule.exports = (colors.__esModule ? colors : { default: colors }).default\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _log = _interopRequireDefault(require(\"../util/log\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction warn({ version , from , to }) {\n _log.default.warn(`${from}-color-renamed`, [\n `As of Tailwind CSS ${version}, \\`${from}\\` has been renamed to \\`${to}\\`.`,\n \"Update your configuration file to silence this warning.\", \n ]);\n}\nvar _default = {\n inherit: \"inherit\",\n current: \"currentColor\",\n transparent: \"transparent\",\n black: \"#000\",\n white: \"#fff\",\n slate: {\n 50: \"#f8fafc\",\n 100: \"#f1f5f9\",\n 200: \"#e2e8f0\",\n 300: \"#cbd5e1\",\n 400: \"#94a3b8\",\n 500: \"#64748b\",\n 600: \"#475569\",\n 700: \"#334155\",\n 800: \"#1e293b\",\n 900: \"#0f172a\"\n },\n gray: {\n 50: \"#f9fafb\",\n 100: \"#f3f4f6\",\n 200: \"#e5e7eb\",\n 300: \"#d1d5db\",\n 400: \"#9ca3af\",\n 500: \"#6b7280\",\n 600: \"#4b5563\",\n 700: \"#374151\",\n 800: \"#1f2937\",\n 900: \"#111827\"\n },\n zinc: {\n 50: \"#fafafa\",\n 100: \"#f4f4f5\",\n 200: \"#e4e4e7\",\n 300: \"#d4d4d8\",\n 400: \"#a1a1aa\",\n 500: \"#71717a\",\n 600: \"#52525b\",\n 700: \"#3f3f46\",\n 800: \"#27272a\",\n 900: \"#18181b\"\n },\n neutral: {\n 50: \"#fafafa\",\n 100: \"#f5f5f5\",\n 200: \"#e5e5e5\",\n 300: \"#d4d4d4\",\n 400: \"#a3a3a3\",\n 500: \"#737373\",\n 600: \"#525252\",\n 700: \"#404040\",\n 800: \"#262626\",\n 900: \"#171717\"\n },\n stone: {\n 50: \"#fafaf9\",\n 100: \"#f5f5f4\",\n 200: \"#e7e5e4\",\n 300: \"#d6d3d1\",\n 400: \"#a8a29e\",\n 500: \"#78716c\",\n 600: \"#57534e\",\n 700: \"#44403c\",\n 800: \"#292524\",\n 900: \"#1c1917\"\n },\n red: {\n 50: \"#fef2f2\",\n 100: \"#fee2e2\",\n 200: \"#fecaca\",\n 300: \"#fca5a5\",\n 400: \"#f87171\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\",\n 800: \"#991b1b\",\n 900: \"#7f1d1d\"\n },\n orange: {\n 50: \"#fff7ed\",\n 100: \"#ffedd5\",\n 200: \"#fed7aa\",\n 300: \"#fdba74\",\n 400: \"#fb923c\",\n 500: \"#f97316\",\n 600: \"#ea580c\",\n 700: \"#c2410c\",\n 800: \"#9a3412\",\n 900: \"#7c2d12\"\n },\n amber: {\n 50: \"#fffbeb\",\n 100: \"#fef3c7\",\n 200: \"#fde68a\",\n 300: \"#fcd34d\",\n 400: \"#fbbf24\",\n 500: \"#f59e0b\",\n 600: \"#d97706\",\n 700: \"#b45309\",\n 800: \"#92400e\",\n 900: \"#78350f\"\n },\n yellow: {\n 50: \"#fefce8\",\n 100: \"#fef9c3\",\n 200: \"#fef08a\",\n 300: \"#fde047\",\n 400: \"#facc15\",\n 500: \"#eab308\",\n 600: \"#ca8a04\",\n 700: \"#a16207\",\n 800: \"#854d0e\",\n 900: \"#713f12\"\n },\n lime: {\n 50: \"#f7fee7\",\n 100: \"#ecfccb\",\n 200: \"#d9f99d\",\n 300: \"#bef264\",\n 400: \"#a3e635\",\n 500: \"#84cc16\",\n 600: \"#65a30d\",\n 700: \"#4d7c0f\",\n 800: \"#3f6212\",\n 900: \"#365314\"\n },\n green: {\n 50: \"#f0fdf4\",\n 100: \"#dcfce7\",\n 200: \"#bbf7d0\",\n 300: \"#86efac\",\n 400: \"#4ade80\",\n 500: \"#22c55e\",\n 600: \"#16a34a\",\n 700: \"#15803d\",\n 800: \"#166534\",\n 900: \"#14532d\"\n },\n emerald: {\n 50: \"#ecfdf5\",\n 100: \"#d1fae5\",\n 200: \"#a7f3d0\",\n 300: \"#6ee7b7\",\n 400: \"#34d399\",\n 500: \"#10b981\",\n 600: \"#059669\",\n 700: \"#047857\",\n 800: \"#065f46\",\n 900: \"#064e3b\"\n },\n teal: {\n 50: \"#f0fdfa\",\n 100: \"#ccfbf1\",\n 200: \"#99f6e4\",\n 300: \"#5eead4\",\n 400: \"#2dd4bf\",\n 500: \"#14b8a6\",\n 600: \"#0d9488\",\n 700: \"#0f766e\",\n 800: \"#115e59\",\n 900: \"#134e4a\"\n },\n cyan: {\n 50: \"#ecfeff\",\n 100: \"#cffafe\",\n 200: \"#a5f3fc\",\n 300: \"#67e8f9\",\n 400: \"#22d3ee\",\n 500: \"#06b6d4\",\n 600: \"#0891b2\",\n 700: \"#0e7490\",\n 800: \"#155e75\",\n 900: \"#164e63\"\n },\n sky: {\n 50: \"#f0f9ff\",\n 100: \"#e0f2fe\",\n 200: \"#bae6fd\",\n 300: \"#7dd3fc\",\n 400: \"#38bdf8\",\n 500: \"#0ea5e9\",\n 600: \"#0284c7\",\n 700: \"#0369a1\",\n 800: \"#075985\",\n 900: \"#0c4a6e\"\n },\n blue: {\n 50: \"#eff6ff\",\n 100: \"#dbeafe\",\n 200: \"#bfdbfe\",\n 300: \"#93c5fd\",\n 400: \"#60a5fa\",\n 500: \"#3b82f6\",\n 600: \"#2563eb\",\n 700: \"#1d4ed8\",\n 800: \"#1e40af\",\n 900: \"#1e3a8a\"\n },\n indigo: {\n 50: \"#eef2ff\",\n 100: \"#e0e7ff\",\n 200: \"#c7d2fe\",\n 300: \"#a5b4fc\",\n 400: \"#818cf8\",\n 500: \"#6366f1\",\n 600: \"#4f46e5\",\n 700: \"#4338ca\",\n 800: \"#3730a3\",\n 900: \"#312e81\"\n },\n violet: {\n 50: \"#f5f3ff\",\n 100: \"#ede9fe\",\n 200: \"#ddd6fe\",\n 300: \"#c4b5fd\",\n 400: \"#a78bfa\",\n 500: \"#8b5cf6\",\n 600: \"#7c3aed\",\n 700: \"#6d28d9\",\n 800: \"#5b21b6\",\n 900: \"#4c1d95\"\n },\n purple: {\n 50: \"#faf5ff\",\n 100: \"#f3e8ff\",\n 200: \"#e9d5ff\",\n 300: \"#d8b4fe\",\n 400: \"#c084fc\",\n 500: \"#a855f7\",\n 600: \"#9333ea\",\n 700: \"#7e22ce\",\n 800: \"#6b21a8\",\n 900: \"#581c87\"\n },\n fuchsia: {\n 50: \"#fdf4ff\",\n 100: \"#fae8ff\",\n 200: \"#f5d0fe\",\n 300: \"#f0abfc\",\n 400: \"#e879f9\",\n 500: \"#d946ef\",\n 600: \"#c026d3\",\n 700: \"#a21caf\",\n 800: \"#86198f\",\n 900: \"#701a75\"\n },\n pink: {\n 50: \"#fdf2f8\",\n 100: \"#fce7f3\",\n 200: \"#fbcfe8\",\n 300: \"#f9a8d4\",\n 400: \"#f472b6\",\n 500: \"#ec4899\",\n 600: \"#db2777\",\n 700: \"#be185d\",\n 800: \"#9d174d\",\n 900: \"#831843\"\n },\n rose: {\n 50: \"#fff1f2\",\n 100: \"#ffe4e6\",\n 200: \"#fecdd3\",\n 300: \"#fda4af\",\n 400: \"#fb7185\",\n 500: \"#f43f5e\",\n 600: \"#e11d48\",\n 700: \"#be123c\",\n 800: \"#9f1239\",\n 900: \"#881337\"\n },\n get lightBlue () {\n warn({\n version: \"v2.2\",\n from: \"lightBlue\",\n to: \"sky\"\n });\n return this.sky;\n },\n get warmGray () {\n warn({\n version: \"v3.0\",\n from: \"warmGray\",\n to: \"stone\"\n });\n return this.stone;\n },\n get trueGray () {\n warn({\n version: \"v3.0\",\n from: \"trueGray\",\n to: \"neutral\"\n });\n return this.neutral;\n },\n get coolGray () {\n warn({\n version: \"v3.0\",\n from: \"coolGray\",\n to: \"gray\"\n });\n return this.gray;\n },\n get blueGray () {\n warn({\n version: \"v3.0\",\n from: \"blueGray\",\n to: \"slate\"\n });\n return this.slate;\n }\n};\nexports.default = _default;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dim = dim;\nexports.default = void 0;\nvar _picocolors = _interopRequireDefault(require(\"picocolors\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet alreadyShown = new Set();\nfunction log(type, messages, key) {\n if (process.env.JEST_WORKER_ID !== undefined) return;\n if (key && alreadyShown.has(key)) return;\n if (key) alreadyShown.add(key);\n console.warn(\"\");\n messages.forEach((message)=>console.warn(type, \"-\", message)\n );\n}\nfunction dim(input) {\n return _picocolors.default.dim(input);\n}\nvar _default = {\n info (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.cyan(\"info\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n },\n warn (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.yellow(\"warn\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n },\n risk (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.magenta(\"risk\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n }\n};\nexports.default = _default;\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _EventDispatcher_listeners;\nexport class EventDispatcher {\n constructor() {\n _EventDispatcher_listeners.set(this, void 0);\n __classPrivateFieldSet(this, _EventDispatcher_listeners, new Map(), \"f\");\n }\n addEventListener(type, listener) {\n var _a;\n this.removeEventListener(type, listener);\n if (!__classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").get(type)) {\n __classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").set(type, []);\n }\n (_a = __classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").get(type)) === null || _a === void 0 ? void 0 : _a.push(listener);\n }\n removeEventListener(type, listener) {\n const arr = __classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").get(type);\n if (!arr) {\n return;\n }\n const length = arr.length, idx = arr.indexOf(listener);\n if (idx < 0) {\n return;\n }\n if (length === 1) {\n __classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").delete(type);\n }\n else {\n arr.splice(idx, 1);\n }\n }\n removeAllEventListeners(type) {\n if (!type) {\n __classPrivateFieldSet(this, _EventDispatcher_listeners, new Map(), \"f\");\n }\n else {\n __classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").delete(type);\n }\n }\n dispatchEvent(type, args) {\n var _a;\n (_a = __classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").get(type)) === null || _a === void 0 ? void 0 : _a.forEach((handler) => handler(args));\n }\n hasEventListener(type) {\n return !!__classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").get(type);\n }\n}\n_EventDispatcher_listeners = new WeakMap();\n","export class Vector {\n constructor(xOrCoords, y) {\n if (typeof xOrCoords !== \"number\" && xOrCoords) {\n this.x = xOrCoords.x;\n this.y = xOrCoords.y;\n }\n else if (xOrCoords !== undefined && y !== undefined) {\n this.x = xOrCoords;\n this.y = y;\n }\n else {\n throw new Error(\"tsParticles - Vector not initialized correctly\");\n }\n }\n static clone(source) {\n return Vector.create(source.x, source.y);\n }\n static create(x, y) {\n return new Vector(x, y);\n }\n static get origin() {\n return Vector.create(0, 0);\n }\n get angle() {\n return Math.atan2(this.y, this.x);\n }\n set angle(angle) {\n this.updateFromAngle(angle, this.length);\n }\n get length() {\n return Math.sqrt(this.getLengthSq());\n }\n set length(length) {\n this.updateFromAngle(this.angle, length);\n }\n add(v) {\n return Vector.create(this.x + v.x, this.y + v.y);\n }\n addTo(v) {\n this.x += v.x;\n this.y += v.y;\n }\n sub(v) {\n return Vector.create(this.x - v.x, this.y - v.y);\n }\n subFrom(v) {\n this.x -= v.x;\n this.y -= v.y;\n }\n mult(n) {\n return Vector.create(this.x * n, this.y * n);\n }\n multTo(n) {\n this.x *= n;\n this.y *= n;\n }\n div(n) {\n return Vector.create(this.x / n, this.y / n);\n }\n divTo(n) {\n this.x /= n;\n this.y /= n;\n }\n distanceTo(v) {\n return this.sub(v).length;\n }\n getLengthSq() {\n return this.x ** 2 + this.y ** 2;\n }\n distanceToSq(v) {\n return this.sub(v).getLengthSq();\n }\n manhattanDistanceTo(v) {\n return Math.abs(v.x - this.x) + Math.abs(v.y - this.y);\n }\n copy() {\n return Vector.clone(this);\n }\n setTo(v) {\n this.x = v.x;\n this.y = v.y;\n }\n rotate(angle) {\n return Vector.create(this.x * Math.cos(angle) - this.y * Math.sin(angle), this.x * Math.sin(angle) + this.y * Math.cos(angle));\n }\n updateFromAngle(angle, length) {\n this.x = Math.cos(angle) * length;\n this.y = Math.sin(angle) * length;\n }\n}\n","import { Vector } from \"../Core/Utils/Vector\";\nexport function clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nexport function mix(comp1, comp2, weight1, weight2) {\n return Math.floor((comp1 * weight1 + comp2 * weight2) / (weight1 + weight2));\n}\nexport function randomInRange(r) {\n const max = getRangeMax(r);\n let min = getRangeMin(r);\n if (max === min) {\n min = 0;\n }\n return Math.random() * (max - min) + min;\n}\nexport function getRangeValue(value) {\n return typeof value === \"number\" ? value : randomInRange(value);\n}\nexport function getRangeMin(value) {\n return typeof value === \"number\" ? value : value.min;\n}\nexport function getRangeMax(value) {\n return typeof value === \"number\" ? value : value.max;\n}\nexport function setRangeValue(source, value) {\n if (source === value || (value === undefined && typeof source === \"number\")) {\n return source;\n }\n const min = getRangeMin(source), max = getRangeMax(source);\n return value !== undefined\n ? {\n min: Math.min(min, value),\n max: Math.max(max, value),\n }\n : setRangeValue(min, max);\n}\nexport function getValue(options) {\n const random = options.random, { enable, minimumValue } = typeof random === \"boolean\"\n ? {\n enable: random,\n minimumValue: 0,\n }\n : random;\n return enable ? getRangeValue(setRangeValue(options.value, minimumValue)) : getRangeValue(options.value);\n}\nexport function getDistances(pointA, pointB) {\n const dx = pointA.x - pointB.x, dy = pointA.y - pointB.y;\n return { dx: dx, dy: dy, distance: Math.sqrt(dx * dx + dy * dy) };\n}\nexport function getDistance(pointA, pointB) {\n return getDistances(pointA, pointB).distance;\n}\nexport function getParticleDirectionAngle(direction, position, center) {\n if (typeof direction === \"number\") {\n return (direction * Math.PI) / 180;\n }\n else {\n switch (direction) {\n case \"top\":\n return -Math.PI / 2;\n case \"top-right\":\n return -Math.PI / 4;\n case \"right\":\n return 0;\n case \"bottom-right\":\n return Math.PI / 4;\n case \"bottom\":\n return Math.PI / 2;\n case \"bottom-left\":\n return (3 * Math.PI) / 4;\n case \"left\":\n return Math.PI;\n case \"top-left\":\n return (-3 * Math.PI) / 4;\n case \"inside\":\n return Math.atan2(center.y - position.y, center.x - position.x);\n case \"outside\":\n return Math.atan2(position.y - center.y, position.x - center.x);\n case \"none\":\n default:\n return Math.random() * Math.PI * 2;\n }\n }\n}\nexport function getParticleBaseVelocity(direction) {\n const baseVelocity = Vector.origin;\n baseVelocity.length = 1;\n baseVelocity.angle = direction;\n return baseVelocity;\n}\nexport function collisionVelocity(v1, v2, m1, m2) {\n return Vector.create((v1.x * (m1 - m2)) / (m1 + m2) + (v2.x * 2 * m2) / (m1 + m2), v1.y);\n}\nexport function calcEasing(value, type) {\n switch (type) {\n case \"ease-out-quad\":\n return 1 - (1 - value) ** 2;\n case \"ease-out-cubic\":\n return 1 - (1 - value) ** 3;\n case \"ease-out-quart\":\n return 1 - (1 - value) ** 4;\n case \"ease-out-quint\":\n return 1 - (1 - value) ** 5;\n case \"ease-out-expo\":\n return value === 1 ? 1 : 1 - Math.pow(2, -10 * value);\n case \"ease-out-sine\":\n return Math.sin((value * Math.PI) / 2);\n case \"ease-out-back\": {\n const c1 = 1.70158, c3 = c1 + 1;\n return 1 + c3 * Math.pow(value - 1, 3) + c1 * Math.pow(value - 1, 2);\n }\n case \"ease-out-circ\":\n return Math.sqrt(1 - Math.pow(value - 1, 2));\n default:\n return value;\n }\n}\nexport function calcPositionFromSize(data) {\n var _a, _b;\n return ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined && ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined\n ? {\n x: (data.position.x * data.size.width) / 100,\n y: (data.position.y * data.size.height) / 100,\n }\n : undefined;\n}\nexport function calcPositionOrRandomFromSize(data) {\n var _a, _b, _c, _d;\n return {\n x: (((_b = (_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : Math.random() * 100) * data.size.width) / 100,\n y: (((_d = (_c = data.position) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : Math.random() * 100) * data.size.height) / 100,\n };\n}\nexport function calcPositionOrRandomFromSizeRanged(data) {\n var _a, _b;\n const position = {\n x: ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined ? getRangeValue(data.position.x) : undefined,\n y: ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined ? getRangeValue(data.position.y) : undefined,\n };\n return calcPositionOrRandomFromSize({ size: data.size, position });\n}\nexport function calcExactPositionOrRandomFromSize(data) {\n var _a, _b, _c, _d;\n return {\n x: (_b = (_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : Math.random() * data.size.width,\n y: (_d = (_c = data.position) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : Math.random() * data.size.height,\n };\n}\nexport function calcExactPositionOrRandomFromSizeRanged(data) {\n var _a, _b;\n const position = {\n x: ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined ? getRangeValue(data.position.x) : undefined,\n y: ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined ? getRangeValue(data.position.y) : undefined,\n };\n return calcExactPositionOrRandomFromSize({ size: data.size, position });\n}\n","export class OptionsColor {\n constructor() {\n this.value = \"\";\n }\n static create(source, data) {\n const color = new OptionsColor();\n color.load(source);\n if (data !== undefined) {\n if (typeof data === \"string\" || data instanceof Array) {\n color.load({ value: data });\n }\n else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n if ((data === null || data === void 0 ? void 0 : data.value) === undefined) {\n return;\n }\n this.value = data.value;\n }\n}\n","import { OptionsColor } from \"../OptionsColor\";\nexport class Background {\n constructor() {\n this.color = new OptionsColor();\n this.color.value = \"\";\n this.image = \"\";\n this.position = \"\";\n this.repeat = \"\";\n this.size = \"\";\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.image !== undefined) {\n this.image = data.image;\n }\n if (data.position !== undefined) {\n this.position = data.position;\n }\n if (data.repeat !== undefined) {\n this.repeat = data.repeat;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { OptionsColor } from \"../OptionsColor\";\nexport class BackgroundMaskCover {\n constructor() {\n this.color = new OptionsColor();\n this.color.value = \"#fff\";\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { BackgroundMaskCover } from \"./BackgroundMaskCover\";\nexport class BackgroundMask {\n constructor() {\n this.composite = \"destination-out\";\n this.cover = new BackgroundMaskCover();\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.composite !== undefined) {\n this.composite = data.composite;\n }\n if (data.cover !== undefined) {\n const cover = data.cover;\n const color = (typeof data.cover === \"string\" ? { color: data.cover } : data.cover);\n this.cover.load(cover.color !== undefined ? cover : { color: color });\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n","export class FullScreen {\n constructor() {\n this.enable = true;\n this.zIndex = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.zIndex !== undefined) {\n this.zIndex = data.zIndex;\n }\n }\n}\n","export class ClickEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n }\n}\n","export class DivEvent {\n constructor() {\n this.selectors = [];\n this.enable = false;\n this.mode = [];\n this.type = \"circle\";\n }\n get elementId() {\n return this.ids;\n }\n set elementId(value) {\n this.ids = value;\n }\n get el() {\n return this.elementId;\n }\n set el(value) {\n this.elementId = value;\n }\n get ids() {\n return this.selectors instanceof Array\n ? this.selectors.map((t) => t.replace(\"#\", \"\"))\n : this.selectors.replace(\"#\", \"\");\n }\n set ids(value) {\n this.selectors = value instanceof Array ? value.map((t) => `#${t}`) : `#${value}`;\n }\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n const ids = (_b = (_a = data.ids) !== null && _a !== void 0 ? _a : data.elementId) !== null && _b !== void 0 ? _b : data.el;\n if (ids !== undefined) {\n this.ids = ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\n","export class Parallax {\n constructor() {\n this.enable = false;\n this.force = 2;\n this.smooth = 10;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.force !== undefined) {\n this.force = data.force;\n }\n if (data.smooth !== undefined) {\n this.smooth = data.smooth;\n }\n }\n}\n","import { Parallax } from \"./Parallax\";\nexport class HoverEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n this.parallax = new Parallax();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.parallax.load(data.parallax);\n }\n}\n","import { ClickEvent } from \"./ClickEvent\";\nimport { DivEvent } from \"./DivEvent\";\nimport { HoverEvent } from \"./HoverEvent\";\nexport class Events {\n constructor() {\n this.onClick = new ClickEvent();\n this.onDiv = new DivEvent();\n this.onHover = new HoverEvent();\n this.resize = true;\n }\n get onclick() {\n return this.onClick;\n }\n set onclick(value) {\n this.onClick = value;\n }\n get ondiv() {\n return this.onDiv;\n }\n set ondiv(value) {\n this.onDiv = value;\n }\n get onhover() {\n return this.onHover;\n }\n set onhover(value) {\n this.onHover = value;\n }\n load(data) {\n var _a, _b, _c;\n if (!data) {\n return;\n }\n this.onClick.load((_a = data.onClick) !== null && _a !== void 0 ? _a : data.onclick);\n const onDiv = (_b = data.onDiv) !== null && _b !== void 0 ? _b : data.ondiv;\n if (onDiv !== undefined) {\n if (onDiv instanceof Array) {\n this.onDiv = onDiv.map((div) => {\n const tmp = new DivEvent();\n tmp.load(div);\n return tmp;\n });\n }\n else {\n this.onDiv = new DivEvent();\n this.onDiv.load(onDiv);\n }\n }\n this.onHover.load((_c = data.onHover) !== null && _c !== void 0 ? _c : data.onhover);\n if (data.resize !== undefined) {\n this.resize = data.resize;\n }\n }\n}\n","export class Attract {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.easing = \"ease-out-quad\";\n this.factor = 1;\n this.maxSpeed = 50;\n this.speed = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n }\n}\n","export class Bounce {\n constructor() {\n this.distance = 200;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n }\n}\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _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}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import { OptionsColor } from \"../../OptionsColor\";\nexport class BubbleBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.mix = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.mix !== undefined) {\n this.mix = data.mix;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.color !== undefined) {\n if (data.color instanceof Array) {\n this.color = data.color.map((s) => OptionsColor.create(undefined, s));\n }\n else {\n if (this.color instanceof Array) {\n this.color = new OptionsColor();\n }\n this.color = OptionsColor.create(this.color, data.color);\n }\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Options_instances, _Options_engine, _Options_findDefaultTheme;\nimport { deepExtend, loadParticlesOptions } from \"../../Utils/Utils\";\nimport { Background } from \"./Background/Background\";\nimport { BackgroundMask } from \"./BackgroundMask/BackgroundMask\";\nimport { FullScreen } from \"./FullScreen/FullScreen\";\nimport { Interactivity } from \"./Interactivity/Interactivity\";\nimport { ManualParticle } from \"./ManualParticle\";\nimport { Motion } from \"./Motion/Motion\";\nimport { Responsive } from \"./Responsive\";\nimport { Theme } from \"./Theme/Theme\";\nexport class Options {\n constructor(engine) {\n _Options_instances.add(this);\n _Options_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Options_engine, engine, \"f\");\n this.autoPlay = true;\n this.background = new Background();\n this.backgroundMask = new BackgroundMask();\n this.fullScreen = new FullScreen();\n this.detectRetina = true;\n this.duration = 0;\n this.fpsLimit = 120;\n this.interactivity = new Interactivity();\n this.manualParticles = [];\n this.motion = new Motion();\n this.particles = loadParticlesOptions();\n this.pauseOnBlur = true;\n this.pauseOnOutsideViewport = true;\n this.responsive = [];\n this.style = {};\n this.themes = [];\n this.zLayers = 100;\n }\n get fps_limit() {\n return this.fpsLimit;\n }\n set fps_limit(value) {\n this.fpsLimit = value;\n }\n get retina_detect() {\n return this.detectRetina;\n }\n set retina_detect(value) {\n this.detectRetina = value;\n }\n get backgroundMode() {\n return this.fullScreen;\n }\n set backgroundMode(value) {\n this.fullScreen.load(value);\n }\n load(data) {\n var _a, _b, _c, _d, _e;\n if (!data) {\n return;\n }\n if (data.preset !== undefined) {\n if (data.preset instanceof Array) {\n for (const preset of data.preset) {\n this.importPreset(preset);\n }\n }\n else {\n this.importPreset(data.preset);\n }\n }\n if (data.autoPlay !== undefined) {\n this.autoPlay = data.autoPlay;\n }\n const detectRetina = (_a = data.detectRetina) !== null && _a !== void 0 ? _a : data.retina_detect;\n if (detectRetina !== undefined) {\n this.detectRetina = detectRetina;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n const fpsLimit = (_b = data.fpsLimit) !== null && _b !== void 0 ? _b : data.fps_limit;\n if (fpsLimit !== undefined) {\n this.fpsLimit = fpsLimit;\n }\n if (data.pauseOnBlur !== undefined) {\n this.pauseOnBlur = data.pauseOnBlur;\n }\n if (data.pauseOnOutsideViewport !== undefined) {\n this.pauseOnOutsideViewport = data.pauseOnOutsideViewport;\n }\n if (data.zLayers !== undefined) {\n this.zLayers = data.zLayers;\n }\n this.background.load(data.background);\n const fullScreen = (_c = data.fullScreen) !== null && _c !== void 0 ? _c : data.backgroundMode;\n if (typeof fullScreen === \"boolean\") {\n this.fullScreen.enable = fullScreen;\n }\n else {\n this.fullScreen.load(fullScreen);\n }\n this.backgroundMask.load(data.backgroundMask);\n this.interactivity.load(data.interactivity);\n if (data.manualParticles !== undefined) {\n this.manualParticles = data.manualParticles.map((t) => {\n const tmp = new ManualParticle();\n tmp.load(t);\n return tmp;\n });\n }\n this.motion.load(data.motion);\n this.particles.load(data.particles);\n this.style = deepExtend(this.style, data.style);\n __classPrivateFieldGet(this, _Options_engine, \"f\").plugins.loadOptions(this, data);\n if (data.responsive !== undefined) {\n for (const responsive of data.responsive) {\n const optResponsive = new Responsive();\n optResponsive.load(responsive);\n this.responsive.push(optResponsive);\n }\n }\n this.responsive.sort((a, b) => a.maxWidth - b.maxWidth);\n if (data.themes !== undefined) {\n for (const theme of data.themes) {\n const optTheme = new Theme();\n optTheme.load(theme);\n this.themes.push(optTheme);\n }\n }\n this.defaultDarkTheme = (_d = __classPrivateFieldGet(this, _Options_instances, \"m\", _Options_findDefaultTheme).call(this, \"dark\")) === null || _d === void 0 ? void 0 : _d.name;\n this.defaultLightTheme = (_e = __classPrivateFieldGet(this, _Options_instances, \"m\", _Options_findDefaultTheme).call(this, \"light\")) === null || _e === void 0 ? void 0 : _e.name;\n }\n setTheme(name) {\n if (name) {\n const chosenTheme = this.themes.find((theme) => theme.name === name);\n if (chosenTheme) {\n this.load(chosenTheme.options);\n }\n }\n else {\n const mediaMatch = typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-color-scheme: dark)\"), clientDarkMode = mediaMatch && mediaMatch.matches, defaultTheme = __classPrivateFieldGet(this, _Options_instances, \"m\", _Options_findDefaultTheme).call(this, clientDarkMode ? \"dark\" : \"light\");\n if (defaultTheme) {\n this.load(defaultTheme.options);\n }\n }\n }\n setResponsive(width, pxRatio, defaultOptions) {\n this.load(defaultOptions);\n const responsiveOptions = this.responsive.find((t) => t.mode === \"screen\" && screen\n ? t.maxWidth * pxRatio > screen.availWidth\n : t.maxWidth * pxRatio > width);\n this.load(responsiveOptions === null || responsiveOptions === void 0 ? void 0 : responsiveOptions.options);\n return responsiveOptions === null || responsiveOptions === void 0 ? void 0 : responsiveOptions.maxWidth;\n }\n importPreset(preset) {\n this.load(__classPrivateFieldGet(this, _Options_engine, \"f\").plugins.getPreset(preset));\n }\n}\n_Options_engine = new WeakMap(), _Options_instances = new WeakSet(), _Options_findDefaultTheme = function _Options_findDefaultTheme(mode) {\n var _a;\n return ((_a = this.themes.find((theme) => theme.default.value && theme.default.mode === mode)) !== null && _a !== void 0 ? _a : this.themes.find((theme) => theme.default.value && theme.default.mode === \"any\"));\n};\n","import { BubbleBase } from \"./BubbleBase\";\nexport class BubbleDiv extends BubbleBase {\n constructor() {\n super();\n this.selectors = [];\n }\n get ids() {\n return this.selectors instanceof Array\n ? this.selectors.map((t) => t.replace(\"#\", \"\"))\n : this.selectors.replace(\"#\", \"\");\n }\n set ids(value) {\n this.selectors = value instanceof Array ? value.map((t) => `#${t}`) : `#${value}`;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.ids !== undefined) {\n this.ids = data.ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\n","import { BubbleBase } from \"./BubbleBase\";\nimport { BubbleDiv } from \"./BubbleDiv\";\nexport class Bubble extends BubbleBase {\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.divs instanceof Array) {\n this.divs = data.divs.map((s) => {\n const tmp = new BubbleDiv();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.divs instanceof Array || !this.divs) {\n this.divs = new BubbleDiv();\n }\n this.divs.load(data.divs);\n }\n }\n}\n","export class ConnectLinks {\n constructor() {\n this.opacity = 0.5;\n }\n load(data) {\n if (!(data !== undefined && data.opacity !== undefined)) {\n return;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { ConnectLinks } from \"./ConnectLinks\";\nexport class Connect {\n constructor() {\n this.distance = 80;\n this.links = new ConnectLinks();\n this.radius = 60;\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load((_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked);\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class GrabLinks {\n constructor() {\n this.blink = false;\n this.consent = false;\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { GrabLinks } from \"./GrabLinks\";\nexport class Grab {\n constructor() {\n this.distance = 100;\n this.links = new GrabLinks();\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load((_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked);\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class LightGradient {\n constructor() {\n this.start = new OptionsColor();\n this.stop = new OptionsColor();\n this.start.value = \"#ffffff\";\n this.stop.value = \"#000000\";\n }\n load(data) {\n if (!data) {\n return;\n }\n this.start = OptionsColor.create(this.start, data.start);\n this.stop = OptionsColor.create(this.stop, data.stop);\n }\n}\n","import { LightGradient } from \"./LightGradient\";\nexport class LightArea {\n constructor() {\n this.gradient = new LightGradient();\n this.radius = 1000;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.gradient.load(data.gradient);\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class LightShadow {\n constructor() {\n this.color = new OptionsColor();\n this.color.value = \"#000000\";\n this.length = 2000;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.length !== undefined) {\n this.length = data.length;\n }\n }\n}\n","import { LightArea } from \"./LightArea\";\nimport { LightShadow } from \"./LightShadow\";\nexport class Light {\n constructor() {\n this.area = new LightArea();\n this.shadow = new LightShadow();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.area.load(data.area);\n this.shadow.load(data.shadow);\n }\n}\n","export class Push {\n constructor() {\n this.default = true;\n this.groups = [];\n this.quantity = 4;\n }\n get particles_nb() {\n return this.quantity;\n }\n set particles_nb(value) {\n this.quantity = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n if (data.groups !== undefined) {\n this.groups = data.groups.map((t) => t);\n }\n if (!this.groups.length) {\n this.default = true;\n }\n const quantity = (_a = data.quantity) !== null && _a !== void 0 ? _a : data.particles_nb;\n if (quantity !== undefined) {\n this.quantity = quantity;\n }\n }\n}\n","export class Remove {\n constructor() {\n this.quantity = 2;\n }\n get particles_nb() {\n return this.quantity;\n }\n set particles_nb(value) {\n this.quantity = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n const quantity = (_a = data.quantity) !== null && _a !== void 0 ? _a : data.particles_nb;\n if (quantity !== undefined) {\n this.quantity = quantity;\n }\n }\n}\n","export class RepulseBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.factor = 100;\n this.speed = 1;\n this.maxSpeed = 50;\n this.easing = \"ease-out-quad\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n }\n}\n","import { RepulseBase } from \"./RepulseBase\";\nexport class RepulseDiv extends RepulseBase {\n constructor() {\n super();\n this.selectors = [];\n }\n get ids() {\n if (this.selectors instanceof Array) {\n return this.selectors.map((t) => t.replace(\"#\", \"\"));\n }\n else {\n return this.selectors.replace(\"#\", \"\");\n }\n }\n set ids(value) {\n if (value instanceof Array) {\n this.selectors = value.map(() => `#${value}`);\n }\n else {\n this.selectors = `#${value}`;\n }\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.ids !== undefined) {\n this.ids = data.ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\n","import { RepulseBase } from \"./RepulseBase\";\nimport { RepulseDiv } from \"./RepulseDiv\";\nexport class Repulse extends RepulseBase {\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.divs instanceof Array) {\n this.divs = data.divs.map((s) => {\n const tmp = new RepulseDiv();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.divs instanceof Array || !this.divs) {\n this.divs = new RepulseDiv();\n }\n this.divs.load(data.divs);\n }\n }\n}\n","export class Slow {\n constructor() {\n this.factor = 3;\n this.radius = 200;\n }\n get active() {\n return false;\n }\n set active(_value) {\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n","import { deepExtend } from \"../../../../Utils/Utils\";\nexport class Trail {\n constructor() {\n this.delay = 1;\n this.pauseOnStop = false;\n this.quantity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n if (data.quantity !== undefined) {\n this.quantity = data.quantity;\n }\n if (data.particles !== undefined) {\n this.particles = deepExtend({}, data.particles);\n }\n if (data.pauseOnStop !== undefined) {\n this.pauseOnStop = data.pauseOnStop;\n }\n }\n}\n","import { Attract } from \"./Attract\";\nimport { Bounce } from \"./Bounce\";\nimport { Bubble } from \"./Bubble\";\nimport { Connect } from \"./Connect\";\nimport { Grab } from \"./Grab\";\nimport { Light } from \"./Light\";\nimport { Push } from \"./Push\";\nimport { Remove } from \"./Remove\";\nimport { Repulse } from \"./Repulse\";\nimport { Slow } from \"./Slow\";\nimport { Trail } from \"./Trail\";\nexport class Modes {\n constructor() {\n this.attract = new Attract();\n this.bounce = new Bounce();\n this.bubble = new Bubble();\n this.connect = new Connect();\n this.grab = new Grab();\n this.light = new Light();\n this.push = new Push();\n this.remove = new Remove();\n this.repulse = new Repulse();\n this.slow = new Slow();\n this.trail = new Trail();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.attract.load(data.attract);\n this.bubble.load(data.bubble);\n this.connect.load(data.connect);\n this.grab.load(data.grab);\n this.light.load(data.light);\n this.push.load(data.push);\n this.remove.load(data.remove);\n this.repulse.load(data.repulse);\n this.slow.load(data.slow);\n this.trail.load(data.trail);\n }\n}\n","import { Events } from \"./Events/Events\";\nimport { Modes } from \"./Modes/Modes\";\nexport class Interactivity {\n constructor() {\n this.detectsOn = \"window\";\n this.events = new Events();\n this.modes = new Modes();\n }\n get detect_on() {\n return this.detectsOn;\n }\n set detect_on(value) {\n this.detectsOn = value;\n }\n load(data) {\n var _a, _b, _c;\n if (!data) {\n return;\n }\n const detectsOn = (_a = data.detectsOn) !== null && _a !== void 0 ? _a : data.detect_on;\n if (detectsOn !== undefined) {\n this.detectsOn = detectsOn;\n }\n this.events.load(data.events);\n this.modes.load(data.modes);\n if (((_c = (_b = data.modes) === null || _b === void 0 ? void 0 : _b.slow) === null || _c === void 0 ? void 0 : _c.active) === true) {\n if (this.events.onHover.mode instanceof Array) {\n if (this.events.onHover.mode.indexOf(\"slow\") < 0) {\n this.events.onHover.mode.push(\"slow\");\n }\n }\n else if (this.events.onHover.mode !== \"slow\") {\n this.events.onHover.mode = [this.events.onHover.mode, \"slow\"];\n }\n }\n }\n}\n","import { deepExtend } from \"../../Utils/Utils\";\nexport class ManualParticle {\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n if (data.position !== undefined) {\n this.position = {\n x: (_a = data.position.x) !== null && _a !== void 0 ? _a : 50,\n y: (_b = data.position.y) !== null && _b !== void 0 ? _b : 50,\n };\n }\n if (data.options !== undefined) {\n this.options = deepExtend({}, data.options);\n }\n }\n}\n","export class MotionReduce {\n constructor() {\n this.factor = 4;\n this.value = true;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\n","import { MotionReduce } from \"./MotionReduce\";\nexport class Motion {\n constructor() {\n this.disable = false;\n this.reduce = new MotionReduce();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.disable !== undefined) {\n this.disable = data.disable;\n }\n this.reduce.load(data.reduce);\n }\n}\n","import { deepExtend } from \"../../Utils/Utils\";\nexport class Responsive {\n constructor() {\n this.maxWidth = Infinity;\n this.options = {};\n this.mode = \"canvas\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.maxWidth !== undefined) {\n this.maxWidth = data.maxWidth;\n }\n if (data.mode !== undefined) {\n if (data.mode === \"screen\") {\n this.mode = \"screen\";\n }\n else {\n this.mode = \"canvas\";\n }\n }\n if (data.options !== undefined) {\n this.options = deepExtend({}, data.options);\n }\n }\n}\n","export class ThemeDefault {\n constructor() {\n this.auto = false;\n this.mode = \"any\";\n this.value = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.auto !== undefined) {\n this.auto = data.auto;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\n","import { ThemeDefault } from \"./ThemeDefault\";\nimport { deepExtend } from \"../../../Utils/Utils\";\nexport class Theme {\n constructor() {\n this.name = \"\";\n this.default = new ThemeDefault();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.name !== undefined) {\n this.name = data.name;\n }\n this.default.load(data.default);\n if (data.options !== undefined) {\n this.options = deepExtend({}, data.options);\n }\n }\n}\n","import { setRangeValue } from \"../../Utils/NumberUtils\";\nexport class ColorAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.offset = 0;\n this.speed = 1;\n this.sync = true;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = setRangeValue(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.offset !== undefined) {\n this.offset = setRangeValue(data.offset);\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { ColorAnimation } from \"./ColorAnimation\";\nexport class HslAnimation {\n constructor() {\n this.h = new ColorAnimation();\n this.s = new ColorAnimation();\n this.l = new ColorAnimation();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.h.load(data.h);\n this.s.load(data.s);\n this.l.load(data.l);\n }\n}\n","import { HslAnimation } from \"./HslAnimation\";\nimport { OptionsColor } from \"./OptionsColor\";\nexport class AnimatableColor extends OptionsColor {\n constructor() {\n super();\n this.animation = new HslAnimation();\n }\n static create(source, data) {\n const color = new AnimatableColor();\n color.load(source);\n if (data !== undefined) {\n if (typeof data === \"string\" || data instanceof Array) {\n color.load({ value: data });\n }\n else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n const colorAnimation = data.animation;\n if (colorAnimation !== undefined) {\n if (colorAnimation.enable !== undefined) {\n this.animation.h.load(colorAnimation);\n }\n else {\n this.animation.load(data.animation);\n }\n }\n }\n}\n","import { AnimatableColor } from \"./AnimatableColor\";\nimport { setRangeValue } from \"../../Utils/NumberUtils\";\nexport class AnimatableGradient {\n constructor() {\n this.angle = new GradientAngle();\n this.colors = [];\n this.type = \"random\";\n }\n load(data) {\n if (!data) {\n return;\n }\n this.angle.load(data.angle);\n if (data.colors !== undefined) {\n this.colors = data.colors.map((s) => {\n const tmp = new AnimatableGradientColor();\n tmp.load(s);\n return tmp;\n });\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\nexport class GradientAngle {\n constructor() {\n this.value = 0;\n this.animation = new GradientAngleAnimation();\n this.direction = \"clockwise\";\n }\n load(data) {\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.value !== undefined) {\n this.value = data.value;\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n }\n}\nexport class GradientColorOpacity {\n constructor() {\n this.value = 0;\n this.animation = new GradientColorOpacityAnimation();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value);\n }\n }\n}\nexport class AnimatableGradientColor {\n constructor() {\n this.stop = 0;\n this.value = new AnimatableColor();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.stop !== undefined) {\n this.stop = data.stop;\n }\n this.value = AnimatableColor.create(this.value, data.value);\n if (data.opacity !== undefined) {\n this.opacity = new GradientColorOpacity();\n if (typeof data.opacity === \"number\") {\n this.opacity.value = data.opacity;\n }\n else {\n this.opacity.load(data.opacity);\n }\n }\n }\n}\nexport class GradientAngleAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = setRangeValue(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexport class GradientColorOpacityAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n this.startValue = \"random\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = setRangeValue(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n }\n}\n","export class CollisionsOverlap {\n constructor() {\n this.enable = true;\n this.retries = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.retries !== undefined) {\n this.retries = data.retries;\n }\n }\n}\n","export class Random {\n constructor() {\n this.enable = false;\n this.minimumValue = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.minimumValue !== undefined) {\n this.minimumValue = data.minimumValue;\n }\n }\n}\n","import { Random } from \"./Random\";\nimport { setRangeValue } from \"../../Utils/NumberUtils\";\nexport class ValueWithRandom {\n constructor() {\n this.random = new Random();\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (typeof data.random === \"boolean\") {\n this.random.enable = data.random;\n }\n else {\n this.random.load(data.random);\n }\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value, this.random.enable ? this.random.minimumValue : undefined);\n }\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class ParticlesBounceFactor extends ValueWithRandom {\n constructor() {\n super();\n this.random.minimumValue = 0.1;\n this.value = 1;\n }\n}\n","import { ParticlesBounceFactor } from \"./ParticlesBounceFactor\";\nexport class ParticlesBounce {\n constructor() {\n this.horizontal = new ParticlesBounceFactor();\n this.vertical = new ParticlesBounceFactor();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.horizontal.load(data.horizontal);\n this.vertical.load(data.vertical);\n }\n}\n","import { CollisionsOverlap } from \"./CollisionsOverlap\";\nimport { ParticlesBounce } from \"../Bounce/ParticlesBounce\";\nexport class Collisions {\n constructor() {\n this.bounce = new ParticlesBounce();\n this.enable = false;\n this.mode = \"bounce\";\n this.overlap = new CollisionsOverlap();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.bounce.load(data.bounce);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.overlap.load(data.overlap);\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class SplitFactor extends ValueWithRandom {\n constructor() {\n super();\n this.value = 3;\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class SplitRate extends ValueWithRandom {\n constructor() {\n super();\n this.value = { min: 4, max: 9 };\n }\n}\n","import { SplitFactor } from \"./SplitFactor\";\nimport { SplitRate } from \"./SplitRate\";\nimport { deepExtend } from \"../../../../Utils/Utils\";\nexport class Split {\n constructor() {\n this.count = 1;\n this.factor = new SplitFactor();\n this.rate = new SplitRate();\n this.sizeOffset = true;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.factor.load(data.factor);\n this.rate.load(data.rate);\n if (data.particles !== undefined) {\n this.particles = deepExtend({}, data.particles);\n }\n if (data.sizeOffset !== undefined) {\n this.sizeOffset = data.sizeOffset;\n }\n }\n}\n","import { Split } from \"./Split\";\nexport class Destroy {\n constructor() {\n this.mode = \"none\";\n this.split = new Split();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.split.load(data.split);\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class LifeDelay extends ValueWithRandom {\n constructor() {\n super();\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class LifeDuration extends ValueWithRandom {\n constructor() {\n super();\n this.random.minimumValue = 0.0001;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { LifeDelay } from \"./LifeDelay\";\nimport { LifeDuration } from \"./LifeDuration\";\nexport class Life {\n constructor() {\n this.count = 0;\n this.delay = new LifeDelay();\n this.duration = new LifeDuration();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.delay.load(data.delay);\n this.duration.load(data.duration);\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class LinksShadow {\n constructor() {\n this.blur = 5;\n this.color = new OptionsColor();\n this.color.value = \"#000\";\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class LinksTriangle {\n constructor() {\n this.enable = false;\n this.frequency = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { LinksShadow } from \"./LinksShadow\";\nimport { LinksTriangle } from \"./LinksTriangle\";\nimport { OptionsColor } from \"../../OptionsColor\";\nexport class Links {\n constructor() {\n this.blink = false;\n this.color = new OptionsColor();\n this.color.value = \"#fff\";\n this.consent = false;\n this.distance = 100;\n this.enable = false;\n this.frequency = 1;\n this.opacity = 1;\n this.shadow = new LinksShadow();\n this.triangles = new LinksTriangle();\n this.width = 1;\n this.warp = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.id !== undefined) {\n this.id = data.id;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n this.shadow.load(data.shadow);\n this.triangles.load(data.triangles);\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class MoveAngle {\n constructor() {\n this.offset = 0;\n this.value = 90;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.offset !== undefined) {\n this.offset = setRangeValue(data.offset);\n }\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value);\n }\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class MoveAttract {\n constructor() {\n this.distance = 200;\n this.enable = false;\n this.rotate = {\n x: 3000,\n y: 3000,\n };\n }\n get rotateX() {\n return this.rotate.x;\n }\n set rotateX(value) {\n this.rotate.x = value;\n }\n get rotateY() {\n return this.rotate.y;\n }\n set rotateY(value) {\n this.rotate.y = value;\n }\n load(data) {\n var _a, _b, _c, _d;\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = setRangeValue(data.distance);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const rotateX = (_b = (_a = data.rotate) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : data.rotateX;\n if (rotateX !== undefined) {\n this.rotate.x = rotateX;\n }\n const rotateY = (_d = (_c = data.rotate) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : data.rotateY;\n if (rotateY !== undefined) {\n this.rotate.y = rotateY;\n }\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class MoveGravity {\n constructor() {\n this.acceleration = 9.81;\n this.enable = false;\n this.inverse = false;\n this.maxSpeed = 50;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = setRangeValue(data.acceleration);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.inverse !== undefined) {\n this.inverse = data.inverse;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = setRangeValue(data.maxSpeed);\n }\n }\n}\n","import { ValueWithRandom } from \"../../../ValueWithRandom\";\nexport class MovePathDelay extends ValueWithRandom {\n constructor() {\n super();\n }\n}\n","import { MovePathDelay } from \"./MovePathDelay\";\nimport { deepExtend } from \"../../../../../Utils/Utils\";\nexport class MovePath {\n constructor() {\n this.clamp = true;\n this.delay = new MovePathDelay();\n this.enable = false;\n this.options = {};\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.clamp !== undefined) {\n this.clamp = data.clamp;\n }\n this.delay.load(data.delay);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.generator = data.generator;\n if (data.options) {\n this.options = deepExtend(this.options, data.options);\n }\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class MoveTrail {\n constructor() {\n this.enable = false;\n this.length = 10;\n this.fillColor = new OptionsColor();\n this.fillColor.value = \"#000000\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.fillColor = OptionsColor.create(this.fillColor, data.fillColor);\n if (data.length !== undefined) {\n this.length = data.length;\n }\n }\n}\n","export class OutModes {\n constructor() {\n this.default = \"out\";\n }\n load(data) {\n var _a, _b, _c, _d;\n if (!data) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n this.bottom = (_a = data.bottom) !== null && _a !== void 0 ? _a : data.default;\n this.left = (_b = data.left) !== null && _b !== void 0 ? _b : data.default;\n this.right = (_c = data.right) !== null && _c !== void 0 ? _c : data.default;\n this.top = (_d = data.top) !== null && _d !== void 0 ? _d : data.default;\n }\n}\n","import { deepExtend } from \"../../../../Utils/Utils\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Spin {\n constructor() {\n this.acceleration = 0;\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = setRangeValue(data.acceleration);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.position = data.position ? deepExtend({}, data.position) : undefined;\n }\n}\n","import { MoveAngle } from \"./MoveAngle\";\nimport { MoveAttract } from \"./MoveAttract\";\nimport { MoveGravity } from \"./MoveGravity\";\nimport { MovePath } from \"./Path/MovePath\";\nimport { MoveTrail } from \"./MoveTrail\";\nimport { OutModes } from \"./OutModes\";\nimport { Spin } from \"./Spin\";\nimport { deepExtend } from \"../../../../Utils/Utils\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Move {\n constructor() {\n this.angle = new MoveAngle();\n this.attract = new MoveAttract();\n this.center = {\n x: 50,\n y: 50,\n radius: 0,\n };\n this.decay = 0;\n this.distance = {};\n this.direction = \"none\";\n this.drift = 0;\n this.enable = false;\n this.gravity = new MoveGravity();\n this.path = new MovePath();\n this.outModes = new OutModes();\n this.random = false;\n this.size = false;\n this.speed = 2;\n this.spin = new Spin();\n this.straight = false;\n this.trail = new MoveTrail();\n this.vibrate = false;\n this.warp = false;\n }\n get collisions() {\n return false;\n }\n set collisions(value) {\n }\n get bounce() {\n return this.collisions;\n }\n set bounce(value) {\n this.collisions = value;\n }\n get out_mode() {\n return this.outMode;\n }\n set out_mode(value) {\n this.outMode = value;\n }\n get outMode() {\n return this.outModes.default;\n }\n set outMode(value) {\n this.outModes.default = value;\n }\n get noise() {\n return this.path;\n }\n set noise(value) {\n this.path = value;\n }\n load(data) {\n var _a, _b, _c;\n if (!data) {\n return;\n }\n if (data.angle !== undefined) {\n if (typeof data.angle === \"number\") {\n this.angle.value = data.angle;\n }\n else {\n this.angle.load(data.angle);\n }\n }\n this.attract.load(data.attract);\n this.center = deepExtend(this.center, data.center);\n if (data.decay !== undefined) {\n this.decay = data.decay;\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.distance !== undefined) {\n this.distance =\n typeof data.distance === \"number\"\n ? {\n horizontal: data.distance,\n vertical: data.distance,\n }\n : deepExtend({}, data.distance);\n }\n if (data.drift !== undefined) {\n this.drift = setRangeValue(data.drift);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.gravity.load(data.gravity);\n const outMode = (_a = data.outMode) !== null && _a !== void 0 ? _a : data.out_mode;\n if (data.outModes !== undefined || outMode !== undefined) {\n if (typeof data.outModes === \"string\" || (data.outModes === undefined && outMode !== undefined)) {\n this.outModes.load({\n default: (_b = data.outModes) !== null && _b !== void 0 ? _b : outMode,\n });\n }\n else {\n this.outModes.load(data.outModes);\n }\n }\n this.path.load((_c = data.path) !== null && _c !== void 0 ? _c : data.noise);\n if (data.random !== undefined) {\n this.random = data.random;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n this.spin.load(data.spin);\n if (data.straight !== undefined) {\n this.straight = data.straight;\n }\n this.trail.load(data.trail);\n if (data.vibrate !== undefined) {\n this.vibrate = data.vibrate;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\n","import { setRangeValue } from \"../../Utils/NumberUtils\";\nexport class AnimationOptions {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 1;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = setRangeValue(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { AnimationOptions } from \"../../AnimationOptions\";\nexport class OpacityAnimation extends AnimationOptions {\n constructor() {\n super();\n this.destroy = \"none\";\n this.enable = false;\n this.speed = 2;\n this.startValue = \"random\";\n this.sync = false;\n }\n get opacity_min() {\n return this.minimumValue;\n }\n set opacity_min(value) {\n this.minimumValue = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n super.load(data);\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.opacity_min;\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { OpacityAnimation } from \"./OpacityAnimation\";\nimport { ValueWithRandom } from \"../../ValueWithRandom\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Opacity extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new OpacityAnimation();\n this.random.minimumValue = 0.1;\n this.value = 1;\n }\n get anim() {\n return this.animation;\n }\n set anim(value) {\n this.animation = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n super.load(data);\n const animation = (_a = data.animation) !== null && _a !== void 0 ? _a : data.anim;\n if (animation !== undefined) {\n this.animation.load(animation);\n this.value = setRangeValue(this.value, this.animation.enable ? this.animation.minimumValue : undefined);\n }\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class OrbitRotation extends ValueWithRandom {\n constructor() {\n super();\n this.value = 45;\n this.random.enable = false;\n this.random.minimumValue = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n super.load(data);\n }\n}\n","import { AnimationOptions } from \"../../AnimationOptions\";\nimport { OptionsColor } from \"../../OptionsColor\";\nimport { OrbitRotation } from \"./OrbitRotation\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Orbit {\n constructor() {\n this.animation = new AnimationOptions();\n this.enable = false;\n this.opacity = 1;\n this.rotation = new OrbitRotation();\n this.width = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n this.rotation.load(data.rotation);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.opacity !== undefined) {\n this.opacity = setRangeValue(data.opacity);\n }\n if (data.width !== undefined) {\n this.width = setRangeValue(data.width);\n }\n if (data.radius !== undefined) {\n this.radius = setRangeValue(data.radius);\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n }\n}\n","export class ParticlesDensity {\n constructor() {\n this.enable = false;\n this.area = 800;\n this.factor = 1000;\n }\n get value_area() {\n return this.area;\n }\n set value_area(value) {\n this.area = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const area = (_a = data.area) !== null && _a !== void 0 ? _a : data.value_area;\n if (area !== undefined) {\n this.area = area;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n }\n}\n","import { ParticlesDensity } from \"./ParticlesDensity\";\nexport class ParticlesNumber {\n constructor() {\n this.density = new ParticlesDensity();\n this.limit = 0;\n this.value = 100;\n }\n get max() {\n return this.limit;\n }\n set max(value) {\n this.limit = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n this.density.load(data.density);\n const limit = (_a = data.limit) !== null && _a !== void 0 ? _a : data.max;\n if (limit !== undefined) {\n this.limit = limit;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class ParticlesRepulse extends ValueWithRandom {\n constructor() {\n super();\n this.enabled = false;\n this.distance = 1;\n this.duration = 1;\n this.factor = 1;\n this.speed = 1;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.enabled !== undefined) {\n this.enabled = data.enabled;\n }\n if (data.distance !== undefined) {\n this.distance = setRangeValue(data.distance);\n }\n if (data.duration !== undefined) {\n this.duration = setRangeValue(data.duration);\n }\n if (data.factor !== undefined) {\n this.factor = setRangeValue(data.factor);\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class RollLight {\n constructor() {\n this.enable = false;\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value);\n }\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nimport { RollLight } from \"./RollLight\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Roll {\n constructor() {\n this.darken = new RollLight();\n this.enable = false;\n this.enlighten = new RollLight();\n this.mode = \"vertical\";\n this.speed = 25;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.backColor !== undefined) {\n this.backColor = OptionsColor.create(this.backColor, data.backColor);\n }\n this.darken.load(data.darken);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.enlighten.load(data.enlighten);\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class RotateAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { RotateAnimation } from \"./RotateAnimation\";\nimport { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class Rotate extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new RotateAnimation();\n this.direction = \"clockwise\";\n this.path = false;\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n this.animation.load(data.animation);\n if (data.path !== undefined) {\n this.path = data.path;\n }\n }\n}\n","import { OptionsColor } from \"../OptionsColor\";\nexport class Shadow {\n constructor() {\n this.blur = 0;\n this.color = new OptionsColor();\n this.enable = false;\n this.offset = {\n x: 0,\n y: 0,\n };\n this.color.value = \"#000\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.offset === undefined) {\n return;\n }\n if (data.offset.x !== undefined) {\n this.offset.x = data.offset.x;\n }\n if (data.offset.y !== undefined) {\n this.offset.y = data.offset.y;\n }\n }\n}\n","import { deepExtend } from \"../../../../Utils/Utils\";\nexport class Shape {\n constructor() {\n this.options = {};\n this.type = \"circle\";\n }\n get image() {\n var _a;\n return ((_a = this.options[\"image\"]) !== null && _a !== void 0 ? _a : this.options[\"images\"]);\n }\n set image(value) {\n this.options[\"image\"] = value;\n this.options[\"images\"] = value;\n }\n get custom() {\n return this.options;\n }\n set custom(value) {\n this.options = value;\n }\n get images() {\n return this.image;\n }\n set images(value) {\n this.image = value;\n }\n get stroke() {\n return [];\n }\n set stroke(_value) {\n }\n get character() {\n var _a;\n return ((_a = this.options[\"character\"]) !== null && _a !== void 0 ? _a : this.options[\"char\"]);\n }\n set character(value) {\n this.options[\"character\"] = value;\n this.options[\"char\"] = value;\n }\n get polygon() {\n var _a;\n return ((_a = this.options[\"polygon\"]) !== null && _a !== void 0 ? _a : this.options[\"star\"]);\n }\n set polygon(value) {\n this.options[\"polygon\"] = value;\n this.options[\"star\"] = value;\n }\n load(data) {\n var _a, _b, _c;\n if (!data) {\n return;\n }\n const options = (_a = data.options) !== null && _a !== void 0 ? _a : data.custom;\n if (options !== undefined) {\n for (const shape in options) {\n const item = options[shape];\n if (item) {\n this.options[shape] = deepExtend((_b = this.options[shape]) !== null && _b !== void 0 ? _b : {}, item);\n }\n }\n }\n this.loadShape(data.character, \"character\", \"char\", true);\n this.loadShape(data.polygon, \"polygon\", \"star\", false);\n this.loadShape((_c = data.image) !== null && _c !== void 0 ? _c : data.images, \"image\", \"images\", true);\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n loadShape(item, mainKey, altKey, altOverride) {\n var _a, _b, _c, _d;\n if (item === undefined) {\n return;\n }\n if (item instanceof Array) {\n if (!(this.options[mainKey] instanceof Array)) {\n this.options[mainKey] = [];\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = [];\n }\n }\n this.options[mainKey] = deepExtend((_a = this.options[mainKey]) !== null && _a !== void 0 ? _a : [], item);\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = deepExtend((_b = this.options[altKey]) !== null && _b !== void 0 ? _b : [], item);\n }\n }\n else {\n if (this.options[mainKey] instanceof Array) {\n this.options[mainKey] = {};\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = {};\n }\n }\n this.options[mainKey] = deepExtend((_c = this.options[mainKey]) !== null && _c !== void 0 ? _c : {}, item);\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = deepExtend((_d = this.options[altKey]) !== null && _d !== void 0 ? _d : {}, item);\n }\n }\n }\n}\n","import { AnimationOptions } from \"../../AnimationOptions\";\nexport class SizeAnimation extends AnimationOptions {\n constructor() {\n super();\n this.destroy = \"none\";\n this.enable = false;\n this.speed = 5;\n this.startValue = \"random\";\n this.sync = false;\n }\n get size_min() {\n return this.minimumValue;\n }\n set size_min(value) {\n this.minimumValue = value;\n }\n load(data) {\n var _a;\n super.load(data);\n if (!data) {\n return;\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.size_min;\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { SizeAnimation } from \"./SizeAnimation\";\nimport { ValueWithRandom } from \"../../ValueWithRandom\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Size extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new SizeAnimation();\n this.random.minimumValue = 1;\n this.value = 3;\n }\n get anim() {\n return this.animation;\n }\n set anim(value) {\n this.animation = value;\n }\n load(data) {\n var _a;\n super.load(data);\n if (!data) {\n return;\n }\n const animation = (_a = data.animation) !== null && _a !== void 0 ? _a : data.anim;\n if (animation !== undefined) {\n this.animation.load(animation);\n this.value = setRangeValue(this.value, this.animation.enable ? this.animation.minimumValue : undefined);\n }\n }\n}\n","import { AnimatableColor } from \"../AnimatableColor\";\nexport class Stroke {\n constructor() {\n this.width = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = AnimatableColor.create(this.color, data.color);\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class TiltAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { TiltAnimation } from \"./TiltAnimation\";\nimport { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class Tilt extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new TiltAnimation();\n this.direction = \"clockwise\";\n this.enable = false;\n this.value = 0;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class TwinkleValues {\n constructor() {\n this.enable = false;\n this.frequency = 0.05;\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = setRangeValue(data.opacity);\n }\n }\n}\n","import { TwinkleValues } from \"./TwinkleValues\";\nexport class Twinkle {\n constructor() {\n this.lines = new TwinkleValues();\n this.particles = new TwinkleValues();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.lines.load(data.lines);\n this.particles.load(data.particles);\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Wobble {\n constructor() {\n this.distance = 5;\n this.enable = false;\n this.speed = 50;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = setRangeValue(data.distance);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class ZIndex extends ValueWithRandom {\n constructor() {\n super();\n this.opacityRate = 1;\n this.sizeRate = 1;\n this.velocityRate = 1;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.opacityRate !== undefined) {\n this.opacityRate = data.opacityRate;\n }\n if (data.sizeRate !== undefined) {\n this.sizeRate = data.sizeRate;\n }\n if (data.velocityRate !== undefined) {\n this.velocityRate = data.velocityRate;\n }\n }\n}\n","import { AnimatableColor } from \"../AnimatableColor\";\nimport { AnimatableGradient } from \"../AnimatableGradient\";\nimport { Collisions } from \"./Collisions/Collisions\";\nimport { Destroy } from \"./Destroy/Destroy\";\nimport { Life } from \"./Life/Life\";\nimport { Links } from \"./Links/Links\";\nimport { Move } from \"./Move/Move\";\nimport { Opacity } from \"./Opacity/Opacity\";\nimport { Orbit } from \"./Orbit/Orbit\";\nimport { ParticlesBounce } from \"./Bounce/ParticlesBounce\";\nimport { ParticlesNumber } from \"./Number/ParticlesNumber\";\nimport { ParticlesRepulse } from \"./Repulse/ParticlesRepulse\";\nimport { Roll } from \"./Roll/Roll\";\nimport { Rotate } from \"./Rotate/Rotate\";\nimport { Shadow } from \"./Shadow\";\nimport { Shape } from \"./Shape/Shape\";\nimport { Size } from \"./Size/Size\";\nimport { Stroke } from \"./Stroke\";\nimport { Tilt } from \"./Tilt/Tilt\";\nimport { Twinkle } from \"./Twinkle/Twinkle\";\nimport { Wobble } from \"./Wobble/Wobble\";\nimport { ZIndex } from \"./ZIndex/ZIndex\";\nimport { deepExtend } from \"../../../Utils/Utils\";\nexport class ParticlesOptions {\n constructor() {\n this.bounce = new ParticlesBounce();\n this.collisions = new Collisions();\n this.color = new AnimatableColor();\n this.color.value = \"#fff\";\n this.destroy = new Destroy();\n this.gradient = [];\n this.groups = {};\n this.life = new Life();\n this.links = new Links();\n this.move = new Move();\n this.number = new ParticlesNumber();\n this.opacity = new Opacity();\n this.orbit = new Orbit();\n this.reduceDuplicates = false;\n this.repulse = new ParticlesRepulse();\n this.roll = new Roll();\n this.rotate = new Rotate();\n this.shadow = new Shadow();\n this.shape = new Shape();\n this.size = new Size();\n this.stroke = new Stroke();\n this.tilt = new Tilt();\n this.twinkle = new Twinkle();\n this.wobble = new Wobble();\n this.zIndex = new ZIndex();\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (!data) {\n return;\n }\n this.bounce.load(data.bounce);\n this.color.load(AnimatableColor.create(this.color, data.color));\n this.destroy.load(data.destroy);\n this.life.load(data.life);\n const links = (_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked;\n if (links !== undefined) {\n this.links.load(links);\n }\n if (data.groups !== undefined) {\n for (const group in data.groups) {\n const item = data.groups[group];\n if (item !== undefined) {\n this.groups[group] = deepExtend((_c = this.groups[group]) !== null && _c !== void 0 ? _c : {}, item);\n }\n }\n }\n this.move.load(data.move);\n this.number.load(data.number);\n this.opacity.load(data.opacity);\n this.orbit.load(data.orbit);\n if (data.reduceDuplicates !== undefined) {\n this.reduceDuplicates = data.reduceDuplicates;\n }\n this.repulse.load(data.repulse);\n this.roll.load(data.roll);\n this.rotate.load(data.rotate);\n this.shape.load(data.shape);\n this.size.load(data.size);\n this.shadow.load(data.shadow);\n this.tilt.load(data.tilt);\n this.twinkle.load(data.twinkle);\n this.wobble.load(data.wobble);\n this.zIndex.load(data.zIndex);\n const collisions = (_e = (_d = data.move) === null || _d === void 0 ? void 0 : _d.collisions) !== null && _e !== void 0 ? _e : (_f = data.move) === null || _f === void 0 ? void 0 : _f.bounce;\n if (collisions !== undefined) {\n this.collisions.enable = collisions;\n }\n this.collisions.load(data.collisions);\n const strokeToLoad = (_g = data.stroke) !== null && _g !== void 0 ? _g : (_h = data.shape) === null || _h === void 0 ? void 0 : _h.stroke;\n if (strokeToLoad) {\n if (strokeToLoad instanceof Array) {\n this.stroke = strokeToLoad.map((s) => {\n const tmp = new Stroke();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.stroke instanceof Array) {\n this.stroke = new Stroke();\n }\n this.stroke.load(strokeToLoad);\n }\n }\n const gradientToLoad = data.gradient;\n if (gradientToLoad) {\n if (gradientToLoad instanceof Array) {\n this.gradient = gradientToLoad.map((s) => {\n const tmp = new AnimatableGradient();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.gradient instanceof Array) {\n this.gradient = new AnimatableGradient();\n }\n this.gradient.load(gradientToLoad);\n }\n }\n }\n}\n","import { collisionVelocity, getDistances, getValue } from \"./NumberUtils\";\nimport { Options } from \"../Options/Classes/Options\";\nimport { ParticlesOptions } from \"../Options/Classes/Particles/ParticlesOptions\";\nimport { Vector } from \"../Core/Utils/Vector\";\nfunction rectSideBounce(pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor) {\n const res = { bounced: false };\n if (pOtherSide.min < rectOtherSide.min ||\n pOtherSide.min > rectOtherSide.max ||\n pOtherSide.max < rectOtherSide.min ||\n pOtherSide.max > rectOtherSide.max) {\n return res;\n }\n if ((pSide.max >= rectSide.min && pSide.max <= (rectSide.max + rectSide.min) / 2 && velocity > 0) ||\n (pSide.min <= rectSide.max && pSide.min > (rectSide.max + rectSide.min) / 2 && velocity < 0)) {\n res.velocity = velocity * -factor;\n res.bounced = true;\n }\n return res;\n}\nfunction checkSelector(element, selectors) {\n if (!(selectors instanceof Array)) {\n return element.matches(selectors);\n }\n for (const selector of selectors) {\n if (element.matches(selector)) {\n return true;\n }\n }\n return false;\n}\nexport function isSsr() {\n return typeof window === \"undefined\" || !window || typeof window.document === \"undefined\" || !window.document;\n}\nexport function animate() {\n return isSsr()\n ? (callback) => setTimeout(callback)\n : (callback) => (window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n window.setTimeout)(callback);\n}\nexport function cancelAnimation() {\n return isSsr()\n ? (handle) => clearTimeout(handle)\n : (handle) => (window.cancelAnimationFrame ||\n window.webkitCancelRequestAnimationFrame ||\n window.mozCancelRequestAnimationFrame ||\n window.oCancelRequestAnimationFrame ||\n window.msCancelRequestAnimationFrame ||\n window.clearTimeout)(handle);\n}\nexport function isInArray(value, array) {\n return value === array || (array instanceof Array && array.indexOf(value) > -1);\n}\nexport async function loadFont(font, weight) {\n try {\n await document.fonts.load(`${weight !== null && weight !== void 0 ? weight : \"400\"} 36px '${font !== null && font !== void 0 ? font : \"Verdana\"}'`);\n }\n catch (_a) {\n }\n}\nexport function arrayRandomIndex(array) {\n return Math.floor(Math.random() * array.length);\n}\nexport function itemFromArray(array, index, useIndex = true) {\n const fixedIndex = index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array);\n return array[fixedIndex];\n}\nexport function isPointInside(point, size, offset, radius, direction) {\n return areBoundsInside(calculateBounds(point, radius !== null && radius !== void 0 ? radius : 0), size, offset, direction);\n}\nexport function areBoundsInside(bounds, size, offset, direction) {\n let inside = true;\n if (!direction || direction === \"bottom\") {\n inside = bounds.top < size.height + offset.x;\n }\n if (inside && (!direction || direction === \"left\")) {\n inside = bounds.right > offset.x;\n }\n if (inside && (!direction || direction === \"right\")) {\n inside = bounds.left < size.width + offset.y;\n }\n if (inside && (!direction || direction === \"top\")) {\n inside = bounds.bottom > offset.y;\n }\n return inside;\n}\nexport function calculateBounds(point, radius) {\n return {\n bottom: point.y + radius,\n left: point.x - radius,\n right: point.x + radius,\n top: point.y - radius,\n };\n}\nexport function deepExtend(destination, ...sources) {\n for (const source of sources) {\n if (source === undefined || source === null) {\n continue;\n }\n if (typeof source !== \"object\") {\n destination = source;\n continue;\n }\n const sourceIsArray = Array.isArray(source);\n if (sourceIsArray && (typeof destination !== \"object\" || !destination || !Array.isArray(destination))) {\n destination = [];\n }\n else if (!sourceIsArray && (typeof destination !== \"object\" || !destination || Array.isArray(destination))) {\n destination = {};\n }\n for (const key in source) {\n if (key === \"__proto__\") {\n continue;\n }\n const sourceDict = source, value = sourceDict[key], isObject = typeof value === \"object\", destDict = destination;\n destDict[key] =\n isObject && Array.isArray(value)\n ? value.map((v) => deepExtend(destDict[key], v))\n : deepExtend(destDict[key], value);\n }\n }\n return destination;\n}\nexport function isDivModeEnabled(mode, divs) {\n return divs instanceof Array ? !!divs.find((t) => t.enable && isInArray(mode, t.mode)) : isInArray(mode, divs.mode);\n}\nexport function divModeExecute(mode, divs, callback) {\n if (divs instanceof Array) {\n for (const div of divs) {\n const divMode = div.mode, divEnabled = div.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(div, callback);\n }\n }\n }\n else {\n const divMode = divs.mode, divEnabled = divs.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(divs, callback);\n }\n }\n}\nexport function singleDivModeExecute(div, callback) {\n const selectors = div.selectors;\n if (selectors instanceof Array) {\n for (const selector of selectors) {\n callback(selector, div);\n }\n }\n else {\n callback(selectors, div);\n }\n}\nexport function divMode(divs, element) {\n if (!element || !divs) {\n return;\n }\n if (divs instanceof Array) {\n return divs.find((d) => checkSelector(element, d.selectors));\n }\n else if (checkSelector(element, divs.selectors)) {\n return divs;\n }\n}\nexport function circleBounceDataFromParticle(p) {\n return {\n position: p.getPosition(),\n radius: p.getRadius(),\n mass: p.getMass(),\n velocity: p.velocity,\n factor: Vector.create(getValue(p.options.bounce.horizontal), getValue(p.options.bounce.vertical)),\n };\n}\nexport function circleBounce(p1, p2) {\n const { x: xVelocityDiff, y: yVelocityDiff } = p1.velocity.sub(p2.velocity), [pos1, pos2] = [p1.position, p2.position], { dx: xDist, dy: yDist } = getDistances(pos2, pos1);\n if (xVelocityDiff * xDist + yVelocityDiff * yDist < 0) {\n return;\n }\n const angle = -Math.atan2(yDist, xDist), m1 = p1.mass, m2 = p2.mass, u1 = p1.velocity.rotate(angle), u2 = p2.velocity.rotate(angle), v1 = collisionVelocity(u1, u2, m1, m2), v2 = collisionVelocity(u2, u1, m1, m2), vFinal1 = v1.rotate(-angle), vFinal2 = v2.rotate(-angle);\n p1.velocity.x = vFinal1.x * p1.factor.x;\n p1.velocity.y = vFinal1.y * p1.factor.y;\n p2.velocity.x = vFinal2.x * p2.factor.x;\n p2.velocity.y = vFinal2.y * p2.factor.y;\n}\nexport function rectBounce(particle, divBounds) {\n const pPos = particle.getPosition(), size = particle.getRadius(), bounds = calculateBounds(pPos, size);\n const resH = rectSideBounce({\n min: bounds.left,\n max: bounds.right,\n }, {\n min: bounds.top,\n max: bounds.bottom,\n }, {\n min: divBounds.left,\n max: divBounds.right,\n }, {\n min: divBounds.top,\n max: divBounds.bottom,\n }, particle.velocity.x, getValue(particle.options.bounce.horizontal));\n if (resH.bounced) {\n if (resH.velocity !== undefined) {\n particle.velocity.x = resH.velocity;\n }\n if (resH.position !== undefined) {\n particle.position.x = resH.position;\n }\n }\n const resV = rectSideBounce({\n min: bounds.top,\n max: bounds.bottom,\n }, {\n min: bounds.left,\n max: bounds.right,\n }, {\n min: divBounds.top,\n max: divBounds.bottom,\n }, {\n min: divBounds.left,\n max: divBounds.right,\n }, particle.velocity.y, getValue(particle.options.bounce.vertical));\n if (resV.bounced) {\n if (resV.velocity !== undefined) {\n particle.velocity.y = resV.velocity;\n }\n if (resV.position !== undefined) {\n particle.position.y = resV.position;\n }\n }\n}\nfunction loadOptions(options, ...sourceOptionsArr) {\n for (const sourceOptions of sourceOptionsArr) {\n options.load(sourceOptions);\n }\n}\nexport function loadContainerOptions(engine, ...sourceOptionsArr) {\n const options = new Options(engine);\n loadOptions(options, ...sourceOptionsArr);\n return options;\n}\nexport function loadParticlesOptions(...sourceOptionsArr) {\n const options = new ParticlesOptions();\n loadOptions(options, ...sourceOptionsArr);\n return options;\n}\n","export const generatedAttribute = \"generated\";\nexport const randomColorValue = \"random\";\nexport const midColorValue = \"mid\";\nexport const touchEndEvent = \"touchend\";\nexport const mouseDownEvent = \"mousedown\";\nexport const mouseUpEvent = \"mouseup\";\nexport const mouseMoveEvent = \"mousemove\";\nexport const touchStartEvent = \"touchstart\";\nexport const touchMoveEvent = \"touchmove\";\nexport const mouseLeaveEvent = \"mouseleave\";\nexport const mouseOutEvent = \"mouseout\";\nexport const touchCancelEvent = \"touchcancel\";\nexport const resizeEvent = \"resize\";\nexport const visibilityChangeEvent = \"visibilitychange\";\nexport const noPolygonDataLoaded = \"No polygon data loaded.\";\nexport const noPolygonFound = \"No polygon found, you need to specify SVG url in config.\";\n","import { getRangeValue, mix, randomInRange, setRangeValue } from \"./NumberUtils\";\nimport { midColorValue, randomColorValue } from \"../Core/Utils/Constants\";\nimport { itemFromArray } from \"./Utils\";\nfunction hue2rgb(p, q, t) {\n let tCalc = t;\n if (tCalc < 0) {\n tCalc += 1;\n }\n if (tCalc > 1) {\n tCalc -= 1;\n }\n if (tCalc < 1 / 6) {\n return p + (q - p) * 6 * tCalc;\n }\n if (tCalc < 1 / 2) {\n return q;\n }\n if (tCalc < 2 / 3) {\n return p + (q - p) * (2 / 3 - tCalc) * 6;\n }\n return p;\n}\nfunction stringToRgba(input) {\n if (input.startsWith(\"rgb\")) {\n const regex = /rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(,\\s*([\\d.]+)\\s*)?\\)/i;\n const result = regex.exec(input);\n return result\n ? {\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n b: parseInt(result[3], 10),\n g: parseInt(result[2], 10),\n r: parseInt(result[1], 10),\n }\n : undefined;\n }\n else if (input.startsWith(\"hsl\")) {\n const regex = /hsla?\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(,\\s*([\\d.]+)\\s*)?\\)/i;\n const result = regex.exec(input);\n return result\n ? hslaToRgba({\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n h: parseInt(result[1], 10),\n l: parseInt(result[3], 10),\n s: parseInt(result[2], 10),\n })\n : undefined;\n }\n else if (input.startsWith(\"hsv\")) {\n const regex = /hsva?\\(\\s*(\\d+)°\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(,\\s*([\\d.]+)\\s*)?\\)/i;\n const result = regex.exec(input);\n return result\n ? hsvaToRgba({\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n h: parseInt(result[1], 10),\n s: parseInt(result[2], 10),\n v: parseInt(result[3], 10),\n })\n : undefined;\n }\n else {\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i;\n const hexFixed = input.replace(shorthandRegex, (_m, r, g, b, a) => {\n return r + r + g + g + b + b + (a !== undefined ? a + a : \"\");\n });\n const regex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i;\n const result = regex.exec(hexFixed);\n return result\n ? {\n a: result[4] !== undefined ? parseInt(result[4], 16) / 0xff : 1,\n b: parseInt(result[3], 16),\n g: parseInt(result[2], 16),\n r: parseInt(result[1], 16),\n }\n : undefined;\n }\n}\nexport function colorToRgb(input, index, useIndex = true) {\n var _a, _b, _c;\n if (input === undefined) {\n return;\n }\n const color = typeof input === \"string\" ? { value: input } : input;\n let res;\n if (typeof color.value === \"string\") {\n res = color.value === randomColorValue ? getRandomRgbColor() : stringToRgb(color.value);\n }\n else {\n if (color.value instanceof Array) {\n const colorSelected = itemFromArray(color.value, index, useIndex);\n res = colorToRgb({ value: colorSelected });\n }\n else {\n const colorValue = color.value, rgbColor = (_a = colorValue.rgb) !== null && _a !== void 0 ? _a : color.value;\n if (rgbColor.r !== undefined) {\n res = rgbColor;\n }\n else {\n const hslColor = (_b = colorValue.hsl) !== null && _b !== void 0 ? _b : color.value;\n if (hslColor.h !== undefined && hslColor.l !== undefined) {\n res = hslToRgb(hslColor);\n }\n else {\n const hsvColor = (_c = colorValue.hsv) !== null && _c !== void 0 ? _c : color.value;\n if (hsvColor.h !== undefined && hsvColor.v !== undefined) {\n res = hsvToRgb(hsvColor);\n }\n }\n }\n }\n }\n return res;\n}\nexport function colorToHsl(color, index, useIndex = true) {\n const rgb = colorToRgb(color, index, useIndex);\n return rgb !== undefined ? rgbToHsl(rgb) : undefined;\n}\nexport function rgbToHsl(color) {\n const r1 = color.r / 255, g1 = color.g / 255, b1 = color.b / 255;\n const max = Math.max(r1, g1, b1), min = Math.min(r1, g1, b1);\n const res = {\n h: 0,\n l: (max + min) / 2,\n s: 0,\n };\n if (max !== min) {\n res.s = res.l < 0.5 ? (max - min) / (max + min) : (max - min) / (2.0 - max - min);\n res.h =\n r1 === max\n ? (g1 - b1) / (max - min)\n : (res.h = g1 === max ? 2.0 + (b1 - r1) / (max - min) : 4.0 + (r1 - g1) / (max - min));\n }\n res.l *= 100;\n res.s *= 100;\n res.h *= 60;\n if (res.h < 0) {\n res.h += 360;\n }\n return res;\n}\nexport function stringToAlpha(input) {\n var _a;\n return (_a = stringToRgba(input)) === null || _a === void 0 ? void 0 : _a.a;\n}\nexport function stringToRgb(input) {\n return stringToRgba(input);\n}\nexport function hslToRgb(hsl) {\n const result = { b: 0, g: 0, r: 0 }, hslPercent = {\n h: hsl.h / 360,\n l: hsl.l / 100,\n s: hsl.s / 100,\n };\n if (hslPercent.s === 0) {\n result.b = hslPercent.l;\n result.g = hslPercent.l;\n result.r = hslPercent.l;\n }\n else {\n const q = hslPercent.l < 0.5\n ? hslPercent.l * (1 + hslPercent.s)\n : hslPercent.l + hslPercent.s - hslPercent.l * hslPercent.s, p = 2 * hslPercent.l - q;\n result.r = hue2rgb(p, q, hslPercent.h + 1 / 3);\n result.g = hue2rgb(p, q, hslPercent.h);\n result.b = hue2rgb(p, q, hslPercent.h - 1 / 3);\n }\n result.r = Math.floor(result.r * 255);\n result.g = Math.floor(result.g * 255);\n result.b = Math.floor(result.b * 255);\n return result;\n}\nexport function hslaToRgba(hsla) {\n const rgbResult = hslToRgb(hsla);\n return {\n a: hsla.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r,\n };\n}\nexport function hslToHsv(hsl) {\n const l = hsl.l / 100, sl = hsl.s / 100, v = l + sl * Math.min(l, 1 - l), sv = !v ? 0 : 2 * (1 - l / v);\n return {\n h: hsl.h,\n s: sv * 100,\n v: v * 100,\n };\n}\nexport function hslaToHsva(hsla) {\n const hsvResult = hslToHsv(hsla);\n return {\n a: hsla.a,\n h: hsvResult.h,\n s: hsvResult.s,\n v: hsvResult.v,\n };\n}\nexport function hsvToHsl(hsv) {\n const v = hsv.v / 100, sv = hsv.s / 100, l = v * (1 - sv / 2), sl = l === 0 || l === 1 ? 0 : (v - l) / Math.min(l, 1 - l);\n return {\n h: hsv.h,\n l: l * 100,\n s: sl * 100,\n };\n}\nexport function hsvaToHsla(hsva) {\n const hslResult = hsvToHsl(hsva);\n return {\n a: hsva.a,\n h: hslResult.h,\n l: hslResult.l,\n s: hslResult.s,\n };\n}\nexport function hsvToRgb(hsv) {\n const result = { b: 0, g: 0, r: 0 }, hsvPercent = {\n h: hsv.h / 60,\n s: hsv.s / 100,\n v: hsv.v / 100,\n };\n const c = hsvPercent.v * hsvPercent.s, x = c * (1 - Math.abs((hsvPercent.h % 2) - 1));\n let tempRgb;\n if (hsvPercent.h >= 0 && hsvPercent.h <= 1) {\n tempRgb = {\n r: c,\n g: x,\n b: 0,\n };\n }\n else if (hsvPercent.h > 1 && hsvPercent.h <= 2) {\n tempRgb = {\n r: x,\n g: c,\n b: 0,\n };\n }\n else if (hsvPercent.h > 2 && hsvPercent.h <= 3) {\n tempRgb = {\n r: 0,\n g: c,\n b: x,\n };\n }\n else if (hsvPercent.h > 3 && hsvPercent.h <= 4) {\n tempRgb = {\n r: 0,\n g: x,\n b: c,\n };\n }\n else if (hsvPercent.h > 4 && hsvPercent.h <= 5) {\n tempRgb = {\n r: x,\n g: 0,\n b: c,\n };\n }\n else if (hsvPercent.h > 5 && hsvPercent.h <= 6) {\n tempRgb = {\n r: c,\n g: 0,\n b: x,\n };\n }\n if (tempRgb) {\n const m = hsvPercent.v - c;\n result.r = Math.floor((tempRgb.r + m) * 255);\n result.g = Math.floor((tempRgb.g + m) * 255);\n result.b = Math.floor((tempRgb.b + m) * 255);\n }\n return result;\n}\nexport function hsvaToRgba(hsva) {\n const rgbResult = hsvToRgb(hsva);\n return {\n a: hsva.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r,\n };\n}\nexport function rgbToHsv(rgb) {\n const rgbPercent = {\n r: rgb.r / 255,\n g: rgb.g / 255,\n b: rgb.b / 255,\n }, xMax = Math.max(rgbPercent.r, rgbPercent.g, rgbPercent.b), xMin = Math.min(rgbPercent.r, rgbPercent.g, rgbPercent.b), v = xMax, c = xMax - xMin;\n let h = 0;\n if (v === rgbPercent.r) {\n h = 60 * ((rgbPercent.g - rgbPercent.b) / c);\n }\n else if (v === rgbPercent.g) {\n h = 60 * (2 + (rgbPercent.b - rgbPercent.r) / c);\n }\n else if (v === rgbPercent.b) {\n h = 60 * (4 + (rgbPercent.r - rgbPercent.g) / c);\n }\n const s = !v ? 0 : c / v;\n return {\n h,\n s: s * 100,\n v: v * 100,\n };\n}\nexport function rgbaToHsva(rgba) {\n const hsvResult = rgbToHsv(rgba);\n return {\n a: rgba.a,\n h: hsvResult.h,\n s: hsvResult.s,\n v: hsvResult.v,\n };\n}\nexport function getRandomRgbColor(min) {\n const fixedMin = min !== null && min !== void 0 ? min : 0;\n return {\n b: Math.floor(randomInRange(setRangeValue(fixedMin, 256))),\n g: Math.floor(randomInRange(setRangeValue(fixedMin, 256))),\n r: Math.floor(randomInRange(setRangeValue(fixedMin, 256))),\n };\n}\nexport function getStyleFromRgb(color, opacity) {\n return `rgba(${color.r}, ${color.g}, ${color.b}, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;\n}\nexport function getStyleFromHsl(color, opacity) {\n return `hsla(${color.h}, ${color.s}%, ${color.l}%, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;\n}\nexport function getStyleFromHsv(color, opacity) {\n return getStyleFromHsl(hsvToHsl(color), opacity);\n}\nexport function colorMix(color1, color2, size1, size2) {\n let rgb1 = color1, rgb2 = color2;\n if (rgb1.r === undefined) {\n rgb1 = hslToRgb(color1);\n }\n if (rgb2.r === undefined) {\n rgb2 = hslToRgb(color2);\n }\n return {\n b: mix(rgb1.b, rgb2.b, size1, size2),\n g: mix(rgb1.g, rgb2.g, size1, size2),\n r: mix(rgb1.r, rgb2.r, size1, size2),\n };\n}\nexport function getLinkColor(p1, p2, linkColor) {\n var _a, _b;\n if (linkColor === randomColorValue) {\n return getRandomRgbColor();\n }\n else if (linkColor === \"mid\") {\n const sourceColor = (_a = p1.getFillColor()) !== null && _a !== void 0 ? _a : p1.getStrokeColor(), destColor = (_b = p2 === null || p2 === void 0 ? void 0 : p2.getFillColor()) !== null && _b !== void 0 ? _b : p2 === null || p2 === void 0 ? void 0 : p2.getStrokeColor();\n if (sourceColor && destColor && p2) {\n return colorMix(sourceColor, destColor, p1.getRadius(), p2.getRadius());\n }\n else {\n const hslColor = sourceColor !== null && sourceColor !== void 0 ? sourceColor : destColor;\n if (hslColor) {\n return hslToRgb(hslColor);\n }\n }\n }\n else {\n return linkColor;\n }\n}\nexport function getLinkRandomColor(optColor, blink, consent) {\n const color = typeof optColor === \"string\" ? optColor : optColor.value;\n if (color === randomColorValue) {\n if (consent) {\n return colorToRgb({\n value: color,\n });\n }\n else if (blink) {\n return randomColorValue;\n }\n else {\n return midColorValue;\n }\n }\n else {\n return colorToRgb({\n value: color,\n });\n }\n}\nexport function getHslFromAnimation(animation) {\n return animation !== undefined\n ? {\n h: animation.h.value,\n s: animation.s.value,\n l: animation.l.value,\n }\n : undefined;\n}\nexport function getHslAnimationFromHsl(hsl, animationOptions, reduceFactor) {\n const resColor = {\n h: {\n enable: false,\n value: hsl.h,\n },\n s: {\n enable: false,\n value: hsl.s,\n },\n l: {\n enable: false,\n value: hsl.l,\n },\n };\n if (animationOptions) {\n setColorAnimation(resColor.h, animationOptions.h, reduceFactor);\n setColorAnimation(resColor.s, animationOptions.s, reduceFactor);\n setColorAnimation(resColor.l, animationOptions.l, reduceFactor);\n }\n return resColor;\n}\nfunction setColorAnimation(colorValue, colorAnimation, reduceFactor) {\n colorValue.enable = colorAnimation.enable;\n if (colorValue.enable) {\n colorValue.velocity = (getRangeValue(colorAnimation.speed) / 100) * reduceFactor;\n if (colorAnimation.sync) {\n return;\n }\n colorValue.status = 0;\n colorValue.velocity *= Math.random();\n if (colorValue.value) {\n colorValue.value *= Math.random();\n }\n }\n else {\n colorValue.velocity = 0;\n }\n}\n","import { colorMix, getStyleFromHsl, getStyleFromRgb } from \"./ColorUtils\";\nexport function drawLine(context, begin, end) {\n context.beginPath();\n context.moveTo(begin.x, begin.y);\n context.lineTo(end.x, end.y);\n context.closePath();\n}\nexport function drawTriangle(context, p1, p2, p3) {\n context.beginPath();\n context.moveTo(p1.x, p1.y);\n context.lineTo(p2.x, p2.y);\n context.lineTo(p3.x, p3.y);\n context.closePath();\n}\nexport function paintBase(context, dimension, baseColor) {\n context.save();\n context.fillStyle = baseColor !== null && baseColor !== void 0 ? baseColor : \"rgba(0,0,0,0)\";\n context.fillRect(0, 0, dimension.width, dimension.height);\n context.restore();\n}\nexport function clear(context, dimension) {\n context.clearRect(0, 0, dimension.width, dimension.height);\n}\nexport function drawConnectLine(context, width, lineStyle, begin, end) {\n context.save();\n drawLine(context, begin, end);\n context.lineWidth = width;\n context.strokeStyle = lineStyle;\n context.stroke();\n context.restore();\n}\nexport function gradient(context, p1, p2, opacity) {\n const gradStop = Math.floor(p2.getRadius() / p1.getRadius()), color1 = p1.getFillColor(), color2 = p2.getFillColor();\n if (!color1 || !color2) {\n return;\n }\n const sourcePos = p1.getPosition(), destPos = p2.getPosition(), midRgb = colorMix(color1, color2, p1.getRadius(), p2.getRadius()), grad = context.createLinearGradient(sourcePos.x, sourcePos.y, destPos.x, destPos.y);\n grad.addColorStop(0, getStyleFromHsl(color1, opacity));\n grad.addColorStop(gradStop > 1 ? 1 : gradStop, getStyleFromRgb(midRgb, opacity));\n grad.addColorStop(1, getStyleFromHsl(color2, opacity));\n return grad;\n}\nexport function drawGrabLine(context, width, begin, end, colorLine, opacity) {\n context.save();\n drawLine(context, begin, end);\n context.strokeStyle = getStyleFromRgb(colorLine, opacity);\n context.lineWidth = width;\n context.stroke();\n context.restore();\n}\nexport function drawParticle(container, context, particle, delta, colorStyles, backgroundMask, composite, radius, opacity, shadow) {\n var _a, _b, _c, _d;\n const pos = particle.getPosition(), tiltOptions = particle.options.tilt, rollOptions = particle.options.roll;\n context.save();\n if (tiltOptions.enable || rollOptions.enable) {\n const roll = rollOptions.enable && particle.roll, tilt = tiltOptions.enable && particle.tilt, rollHorizontal = roll && (rollOptions.mode === \"horizontal\" || rollOptions.mode === \"both\"), rollVertical = roll && (rollOptions.mode === \"vertical\" || rollOptions.mode === \"both\");\n context.setTransform(rollHorizontal ? Math.cos(particle.roll.angle) : 1, tilt ? Math.cos(particle.tilt.value) * particle.tilt.cosDirection : 0, tilt ? Math.sin(particle.tilt.value) * particle.tilt.sinDirection : 0, rollVertical ? Math.sin(particle.roll.angle) : 1, pos.x, pos.y);\n }\n else {\n context.translate(pos.x, pos.y);\n }\n context.beginPath();\n const angle = ((_b = (_a = particle.rotate) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 0) + (particle.options.rotate.path ? particle.velocity.angle : 0);\n if (angle !== 0) {\n context.rotate(angle);\n }\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n const shadowColor = particle.shadowColor;\n if (shadow.enable && shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = getStyleFromRgb(shadowColor);\n context.shadowOffsetX = shadow.offset.x;\n context.shadowOffsetY = shadow.offset.y;\n }\n if (colorStyles.fill) {\n context.fillStyle = colorStyles.fill;\n }\n const stroke = particle.stroke;\n context.lineWidth = (_c = particle.strokeWidth) !== null && _c !== void 0 ? _c : 0;\n if (colorStyles.stroke) {\n context.strokeStyle = colorStyles.stroke;\n }\n drawShape(container, context, particle, radius, opacity, delta);\n if (((_d = stroke === null || stroke === void 0 ? void 0 : stroke.width) !== null && _d !== void 0 ? _d : 0) > 0) {\n context.stroke();\n }\n if (particle.close) {\n context.closePath();\n }\n if (particle.fill) {\n context.fill();\n }\n context.restore();\n context.save();\n if (tiltOptions.enable && particle.tilt) {\n context.setTransform(1, Math.cos(particle.tilt.value) * particle.tilt.cosDirection, Math.sin(particle.tilt.value) * particle.tilt.sinDirection, 1, pos.x, pos.y);\n }\n else {\n context.translate(pos.x, pos.y);\n }\n if (angle !== 0) {\n context.rotate(angle);\n }\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n drawShapeAfterEffect(container, context, particle, radius, opacity, delta);\n context.restore();\n}\nexport function drawShape(container, context, particle, radius, opacity, delta) {\n if (!particle.shape) {\n return;\n }\n const drawer = container.drawers.get(particle.shape);\n if (!drawer) {\n return;\n }\n drawer.draw(context, particle, radius, opacity, delta, container.retina.pixelRatio);\n}\nexport function drawShapeAfterEffect(container, context, particle, radius, opacity, delta) {\n if (!particle.shape) {\n return;\n }\n const drawer = container.drawers.get(particle.shape);\n if (!(drawer === null || drawer === void 0 ? void 0 : drawer.afterEffect)) {\n return;\n }\n drawer.afterEffect(context, particle, radius, opacity, delta, container.retina.pixelRatio);\n}\nexport function drawPlugin(context, plugin, delta) {\n if (!plugin.draw) {\n return;\n }\n context.save();\n plugin.draw(context, delta);\n context.restore();\n}\nexport function drawParticlePlugin(context, plugin, particle, delta) {\n if (!plugin.drawParticle) {\n return;\n }\n context.save();\n plugin.drawParticle(context, particle, delta);\n context.restore();\n}\nexport function drawEllipse(context, particle, fillColorValue, radius, opacity, width, rotation, start, end) {\n if (width <= 0) {\n return;\n }\n const pos = particle.getPosition();\n if (fillColorValue) {\n context.strokeStyle = getStyleFromHsl(fillColorValue, opacity);\n }\n context.lineWidth = width;\n const rotationRadian = (rotation * Math.PI) / 180;\n context.beginPath();\n context.ellipse(pos.x, pos.y, radius / 2, radius * 2, rotationRadian, start, end);\n context.stroke();\n}\nexport function alterHsl(color, type, value) {\n return {\n h: color.h,\n s: color.s,\n l: color.l + (type === \"darken\" ? -1 : 1) * value,\n };\n}\n","import { clear, drawConnectLine, drawGrabLine, drawParticle, drawParticlePlugin, drawPlugin, gradient, paintBase, } from \"../Utils/CanvasUtils\";\nimport { colorToHsl, colorToRgb, getStyleFromHsl, getStyleFromRgb } from \"../Utils/ColorUtils\";\nimport { deepExtend } from \"../Utils/Utils\";\nimport { generatedAttribute } from \"./Utils/Constants\";\nexport class Canvas {\n constructor(container) {\n this.container = container;\n this.size = {\n height: 0,\n width: 0,\n };\n this.context = null;\n this.generatedCanvas = false;\n }\n init() {\n this.resize();\n this.initStyle();\n this.initCover();\n this.initTrail();\n this.initBackground();\n this.paint();\n }\n loadCanvas(canvas) {\n var _a;\n if (this.generatedCanvas) {\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.remove();\n }\n this.generatedCanvas =\n canvas.dataset && generatedAttribute in canvas.dataset\n ? canvas.dataset[generatedAttribute] === \"true\"\n : this.generatedCanvas;\n this.element = canvas;\n this.originalStyle = deepExtend({}, this.element.style);\n this.size.height = canvas.offsetHeight;\n this.size.width = canvas.offsetWidth;\n this.context = this.element.getContext(\"2d\");\n this.container.retina.init();\n this.initBackground();\n }\n destroy() {\n var _a;\n if (this.generatedCanvas) {\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.remove();\n }\n this.draw((ctx) => {\n clear(ctx, this.size);\n });\n }\n paint() {\n const options = this.container.actualOptions;\n this.draw((ctx) => {\n if (options.backgroundMask.enable && options.backgroundMask.cover) {\n clear(ctx, this.size);\n this.paintBase(this.coverColorStyle);\n }\n else {\n this.paintBase();\n }\n });\n }\n clear() {\n const options = this.container.actualOptions, trail = options.particles.move.trail;\n if (options.backgroundMask.enable) {\n this.paint();\n }\n else if (trail.enable && trail.length > 0 && this.trailFillColor) {\n this.paintBase(getStyleFromRgb(this.trailFillColor, 1 / trail.length));\n }\n else {\n this.draw((ctx) => {\n clear(ctx, this.size);\n });\n }\n }\n async windowResize() {\n if (!this.element) {\n return;\n }\n this.resize();\n const container = this.container, needsRefresh = container.updateActualOptions();\n container.particles.setDensity();\n for (const [, plugin] of container.plugins) {\n if (plugin.resize !== undefined) {\n plugin.resize();\n }\n }\n if (needsRefresh) {\n await container.refresh();\n }\n }\n resize() {\n if (!this.element) {\n return;\n }\n const container = this.container, pxRatio = container.retina.pixelRatio, size = container.canvas.size, newSize = {\n width: this.element.offsetWidth * pxRatio,\n height: this.element.offsetHeight * pxRatio,\n };\n if (newSize.height === size.height &&\n newSize.width === size.width &&\n newSize.height === this.element.height &&\n newSize.width === this.element.width) {\n return;\n }\n const oldSize = Object.assign({}, size);\n this.element.width = size.width = this.element.offsetWidth * pxRatio;\n this.element.height = size.height = this.element.offsetHeight * pxRatio;\n if (this.container.started) {\n this.resizeFactor = {\n width: size.width / oldSize.width,\n height: size.height / oldSize.height,\n };\n }\n }\n drawConnectLine(p1, p2) {\n this.draw((ctx) => {\n var _a;\n const lineStyle = this.lineStyle(p1, p2);\n if (!lineStyle) {\n return;\n }\n const pos1 = p1.getPosition(), pos2 = p2.getPosition();\n drawConnectLine(ctx, (_a = p1.retina.linksWidth) !== null && _a !== void 0 ? _a : this.container.retina.linksWidth, lineStyle, pos1, pos2);\n });\n }\n drawGrabLine(particle, lineColor, opacity, mousePos) {\n const container = this.container;\n this.draw((ctx) => {\n var _a;\n const beginPos = particle.getPosition();\n drawGrabLine(ctx, (_a = particle.retina.linksWidth) !== null && _a !== void 0 ? _a : container.retina.linksWidth, beginPos, mousePos, lineColor, opacity);\n });\n }\n drawParticle(particle, delta) {\n var _a, _b, _c, _d, _e, _f;\n if (particle.spawning || particle.destroyed) {\n return;\n }\n const radius = particle.getRadius();\n if (radius <= 0) {\n return;\n }\n const pfColor = particle.getFillColor(), psColor = (_a = particle.getStrokeColor()) !== null && _a !== void 0 ? _a : pfColor;\n if (!pfColor && !psColor) {\n return;\n }\n let [fColor, sColor] = this.getPluginParticleColors(particle);\n if (!fColor || !sColor) {\n if (!fColor) {\n fColor = pfColor ? pfColor : undefined;\n }\n if (!sColor) {\n sColor = psColor ? psColor : undefined;\n }\n }\n const options = this.container.actualOptions, zIndexOptions = particle.options.zIndex, zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate, opacity = (_d = (_b = particle.bubble.opacity) !== null && _b !== void 0 ? _b : (_c = particle.opacity) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : 1, strokeOpacity = (_f = (_e = particle.stroke) === null || _e === void 0 ? void 0 : _e.opacity) !== null && _f !== void 0 ? _f : opacity, zOpacity = opacity * zOpacityFactor, zStrokeOpacity = strokeOpacity * zOpacityFactor;\n const colorStyles = {\n fill: fColor ? getStyleFromHsl(fColor, zOpacity) : undefined,\n };\n colorStyles.stroke = sColor ? getStyleFromHsl(sColor, zStrokeOpacity) : colorStyles.fill;\n this.draw((ctx) => {\n const zSizeFactor = (1 - particle.zIndexFactor) ** zIndexOptions.sizeRate, container = this.container;\n for (const updater of container.particles.updaters) {\n if (updater.beforeDraw) {\n updater.beforeDraw(particle);\n }\n if (updater.getColorStyles) {\n const { fill, stroke } = updater.getColorStyles(particle, ctx, radius, zOpacity);\n if (fill) {\n colorStyles.fill = fill;\n }\n if (stroke) {\n colorStyles.stroke = stroke;\n }\n }\n }\n drawParticle(container, ctx, particle, delta, colorStyles, options.backgroundMask.enable, options.backgroundMask.composite, radius * zSizeFactor, zOpacity, particle.options.shadow);\n for (const updater of container.particles.updaters) {\n if (updater.afterDraw) {\n updater.afterDraw(particle);\n }\n }\n });\n }\n drawPlugin(plugin, delta) {\n this.draw((ctx) => {\n drawPlugin(ctx, plugin, delta);\n });\n }\n drawParticlePlugin(plugin, particle, delta) {\n this.draw((ctx) => {\n drawParticlePlugin(ctx, plugin, particle, delta);\n });\n }\n initBackground() {\n const options = this.container.actualOptions, background = options.background, element = this.element, elementStyle = element === null || element === void 0 ? void 0 : element.style;\n if (!elementStyle) {\n return;\n }\n if (background.color) {\n const color = colorToRgb(background.color);\n elementStyle.backgroundColor = color ? getStyleFromRgb(color, background.opacity) : \"\";\n }\n else {\n elementStyle.backgroundColor = \"\";\n }\n elementStyle.backgroundImage = background.image || \"\";\n elementStyle.backgroundPosition = background.position || \"\";\n elementStyle.backgroundRepeat = background.repeat || \"\";\n elementStyle.backgroundSize = background.size || \"\";\n }\n draw(cb) {\n if (!this.context) {\n return;\n }\n return cb(this.context);\n }\n initCover() {\n const options = this.container.actualOptions, cover = options.backgroundMask.cover, color = cover.color, coverRgb = colorToRgb(color);\n if (coverRgb) {\n const coverColor = {\n r: coverRgb.r,\n g: coverRgb.g,\n b: coverRgb.b,\n a: cover.opacity,\n };\n this.coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);\n }\n }\n initTrail() {\n const options = this.container.actualOptions, trail = options.particles.move.trail, fillColor = colorToRgb(trail.fillColor);\n if (fillColor) {\n const trail = options.particles.move.trail;\n this.trailFillColor = {\n r: fillColor.r,\n g: fillColor.g,\n b: fillColor.b,\n a: 1 / trail.length,\n };\n }\n }\n getPluginParticleColors(particle) {\n let fColor, sColor;\n for (const [, plugin] of this.container.plugins) {\n if (!fColor && plugin.particleFillColor) {\n fColor = colorToHsl(plugin.particleFillColor(particle));\n }\n if (!sColor && plugin.particleStrokeColor) {\n sColor = colorToHsl(plugin.particleStrokeColor(particle));\n }\n if (fColor && sColor) {\n break;\n }\n }\n return [fColor, sColor];\n }\n initStyle() {\n const element = this.element, options = this.container.actualOptions;\n if (!element) {\n return;\n }\n const originalStyle = this.originalStyle;\n if (options.fullScreen.enable) {\n this.originalStyle = deepExtend({}, element.style);\n element.style.setProperty(\"position\", \"fixed\", \"important\");\n element.style.setProperty(\"z-index\", options.fullScreen.zIndex.toString(10), \"important\");\n element.style.setProperty(\"top\", \"0\", \"important\");\n element.style.setProperty(\"left\", \"0\", \"important\");\n element.style.setProperty(\"width\", \"100%\", \"important\");\n element.style.setProperty(\"height\", \"100%\", \"important\");\n }\n else if (originalStyle) {\n element.style.position = originalStyle.position;\n element.style.zIndex = originalStyle.zIndex;\n element.style.top = originalStyle.top;\n element.style.left = originalStyle.left;\n element.style.width = originalStyle.width;\n element.style.height = originalStyle.height;\n }\n for (const key in options.style) {\n if (!key || !options.style) {\n continue;\n }\n const value = options.style[key];\n if (!value) {\n continue;\n }\n element.style.setProperty(key, value, \"important\");\n }\n }\n paintBase(baseColor) {\n this.draw((ctx) => {\n paintBase(ctx, this.size, baseColor);\n });\n }\n lineStyle(p1, p2) {\n return this.draw((ctx) => {\n const options = this.container.actualOptions, connectOptions = options.interactivity.modes.connect;\n return gradient(ctx, p1, p2, connectOptions.links.opacity);\n });\n }\n}\n","import { mouseDownEvent, mouseLeaveEvent, mouseMoveEvent, mouseOutEvent, mouseUpEvent, resizeEvent, touchCancelEvent, touchEndEvent, touchMoveEvent, touchStartEvent, visibilityChangeEvent, } from \"./Constants\";\nimport { isSsr } from \"../../Utils/Utils\";\nfunction manageListener(element, event, handler, add, options) {\n if (add) {\n let addOptions = { passive: true };\n if (typeof options === \"boolean\") {\n addOptions.capture = options;\n }\n else if (options !== undefined) {\n addOptions = options;\n }\n element.addEventListener(event, handler, addOptions);\n }\n else {\n const removeOptions = options;\n element.removeEventListener(event, handler, removeOptions);\n }\n}\nexport class EventListeners {\n constructor(container) {\n this.container = container;\n this.canPush = true;\n this.mouseMoveHandler = (e) => this.mouseTouchMove(e);\n this.touchStartHandler = (e) => this.mouseTouchMove(e);\n this.touchMoveHandler = (e) => this.mouseTouchMove(e);\n this.touchEndHandler = () => this.mouseTouchFinish();\n this.mouseLeaveHandler = () => this.mouseTouchFinish();\n this.touchCancelHandler = () => this.mouseTouchFinish();\n this.touchEndClickHandler = (e) => this.mouseTouchClick(e);\n this.mouseUpHandler = (e) => this.mouseTouchClick(e);\n this.mouseDownHandler = () => this.mouseDown();\n this.visibilityChangeHandler = () => this.handleVisibilityChange();\n this.themeChangeHandler = (e) => this.handleThemeChange(e);\n this.oldThemeChangeHandler = (e) => this.handleThemeChange(e);\n this.resizeHandler = () => this.handleWindowResize();\n }\n addListeners() {\n this.manageListeners(true);\n }\n removeListeners() {\n this.manageListeners(false);\n }\n manageListeners(add) {\n var _a;\n const container = this.container, options = container.actualOptions, detectType = options.interactivity.detectsOn;\n let mouseLeaveTmpEvent = mouseLeaveEvent;\n if (detectType === \"window\") {\n container.interactivity.element = window;\n mouseLeaveTmpEvent = mouseOutEvent;\n }\n else if (detectType === \"parent\" && container.canvas.element) {\n const canvasEl = container.canvas.element;\n container.interactivity.element = (_a = canvasEl.parentElement) !== null && _a !== void 0 ? _a : canvasEl.parentNode;\n }\n else {\n container.interactivity.element = container.canvas.element;\n }\n const mediaMatch = !isSsr() && typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-color-scheme: dark)\");\n if (mediaMatch) {\n if (mediaMatch.addEventListener !== undefined) {\n manageListener(mediaMatch, \"change\", this.themeChangeHandler, add);\n }\n else if (mediaMatch.addListener !== undefined) {\n if (add) {\n mediaMatch.addListener(this.oldThemeChangeHandler);\n }\n else {\n mediaMatch.removeListener(this.oldThemeChangeHandler);\n }\n }\n }\n const interactivityEl = container.interactivity.element;\n if (!interactivityEl) {\n return;\n }\n const html = interactivityEl;\n if (options.interactivity.events.onHover.enable || options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, mouseMoveEvent, this.mouseMoveHandler, add);\n manageListener(interactivityEl, touchStartEvent, this.touchStartHandler, add);\n manageListener(interactivityEl, touchMoveEvent, this.touchMoveHandler, add);\n if (!options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, touchEndEvent, this.touchEndHandler, add);\n }\n else {\n manageListener(interactivityEl, touchEndEvent, this.touchEndClickHandler, add);\n manageListener(interactivityEl, mouseUpEvent, this.mouseUpHandler, add);\n manageListener(interactivityEl, mouseDownEvent, this.mouseDownHandler, add);\n }\n manageListener(interactivityEl, mouseLeaveTmpEvent, this.mouseLeaveHandler, add);\n manageListener(interactivityEl, touchCancelEvent, this.touchCancelHandler, add);\n }\n if (container.canvas.element) {\n container.canvas.element.style.pointerEvents = html === container.canvas.element ? \"initial\" : \"none\";\n }\n if (options.interactivity.events.resize) {\n if (typeof ResizeObserver !== \"undefined\") {\n if (this.resizeObserver && !add) {\n if (container.canvas.element) {\n this.resizeObserver.unobserve(container.canvas.element);\n }\n this.resizeObserver.disconnect();\n delete this.resizeObserver;\n }\n else if (!this.resizeObserver && add && container.canvas.element) {\n this.resizeObserver = new ResizeObserver((entries) => {\n const entry = entries.find((e) => e.target === container.canvas.element);\n if (!entry) {\n return;\n }\n this.handleWindowResize();\n });\n this.resizeObserver.observe(container.canvas.element);\n }\n }\n else {\n manageListener(window, resizeEvent, this.resizeHandler, add);\n }\n }\n if (document) {\n manageListener(document, visibilityChangeEvent, this.visibilityChangeHandler, add, false);\n }\n }\n handleWindowResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n delete this.resizeTimeout;\n }\n this.resizeTimeout = setTimeout(async () => { var _a; return (_a = this.container.canvas) === null || _a === void 0 ? void 0 : _a.windowResize(); }, 500);\n }\n handleVisibilityChange() {\n const container = this.container, options = container.actualOptions;\n this.mouseTouchFinish();\n if (!options.pauseOnBlur) {\n return;\n }\n if (document === null || document === void 0 ? void 0 : document.hidden) {\n container.pageHidden = true;\n container.pause();\n }\n else {\n container.pageHidden = false;\n if (container.getAnimationStatus()) {\n container.play(true);\n }\n else {\n container.draw(true);\n }\n }\n }\n mouseDown() {\n const interactivity = this.container.interactivity;\n if (interactivity) {\n const mouse = interactivity.mouse;\n mouse.clicking = true;\n mouse.downPosition = mouse.position;\n }\n }\n mouseTouchMove(e) {\n var _a, _b, _c, _d, _e, _f, _g;\n const container = this.container, options = container.actualOptions;\n if (!((_a = container.interactivity) === null || _a === void 0 ? void 0 : _a.element)) {\n return;\n }\n container.interactivity.mouse.inside = true;\n let pos;\n const canvas = container.canvas.element;\n if (e.type.startsWith(\"mouse\")) {\n this.canPush = true;\n const mouseEvent = e;\n if (container.interactivity.element === window) {\n if (canvas) {\n const clientRect = canvas.getBoundingClientRect();\n pos = {\n x: mouseEvent.clientX - clientRect.left,\n y: mouseEvent.clientY - clientRect.top,\n };\n }\n }\n else if (options.interactivity.detectsOn === \"parent\") {\n const source = mouseEvent.target;\n const target = mouseEvent.currentTarget;\n const canvasEl = container.canvas.element;\n if (source && target && canvasEl) {\n const sourceRect = source.getBoundingClientRect();\n const targetRect = target.getBoundingClientRect();\n const canvasRect = canvasEl.getBoundingClientRect();\n pos = {\n x: mouseEvent.offsetX + 2 * sourceRect.left - (targetRect.left + canvasRect.left),\n y: mouseEvent.offsetY + 2 * sourceRect.top - (targetRect.top + canvasRect.top),\n };\n }\n else {\n pos = {\n x: (_b = mouseEvent.offsetX) !== null && _b !== void 0 ? _b : mouseEvent.clientX,\n y: (_c = mouseEvent.offsetY) !== null && _c !== void 0 ? _c : mouseEvent.clientY,\n };\n }\n }\n else {\n if (mouseEvent.target === container.canvas.element) {\n pos = {\n x: (_d = mouseEvent.offsetX) !== null && _d !== void 0 ? _d : mouseEvent.clientX,\n y: (_e = mouseEvent.offsetY) !== null && _e !== void 0 ? _e : mouseEvent.clientY,\n };\n }\n }\n }\n else {\n this.canPush = e.type !== \"touchmove\";\n const touchEvent = e;\n const lastTouch = touchEvent.touches[touchEvent.touches.length - 1];\n const canvasRect = canvas === null || canvas === void 0 ? void 0 : canvas.getBoundingClientRect();\n pos = {\n x: lastTouch.clientX - ((_f = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.left) !== null && _f !== void 0 ? _f : 0),\n y: lastTouch.clientY - ((_g = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.top) !== null && _g !== void 0 ? _g : 0),\n };\n }\n const pxRatio = container.retina.pixelRatio;\n if (pos) {\n pos.x *= pxRatio;\n pos.y *= pxRatio;\n }\n container.interactivity.mouse.position = pos;\n container.interactivity.status = mouseMoveEvent;\n }\n mouseTouchFinish() {\n const interactivity = this.container.interactivity;\n if (!interactivity) {\n return;\n }\n const mouse = interactivity.mouse;\n delete mouse.position;\n delete mouse.clickPosition;\n delete mouse.downPosition;\n interactivity.status = mouseLeaveEvent;\n mouse.inside = false;\n mouse.clicking = false;\n }\n mouseTouchClick(e) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse;\n mouse.inside = true;\n let handled = false;\n const mousePosition = mouse.position;\n if (!mousePosition || !options.interactivity.events.onClick.enable) {\n return;\n }\n for (const [, plugin] of container.plugins) {\n if (!plugin.clickPositionValid) {\n continue;\n }\n handled = plugin.clickPositionValid(mousePosition);\n if (handled) {\n break;\n }\n }\n if (!handled) {\n this.doMouseTouchClick(e);\n }\n mouse.clicking = false;\n }\n doMouseTouchClick(e) {\n const container = this.container, options = container.actualOptions;\n if (this.canPush) {\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n container.interactivity.mouse.clickPosition = {\n x: mousePos.x,\n y: mousePos.y,\n };\n container.interactivity.mouse.clickTime = new Date().getTime();\n const onClick = options.interactivity.events.onClick;\n if (onClick.mode instanceof Array) {\n for (const mode of onClick.mode) {\n this.handleClickMode(mode);\n }\n }\n else {\n this.handleClickMode(onClick.mode);\n }\n }\n if (e.type === \"touchend\") {\n setTimeout(() => this.mouseTouchFinish(), 500);\n }\n }\n handleThemeChange(e) {\n const mediaEvent = e, themeName = mediaEvent.matches\n ? this.container.options.defaultDarkTheme\n : this.container.options.defaultLightTheme, theme = this.container.options.themes.find((theme) => theme.name === themeName);\n if (theme && theme.default.auto) {\n this.container.loadTheme(themeName);\n }\n }\n handleClickMode(mode) {\n this.container.handleClickMode(mode);\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _InteractionManager_engine;\nexport class InteractionManager {\n constructor(engine, container) {\n this.container = container;\n _InteractionManager_engine.set(this, void 0);\n __classPrivateFieldSet(this, _InteractionManager_engine, engine, \"f\");\n this.externalInteractors = [];\n this.particleInteractors = [];\n this.init();\n }\n init() {\n const interactors = __classPrivateFieldGet(this, _InteractionManager_engine, \"f\").plugins.getInteractors(this.container, true);\n this.externalInteractors = [];\n this.particleInteractors = [];\n for (const interactor of interactors) {\n switch (interactor.type) {\n case 0:\n this.externalInteractors.push(interactor);\n break;\n case 1:\n this.particleInteractors.push(interactor);\n break;\n }\n }\n }\n async externalInteract(delta) {\n for (const interactor of this.externalInteractors) {\n if (interactor.isEnabled()) {\n await interactor.interact(delta);\n }\n }\n }\n async particlesInteract(particle, delta) {\n for (const interactor of this.externalInteractors) {\n interactor.reset(particle);\n }\n for (const interactor of this.particleInteractors) {\n if (interactor.isEnabled(particle)) {\n await interactor.interact(particle, delta);\n }\n }\n }\n handleClickMode(mode) {\n for (const interactor of this.externalInteractors) {\n if (interactor.handleClickMode) {\n interactor.handleClickMode(mode);\n }\n }\n }\n}\n_InteractionManager_engine = new WeakMap();\n","export class FrameManager {\n constructor(container) {\n this.container = container;\n }\n async nextFrame(timestamp) {\n var _a;\n try {\n const container = this.container;\n if (container.lastFrameTime !== undefined &&\n timestamp < container.lastFrameTime + 1000 / container.fpsLimit) {\n container.draw(false);\n return;\n }\n (_a = container.lastFrameTime) !== null && _a !== void 0 ? _a : (container.lastFrameTime = timestamp);\n const deltaValue = timestamp - container.lastFrameTime, delta = {\n value: deltaValue,\n factor: (60 * deltaValue) / 1000,\n };\n container.lifeTime += delta.value;\n container.lastFrameTime = timestamp;\n if (deltaValue > 1000) {\n container.draw(false);\n return;\n }\n await container.particles.draw(delta);\n if (container.duration > 0 && container.lifeTime > container.duration) {\n container.destroy();\n return;\n }\n if (container.getAnimationStatus()) {\n container.draw(false);\n }\n }\n catch (e) {\n console.error(\"tsParticles error in animation loop\", e);\n }\n }\n}\n","import { Vector } from \"./Vector\";\nexport class Vector3d extends Vector {\n constructor(xOrCoords, y, z) {\n super(xOrCoords, y);\n if (typeof xOrCoords !== \"number\" && xOrCoords) {\n this.z = xOrCoords.z;\n }\n else if (z !== undefined) {\n this.z = z;\n }\n else {\n throw new Error(\"tsParticles - Vector not initialized correctly\");\n }\n }\n static clone(source) {\n return Vector3d.create(source.x, source.y, source.z);\n }\n static create(x, y, z) {\n return new Vector3d(x, y, z);\n }\n static get origin() {\n return Vector3d.create(0, 0, 0);\n }\n add(v) {\n return v instanceof Vector3d ? Vector3d.create(this.x + v.x, this.y + v.y, this.z + v.z) : super.add(v);\n }\n addTo(v) {\n super.addTo(v);\n if (v instanceof Vector3d) {\n this.z += v.z;\n }\n }\n sub(v) {\n return v instanceof Vector3d ? Vector3d.create(this.x - v.x, this.y - v.y, this.z - v.z) : super.sub(v);\n }\n subFrom(v) {\n super.subFrom(v);\n if (v instanceof Vector3d) {\n this.z -= v.z;\n }\n }\n mult(n) {\n return Vector3d.create(this.x * n, this.y * n, this.z * n);\n }\n multTo(n) {\n super.multTo(n);\n this.z *= n;\n }\n div(n) {\n return Vector3d.create(this.x / n, this.y / n, this.z / n);\n }\n divTo(n) {\n super.divTo(n);\n this.z /= n;\n }\n copy() {\n return Vector3d.clone(this);\n }\n setTo(v) {\n super.setTo(v);\n const v3d = v;\n if (v3d.z !== undefined) {\n this.z = v3d.z;\n }\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Particle_engine;\nimport { calcExactPositionOrRandomFromSize, clamp, getDistance, getParticleBaseVelocity, getParticleDirectionAngle, getRangeMax, getRangeMin, getRangeValue, getValue, randomInRange, setRangeValue, } from \"../Utils/NumberUtils\";\nimport { colorToRgb, getHslFromAnimation } from \"../Utils/ColorUtils\";\nimport { deepExtend, isInArray, itemFromArray, loadParticlesOptions } from \"../Utils/Utils\";\nimport { Shape } from \"../Options/Classes/Particles/Shape/Shape\";\nimport { Vector } from \"./Utils/Vector\";\nimport { Vector3d } from \"./Utils/Vector3d\";\nimport { alterHsl } from \"../Utils/CanvasUtils\";\nconst fixOutMode = (data) => {\n if (!(isInArray(data.outMode, data.checkModes) || isInArray(data.outMode, data.checkModes))) {\n return;\n }\n if (data.coord > data.maxCoord - data.radius * 2) {\n data.setCb(-data.radius);\n }\n else if (data.coord < data.radius * 2) {\n data.setCb(data.radius);\n }\n};\nexport class Particle {\n constructor(engine, id, container, position, overrideOptions, group) {\n var _a, _b, _c, _d, _e, _f, _g;\n this.id = id;\n this.container = container;\n this.group = group;\n _Particle_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Particle_engine, engine, \"f\");\n this.fill = true;\n this.close = true;\n this.lastPathTime = 0;\n this.destroyed = false;\n this.unbreakable = false;\n this.splitCount = 0;\n this.misplaced = false;\n this.retina = {\n maxDistance: {},\n };\n this.outType = \"normal\";\n this.ignoresResizeRatio = true;\n const pxRatio = container.retina.pixelRatio, mainOptions = container.actualOptions, particlesOptions = loadParticlesOptions(mainOptions.particles);\n const shapeType = particlesOptions.shape.type, reduceDuplicates = particlesOptions.reduceDuplicates;\n this.shape = shapeType instanceof Array ? itemFromArray(shapeType, this.id, reduceDuplicates) : shapeType;\n if (overrideOptions === null || overrideOptions === void 0 ? void 0 : overrideOptions.shape) {\n if (overrideOptions.shape.type) {\n const overrideShapeType = overrideOptions.shape.type;\n this.shape =\n overrideShapeType instanceof Array\n ? itemFromArray(overrideShapeType, this.id, reduceDuplicates)\n : overrideShapeType;\n }\n const shapeOptions = new Shape();\n shapeOptions.load(overrideOptions.shape);\n if (this.shape) {\n this.shapeData = this.loadShapeData(shapeOptions, reduceDuplicates);\n }\n }\n else {\n this.shapeData = this.loadShapeData(particlesOptions.shape, reduceDuplicates);\n }\n if (overrideOptions !== undefined) {\n particlesOptions.load(overrideOptions);\n }\n if (((_a = this.shapeData) === null || _a === void 0 ? void 0 : _a.particles) !== undefined) {\n particlesOptions.load((_b = this.shapeData) === null || _b === void 0 ? void 0 : _b.particles);\n }\n this.fill = (_d = (_c = this.shapeData) === null || _c === void 0 ? void 0 : _c.fill) !== null && _d !== void 0 ? _d : this.fill;\n this.close = (_f = (_e = this.shapeData) === null || _e === void 0 ? void 0 : _e.close) !== null && _f !== void 0 ? _f : this.close;\n this.options = particlesOptions;\n this.pathDelay = getValue(this.options.move.path.delay) * 1000;\n const zIndexValue = getRangeValue(this.options.zIndex.value);\n container.retina.initParticle(this);\n const sizeOptions = this.options.size, sizeRange = sizeOptions.value;\n this.size = {\n enable: sizeOptions.animation.enable,\n value: getRangeValue(sizeOptions.value) * container.retina.pixelRatio,\n max: getRangeMax(sizeRange) * pxRatio,\n min: getRangeMin(sizeRange) * pxRatio,\n loops: 0,\n maxLoops: getRangeValue(sizeOptions.animation.count),\n };\n const sizeAnimation = sizeOptions.animation;\n if (sizeAnimation.enable) {\n this.size.status = 0;\n switch (sizeAnimation.startValue) {\n case \"min\":\n this.size.value = this.size.min;\n this.size.status = 0;\n break;\n case \"random\":\n this.size.value = randomInRange(this.size) * pxRatio;\n this.size.status = Math.random() >= 0.5 ? 0 : 1;\n break;\n case \"max\":\n default:\n this.size.value = this.size.max;\n this.size.status = 1;\n break;\n }\n this.size.velocity =\n (((_g = this.retina.sizeAnimationSpeed) !== null && _g !== void 0 ? _g : container.retina.sizeAnimationSpeed) / 100) *\n container.retina.reduceFactor;\n if (!sizeAnimation.sync) {\n this.size.velocity *= Math.random();\n }\n }\n this.bubble = {\n inRange: false,\n };\n this.position = this.calcPosition(container, position, clamp(zIndexValue, 0, container.zLayers));\n this.initialPosition = this.position.copy();\n const canvasSize = container.canvas.size, moveCenterPerc = this.options.move.center;\n this.moveCenter = {\n x: (canvasSize.width * moveCenterPerc.x) / 100,\n y: (canvasSize.height * moveCenterPerc.y) / 100,\n radius: this.options.move.center.radius,\n };\n this.direction = getParticleDirectionAngle(this.options.move.direction, this.position, this.moveCenter);\n switch (this.options.move.direction) {\n case \"inside\":\n this.outType = \"inside\";\n break;\n case \"outside\":\n this.outType = \"outside\";\n break;\n }\n this.initialVelocity = this.calculateVelocity();\n this.velocity = this.initialVelocity.copy();\n this.moveDecay = 1 - getRangeValue(this.options.move.decay);\n const gravityOptions = this.options.move.gravity;\n this.gravity = {\n enable: gravityOptions.enable,\n acceleration: getRangeValue(gravityOptions.acceleration),\n inverse: gravityOptions.inverse,\n };\n this.offset = Vector.origin;\n const particles = container.particles;\n particles.needsSort = particles.needsSort || particles.lastZIndex < this.position.z;\n particles.lastZIndex = this.position.z;\n this.zIndexFactor = this.position.z / container.zLayers;\n this.sides = 24;\n let drawer = container.drawers.get(this.shape);\n if (!drawer) {\n drawer = __classPrivateFieldGet(this, _Particle_engine, \"f\").plugins.getShapeDrawer(this.shape);\n if (drawer) {\n container.drawers.set(this.shape, drawer);\n }\n }\n if (drawer === null || drawer === void 0 ? void 0 : drawer.loadShape) {\n drawer === null || drawer === void 0 ? void 0 : drawer.loadShape(this);\n }\n const sideCountFunc = drawer === null || drawer === void 0 ? void 0 : drawer.getSidesCount;\n if (sideCountFunc) {\n this.sides = sideCountFunc(this);\n }\n this.life = this.loadLife();\n this.spawning = this.life.delay > 0;\n this.shadowColor = colorToRgb(this.options.shadow.color);\n for (const updater of container.particles.updaters) {\n if (updater.init) {\n updater.init(this);\n }\n }\n for (const mover of container.particles.movers) {\n if (mover.init) {\n mover.init(this);\n }\n }\n if (drawer && drawer.particleInit) {\n drawer.particleInit(container, this);\n }\n for (const [, plugin] of container.plugins) {\n if (plugin.particleCreated) {\n plugin.particleCreated(this);\n }\n }\n }\n isVisible() {\n return !this.destroyed && !this.spawning && this.isInsideCanvas();\n }\n isInsideCanvas() {\n const radius = this.getRadius(), canvasSize = this.container.canvas.size;\n return (this.position.x >= -radius &&\n this.position.y >= -radius &&\n this.position.y <= canvasSize.height + radius &&\n this.position.x <= canvasSize.width + radius);\n }\n draw(delta) {\n const container = this.container;\n for (const [, plugin] of container.plugins) {\n container.canvas.drawParticlePlugin(plugin, this, delta);\n }\n container.canvas.drawParticle(this, delta);\n }\n getPosition() {\n return {\n x: this.position.x + this.offset.x,\n y: this.position.y + this.offset.y,\n z: this.position.z,\n };\n }\n getRadius() {\n var _a;\n return (_a = this.bubble.radius) !== null && _a !== void 0 ? _a : this.size.value;\n }\n getMass() {\n return (this.getRadius() ** 2 * Math.PI) / 2;\n }\n getFillColor() {\n var _a, _b;\n const color = (_a = this.bubble.color) !== null && _a !== void 0 ? _a : getHslFromAnimation(this.color);\n if (color && this.roll && (this.backColor || this.roll.alter)) {\n const backFactor = this.options.roll.mode === \"both\" ? 2 : 1, backSum = this.options.roll.mode === \"horizontal\" ? Math.PI / 2 : 0, rolled = Math.floor((((_b = this.roll.angle) !== null && _b !== void 0 ? _b : 0) + backSum) / (Math.PI / backFactor)) % 2;\n if (rolled) {\n if (this.backColor) {\n return this.backColor;\n }\n if (this.roll.alter) {\n return alterHsl(color, this.roll.alter.type, this.roll.alter.value);\n }\n }\n }\n return color;\n }\n getStrokeColor() {\n var _a, _b;\n return (_b = (_a = this.bubble.color) !== null && _a !== void 0 ? _a : getHslFromAnimation(this.strokeColor)) !== null && _b !== void 0 ? _b : this.getFillColor();\n }\n destroy(override) {\n this.destroyed = true;\n this.bubble.inRange = false;\n if (this.unbreakable) {\n return;\n }\n this.destroyed = true;\n this.bubble.inRange = false;\n for (const [, plugin] of this.container.plugins) {\n if (plugin.particleDestroyed) {\n plugin.particleDestroyed(this, override);\n }\n }\n if (override) {\n return;\n }\n const destroyOptions = this.options.destroy;\n if (destroyOptions.mode === \"split\") {\n this.split();\n }\n }\n reset() {\n if (this.opacity) {\n this.opacity.loops = 0;\n }\n this.size.loops = 0;\n }\n split() {\n const splitOptions = this.options.destroy.split;\n if (splitOptions.count >= 0 && this.splitCount++ > splitOptions.count) {\n return;\n }\n const rate = getValue(splitOptions.rate);\n for (let i = 0; i < rate; i++) {\n this.container.particles.addSplitParticle(this);\n }\n }\n calcPosition(container, position, zIndex, tryCount = 0) {\n var _a, _b, _c, _d;\n for (const [, plugin] of container.plugins) {\n const pluginPos = plugin.particlePosition !== undefined ? plugin.particlePosition(position, this) : undefined;\n if (pluginPos !== undefined) {\n return Vector3d.create(pluginPos.x, pluginPos.y, zIndex);\n }\n }\n const canvasSize = container.canvas.size, exactPosition = calcExactPositionOrRandomFromSize({\n size: canvasSize,\n position: position,\n }), pos = Vector3d.create(exactPosition.x, exactPosition.y, zIndex), radius = this.getRadius(), outModes = this.options.move.outModes, fixHorizontal = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [\"bounce\", \"bounce-horizontal\"],\n coord: pos.x,\n maxCoord: container.canvas.size.width,\n setCb: (value) => (pos.x += value),\n radius,\n });\n }, fixVertical = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [\"bounce\", \"bounce-vertical\"],\n coord: pos.y,\n maxCoord: container.canvas.size.height,\n setCb: (value) => (pos.y += value),\n radius,\n });\n };\n fixHorizontal((_a = outModes.left) !== null && _a !== void 0 ? _a : outModes.default);\n fixHorizontal((_b = outModes.right) !== null && _b !== void 0 ? _b : outModes.default);\n fixVertical((_c = outModes.top) !== null && _c !== void 0 ? _c : outModes.default);\n fixVertical((_d = outModes.bottom) !== null && _d !== void 0 ? _d : outModes.default);\n if (this.checkOverlap(pos, tryCount)) {\n return this.calcPosition(container, undefined, zIndex, tryCount + 1);\n }\n return pos;\n }\n checkOverlap(pos, tryCount = 0) {\n const collisionsOptions = this.options.collisions, radius = this.getRadius();\n if (!collisionsOptions.enable) {\n return false;\n }\n const overlapOptions = collisionsOptions.overlap;\n if (overlapOptions.enable) {\n return false;\n }\n const retries = overlapOptions.retries;\n if (retries >= 0 && tryCount > retries) {\n throw new Error(\"Particle is overlapping and can't be placed\");\n }\n let overlaps = false;\n for (const particle of this.container.particles.array) {\n if (getDistance(pos, particle.position) < radius + particle.getRadius()) {\n overlaps = true;\n break;\n }\n }\n return overlaps;\n }\n calculateVelocity() {\n const baseVelocity = getParticleBaseVelocity(this.direction);\n const res = baseVelocity.copy();\n const moveOptions = this.options.move;\n if (moveOptions.direction === \"inside\" || moveOptions.direction === \"outside\") {\n return res;\n }\n const rad = (Math.PI / 180) * getRangeValue(moveOptions.angle.value);\n const radOffset = (Math.PI / 180) * getRangeValue(moveOptions.angle.offset);\n const range = {\n left: radOffset - rad / 2,\n right: radOffset + rad / 2,\n };\n if (!moveOptions.straight) {\n res.angle += randomInRange(setRangeValue(range.left, range.right));\n }\n if (moveOptions.random && typeof moveOptions.speed === \"number\") {\n res.length *= Math.random();\n }\n return res;\n }\n loadShapeData(shapeOptions, reduceDuplicates) {\n const shapeData = shapeOptions.options[this.shape];\n if (shapeData) {\n return deepExtend({}, shapeData instanceof Array ? itemFromArray(shapeData, this.id, reduceDuplicates) : shapeData);\n }\n }\n loadLife() {\n const container = this.container, particlesOptions = this.options, lifeOptions = particlesOptions.life, life = {\n delay: container.retina.reduceFactor\n ? ((getRangeValue(lifeOptions.delay.value) * (lifeOptions.delay.sync ? 1 : Math.random())) /\n container.retina.reduceFactor) *\n 1000\n : 0,\n delayTime: 0,\n duration: container.retina.reduceFactor\n ? ((getRangeValue(lifeOptions.duration.value) * (lifeOptions.duration.sync ? 1 : Math.random())) /\n container.retina.reduceFactor) *\n 1000\n : 0,\n time: 0,\n count: particlesOptions.life.count,\n };\n if (life.duration <= 0) {\n life.duration = -1;\n }\n if (life.count <= 0) {\n life.count = -1;\n }\n return life;\n }\n}\n_Particle_engine = new WeakMap();\n","export class Point {\n constructor(position, particle) {\n this.position = position;\n this.particle = particle;\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Particles_engine;\nimport { calcPositionFromSize, getRangeMax, getRangeMin, getValue, randomInRange, setRangeValue, } from \"../Utils/NumberUtils\";\nimport { InteractionManager } from \"./Utils/InteractionManager\";\nimport { Particle } from \"./Particle\";\nimport { Point } from \"./Utils/Point\";\nimport { QuadTree } from \"./Utils/QuadTree\";\nimport { Rectangle } from \"./Utils/Rectangle\";\nimport { loadParticlesOptions } from \"../Utils/Utils\";\nexport class Particles {\n constructor(engine, container) {\n this.container = container;\n _Particles_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Particles_engine, engine, \"f\");\n this.nextId = 0;\n this.array = [];\n this.zArray = [];\n this.limit = 0;\n this.needsSort = false;\n this.lastZIndex = 0;\n this.freqs = {\n links: new Map(),\n triangles: new Map(),\n };\n this.interactionManager = new InteractionManager(__classPrivateFieldGet(this, _Particles_engine, \"f\"), container);\n const canvasSize = this.container.canvas.size;\n this.linksColors = new Map();\n this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, (canvasSize.width * 3) / 2, (canvasSize.height * 3) / 2), 4);\n this.movers = __classPrivateFieldGet(this, _Particles_engine, \"f\").plugins.getMovers(container, true);\n this.updaters = __classPrivateFieldGet(this, _Particles_engine, \"f\").plugins.getUpdaters(container, true);\n }\n get count() {\n return this.array.length;\n }\n init() {\n var _a;\n const container = this.container, options = container.actualOptions;\n this.lastZIndex = 0;\n this.needsSort = false;\n this.freqs.links = new Map();\n this.freqs.triangles = new Map();\n let handled = false;\n this.updaters = __classPrivateFieldGet(this, _Particles_engine, \"f\").plugins.getUpdaters(container, true);\n this.interactionManager.init();\n for (const [, plugin] of container.plugins) {\n if (plugin.particlesInitialization !== undefined) {\n handled = plugin.particlesInitialization();\n }\n if (handled) {\n break;\n }\n }\n this.addManualParticles();\n if (!handled) {\n for (const group in options.particles.groups) {\n const groupOptions = options.particles.groups[group];\n for (let i = this.count, j = 0; j < ((_a = groupOptions.number) === null || _a === void 0 ? void 0 : _a.value) && i < options.particles.number.value; i++, j++) {\n this.addParticle(undefined, groupOptions, group);\n }\n }\n for (let i = this.count; i < options.particles.number.value; i++) {\n this.addParticle();\n }\n }\n container.pathGenerator.init(container);\n }\n async redraw() {\n this.clear();\n this.init();\n await this.draw({ value: 0, factor: 0 });\n }\n removeAt(index, quantity = 1, group, override) {\n if (!(index >= 0 && index <= this.count)) {\n return;\n }\n let deleted = 0;\n for (let i = index; deleted < quantity && i < this.count; i++) {\n const particle = this.array[i];\n if (!particle || particle.group !== group) {\n continue;\n }\n particle.destroy(override);\n this.array.splice(i--, 1);\n const zIdx = this.zArray.indexOf(particle);\n this.zArray.splice(zIdx, 1);\n deleted++;\n __classPrivateFieldGet(this, _Particles_engine, \"f\").dispatchEvent(\"particleRemoved\", {\n container: this.container,\n data: {\n particle,\n },\n });\n }\n }\n remove(particle, group, override) {\n this.removeAt(this.array.indexOf(particle), undefined, group, override);\n }\n async update(delta) {\n const container = this.container, particlesToDelete = [];\n container.pathGenerator.update();\n for (const [, plugin] of container.plugins) {\n if (plugin.update !== undefined) {\n plugin.update(delta);\n }\n }\n for (const particle of this.array) {\n const resizeFactor = container.canvas.resizeFactor;\n if (resizeFactor && !particle.ignoresResizeRatio) {\n particle.position.x *= resizeFactor.width;\n particle.position.y *= resizeFactor.height;\n }\n particle.ignoresResizeRatio = false;\n particle.bubble.inRange = false;\n for (const [, plugin] of this.container.plugins) {\n if (particle.destroyed) {\n break;\n }\n if (plugin.particleUpdate) {\n plugin.particleUpdate(particle, delta);\n }\n }\n for (const mover of this.movers) {\n if (mover.isEnabled(particle)) {\n mover.move(particle, delta);\n }\n }\n if (particle.destroyed) {\n particlesToDelete.push(particle);\n continue;\n }\n this.quadTree.insert(new Point(particle.getPosition(), particle));\n }\n for (const particle of particlesToDelete) {\n this.remove(particle);\n }\n await this.interactionManager.externalInteract(delta);\n for (const particle of container.particles.array) {\n for (const updater of this.updaters) {\n updater.update(particle, delta);\n }\n if (!particle.destroyed && !particle.spawning) {\n await this.interactionManager.particlesInteract(particle, delta);\n }\n }\n delete container.canvas.resizeFactor;\n }\n async draw(delta) {\n const container = this.container, canvasSize = this.container.canvas.size;\n this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, (canvasSize.width * 3) / 2, (canvasSize.height * 3) / 2), 4);\n container.canvas.clear();\n await this.update(delta);\n if (this.needsSort) {\n this.zArray.sort((a, b) => b.position.z - a.position.z || a.id - b.id);\n this.lastZIndex = this.zArray[this.zArray.length - 1].position.z;\n this.needsSort = false;\n }\n for (const [, plugin] of container.plugins) {\n container.canvas.drawPlugin(plugin, delta);\n }\n for (const p of this.zArray) {\n p.draw(delta);\n }\n }\n clear() {\n this.array = [];\n this.zArray = [];\n }\n push(nb, mouse, overrideOptions, group) {\n this.pushing = true;\n for (let i = 0; i < nb; i++) {\n this.addParticle(mouse === null || mouse === void 0 ? void 0 : mouse.position, overrideOptions, group);\n }\n this.pushing = false;\n }\n addParticle(position, overrideOptions, group) {\n const container = this.container, options = container.actualOptions, limit = options.particles.number.limit * container.density;\n if (limit > 0) {\n const countToRemove = this.count + 1 - limit;\n if (countToRemove > 0) {\n this.removeQuantity(countToRemove);\n }\n }\n return this.pushParticle(position, overrideOptions, group);\n }\n addSplitParticle(parent) {\n const splitOptions = parent.options.destroy.split;\n const options = loadParticlesOptions(parent.options);\n const factor = getValue(splitOptions.factor);\n options.color.load({\n value: {\n hsl: parent.getFillColor(),\n },\n });\n if (typeof options.size.value === \"number\") {\n options.size.value /= factor;\n }\n else {\n options.size.value.min /= factor;\n options.size.value.max /= factor;\n }\n options.load(splitOptions.particles);\n const offset = splitOptions.sizeOffset ? setRangeValue(-parent.size.value, parent.size.value) : 0, position = {\n x: parent.position.x + randomInRange(offset),\n y: parent.position.y + randomInRange(offset),\n };\n return this.pushParticle(position, options, parent.group, (particle) => {\n if (particle.size.value < 0.5) {\n return false;\n }\n particle.velocity.length = randomInRange(setRangeValue(parent.velocity.length, particle.velocity.length));\n particle.splitCount = parent.splitCount + 1;\n particle.unbreakable = true;\n setTimeout(() => {\n particle.unbreakable = false;\n }, 500);\n return true;\n });\n }\n removeQuantity(quantity, group) {\n this.removeAt(0, quantity, group);\n }\n getLinkFrequency(p1, p2) {\n const range = setRangeValue(p1.id, p2.id), key = `${getRangeMin(range)}_${getRangeMax(range)}`;\n let res = this.freqs.links.get(key);\n if (res === undefined) {\n res = Math.random();\n this.freqs.links.set(key, res);\n }\n return res;\n }\n getTriangleFrequency(p1, p2, p3) {\n let [id1, id2, id3] = [p1.id, p2.id, p3.id];\n if (id1 > id2) {\n [id2, id1] = [id1, id2];\n }\n if (id2 > id3) {\n [id3, id2] = [id2, id3];\n }\n if (id1 > id3) {\n [id3, id1] = [id1, id3];\n }\n const key = `${id1}_${id2}_${id3}`;\n let res = this.freqs.triangles.get(key);\n if (res === undefined) {\n res = Math.random();\n this.freqs.triangles.set(key, res);\n }\n return res;\n }\n addManualParticles() {\n const container = this.container, options = container.actualOptions;\n for (const particle of options.manualParticles) {\n this.addParticle(calcPositionFromSize({\n size: container.canvas.size,\n position: particle.position,\n }), particle.options);\n }\n }\n setDensity() {\n const options = this.container.actualOptions;\n for (const group in options.particles.groups) {\n this.applyDensity(options.particles.groups[group], 0, group);\n }\n this.applyDensity(options.particles, options.manualParticles.length);\n }\n handleClickMode(mode) {\n this.interactionManager.handleClickMode(mode);\n }\n applyDensity(options, manualCount, group) {\n var _a;\n if (!((_a = options.number.density) === null || _a === void 0 ? void 0 : _a.enable)) {\n return;\n }\n const numberOptions = options.number, densityFactor = this.initDensityFactor(numberOptions.density), optParticlesNumber = numberOptions.value, optParticlesLimit = numberOptions.limit > 0 ? numberOptions.limit : optParticlesNumber, particlesNumber = Math.min(optParticlesNumber, optParticlesLimit) * densityFactor + manualCount, particlesCount = Math.min(this.count, this.array.filter((t) => t.group === group).length);\n this.limit = numberOptions.limit * densityFactor;\n if (particlesCount < particlesNumber) {\n this.push(Math.abs(particlesNumber - particlesCount), undefined, options, group);\n }\n else if (particlesCount > particlesNumber) {\n this.removeQuantity(particlesCount - particlesNumber, group);\n }\n }\n initDensityFactor(densityOptions) {\n const container = this.container;\n if (!container.canvas.element || !densityOptions.enable) {\n return 1;\n }\n const canvas = container.canvas.element, pxRatio = container.retina.pixelRatio;\n return (canvas.width * canvas.height) / (densityOptions.factor * pxRatio ** 2 * densityOptions.area);\n }\n pushParticle(position, overrideOptions, group, initializer) {\n try {\n const particle = new Particle(__classPrivateFieldGet(this, _Particles_engine, \"f\"), this.nextId, this.container, position, overrideOptions, group);\n let canAdd = true;\n if (initializer) {\n canAdd = initializer(particle);\n }\n if (!canAdd) {\n return;\n }\n this.array.push(particle);\n this.zArray.push(particle);\n this.nextId++;\n __classPrivateFieldGet(this, _Particles_engine, \"f\").dispatchEvent(\"particleAdded\", {\n container: this.container,\n data: {\n particle,\n },\n });\n return particle;\n }\n catch (e) {\n console.warn(`error adding particle: ${e}`);\n return;\n }\n }\n}\n_Particles_engine = new WeakMap();\n","export class Range {\n constructor(x, y) {\n this.position = {\n x: x,\n y: y,\n };\n }\n}\n","import { Range } from \"./Range\";\nimport { getDistance } from \"../../Utils/NumberUtils\";\nexport class Circle extends Range {\n constructor(x, y, radius) {\n super(x, y);\n this.radius = radius;\n }\n contains(point) {\n return getDistance(point, this.position) <= this.radius;\n }\n intersects(range) {\n const rect = range, circle = range, pos1 = this.position, pos2 = range.position, xDist = Math.abs(pos2.x - pos1.x), yDist = Math.abs(pos2.y - pos1.y), r = this.radius;\n if (circle.radius !== undefined) {\n const rSum = r + circle.radius, dist = Math.sqrt(xDist * xDist + yDist + yDist);\n return rSum > dist;\n }\n else if (rect.size !== undefined) {\n const w = rect.size.width, h = rect.size.height, edges = Math.pow(xDist - w, 2) + Math.pow(yDist - h, 2);\n if (xDist > r + w || yDist > r + h) {\n return false;\n }\n if (xDist <= w || yDist <= h) {\n return true;\n }\n return edges <= r * r;\n }\n return false;\n }\n}\n","import { Range } from \"./Range\";\nexport class Rectangle extends Range {\n constructor(x, y, width, height) {\n super(x, y);\n this.size = {\n height: height,\n width: width,\n };\n }\n contains(point) {\n const w = this.size.width, h = this.size.height, pos = this.position;\n return point.x >= pos.x && point.x <= pos.x + w && point.y >= pos.y && point.y <= pos.y + h;\n }\n intersects(range) {\n const rect = range, circle = range, w = this.size.width, h = this.size.height, pos1 = this.position, pos2 = range.position;\n if (circle.radius !== undefined) {\n return circle.intersects(this);\n }\n if (!rect.size) {\n return false;\n }\n const size2 = rect.size, w2 = size2.width, h2 = size2.height;\n return pos2.x < pos1.x + w && pos2.x + w2 > pos1.x && pos2.y < pos1.y + h && pos2.y + h2 > pos1.y;\n }\n}\n","import { Circle } from \"./Circle\";\nimport { Rectangle } from \"./Rectangle\";\nexport class CircleWarp extends Circle {\n constructor(x, y, radius, canvasSize) {\n super(x, y, radius);\n this.canvasSize = canvasSize;\n this.canvasSize = Object.assign({}, canvasSize);\n }\n contains(point) {\n if (super.contains(point)) {\n return true;\n }\n const posNE = {\n x: point.x - this.canvasSize.width,\n y: point.y,\n };\n if (super.contains(posNE)) {\n return true;\n }\n const posSE = {\n x: point.x - this.canvasSize.width,\n y: point.y - this.canvasSize.height,\n };\n if (super.contains(posSE)) {\n return true;\n }\n const posSW = {\n x: point.x,\n y: point.y - this.canvasSize.height,\n };\n return super.contains(posSW);\n }\n intersects(range) {\n if (super.intersects(range)) {\n return true;\n }\n const rect = range, circle = range, newPos = {\n x: range.position.x - this.canvasSize.width,\n y: range.position.y - this.canvasSize.height,\n };\n if (circle.radius !== undefined) {\n const biggerCircle = new Circle(newPos.x, newPos.y, circle.radius * 2);\n return super.intersects(biggerCircle);\n }\n else if (rect.size !== undefined) {\n const rectSW = new Rectangle(newPos.x, newPos.y, rect.size.width * 2, rect.size.height * 2);\n return super.intersects(rectSW);\n }\n return false;\n }\n}\n","import { Circle } from \"./Circle\";\nimport { CircleWarp } from \"./CircleWarp\";\nimport { Rectangle } from \"./Rectangle\";\nimport { getDistance } from \"../../Utils/NumberUtils\";\nexport class QuadTree {\n constructor(rectangle, capacity) {\n this.rectangle = rectangle;\n this.capacity = capacity;\n this.points = [];\n this.divided = false;\n }\n insert(point) {\n var _a, _b, _c, _d, _e;\n if (!this.rectangle.contains(point.position)) {\n return false;\n }\n if (this.points.length < this.capacity) {\n this.points.push(point);\n return true;\n }\n if (!this.divided) {\n this.subdivide();\n }\n return ((_e = (((_a = this.northEast) === null || _a === void 0 ? void 0 : _a.insert(point)) ||\n ((_b = this.northWest) === null || _b === void 0 ? void 0 : _b.insert(point)) ||\n ((_c = this.southEast) === null || _c === void 0 ? void 0 : _c.insert(point)) ||\n ((_d = this.southWest) === null || _d === void 0 ? void 0 : _d.insert(point)))) !== null && _e !== void 0 ? _e : false);\n }\n queryCircle(position, radius) {\n return this.query(new Circle(position.x, position.y, radius));\n }\n queryCircleWarp(position, radius, containerOrSize) {\n const container = containerOrSize, size = containerOrSize;\n return this.query(new CircleWarp(position.x, position.y, radius, container.canvas !== undefined ? container.canvas.size : size));\n }\n queryRectangle(position, size) {\n return this.query(new Rectangle(position.x, position.y, size.width, size.height));\n }\n query(range, found) {\n var _a, _b, _c, _d;\n const res = found !== null && found !== void 0 ? found : [];\n if (!range.intersects(this.rectangle)) {\n return [];\n }\n for (const p of this.points) {\n if (!range.contains(p.position) && getDistance(range.position, p.position) > p.particle.getRadius()) {\n continue;\n }\n res.push(p.particle);\n }\n if (this.divided) {\n (_a = this.northEast) === null || _a === void 0 ? void 0 : _a.query(range, res);\n (_b = this.northWest) === null || _b === void 0 ? void 0 : _b.query(range, res);\n (_c = this.southEast) === null || _c === void 0 ? void 0 : _c.query(range, res);\n (_d = this.southWest) === null || _d === void 0 ? void 0 : _d.query(range, res);\n }\n return res;\n }\n subdivide() {\n const x = this.rectangle.position.x, y = this.rectangle.position.y, w = this.rectangle.size.width, h = this.rectangle.size.height, capacity = this.capacity;\n this.northEast = new QuadTree(new Rectangle(x, y, w / 2, h / 2), capacity);\n this.northWest = new QuadTree(new Rectangle(x + w / 2, y, w / 2, h / 2), capacity);\n this.southEast = new QuadTree(new Rectangle(x, y + h / 2, w / 2, h / 2), capacity);\n this.southWest = new QuadTree(new Rectangle(x + w / 2, y + h / 2, w / 2, h / 2), capacity);\n this.divided = true;\n }\n}\n","import { getRangeValue } from \"../Utils/NumberUtils\";\nimport { isSsr } from \"../Utils/Utils\";\nexport class Retina {\n constructor(container) {\n this.container = container;\n }\n init() {\n const container = this.container, options = container.actualOptions;\n this.pixelRatio = !options.detectRetina || isSsr() ? 1 : window.devicePixelRatio;\n const motionOptions = this.container.actualOptions.motion;\n if (motionOptions && (motionOptions.disable || motionOptions.reduce.value)) {\n if (isSsr() || typeof matchMedia === \"undefined\" || !matchMedia) {\n this.reduceFactor = 1;\n }\n else {\n const mediaQuery = matchMedia(\"(prefers-reduced-motion: reduce)\");\n if (mediaQuery) {\n this.handleMotionChange(mediaQuery);\n const handleChange = () => {\n this.handleMotionChange(mediaQuery);\n container.refresh().catch(() => {\n });\n };\n if (mediaQuery.addEventListener !== undefined) {\n mediaQuery.addEventListener(\"change\", handleChange);\n }\n else if (mediaQuery.addListener !== undefined) {\n mediaQuery.addListener(handleChange);\n }\n }\n }\n }\n else {\n this.reduceFactor = 1;\n }\n const ratio = this.pixelRatio;\n if (container.canvas.element) {\n const element = container.canvas.element;\n container.canvas.size.width = element.offsetWidth * ratio;\n container.canvas.size.height = element.offsetHeight * ratio;\n }\n const particles = options.particles;\n this.attractDistance = getRangeValue(particles.move.attract.distance) * ratio;\n this.linksDistance = particles.links.distance * ratio;\n this.linksWidth = particles.links.width * ratio;\n this.sizeAnimationSpeed = getRangeValue(particles.size.animation.speed) * ratio;\n this.maxSpeed = getRangeValue(particles.move.gravity.maxSpeed) * ratio;\n const modes = options.interactivity.modes;\n this.connectModeDistance = modes.connect.distance * ratio;\n this.connectModeRadius = modes.connect.radius * ratio;\n this.grabModeDistance = modes.grab.distance * ratio;\n this.repulseModeDistance = modes.repulse.distance * ratio;\n this.bounceModeDistance = modes.bounce.distance * ratio;\n this.attractModeDistance = modes.attract.distance * ratio;\n this.slowModeRadius = modes.slow.radius * ratio;\n this.bubbleModeDistance = modes.bubble.distance * ratio;\n if (modes.bubble.size) {\n this.bubbleModeSize = modes.bubble.size * ratio;\n }\n }\n initParticle(particle) {\n const options = particle.options, ratio = this.pixelRatio, moveDistance = options.move.distance, props = particle.retina;\n props.attractDistance = getRangeValue(options.move.attract.distance) * ratio;\n props.linksDistance = options.links.distance * ratio;\n props.linksWidth = options.links.width * ratio;\n props.moveDrift = getRangeValue(options.move.drift) * ratio;\n props.moveSpeed = getRangeValue(options.move.speed) * ratio;\n props.sizeAnimationSpeed = getRangeValue(options.size.animation.speed) * ratio;\n const maxDistance = props.maxDistance;\n maxDistance.horizontal = moveDistance.horizontal !== undefined ? moveDistance.horizontal * ratio : undefined;\n maxDistance.vertical = moveDistance.vertical !== undefined ? moveDistance.vertical * ratio : undefined;\n props.maxSpeed = getRangeValue(options.move.gravity.maxSpeed) * ratio;\n }\n handleMotionChange(mediaQuery) {\n const options = this.container.actualOptions;\n if (mediaQuery.matches) {\n const motion = options.motion;\n this.reduceFactor = motion.disable ? 0 : motion.reduce.value ? 1 / motion.reduce.factor : 1;\n }\n else {\n this.reduceFactor = 1;\n }\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Container_engine;\nimport { animate, cancelAnimation, loadContainerOptions } from \"../Utils/Utils\";\nimport { Canvas } from \"./Canvas\";\nimport { EventListeners } from \"./Utils/EventListeners\";\nimport { FrameManager } from \"./Utils/FrameManager\";\nimport { Particles } from \"./Particles\";\nimport { Retina } from \"./Retina\";\nimport { getRangeValue } from \"../Utils/NumberUtils\";\nexport class Container {\n constructor(engine, id, sourceOptions) {\n this.id = id;\n _Container_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Container_engine, engine, \"f\");\n this.fpsLimit = 120;\n this.duration = 0;\n this.lifeTime = 0;\n this.firstStart = true;\n this.started = false;\n this.destroyed = false;\n this.paused = true;\n this.lastFrameTime = 0;\n this.zLayers = 100;\n this.pageHidden = false;\n this._sourceOptions = sourceOptions;\n this._initialSourceOptions = sourceOptions;\n this.retina = new Retina(this);\n this.canvas = new Canvas(this);\n this.particles = new Particles(__classPrivateFieldGet(this, _Container_engine, \"f\"), this);\n this.drawer = new FrameManager(this);\n this.pathGenerator = {\n generate: (p) => {\n const v = p.velocity.copy();\n v.angle += (v.length * Math.PI) / 180;\n return v;\n },\n init: () => {\n },\n update: () => {\n },\n };\n this.interactivity = {\n mouse: {\n clicking: false,\n inside: false,\n },\n };\n this.plugins = new Map();\n this.drawers = new Map();\n this.density = 1;\n this._options = loadContainerOptions(__classPrivateFieldGet(this, _Container_engine, \"f\"));\n this.actualOptions = loadContainerOptions(__classPrivateFieldGet(this, _Container_engine, \"f\"));\n this.eventListeners = new EventListeners(this);\n if (typeof IntersectionObserver !== \"undefined\" && IntersectionObserver) {\n this.intersectionObserver = new IntersectionObserver((entries) => this.intersectionManager(entries));\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerBuilt\", { container: this });\n }\n get options() {\n return this._options;\n }\n get sourceOptions() {\n return this._sourceOptions;\n }\n play(force) {\n const needsUpdate = this.paused || force;\n if (this.firstStart && !this.actualOptions.autoPlay) {\n this.firstStart = false;\n return;\n }\n if (this.paused) {\n this.paused = false;\n }\n if (needsUpdate) {\n for (const [, plugin] of this.plugins) {\n if (plugin.play) {\n plugin.play();\n }\n }\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerPlay\", { container: this });\n this.draw(needsUpdate || false);\n }\n pause() {\n if (this.drawAnimationFrame !== undefined) {\n cancelAnimation()(this.drawAnimationFrame);\n delete this.drawAnimationFrame;\n }\n if (this.paused) {\n return;\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.pause) {\n plugin.pause();\n }\n }\n if (!this.pageHidden) {\n this.paused = true;\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerPaused\", { container: this });\n }\n draw(force) {\n let refreshTime = force;\n this.drawAnimationFrame = animate()(async (timestamp) => {\n if (refreshTime) {\n this.lastFrameTime = undefined;\n refreshTime = false;\n }\n await this.drawer.nextFrame(timestamp);\n });\n }\n getAnimationStatus() {\n return !this.paused && !this.pageHidden;\n }\n setNoise(noiseOrGenerator, init, update) {\n this.setPath(noiseOrGenerator, init, update);\n }\n setPath(pathOrGenerator, init, update) {\n var _a, _b, _c;\n if (!pathOrGenerator) {\n return;\n }\n if (typeof pathOrGenerator === \"function\") {\n this.pathGenerator.generate = pathOrGenerator;\n if (init) {\n this.pathGenerator.init = init;\n }\n if (update) {\n this.pathGenerator.update = update;\n }\n }\n else {\n const oldGenerator = this.pathGenerator;\n this.pathGenerator = pathOrGenerator;\n (_a = this.pathGenerator).generate || (_a.generate = oldGenerator.generate);\n (_b = this.pathGenerator).init || (_b.init = oldGenerator.init);\n (_c = this.pathGenerator).update || (_c.update = oldGenerator.update);\n }\n }\n destroy() {\n this.stop();\n this.canvas.destroy();\n for (const [, drawer] of this.drawers) {\n if (drawer.destroy) {\n drawer.destroy(this);\n }\n }\n for (const key of this.drawers.keys()) {\n this.drawers.delete(key);\n }\n this.destroyed = true;\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerDestroyed\", { container: this });\n }\n exportImg(callback) {\n this.exportImage(callback);\n }\n exportImage(callback, type, quality) {\n var _a;\n return (_a = this.canvas.element) === null || _a === void 0 ? void 0 : _a.toBlob(callback, type !== null && type !== void 0 ? type : \"image/png\", quality);\n }\n exportConfiguration() {\n return JSON.stringify(this.actualOptions, undefined, 2);\n }\n refresh() {\n this.stop();\n return this.start();\n }\n reset() {\n this._options = loadContainerOptions(__classPrivateFieldGet(this, _Container_engine, \"f\"));\n return this.refresh();\n }\n stop() {\n if (!this.started) {\n return;\n }\n this.firstStart = true;\n this.started = false;\n this.eventListeners.removeListeners();\n this.pause();\n this.particles.clear();\n this.canvas.clear();\n if (this.interactivity.element instanceof HTMLElement && this.intersectionObserver) {\n this.intersectionObserver.unobserve(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.stop) {\n plugin.stop();\n }\n }\n for (const key of this.plugins.keys()) {\n this.plugins.delete(key);\n }\n this.particles.linksColors = new Map();\n delete this.particles.grabLineColor;\n delete this.particles.linksColor;\n this._sourceOptions = this._options;\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerStopped\", { container: this });\n }\n async loadTheme(name) {\n this.currentTheme = name;\n await this.refresh();\n }\n async start() {\n if (this.started) {\n return;\n }\n await this.init();\n this.started = true;\n this.eventListeners.addListeners();\n if (this.interactivity.element instanceof HTMLElement && this.intersectionObserver) {\n this.intersectionObserver.observe(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.startAsync !== undefined) {\n await plugin.startAsync();\n }\n else if (plugin.start !== undefined) {\n plugin.start();\n }\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerStarted\", { container: this });\n this.play();\n }\n addClickHandler(callback) {\n const el = this.interactivity.element;\n if (!el) {\n return;\n }\n const clickOrTouchHandler = (e, pos, radius) => {\n if (this.destroyed) {\n return;\n }\n const pxRatio = this.retina.pixelRatio, posRetina = {\n x: pos.x * pxRatio,\n y: pos.y * pxRatio,\n }, particles = this.particles.quadTree.queryCircle(posRetina, radius * pxRatio);\n callback(e, particles);\n };\n const clickHandler = (e) => {\n if (this.destroyed) {\n return;\n }\n const mouseEvent = e, pos = {\n x: mouseEvent.offsetX || mouseEvent.clientX,\n y: mouseEvent.offsetY || mouseEvent.clientY,\n };\n clickOrTouchHandler(e, pos, 1);\n };\n const touchStartHandler = () => {\n if (this.destroyed) {\n return;\n }\n touched = true;\n touchMoved = false;\n };\n const touchMoveHandler = () => {\n if (this.destroyed) {\n return;\n }\n touchMoved = true;\n };\n const touchEndHandler = (e) => {\n var _a, _b, _c;\n if (this.destroyed) {\n return;\n }\n if (touched && !touchMoved) {\n const touchEvent = e;\n let lastTouch = touchEvent.touches[touchEvent.touches.length - 1];\n if (!lastTouch) {\n lastTouch = touchEvent.changedTouches[touchEvent.changedTouches.length - 1];\n if (!lastTouch) {\n return;\n }\n }\n const canvasRect = (_a = this.canvas.element) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect(), pos = {\n x: lastTouch.clientX - ((_b = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.left) !== null && _b !== void 0 ? _b : 0),\n y: lastTouch.clientY - ((_c = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.top) !== null && _c !== void 0 ? _c : 0),\n };\n clickOrTouchHandler(e, pos, Math.max(lastTouch.radiusX, lastTouch.radiusY));\n }\n touched = false;\n touchMoved = false;\n };\n const touchCancelHandler = () => {\n if (this.destroyed) {\n return;\n }\n touched = false;\n touchMoved = false;\n };\n let touched = false;\n let touchMoved = false;\n el.addEventListener(\"click\", clickHandler);\n el.addEventListener(\"touchstart\", touchStartHandler);\n el.addEventListener(\"touchmove\", touchMoveHandler);\n el.addEventListener(\"touchend\", touchEndHandler);\n el.addEventListener(\"touchcancel\", touchCancelHandler);\n }\n handleClickMode(mode) {\n this.particles.handleClickMode(mode);\n for (const [, plugin] of this.plugins) {\n if (plugin.handleClickMode) {\n plugin.handleClickMode(mode);\n }\n }\n }\n updateActualOptions() {\n this.actualOptions.responsive = [];\n const newMaxWidth = this.actualOptions.setResponsive(this.canvas.size.width, this.retina.pixelRatio, this._options);\n this.actualOptions.setTheme(this.currentTheme);\n if (this.responsiveMaxWidth != newMaxWidth) {\n this.responsiveMaxWidth = newMaxWidth;\n return true;\n }\n return false;\n }\n async init() {\n const shapes = __classPrivateFieldGet(this, _Container_engine, \"f\").plugins.getSupportedShapes();\n for (const type of shapes) {\n const drawer = __classPrivateFieldGet(this, _Container_engine, \"f\").plugins.getShapeDrawer(type);\n if (drawer) {\n this.drawers.set(type, drawer);\n }\n }\n this._options = loadContainerOptions(__classPrivateFieldGet(this, _Container_engine, \"f\"), this._initialSourceOptions, this.sourceOptions);\n this.actualOptions = loadContainerOptions(__classPrivateFieldGet(this, _Container_engine, \"f\"), this._options);\n this.retina.init();\n this.canvas.init();\n this.updateActualOptions();\n this.canvas.initBackground();\n this.canvas.resize();\n this.zLayers = this.actualOptions.zLayers;\n this.duration = getRangeValue(this.actualOptions.duration);\n this.lifeTime = 0;\n this.fpsLimit = this.actualOptions.fpsLimit > 0 ? this.actualOptions.fpsLimit : 120;\n const availablePlugins = __classPrivateFieldGet(this, _Container_engine, \"f\").plugins.getAvailablePlugins(this);\n for (const [id, plugin] of availablePlugins) {\n this.plugins.set(id, plugin);\n }\n for (const [, drawer] of this.drawers) {\n if (drawer.init) {\n await drawer.init(this);\n }\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.init) {\n plugin.init(this.actualOptions);\n }\n else if (plugin.initAsync !== undefined) {\n await plugin.initAsync(this.actualOptions);\n }\n }\n const pathOptions = this.actualOptions.particles.move.path;\n if (pathOptions.generator) {\n this.setPath(__classPrivateFieldGet(this, _Container_engine, \"f\").plugins.getPathGenerator(pathOptions.generator));\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerInit\", { container: this });\n this.particles.init();\n this.particles.setDensity();\n for (const [, plugin] of this.plugins) {\n if (plugin.particlesSetup !== undefined) {\n plugin.particlesSetup();\n }\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"particlesSetup\", { container: this });\n }\n intersectionManager(entries) {\n if (!this.actualOptions.pauseOnOutsideViewport) {\n return;\n }\n for (const entry of entries) {\n if (entry.target !== this.interactivity.element) {\n continue;\n }\n if (entry.isIntersecting) {\n this.play();\n }\n else {\n this.pause();\n }\n }\n }\n}\n_Container_engine = new WeakMap();\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Loader_engine;\nimport { Container } from \"./Container\";\nimport { generatedAttribute } from \"./Utils/Constants\";\nimport { itemFromArray } from \"../Utils/Utils\";\nfunction fetchError(statusCode) {\n console.error(`Error tsParticles - fetch status: ${statusCode}`);\n console.error(\"Error tsParticles - File config not found\");\n}\nexport class Loader {\n constructor(engine) {\n _Loader_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Loader_engine, engine, \"f\");\n }\n dom() {\n return __classPrivateFieldGet(this, _Loader_engine, \"f\").domArray;\n }\n domItem(index) {\n const dom = this.dom();\n const item = dom[index];\n if (item && !item.destroyed) {\n return item;\n }\n dom.splice(index, 1);\n }\n async loadOptions(params) {\n var _a, _b, _c;\n const tagId = (_a = params.tagId) !== null && _a !== void 0 ? _a : `tsparticles${Math.floor(Math.random() * 10000)}`, { options, index } = params;\n let domContainer = (_b = params.element) !== null && _b !== void 0 ? _b : document.getElementById(tagId);\n if (!domContainer) {\n domContainer = document.createElement(\"div\");\n domContainer.id = tagId;\n (_c = document.querySelector(\"body\")) === null || _c === void 0 ? void 0 : _c.append(domContainer);\n }\n const currentOptions = options instanceof Array ? itemFromArray(options, index) : options, dom = this.dom(), oldIndex = dom.findIndex((v) => v.id === tagId);\n if (oldIndex >= 0) {\n const old = this.domItem(oldIndex);\n if (old && !old.destroyed) {\n old.destroy();\n dom.splice(oldIndex, 1);\n }\n }\n let canvasEl;\n if (domContainer.tagName.toLowerCase() === \"canvas\") {\n canvasEl = domContainer;\n canvasEl.dataset[generatedAttribute] = \"false\";\n }\n else {\n const existingCanvases = domContainer.getElementsByTagName(\"canvas\");\n if (existingCanvases.length) {\n canvasEl = existingCanvases[0];\n canvasEl.dataset[generatedAttribute] = \"false\";\n }\n else {\n canvasEl = document.createElement(\"canvas\");\n canvasEl.dataset[generatedAttribute] = \"true\";\n canvasEl.style.width = \"100%\";\n canvasEl.style.height = \"100%\";\n domContainer.appendChild(canvasEl);\n }\n }\n const newItem = new Container(__classPrivateFieldGet(this, _Loader_engine, \"f\"), tagId, currentOptions);\n if (oldIndex >= 0) {\n dom.splice(oldIndex, 0, newItem);\n }\n else {\n dom.push(newItem);\n }\n newItem.canvas.loadCanvas(canvasEl);\n await newItem.start();\n return newItem;\n }\n async loadRemoteOptions(params) {\n const { url: jsonUrl, index } = params, url = jsonUrl instanceof Array ? itemFromArray(jsonUrl, index) : jsonUrl;\n if (!url) {\n return;\n }\n const response = await fetch(url);\n if (!response.ok) {\n fetchError(response.status);\n return;\n }\n const data = await response.json();\n return this.loadOptions({\n tagId: params.tagId,\n element: params.element,\n index,\n options: data,\n });\n }\n load(tagId, options, index) {\n const params = { index };\n if (typeof tagId === \"string\") {\n params.tagId = tagId;\n }\n else {\n params.options = tagId;\n }\n if (typeof options === \"number\") {\n params.index = options !== null && options !== void 0 ? options : params.index;\n }\n else {\n params.options = options !== null && options !== void 0 ? options : params.options;\n }\n return this.loadOptions(params);\n }\n async set(id, domContainer, options, index) {\n const params = { index };\n if (typeof id === \"string\") {\n params.tagId = id;\n }\n else {\n params.element = id;\n }\n if (domContainer instanceof HTMLElement) {\n params.element = domContainer;\n }\n else {\n params.options = domContainer;\n }\n if (typeof options === \"number\") {\n params.index = options;\n }\n else {\n params.options = options !== null && options !== void 0 ? options : params.options;\n }\n return this.loadOptions(params);\n }\n async loadJSON(tagId, jsonUrl, index) {\n let url, id;\n if (typeof jsonUrl === \"number\" || jsonUrl === undefined) {\n url = tagId;\n }\n else {\n id = tagId;\n url = jsonUrl;\n }\n return this.loadRemoteOptions({ tagId: id, url, index });\n }\n async setJSON(id, domContainer, jsonUrl, index) {\n let url, newId, newIndex, element;\n if (id instanceof HTMLElement) {\n element = id;\n url = domContainer;\n newIndex = jsonUrl;\n }\n else {\n newId = id;\n element = domContainer;\n url = jsonUrl;\n newIndex = index;\n }\n return this.loadRemoteOptions({ tagId: newId, url, index: newIndex, element });\n }\n setOnClickHandler(callback) {\n const dom = this.dom();\n if (!dom.length) {\n throw new Error(\"Can only set click handlers after calling tsParticles.load() or tsParticles.loadJSON()\");\n }\n for (const domItem of dom) {\n domItem.addClickHandler(callback);\n }\n }\n addEventListener(type, listener) {\n __classPrivateFieldGet(this, _Loader_engine, \"f\").eventDispatcher.addEventListener(type, listener);\n }\n removeEventListener(type, listener) {\n __classPrivateFieldGet(this, _Loader_engine, \"f\").eventDispatcher.removeEventListener(type, listener);\n }\n dispatchEvent(type, args) {\n __classPrivateFieldGet(this, _Loader_engine, \"f\").eventDispatcher.dispatchEvent(type, args);\n }\n}\n_Loader_engine = new WeakMap();\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _Plugins_engine;\nexport class Plugins {\n constructor(engine) {\n _Plugins_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Plugins_engine, engine, \"f\");\n this.plugins = [];\n this.interactorsInitializers = new Map();\n this.moversInitializers = new Map();\n this.updatersInitializers = new Map();\n this.interactors = new Map();\n this.movers = new Map();\n this.updaters = new Map();\n this.presets = new Map();\n this.drawers = new Map();\n this.pathGenerators = new Map();\n }\n getPlugin(plugin) {\n return this.plugins.find((t) => t.id === plugin);\n }\n addPlugin(plugin) {\n if (!this.getPlugin(plugin.id)) {\n this.plugins.push(plugin);\n }\n }\n getAvailablePlugins(container) {\n const res = new Map();\n for (const plugin of this.plugins) {\n if (!plugin.needsPlugin(container.actualOptions)) {\n continue;\n }\n res.set(plugin.id, plugin.getPlugin(container));\n }\n return res;\n }\n loadOptions(options, sourceOptions) {\n for (const plugin of this.plugins) {\n plugin.loadOptions(options, sourceOptions);\n }\n }\n getPreset(preset) {\n return this.presets.get(preset);\n }\n addPreset(presetKey, options, override = false) {\n if (override || !this.getPreset(presetKey)) {\n this.presets.set(presetKey, options);\n }\n }\n getShapeDrawer(type) {\n return this.drawers.get(type);\n }\n addShapeDrawer(type, drawer) {\n if (!this.getShapeDrawer(type)) {\n this.drawers.set(type, drawer);\n }\n }\n getSupportedShapes() {\n return this.drawers.keys();\n }\n getPathGenerator(type) {\n return this.pathGenerators.get(type);\n }\n addPathGenerator(type, pathGenerator) {\n if (!this.getPathGenerator(type)) {\n this.pathGenerators.set(type, pathGenerator);\n }\n }\n getInteractors(container, force = false) {\n let res = this.interactors.get(container);\n if (!res || force) {\n res = [...this.interactorsInitializers.values()].map((t) => t(container));\n this.interactors.set(container, res);\n }\n return res;\n }\n addInteractor(name, initInteractor) {\n this.interactorsInitializers.set(name, initInteractor);\n }\n getUpdaters(container, force = false) {\n let res = this.updaters.get(container);\n if (!res || force) {\n res = [...this.updatersInitializers.values()].map((t) => t(container));\n this.updaters.set(container, res);\n }\n return res;\n }\n addParticleUpdater(name, initUpdater) {\n this.updatersInitializers.set(name, initUpdater);\n }\n getMovers(container, force = false) {\n let res = this.movers.get(container);\n if (!res || force) {\n res = [...this.moversInitializers.values()].map((t) => t(container));\n this.movers.set(container, res);\n }\n return res;\n }\n addParticleMover(name, initMover) {\n this.moversInitializers.set(name, initMover);\n }\n}\n_Plugins_engine = new WeakMap();\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Engine_initialized, _Engine_loader;\nimport { EventDispatcher } from \"./Utils/EventDispatcher\";\nimport { Loader } from \"./Core/Loader\";\nimport { Plugins } from \"./Core/Utils/Plugins\";\nexport class Engine {\n constructor() {\n _Engine_initialized.set(this, void 0);\n _Engine_loader.set(this, void 0);\n this.domArray = [];\n this.eventDispatcher = new EventDispatcher();\n __classPrivateFieldSet(this, _Engine_initialized, false, \"f\");\n __classPrivateFieldSet(this, _Engine_loader, new Loader(this), \"f\");\n this.plugins = new Plugins(this);\n }\n init() {\n if (!__classPrivateFieldGet(this, _Engine_initialized, \"f\")) {\n __classPrivateFieldSet(this, _Engine_initialized, true, \"f\");\n }\n }\n async loadFromArray(tagId, options, index) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").load(tagId, options, index);\n }\n async load(tagId, options) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").load(tagId, options);\n }\n async set(id, element, options) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").set(id, element, options);\n }\n async loadJSON(tagId, pathConfigJson, index) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").loadJSON(tagId, pathConfigJson, index);\n }\n async setJSON(id, element, pathConfigJson, index) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").setJSON(id, element, pathConfigJson, index);\n }\n setOnClickHandler(callback) {\n __classPrivateFieldGet(this, _Engine_loader, \"f\").setOnClickHandler(callback);\n }\n dom() {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").dom();\n }\n domItem(index) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").domItem(index);\n }\n async refresh() {\n for (const instance of this.dom()) {\n await instance.refresh();\n }\n }\n async addShape(shape, drawer, init, afterEffect, destroy) {\n let customDrawer;\n if (typeof drawer === \"function\") {\n customDrawer = {\n afterEffect: afterEffect,\n destroy: destroy,\n draw: drawer,\n init: init,\n };\n }\n else {\n customDrawer = drawer;\n }\n this.plugins.addShapeDrawer(shape, customDrawer);\n await this.refresh();\n }\n async addPreset(preset, options, override = false) {\n this.plugins.addPreset(preset, options, override);\n await this.refresh();\n }\n async addPlugin(plugin) {\n this.plugins.addPlugin(plugin);\n await this.refresh();\n }\n async addPathGenerator(name, generator) {\n this.plugins.addPathGenerator(name, generator);\n await this.refresh();\n }\n async addInteractor(name, interactorInitializer) {\n this.plugins.addInteractor(name, interactorInitializer);\n await this.refresh();\n }\n async addMover(name, moverInitializer) {\n this.plugins.addParticleMover(name, moverInitializer);\n await this.refresh();\n }\n async addParticleUpdater(name, updaterInitializer) {\n this.plugins.addParticleUpdater(name, updaterInitializer);\n await this.refresh();\n }\n addEventListener(type, listener) {\n __classPrivateFieldGet(this, _Engine_loader, \"f\").addEventListener(type, listener);\n }\n removeEventListener(type, listener) {\n __classPrivateFieldGet(this, _Engine_loader, \"f\").removeEventListener(type, listener);\n }\n dispatchEvent(type, args) {\n __classPrivateFieldGet(this, _Engine_loader, \"f\").dispatchEvent(type, args);\n }\n}\n_Engine_initialized = new WeakMap(), _Engine_loader = new WeakMap();\n","export class ExternalInteractorBase {\n constructor(container) {\n this.container = container;\n this.type = 0;\n }\n}\n","export class ParticlesInteractorBase {\n constructor(container) {\n this.container = container;\n this.type = 1;\n }\n}\n","import { Engine } from \"./engine\";\nconst tsParticles = new Engine();\ntsParticles.init();\nexport * from \"./Core/Interfaces/Colors\";\nexport * from \"./Core/Interfaces/Gradients\";\nexport * from \"./Core/Interfaces/IBounds\";\nexport * from \"./Core/Interfaces/IBubbleParticleData\";\nexport * from \"./Core/Interfaces/ICircleBouncer\";\nexport * from \"./Core/Interfaces/IContainerInteractivity\";\nexport * from \"./Core/Interfaces/IContainerPlugin\";\nexport * from \"./Core/Interfaces/ICoordinates\";\nexport * from \"./Core/Interfaces/IDelta\";\nexport * from \"./Core/Interfaces/IDimension\";\nexport * from \"./Core/Interfaces/IDistance\";\nexport * from \"./Core/Interfaces/IExternalInteractor\";\nexport * from \"./Core/Interfaces/IInteractor\";\nexport * from \"./Core/Interfaces/IMouseData\";\nexport * from \"./Core/Interfaces/IMovePathGenerator\";\nexport * from \"./Core/Interfaces/IParticle\";\nexport * from \"./Core/Interfaces/IParticleColorStyle\";\nexport * from \"./Core/Interfaces/IParticleGravity\";\nexport * from \"./Core/Interfaces/IParticleHslAnimation\";\nexport * from \"./Core/Interfaces/IParticlesInteractor\";\nexport * from \"./Core/Interfaces/IParticleLife\";\nexport * from \"./Core/Interfaces/IParticleLoops\";\nexport * from \"./Core/Interfaces/IParticleRetinaProps\";\nexport * from \"./Core/Interfaces/IParticleRoll\";\nexport * from \"./Core/Interfaces/IParticleUpdater\";\nexport * from \"./Core/Interfaces/IParticleValueAnimation\";\nexport * from \"./Core/Interfaces/IParticleWobble\";\nexport * from \"./Core/Interfaces/IParticlesMover\";\nexport * from \"./Core/Interfaces/IPlugin\";\nexport * from \"./Core/Interfaces/IRangeValue\";\nexport * from \"./Core/Interfaces/IRectSideResult\";\nexport * from \"./Core/Interfaces/IShapeDrawer\";\nexport * from \"./Core/Interfaces/IShapeValues\";\nexport * from \"./Core/Utils/Circle\";\nexport * from \"./Core/Utils/CircleWarp\";\nexport * from \"./Core/Utils/Constants\";\nexport * from \"./Core/Utils/EventListeners\";\nexport * from \"./Core/Utils/ExternalInteractorBase\";\nexport * from \"./Core/Utils/FrameManager\";\nexport * from \"./Core/Utils/InteractionManager\";\nexport * from \"./Core/Utils/ParticlesInteractorBase\";\nexport * from \"./Core/Utils/Plugins\";\nexport * from \"./Core/Utils/Point\";\nexport * from \"./Core/Utils/QuadTree\";\nexport * from \"./Core/Utils/Range\";\nexport * from \"./Core/Utils/Rectangle\";\nexport * from \"./Core/Utils/Vector\";\nexport * from \"./Core/Utils/Vector3d\";\nexport * from \"./Core/Canvas\";\nexport * from \"./Core/Container\";\nexport * from \"./Core/Loader\";\nexport * from \"./Core/Particle\";\nexport * from \"./Core/Particles\";\nexport * from \"./Core/Retina\";\nexport * from \"./Enums/Directions/MoveDirection\";\nexport * from \"./Enums/Directions/RotateDirection\";\nexport * from \"./Enums/Directions/OutModeDirection\";\nexport * from \"./Enums/Directions/TiltDirection\";\nexport * from \"./Enums/Modes/ClickMode\";\nexport * from \"./Enums/Modes/DestroyMode\";\nexport * from \"./Enums/Modes/DivMode\";\nexport * from \"./Enums/Modes/HoverMode\";\nexport * from \"./Enums/Modes/CollisionMode\";\nexport * from \"./Enums/Modes/OutMode\";\nexport * from \"./Enums/Modes/RollMode\";\nexport * from \"./Enums/Modes/SizeMode\";\nexport * from \"./Enums/Modes/ThemeMode\";\nexport * from \"./Enums/Modes/ResponsiveMode\";\nexport * from \"./Enums/Types/AlterType\";\nexport * from \"./Enums/Types/DestroyType\";\nexport * from \"./Enums/Types/GradientType\";\nexport * from \"./Enums/Types/InteractorType\";\nexport * from \"./Enums/Types/ParticleOutType\";\nexport * from \"./Enums/Types/StartValueType\";\nexport * from \"./Enums/Types/DivType\";\nexport * from \"./Enums/Types/EasingType\";\nexport * from \"./Enums/AnimationStatus\";\nexport * from \"./Enums/InteractivityDetect\";\nexport { Engine, Engine as Main };\nexport * from \"./Options/Classes/AnimatableColor\";\nexport * from \"./Options/Classes/AnimatableGradient\";\nexport * from \"./Options/Classes/AnimationOptions\";\nexport * from \"./Options/Classes/Background/Background\";\nexport * from \"./Options/Classes/BackgroundMask/BackgroundMask\";\nexport * from \"./Options/Classes/BackgroundMask/BackgroundMaskCover\";\nexport * from \"./Options/Classes/ColorAnimation\";\nexport * from \"./Options/Classes/FullScreen/FullScreen\";\nexport * from \"./Options/Classes/HslAnimation\";\nexport * from \"./Options/Classes/Interactivity/Events/ClickEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/DivEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/ClickEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/DivEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/Events\";\nexport * from \"./Options/Classes/Interactivity/Events/HoverEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/Parallax\";\nexport * from \"./Options/Classes/Interactivity/Interactivity\";\nexport * from \"./Options/Classes/Interactivity/Modes/Attract\";\nexport * from \"./Options/Classes/Interactivity/Modes/Bounce\";\nexport * from \"./Options/Classes/Interactivity/Modes/Bubble\";\nexport * from \"./Options/Classes/Interactivity/Modes/BubbleBase\";\nexport * from \"./Options/Classes/Interactivity/Modes/BubbleDiv\";\nexport * from \"./Options/Classes/Interactivity/Modes/Connect\";\nexport * from \"./Options/Classes/Interactivity/Modes/ConnectLinks\";\nexport * from \"./Options/Classes/Interactivity/Modes/Grab\";\nexport * from \"./Options/Classes/Interactivity/Modes/GrabLinks\";\nexport * from \"./Options/Classes/Interactivity/Modes/Light\";\nexport * from \"./Options/Classes/Interactivity/Modes/LightArea\";\nexport * from \"./Options/Classes/Interactivity/Modes/LightGradient\";\nexport * from \"./Options/Classes/Interactivity/Modes/LightShadow\";\nexport * from \"./Options/Classes/Interactivity/Modes/Modes\";\nexport * from \"./Options/Classes/Interactivity/Modes/Push\";\nexport * from \"./Options/Classes/Interactivity/Modes/Remove\";\nexport * from \"./Options/Classes/Interactivity/Modes/Repulse\";\nexport * from \"./Options/Classes/Interactivity/Modes/RepulseBase\";\nexport * from \"./Options/Classes/Interactivity/Modes/RepulseDiv\";\nexport * from \"./Options/Classes/Interactivity/Modes/Slow\";\nexport * from \"./Options/Classes/Interactivity/Modes/Trail\";\nexport * from \"./Options/Classes/ManualParticle\";\nexport * from \"./Options/Classes/Motion/Motion\";\nexport * from \"./Options/Classes/Motion/MotionReduce\";\nexport * from \"./Options/Classes/Options\";\nexport * from \"./Options/Classes/OptionsColor\";\nexport * from \"./Options/Classes/Particles/Bounce/ParticlesBounce\";\nexport * from \"./Options/Classes/Particles/Bounce/ParticlesBounceFactor\";\nexport * from \"./Options/Classes/Particles/Collisions/Collisions\";\nexport * from \"./Options/Classes/Particles/Collisions/CollisionsOverlap\";\nexport * from \"./Options/Classes/Particles/Destroy/Destroy\";\nexport * from \"./Options/Classes/Particles/Destroy/Split\";\nexport * from \"./Options/Classes/Particles/Destroy/SplitFactor\";\nexport * from \"./Options/Classes/Particles/Destroy/SplitRate\";\nexport * from \"./Options/Classes/Particles/ParticlesOptions\";\nexport * from \"./Options/Classes/Particles/Shadow\";\nexport * from \"./Options/Classes/Particles/Stroke\";\nexport * from \"./Options/Classes/Particles/Life/Life\";\nexport * from \"./Options/Classes/Particles/Life/LifeDelay\";\nexport * from \"./Options/Classes/Particles/Life/LifeDuration\";\nexport * from \"./Options/Classes/Particles/Links/Links\";\nexport * from \"./Options/Classes/Particles/Links/LinksShadow\";\nexport * from \"./Options/Classes/Particles/Links/LinksTriangle\";\nexport * from \"./Options/Classes/Particles/Move/MoveAttract\";\nexport * from \"./Options/Classes/Particles/Move/Move\";\nexport * from \"./Options/Classes/Particles/Move/MoveAngle\";\nexport * from \"./Options/Classes/Particles/Move/MoveGravity\";\nexport * from \"./Options/Classes/Particles/Move/OutModes\";\nexport * from \"./Options/Classes/Particles/Move/Path/MovePath\";\nexport * from \"./Options/Classes/Particles/Move/Path/MovePathDelay\";\nexport * from \"./Options/Classes/Particles/Move/Spin\";\nexport * from \"./Options/Classes/Particles/Move/MoveTrail\";\nexport * from \"./Options/Classes/Particles/Number/ParticlesNumber\";\nexport * from \"./Options/Classes/Particles/Number/ParticlesDensity\";\nexport * from \"./Options/Classes/Particles/Opacity/Opacity\";\nexport * from \"./Options/Classes/Particles/Opacity/OpacityAnimation\";\nexport * from \"./Options/Classes/Particles/Orbit/Orbit\";\nexport * from \"./Options/Classes/Particles/Orbit/OrbitRotation\";\nexport * from \"./Options/Classes/Particles/Repulse/ParticlesRepulse\";\nexport * from \"./Options/Classes/Particles/Roll/Roll\";\nexport * from \"./Options/Classes/Particles/Roll/RollLight\";\nexport * from \"./Options/Classes/Particles/Rotate/Rotate\";\nexport * from \"./Options/Classes/Particles/Rotate/RotateAnimation\";\nexport * from \"./Options/Classes/Particles/Shape/Shape\";\nexport * from \"./Options/Classes/Particles/Size/Size\";\nexport * from \"./Options/Classes/Particles/Size/SizeAnimation\";\nexport * from \"./Options/Classes/Particles/Tilt/Tilt\";\nexport * from \"./Options/Classes/Particles/Tilt/TiltAnimation\";\nexport * from \"./Options/Classes/Particles/Twinkle/Twinkle\";\nexport * from \"./Options/Classes/Particles/Twinkle/TwinkleValues\";\nexport * from \"./Options/Classes/Particles/Wobble/Wobble\";\nexport * from \"./Options/Classes/Particles/ZIndex/ZIndex\";\nexport * from \"./Options/Classes/Responsive\";\nexport * from \"./Options/Classes/Theme/Theme\";\nexport * from \"./Options/Classes/Theme/ThemeDefault\";\nexport * from \"./Options/Classes/ValueWithRandom\";\nexport * from \"./Options/Interfaces/Background/IBackground\";\nexport * from \"./Options/Interfaces/BackgroundMask/IBackgroundMask\";\nexport * from \"./Options/Interfaces/BackgroundMask/IBackgroundMaskCover\";\nexport * from \"./Options/Interfaces/FullScreen/IFullScreen\";\nexport * from \"./Options/Interfaces/IAnimatable\";\nexport * from \"./Options/Interfaces/IAnimatableColor\";\nexport * from \"./Options/Interfaces/IAnimatableGradient\";\nexport * from \"./Options/Interfaces/IAnimation\";\nexport * from \"./Options/Interfaces/IColorAnimation\";\nexport * from \"./Options/Interfaces/IHslAnimation\";\nexport * from \"./Options/Interfaces/IManualParticle\";\nexport * from \"./Options/Interfaces/IOptionLoader\";\nexport * from \"./Options/Interfaces/IOptions\";\nexport * from \"./Options/Interfaces/IOptionsColor\";\nexport * from \"./Options/Interfaces/IOptionsGradient\";\nexport * from \"./Options/Interfaces/IResponsive\";\nexport * from \"./Options/Interfaces/IValueWithRandom\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IClickEvent\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IDivEvent\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IEvents\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IHoverEvent\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IParallax\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IAttract\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IBounce\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IBubble\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IBubbleBase\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IBubbleDiv\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IConnect\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IConnectLinks\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IGrab\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IGrabLinks\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/ILight\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/ILightArea\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/ILightGradient\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/ILightShadow\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IModeDiv\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IModes\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IPush\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IRemove\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IRepulse\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IRepulseBase\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IRepulseDiv\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/ISlow\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/ITrail\";\nexport * from \"./Options/Interfaces/Interactivity/IInteractivity\";\nexport * from \"./Options/Interfaces/Motion/IMotion\";\nexport * from \"./Options/Interfaces/Motion/IMotionReduce\";\nexport * from \"./Options/Interfaces/Particles/Bounce/IParticlesBounce\";\nexport * from \"./Options/Interfaces/Particles/Collisions/ICollisions\";\nexport * from \"./Options/Interfaces/Particles/Collisions/ICollisionsOverlap\";\nexport * from \"./Options/Interfaces/Particles/Destroy/IDestroy\";\nexport * from \"./Options/Interfaces/Particles/Destroy/ISplit\";\nexport * from \"./Options/Interfaces/Particles/IParticlesOptions\";\nexport * from \"./Options/Interfaces/Particles/IShadow\";\nexport * from \"./Options/Interfaces/Particles/IStroke\";\nexport * from \"./Options/Interfaces/Particles/Life/ILife\";\nexport * from \"./Options/Interfaces/Particles/Life/ILifeDelay\";\nexport * from \"./Options/Interfaces/Particles/Life/ILifeDuration\";\nexport * from \"./Options/Interfaces/Particles/Links/ILinks\";\nexport * from \"./Options/Interfaces/Particles/Links/ILinksShadow\";\nexport * from \"./Options/Interfaces/Particles/Links/ILinksTriangle\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveAttract\";\nexport * from \"./Options/Interfaces/Particles/Move/IMove\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveAngle\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveGravity\";\nexport * from \"./Options/Interfaces/Particles/Move/Path/IMovePath\";\nexport * from \"./Options/Interfaces/Particles/Move/IOutModes\";\nexport * from \"./Options/Interfaces/Particles/Move/ISpin\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveTrail\";\nexport * from \"./Options/Interfaces/Particles/Number/IParticlesDensity\";\nexport * from \"./Options/Interfaces/Particles/Number/IParticlesNumber\";\nexport * from \"./Options/Interfaces/Particles/Opacity/IOpacity\";\nexport * from \"./Options/Interfaces/Particles/Opacity/IOpacityAnimation\";\nexport * from \"./Options/Interfaces/Particles/Orbit/IOrbit\";\nexport * from \"./Options/Interfaces/Particles/Repulse/IParticlesRepulse\";\nexport * from \"./Options/Interfaces/Particles/Roll/IRoll\";\nexport * from \"./Options/Interfaces/Particles/Roll/IRollLight\";\nexport * from \"./Options/Interfaces/Particles/Rotate/IRotate\";\nexport * from \"./Options/Interfaces/Particles/Rotate/IRotateAnimation\";\nexport * from \"./Options/Interfaces/Particles/Shape/ICharacterShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IImageShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IPolygonShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IShapeValues\";\nexport * from \"./Options/Interfaces/Particles/Shape/IStarShape\";\nexport * from \"./Options/Interfaces/Particles/Size/ISize\";\nexport * from \"./Options/Interfaces/Particles/Size/ISizeAnimation\";\nexport * from \"./Options/Interfaces/Particles/Tilt/ITilt\";\nexport * from \"./Options/Interfaces/Particles/Tilt/ITiltAnimation\";\nexport * from \"./Options/Interfaces/Particles/Twinkle/ITwinkle\";\nexport * from \"./Options/Interfaces/Particles/Twinkle/ITwinkleValues\";\nexport * from \"./Options/Interfaces/Particles/Wobble/IWobble\";\nexport * from \"./Options/Interfaces/Particles/ZIndex/IZIndex\";\nexport * from \"./Options/Interfaces/Theme/ITheme\";\nexport * from \"./Options/Interfaces/Theme/IThemeDefault\";\nexport * from \"./Types/RangeValue\";\nexport * from \"./Types/RecursivePartial\";\nexport * from \"./Types/ShapeData\";\nexport * from \"./Types/ShapeDrawerFunctions\";\nexport * from \"./Types/SingleOrMultiple\";\nexport * from \"./Types/PathOptions\";\nexport * from \"./Utils/CanvasUtils\";\nexport * from \"./Utils/ColorUtils\";\nexport * from \"./Utils/NumberUtils\";\nexport * from \"./Utils/Utils\";\nexport { tsParticles };\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 193);\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\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 options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || 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","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.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/define-iterator');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar arraySlice = require('../internals/array-slice');\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');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function 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 (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n redefine(SymbolPrototype, '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 definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n 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.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = $toString(key);\n if (hasOwn(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.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (hasOwn(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.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/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.es/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 -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!SymbolPrototype[TO_PRIMITIVE]) {\n var valueOf = SymbolPrototype.valueOf;\n // eslint-disable-next-line no-unused-vars -- required for .length\n redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n // TODO: improve hint logic\n return call(valueOf, this);\n });\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n var symbolToString = uncurryThis(SymbolPrototype.toString);\n var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = symbolValueOf(this);\n var string = symbolToString(symbol);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar 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';\nvar TypeError = global.TypeError;\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n 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 $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar un$Slice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return un$Slice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\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 $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n apply(push, $args, args);\n return new (apply(bind, Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : ObjectPrototype);\n var result = apply(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar arraySlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = arraySlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n var dummy = this;\n // check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); })\n ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n;\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(NativeNumber, key = keys[j]) && !hasOwn(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\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 var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\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 isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice-simple');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return call(nativeSplit, string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = call(regexpExec, separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n push(output, stringSlice(string, lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\n } else push(output, stringSlice(string, lastLastIndex));\n return output.length > lim ? arraySlice(output, 0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar n$ToString = RegExpPrototype[TO_STRING];\nvar getFlags = uncurryThis(regExpFlags);\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar regExpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar getFlags = uncurryThis(regExpFlags);\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only propper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr = chr + charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxy(keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","module.exports = false;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar un$StartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return un$StartsWith\n ? un$StartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.es/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var descriptor, prototype;\n if (anObject(target) === receiver) return target[propertyKey];\n descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey);\n if (descriptor) return isDataDescriptor(descriptor)\n ? descriptor.value\n : descriptor.get === undefined ? undefined : call(descriptor.get, receiver);\n if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n get: get\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","module.exports = {};\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\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.21.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.21.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","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 ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","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.es/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';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var 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","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$Join = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","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');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var 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 uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n redefine(String.prototype, KEY, methods[0]);\n redefine(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar TypeError = global.TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw TypeError('RegExp#exec called on incompatible receiver');\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var $ = require('../internals/export');\nvar parseFloat = require('../internals/number-parse-float');\n\n// `Number.parseFloat` method\n// https://tc39.es/ecma262/#sec-number.parseFloat\n// eslint-disable-next-line es/no-number-parsefloat -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseFloat != parseFloat }, {\n parseFloat: parseFloat\n});\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var $ = require('../internals/export');\nvar parseInt = require('../internals/number-parse-int');\n\n// `Number.parseInt` method\n// https://tc39.es/ecma262/#sec-number.parseint\n// eslint-disable-next-line es/no-number-parseint -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseInt != parseInt }, {\n parseInt: parseInt\n});\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var global = require('../internals/global');\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","// 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","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","var global = require('../internals/global');\nvar isRegExp = require('../internals/is-regexp');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\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 isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, 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","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'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 Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar Function = global.Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!hasOwn(factories, argsLength)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n factories[argsLength] = Function('C,a', 'return new C(' + join(list, ',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = NATIVE_BIND ? Function.bind : function bind(that /* , ...args */) {\n var F = aCallable(this);\n var Prototype = F.prototype;\n var partArgs = arraySlice(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = concat(partArgs, arraySlice(arguments));\n return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n };\n if (isObject(Prototype)) boundFunction.prototype = Prototype;\n return boundFunction;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar n$ParseFloat = global.parseFloat;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / n$ParseFloat(whitespaces + '-0') !== -Infinity\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { n$ParseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = n$ParseFloat(trimmedString);\n return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result;\n} : n$ParseFloat;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\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 uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar Array = global.Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\n// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n getOwnPropertyNames: getOwnPropertyNames\n});\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","var hasOwn = require('../internals/has-own-property');\n\nmodule.exports = function (descriptor) {\n return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable'));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return number != number;\n }\n});\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n trunc: function trunc(it) {\n return (it > 0 ? floor : ceil)(it);\n }\n});\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): util/index.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nconst MAX_UID = 1000000;\r\nconst MILLISECONDS_MULTIPLIER = 1000;\r\nconst TRANSITION_END = 'transitionend';\r\n\r\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\r\nconst toType = (obj) => {\r\n if (obj === null || obj === undefined) {\r\n return `${obj}`;\r\n }\r\n\r\n return {}.toString\r\n .call(obj)\r\n .match(/\\s([a-z]+)/i)[1]\r\n .toLowerCase();\r\n};\r\n\r\n/**\r\n * --------------------------------------------------------------------------\r\n * Public Util Api\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nconst getUID = (prefix) => {\r\n do {\r\n prefix += Math.floor(Math.random() * MAX_UID);\r\n } while (document.getElementById(prefix));\r\n\r\n return prefix;\r\n};\r\n\r\nconst getSelector = (element) => {\r\n let selector = element.getAttribute('data-bs-target');\r\n\r\n if (!selector || selector === '#') {\r\n let hrefAttr = element.getAttribute('href');\r\n\r\n // The only valid content that could double as a selector are IDs or classes,\r\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\r\n // `document.querySelector` will rightfully complain it is invalid.\r\n // See https://github.com/twbs/bootstrap/issues/32273\r\n if (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\r\n return null;\r\n }\r\n\r\n // Just in case some CMS puts out a full URL with the anchor appended\r\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\r\n hrefAttr = `#${hrefAttr.split('#')[1]}`;\r\n }\r\n\r\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\r\n }\r\n\r\n return selector;\r\n};\r\n\r\nconst getSelectorFromElement = (element) => {\r\n const selector = getSelector(element);\r\n\r\n if (selector) {\r\n return document.querySelector(selector) ? selector : null;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst getElementFromSelector = (element) => {\r\n const selector = getSelector(element);\r\n\r\n return selector ? document.querySelector(selector) : null;\r\n};\r\n\r\nconst getTransitionDurationFromElement = (element) => {\r\n if (!element) {\r\n return 0;\r\n }\r\n\r\n // Get transition-duration of the element\r\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element);\r\n\r\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\r\n const floatTransitionDelay = Number.parseFloat(transitionDelay);\r\n\r\n // Return 0 if element or transition duration is not found\r\n if (!floatTransitionDuration && !floatTransitionDelay) {\r\n return 0;\r\n }\r\n\r\n // If multiple durations are defined, take the first\r\n transitionDuration = transitionDuration.split(',')[0];\r\n transitionDelay = transitionDelay.split(',')[0];\r\n\r\n return (\r\n (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) *\r\n MILLISECONDS_MULTIPLIER\r\n );\r\n};\r\n\r\nconst triggerTransitionEnd = (element) => {\r\n element.dispatchEvent(new Event(TRANSITION_END));\r\n};\r\n\r\nconst isElement = (obj) => {\r\n if (!obj || typeof obj !== 'object') {\r\n return false;\r\n }\r\n\r\n if (typeof obj.jquery !== 'undefined') {\r\n obj = obj[0];\r\n }\r\n\r\n return typeof obj.nodeType !== 'undefined';\r\n};\r\n\r\nconst getElement = (obj) => {\r\n if (isElement(obj)) {\r\n // it's a jQuery object or a node element\r\n return obj.jquery ? obj[0] : obj;\r\n }\r\n\r\n if (typeof obj === 'string' && obj.length > 0) {\r\n return document.querySelector(obj);\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst typeCheckConfig = (componentName, config, configTypes) => {\r\n Object.keys(configTypes).forEach((property) => {\r\n const expectedTypes = configTypes[property];\r\n const value = config[property];\r\n const valueType = value && isElement(value) ? 'element' : toType(value);\r\n\r\n if (!new RegExp(expectedTypes).test(valueType)) {\r\n throw new TypeError(\r\n `${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\r\n );\r\n }\r\n });\r\n};\r\n\r\nconst isVisible = (element) => {\r\n if (!isElement(element) || element.getClientRects().length === 0) {\r\n return false;\r\n }\r\n\r\n return getComputedStyle(element).getPropertyValue('visibility') === 'visible';\r\n};\r\n\r\nconst isDisabled = (element) => {\r\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\r\n return true;\r\n }\r\n\r\n if (element.classList.contains('disabled')) {\r\n return true;\r\n }\r\n\r\n if (typeof element.disabled !== 'undefined') {\r\n return element.disabled;\r\n }\r\n\r\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\r\n};\r\n\r\nconst findShadowRoot = (element) => {\r\n if (!document.documentElement.attachShadow) {\r\n return null;\r\n }\r\n\r\n // Can find the shadow root otherwise it'll return the document\r\n if (typeof element.getRootNode === 'function') {\r\n const root = element.getRootNode();\r\n return root instanceof ShadowRoot ? root : null;\r\n }\r\n\r\n if (element instanceof ShadowRoot) {\r\n return element;\r\n }\r\n\r\n // when we don't find a shadow root\r\n if (!element.parentNode) {\r\n return null;\r\n }\r\n\r\n return findShadowRoot(element.parentNode);\r\n};\r\n\r\nconst noop = () => {};\r\n\r\n/**\r\n * Trick to restart an element's animation\r\n *\r\n * @param {HTMLElement} element\r\n * @return void\r\n *\r\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\r\n */\r\nconst reflow = (element) => {\r\n // eslint-disable-next-line no-unused-expressions\r\n element.offsetHeight;\r\n};\r\n\r\nconst getjQuery = () => {\r\n const { jQuery } = window;\r\n\r\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\r\n return jQuery;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst DOMContentLoadedCallbacks = [];\r\n\r\nconst onDOMContentLoaded = (callback) => {\r\n if (document.readyState === 'loading') {\r\n // add listener on the first call when the document is in loading state\r\n if (!DOMContentLoadedCallbacks.length) {\r\n document.addEventListener('DOMContentLoaded', () => {\r\n DOMContentLoadedCallbacks.forEach((callback) => callback());\r\n });\r\n }\r\n\r\n DOMContentLoadedCallbacks.push(callback);\r\n } else {\r\n callback();\r\n }\r\n};\r\n\r\nconst isRTL = () => document.documentElement.dir === 'rtl';\r\n\r\nconst defineJQueryPlugin = (plugin) => {\r\n onDOMContentLoaded(() => {\r\n const $ = getjQuery();\r\n /* istanbul ignore if */\r\n if ($) {\r\n const name = plugin.NAME;\r\n const JQUERY_NO_CONFLICT = $.fn[name];\r\n $.fn[name] = plugin.jQueryInterface;\r\n $.fn[name].Constructor = plugin;\r\n $.fn[name].noConflict = () => {\r\n $.fn[name] = JQUERY_NO_CONFLICT;\r\n return plugin.jQueryInterface;\r\n };\r\n }\r\n });\r\n};\r\n\r\nconst execute = (callback) => {\r\n if (typeof callback === 'function') {\r\n callback();\r\n }\r\n};\r\n\r\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\r\n if (!waitForTransition) {\r\n execute(callback);\r\n return;\r\n }\r\n\r\n const durationPadding = 5;\r\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\r\n\r\n let called = false;\r\n\r\n const handler = ({ target }) => {\r\n if (target !== transitionElement) {\r\n return;\r\n }\r\n\r\n called = true;\r\n transitionElement.removeEventListener(TRANSITION_END, handler);\r\n execute(callback);\r\n };\r\n\r\n transitionElement.addEventListener(TRANSITION_END, handler);\r\n setTimeout(() => {\r\n if (!called) {\r\n triggerTransitionEnd(transitionElement);\r\n }\r\n }, emulatedDuration);\r\n};\r\n\r\n/**\r\n * Return the previous/next element of a list.\r\n *\r\n * @param {array} list The list of elements\r\n * @param activeElement The active element\r\n * @param shouldGetNext Choose to get next or previous element\r\n * @param isCycleAllowed\r\n * @return {Element|elem} The proper element\r\n */\r\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\r\n let index = list.indexOf(activeElement);\r\n\r\n // if the element does not exist in the list return an element depending on the direction and if cycle is allowed\r\n if (index === -1) {\r\n return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0];\r\n }\r\n\r\n const listLength = list.length;\r\n\r\n index += shouldGetNext ? 1 : -1;\r\n\r\n if (isCycleAllowed) {\r\n index = (index + listLength) % listLength;\r\n }\r\n\r\n return list[Math.max(0, Math.min(index, listLength - 1))];\r\n};\r\n\r\nexport {\r\n getElement,\r\n getUID,\r\n getSelectorFromElement,\r\n getElementFromSelector,\r\n getTransitionDurationFromElement,\r\n triggerTransitionEnd,\r\n isElement,\r\n typeCheckConfig,\r\n isVisible,\r\n isDisabled,\r\n findShadowRoot,\r\n noop,\r\n getNextActiveElement,\r\n reflow,\r\n getjQuery,\r\n onDOMContentLoaded,\r\n isRTL,\r\n defineJQueryPlugin,\r\n execute,\r\n executeAfterTransition,\r\n};\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): dom/event-handler.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport { getjQuery } from '../util/index';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\r\nconst stripNameRegex = /\\..*/;\r\nconst stripUidRegex = /::\\d+$/;\r\nconst eventRegistry = {}; // Events storage\r\nlet uidEvent = 1;\r\nconst customEvents = {\r\n mouseenter: 'mouseover',\r\n mouseleave: 'mouseout',\r\n};\r\nconst customEventsRegex = /^(mouseenter|mouseleave)/i;\r\nconst nativeEvents = new Set([\r\n 'click',\r\n 'dblclick',\r\n 'mouseup',\r\n 'mousedown',\r\n 'contextmenu',\r\n 'mousewheel',\r\n 'DOMMouseScroll',\r\n 'mouseover',\r\n 'mouseout',\r\n 'mousemove',\r\n 'selectstart',\r\n 'selectend',\r\n 'keydown',\r\n 'keypress',\r\n 'keyup',\r\n 'orientationchange',\r\n 'touchstart',\r\n 'touchmove',\r\n 'touchend',\r\n 'touchcancel',\r\n 'pointerdown',\r\n 'pointermove',\r\n 'pointerup',\r\n 'pointerleave',\r\n 'pointercancel',\r\n 'gesturestart',\r\n 'gesturechange',\r\n 'gestureend',\r\n 'focus',\r\n 'blur',\r\n 'change',\r\n 'reset',\r\n 'select',\r\n 'submit',\r\n 'focusin',\r\n 'focusout',\r\n 'load',\r\n 'unload',\r\n 'beforeunload',\r\n 'resize',\r\n 'move',\r\n 'DOMContentLoaded',\r\n 'readystatechange',\r\n 'error',\r\n 'abort',\r\n 'scroll',\r\n]);\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Private methods\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nfunction getUidEvent(element, uid) {\r\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++;\r\n}\r\n\r\nfunction getEvent(element) {\r\n const uid = getUidEvent(element);\r\n\r\n element.uidEvent = uid;\r\n eventRegistry[uid] = eventRegistry[uid] || {};\r\n\r\n return eventRegistry[uid];\r\n}\r\n\r\nfunction bootstrapHandler(element, fn) {\r\n return function handler(event) {\r\n event.delegateTarget = element;\r\n\r\n if (handler.oneOff) {\r\n EventHandler.off(element, event.type, fn);\r\n }\r\n\r\n return fn.apply(element, [event]);\r\n };\r\n}\r\n\r\nfunction bootstrapDelegationHandler(element, selector, fn) {\r\n return function handler(event) {\r\n const domElements = element.querySelectorAll(selector);\r\n\r\n for (let { target } = event; target && target !== this; target = target.parentNode) {\r\n for (let i = domElements.length; i--; ) {\r\n if (domElements[i] === target) {\r\n event.delegateTarget = target;\r\n\r\n if (handler.oneOff) {\r\n EventHandler.off(element, event.type, selector, fn);\r\n }\r\n\r\n return fn.apply(target, [event]);\r\n }\r\n }\r\n }\r\n\r\n // To please ESLint\r\n return null;\r\n };\r\n}\r\n\r\nfunction findHandler(events, handler, delegationSelector = null) {\r\n const uidEventList = Object.keys(events);\r\n\r\n for (let i = 0, len = uidEventList.length; i < len; i++) {\r\n const event = events[uidEventList[i]];\r\n\r\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\r\n return event;\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\r\n const delegation = typeof handler === 'string';\r\n const originalHandler = delegation ? delegationFn : handler;\r\n\r\n let typeEvent = getTypeEvent(originalTypeEvent);\r\n const isNative = nativeEvents.has(typeEvent);\r\n\r\n if (!isNative) {\r\n typeEvent = originalTypeEvent;\r\n }\r\n\r\n return [delegation, originalHandler, typeEvent];\r\n}\r\n\r\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\r\n if (typeof originalTypeEvent !== 'string' || !element) {\r\n return;\r\n }\r\n\r\n if (!handler) {\r\n handler = delegationFn;\r\n delegationFn = null;\r\n }\r\n\r\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\r\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\r\n if (customEventsRegex.test(originalTypeEvent)) {\r\n const wrapFn = (fn) => {\r\n return function (event) {\r\n if (\r\n !event.relatedTarget ||\r\n (event.relatedTarget !== event.delegateTarget &&\r\n !event.delegateTarget.contains(event.relatedTarget))\r\n ) {\r\n return fn.call(this, event);\r\n }\r\n };\r\n };\r\n\r\n if (delegationFn) {\r\n delegationFn = wrapFn(delegationFn);\r\n } else {\r\n handler = wrapFn(handler);\r\n }\r\n }\r\n\r\n const [delegation, originalHandler, typeEvent] = normalizeParams(\r\n originalTypeEvent,\r\n handler,\r\n delegationFn\r\n );\r\n const events = getEvent(element);\r\n const handlers = events[typeEvent] || (events[typeEvent] = {});\r\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null);\r\n\r\n if (previousFn) {\r\n previousFn.oneOff = previousFn.oneOff && oneOff;\r\n\r\n return;\r\n }\r\n\r\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));\r\n const fn = delegation\r\n ? bootstrapDelegationHandler(element, handler, delegationFn)\r\n : bootstrapHandler(element, handler);\r\n\r\n fn.delegationSelector = delegation ? handler : null;\r\n fn.originalHandler = originalHandler;\r\n fn.oneOff = oneOff;\r\n fn.uidEvent = uid;\r\n handlers[uid] = fn;\r\n\r\n element.addEventListener(typeEvent, fn, delegation);\r\n}\r\n\r\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\r\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\r\n\r\n if (!fn) {\r\n return;\r\n }\r\n\r\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\r\n delete events[typeEvent][fn.uidEvent];\r\n}\r\n\r\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\r\n const storeElementEvent = events[typeEvent] || {};\r\n\r\n Object.keys(storeElementEvent).forEach((handlerKey) => {\r\n if (handlerKey.includes(namespace)) {\r\n const event = storeElementEvent[handlerKey];\r\n\r\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\r\n }\r\n });\r\n}\r\n\r\nfunction getTypeEvent(event) {\r\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\r\n event = event.replace(stripNameRegex, '');\r\n return customEvents[event] || event;\r\n}\r\n\r\nconst EventHandler = {\r\n on(element, event, handler, delegationFn) {\r\n addHandler(element, event, handler, delegationFn, false);\r\n },\r\n\r\n one(element, event, handler, delegationFn) {\r\n addHandler(element, event, handler, delegationFn, true);\r\n },\r\n\r\n off(element, originalTypeEvent, handler, delegationFn) {\r\n if (typeof originalTypeEvent !== 'string' || !element) {\r\n return;\r\n }\r\n\r\n const [delegation, originalHandler, typeEvent] = normalizeParams(\r\n originalTypeEvent,\r\n handler,\r\n delegationFn\r\n );\r\n const inNamespace = typeEvent !== originalTypeEvent;\r\n const events = getEvent(element);\r\n const isNamespace = originalTypeEvent.startsWith('.');\r\n\r\n if (typeof originalHandler !== 'undefined') {\r\n // Simplest case: handler is passed, remove that listener ONLY.\r\n if (!events || !events[typeEvent]) {\r\n return;\r\n }\r\n\r\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null);\r\n return;\r\n }\r\n\r\n if (isNamespace) {\r\n Object.keys(events).forEach((elementEvent) => {\r\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\r\n });\r\n }\r\n\r\n const storeElementEvent = events[typeEvent] || {};\r\n Object.keys(storeElementEvent).forEach((keyHandlers) => {\r\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\r\n\r\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\r\n const event = storeElementEvent[keyHandlers];\r\n\r\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\r\n }\r\n });\r\n },\r\n\r\n trigger(element, event, args) {\r\n if (typeof event !== 'string' || !element) {\r\n return null;\r\n }\r\n\r\n const $ = getjQuery();\r\n const typeEvent = getTypeEvent(event);\r\n const inNamespace = event !== typeEvent;\r\n const isNative = nativeEvents.has(typeEvent);\r\n\r\n let jQueryEvent;\r\n let bubbles = true;\r\n let nativeDispatch = true;\r\n let defaultPrevented = false;\r\n let evt = null;\r\n\r\n if (inNamespace && $) {\r\n jQueryEvent = $.Event(event, args);\r\n\r\n $(element).trigger(jQueryEvent);\r\n bubbles = !jQueryEvent.isPropagationStopped();\r\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\r\n defaultPrevented = jQueryEvent.isDefaultPrevented();\r\n }\r\n\r\n if (isNative) {\r\n evt = document.createEvent('HTMLEvents');\r\n evt.initEvent(typeEvent, bubbles, true);\r\n } else {\r\n evt = new CustomEvent(event, {\r\n bubbles,\r\n cancelable: true,\r\n });\r\n }\r\n\r\n // merge custom information in our event\r\n if (typeof args !== 'undefined') {\r\n Object.keys(args).forEach((key) => {\r\n Object.defineProperty(evt, key, {\r\n get() {\r\n return args[key];\r\n },\r\n });\r\n });\r\n }\r\n\r\n if (defaultPrevented) {\r\n evt.preventDefault();\r\n }\r\n\r\n if (nativeDispatch) {\r\n element.dispatchEvent(evt);\r\n }\r\n\r\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\r\n jQueryEvent.preventDefault();\r\n }\r\n\r\n return evt;\r\n },\r\n};\r\n\r\nexport default EventHandler;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): dom/data.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst elementMap = new Map();\r\n\r\nexport default {\r\n set(element, key, instance) {\r\n if (!elementMap.has(element)) {\r\n elementMap.set(element, new Map());\r\n }\r\n\r\n const instanceMap = elementMap.get(element);\r\n\r\n // make it clear we only want one instance per element\r\n // can be removed later when multiple key/instances are fine to be used\r\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\r\n // eslint-disable-next-line no-console\r\n console.error(\r\n `Bootstrap doesn't allow more than one instance per element. Bound instance: ${\r\n Array.from(instanceMap.keys())[0]\r\n }.`\r\n );\r\n return;\r\n }\r\n\r\n instanceMap.set(key, instance);\r\n },\r\n\r\n get(element, key) {\r\n if (elementMap.has(element)) {\r\n return elementMap.get(element).get(key) || null;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n remove(element, key) {\r\n if (!elementMap.has(element)) {\r\n return;\r\n }\r\n\r\n const instanceMap = elementMap.get(element);\r\n\r\n instanceMap.delete(key);\r\n\r\n // free up element references if there are no instances left for an element\r\n if (instanceMap.size === 0) {\r\n elementMap.delete(element);\r\n }\r\n },\r\n};\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): base-component.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport Data from './dom/data';\r\nimport { executeAfterTransition, getElement } from './util/index';\r\nimport EventHandler from './dom/event-handler';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst VERSION = '5.1.3';\r\n\r\nclass BaseComponent {\r\n constructor(element) {\r\n element = getElement(element);\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n this._element = element;\r\n Data.set(this._element, this.constructor.DATA_KEY, this);\r\n }\r\n\r\n dispose() {\r\n Data.remove(this._element, this.constructor.DATA_KEY);\r\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\r\n\r\n Object.getOwnPropertyNames(this).forEach((propertyName) => {\r\n this[propertyName] = null;\r\n });\r\n }\r\n\r\n _queueCallback(callback, element, isAnimated = true) {\r\n executeAfterTransition(callback, element, isAnimated);\r\n }\r\n\r\n /** Static */\r\n\r\n static getInstance(element) {\r\n return Data.get(getElement(element), this.DATA_KEY);\r\n }\r\n\r\n static getOrCreateInstance(element, config = {}) {\r\n return (\r\n this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\r\n );\r\n }\r\n\r\n static get VERSION() {\r\n return VERSION;\r\n }\r\n\r\n static get NAME() {\r\n throw new Error('You have to implement the static method \"NAME\", for each component!');\r\n }\r\n\r\n static get DATA_KEY() {\r\n return `bs.${this.NAME}`;\r\n }\r\n\r\n static get EVENT_KEY() {\r\n return `.${this.DATA_KEY}`;\r\n }\r\n}\r\n\r\nexport default BaseComponent;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): button.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport { defineJQueryPlugin } from './util/index';\r\nimport EventHandler from './dom/event-handler';\r\nimport BaseComponent from './base-component';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'button';\r\nconst DATA_KEY = 'bs.button';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst CLASS_NAME_ACTIVE = 'active';\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]';\r\n\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Button extends BaseComponent {\r\n // Getters\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n\r\n toggle() {\r\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\r\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const data = Button.getOrCreateInstance(this);\r\n\r\n if (config === 'toggle') {\r\n data[config]();\r\n }\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, (event) => {\r\n event.preventDefault();\r\n\r\n const button = event.target.closest(SELECTOR_DATA_TOGGLE);\r\n const data = Button.getOrCreateInstance(button);\r\n\r\n data.toggle();\r\n});\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .Button to jQuery only if jQuery is present\r\n */\r\n\r\ndefineJQueryPlugin(Button);\r\n\r\nexport default Button;\r\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nexport default function getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): dom/manipulator.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nfunction normalizeData(val) {\r\n if (val === 'true') {\r\n return true;\r\n }\r\n\r\n if (val === 'false') {\r\n return false;\r\n }\r\n\r\n if (val === Number(val).toString()) {\r\n return Number(val);\r\n }\r\n\r\n if (val === '' || val === 'null') {\r\n return null;\r\n }\r\n\r\n return val;\r\n}\r\n\r\nfunction normalizeDataKey(key) {\r\n return key.replace(/[A-Z]/g, (chr) => `-${chr.toLowerCase()}`);\r\n}\r\n\r\nconst Manipulator = {\r\n setDataAttribute(element, key, value) {\r\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);\r\n },\r\n\r\n removeDataAttribute(element, key) {\r\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);\r\n },\r\n\r\n getDataAttributes(element) {\r\n if (!element) {\r\n return {};\r\n }\r\n\r\n const attributes = {};\r\n\r\n Object.keys(element.dataset)\r\n .filter((key) => key.startsWith('bs'))\r\n .forEach((key) => {\r\n let pureKey = key.replace(/^bs/, '');\r\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\r\n attributes[pureKey] = normalizeData(element.dataset[key]);\r\n });\r\n\r\n return attributes;\r\n },\r\n\r\n getDataAttribute(element, key) {\r\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));\r\n },\r\n\r\n offset(element) {\r\n const rect = element.getBoundingClientRect();\r\n\r\n return {\r\n top: rect.top + window.pageYOffset,\r\n left: rect.left + window.pageXOffset,\r\n };\r\n },\r\n\r\n position(element) {\r\n return {\r\n top: element.offsetTop,\r\n left: element.offsetLeft,\r\n };\r\n },\r\n};\r\n\r\nexport default Manipulator;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): dom/selector-engine.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nimport { isDisabled, isVisible } from '../util/index';\r\n\r\nconst NODE_TEXT = 3;\r\n\r\nconst SelectorEngine = {\r\n find(selector, element = document.documentElement) {\r\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\r\n },\r\n\r\n findOne(selector, element = document.documentElement) {\r\n return Element.prototype.querySelector.call(element, selector);\r\n },\r\n\r\n children(element, selector) {\r\n return [].concat(...element.children).filter((child) => child.matches(selector));\r\n },\r\n\r\n parents(element, selector) {\r\n const parents = [];\r\n\r\n let ancestor = element.parentNode;\r\n\r\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\r\n if (ancestor.matches(selector)) {\r\n parents.push(ancestor);\r\n }\r\n\r\n ancestor = ancestor.parentNode;\r\n }\r\n\r\n return parents;\r\n },\r\n\r\n prev(element, selector) {\r\n let previous = element.previousElementSibling;\r\n\r\n while (previous) {\r\n if (previous.matches(selector)) {\r\n return [previous];\r\n }\r\n\r\n previous = previous.previousElementSibling;\r\n }\r\n\r\n return [];\r\n },\r\n\r\n next(element, selector) {\r\n let next = element.nextElementSibling;\r\n\r\n while (next) {\r\n if (next.matches(selector)) {\r\n return [next];\r\n }\r\n\r\n next = next.nextElementSibling;\r\n }\r\n\r\n return [];\r\n },\r\n\r\n focusableChildren(element) {\r\n const focusables = [\r\n 'a',\r\n 'button',\r\n 'input',\r\n 'textarea',\r\n 'select',\r\n 'details',\r\n '[tabindex]',\r\n '[contenteditable=\"true\"]',\r\n ]\r\n .map((selector) => `${selector}:not([tabindex^=\"-\"])`)\r\n .join(', ');\r\n\r\n return this.find(focusables, element).filter((el) => !isDisabled(el) && isVisible(el));\r\n },\r\n};\r\n\r\nexport default SelectorEngine;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): dropdown.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport * as Popper from '@popperjs/core';\r\n\r\nimport {\r\n defineJQueryPlugin,\r\n getElement,\r\n getElementFromSelector,\r\n getNextActiveElement,\r\n isDisabled,\r\n isElement,\r\n isRTL,\r\n isVisible,\r\n noop,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport EventHandler from './dom/event-handler';\r\nimport Manipulator from './dom/manipulator';\r\nimport SelectorEngine from './dom/selector-engine';\r\nimport BaseComponent from './base-component';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'dropdown';\r\nconst DATA_KEY = 'bs.dropdown';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst ESCAPE_KEY = 'Escape';\r\nconst SPACE_KEY = 'Space';\r\nconst TAB_KEY = 'Tab';\r\nconst ARROW_UP_KEY = 'ArrowUp';\r\nconst ARROW_DOWN_KEY = 'ArrowDown';\r\nconst RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\r\n\r\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY}`);\r\n\r\nconst EVENT_HIDE = `hide${EVENT_KEY}`;\r\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`;\r\nconst EVENT_SHOW = `show${EVENT_KEY}`;\r\nconst EVENT_SHOWN = `shown${EVENT_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`;\r\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_DROPUP = 'dropup';\r\nconst CLASS_NAME_DROPEND = 'dropend';\r\nconst CLASS_NAME_DROPSTART = 'dropstart';\r\nconst CLASS_NAME_NAVBAR = 'navbar';\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]';\r\nconst SELECTOR_MENU = '.dropdown-menu';\r\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav';\r\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\r\n\r\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\r\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\r\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\r\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\r\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\r\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\r\n\r\nconst Default = {\r\n offset: [0, 2],\r\n boundary: 'clippingParents',\r\n reference: 'toggle',\r\n display: 'dynamic',\r\n popperConfig: null,\r\n autoClose: true,\r\n};\r\n\r\nconst DefaultType = {\r\n offset: '(array|string|function)',\r\n boundary: '(string|element)',\r\n reference: '(string|element|object)',\r\n display: 'string',\r\n popperConfig: '(null|object|function)',\r\n autoClose: '(boolean|string)',\r\n};\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Dropdown extends BaseComponent {\r\n constructor(element, config) {\r\n super(element);\r\n\r\n this._popper = null;\r\n this._config = this._getConfig(config);\r\n this._menu = this._getMenuElement();\r\n this._inNavbar = this._detectNavbar();\r\n }\r\n\r\n // Getters\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get DefaultType() {\r\n return DefaultType;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n\r\n toggle() {\r\n return this._isShown() ? this.hide() : this.show();\r\n }\r\n\r\n show() {\r\n if (isDisabled(this._element) || this._isShown(this._menu)) {\r\n return;\r\n }\r\n\r\n const relatedTarget = {\r\n relatedTarget: this._element,\r\n };\r\n\r\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget);\r\n\r\n if (showEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n const parent = Dropdown.getParentFromElement(this._element);\r\n // Totally disable Popper for Dropdowns in Navbar\r\n if (this._inNavbar) {\r\n Manipulator.setDataAttribute(this._menu, 'popper', 'none');\r\n } else {\r\n this._createPopper(parent);\r\n }\r\n\r\n // If this is a touch-enabled device we add extra\r\n // empty mouseover listeners to the body's immediate children;\r\n // only needed because of broken event delegation on iOS\r\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\r\n if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {\r\n []\r\n .concat(...document.body.children)\r\n .forEach((elem) => EventHandler.on(elem, 'mouseover', noop));\r\n }\r\n\r\n this._element.focus();\r\n this._element.setAttribute('aria-expanded', true);\r\n\r\n this._menu.classList.add(CLASS_NAME_SHOW);\r\n this._element.classList.add(CLASS_NAME_SHOW);\r\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget);\r\n }\r\n\r\n hide() {\r\n if (isDisabled(this._element) || !this._isShown(this._menu)) {\r\n return;\r\n }\r\n\r\n const relatedTarget = {\r\n relatedTarget: this._element,\r\n };\r\n\r\n this._completeHide(relatedTarget);\r\n }\r\n\r\n dispose() {\r\n if (this._popper) {\r\n this._popper.destroy();\r\n }\r\n\r\n super.dispose();\r\n }\r\n\r\n update() {\r\n this._inNavbar = this._detectNavbar();\r\n if (this._popper) {\r\n this._popper.update();\r\n }\r\n }\r\n\r\n // Private\r\n\r\n _completeHide(relatedTarget) {\r\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget);\r\n if (hideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n // If this is a touch-enabled device we remove the extra\r\n // empty mouseover listeners we added for iOS support\r\n if ('ontouchstart' in document.documentElement) {\r\n []\r\n .concat(...document.body.children)\r\n .forEach((elem) => EventHandler.off(elem, 'mouseover', noop));\r\n }\r\n\r\n if (this._popper) {\r\n this._popper.destroy();\r\n }\r\n\r\n this._menu.classList.remove(CLASS_NAME_SHOW);\r\n this._element.classList.remove(CLASS_NAME_SHOW);\r\n this._element.setAttribute('aria-expanded', 'false');\r\n Manipulator.removeDataAttribute(this._menu, 'popper');\r\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget);\r\n }\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...this.constructor.Default,\r\n ...Manipulator.getDataAttributes(this._element),\r\n ...config,\r\n };\r\n\r\n typeCheckConfig(NAME, config, this.constructor.DefaultType);\r\n\r\n if (\r\n typeof config.reference === 'object' &&\r\n !isElement(config.reference) &&\r\n typeof config.reference.getBoundingClientRect !== 'function'\r\n ) {\r\n // Popper virtual elements require a getBoundingClientRect method\r\n throw new TypeError(\r\n `${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`\r\n );\r\n }\r\n\r\n return config;\r\n }\r\n\r\n _createPopper(parent) {\r\n if (typeof Popper === 'undefined') {\r\n throw new TypeError(\"Bootstrap's dropdowns require Popper (https://popper.js.org)\");\r\n }\r\n\r\n let referenceElement = this._element;\r\n\r\n if (this._config.reference === 'parent') {\r\n referenceElement = parent;\r\n } else if (isElement(this._config.reference)) {\r\n referenceElement = getElement(this._config.reference);\r\n } else if (typeof this._config.reference === 'object') {\r\n referenceElement = this._config.reference;\r\n }\r\n\r\n const popperConfig = this._getPopperConfig();\r\n const isDisplayStatic = popperConfig.modifiers.find(\r\n (modifier) => modifier.name === 'applyStyles' && modifier.enabled === false\r\n );\r\n\r\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);\r\n\r\n if (isDisplayStatic) {\r\n Manipulator.setDataAttribute(this._menu, 'popper', 'static');\r\n }\r\n }\r\n\r\n _isShown(element = this._element) {\r\n return element.classList.contains(CLASS_NAME_SHOW);\r\n }\r\n\r\n _getMenuElement() {\r\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0];\r\n }\r\n\r\n _getPlacement() {\r\n const parentDropdown = this._element.parentNode;\r\n\r\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\r\n return PLACEMENT_RIGHT;\r\n }\r\n\r\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\r\n return PLACEMENT_LEFT;\r\n }\r\n\r\n // We need to trim the value because custom properties can also include spaces\r\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\r\n\r\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\r\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\r\n }\r\n\r\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\r\n }\r\n\r\n _detectNavbar() {\r\n return this._element.closest(`.${CLASS_NAME_NAVBAR}`) !== null;\r\n }\r\n\r\n _getOffset() {\r\n const { offset } = this._config;\r\n\r\n if (typeof offset === 'string') {\r\n return offset.split(',').map((val) => Number.parseInt(val, 10));\r\n }\r\n\r\n if (typeof offset === 'function') {\r\n return (popperData) => offset(popperData, this._element);\r\n }\r\n\r\n return offset;\r\n }\r\n\r\n _getPopperConfig() {\r\n const defaultBsPopperConfig = {\r\n placement: this._getPlacement(),\r\n modifiers: [\r\n {\r\n name: 'preventOverflow',\r\n options: {\r\n boundary: this._config.boundary,\r\n },\r\n },\r\n {\r\n name: 'offset',\r\n options: {\r\n offset: this._getOffset(),\r\n },\r\n },\r\n ],\r\n };\r\n\r\n // Disable Popper if we have a static display\r\n if (this._config.display === 'static') {\r\n defaultBsPopperConfig.modifiers = [\r\n {\r\n name: 'applyStyles',\r\n enabled: false,\r\n },\r\n ];\r\n }\r\n\r\n return {\r\n ...defaultBsPopperConfig,\r\n ...(typeof this._config.popperConfig === 'function'\r\n ? this._config.popperConfig(defaultBsPopperConfig)\r\n : this._config.popperConfig),\r\n };\r\n }\r\n\r\n _selectMenuItem({ key, target }) {\r\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible);\r\n\r\n if (!items.length) {\r\n return;\r\n }\r\n\r\n // if target isn't included in items (e.g. when expanding the dropdown)\r\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\r\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus();\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const data = Dropdown.getOrCreateInstance(this, config);\r\n\r\n if (typeof config !== 'string') {\r\n return;\r\n }\r\n\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config]();\r\n });\r\n }\r\n\r\n static clearMenus(event) {\r\n if (\r\n event &&\r\n (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY))\r\n ) {\r\n return;\r\n }\r\n\r\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE);\r\n\r\n for (let i = 0, len = toggles.length; i < len; i++) {\r\n const context = Dropdown.getInstance(toggles[i]);\r\n if (!context || context._config.autoClose === false) {\r\n continue;\r\n }\r\n\r\n if (!context._isShown()) {\r\n continue;\r\n }\r\n\r\n const relatedTarget = {\r\n relatedTarget: context._element,\r\n };\r\n\r\n if (event) {\r\n const composedPath = event.composedPath();\r\n const isMenuTarget = composedPath.includes(context._menu);\r\n if (\r\n composedPath.includes(context._element) ||\r\n (context._config.autoClose === 'inside' && !isMenuTarget) ||\r\n (context._config.autoClose === 'outside' && isMenuTarget)\r\n ) {\r\n continue;\r\n }\r\n\r\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\r\n if (\r\n context._menu.contains(event.target) &&\r\n ((event.type === 'keyup' && event.key === TAB_KEY) ||\r\n /input|select|option|textarea|form/i.test(event.target.tagName))\r\n ) {\r\n continue;\r\n }\r\n\r\n if (event.type === 'click') {\r\n relatedTarget.clickEvent = event;\r\n }\r\n }\r\n\r\n context._completeHide(relatedTarget);\r\n }\r\n }\r\n\r\n static getParentFromElement(element) {\r\n return getElementFromSelector(element) || element.parentNode;\r\n }\r\n\r\n static dataApiKeydownHandler(event) {\r\n // If not input/textarea:\r\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\r\n // If input/textarea:\r\n // - If space key => not a dropdown command\r\n // - If key is other than escape\r\n // - If key is not up or down => not a dropdown command\r\n // - If trigger inside the menu => not a dropdown command\r\n if (\r\n /input|textarea/i.test(event.target.tagName)\r\n ? event.key === SPACE_KEY ||\r\n (event.key !== ESCAPE_KEY &&\r\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\r\n event.target.closest(SELECTOR_MENU)))\r\n : !REGEXP_KEYDOWN.test(event.key)\r\n ) {\r\n return;\r\n }\r\n\r\n const isActive = this.classList.contains(CLASS_NAME_SHOW);\r\n\r\n if (!isActive && event.key === ESCAPE_KEY) {\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if (isDisabled(this)) {\r\n return;\r\n }\r\n\r\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE)\r\n ? this\r\n : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0];\r\n const instance = Dropdown.getOrCreateInstance(getToggleButton);\r\n\r\n if (event.key === ESCAPE_KEY) {\r\n instance.hide();\r\n return;\r\n }\r\n\r\n if (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY) {\r\n if (!isActive) {\r\n instance.show();\r\n }\r\n\r\n instance._selectMenuItem(event);\r\n return;\r\n }\r\n\r\n if (!isActive || event.key === SPACE_KEY) {\r\n Dropdown.clearMenus();\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(\r\n document,\r\n EVENT_KEYDOWN_DATA_API,\r\n SELECTOR_DATA_TOGGLE,\r\n Dropdown.dataApiKeydownHandler\r\n);\r\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus);\r\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n event.preventDefault();\r\n Dropdown.getOrCreateInstance(this).toggle();\r\n});\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .Dropdown to jQuery only if jQuery is present\r\n */\r\n\r\ndefineJQueryPlugin(Dropdown);\r\n\r\nexport default Dropdown;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): collapse.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n defineJQueryPlugin,\r\n getElement,\r\n getSelectorFromElement,\r\n getElementFromSelector,\r\n reflow,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport Data from './dom/data';\r\nimport EventHandler from './dom/event-handler';\r\nimport Manipulator from './dom/manipulator';\r\nimport SelectorEngine from './dom/selector-engine';\r\nimport BaseComponent from './base-component';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'collapse';\r\nconst DATA_KEY = 'bs.collapse';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst Default = {\r\n toggle: true,\r\n parent: null,\r\n};\r\n\r\nconst DefaultType = {\r\n toggle: 'boolean',\r\n parent: '(null|element)',\r\n};\r\n\r\nconst EVENT_SHOW = `show${EVENT_KEY}`;\r\nconst EVENT_SHOWN = `shown${EVENT_KEY}`;\r\nconst EVENT_HIDE = `hide${EVENT_KEY}`;\r\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_COLLAPSE = 'collapse';\r\nconst CLASS_NAME_COLLAPSING = 'collapsing';\r\nconst CLASS_NAME_COLLAPSED = 'collapsed';\r\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\r\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\r\n\r\nconst WIDTH = 'width';\r\nconst HEIGHT = 'height';\r\n\r\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\r\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Collapse extends BaseComponent {\r\n constructor(element, config) {\r\n super(element);\r\n\r\n this._isTransitioning = false;\r\n this._config = this._getConfig(config);\r\n this._triggerArray = [];\r\n\r\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE);\r\n\r\n for (let i = 0, len = toggleList.length; i < len; i++) {\r\n const elem = toggleList[i];\r\n const selector = getSelectorFromElement(elem);\r\n const filterElement = SelectorEngine.find(selector).filter(\r\n (foundElem) => foundElem === this._element\r\n );\r\n\r\n if (selector !== null && filterElement.length) {\r\n this._selector = selector;\r\n this._triggerArray.push(elem);\r\n }\r\n }\r\n\r\n this._initializeChildren();\r\n\r\n if (!this._config.parent) {\r\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\r\n }\r\n\r\n if (this._config.toggle) {\r\n this.toggle();\r\n }\r\n }\r\n\r\n // Getters\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n\r\n toggle() {\r\n if (this._isShown()) {\r\n this.hide();\r\n } else {\r\n this.show();\r\n }\r\n }\r\n\r\n show() {\r\n if (this._isTransitioning || this._isShown()) {\r\n return;\r\n }\r\n\r\n let actives = [];\r\n let activesData;\r\n\r\n if (this._config.parent) {\r\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\r\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._config.parent).filter(\r\n (elem) => !children.includes(elem)\r\n ); // remove children if greater depth\r\n }\r\n\r\n const container = SelectorEngine.findOne(this._selector);\r\n if (actives.length) {\r\n const tempActiveData = actives.find((elem) => container !== elem);\r\n activesData = tempActiveData ? Collapse.getInstance(tempActiveData) : null;\r\n\r\n if (activesData && activesData._isTransitioning) {\r\n return;\r\n }\r\n }\r\n\r\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW);\r\n if (startEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n actives.forEach((elemActive) => {\r\n if (container !== elemActive) {\r\n Collapse.getOrCreateInstance(elemActive, { toggle: false }).hide();\r\n }\r\n\r\n if (!activesData) {\r\n Data.set(elemActive, DATA_KEY, null);\r\n }\r\n });\r\n\r\n const dimension = this._getDimension();\r\n\r\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\r\n this._element.classList.add(CLASS_NAME_COLLAPSING);\r\n\r\n this._element.style[dimension] = 0;\r\n\r\n this._addAriaAndCollapsedClass(this._triggerArray, true);\r\n this._isTransitioning = true;\r\n\r\n const complete = () => {\r\n this._isTransitioning = false;\r\n\r\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\r\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\r\n\r\n this._element.style[dimension] = '';\r\n\r\n EventHandler.trigger(this._element, EVENT_SHOWN);\r\n };\r\n\r\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\r\n const scrollSize = `scroll${capitalizedDimension}`;\r\n\r\n this._queueCallback(complete, this._element, true);\r\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\r\n }\r\n\r\n hide() {\r\n if (this._isTransitioning || !this._isShown()) {\r\n return;\r\n }\r\n\r\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE);\r\n if (startEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n const dimension = this._getDimension();\r\n\r\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\r\n\r\n reflow(this._element);\r\n\r\n this._element.classList.add(CLASS_NAME_COLLAPSING);\r\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\r\n\r\n const triggerArrayLength = this._triggerArray.length;\r\n for (let i = 0; i < triggerArrayLength; i++) {\r\n const trigger = this._triggerArray[i];\r\n const elem = getElementFromSelector(trigger);\r\n\r\n if (elem && !this._isShown(elem)) {\r\n this._addAriaAndCollapsedClass([trigger], false);\r\n }\r\n }\r\n\r\n this._isTransitioning = true;\r\n\r\n const complete = () => {\r\n this._isTransitioning = false;\r\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\r\n this._element.classList.add(CLASS_NAME_COLLAPSE);\r\n EventHandler.trigger(this._element, EVENT_HIDDEN);\r\n };\r\n\r\n this._element.style[dimension] = '';\r\n\r\n this._queueCallback(complete, this._element, true);\r\n }\r\n\r\n _isShown(element = this._element) {\r\n return element.classList.contains(CLASS_NAME_SHOW);\r\n }\r\n\r\n // Private\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...Manipulator.getDataAttributes(this._element),\r\n ...config,\r\n };\r\n config.toggle = Boolean(config.toggle); // Coerce string values\r\n config.parent = getElement(config.parent);\r\n typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n }\r\n\r\n _getDimension() {\r\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\r\n }\r\n\r\n _initializeChildren() {\r\n if (!this._config.parent) {\r\n return;\r\n }\r\n\r\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\r\n SelectorEngine.find(SELECTOR_DATA_TOGGLE, this._config.parent)\r\n .filter((elem) => !children.includes(elem))\r\n .forEach((element) => {\r\n const selected = getElementFromSelector(element);\r\n\r\n if (selected) {\r\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\r\n }\r\n });\r\n }\r\n\r\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\r\n if (!triggerArray.length) {\r\n return;\r\n }\r\n\r\n triggerArray.forEach((elem) => {\r\n if (isOpen) {\r\n elem.classList.remove(CLASS_NAME_COLLAPSED);\r\n } else {\r\n elem.classList.add(CLASS_NAME_COLLAPSED);\r\n }\r\n\r\n elem.setAttribute('aria-expanded', isOpen);\r\n });\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const _config = {};\r\n if (typeof config === 'string' && /show|hide/.test(config)) {\r\n _config.toggle = false;\r\n }\r\n\r\n const data = Collapse.getOrCreateInstance(this, _config);\r\n\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config]();\r\n }\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n // preventDefault only for elements (which change the URL) not inside the collapsible element\r\n if (\r\n event.target.tagName === 'A' ||\r\n (event.delegateTarget && event.delegateTarget.tagName === 'A')\r\n ) {\r\n event.preventDefault();\r\n }\r\n\r\n const selector = getSelectorFromElement(this);\r\n const selectorElements = SelectorEngine.find(selector);\r\n\r\n selectorElements.forEach((element) => {\r\n Collapse.getOrCreateInstance(element, { toggle: false }).toggle();\r\n });\r\n});\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .Collapse to jQuery only if jQuery is present\r\n */\r\n\r\ndefineJQueryPlugin(Collapse);\r\n\r\nexport default Collapse;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): util/scrollBar.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport SelectorEngine from '../dom/selector-engine';\r\nimport Manipulator from '../dom/manipulator';\r\nimport { isElement } from './index';\r\n\r\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\r\nconst SELECTOR_STICKY_CONTENT = '.sticky-top';\r\n\r\nclass ScrollBarHelper {\r\n constructor() {\r\n this._element = document.body;\r\n }\r\n\r\n getWidth() {\r\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\r\n const documentWidth = document.documentElement.clientWidth;\r\n return Math.abs(window.innerWidth - documentWidth);\r\n }\r\n\r\n hide() {\r\n const width = this.getWidth();\r\n this._disableOverFlow();\r\n // give padding to element to balance the hidden scrollbar width\r\n this._setElementAttributes(\r\n this._element,\r\n 'paddingRight',\r\n (calculatedValue) => calculatedValue + width\r\n );\r\n // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\r\n this._setElementAttributes(\r\n SELECTOR_FIXED_CONTENT,\r\n 'paddingRight',\r\n (calculatedValue) => calculatedValue + width\r\n );\r\n this._setElementAttributes(\r\n SELECTOR_STICKY_CONTENT,\r\n 'marginRight',\r\n (calculatedValue) => calculatedValue - width\r\n );\r\n }\r\n\r\n _disableOverFlow() {\r\n this._saveInitialAttribute(this._element, 'overflow');\r\n this._element.style.overflow = 'hidden';\r\n }\r\n\r\n _setElementAttributes(selector, styleProp, callback) {\r\n const scrollbarWidth = this.getWidth();\r\n const manipulationCallBack = (element) => {\r\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\r\n return;\r\n }\r\n\r\n this._saveInitialAttribute(element, styleProp);\r\n const calculatedValue = window.getComputedStyle(element)[styleProp];\r\n element.style[styleProp] = `${callback(Number.parseFloat(calculatedValue))}px`;\r\n };\r\n\r\n this._applyManipulationCallback(selector, manipulationCallBack);\r\n }\r\n\r\n reset() {\r\n this._resetElementAttributes(this._element, 'overflow');\r\n this._resetElementAttributes(this._element, 'paddingRight');\r\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');\r\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');\r\n }\r\n\r\n _saveInitialAttribute(element, styleProp) {\r\n const actualValue = element.style[styleProp];\r\n if (actualValue) {\r\n Manipulator.setDataAttribute(element, styleProp, actualValue);\r\n }\r\n }\r\n\r\n _resetElementAttributes(selector, styleProp) {\r\n const manipulationCallBack = (element) => {\r\n const value = Manipulator.getDataAttribute(element, styleProp);\r\n if (typeof value === 'undefined') {\r\n element.style.removeProperty(styleProp);\r\n } else {\r\n Manipulator.removeDataAttribute(element, styleProp);\r\n element.style[styleProp] = value;\r\n }\r\n };\r\n\r\n this._applyManipulationCallback(selector, manipulationCallBack);\r\n }\r\n\r\n _applyManipulationCallback(selector, callBack) {\r\n if (isElement(selector)) {\r\n callBack(selector);\r\n } else {\r\n SelectorEngine.find(selector, this._element).forEach(callBack);\r\n }\r\n }\r\n\r\n isOverflowing() {\r\n return this.getWidth() > 0;\r\n }\r\n}\r\n\r\nexport default ScrollBarHelper;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): util/backdrop.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport EventHandler from '../dom/event-handler';\r\nimport { execute, executeAfterTransition, getElement, reflow, typeCheckConfig } from './index';\r\n\r\nconst Default = {\r\n className: 'modal-backdrop',\r\n isVisible: true, // if false, we use the backdrop helper without adding any element to the dom\r\n isAnimated: false,\r\n rootElement: 'body', // give the choice to place backdrop under different elements\r\n clickCallback: null,\r\n};\r\n\r\nconst DefaultType = {\r\n className: 'string',\r\n isVisible: 'boolean',\r\n isAnimated: 'boolean',\r\n rootElement: '(element|string)',\r\n clickCallback: '(function|null)',\r\n};\r\nconst NAME = 'backdrop';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME}`;\r\n\r\nclass Backdrop {\r\n constructor(config) {\r\n this._config = this._getConfig(config);\r\n this._isAppended = false;\r\n this._element = null;\r\n }\r\n\r\n show(callback) {\r\n if (!this._config.isVisible) {\r\n execute(callback);\r\n return;\r\n }\r\n\r\n this._append();\r\n\r\n if (this._config.isAnimated) {\r\n reflow(this._getElement());\r\n }\r\n\r\n this._getElement().classList.add(CLASS_NAME_SHOW);\r\n\r\n this._emulateAnimation(() => {\r\n execute(callback);\r\n });\r\n }\r\n\r\n hide(callback) {\r\n if (!this._config.isVisible) {\r\n execute(callback);\r\n return;\r\n }\r\n\r\n this._getElement().classList.remove(CLASS_NAME_SHOW);\r\n\r\n this._emulateAnimation(() => {\r\n this.dispose();\r\n execute(callback);\r\n });\r\n }\r\n\r\n // Private\r\n\r\n _getElement() {\r\n if (!this._element) {\r\n const backdrop = document.createElement('div');\r\n backdrop.className = this._config.className;\r\n if (this._config.isAnimated) {\r\n backdrop.classList.add(CLASS_NAME_FADE);\r\n }\r\n\r\n this._element = backdrop;\r\n }\r\n\r\n return this._element;\r\n }\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...(typeof config === 'object' ? config : {}),\r\n };\r\n\r\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\r\n config.rootElement = getElement(config.rootElement);\r\n typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n }\r\n\r\n _append() {\r\n if (this._isAppended) {\r\n return;\r\n }\r\n\r\n this._config.rootElement.append(this._getElement());\r\n\r\n EventHandler.on(this._getElement(), EVENT_MOUSEDOWN, () => {\r\n execute(this._config.clickCallback);\r\n });\r\n\r\n this._isAppended = true;\r\n }\r\n\r\n dispose() {\r\n if (!this._isAppended) {\r\n return;\r\n }\r\n\r\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\r\n\r\n this._element.remove();\r\n this._isAppended = false;\r\n }\r\n\r\n _emulateAnimation(callback) {\r\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\r\n }\r\n}\r\n\r\nexport default Backdrop;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): util/component-functions.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport EventHandler from '../dom/event-handler';\r\nimport { getElementFromSelector, isDisabled } from './index';\r\n\r\nconst enableDismissTrigger = (component, method = 'hide') => {\r\n const clickEvent = `click.dismiss${component.EVENT_KEY}`;\r\n const name = component.NAME;\r\n\r\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\r\n if (['A', 'AREA'].includes(this.tagName)) {\r\n event.preventDefault();\r\n }\r\n\r\n if (isDisabled(this)) {\r\n return;\r\n }\r\n\r\n const target = getElementFromSelector(this) || this.closest(`.${name}`);\r\n const instance = component.getOrCreateInstance(target);\r\n\r\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\r\n instance[method]();\r\n });\r\n};\r\n\r\nexport { enableDismissTrigger };\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): util/focustrap.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport EventHandler from '../dom/event-handler';\r\nimport SelectorEngine from '../dom/selector-engine';\r\nimport { typeCheckConfig } from './index';\r\n\r\nconst Default = {\r\n trapElement: null, // The element to trap focus inside of\r\n autofocus: true,\r\n};\r\n\r\nconst DefaultType = {\r\n trapElement: 'element',\r\n autofocus: 'boolean',\r\n};\r\n\r\nconst NAME = 'focustrap';\r\nconst DATA_KEY = 'bs.focustrap';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`;\r\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY}`;\r\n\r\nconst TAB_KEY = 'Tab';\r\nconst TAB_NAV_FORWARD = 'forward';\r\nconst TAB_NAV_BACKWARD = 'backward';\r\n\r\nclass FocusTrap {\r\n constructor(config) {\r\n this._config = this._getConfig(config);\r\n this._isActive = false;\r\n this._lastTabNavDirection = null;\r\n }\r\n\r\n activate() {\r\n const { trapElement, autofocus } = this._config;\r\n\r\n if (this._isActive) {\r\n return;\r\n }\r\n\r\n if (autofocus) {\r\n trapElement.focus();\r\n }\r\n\r\n EventHandler.off(document, EVENT_KEY); // guard against infinite focus loop\r\n EventHandler.on(document, EVENT_FOCUSIN, (event) => this._handleFocusin(event));\r\n EventHandler.on(document, EVENT_KEYDOWN_TAB, (event) => this._handleKeydown(event));\r\n\r\n this._isActive = true;\r\n }\r\n\r\n deactivate() {\r\n if (!this._isActive) {\r\n return;\r\n }\r\n\r\n this._isActive = false;\r\n EventHandler.off(document, EVENT_KEY);\r\n }\r\n\r\n // Private\r\n\r\n _handleFocusin(event) {\r\n const { target } = event;\r\n const { trapElement } = this._config;\r\n\r\n if (target === document || target === trapElement || trapElement.contains(target)) {\r\n return;\r\n }\r\n\r\n const elements = SelectorEngine.focusableChildren(trapElement);\r\n\r\n if (elements.length === 0) {\r\n trapElement.focus();\r\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\r\n elements[elements.length - 1].focus();\r\n } else {\r\n elements[0].focus();\r\n }\r\n }\r\n\r\n _handleKeydown(event) {\r\n if (event.key !== TAB_KEY) {\r\n return;\r\n }\r\n\r\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\r\n }\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...(typeof config === 'object' ? config : {}),\r\n };\r\n typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n }\r\n}\r\n\r\nexport default FocusTrap;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): offcanvas.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n defineJQueryPlugin,\r\n getElementFromSelector,\r\n isDisabled,\r\n isVisible,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport ScrollBarHelper from './util/scrollbar';\r\nimport EventHandler from './dom/event-handler';\r\nimport BaseComponent from './base-component';\r\nimport SelectorEngine from './dom/selector-engine';\r\nimport Manipulator from './dom/manipulator';\r\nimport Backdrop from './util/backdrop';\r\nimport FocusTrap from './util/focustrap';\r\nimport { enableDismissTrigger } from './util/component-functions';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'offcanvas';\r\nconst DATA_KEY = 'bs.offcanvas';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;\r\nconst ESCAPE_KEY = 'Escape';\r\n\r\nconst Default = {\r\n backdrop: true,\r\n keyboard: true,\r\n scroll: false,\r\n};\r\n\r\nconst DefaultType = {\r\n backdrop: 'boolean',\r\n keyboard: 'boolean',\r\n scroll: 'boolean',\r\n};\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\r\nconst OPEN_SELECTOR = '.offcanvas.show';\r\n\r\nconst EVENT_SHOW = `show${EVENT_KEY}`;\r\nconst EVENT_SHOWN = `shown${EVENT_KEY}`;\r\nconst EVENT_HIDE = `hide${EVENT_KEY}`;\r\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`;\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"offcanvas\"]';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Offcanvas extends BaseComponent {\r\n constructor(element, config) {\r\n super(element);\r\n\r\n this._config = this._getConfig(config);\r\n this._isShown = false;\r\n this._backdrop = this._initializeBackDrop();\r\n this._focustrap = this._initializeFocusTrap();\r\n this._addEventListeners();\r\n }\r\n\r\n // Getters\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n // Public\r\n\r\n toggle(relatedTarget) {\r\n return this._isShown ? this.hide() : this.show(relatedTarget);\r\n }\r\n\r\n show(relatedTarget) {\r\n if (this._isShown) {\r\n return;\r\n }\r\n\r\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget });\r\n\r\n if (showEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._isShown = true;\r\n this._element.style.visibility = 'visible';\r\n\r\n this._backdrop.show();\r\n\r\n if (!this._config.scroll) {\r\n new ScrollBarHelper().hide();\r\n }\r\n\r\n this._element.removeAttribute('aria-hidden');\r\n this._element.setAttribute('aria-modal', true);\r\n this._element.setAttribute('role', 'dialog');\r\n this._element.classList.add(CLASS_NAME_SHOW);\r\n\r\n const completeCallBack = () => {\r\n if (!this._config.scroll) {\r\n this._focustrap.activate();\r\n }\r\n\r\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget });\r\n };\r\n\r\n this._queueCallback(completeCallBack, this._element, true);\r\n }\r\n\r\n hide() {\r\n if (!this._isShown) {\r\n return;\r\n }\r\n\r\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);\r\n\r\n if (hideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._focustrap.deactivate();\r\n this._element.blur();\r\n this._isShown = false;\r\n this._element.classList.remove(CLASS_NAME_SHOW);\r\n this._backdrop.hide();\r\n\r\n const completeCallback = () => {\r\n this._element.setAttribute('aria-hidden', true);\r\n this._element.removeAttribute('aria-modal');\r\n this._element.removeAttribute('role');\r\n this._element.style.visibility = 'hidden';\r\n\r\n if (!this._config.scroll) {\r\n new ScrollBarHelper().reset();\r\n }\r\n\r\n EventHandler.trigger(this._element, EVENT_HIDDEN);\r\n };\r\n\r\n this._queueCallback(completeCallback, this._element, true);\r\n }\r\n\r\n dispose() {\r\n this._backdrop.dispose();\r\n this._focustrap.deactivate();\r\n super.dispose();\r\n }\r\n\r\n // Private\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...Manipulator.getDataAttributes(this._element),\r\n ...(typeof config === 'object' ? config : {}),\r\n };\r\n typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n }\r\n\r\n _initializeBackDrop() {\r\n return new Backdrop({\r\n className: CLASS_NAME_BACKDROP,\r\n isVisible: this._config.backdrop,\r\n isAnimated: true,\r\n rootElement: this._element.parentNode,\r\n clickCallback: () => this.hide(),\r\n });\r\n }\r\n\r\n _initializeFocusTrap() {\r\n return new FocusTrap({\r\n trapElement: this._element,\r\n });\r\n }\r\n\r\n _addEventListeners() {\r\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, (event) => {\r\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\r\n this.hide();\r\n }\r\n });\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const data = Offcanvas.getOrCreateInstance(this, config);\r\n\r\n if (typeof config !== 'string') {\r\n return;\r\n }\r\n\r\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config](this);\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n const target = getElementFromSelector(this);\r\n\r\n if (['A', 'AREA'].includes(this.tagName)) {\r\n event.preventDefault();\r\n }\r\n\r\n if (isDisabled(this)) {\r\n return;\r\n }\r\n\r\n EventHandler.one(target, EVENT_HIDDEN, () => {\r\n // focus on trigger when it is closed\r\n if (isVisible(this)) {\r\n this.focus();\r\n }\r\n });\r\n\r\n // avoid conflict when clicking a toggler of an offcanvas, while another is open\r\n const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\r\n if (allReadyOpen && allReadyOpen !== target) {\r\n Offcanvas.getInstance(allReadyOpen).hide();\r\n }\r\n\r\n const data = Offcanvas.getOrCreateInstance(target);\r\n data.toggle(this);\r\n});\r\n\r\nEventHandler.on(window, EVENT_LOAD_DATA_API, () =>\r\n SelectorEngine.find(OPEN_SELECTOR).forEach((el) => Offcanvas.getOrCreateInstance(el).show())\r\n);\r\n\r\nenableDismissTrigger(Offcanvas);\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\ndefineJQueryPlugin(Offcanvas);\r\n\r\nexport default Offcanvas;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): alert.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport { defineJQueryPlugin } from './util/index';\r\nimport EventHandler from './dom/event-handler';\r\nimport BaseComponent from './base-component';\r\nimport { enableDismissTrigger } from './util/component-functions';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'alert';\r\nconst DATA_KEY = 'bs.alert';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\n\r\nconst EVENT_CLOSE = `close${EVENT_KEY}`;\r\nconst EVENT_CLOSED = `closed${EVENT_KEY}`;\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Alert extends BaseComponent {\r\n // Getters\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n\r\n close() {\r\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\r\n\r\n if (closeEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._element.classList.remove(CLASS_NAME_SHOW);\r\n\r\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE);\r\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated);\r\n }\r\n\r\n // Private\r\n _destroyElement() {\r\n this._element.remove();\r\n EventHandler.trigger(this._element, EVENT_CLOSED);\r\n this.dispose();\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const data = Alert.getOrCreateInstance(this);\r\n\r\n if (typeof config !== 'string') {\r\n return;\r\n }\r\n\r\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config](this);\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nenableDismissTrigger(Alert, 'close');\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .Alert to jQuery only if jQuery is present\r\n */\r\n\r\ndefineJQueryPlugin(Alert);\r\n\r\nexport default Alert;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): carousel.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n defineJQueryPlugin,\r\n getElementFromSelector,\r\n isRTL,\r\n isVisible,\r\n getNextActiveElement,\r\n reflow,\r\n triggerTransitionEnd,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport EventHandler from './dom/event-handler';\r\nimport Manipulator from './dom/manipulator';\r\nimport SelectorEngine from './dom/selector-engine';\r\nimport BaseComponent from './base-component';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'carousel';\r\nconst DATA_KEY = 'bs.carousel';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst ARROW_LEFT_KEY = 'ArrowLeft';\r\nconst ARROW_RIGHT_KEY = 'ArrowRight';\r\nconst TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\r\nconst SWIPE_THRESHOLD = 40;\r\n\r\nconst Default = {\r\n interval: 5000,\r\n keyboard: true,\r\n slide: false,\r\n pause: 'hover',\r\n wrap: true,\r\n touch: true,\r\n};\r\n\r\nconst DefaultType = {\r\n interval: '(number|boolean)',\r\n keyboard: 'boolean',\r\n slide: '(boolean|string)',\r\n pause: '(string|boolean)',\r\n wrap: 'boolean',\r\n touch: 'boolean',\r\n};\r\n\r\nconst ORDER_NEXT = 'next';\r\nconst ORDER_PREV = 'prev';\r\nconst DIRECTION_LEFT = 'left';\r\nconst DIRECTION_RIGHT = 'right';\r\n\r\nconst KEY_TO_DIRECTION = {\r\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\r\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT,\r\n};\r\n\r\nconst EVENT_SLIDE = `slide${EVENT_KEY}`;\r\nconst EVENT_SLID = `slid${EVENT_KEY}`;\r\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`;\r\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`;\r\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`;\r\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`;\r\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`;\r\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`;\r\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`;\r\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`;\r\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`;\r\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASS_NAME_CAROUSEL = 'carousel';\r\nconst CLASS_NAME_ACTIVE = 'active';\r\nconst CLASS_NAME_SLIDE = 'slide';\r\nconst CLASS_NAME_END = 'carousel-item-end';\r\nconst CLASS_NAME_START = 'carousel-item-start';\r\nconst CLASS_NAME_NEXT = 'carousel-item-next';\r\nconst CLASS_NAME_PREV = 'carousel-item-prev';\r\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event';\r\n\r\nconst SELECTOR_ACTIVE = '.active';\r\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\r\nconst SELECTOR_ITEM = '.carousel-item';\r\nconst SELECTOR_ITEM_IMG = '.carousel-item img';\r\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\r\nconst SELECTOR_INDICATORS = '.carousel-indicators';\r\nconst SELECTOR_INDICATOR = '[data-bs-target]';\r\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\r\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\r\n\r\nconst POINTER_TYPE_TOUCH = 'touch';\r\nconst POINTER_TYPE_PEN = 'pen';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\nclass Carousel extends BaseComponent {\r\n constructor(element, config) {\r\n super(element);\r\n\r\n this._items = null;\r\n this._interval = null;\r\n this._activeElement = null;\r\n this._isPaused = false;\r\n this._isSliding = false;\r\n this.touchTimeout = null;\r\n this.touchStartX = 0;\r\n this.touchDeltaX = 0;\r\n\r\n this._config = this._getConfig(config);\r\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);\r\n this._touchSupported =\r\n 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\r\n this._pointerEvent = Boolean(window.PointerEvent);\r\n\r\n this._addEventListeners();\r\n }\r\n\r\n // Getters\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n\r\n next() {\r\n this._slide(ORDER_NEXT);\r\n }\r\n\r\n nextWhenVisible() {\r\n // Don't call next when the page isn't visible\r\n // or the carousel or its parent isn't visible\r\n if (!document.hidden && isVisible(this._element)) {\r\n this.next();\r\n }\r\n }\r\n\r\n prev() {\r\n this._slide(ORDER_PREV);\r\n }\r\n\r\n pause(event) {\r\n if (!event) {\r\n this._isPaused = true;\r\n }\r\n\r\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\r\n triggerTransitionEnd(this._element);\r\n this.cycle(true);\r\n }\r\n\r\n clearInterval(this._interval);\r\n this._interval = null;\r\n }\r\n\r\n cycle(event) {\r\n if (!event) {\r\n this._isPaused = false;\r\n }\r\n\r\n if (this._interval) {\r\n clearInterval(this._interval);\r\n this._interval = null;\r\n }\r\n\r\n if (this._config && this._config.interval && !this._isPaused) {\r\n this._updateInterval();\r\n\r\n this._interval = setInterval(\r\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\r\n this._config.interval\r\n );\r\n }\r\n }\r\n\r\n to(index) {\r\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\r\n const activeIndex = this._getItemIndex(this._activeElement);\r\n\r\n if (index > this._items.length - 1 || index < 0) {\r\n return;\r\n }\r\n\r\n if (this._isSliding) {\r\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\r\n return;\r\n }\r\n\r\n if (activeIndex === index) {\r\n this.pause();\r\n this.cycle();\r\n return;\r\n }\r\n\r\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\r\n\r\n this._slide(order, this._items[index]);\r\n }\r\n\r\n // Private\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...Manipulator.getDataAttributes(this._element),\r\n ...(typeof config === 'object' ? config : {}),\r\n };\r\n typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n }\r\n\r\n _handleSwipe() {\r\n const absDeltax = Math.abs(this.touchDeltaX);\r\n\r\n if (absDeltax <= SWIPE_THRESHOLD) {\r\n return;\r\n }\r\n\r\n const direction = absDeltax / this.touchDeltaX;\r\n\r\n this.touchDeltaX = 0;\r\n\r\n if (!direction) {\r\n return;\r\n }\r\n\r\n this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT);\r\n }\r\n\r\n _addEventListeners() {\r\n if (this._config.keyboard) {\r\n EventHandler.on(this._element, EVENT_KEYDOWN, (event) => this._keydown(event));\r\n }\r\n\r\n if (this._config.pause === 'hover') {\r\n EventHandler.on(this._element, EVENT_MOUSEENTER, (event) => this.pause(event));\r\n EventHandler.on(this._element, EVENT_MOUSELEAVE, (event) => this.cycle(event));\r\n }\r\n\r\n if (this._config.touch && this._touchSupported) {\r\n this._addTouchEventListeners();\r\n }\r\n }\r\n\r\n _addTouchEventListeners() {\r\n const hasPointerPenTouch = (event) => {\r\n return (\r\n this._pointerEvent &&\r\n (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\r\n );\r\n };\r\n\r\n const start = (event) => {\r\n if (hasPointerPenTouch(event)) {\r\n this.touchStartX = event.clientX;\r\n } else if (!this._pointerEvent) {\r\n this.touchStartX = event.touches[0].clientX;\r\n }\r\n };\r\n\r\n const move = (event) => {\r\n // ensure swiping with one touch and not pinching\r\n this.touchDeltaX =\r\n event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this.touchStartX;\r\n };\r\n\r\n const end = (event) => {\r\n if (hasPointerPenTouch(event)) {\r\n this.touchDeltaX = event.clientX - this.touchStartX;\r\n }\r\n\r\n this._handleSwipe();\r\n if (this._config.pause === 'hover') {\r\n // If it's a touch-enabled device, mouseenter/leave are fired as\r\n // part of the mouse compatibility events on first tap - the carousel\r\n // would stop cycling until user tapped out of it;\r\n // here, we listen for touchend, explicitly pause the carousel\r\n // (as if it's the second time we tap on it, mouseenter compat event\r\n // is NOT fired) and after a timeout (to allow for mouse compatibility\r\n // events to fire) we explicitly restart cycling\r\n\r\n this.pause();\r\n if (this.touchTimeout) {\r\n clearTimeout(this.touchTimeout);\r\n }\r\n\r\n this.touchTimeout = setTimeout(\r\n (event) => this.cycle(event),\r\n TOUCHEVENT_COMPAT_WAIT + this._config.interval\r\n );\r\n }\r\n };\r\n\r\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach((itemImg) => {\r\n EventHandler.on(itemImg, EVENT_DRAG_START, (event) => event.preventDefault());\r\n });\r\n\r\n if (this._pointerEvent) {\r\n EventHandler.on(this._element, EVENT_POINTERDOWN, (event) => start(event));\r\n EventHandler.on(this._element, EVENT_POINTERUP, (event) => end(event));\r\n\r\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\r\n } else {\r\n EventHandler.on(this._element, EVENT_TOUCHSTART, (event) => start(event));\r\n EventHandler.on(this._element, EVENT_TOUCHMOVE, (event) => move(event));\r\n EventHandler.on(this._element, EVENT_TOUCHEND, (event) => end(event));\r\n }\r\n }\r\n\r\n _keydown(event) {\r\n if (/input|textarea/i.test(event.target.tagName)) {\r\n return;\r\n }\r\n\r\n const direction = KEY_TO_DIRECTION[event.key];\r\n if (direction) {\r\n event.preventDefault();\r\n this._slide(direction);\r\n }\r\n }\r\n\r\n _getItemIndex(element) {\r\n this._items =\r\n element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : [];\r\n\r\n return this._items.indexOf(element);\r\n }\r\n\r\n _getItemByOrder(order, activeElement) {\r\n const isNext = order === ORDER_NEXT;\r\n return getNextActiveElement(this._items, activeElement, isNext, this._config.wrap);\r\n }\r\n\r\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\r\n const targetIndex = this._getItemIndex(relatedTarget);\r\n const fromIndex = this._getItemIndex(\r\n SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\r\n );\r\n\r\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\r\n relatedTarget,\r\n direction: eventDirectionName,\r\n from: fromIndex,\r\n to: targetIndex,\r\n });\r\n }\r\n\r\n _setActiveIndicatorElement(element) {\r\n if (this._indicatorsElement) {\r\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);\r\n\r\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE);\r\n activeIndicator.removeAttribute('aria-current');\r\n\r\n const indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement);\r\n\r\n for (let i = 0; i < indicators.length; i++) {\r\n if (\r\n Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) ===\r\n this._getItemIndex(element)\r\n ) {\r\n indicators[i].classList.add(CLASS_NAME_ACTIVE);\r\n indicators[i].setAttribute('aria-current', 'true');\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n _updateInterval() {\r\n const element =\r\n this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\r\n\r\n if (elementInterval) {\r\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\r\n this._config.interval = elementInterval;\r\n } else {\r\n this._config.interval = this._config.defaultInterval || this._config.interval;\r\n }\r\n }\r\n\r\n _slide(directionOrOrder, element) {\r\n const order = this._directionToOrder(directionOrOrder);\r\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\r\n const activeElementIndex = this._getItemIndex(activeElement);\r\n const nextElement = element || this._getItemByOrder(order, activeElement);\r\n\r\n const nextElementIndex = this._getItemIndex(nextElement);\r\n const isCycling = Boolean(this._interval);\r\n\r\n const isNext = order === ORDER_NEXT;\r\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\r\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\r\n const eventDirectionName = this._orderToDirection(order);\r\n\r\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\r\n this._isSliding = false;\r\n return;\r\n }\r\n\r\n if (this._isSliding) {\r\n return;\r\n }\r\n\r\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\r\n if (slideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n if (!activeElement || !nextElement) {\r\n // Some weirdness is happening, so we bail\r\n return;\r\n }\r\n\r\n this._isSliding = true;\r\n\r\n if (isCycling) {\r\n this.pause();\r\n }\r\n\r\n this._setActiveIndicatorElement(nextElement);\r\n this._activeElement = nextElement;\r\n\r\n const triggerSlidEvent = () => {\r\n EventHandler.trigger(this._element, EVENT_SLID, {\r\n relatedTarget: nextElement,\r\n direction: eventDirectionName,\r\n from: activeElementIndex,\r\n to: nextElementIndex,\r\n });\r\n };\r\n\r\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\r\n nextElement.classList.add(orderClassName);\r\n\r\n reflow(nextElement);\r\n\r\n activeElement.classList.add(directionalClassName);\r\n nextElement.classList.add(directionalClassName);\r\n\r\n const completeCallBack = () => {\r\n nextElement.classList.remove(directionalClassName, orderClassName);\r\n nextElement.classList.add(CLASS_NAME_ACTIVE);\r\n\r\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);\r\n\r\n this._isSliding = false;\r\n\r\n setTimeout(triggerSlidEvent, 0);\r\n };\r\n\r\n this._queueCallback(completeCallBack, activeElement, true);\r\n } else {\r\n activeElement.classList.remove(CLASS_NAME_ACTIVE);\r\n nextElement.classList.add(CLASS_NAME_ACTIVE);\r\n\r\n this._isSliding = false;\r\n triggerSlidEvent();\r\n }\r\n\r\n if (isCycling) {\r\n this.cycle();\r\n }\r\n }\r\n\r\n _directionToOrder(direction) {\r\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\r\n return direction;\r\n }\r\n\r\n if (isRTL()) {\r\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\r\n }\r\n\r\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\r\n }\r\n\r\n _orderToDirection(order) {\r\n if (![ORDER_NEXT, ORDER_PREV].includes(order)) {\r\n return order;\r\n }\r\n\r\n if (isRTL()) {\r\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\r\n }\r\n\r\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\r\n }\r\n\r\n // Static\r\n\r\n static carouselInterface(element, config) {\r\n const data = Carousel.getOrCreateInstance(element, config);\r\n\r\n let { _config } = data;\r\n if (typeof config === 'object') {\r\n _config = {\r\n ..._config,\r\n ...config,\r\n };\r\n }\r\n\r\n const action = typeof config === 'string' ? config : _config.slide;\r\n\r\n if (typeof config === 'number') {\r\n data.to(config);\r\n } else if (typeof action === 'string') {\r\n if (typeof data[action] === 'undefined') {\r\n throw new TypeError(`No method named \"${action}\"`);\r\n }\r\n\r\n data[action]();\r\n } else if (_config.interval && _config.ride) {\r\n data.pause();\r\n data.cycle();\r\n }\r\n }\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n Carousel.carouselInterface(this, config);\r\n });\r\n }\r\n\r\n static dataApiClickHandler(event) {\r\n const target = getElementFromSelector(this);\r\n\r\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\r\n return;\r\n }\r\n\r\n const config = {\r\n ...Manipulator.getDataAttributes(target),\r\n ...Manipulator.getDataAttributes(this),\r\n };\r\n const slideIndex = this.getAttribute('data-bs-slide-to');\r\n\r\n if (slideIndex) {\r\n config.interval = false;\r\n }\r\n\r\n Carousel.carouselInterface(target, config);\r\n\r\n if (slideIndex) {\r\n Carousel.getInstance(target).to(slideIndex);\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);\r\n\r\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\r\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\r\n\r\n for (let i = 0, len = carousels.length; i < len; i++) {\r\n Carousel.carouselInterface(carousels[i], Carousel.getInstance(carousels[i]));\r\n }\r\n});\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .Carousel to jQuery only if jQuery is present\r\n */\r\n\r\ndefineJQueryPlugin(Carousel);\r\n\r\nexport default Carousel;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): modal.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n defineJQueryPlugin,\r\n getElementFromSelector,\r\n isRTL,\r\n isVisible,\r\n reflow,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport EventHandler from './dom/event-handler';\r\nimport Manipulator from './dom/manipulator';\r\nimport SelectorEngine from './dom/selector-engine';\r\nimport ScrollBarHelper from './util/scrollbar';\r\nimport BaseComponent from './base-component';\r\nimport Backdrop from './util/backdrop';\r\nimport FocusTrap from './util/focustrap';\r\nimport { enableDismissTrigger } from './util/component-functions';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'modal';\r\nconst DATA_KEY = 'bs.modal';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\nconst ESCAPE_KEY = 'Escape';\r\n\r\nconst Default = {\r\n backdrop: true,\r\n keyboard: true,\r\n focus: true,\r\n};\r\n\r\nconst DefaultType = {\r\n backdrop: '(boolean|string)',\r\n keyboard: 'boolean',\r\n focus: 'boolean',\r\n};\r\n\r\nconst EVENT_HIDE = `hide${EVENT_KEY}`;\r\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`;\r\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`;\r\nconst EVENT_SHOW = `show${EVENT_KEY}`;\r\nconst EVENT_SHOWN = `shown${EVENT_KEY}`;\r\nconst EVENT_RESIZE = `resize${EVENT_KEY}`;\r\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`;\r\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`;\r\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`;\r\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASS_NAME_OPEN = 'modal-open';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_STATIC = 'modal-static';\r\n\r\nconst OPEN_SELECTOR = '.modal.show';\r\nconst SELECTOR_DIALOG = '.modal-dialog';\r\nconst SELECTOR_MODAL_BODY = '.modal-body';\r\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Modal extends BaseComponent {\r\n constructor(element, config) {\r\n super(element);\r\n\r\n this._config = this._getConfig(config);\r\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);\r\n this._backdrop = this._initializeBackDrop();\r\n this._focustrap = this._initializeFocusTrap();\r\n this._isShown = false;\r\n this._ignoreBackdropClick = false;\r\n this._isTransitioning = false;\r\n this._scrollBar = new ScrollBarHelper();\r\n }\r\n\r\n // Getters\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n\r\n toggle(relatedTarget) {\r\n return this._isShown ? this.hide() : this.show(relatedTarget);\r\n }\r\n\r\n show(relatedTarget) {\r\n if (this._isShown || this._isTransitioning) {\r\n return;\r\n }\r\n\r\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\r\n relatedTarget,\r\n });\r\n\r\n if (showEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._isShown = true;\r\n\r\n if (this._isAnimated()) {\r\n this._isTransitioning = true;\r\n }\r\n\r\n this._scrollBar.hide();\r\n\r\n document.body.classList.add(CLASS_NAME_OPEN);\r\n\r\n this._adjustDialog();\r\n\r\n this._setEscapeEvent();\r\n this._setResizeEvent();\r\n\r\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\r\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, (event) => {\r\n if (event.target === this._element) {\r\n this._ignoreBackdropClick = true;\r\n }\r\n });\r\n });\r\n\r\n this._showBackdrop(() => this._showElement(relatedTarget));\r\n }\r\n\r\n hide() {\r\n if (!this._isShown || this._isTransitioning) {\r\n return;\r\n }\r\n\r\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);\r\n\r\n if (hideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._isShown = false;\r\n const isAnimated = this._isAnimated();\r\n\r\n if (isAnimated) {\r\n this._isTransitioning = true;\r\n }\r\n\r\n this._setEscapeEvent();\r\n this._setResizeEvent();\r\n\r\n this._focustrap.deactivate();\r\n\r\n this._element.classList.remove(CLASS_NAME_SHOW);\r\n\r\n EventHandler.off(this._element, EVENT_CLICK_DISMISS);\r\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS);\r\n\r\n this._queueCallback(() => this._hideModal(), this._element, isAnimated);\r\n }\r\n\r\n dispose() {\r\n [window, this._dialog].forEach((htmlElement) => EventHandler.off(htmlElement, EVENT_KEY));\r\n\r\n this._backdrop.dispose();\r\n this._focustrap.deactivate();\r\n super.dispose();\r\n }\r\n\r\n handleUpdate() {\r\n this._adjustDialog();\r\n }\r\n\r\n // Private\r\n\r\n _initializeBackDrop() {\r\n return new Backdrop({\r\n isVisible: Boolean(this._config.backdrop), // 'static' option will be translated to true, and booleans will keep their value\r\n isAnimated: this._isAnimated(),\r\n });\r\n }\r\n\r\n _initializeFocusTrap() {\r\n return new FocusTrap({\r\n trapElement: this._element,\r\n });\r\n }\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...Manipulator.getDataAttributes(this._element),\r\n ...(typeof config === 'object' ? config : {}),\r\n };\r\n typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n }\r\n\r\n _showElement(relatedTarget) {\r\n const isAnimated = this._isAnimated();\r\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\r\n\r\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\r\n // Don't move modal's DOM position\r\n document.body.append(this._element);\r\n }\r\n\r\n this._element.style.display = 'block';\r\n this._element.removeAttribute('aria-hidden');\r\n this._element.setAttribute('aria-modal', true);\r\n this._element.setAttribute('role', 'dialog');\r\n this._element.scrollTop = 0;\r\n\r\n if (modalBody) {\r\n modalBody.scrollTop = 0;\r\n }\r\n\r\n if (isAnimated) {\r\n reflow(this._element);\r\n }\r\n\r\n this._element.classList.add(CLASS_NAME_SHOW);\r\n\r\n const transitionComplete = () => {\r\n if (this._config.focus) {\r\n this._focustrap.activate();\r\n }\r\n\r\n this._isTransitioning = false;\r\n EventHandler.trigger(this._element, EVENT_SHOWN, {\r\n relatedTarget,\r\n });\r\n };\r\n\r\n this._queueCallback(transitionComplete, this._dialog, isAnimated);\r\n }\r\n\r\n _setEscapeEvent() {\r\n if (this._isShown) {\r\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, (event) => {\r\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\r\n event.preventDefault();\r\n this.hide();\r\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\r\n this._triggerBackdropTransition();\r\n }\r\n });\r\n } else {\r\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS);\r\n }\r\n }\r\n\r\n _setResizeEvent() {\r\n if (this._isShown) {\r\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog());\r\n } else {\r\n EventHandler.off(window, EVENT_RESIZE);\r\n }\r\n }\r\n\r\n _hideModal() {\r\n this._element.style.display = 'none';\r\n this._element.setAttribute('aria-hidden', true);\r\n this._element.removeAttribute('aria-modal');\r\n this._element.removeAttribute('role');\r\n this._isTransitioning = false;\r\n this._backdrop.hide(() => {\r\n document.body.classList.remove(CLASS_NAME_OPEN);\r\n this._resetAdjustments();\r\n this._scrollBar.reset();\r\n EventHandler.trigger(this._element, EVENT_HIDDEN);\r\n });\r\n }\r\n\r\n _showBackdrop(callback) {\r\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, (event) => {\r\n if (this._ignoreBackdropClick) {\r\n this._ignoreBackdropClick = false;\r\n return;\r\n }\r\n\r\n if (event.target !== event.currentTarget) {\r\n return;\r\n }\r\n\r\n if (this._config.backdrop === true) {\r\n this.hide();\r\n } else if (this._config.backdrop === 'static') {\r\n this._triggerBackdropTransition();\r\n }\r\n });\r\n\r\n this._backdrop.show(callback);\r\n }\r\n\r\n _isAnimated() {\r\n return this._element.classList.contains(CLASS_NAME_FADE);\r\n }\r\n\r\n _triggerBackdropTransition() {\r\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\r\n if (hideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n const { classList, scrollHeight, style } = this._element;\r\n const isModalOverflowing = scrollHeight > document.documentElement.clientHeight;\r\n\r\n // return if the following background transition hasn't yet completed\r\n if (\r\n (!isModalOverflowing && style.overflowY === 'hidden') ||\r\n classList.contains(CLASS_NAME_STATIC)\r\n ) {\r\n return;\r\n }\r\n\r\n if (!isModalOverflowing) {\r\n style.overflowY = 'hidden';\r\n }\r\n\r\n classList.add(CLASS_NAME_STATIC);\r\n this._queueCallback(() => {\r\n classList.remove(CLASS_NAME_STATIC);\r\n if (!isModalOverflowing) {\r\n this._queueCallback(() => {\r\n style.overflowY = '';\r\n }, this._dialog);\r\n }\r\n }, this._dialog);\r\n\r\n this._element.focus();\r\n }\r\n\r\n // ----------------------------------------------------------------------\r\n // the following methods are used to handle overflowing modals\r\n // ----------------------------------------------------------------------\r\n\r\n _adjustDialog() {\r\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\r\n const scrollbarWidth = this._scrollBar.getWidth();\r\n const isBodyOverflowing = scrollbarWidth > 0;\r\n\r\n if (\r\n (!isBodyOverflowing && isModalOverflowing && !isRTL()) ||\r\n (isBodyOverflowing && !isModalOverflowing && isRTL())\r\n ) {\r\n this._element.style.paddingLeft = `${scrollbarWidth}px`;\r\n }\r\n\r\n if (\r\n (isBodyOverflowing && !isModalOverflowing && !isRTL()) ||\r\n (!isBodyOverflowing && isModalOverflowing && isRTL())\r\n ) {\r\n this._element.style.paddingRight = `${scrollbarWidth}px`;\r\n }\r\n }\r\n\r\n _resetAdjustments() {\r\n this._element.style.paddingLeft = '';\r\n this._element.style.paddingRight = '';\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config, relatedTarget) {\r\n return this.each(function () {\r\n const data = Modal.getOrCreateInstance(this, config);\r\n\r\n if (typeof config !== 'string') {\r\n return;\r\n }\r\n\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config](relatedTarget);\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n const target = getElementFromSelector(this);\r\n\r\n if (['A', 'AREA'].includes(this.tagName)) {\r\n event.preventDefault();\r\n }\r\n\r\n EventHandler.one(target, EVENT_SHOW, (showEvent) => {\r\n if (showEvent.defaultPrevented) {\r\n // only register focus restorer if modal will actually get shown\r\n return;\r\n }\r\n\r\n EventHandler.one(target, EVENT_HIDDEN, () => {\r\n if (isVisible(this)) {\r\n this.focus();\r\n }\r\n });\r\n });\r\n\r\n // avoid conflict when clicking moddal toggler while another one is open\r\n const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\r\n if (allReadyOpen) {\r\n Modal.getInstance(allReadyOpen).hide();\r\n }\r\n\r\n const data = Modal.getOrCreateInstance(target);\r\n\r\n data.toggle(this);\r\n});\r\n\r\nenableDismissTrigger(Modal);\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .Modal to jQuery only if jQuery is present\r\n */\r\n\r\ndefineJQueryPlugin(Modal);\r\n\r\nexport default Modal;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): util/sanitizer.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nconst uriAttributes = new Set([\r\n 'background',\r\n 'cite',\r\n 'href',\r\n 'itemtype',\r\n 'longdesc',\r\n 'poster',\r\n 'src',\r\n 'xlink:href',\r\n]);\r\n\r\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\r\n\r\n/**\r\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\r\n *\r\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\r\n */\r\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;\r\n\r\n/**\r\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\r\n *\r\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\r\n */\r\nconst DATA_URL_PATTERN =\r\n /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\r\n\r\nconst allowedAttribute = (attribute, allowedAttributeList) => {\r\n const attributeName = attribute.nodeName.toLowerCase();\r\n\r\n if (allowedAttributeList.includes(attributeName)) {\r\n if (uriAttributes.has(attributeName)) {\r\n return Boolean(\r\n SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue)\r\n );\r\n }\r\n\r\n return true;\r\n }\r\n\r\n const regExp = allowedAttributeList.filter((attributeRegex) => attributeRegex instanceof RegExp);\r\n\r\n // Check if a regular expression validates the attribute.\r\n for (let i = 0, len = regExp.length; i < len; i++) {\r\n if (regExp[i].test(attributeName)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport const DefaultAllowlist = {\r\n // Global attributes allowed on any supplied element below.\r\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\r\n a: ['target', 'href', 'title', 'rel'],\r\n area: [],\r\n b: [],\r\n br: [],\r\n col: [],\r\n code: [],\r\n div: [],\r\n em: [],\r\n hr: [],\r\n h1: [],\r\n h2: [],\r\n h3: [],\r\n h4: [],\r\n h5: [],\r\n h6: [],\r\n i: [],\r\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\r\n li: [],\r\n ol: [],\r\n p: [],\r\n pre: [],\r\n s: [],\r\n small: [],\r\n span: [],\r\n sub: [],\r\n sup: [],\r\n strong: [],\r\n u: [],\r\n ul: [],\r\n};\r\n\r\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\r\n if (!unsafeHtml.length) {\r\n return unsafeHtml;\r\n }\r\n\r\n if (sanitizeFn && typeof sanitizeFn === 'function') {\r\n return sanitizeFn(unsafeHtml);\r\n }\r\n\r\n const domParser = new window.DOMParser();\r\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\r\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\r\n\r\n for (let i = 0, len = elements.length; i < len; i++) {\r\n const element = elements[i];\r\n const elementName = element.nodeName.toLowerCase();\r\n\r\n if (!Object.keys(allowList).includes(elementName)) {\r\n element.remove();\r\n\r\n continue;\r\n }\r\n\r\n const attributeList = [].concat(...element.attributes);\r\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\r\n\r\n attributeList.forEach((attribute) => {\r\n if (!allowedAttribute(attribute, allowedAttributes)) {\r\n element.removeAttribute(attribute.nodeName);\r\n }\r\n });\r\n }\r\n\r\n return createdDocument.body.innerHTML;\r\n}\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): tooltip.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport * as Popper from '@popperjs/core';\r\n\r\nimport {\r\n defineJQueryPlugin,\r\n findShadowRoot,\r\n getElement,\r\n getUID,\r\n isElement,\r\n isRTL,\r\n noop,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport { DefaultAllowlist, sanitizeHtml } from './util/sanitizer';\r\nimport Data from './dom/data';\r\nimport EventHandler from './dom/event-handler';\r\nimport Manipulator from './dom/manipulator';\r\nimport SelectorEngine from './dom/selector-engine';\r\nimport BaseComponent from './base-component';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'tooltip';\r\nconst DATA_KEY = 'bs.tooltip';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst CLASS_PREFIX = 'bs-tooltip';\r\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\r\n\r\nconst DefaultType = {\r\n animation: 'boolean',\r\n template: 'string',\r\n title: '(string|element|function)',\r\n trigger: 'string',\r\n delay: '(number|object)',\r\n html: 'boolean',\r\n selector: '(string|boolean)',\r\n placement: '(string|function)',\r\n offset: '(array|string|function)',\r\n container: '(string|element|boolean)',\r\n fallbackPlacements: 'array',\r\n boundary: '(string|element)',\r\n customClass: '(string|function)',\r\n sanitize: 'boolean',\r\n sanitizeFn: '(null|function)',\r\n allowList: 'object',\r\n popperConfig: '(null|object|function)',\r\n};\r\n\r\nconst AttachmentMap = {\r\n AUTO: 'auto',\r\n TOP: 'top',\r\n RIGHT: isRTL() ? 'left' : 'right',\r\n BOTTOM: 'bottom',\r\n LEFT: isRTL() ? 'right' : 'left',\r\n};\r\n\r\nconst Default = {\r\n animation: true,\r\n template:\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
',\r\n trigger: 'hover focus',\r\n title: '',\r\n delay: 0,\r\n html: false,\r\n selector: false,\r\n placement: 'top',\r\n offset: [0, 0],\r\n container: false,\r\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\r\n boundary: 'clippingParents',\r\n customClass: '',\r\n sanitize: true,\r\n sanitizeFn: null,\r\n allowList: DefaultAllowlist,\r\n popperConfig: null,\r\n};\r\n\r\nconst Event = {\r\n HIDE: `hide${EVENT_KEY}`,\r\n HIDDEN: `hidden${EVENT_KEY}`,\r\n SHOW: `show${EVENT_KEY}`,\r\n SHOWN: `shown${EVENT_KEY}`,\r\n INSERTED: `inserted${EVENT_KEY}`,\r\n CLICK: `click${EVENT_KEY}`,\r\n FOCUSIN: `focusin${EVENT_KEY}`,\r\n FOCUSOUT: `focusout${EVENT_KEY}`,\r\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\r\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\r\n};\r\n\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_MODAL = 'modal';\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\nconst HOVER_STATE_SHOW = 'show';\r\nconst HOVER_STATE_OUT = 'out';\r\n\r\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\r\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;\r\n\r\nconst EVENT_MODAL_HIDE = 'hide.bs.modal';\r\n\r\nconst TRIGGER_HOVER = 'hover';\r\nconst TRIGGER_FOCUS = 'focus';\r\nconst TRIGGER_CLICK = 'click';\r\nconst TRIGGER_MANUAL = 'manual';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Tooltip extends BaseComponent {\r\n constructor(element, config) {\r\n if (typeof Popper === 'undefined') {\r\n throw new TypeError(\"Bootstrap's tooltips require Popper (https://popper.js.org)\");\r\n }\r\n\r\n super(element);\r\n\r\n // private\r\n this._isEnabled = true;\r\n this._timeout = 0;\r\n this._hoverState = '';\r\n this._activeTrigger = {};\r\n this._popper = null;\r\n\r\n // Protected\r\n this._config = this._getConfig(config);\r\n this.tip = null;\r\n\r\n this._setListeners();\r\n }\r\n\r\n // Getters\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n static get Event() {\r\n return Event;\r\n }\r\n\r\n static get DefaultType() {\r\n return DefaultType;\r\n }\r\n\r\n // Public\r\n\r\n enable() {\r\n this._isEnabled = true;\r\n }\r\n\r\n disable() {\r\n this._isEnabled = false;\r\n }\r\n\r\n toggleEnabled() {\r\n this._isEnabled = !this._isEnabled;\r\n }\r\n\r\n toggle(event) {\r\n if (!this._isEnabled) {\r\n return;\r\n }\r\n\r\n if (event) {\r\n const context = this._initializeOnDelegatedTarget(event);\r\n\r\n context._activeTrigger.click = !context._activeTrigger.click;\r\n\r\n if (context._isWithActiveTrigger()) {\r\n context._enter(null, context);\r\n } else {\r\n context._leave(null, context);\r\n }\r\n } else {\r\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\r\n this._leave(null, this);\r\n return;\r\n }\r\n\r\n this._enter(null, this);\r\n }\r\n }\r\n\r\n dispose() {\r\n clearTimeout(this._timeout);\r\n\r\n EventHandler.off(\r\n this._element.closest(SELECTOR_MODAL),\r\n EVENT_MODAL_HIDE,\r\n this._hideModalHandler\r\n );\r\n\r\n if (this.tip) {\r\n this.tip.remove();\r\n }\r\n\r\n this._disposePopper();\r\n super.dispose();\r\n }\r\n\r\n show() {\r\n if (this._element.style.display === 'none') {\r\n throw new Error('Please use show on visible elements');\r\n }\r\n\r\n if (!(this.isWithContent() && this._isEnabled)) {\r\n return;\r\n }\r\n\r\n const showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW);\r\n const shadowRoot = findShadowRoot(this._element);\r\n const isInTheDom =\r\n shadowRoot === null\r\n ? this._element.ownerDocument.documentElement.contains(this._element)\r\n : shadowRoot.contains(this._element);\r\n\r\n if (showEvent.defaultPrevented || !isInTheDom) {\r\n return;\r\n }\r\n\r\n // A trick to recreate a tooltip in case a new title is given by using the NOT documented `data-bs-original-title`\r\n // This will be removed later in favor of a `setContent` method\r\n if (\r\n this.constructor.NAME === 'tooltip' &&\r\n this.tip &&\r\n this.getTitle() !== this.tip.querySelector(SELECTOR_TOOLTIP_INNER).innerHTML\r\n ) {\r\n this._disposePopper();\r\n this.tip.remove();\r\n this.tip = null;\r\n }\r\n\r\n const tip = this.getTipElement();\r\n const tipId = getUID(this.constructor.NAME);\r\n\r\n tip.setAttribute('id', tipId);\r\n this._element.setAttribute('aria-describedby', tipId);\r\n\r\n if (this._config.animation) {\r\n tip.classList.add(CLASS_NAME_FADE);\r\n }\r\n\r\n const placement =\r\n typeof this._config.placement === 'function'\r\n ? this._config.placement.call(this, tip, this._element)\r\n : this._config.placement;\r\n\r\n const attachment = this._getAttachment(placement);\r\n this._addAttachmentClass(attachment);\r\n\r\n const { container } = this._config;\r\n Data.set(tip, this.constructor.DATA_KEY, this);\r\n\r\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\r\n container.append(tip);\r\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED);\r\n }\r\n\r\n if (this._popper) {\r\n this._popper.update();\r\n } else {\r\n this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));\r\n }\r\n\r\n tip.classList.add(CLASS_NAME_SHOW);\r\n\r\n const customClass = this._resolvePossibleFunction(this._config.customClass);\r\n if (customClass) {\r\n tip.classList.add(...customClass.split(' '));\r\n }\r\n\r\n // If this is a touch-enabled device we add extra\r\n // empty mouseover listeners to the body's immediate children;\r\n // only needed because of broken event delegation on iOS\r\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\r\n if ('ontouchstart' in document.documentElement) {\r\n [].concat(...document.body.children).forEach((element) => {\r\n EventHandler.on(element, 'mouseover', noop);\r\n });\r\n }\r\n\r\n const complete = () => {\r\n const prevHoverState = this._hoverState;\r\n\r\n this._hoverState = null;\r\n EventHandler.trigger(this._element, this.constructor.Event.SHOWN);\r\n\r\n if (prevHoverState === HOVER_STATE_OUT) {\r\n this._leave(null, this);\r\n }\r\n };\r\n\r\n const isAnimated = this.tip.classList.contains(CLASS_NAME_FADE);\r\n this._queueCallback(complete, this.tip, isAnimated);\r\n }\r\n\r\n hide() {\r\n if (!this._popper) {\r\n return;\r\n }\r\n\r\n const tip = this.getTipElement();\r\n const complete = () => {\r\n if (this._isWithActiveTrigger()) {\r\n return;\r\n }\r\n\r\n if (this._hoverState !== HOVER_STATE_SHOW) {\r\n tip.remove();\r\n }\r\n\r\n this._cleanTipClass();\r\n this._element.removeAttribute('aria-describedby');\r\n EventHandler.trigger(this._element, this.constructor.Event.HIDDEN);\r\n\r\n this._disposePopper();\r\n };\r\n\r\n const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE);\r\n if (hideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n tip.classList.remove(CLASS_NAME_SHOW);\r\n\r\n // If this is a touch-enabled device we remove the extra\r\n // empty mouseover listeners we added for iOS support\r\n if ('ontouchstart' in document.documentElement) {\r\n []\r\n .concat(...document.body.children)\r\n .forEach((element) => EventHandler.off(element, 'mouseover', noop));\r\n }\r\n\r\n this._activeTrigger[TRIGGER_CLICK] = false;\r\n this._activeTrigger[TRIGGER_FOCUS] = false;\r\n this._activeTrigger[TRIGGER_HOVER] = false;\r\n\r\n const isAnimated = this.tip.classList.contains(CLASS_NAME_FADE);\r\n this._queueCallback(complete, this.tip, isAnimated);\r\n this._hoverState = '';\r\n }\r\n\r\n update() {\r\n if (this._popper !== null) {\r\n this._popper.update();\r\n }\r\n }\r\n\r\n // Protected\r\n\r\n isWithContent() {\r\n return Boolean(this.getTitle());\r\n }\r\n\r\n getTipElement() {\r\n if (this.tip) {\r\n return this.tip;\r\n }\r\n\r\n const element = document.createElement('div');\r\n element.innerHTML = this._config.template;\r\n\r\n const tip = element.children[0];\r\n this.setContent(tip);\r\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);\r\n\r\n this.tip = tip;\r\n return this.tip;\r\n }\r\n\r\n setContent(tip) {\r\n this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TOOLTIP_INNER);\r\n }\r\n\r\n _sanitizeAndSetContent(template, content, selector) {\r\n const templateElement = SelectorEngine.findOne(selector, template);\r\n\r\n if (!content && templateElement) {\r\n templateElement.remove();\r\n return;\r\n }\r\n\r\n // we use append for html objects to maintain js events\r\n this.setElementContent(templateElement, content);\r\n }\r\n\r\n setElementContent(element, content) {\r\n if (element === null) {\r\n return;\r\n }\r\n\r\n if (isElement(content)) {\r\n content = getElement(content);\r\n\r\n // content is a DOM node or a jQuery\r\n if (this._config.html) {\r\n if (content.parentNode !== element) {\r\n element.innerHTML = '';\r\n element.append(content);\r\n }\r\n } else {\r\n element.textContent = content.textContent;\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (this._config.html) {\r\n if (this._config.sanitize) {\r\n content = sanitizeHtml(content, this._config.allowList, this._config.sanitizeFn);\r\n }\r\n\r\n element.innerHTML = content;\r\n } else {\r\n element.textContent = content;\r\n }\r\n }\r\n\r\n getTitle() {\r\n const title = this._element.getAttribute('data-bs-original-title') || this._config.title;\r\n\r\n return this._resolvePossibleFunction(title);\r\n }\r\n\r\n updateAttachment(attachment) {\r\n if (attachment === 'right') {\r\n return 'end';\r\n }\r\n\r\n if (attachment === 'left') {\r\n return 'start';\r\n }\r\n\r\n return attachment;\r\n }\r\n\r\n // Private\r\n\r\n _initializeOnDelegatedTarget(event, context) {\r\n return (\r\n context ||\r\n this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\r\n );\r\n }\r\n\r\n _getOffset() {\r\n const { offset } = this._config;\r\n\r\n if (typeof offset === 'string') {\r\n return offset.split(',').map((val) => Number.parseInt(val, 10));\r\n }\r\n\r\n if (typeof offset === 'function') {\r\n return (popperData) => offset(popperData, this._element);\r\n }\r\n\r\n return offset;\r\n }\r\n\r\n _resolvePossibleFunction(content) {\r\n return typeof content === 'function' ? content.call(this._element) : content;\r\n }\r\n\r\n _getPopperConfig(attachment) {\r\n const defaultBsPopperConfig = {\r\n placement: attachment,\r\n modifiers: [\r\n {\r\n name: 'flip',\r\n options: {\r\n fallbackPlacements: this._config.fallbackPlacements,\r\n },\r\n },\r\n {\r\n name: 'offset',\r\n options: {\r\n offset: this._getOffset(),\r\n },\r\n },\r\n {\r\n name: 'preventOverflow',\r\n options: {\r\n boundary: this._config.boundary,\r\n },\r\n },\r\n {\r\n name: 'arrow',\r\n options: {\r\n element: `.${this.constructor.NAME}-arrow`,\r\n },\r\n },\r\n {\r\n name: 'onChange',\r\n enabled: true,\r\n phase: 'afterWrite',\r\n fn: (data) => this._handlePopperPlacementChange(data),\r\n },\r\n ],\r\n onFirstUpdate: (data) => {\r\n if (data.options.placement !== data.placement) {\r\n this._handlePopperPlacementChange(data);\r\n }\r\n },\r\n };\r\n\r\n return {\r\n ...defaultBsPopperConfig,\r\n ...(typeof this._config.popperConfig === 'function'\r\n ? this._config.popperConfig(defaultBsPopperConfig)\r\n : this._config.popperConfig),\r\n };\r\n }\r\n\r\n _addAttachmentClass(attachment) {\r\n this.getTipElement().classList.add(\r\n `${this._getBasicClassPrefix()}-${this.updateAttachment(attachment)}`\r\n );\r\n }\r\n\r\n _getAttachment(placement) {\r\n return AttachmentMap[placement.toUpperCase()];\r\n }\r\n\r\n _setListeners() {\r\n const triggers = this._config.trigger.split(' ');\r\n\r\n triggers.forEach((trigger) => {\r\n if (trigger === 'click') {\r\n EventHandler.on(\r\n this._element,\r\n this.constructor.Event.CLICK,\r\n this._config.selector,\r\n (event) => this.toggle(event)\r\n );\r\n } else if (trigger !== TRIGGER_MANUAL) {\r\n const eventIn =\r\n trigger === TRIGGER_HOVER\r\n ? this.constructor.Event.MOUSEENTER\r\n : this.constructor.Event.FOCUSIN;\r\n const eventOut =\r\n trigger === TRIGGER_HOVER\r\n ? this.constructor.Event.MOUSELEAVE\r\n : this.constructor.Event.FOCUSOUT;\r\n\r\n EventHandler.on(this._element, eventIn, this._config.selector, (event) =>\r\n this._enter(event)\r\n );\r\n EventHandler.on(this._element, eventOut, this._config.selector, (event) =>\r\n this._leave(event)\r\n );\r\n }\r\n });\r\n\r\n this._hideModalHandler = () => {\r\n if (this._element) {\r\n this.hide();\r\n }\r\n };\r\n\r\n EventHandler.on(\r\n this._element.closest(SELECTOR_MODAL),\r\n EVENT_MODAL_HIDE,\r\n this._hideModalHandler\r\n );\r\n\r\n if (this._config.selector) {\r\n this._config = {\r\n ...this._config,\r\n trigger: 'manual',\r\n selector: '',\r\n };\r\n } else {\r\n this._fixTitle();\r\n }\r\n }\r\n\r\n _fixTitle() {\r\n const title = this._element.getAttribute('title');\r\n const originalTitleType = typeof this._element.getAttribute('data-bs-original-title');\r\n\r\n if (title || originalTitleType !== 'string') {\r\n this._element.setAttribute('data-bs-original-title', title || '');\r\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\r\n this._element.setAttribute('aria-label', title);\r\n }\r\n\r\n this._element.setAttribute('title', '');\r\n }\r\n }\r\n\r\n _enter(event, context) {\r\n context = this._initializeOnDelegatedTarget(event, context);\r\n\r\n if (event) {\r\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\r\n }\r\n\r\n if (\r\n context.getTipElement().classList.contains(CLASS_NAME_SHOW) ||\r\n context._hoverState === HOVER_STATE_SHOW\r\n ) {\r\n context._hoverState = HOVER_STATE_SHOW;\r\n return;\r\n }\r\n\r\n clearTimeout(context._timeout);\r\n\r\n context._hoverState = HOVER_STATE_SHOW;\r\n\r\n if (!context._config.delay || !context._config.delay.show) {\r\n context.show();\r\n return;\r\n }\r\n\r\n context._timeout = setTimeout(() => {\r\n if (context._hoverState === HOVER_STATE_SHOW) {\r\n context.show();\r\n }\r\n }, context._config.delay.show);\r\n }\r\n\r\n _leave(event, context) {\r\n context = this._initializeOnDelegatedTarget(event, context);\r\n\r\n if (event) {\r\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] =\r\n context._element.contains(event.relatedTarget);\r\n }\r\n\r\n if (context._isWithActiveTrigger()) {\r\n return;\r\n }\r\n\r\n clearTimeout(context._timeout);\r\n\r\n context._hoverState = HOVER_STATE_OUT;\r\n\r\n if (!context._config.delay || !context._config.delay.hide) {\r\n context.hide();\r\n return;\r\n }\r\n\r\n context._timeout = setTimeout(() => {\r\n if (context._hoverState === HOVER_STATE_OUT) {\r\n context.hide();\r\n }\r\n }, context._config.delay.hide);\r\n }\r\n\r\n _isWithActiveTrigger() {\r\n for (const trigger in this._activeTrigger) {\r\n if (this._activeTrigger[trigger]) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n _getConfig(config) {\r\n const dataAttributes = Manipulator.getDataAttributes(this._element);\r\n\r\n Object.keys(dataAttributes).forEach((dataAttr) => {\r\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\r\n delete dataAttributes[dataAttr];\r\n }\r\n });\r\n\r\n config = {\r\n ...this.constructor.Default,\r\n ...dataAttributes,\r\n ...(typeof config === 'object' && config ? config : {}),\r\n };\r\n\r\n config.container = config.container === false ? document.body : getElement(config.container);\r\n\r\n if (typeof config.delay === 'number') {\r\n config.delay = {\r\n show: config.delay,\r\n hide: config.delay,\r\n };\r\n }\r\n\r\n if (typeof config.title === 'number') {\r\n config.title = config.title.toString();\r\n }\r\n\r\n if (typeof config.content === 'number') {\r\n config.content = config.content.toString();\r\n }\r\n\r\n typeCheckConfig(NAME, config, this.constructor.DefaultType);\r\n\r\n if (config.sanitize) {\r\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn);\r\n }\r\n\r\n return config;\r\n }\r\n\r\n _getDelegateConfig() {\r\n const config = {};\r\n\r\n for (const key in this._config) {\r\n if (this.constructor.Default[key] !== this._config[key]) {\r\n config[key] = this._config[key];\r\n }\r\n }\r\n\r\n // In the future can be replaced with:\r\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\r\n // `Object.fromEntries(keysWithDifferentValues)`\r\n return config;\r\n }\r\n\r\n _cleanTipClass() {\r\n const tip = this.getTipElement();\r\n const basicClassPrefixRegex = new RegExp(`(^|\\\\s)${this._getBasicClassPrefix()}\\\\S+`, 'g');\r\n const tabClass = tip.getAttribute('class').match(basicClassPrefixRegex);\r\n if (tabClass !== null && tabClass.length > 0) {\r\n tabClass.map((token) => token.trim()).forEach((tClass) => tip.classList.remove(tClass));\r\n }\r\n }\r\n\r\n _getBasicClassPrefix() {\r\n return CLASS_PREFIX;\r\n }\r\n\r\n _handlePopperPlacementChange(popperData) {\r\n const { state } = popperData;\r\n\r\n if (!state) {\r\n return;\r\n }\r\n\r\n this.tip = state.elements.popper;\r\n this._cleanTipClass();\r\n this._addAttachmentClass(this._getAttachment(state.placement));\r\n }\r\n\r\n _disposePopper() {\r\n if (this._popper) {\r\n this._popper.destroy();\r\n this._popper = null;\r\n }\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const data = Tooltip.getOrCreateInstance(this, config);\r\n\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config]();\r\n }\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .Tooltip to jQuery only if jQuery is present\r\n */\r\n\r\ndefineJQueryPlugin(Tooltip);\r\n\r\nexport default Tooltip;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): popover.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport { defineJQueryPlugin } from './util/index';\r\nimport Tooltip from './tooltip';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'popover';\r\nconst DATA_KEY = 'bs.popover';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst CLASS_PREFIX = 'bs-popover';\r\n\r\nconst Default = {\r\n ...Tooltip.Default,\r\n placement: 'right',\r\n offset: [0, 8],\r\n trigger: 'click',\r\n content: '',\r\n template:\r\n '
' +\r\n '
' +\r\n '

' +\r\n '
' +\r\n '
',\r\n};\r\n\r\nconst DefaultType = {\r\n ...Tooltip.DefaultType,\r\n content: '(string|element|function)',\r\n};\r\n\r\nconst Event = {\r\n HIDE: `hide${EVENT_KEY}`,\r\n HIDDEN: `hidden${EVENT_KEY}`,\r\n SHOW: `show${EVENT_KEY}`,\r\n SHOWN: `shown${EVENT_KEY}`,\r\n INSERTED: `inserted${EVENT_KEY}`,\r\n CLICK: `click${EVENT_KEY}`,\r\n FOCUSIN: `focusin${EVENT_KEY}`,\r\n FOCUSOUT: `focusout${EVENT_KEY}`,\r\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\r\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\r\n};\r\n\r\nconst SELECTOR_TITLE = '.popover-header';\r\nconst SELECTOR_CONTENT = '.popover-body';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Popover extends Tooltip {\r\n // Getters\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n static get Event() {\r\n return Event;\r\n }\r\n\r\n static get DefaultType() {\r\n return DefaultType;\r\n }\r\n\r\n // Overrides\r\n\r\n isWithContent() {\r\n return this.getTitle() || this._getContent();\r\n }\r\n\r\n setContent(tip) {\r\n this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TITLE);\r\n this._sanitizeAndSetContent(tip, this._getContent(), SELECTOR_CONTENT);\r\n }\r\n\r\n // Private\r\n\r\n _getContent() {\r\n return this._resolvePossibleFunction(this._config.content);\r\n }\r\n\r\n _getBasicClassPrefix() {\r\n return CLASS_PREFIX;\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const data = Popover.getOrCreateInstance(this, config);\r\n\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config]();\r\n }\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .Popover to jQuery only if jQuery is present\r\n */\r\n\r\ndefineJQueryPlugin(Popover);\r\n\r\nexport default Popover;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): scrollspy.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n defineJQueryPlugin,\r\n getElement,\r\n getSelectorFromElement,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport EventHandler from './dom/event-handler';\r\nimport Manipulator from './dom/manipulator';\r\nimport SelectorEngine from './dom/selector-engine';\r\nimport BaseComponent from './base-component';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'scrollspy';\r\nconst DATA_KEY = 'bs.scrollspy';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst Default = {\r\n offset: 10,\r\n method: 'auto',\r\n target: '',\r\n};\r\n\r\nconst DefaultType = {\r\n offset: 'number',\r\n method: 'string',\r\n target: '(string|element)',\r\n};\r\n\r\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`;\r\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`;\r\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\r\nconst CLASS_NAME_ACTIVE = 'active';\r\n\r\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]';\r\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\r\nconst SELECTOR_NAV_LINKS = '.nav-link';\r\nconst SELECTOR_NAV_ITEMS = '.nav-item';\r\nconst SELECTOR_LIST_ITEMS = '.list-group-item';\r\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}, .${CLASS_NAME_DROPDOWN_ITEM}`;\r\nconst SELECTOR_DROPDOWN = '.dropdown';\r\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\r\n\r\nconst METHOD_OFFSET = 'offset';\r\nconst METHOD_POSITION = 'position';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass ScrollSpy extends BaseComponent {\r\n constructor(element, config) {\r\n super(element);\r\n this._scrollElement = this._element.tagName === 'BODY' ? window : this._element;\r\n this._config = this._getConfig(config);\r\n this._offsets = [];\r\n this._targets = [];\r\n this._activeTarget = null;\r\n this._scrollHeight = 0;\r\n\r\n EventHandler.on(this._scrollElement, EVENT_SCROLL, () => this._process());\r\n\r\n this.refresh();\r\n this._process();\r\n }\r\n\r\n // Getters\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n\r\n refresh() {\r\n const autoMethod =\r\n this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;\r\n\r\n const offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\r\n\r\n const offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;\r\n\r\n this._offsets = [];\r\n this._targets = [];\r\n this._scrollHeight = this._getScrollHeight();\r\n\r\n const targets = SelectorEngine.find(SELECTOR_LINK_ITEMS, this._config.target);\r\n\r\n targets\r\n .map((element) => {\r\n const targetSelector = getSelectorFromElement(element);\r\n const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null;\r\n\r\n if (target) {\r\n const targetBCR = target.getBoundingClientRect();\r\n if (targetBCR.width || targetBCR.height) {\r\n return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector];\r\n }\r\n }\r\n\r\n return null;\r\n })\r\n .filter((item) => item)\r\n .sort((a, b) => a[0] - b[0])\r\n .forEach((item) => {\r\n this._offsets.push(item[0]);\r\n this._targets.push(item[1]);\r\n });\r\n }\r\n\r\n dispose() {\r\n EventHandler.off(this._scrollElement, EVENT_KEY);\r\n super.dispose();\r\n }\r\n\r\n // Private\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...Manipulator.getDataAttributes(this._element),\r\n ...(typeof config === 'object' && config ? config : {}),\r\n };\r\n\r\n config.target = getElement(config.target) || document.documentElement;\r\n\r\n typeCheckConfig(NAME, config, DefaultType);\r\n\r\n return config;\r\n }\r\n\r\n _getScrollTop() {\r\n return this._scrollElement === window\r\n ? this._scrollElement.pageYOffset\r\n : this._scrollElement.scrollTop;\r\n }\r\n\r\n _getScrollHeight() {\r\n return (\r\n this._scrollElement.scrollHeight ||\r\n Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)\r\n );\r\n }\r\n\r\n _getOffsetHeight() {\r\n return this._scrollElement === window\r\n ? window.innerHeight\r\n : this._scrollElement.getBoundingClientRect().height;\r\n }\r\n\r\n _process() {\r\n const scrollTop = this._getScrollTop() + this._config.offset;\r\n const scrollHeight = this._getScrollHeight();\r\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\r\n\r\n if (this._scrollHeight !== scrollHeight) {\r\n this.refresh();\r\n }\r\n\r\n if (scrollTop >= maxScroll) {\r\n const target = this._targets[this._targets.length - 1];\r\n\r\n if (this._activeTarget !== target) {\r\n this._activate(target);\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\r\n this._activeTarget = null;\r\n this._clear();\r\n return;\r\n }\r\n\r\n for (let i = this._offsets.length; i--; ) {\r\n const isActiveTarget =\r\n this._activeTarget !== this._targets[i] &&\r\n scrollTop >= this._offsets[i] &&\r\n (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\r\n\r\n if (isActiveTarget) {\r\n this._activate(this._targets[i]);\r\n }\r\n }\r\n }\r\n\r\n _activate(target) {\r\n this._activeTarget = target;\r\n\r\n this._clear();\r\n\r\n const queries = SELECTOR_LINK_ITEMS.split(',').map(\r\n (selector) => `${selector}[data-bs-target=\"${target}\"],${selector}[href=\"${target}\"]`\r\n );\r\n\r\n const link = SelectorEngine.findOne(queries.join(','), this._config.target);\r\n\r\n link.classList.add(CLASS_NAME_ACTIVE);\r\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\r\n SelectorEngine.findOne(\r\n SELECTOR_DROPDOWN_TOGGLE,\r\n link.closest(SELECTOR_DROPDOWN)\r\n ).classList.add(CLASS_NAME_ACTIVE);\r\n } else {\r\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP).forEach((listGroup) => {\r\n // Set triggered links parents as active\r\n // With both