{"version":3,"file":"static/js/main.13f64bac.js","mappings":"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","sources":["AppContext.js","components/FallbackSpinner.jsx","components/Home.jsx","../node_modules/@headlessui/react/dist/utils/match.js","../node_modules/@headlessui/react/dist/utils/class-names.js","../node_modules/@headlessui/react/dist/utils/render.js","../node_modules/@headlessui/react/dist/utils/env.js","../node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js","../node_modules/@headlessui/react/dist/hooks/use-event.js","../node_modules/@headlessui/react/dist/hooks/use-id.js","../node_modules/@headlessui/react/dist/hooks/use-latest-value.js","../node_modules/@headlessui/react/dist/hooks/use-sync-refs.js","../node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js","../node_modules/@headlessui/react/dist/components/keyboard.js","../node_modules/@headlessui/react/dist/utils/bugs.js","../node_modules/@headlessui/react/dist/internal/open-closed.js","../node_modules/@headlessui/react/dist/utils/start-transition.js","../node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js","../node_modules/@headlessui/react/dist/utils/owner.js","../node_modules/@headlessui/react/dist/components/disclosure/disclosure.js","../node_modules/@heroicons/react/24/outline/esm/XMarkIcon.js","../node_modules/@heroicons/react/24/outline/esm/Bars3Icon.js","components/NavBar.jsx","../node_modules/react-social-icons/dist/component.js","../node_modules/react-social-icons/dist/icons/bandsintown.js","../node_modules/react-social-icons/dist/icons/behance.js","../node_modules/react-social-icons/dist/icons/clubhouse.js","../node_modules/react-social-icons/dist/icons/codepen.js","../node_modules/react-social-icons/dist/icons/developer.mozilla.js","../node_modules/react-social-icons/dist/icons/discord.js","../node_modules/react-social-icons/dist/icons/dribbble.js","../node_modules/react-social-icons/dist/icons/dropbox.js","../node_modules/react-social-icons/dist/icons/email.js","../node_modules/react-social-icons/dist/icons/facebook.js","../node_modules/react-social-icons/dist/icons/fivehundredpix.js","../node_modules/react-social-icons/dist/icons/flickr.js","../node_modules/react-social-icons/dist/icons/foursquare.js","../node_modules/react-social-icons/dist/icons/github.js","../node_modules/react-social-icons/dist/icons/gitlab.js","../node_modules/react-social-icons/dist/icons/google.js","../node_modules/react-social-icons/dist/icons/google_play.js","../node_modules/react-social-icons/dist/icons/groupme.js","../node_modules/react-social-icons/dist/icons/instagram.js","../node_modules/react-social-icons/dist/icons/itch.io.js","../node_modules/react-social-icons/dist/icons/itunes.js","../node_modules/react-social-icons/dist/icons/leetcode.js","../node_modules/react-social-icons/dist/icons/linkedin.js","../node_modules/react-social-icons/dist/icons/linktree.js","../node_modules/react-social-icons/dist/icons/mailto.js","../node_modules/react-social-icons/dist/icons/mastodon.js","../node_modules/react-social-icons/dist/icons/matrix.js","../node_modules/react-social-icons/dist/icons/medium.js","../node_modules/react-social-icons/dist/icons/meetup.js","../node_modules/react-social-icons/dist/icons/opensea.js","../node_modules/react-social-icons/dist/icons/pinterest.js","../node_modules/react-social-icons/dist/icons/pixiv.js","../node_modules/react-social-icons/dist/icons/ravelry.js","../node_modules/react-social-icons/dist/icons/rdio.js","../node_modules/react-social-icons/dist/icons/reddit.js","../node_modules/react-social-icons/dist/icons/rss.js","../node_modules/react-social-icons/dist/icons/sharethis.js","../node_modules/react-social-icons/dist/icons/slack.js","../node_modules/react-social-icons/dist/icons/smugmug.js","../node_modules/react-social-icons/dist/icons/snapchat.js","../node_modules/react-social-icons/dist/icons/soundcloud.js","../node_modules/react-social-icons/dist/icons/spotify.js","../node_modules/react-social-icons/dist/icons/squarespace.js","../node_modules/react-social-icons/dist/icons/stackoverflow.js","../node_modules/react-social-icons/dist/icons/t.me.js","../node_modules/react-social-icons/dist/icons/telegram.js","../node_modules/react-social-icons/dist/icons/tiktok.js","../node_modules/react-social-icons/dist/icons/tumblr.js","../node_modules/react-social-icons/dist/icons/twitch.js","../node_modules/react-social-icons/dist/icons/twitter.js","../node_modules/react-social-icons/dist/icons/upwork.js","../node_modules/react-social-icons/dist/icons/vevo.js","../node_modules/react-social-icons/dist/icons/vimeo.js","../node_modules/react-social-icons/dist/icons/vine.js","../node_modules/react-social-icons/dist/icons/vk.js","../node_modules/react-social-icons/dist/icons/vsco.js","../node_modules/react-social-icons/dist/icons/wechat.js","../node_modules/react-social-icons/dist/icons/whatsapp.js","../node_modules/react-social-icons/dist/icons/x.js","../node_modules/react-social-icons/dist/icons/yelp.js","../node_modules/react-social-icons/dist/icons/youtube.js","components/Social.jsx","components/ThemeToggler.jsx","constants/endpoints.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/fast-deep-equal/es6/react.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/parse-unit/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-awesome-reveal/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-awesome-reveal/node_modules/react-is/index.js","../node_modules/react-dark-mode-toggle/dist/index.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-lottie-player/node_modules/prop-types/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/prop-types/node_modules/react-is/cjs/react-is.development.js","../node_modules/react-lottie-player/node_modules/prop-types/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/lib/has.js","../node_modules/react-lottie-player/node_modules/prop-types/checkPropTypes.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/propTypes.js","../node_modules/react-lottie-player/src/makeLottiePlayer.js","../node_modules/react-lottie-player/src/LottiePlayer.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/rfdc/default.js","../node_modules/rfdc/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallowequal/index.js","../node_modules/tslib/tslib.es6.mjs","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Prefixer.js","../node_modules/stylis/src/Middleware.js","../node_modules/stylis/src/Parser.js","../node_modules/styled-components/src/constants.ts","../node_modules/styled-components/src/utils/empties.ts","../node_modules/styled-components/src/utils/checkDynamicCreation.ts","../node_modules/styled-components/src/utils/determineTheme.ts","../node_modules/styled-components/src/utils/domElements.ts","../node_modules/styled-components/src/utils/escape.ts","../node_modules/styled-components/src/utils/generateAlphabeticName.ts","../node_modules/styled-components/src/utils/hash.ts","../node_modules/styled-components/src/utils/generateComponentId.ts","../node_modules/styled-components/src/utils/isTag.ts","../node_modules/styled-components/src/utils/hoist.ts","../node_modules/styled-components/src/utils/isFunction.ts","../node_modules/styled-components/src/utils/isStyledComponent.ts","../node_modules/styled-components/src/utils/joinStrings.ts","../node_modules/styled-components/src/utils/isPlainObject.ts","../node_modules/styled-components/src/utils/mixinDeep.ts","../node_modules/styled-components/src/utils/setToString.ts","../node_modules/styled-components/src/utils/error.ts","../node_modules/styled-components/src/sheet/GroupedTag.ts","../node_modules/styled-components/src/sheet/GroupIDAllocator.ts","../node_modules/styled-components/src/sheet/Rehydration.ts","../node_modules/styled-components/src/utils/nonce.ts","../node_modules/styled-components/src/sheet/dom.ts","../node_modules/styled-components/src/sheet/Tag.ts","../node_modules/styled-components/src/sheet/Sheet.ts","../node_modules/styled-components/src/utils/stylis.ts","../node_modules/styled-components/src/models/StyleSheetManager.tsx","../node_modules/styled-components/src/models/Keyframes.ts","../node_modules/styled-components/src/utils/hyphenateStyleName.ts","../node_modules/styled-components/src/utils/flatten.ts","../node_modules/styled-components/src/utils/addUnitIfNeeded.ts","../node_modules/styled-components/src/utils/isStatelessFunction.ts","../node_modules/styled-components/src/utils/isStaticRules.ts","../node_modules/styled-components/src/models/ComponentStyle.ts","../node_modules/styled-components/src/models/ThemeProvider.tsx","../node_modules/styled-components/src/models/StyledComponent.ts","../node_modules/styled-components/src/utils/generateDisplayName.ts","../node_modules/styled-components/src/utils/getComponentName.ts","../node_modules/styled-components/src/utils/interleave.ts","../node_modules/styled-components/src/constructors/css.ts","../node_modules/styled-components/src/constructors/constructWithOptions.ts","../node_modules/styled-components/src/constructors/styled.tsx","../node_modules/styled-components/src/models/GlobalStyle.ts","../node_modules/styled-components/src/models/ServerStyleSheet.tsx","../node_modules/styled-components/src/base.ts","../Typewriter/webpack/universalModuleDefinition","../Typewriter/src/utils/does-string-contain-html-tag.js","../Typewriter/src/utils/get-random-integer.js","../Typewriter/src/core/constants.js","../Typewriter/src/core/Typewriter.js","../Typewriter/src/utils/get-dom-element-from-string.js","../Typewriter/src/utils/add-styles.js","../Typewriter/node_modules/lodash/_DataView.js","../Typewriter/node_modules/lodash/_Hash.js","../Typewriter/node_modules/lodash/_ListCache.js","../Typewriter/node_modules/lodash/_Map.js","../Typewriter/node_modules/lodash/_MapCache.js","../Typewriter/node_modules/lodash/_Promise.js","../Typewriter/node_modules/lodash/_Set.js","../Typewriter/node_modules/lodash/_SetCache.js","../Typewriter/node_modules/lodash/_Stack.js","../Typewriter/node_modules/lodash/_Symbol.js","../Typewriter/node_modules/lodash/_Uint8Array.js","../Typewriter/node_modules/lodash/_WeakMap.js","../Typewriter/node_modules/lodash/_arrayFilter.js","../Typewriter/node_modules/lodash/_arrayLikeKeys.js","../Typewriter/node_modules/lodash/_arrayPush.js","../Typewriter/node_modules/lodash/_arraySome.js","../Typewriter/node_modules/lodash/_assocIndexOf.js","../Typewriter/node_modules/lodash/_baseGetAllKeys.js","../Typewriter/node_modules/lodash/_baseGetTag.js","../Typewriter/node_modules/lodash/_baseIsArguments.js","../Typewriter/node_modules/lodash/_baseIsEqual.js","../Typewriter/node_modules/lodash/_baseIsEqualDeep.js","../Typewriter/node_modules/lodash/_baseIsNative.js","../Typewriter/node_modules/lodash/_baseIsTypedArray.js","../Typewriter/node_modules/lodash/_baseKeys.js","../Typewriter/node_modules/lodash/_baseTimes.js","../Typewriter/node_modules/lodash/_baseUnary.js","../Typewriter/node_modules/lodash/_cacheHas.js","../Typewriter/node_modules/lodash/_coreJsData.js","../Typewriter/node_modules/lodash/_equalArrays.js","../Typewriter/node_modules/lodash/_equalByTag.js","../Typewriter/node_modules/lodash/_equalObjects.js","../Typewriter/node_modules/lodash/_freeGlobal.js","../Typewriter/node_modules/lodash/_getAllKeys.js","../Typewriter/node_modules/lodash/_getMapData.js","../Typewriter/node_modules/lodash/_getNative.js","../Typewriter/node_modules/lodash/_getRawTag.js","../Typewriter/node_modules/lodash/_getSymbols.js","../Typewriter/node_modules/lodash/_getTag.js","../Typewriter/node_modules/lodash/_getValue.js","../Typewriter/node_modules/lodash/_hashClear.js","../Typewriter/node_modules/lodash/_hashDelete.js","../Typewriter/node_modules/lodash/_hashGet.js","../Typewriter/node_modules/lodash/_hashHas.js","../Typewriter/node_modules/lodash/_hashSet.js","../Typewriter/node_modules/lodash/_isIndex.js","../Typewriter/node_modules/lodash/_isKeyable.js","../Typewriter/node_modules/lodash/_isMasked.js","../Typewriter/node_modules/lodash/_isPrototype.js","../Typewriter/node_modules/lodash/_listCacheClear.js","../Typewriter/node_modules/lodash/_listCacheDelete.js","../Typewriter/node_modules/lodash/_listCacheGet.js","../Typewriter/node_modules/lodash/_listCacheHas.js","../Typewriter/node_modules/lodash/_listCacheSet.js","../Typewriter/node_modules/lodash/_mapCacheClear.js","../Typewriter/node_modules/lodash/_mapCacheDelete.js","../Typewriter/node_modules/lodash/_mapCacheGet.js","../Typewriter/node_modules/lodash/_mapCacheHas.js","../Typewriter/node_modules/lodash/_mapCacheSet.js","../Typewriter/node_modules/lodash/_mapToArray.js","../Typewriter/node_modules/lodash/_nativeCreate.js","../Typewriter/node_modules/lodash/_nativeKeys.js","../Typewriter/node_modules/lodash/_nodeUtil.js","../Typewriter/node_modules/lodash/_objectToString.js","../Typewriter/node_modules/lodash/_overArg.js","../Typewriter/node_modules/lodash/_root.js","../Typewriter/node_modules/lodash/_setCacheAdd.js","../Typewriter/node_modules/lodash/_setCacheHas.js","../Typewriter/node_modules/lodash/_setToArray.js","../Typewriter/node_modules/lodash/_stackClear.js","../Typewriter/node_modules/lodash/_stackDelete.js","../Typewriter/node_modules/lodash/_stackGet.js","../Typewriter/node_modules/lodash/_stackHas.js","../Typewriter/node_modules/lodash/_stackSet.js","../Typewriter/node_modules/lodash/_toSource.js","../Typewriter/node_modules/lodash/eq.js","../Typewriter/node_modules/lodash/isArguments.js","../Typewriter/node_modules/lodash/isArray.js","../Typewriter/node_modules/lodash/isArrayLike.js","../Typewriter/node_modules/lodash/isBuffer.js","../Typewriter/node_modules/lodash/isEqual.js","../Typewriter/node_modules/lodash/isFunction.js","../Typewriter/node_modules/lodash/isLength.js","../Typewriter/node_modules/lodash/isObject.js","../Typewriter/node_modules/lodash/isObjectLike.js","../Typewriter/node_modules/lodash/isTypedArray.js","../Typewriter/node_modules/lodash/keys.js","../Typewriter/node_modules/lodash/stubArray.js","../Typewriter/node_modules/lodash/stubFalse.js","../Typewriter/node_modules/performance-now/lib/performance-now.js","../Typewriter/node_modules/raf/index.js","../Typewriter/external umd \"react\"","../Typewriter/webpack/bootstrap","../Typewriter/webpack/runtime/compat get default export","../Typewriter/webpack/runtime/define property getters","../Typewriter/webpack/runtime/global","../Typewriter/webpack/runtime/hasOwnProperty shorthand","../Typewriter/webpack/runtime/node module decorator","../Typewriter/src/react/Typewriter.js","components|lazy|/^/.*$/|groupOptions: {}|namespace object","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/@emotion/cache/node_modules/stylis/src/Utility.js","../node_modules/@emotion/cache/node_modules/stylis/src/Tokenizer.js","../node_modules/@emotion/cache/node_modules/stylis/src/Enum.js","../node_modules/@emotion/cache/node_modules/stylis/src/Serializer.js","../node_modules/@emotion/cache/node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/@emotion/cache/node_modules/stylis/src/Middleware.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-c39617d8.browser.esm.js","../node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/src/observe.ts","../node_modules/src/InView.tsx","../node_modules/src/useInView.tsx","../node_modules/react-awesome-reveal/src/animations/fading_entrances/fadeIn.ts","../node_modules/react-awesome-reveal/src/animations/attention_seekers/bounce.ts","../node_modules/react-awesome-reveal/src/animations/attention_seekers/flash.ts","../node_modules/react-awesome-reveal/src/animations/attention_seekers/headShake.ts","../node_modules/react-awesome-reveal/src/animations/attention_seekers/heartBeat.ts","../node_modules/react-awesome-reveal/src/animations/attention_seekers/jello.ts","../node_modules/react-awesome-reveal/src/animations/attention_seekers/pulse.ts","../node_modules/react-awesome-reveal/src/animations/attention_seekers/rubberBand.ts","../node_modules/react-awesome-reveal/src/animations/attention_seekers/shake.ts","../node_modules/react-awesome-reveal/src/animations/attention_seekers/shakeX.ts","../node_modules/react-awesome-reveal/src/animations/attention_seekers/shakeY.ts","../node_modules/react-awesome-reveal/src/animations/attention_seekers/swing.ts","../node_modules/react-awesome-reveal/src/animations/attention_seekers/tada.ts","../node_modules/react-awesome-reveal/src/animations/attention_seekers/wobble.ts","../node_modules/react-awesome-reveal/src/animations/fading_entrances/fadeInBottomLeft.ts","../node_modules/react-awesome-reveal/src/animations/fading_entrances/fadeInBottomRight.ts","../node_modules/react-awesome-reveal/src/animations/fading_entrances/fadeInDown.ts","../node_modules/react-awesome-reveal/src/animations/fading_entrances/fadeInDownBig.ts","../node_modules/react-awesome-reveal/src/animations/fading_entrances/fadeInLeft.ts","../node_modules/react-awesome-reveal/src/animations/fading_entrances/fadeInLeftBig.ts","../node_modules/react-awesome-reveal/src/animations/fading_entrances/fadeInRight.ts","../node_modules/react-awesome-reveal/src/animations/fading_entrances/fadeInRightBig.ts","../node_modules/react-awesome-reveal/src/animations/fading_entrances/fadeInTopLeft.ts","../node_modules/react-awesome-reveal/src/animations/fading_entrances/fadeInTopRight.ts","../node_modules/react-awesome-reveal/src/animations/fading_entrances/fadeInUp.ts","../node_modules/react-awesome-reveal/src/animations/fading_entrances/fadeInUpBig.ts","../node_modules/react-awesome-reveal/src/utils/patterns.ts","../node_modules/react-awesome-reveal/src/Reveal.tsx","../node_modules/react-awesome-reveal/src/utils/guards.ts","../node_modules/react-awesome-reveal/src/utils/animations.ts","../node_modules/react-awesome-reveal/src/animations/bouncing_entrances/bounceIn.ts","../node_modules/react-awesome-reveal/src/animations/bouncing_entrances/bounceInDown.ts","../node_modules/react-awesome-reveal/src/animations/bouncing_entrances/bounceInLeft.ts","../node_modules/react-awesome-reveal/src/animations/bouncing_entrances/bounceInRight.ts","../node_modules/react-awesome-reveal/src/animations/bouncing_entrances/bounceInUp.ts","../node_modules/react-awesome-reveal/src/animations/bouncing_exits/bounceOut.ts","../node_modules/react-awesome-reveal/src/animations/bouncing_exits/bounceOutDown.ts","../node_modules/react-awesome-reveal/src/animations/bouncing_exits/bounceOutLeft.ts","../node_modules/react-awesome-reveal/src/animations/bouncing_exits/bounceOutRight.ts","../node_modules/react-awesome-reveal/src/animations/bouncing_exits/bounceOutUp.ts","../node_modules/react-awesome-reveal/src/components/Bounce.tsx","../node_modules/react-awesome-reveal/src/animations/fading_exits/fadeOut.ts","../node_modules/react-awesome-reveal/src/animations/fading_exits/fadeOutBottomLeft.ts","../node_modules/react-awesome-reveal/src/animations/fading_exits/fadeOutBottomRight.ts","../node_modules/react-awesome-reveal/src/animations/fading_exits/fadeOutDown.ts","../node_modules/react-awesome-reveal/src/animations/fading_exits/fadeOutDownBig.ts","../node_modules/react-awesome-reveal/src/animations/fading_exits/fadeOutLeft.ts","../node_modules/react-awesome-reveal/src/animations/fading_exits/fadeOutLeftBig.ts","../node_modules/react-awesome-reveal/src/animations/fading_exits/fadeOutRight.ts","../node_modules/react-awesome-reveal/src/animations/fading_exits/fadeOutRightBig.ts","../node_modules/react-awesome-reveal/src/animations/fading_exits/fadeOutTopLeft.ts","../node_modules/react-awesome-reveal/src/animations/fading_exits/fadeOutTopRight.ts","../node_modules/react-awesome-reveal/src/animations/fading_exits/fadeOutUp.ts","../node_modules/react-awesome-reveal/src/animations/fading_exits/fadeOutUpBig.ts","../node_modules/react-awesome-reveal/src/components/Fade.tsx","../node_modules/react-awesome-reveal/src/animations/flippers/flip.ts","../node_modules/react-awesome-reveal/src/animations/flippers/flipInX.ts","../node_modules/react-awesome-reveal/src/animations/flippers/flipInY.ts","../node_modules/react-awesome-reveal/src/animations/flippers/flipOutX.ts","../node_modules/react-awesome-reveal/src/animations/flippers/flipOutY.ts","../node_modules/react-awesome-reveal/src/animations/specials/hinge.ts","../node_modules/react-awesome-reveal/src/animations/specials/jackInTheBox.ts","../node_modules/react-awesome-reveal/src/animations/specials/rollIn.ts","../node_modules/react-awesome-reveal/src/animations/specials/rollOut.ts","../node_modules/react-awesome-reveal/src/animations/rotating_entrances/rotateIn.ts","../node_modules/react-awesome-reveal/src/animations/rotating_entrances/rotateInDownLeft.ts","../node_modules/react-awesome-reveal/src/animations/rotating_entrances/rotateInDownRight.ts","../node_modules/react-awesome-reveal/src/animations/rotating_entrances/rotateInUpLeft.ts","../node_modules/react-awesome-reveal/src/animations/rotating_entrances/rotateInUpRight.ts","../node_modules/react-awesome-reveal/src/animations/rotating_exits/rotateOut.ts","../node_modules/react-awesome-reveal/src/animations/rotating_exits/rotateOutDownLeft.ts","../node_modules/react-awesome-reveal/src/animations/rotating_exits/rotateOutDownRight.ts","../node_modules/react-awesome-reveal/src/animations/rotating_exits/rotateOutUpLeft.ts","../node_modules/react-awesome-reveal/src/animations/rotating_exits/rotateOutUpRight.ts","../node_modules/react-awesome-reveal/src/animations/sliding_entrances/slideInDown.ts","../node_modules/react-awesome-reveal/src/animations/sliding_entrances/slideInLeft.ts","../node_modules/react-awesome-reveal/src/animations/sliding_entrances/slideInRight.ts","../node_modules/react-awesome-reveal/src/animations/sliding_entrances/slideInUp.ts","../node_modules/react-awesome-reveal/src/animations/sliding_exits/slideOutDown.ts","../node_modules/react-awesome-reveal/src/animations/sliding_exits/slideOutLeft.ts","../node_modules/react-awesome-reveal/src/animations/sliding_exits/slideOutRight.ts","../node_modules/react-awesome-reveal/src/animations/sliding_exits/slideOutUp.ts","../node_modules/react-awesome-reveal/src/animations/zooming_entrances/zoomIn.ts","../node_modules/react-awesome-reveal/src/animations/zooming_entrances/zoomInDown.ts","../node_modules/react-awesome-reveal/src/animations/zooming_entrances/zoomInLeft.ts","../node_modules/react-awesome-reveal/src/animations/zooming_entrances/zoomInRight.ts","../node_modules/react-awesome-reveal/src/animations/zooming_entrances/zoomInUp.ts","../node_modules/react-awesome-reveal/src/animations/zooming_exits/zoomOut.ts","../node_modules/react-awesome-reveal/src/animations/zooming_exits/zoomOutDown.ts","../node_modules/react-awesome-reveal/src/animations/zooming_exits/zoomOutLeft.ts","../node_modules/react-awesome-reveal/src/animations/zooming_exits/zoomOutRight.ts","../node_modules/react-awesome-reveal/src/animations/zooming_exits/zoomOutUp.ts","../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/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","MainApp.jsx","App.jsx","reportWebVitals.js","index.jsx"],"sourcesContent":["import React from 'react';\n\nconst AppContext = React.createContext();\n\nexport default AppContext;\n","import React from 'react';\n\nfunction FallbackSpinner() {\n return (\n \n \n \n \n );\n}\n\nexport default FallbackSpinner;\n","import React, { useState, useEffect } from 'react';\nimport Typewriter from 'typewriter-effect';\nimport { Fade } from \"react-awesome-reveal\";\nimport endpoints from '../constants/endpoints';\nimport Social from './Social';\nimport FallbackSpinner from './FallbackSpinner';\nconst home = require(\"../json-data/home.json\");\n\nfunction Home() {\n const [data, setData] = useState(home);\n\n return data ? (\n\n
\n \n

{data?.name}

\n
\n

I'm 

\n \n
\n \n
\n
\n ) : ;\n}\n\nexport default Home;\n","function u(r,n,...a){if(r in n){let e=n[r];return typeof e==\"function\"?e(...a):e}let t=new Error(`Tried to handle \"${r}\" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(e=>`\"${e}\"`).join(\", \")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,u),t}export{u as match};\n","function t(...r){return Array.from(new Set(r.flatMap(n=>typeof n==\"string\"?n.split(\" \"):[]))).filter(Boolean).join(\" \")}export{t as classNames};\n","import{Fragment as T,cloneElement as x,createElement as E,forwardRef as b,isValidElement as h}from\"react\";import{classNames as F}from'./class-names.js';import{match as P}from'./match.js';var S=(a=>(a[a.None=0]=\"None\",a[a.RenderStrategy=1]=\"RenderStrategy\",a[a.Static=2]=\"Static\",a))(S||{}),j=(e=>(e[e.Unmount=0]=\"Unmount\",e[e.Hidden=1]=\"Hidden\",e))(j||{});function X({ourProps:r,theirProps:t,slot:e,defaultTag:a,features:s,visible:n=!0,name:f}){let o=N(t,r);if(n)return c(o,e,a,f);let u=s!=null?s:0;if(u&2){let{static:l=!1,...p}=o;if(l)return c(p,e,a,f)}if(u&1){let{unmount:l=!0,...p}=o;return P(l?0:1,{[0](){return null},[1](){return c({...p,hidden:!0,style:{display:\"none\"}},e,a,f)}})}return c(o,e,a,f)}function c(r,t={},e,a){let{as:s=e,children:n,refName:f=\"ref\",...o}=g(r,[\"unmount\",\"static\"]),u=r.ref!==void 0?{[f]:r.ref}:{},l=typeof n==\"function\"?n(t):n;\"className\"in o&&o.className&&typeof o.className==\"function\"&&(o.className=o.className(t));let p={};if(t){let i=!1,m=[];for(let[y,d]of Object.entries(t))typeof d==\"boolean\"&&(i=!0),d===!0&&m.push(y);i&&(p[\"data-headlessui-state\"]=m.join(\" \"))}if(s===T&&Object.keys(R(o)).length>0){if(!h(l)||Array.isArray(l)&&l.length>1)throw new Error(['Passing props on \"Fragment\"!',\"\",`The current component <${a} /> is rendering a \"Fragment\".`,\"However we need to passthrough the following props:\",Object.keys(o).map(d=>` - ${d}`).join(`\n`),\"\",\"You can apply a few solutions:\",['Add an `as=\"...\"` prop, to ensure that we render an actual element instead of a \"Fragment\".',\"Render a single element as the child so that we can forward the props onto that element.\"].map(d=>` - ${d}`).join(`\n`)].join(`\n`));let i=l.props,m=typeof(i==null?void 0:i.className)==\"function\"?(...d)=>F(i==null?void 0:i.className(...d),o.className):F(i==null?void 0:i.className,o.className),y=m?{className:m}:{};return x(l,Object.assign({},N(l.props,R(g(o,[\"ref\"]))),p,u,w(l.ref,u.ref),y))}return E(s,Object.assign({},g(o,[\"ref\"]),s!==T&&u,s!==T&&p),l)}function w(...r){return{ref:r.every(t=>t==null)?void 0:t=>{for(let e of r)e!=null&&(typeof e==\"function\"?e(t):e.current=t)}}}function N(...r){var a;if(r.length===0)return{};if(r.length===1)return r[0];let t={},e={};for(let s of r)for(let n in s)n.startsWith(\"on\")&&typeof s[n]==\"function\"?((a=e[n])!=null||(e[n]=[]),e[n].push(s[n])):t[n]=s[n];if(t.disabled||t[\"aria-disabled\"])return Object.assign(t,Object.fromEntries(Object.keys(e).map(s=>[s,void 0])));for(let s in e)Object.assign(t,{[s](n,...f){let o=e[s];for(let u of o){if((n instanceof Event||(n==null?void 0:n.nativeEvent)instanceof Event)&&n.defaultPrevented)return;u(n,...f)}}});return t}function D(r){var t;return Object.assign(b(r),{displayName:(t=r.displayName)!=null?t:r.name})}function R(r){let t=Object.assign({},r);for(let e in t)t[e]===void 0&&delete t[e];return t}function g(r,t=[]){let e=Object.assign({},r);for(let a of t)a in e&&delete e[a];return e}export{S as Features,j as RenderStrategy,R as compact,D as forwardRefWithAs,X as render};\n","var i=Object.defineProperty;var d=(t,e,n)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var r=(t,e,n)=>(d(t,typeof e!=\"symbol\"?e+\"\":e,n),n);class o{constructor(){r(this,\"current\",this.detect());r(this,\"handoffState\",\"pending\");r(this,\"currentId\",0)}set(e){this.current!==e&&(this.handoffState=\"pending\",this.currentId=0,this.current=e)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current===\"server\"}get isClient(){return this.current===\"client\"}detect(){return typeof window==\"undefined\"||typeof document==\"undefined\"?\"server\":\"client\"}handoff(){this.handoffState===\"pending\"&&(this.handoffState=\"complete\")}get isHandoffComplete(){return this.handoffState===\"complete\"}}let s=new o;export{s as env};\n","import{useLayoutEffect as t,useEffect as c}from\"react\";import{env as i}from'../utils/env.js';let l=(e,f)=>{i.isServer?c(e,f):t(e,f)};export{l as useIsoMorphicEffect};\n","import a from\"react\";import{useLatestValue as n}from'./use-latest-value.js';let o=function(t){let e=n(t);return a.useCallback((...r)=>e.current(...r),[e])};export{o as useEvent};\n","var o;import t from\"react\";import{useIsoMorphicEffect as d}from'./use-iso-morphic-effect.js';import{useServerHandoffComplete as f}from'./use-server-handoff-complete.js';import{env as r}from'../utils/env.js';let I=(o=t.useId)!=null?o:function(){let n=f(),[e,u]=t.useState(n?()=>r.nextId():null);return d(()=>{e===null&&u(r.nextId())},[e]),e!=null?\"\"+e:void 0};export{I as useId};\n","import{useRef as t}from\"react\";import{useIsoMorphicEffect as o}from'./use-iso-morphic-effect.js';function s(e){let r=t(e);return o(()=>{r.current=e},[e]),r}export{s as useLatestValue};\n","import{useRef as l,useEffect as i}from\"react\";import{useEvent as r}from'./use-event.js';let u=Symbol();function T(t,n=!0){return Object.assign(t,{[u]:n})}function y(...t){let n=l(t);i(()=>{n.current=t},[t]);let c=r(e=>{for(let o of n.current)o!=null&&(typeof o==\"function\"?o(e):o.current=e)});return t.every(e=>e==null||(e==null?void 0:e[u]))?void 0:c}export{T as optionalRef,y as useSyncRefs};\n","import*as t from\"react\";import{env as f}from'../utils/env.js';function s(){let r=typeof document==\"undefined\";return\"useSyncExternalStore\"in t?(o=>o.useSyncExternalStore)(t)(()=>()=>{},()=>!1,()=>!r):!1}function l(){let r=s(),[e,n]=t.useState(f.isHandoffComplete);return e&&f.isHandoffComplete===!1&&n(!1),t.useEffect(()=>{e!==!0&&n(!0)},[e]),t.useEffect(()=>f.handoff(),[]),r?!1:e}export{l as useServerHandoffComplete};\n","var o=(r=>(r.Space=\" \",r.Enter=\"Enter\",r.Escape=\"Escape\",r.Backspace=\"Backspace\",r.Delete=\"Delete\",r.ArrowLeft=\"ArrowLeft\",r.ArrowUp=\"ArrowUp\",r.ArrowRight=\"ArrowRight\",r.ArrowDown=\"ArrowDown\",r.Home=\"Home\",r.End=\"End\",r.PageUp=\"PageUp\",r.PageDown=\"PageDown\",r.Tab=\"Tab\",r))(o||{});export{o as Keys};\n","function r(n){let e=n.parentElement,l=null;for(;e&&!(e instanceof HTMLFieldSetElement);)e instanceof HTMLLegendElement&&(l=e),e=e.parentElement;let t=(e==null?void 0:e.getAttribute(\"disabled\"))===\"\";return t&&i(l)?!1:t}function i(n){if(!n)return!1;let e=n.previousElementSibling;for(;e!==null;){if(e instanceof HTMLLegendElement)return!1;e=e.previousElementSibling}return!0}export{r as isDisabledReactIssue7711};\n","import l,{createContext as t,useContext as p}from\"react\";let n=t(null);n.displayName=\"OpenClosedContext\";var d=(e=>(e[e.Open=1]=\"Open\",e[e.Closed=2]=\"Closed\",e[e.Closing=4]=\"Closing\",e[e.Opening=8]=\"Opening\",e))(d||{});function C(){return p(n)}function c({value:o,children:r}){return l.createElement(n.Provider,{value:o},r)}export{c as OpenClosedProvider,d as State,C as useOpenClosed};\n","var t;import r from\"react\";let a=(t=r.startTransition)!=null?t:function(i){i()};export{a as startTransition};\n","import{useState as o}from\"react\";import{useIsoMorphicEffect as r}from'./use-iso-morphic-effect.js';function i(t){var n;if(t.type)return t.type;let e=(n=t.as)!=null?n:\"button\";if(typeof e==\"string\"&&e.toLowerCase()===\"button\")return\"button\"}function s(t,e){let[n,u]=o(()=>i(t));return r(()=>{u(i(t))},[t.type,t.as]),r(()=>{n||e.current&&e.current instanceof HTMLButtonElement&&!e.current.hasAttribute(\"type\")&&u(\"button\")},[n,e]),n}export{s as useResolveButtonType};\n","import{env as n}from'./env.js';function e(r){return n.isServer?null:r instanceof Node?r.ownerDocument:r!=null&&r.hasOwnProperty(\"current\")&&r.current instanceof Node?r.current.ownerDocument:document}export{e as getOwnerDocument};\n","import E,{Fragment as F,createContext as C,useContext as I,useEffect as h,useMemo as S,useReducer as N,useRef as g}from\"react\";import{match as x}from'../../utils/match.js';import{forwardRefWithAs as L,render as O,Features as U}from'../../utils/render.js';import{optionalRef as K,useSyncRefs as B}from'../../hooks/use-sync-refs.js';import{useId as _}from'../../hooks/use-id.js';import{Keys as m}from'../keyboard.js';import{isDisabledReactIssue7711 as G}from'../../utils/bugs.js';import{OpenClosedProvider as j,State as R,useOpenClosed as W}from'../../internal/open-closed.js';import{useResolveButtonType as $}from'../../hooks/use-resolve-button-type.js';import{getOwnerDocument as J}from'../../utils/owner.js';import{useEvent as A}from'../../hooks/use-event.js';import{startTransition as X}from'../../utils/start-transition.js';var q=(o=>(o[o.Open=0]=\"Open\",o[o.Closed=1]=\"Closed\",o))(q||{}),z=(t=>(t[t.ToggleDisclosure=0]=\"ToggleDisclosure\",t[t.CloseDisclosure=1]=\"CloseDisclosure\",t[t.SetButtonId=2]=\"SetButtonId\",t[t.SetPanelId=3]=\"SetPanelId\",t[t.LinkPanel=4]=\"LinkPanel\",t[t.UnlinkPanel=5]=\"UnlinkPanel\",t))(z||{});let Q={[0]:e=>({...e,disclosureState:x(e.disclosureState,{[0]:1,[1]:0})}),[1]:e=>e.disclosureState===1?e:{...e,disclosureState:1},[4](e){return e.linkedPanel===!0?e:{...e,linkedPanel:!0}},[5](e){return e.linkedPanel===!1?e:{...e,linkedPanel:!1}},[2](e,n){return e.buttonId===n.buttonId?e:{...e,buttonId:n.buttonId}},[3](e,n){return e.panelId===n.panelId?e:{...e,panelId:n.panelId}}},k=C(null);k.displayName=\"DisclosureContext\";function M(e){let n=I(k);if(n===null){let o=new Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,M),o}return n}let v=C(null);v.displayName=\"DisclosureAPIContext\";function w(e){let n=I(v);if(n===null){let o=new Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,w),o}return n}let H=C(null);H.displayName=\"DisclosurePanelContext\";function V(){return I(H)}function Y(e,n){return x(n.type,Q,e,n)}let Z=F;function ee(e,n){let{defaultOpen:o=!1,...u}=e,T=g(null),l=B(n,K(a=>{T.current=a},e.as===void 0||e.as===F)),t=g(null),f=g(null),s=N(Y,{disclosureState:o?0:1,linkedPanel:!1,buttonRef:f,panelRef:t,buttonId:null,panelId:null}),[{disclosureState:i,buttonId:c},D]=s,d=A(a=>{D({type:1});let r=J(T);if(!r||!c)return;let p=(()=>a?a instanceof HTMLElement?a:a.current instanceof HTMLElement?a.current:r.getElementById(c):r.getElementById(c))();p==null||p.focus()}),P=S(()=>({close:d}),[d]),b=S(()=>({open:i===0,close:d}),[i,d]),y={ref:l};return E.createElement(k.Provider,{value:s},E.createElement(v.Provider,{value:P},E.createElement(j,{value:x(i,{[0]:R.Open,[1]:R.Closed})},O({ourProps:y,theirProps:u,slot:b,defaultTag:Z,name:\"Disclosure\"}))))}let te=\"button\";function ne(e,n){let o=_(),{id:u=`headlessui-disclosure-button-${o}`,...T}=e,[l,t]=M(\"Disclosure.Button\"),f=V(),s=f===null?!1:f===l.panelId,i=g(null),c=B(i,n,s?null:l.buttonRef);h(()=>{if(!s)return t({type:2,buttonId:u}),()=>{t({type:2,buttonId:null})}},[u,t,s]);let D=A(r=>{var p;if(s){if(l.disclosureState===1)return;switch(r.key){case m.Space:case m.Enter:r.preventDefault(),r.stopPropagation(),t({type:0}),(p=l.buttonRef.current)==null||p.focus();break}}else switch(r.key){case m.Space:case m.Enter:r.preventDefault(),r.stopPropagation(),t({type:0});break}}),d=A(r=>{switch(r.key){case m.Space:r.preventDefault();break}}),P=A(r=>{var p;G(r.currentTarget)||e.disabled||(s?(t({type:0}),(p=l.buttonRef.current)==null||p.focus()):t({type:0}))}),b=S(()=>({open:l.disclosureState===0}),[l]),y=$(e,i),a=s?{ref:c,type:y,onKeyDown:D,onClick:P}:{ref:c,id:u,type:y,\"aria-expanded\":l.disclosureState===0,\"aria-controls\":l.linkedPanel?l.panelId:void 0,onKeyDown:D,onKeyUp:d,onClick:P};return O({ourProps:a,theirProps:T,slot:b,defaultTag:te,name:\"Disclosure.Button\"})}let le=\"div\",oe=U.RenderStrategy|U.Static;function re(e,n){let o=_(),{id:u=`headlessui-disclosure-panel-${o}`,...T}=e,[l,t]=M(\"Disclosure.Panel\"),{close:f}=w(\"Disclosure.Panel\"),s=B(n,l.panelRef,P=>{X(()=>t({type:P?4:5}))});h(()=>(t({type:3,panelId:u}),()=>{t({type:3,panelId:null})}),[u,t]);let i=W(),c=(()=>i!==null?(i&R.Open)===R.Open:l.disclosureState===0)(),D=S(()=>({open:l.disclosureState===0,close:f}),[l,f]),d={ref:s,id:u};return E.createElement(H.Provider,{value:l.panelId},O({ourProps:d,theirProps:T,slot:D,defaultTag:le,features:oe,visible:c,name:\"Disclosure.Panel\"}))}let se=L(ee),ue=L(ne),ie=L(re),ve=Object.assign(se,{Button:ue,Panel:ie});export{ve as Disclosure};\n","import * as React from \"react\";\nfunction XMarkIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6 18L18 6M6 6l12 12\"\n }));\n}\nconst ForwardRef = React.forwardRef(XMarkIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction Bars3Icon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"\n }));\n}\nconst ForwardRef = React.forwardRef(Bars3Icon);\nexport default ForwardRef;","\nimport React, { useEffect, useState, useContext,Fragment } from 'react';\nimport { Disclosure, Menu, Transition } from '@headlessui/react'\nimport { Bars3Icon, BellIcon, XMarkIcon } from '@heroicons/react/24/outline'\nimport { Outlet, Link } from \"react-router-dom\";\nimport endpoints from '../constants/endpoints';\n\n\nimport ThemeToggler from './ThemeToggler';\n\n\nconst sites = [\n { name: 'Home', href: '/', current: true },\n { name: 'About', href: '/about', current: false },\n { name: 'Skills', href: '/skills', current: false },\n { name: 'Education', href: '/education', current: false },\n { name: 'Experience', href: '/experience', current: false },\n { name: 'Blog', href: '/blog', current: false },\n { name: 'Resume', href: 'https://docs.google.com/document/d/1DcvXq6GQx75H2d1w6d06FAtoAFjHJn6X', current: false },\n]\n\n\nfunction classNames(...classes) {\n return classes.filter(Boolean).join(' ')\n}\n\n\nconst NavBar = () => {\n const [navigation, setNavigation] = useState(sites);\n const [expanded, setExpanded] = useState(false);\n\n useEffect(() => {\n const pathname = window.location.pathname;\n console.log(\"🚀 ~ file: NavBar.jsx:33 ~ useEffect ~ pathname:\", pathname)\n for (let index = 0; index < navigation.length; index++) {\n if(navigation[index].href === pathname)\n {\n sites[index].current = true;\n }\n else{\n sites[index].current = false;\n }\n }\n }, []);\n return (\n \n {({ open }) => (\n <>\n
\n
\n
\n {/* Mobile menu button*/}\n \n \n Open main menu\n {open ? (\n \n ) : (\n \n )}\n \n
\n
\n
\n \n
\n
\n
\n {navigation.map((item) => (\n \n {item.name}\n \n ))}\n
\n
\n
\n setExpanded(false)}\n />\n
\n
\n\n \n
\n {navigation.map((item) => (\n \n {item.name}\n \n ))}\n
\n
\n \n )}\n
\n )\n};\n\n\nexport default NavBar;\n","import * as React from 'react';\n\nconst default_key = 'sharethis';\nconst social_icon = {\n display: 'inline-block',\n width: '50px',\n height: '50px',\n position: 'relative',\n overflow: 'hidden',\n verticalAlign: 'middle'\n};\nconst social_container = {\n position: 'absolute',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%'\n};\nconst social_svg = {\n ...social_container,\n borderRadius: '50%',\n fillRule: 'evenodd'\n};\nconst social_svg_g = {\n transition: 'fill 170ms ease-in-out',\n fill: 'transparent'\n};\nconst makeUriRegex = function () {\n let socials = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return new RegExp('(?:[/.]|^)($SOCIALS)[.]'.replace('$SOCIALS', socials.join('|').replace(/\\./gu, '\\\\.')), 'u');\n};\nconst social_icons = new Map();\nconst network_names = new Set();\nlet uri_regex = makeUriRegex();\nfunction getNetworks() {\n return [...network_names];\n}\n\n// note: deprecate in v7\nfunction getKeys() {\n return getNetworks();\n}\nfunction register(social, icon) {\n social_icons.set(social, icon);\n network_names.add(social);\n uri_regex = makeUriRegex(\n // sort by longest string first\n [...network_names].sort((pre, post) => post.length - pre.length));\n return icon;\n}\nfunction networkFor(url) {\n if (!url) {\n return default_key;\n }\n if (url.startsWith('mailto:')) {\n return 'mailto';\n }\n return url.match(uri_regex)?.[1] || default_key;\n}\nconst SocialIcon = /*#__PURE__*/React.forwardRef(function SocialIcon(props, ref) {\n const {\n as = 'a',\n href,\n url,\n network,\n bgColor,\n fgColor,\n className,\n label,\n children,\n fallback,\n defaultSVG,\n ...rest\n } = props;\n const networkKey = network || networkFor(url);\n const ariaLabel = label || props['aria-label'] || networkKey;\n const fallbackIcon = (typeof fallback === 'string' ? social_icons.get(fallback) : fallback || defaultSVG) || social_icons.get(default_key);\n const {\n color,\n path\n } = networkKey === default_key ? fallbackIcon : social_icons.get(networkKey) || {};\n return /*#__PURE__*/React.createElement(as, {\n href: href || url,\n className: `social-icon${className ? ` ${className}` : ''}`,\n ...rest,\n style: {\n ...social_icon,\n ...rest.style\n },\n 'aria-label': ariaLabel,\n ref\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"social-container\",\n style: social_container\n }, /*#__PURE__*/React.createElement(\"svg\", {\n role: \"img\",\n \"aria-label\": `${ariaLabel} social icon`,\n className: \"social-svg\",\n viewBox: \"0 0 64 64\",\n style: social_svg\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"social-svg-icon\",\n style: {\n ...social_svg_g,\n fill: fgColor || 'white'\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: `M0,0H64V64H0Z${path}`\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"social-svg-mask\",\n style: {\n ...social_svg_g,\n fill: bgColor || color\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: path\n })))), children);\n});\n\nexport { SocialIcon, getKeys, getNetworks, networkFor, network_names, register, social_icons, uri_regex };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_bandsintown = register(\"bandsintown\", {\"color\":\"#1B8793\",\"path\":\"M0,0v64h64V0H0z M32.6,24.7h5.6v7.8h-5.6V24.7z M25.8,24.7h5.6v7.8h-5.6V24.7z M44.9,46H19.1V18h5.6v22.4h14.6 v-1.1H25.8v-5.6h19V46z M44.9,32.6h-5.6V18h5.6V32.6z\"});\n\nexport { _socialIcons_bandsintown as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_behance = register(\"behance\", {\"color\":\"#007CFF\",\"path\":\"M40.4,30.1c-0.6,0-1.1,0.1-1.5,0.3c-0.4,0.2-0.7,0.4-0.9,0.7c-0.2,0.3-0.4,0.6-0.5,0.9c-0.1,0.3-0.2,0.6-0.2,0.9 h6c-0.1-0.9-0.4-1.6-0.8-2.1C42,30.3,41.3,30.1,40.4,30.1z M25.5,32.8h-4.4v5.1h4.3c0.4,0,0.8,0,1.1-0.1c0.4-0.1,0.7-0.2,1-0.4 c0.3-0.2,0.5-0.4,0.7-0.7c0.2-0.3,0.2-0.7,0.2-1.2c0-1-0.3-1.6-0.8-2C27.1,33,26.4,32.8,25.5,32.8z M27,29.5 c0.5-0.3,0.7-0.9,0.7-1.7c0-0.4-0.1-0.8-0.2-1.1c-0.2-0.3-0.4-0.5-0.6-0.6c-0.3-0.2-0.6-0.3-0.9-0.3c-0.3-0.1-0.7-0.1-1-0.1h-3.8 v4.3h4.1C25.9,30.1,26.5,29.9,27,29.5z M0,0v64h64V0H0z M36.6,23.8h7.5v1.8h-7.5V23.8z M31.9,38.1c-0.4,0.7-0.9,1.2-1.5,1.7 c-0.6,0.4-1.3,0.8-2.1,1c-0.8,0.2-1.6,0.3-2.4,0.3H17V22.6h8.7c0.9,0,1.7,0.1,2.4,0.2c0.7,0.2,1.3,0.4,1.9,0.8 c0.5,0.4,0.9,0.8,1.2,1.4c0.3,0.6,0.4,1.3,0.4,2.2c0,0.9-0.2,1.7-0.6,2.3c-0.4,0.6-1,1.1-1.9,1.5c1.1,0.3,2,0.9,2.5,1.7 c0.6,0.8,0.8,1.8,0.8,3C32.5,36.6,32.3,37.4,31.9,38.1z M47,35.3h-9.6c0,1.1,0.4,2.1,0.9,2.6c0.5,0.5,1.3,0.8,2.4,0.8 c0.7,0,1.4-0.2,1.9-0.6c0.5-0.4,0.9-0.8,1-1.2h3.2c-0.5,1.6-1.3,2.8-2.4,3.4c-1.1,0.7-2.4,1-3.9,1c-1.1,0-2-0.2-2.9-0.5 c-0.8-0.3-1.6-0.8-2.2-1.4c-0.6-0.6-1-1.4-1.4-2.2c-0.3-0.9-0.5-1.8-0.5-2.8c0-1,0.2-1.9,0.5-2.8c0.3-0.9,0.8-1.6,1.4-2.2 c0.6-0.6,1.3-1.1,2.2-1.5c0.8-0.4,1.8-0.5,2.8-0.5c1.1,0,2.1,0.2,3,0.7c0.8,0.4,1.5,1,2.1,1.8c0.5,0.7,0.9,1.6,1.2,2.5 C47,33.2,47,34.2,47,35.3z\"});\n\nexport { _socialIcons_behance as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_clubhouse = register(\"clubhouse\", {\"color\":\"#1F1F1A\",\"path\":\"M 0,0 V 64.27148 H 64.20312 V 0 H 1.001e-5 Z m 32.693684,15.452619 c 1.27718,0 2.240357,0.566853 2.804266,1.842808 0.823991,-0.538737 1.956541,-0.738389 2.919569,-0.483198 1.305505,0.340258 2.09998,1.248591 2.581494,4.029931 0.169943,0.88157 0.423211,1.959586 0.734772,2.895283 0.396547,1.193483 0.850396,2.128008 1.64348,3.517386 0.25492,0.425325 0.56587,0.907892 0.877441,1.361573 l 0.25599,-0.510593 c 0.764769,-1.562086 2.268722,-3.092871 4.449707,-3.092871 0.937283,0 1.956371,0.340778 2.522861,1.304841 0.368222,0.538738 0.51005,1.161271 0.51005,1.699998 0,0.737228 -0.311791,1.475257 -0.566711,2.04235 -0.05665,0.113423 -0.08405,0.169233 -0.08405,0.197588 -0.651457,1.361022 -1.530128,3.066279 -1.530128,5.051106 0,5.758575 -2.126815,8.709949 -3.769644,10.241095 -1.673717,1.562096 -4.279294,2.89334 -7.312595,2.89334 -2.152659,0 -4.392786,-0.623564 -6.233884,-1.842808 -2.52088,-1.672925 -4.052579,-4.255815 -5.440479,-6.524188 -1.135552,-1.89976 -1.957612,-3.429885 -3.175569,-6.324637 -0.708108,-1.616213 -1.359355,-3.292143 -1.897519,-5.07849 -0.481514,-1.562086 -0.227775,-2.696042 0.392795,-3.43327 0.625712,-0.765573 1.505114,-1.134657 2.468151,-1.191369 0.169943,0 0.340087,9.92e-4 0.51004,0.02935 -0.141628,-0.567093 -0.19933,-1.04971 -0.19933,-1.475035 0,-1.845633 1.447863,-3.206335 3.402264,-3.206335 0.254909,0 0.510129,0.02741 0.736723,0.08412 -0.02831,-0.311903 -0.05667,-0.566443 -0.05667,-0.821624 0,-2.015766 1.644201,-3.206344 3.456973,-3.206344 z m 0,1.703915 c -0.82141,0 -1.811542,0.424944 -1.811542,1.502419 0,0.708872 0.196478,1.757701 0.394746,2.605757 0.339897,0.824869 0.397848,1.335882 0.822721,3.122229 0.25492,1.051694 0.56586,1.958545 0.87743,2.752474 0.368222,0.966637 0.792665,1.789452 1.38748,2.895283 0.283245,0.538738 0.426284,0.538808 1.106076,0.170204 0.538165,-0.283557 1.330068,-0.625107 1.924884,-0.823596 -1.019688,-2.211663 -1.869364,-4.056965 -2.294226,-5.616467 -0.113302,-0.45368 -0.51009,-2.271558 -0.623392,-3.065487 -0.08498,-0.793929 -0.169112,-1.473373 -0.367391,-2.210591 -0.226594,-0.907351 -0.538725,-1.332225 -1.416786,-1.332225 z m 4.869847,1.252016 c -0.444783,-0.004 -0.918103,0.139976 -1.215505,0.395167 -0.311571,0.283556 -0.425003,0.508879 -0.340027,1.132684 0.141618,1.363596 0.368462,2.413467 0.623382,3.405886 0.594825,2.325075 1.585068,4.141861 2.094897,5.219336 0.169953,0.368614 0.312791,0.511554 0.596026,0.483199 0.396548,-0.02835 0.622521,-0.05769 0.877441,-0.02935 0.339886,0.02836 0.596026,0.227066 0.596026,0.567324 0,0.283557 -0.142858,0.39717 -0.652697,0.510593 -1.048004,0.226835 -2.380734,0.594998 -3.683657,1.332225 -1.107237,0.626379 -2.070825,1.392333 -2.948885,2.498164 -0.08497,0.113413 -0.171044,0.170194 -0.312672,0.170194 -0.198268,0 -0.367451,-0.227026 -0.537394,-0.453861 -0.169953,-0.226835 -0.283355,-0.39719 -0.283355,-0.567314 0,-0.198489 0.08508,-0.368864 0.283355,-0.624055 0.311571,-0.425325 0.680053,-0.736616 0.680053,-0.935106 0,-0.141768 -0.25414,-0.481395 -0.480734,-0.878365 -0.368211,-0.680506 -0.991923,-2.044713 -1.416786,-3.065477 -0.651456,-1.559512 -1.105205,-3.546242 -1.360124,-4.765496 -0.311571,-1.332666 -0.793695,-1.701951 -1.530138,-1.701951 -1.019679,0 -1.69819,0.595058 -1.69819,1.50242 0,0.598023 0.197528,1.391431 0.594075,2.695742 0.25492,0.85064 0.510139,1.70122 0.736733,2.296669 0.368212,1.023348 0.82092,2.158136 1.217467,3.065487 0.368212,0.822285 0.905866,1.787249 1.160786,2.269276 0.141627,0.255191 0.396707,0.679915 0.396707,0.935106 0,0.45367 -0.338265,0.70817 -0.791453,0.70817 -0.25492,0 -0.481814,-0.113623 -0.736734,-0.510592 -0.31157,-0.456255 -0.991943,-1.787449 -1.473457,-2.779868 -0.368221,-0.822284 -0.991883,-2.299033 -1.303454,-3.319797 -0.509839,-1.616213 -0.849445,-2.240909 -1.727506,-2.212553 -0.509839,0.02836 -0.935212,0.19872 -1.246782,0.567313 -0.311571,0.39698 -0.338946,1.020544 -0.08403,1.842819 0.538164,1.729635 1.162926,3.316982 1.834984,4.943512 1.192213,2.807121 1.957573,4.256616 3.062227,6.099664 1.387901,2.268374 2.749446,4.53816 4.930441,5.984249 1.557853,1.020774 3.458684,1.561115 5.299772,1.561115 2.577531,0 4.761948,-1.137122 6.149858,-2.441433 1.418797,-1.304321 3.230279,-3.858234 3.230279,-8.993005 0,-2.35344 1.020339,-4.399215 1.64348,-5.731892 0.169943,-0.340248 0.537394,-1.048759 0.537394,-1.559151 0,-0.226835 -0.05574,-0.538067 -0.197368,-0.764902 -0.25492,-0.396959 -0.651917,-0.53993 -1.133421,-0.53993 -1.503783,0 -2.467401,1.13601 -3.005566,2.128429 -0.226594,0.425315 -0.395776,0.877583 -0.537394,1.359609 -0.311571,1.04913 -0.623751,1.475327 -1.530138,2.212554 -0.481524,0.425315 -1.074949,0.963632 -1.414835,1.388957 -0.56649,0.768148 -0.737774,1.420658 -0.879391,2.441433 -0.02833,0.255191 -0.509309,0.367772 -1.104125,0.367772 -0.339886,0 -0.453368,-0.112702 -0.453368,-0.651439 0,-0.567094 0.198519,-1.417624 0.623391,-2.183207 0.594806,-1.049119 1.246053,-1.617074 1.897519,-2.155812 0.651457,-0.538738 0.850116,-0.765032 0.963428,-1.1053 -0.594826,-0.796503 -1.160986,-1.618157 -1.614184,-2.412085 -0.8214,-1.44609 -1.359304,-2.526069 -1.784177,-3.83039 -0.339886,-1.023348 -0.623442,-2.215849 -0.793395,-3.151556 -0.339896,-1.987401 -0.679342,-2.496281 -1.330808,-2.666405 -0.134544,-0.03545 -0.279704,-0.05345 -0.427965,-0.05478 z m -23.055586,0.313004 c 0.206483,-0.01374 0.436929,0.05248 0.697642,0.187803 0.805962,0.420166 3.650389,2.637057 4.193697,3.075263 0.525297,0.422751 0.453358,0.641613 0.177837,1.185509 -0.275521,0.543896 -0.532792,0.68286 -1.02204,0.528191 -0.978485,-0.309318 -3.882226,-2.069914 -4.63926,-2.523594 -0.684935,-0.412435 -0.773404,-0.783492 -0.297043,-1.68827 0.263945,-0.499424 0.545019,-0.741995 0.889167,-0.764902 z m -1.79005,9.450772 c 0.138776,-0.01402 0.295842,-0.005 0.469007,0.01174 0.80339,0.07732 4.523847,0.681658 5.116081,0.864673 0.612836,0.190747 0.698063,0.469356 0.623392,1.005519 -0.09527,0.695981 -0.409294,0.828315 -0.810994,0.841205 -0.854878,0.0232 -4.406584,-0.129408 -5.217698,-0.209327 -0.705536,-0.06959 -0.991813,-0.381254 -0.914561,-1.404602 0.06179,-0.823577 0.318475,-1.067159 0.734773,-1.109208 z m 7.767934,7.596215 c 0.308149,0.01849 0.539465,0.218412 0.71328,0.653403 0.25492,0.636685 0.08016,0.890865 -0.463153,1.228539 -0.599959,0.371187 -3.78014,2.038984 -4.498554,2.304491 -0.51241,0.190748 -1.068275,0.145625 -1.395294,-0.823596 -0.40169,-1.198631 0.161989,-1.481997 0.965369,-1.7939 0.710689,-0.275814 3.659244,-1.344215 4.344179,-1.529804 0.120376,-0.03222 0.231457,-0.04529 0.334173,-0.03913 z\"});\n\nexport { _socialIcons_clubhouse as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_codepen = register(\"codepen\", {\"color\":\"#151515\",\"path\":\"M0,0v64h64V0H0z M32,48c-8.8,0-16-7.2-16-16c0-8.8,7.2-16,16-16s16,7.2,16,16C48,40.8,40.8,48,32,48z M32.5,22.3 c-0.3-0.2-0.6-0.2-0.9,0l-9.1,5.9c-0.2,0.2-0.4,0.4-0.4,0.7v6.2c0,0.3,0.1,0.6,0.4,0.7l9.1,5.9c0.3,0.2,0.6,0.2,0.9,0l9.1-5.9 c0.2-0.2,0.4-0.4,0.4-0.7v-6.2c0-0.3-0.1-0.6-0.4-0.7L32.5,22.3z M32.8,24.5l6.8,4.5l-3,2l-3.7-2.5V24.5z M31.2,24.5v4L27.4,31l-3-2 L31.2,24.5z M23.8,30.6l2.1,1.4l-2.1,1.4V30.6z M31.2,39.5L24.4,35l3-2l3.7,2.5V39.5z M32,34l-3-2l3-2l3,2L32,34z M32.8,39.5v-4 l3.7-2.5l3,2L32.8,39.5z M40.2,33.4L38.1,32l2.1-1.4V33.4z\"});\n\nexport { _socialIcons_codepen as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_developer = register(\"developer.mozilla\", {\"color\":\"#236ab4\",\"path\":\"M0 0v64h64V0H0Zm32 48.35h-3.69v-32.7l-10.15 32.7h-4.15l10.11-32.7H32v32.7Zm18 0h-3.69v-32.7l-10.12 32.7h-4.15l10.11-32.7H50v32.7Z\"});\n\nexport { _socialIcons_developer as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_discord = register(\"discord\", {\"color\":\"#5865F2\",\"path\":\"M0 0V64H64V0H0ZM36.9029 18.5C39.4494 18.9308 41.9284 19.6936 44.2767 20.7686C48.322 26.6834 50.332 33.3544 49.5898 41.0515C46.8565 43.0726 43.7952 44.6075 40.5406 45.5888C39.8077 44.6054 39.1597 43.5615 38.6036 42.4684C39.663 42.0725 40.6855 41.5843 41.6594 41.0094C41.4064 40.8379 41.1562 40.6467 40.9117 40.4471C38.0833 41.7772 34.9963 42.4669 31.8708 42.4669C28.7453 42.4669 25.6583 41.7772 22.83 40.4471C22.5882 40.6327 22.338 40.8238 22.0822 41.0094C23.0542 41.5833 24.0749 42.0706 25.1324 42.4656C24.5756 43.5592 23.9277 44.604 23.1954 45.5888C19.9435 44.6035 16.8847 43.0679 14.1518 41.0487C13.5193 34.4115 14.7843 27.6786 19.4509 20.7743C21.8015 19.699 24.2822 18.9345 26.8303 18.5C27.1786 19.123 27.4939 19.7639 27.7749 20.4201C30.4874 20.0113 33.2458 20.0113 35.9583 20.4201C36.2391 19.7638 36.5544 19.1229 36.9029 18.5Z M25.9335 36.9669C24.1709 36.9669 22.7147 35.3673 22.7147 33.3994C22.7147 31.4316 24.1203 29.8179 25.9279 29.8179C27.7355 29.8179 29.1805 31.4316 29.1496 33.3994C29.1186 35.3673 27.7299 36.9669 25.9335 36.9669Z M37.8081 36.9669C36.0426 36.9669 34.5921 35.3673 34.5921 33.3994C34.5921 31.4316 35.9977 29.8179 37.8081 29.8179C39.6185 29.8179 41.0522 31.4316 41.0213 33.3994C40.9904 35.3673 39.6044 36.9669 37.8081 36.9669Z\"});\n\nexport { _socialIcons_discord as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_dribbble = register(\"dribbble\", {\"color\":\"#ea4c89\",\"path\":\"M34.3,34.3c-7.7,2.7-10.5,8-10.7,8.5c2.3,1.8,5.2,2.9,8.4,2.9c1.9,0,3.7-0.4,5.3-1.1 C37.1,43.4,36.3,39.2,34.3,34.3C34.4,34.2,34.4,34.3,34.3,34.3z M31.3,27.6c-2.3-4-4.7-7.4-5.1-7.9c-3.8,1.8-6.7,5.3-7.6,9.6 C19.2,29.2,24.9,29.3,31.3,27.6z M33,32.1c0.2-0.1,0.4-0.1,0.5-0.2c-0.3-0.8-0.7-1.6-1.1-2.3c-6.8,2-13.4,2-14,1.9 c0,0.1,0,0.3,0,0.4c0,3.5,1.3,6.7,3.5,9.1C22.2,40.6,25.9,34.4,33,32.1z M41.1,21.8c-2.4-2.1-5.6-3.4-9.1-3.4 c-1.1,0-2.2,0.1-3.2,0.4c0.4,0.5,2.9,3.9,5.1,8C38.8,24.9,40.8,22.1,41.1,21.8z M34.9,28.8c0.3,0.7,0.6,1.3,0.9,2 c0.1,0.2,0.2,0.5,0.3,0.7c4.5-0.6,9.1,0.3,9.5,0.4c0-3.2-1.2-6.2-3.1-8.5C42.3,23.8,40,26.7,34.9,28.8z M37,33.6 c1.8,4.9,2.5,8.9,2.7,9.7c3.1-2.1,5.2-5.4,5.9-9.2C45,34,41.3,32.9,37,33.6z M0,0v64h64V0H0z M32,48c-8.8,0-16-7.2-16-16 s7.2-16,16-16s16,7.2,16,16S40.8,48,32,48z\"});\n\nexport { _socialIcons_dribbble as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_dropbox = register(\"dropbox\", {\"color\":\"#1081DE\",\"path\":\"M0,0v64h64V0H0z M41.5,41.2L32,46.9l-9.4-5.7v-2.1l2.8,1.8l6.6-5.5l6.6,5.5l2.8-1.8V41.2z M48,33.7l-9.4,6.1 L32,34.3l-6.6,5.5L16,33.7l6.5-5.2L16,23.3l9.4-6.1l6.6,5.5l6.6-5.5l9.4,6.1l-6.5,5.2L48,33.7z M22.5,28.5l9.5,5.9l9.5-5.9L32,22.6 L22.5,28.5z\"});\n\nexport { _socialIcons_dropbox as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_email = register(\"email\", {\"color\":\"#7f7f7f\",\"path\":\"M41.1,25H22.9l9.1,7.1L41.1,25z M44,26.6l-12,9.3l-12-9.3V39h24V26.6z M0,0v64h64V0H0z M47,42H17V22h30V42z\"});\n\nexport { _socialIcons_email as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_facebook = register(\"facebook\", {\"color\":\"#3b5998\",\"path\":\"M0,0v64h64V0H0z M39.6,22l-2.8,0c-2.2,0-2.6,1.1-2.6,2.6V28h5.3l-0.7,5.3h-4.6V47h-5.5V33.3H24V28h4.6V24 c0-4.6,2.8-7,6.9-7c2,0,3.6,0.1,4.1,0.2V22z\"});\n\nexport { _socialIcons_facebook as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_fivehundredpix = register(\"fivehundredpix\", {\"color\":\"#222222\",\"path\":\"M33.3,31.3c-0.4-0.2-0.7-0.4-1.1-0.6c-0.3-0.1-0.8-0.1-0.9-0.1c-1.1,0-1.9,0.6-2.2,2.1v0.9c0,0.1,0.1,0.4,0.2,0.7 c0.3,0.9,1.4,1.3,2.1,1.3s1.2-0.2,1.9-0.6c0.5-0.3,1-0.7,1.4-1.1c0.2-0.2,0.5-0.5,0.5-0.6C35.3,32.8,33.7,31.6,33.3,31.3z M42.8,30.6c-1.3,0-2.4,1-3.8,2.6c1.3,1.5,2.6,2.3,3.9,2.3c1.5,0,2.2-1.1,2.2-2.4C45.2,31.7,44.3,30.6,42.8,30.6z M0,0v64h64V0H0z M42.9,38.5c-2,0-3.8-1-5.7-3.3c-2.2,2.4-3.7,3.3-5.7,3.3c-1.8,0-3.7-0.7-4.8-3.1c-1.2,2.5-3.3,3.2-5.1,3.2c-1.6,0-3.8-0.4-5-2.5 C16.5,36,16,34.8,16,34.5v-0.7h3c0.1,1.6,1.3,2.2,2.4,2.2c1.3,0,2.4-0.9,2.6-2.6v-0.7c-0.2-1.8-1.3-2.4-2.6-2.4 c-0.8,0-1.6,0.2-2.3,1.2h-2.7v-0.2l1.5-8h8.4v2.5h-6.2l-0.6,3.3c1-0.9,2-1.1,2.9-1.1c1.4,0,3.2,0.6,4.1,2.6c1-2.4,3-3.2,4.7-3.2 c2,0,3.9,1,5.8,3.5c2.1-2.6,3.7-3.5,5.8-3.5c3.3,0,5.1,2.4,5.1,5.4C48,35.9,46.2,38.5,42.9,38.5z\"});\n\nexport { _socialIcons_fivehundredpix as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_flickr = register(\"flickr\", {\"color\":\"#0063db\",\"path\":\"M38,27c-2.8,0-5,2.2-5,5s2.2,5,5,5s5-2.2,5-5S40.8,27,38,27z M0,0v64h64V0H0z M32,48c-8.8,0-16-7.2-16-16 s7.2-16,16-16s16,7.2,16,16S40.8,48,32,48z M26,27c-2.8,0-5,2.2-5,5s2.2,5,5,5s5-2.2,5-5S28.8,27,26,27z\"});\n\nexport { _socialIcons_flickr as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_foursquare = register(\"foursquare\", {\"color\":\"#0072b1\",\"path\":\"M39.7,20.4c-0.5,0-13.3,0-13.3,0c-0.6,0-1,0.5-1,1v20.5c0,0.1,0,0.1,0.1,0c0,0,4.9-5.9,5.4-6.5 c0.5-0.7,0.8-0.8,1.6-0.8c0,0,3.9,0,4.5,0c0.6,0,1-0.5,1-0.8c0.1-0.3,0.6-3,0.7-3.6c0.1-0.5-0.4-1.1-0.9-1.1c-0.5,0-5.5,0-5.5,0 c-0.7,0-1.2-0.5-1.2-1.2v-0.8c0-0.7,0.5-1.2,1.2-1.2c0,0,6,0,6.4,0c0.5,0,0.9-0.4,1-0.8l0.7-3.6C40.6,20.9,40.2,20.4,39.7,20.4z M0,0v64h64V0H0z M44,20.9l-1,5.2c-0.8,4.2-1.8,9-1.9,9.5c-0.2,0.9-0.6,2.4-2.7,2.4h-5.1c-0.2,0-0.2,0-0.4,0.2 c-0.1,0.1-7.9,9.2-7.9,9.2c-0.6,0.7-1.6,0.6-2,0.4c-0.4-0.1-1-0.6-1-1.8c0,0,0-25.2,0-26.3c0-1.1,0.7-2.8,3-2.8c2.3,0,16.5,0,16.5,0 C43.9,17,44.6,18.4,44,20.9z\"});\n\nexport { _socialIcons_foursquare as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_github = register(\"github\", {\"color\":\"#24292e\",\"path\":\"M0,0v64h64V0H0z M37.1,47.2c-0.8,0.2-1.1-0.3-1.1-0.8c0-0.5,0-2.3,0-4.4c0-1.5-0.5-2.5-1.1-3 c3.6-0.4,7.3-1.7,7.3-7.9c0-1.7-0.6-3.2-1.6-4.3c0.2-0.4,0.7-2-0.2-4.2c0,0-1.3-0.4-4.4,1.6c-1.3-0.4-2.6-0.5-4-0.5 c-1.4,0-2.7,0.2-4,0.5c-3.1-2.1-4.4-1.6-4.4-1.6c-0.9,2.2-0.3,3.8-0.2,4.2c-1,1.1-1.6,2.5-1.6,4.3c0,6.1,3.7,7.5,7.3,7.9 c-0.5,0.4-0.9,1.1-1,2.1c-0.9,0.4-3.2,1.1-4.7-1.3c0,0-0.8-1.5-2.5-1.6c0,0-1.6,0-0.1,1c0,0,1,0.5,1.8,2.3c0,0,0.9,3.1,5.4,2.1 c0,1.3,0,2.3,0,2.7c0,0.4-0.3,0.9-1.1,0.8C20.6,45.1,16,39.1,16,32c0-8.8,7.2-16,16-16c8.8,0,16,7.2,16,16 C48,39.1,43.4,45.1,37.1,47.2z\"});\n\nexport { _socialIcons_github as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_gitlab = register(\"gitlab\", {\"color\":\"#f96424\",\"path\":\"m0 0v64h64v-64h-64zm50.402 32.559l-1.9688-6.0664v0.007812-0.007812-0.003907l-3.9141-12.035c-0.21484-0.63672-0.80469-1.0586-1.4766-1.0547-0.67969 0.003906-1.25 0.42187-1.4609 1.0625l-3.7148 11.426h-11.719l-3.7227-11.426c-0.21094-0.64063-0.78125-1.0586-1.4609-1.0625h-0.007813c-0.66406 0-1.2578 0.42187-1.4727 1.0625l-3.9023 12.027v0.003907s0 0.003906-0.003906 0.007812c0.003906-0.003906 0.003906-0.007812 0.003906-0.007812l-1.9805 6.0664c-0.29687 0.91406 0.027344 1.9102 0.80469 2.4766l17.082 12.402c0.003907 0 0.007813 0 0.007813 0.003906 0.007812 0.003906 0.015625 0.011719 0.023437 0.015625-0.007812-0.003906-0.011719-0.011719-0.019531-0.015625l0.003906 0.003906h0.003906c0.023438 0.019532 0.050782 0.035157 0.082032 0.050782l0.007812 0.007812h0.003906l0.003907 0.003906h0.007812c0 0.003907 0 0.003907 0.003907 0.003907 0.003906 0 0.003906 0.003906 0.007812 0.003906 0.015625 0.007813 0.03125 0.011719 0.046875 0.019531 0.015625 0.003906 0.027344 0.011719 0.042969 0.015625v0.003907h0.007812c0.003906 0.003906 0.007813 0.003906 0.011719 0.003906h0.003906c0 0.003906 0.007813 0.003906 0.011719 0.003906h0.003906c0.019532 0.007812 0.039063 0.011719 0.0625 0.015625 0.007813 0.003906 0.015625 0.007813 0.023438 0.007813h0.003906c0.003906 0 0.003906 0.003906 0.007812 0.003906h0.015626c0.003906 0 0.003906 0 0.007812 0.003906h0.003906c0.039063 0.003906 0.082032 0.007812 0.12109 0.007812h0.003906c0.039063 0 0.082032-0.003906 0.12109-0.007812h0.003906c0.003906-0.003906 0.007813-0.003906 0.011719-0.003906h0.011719c0.003906 0 0.007812-0.003906 0.007812-0.003906h0.003906c0.007813-0.003907 0.015626-0.003907 0.027344-0.007813 0.019532-0.003906 0.039063-0.007813 0.0625-0.015625h0.003906c0.003907 0 0.007813 0 0.011719-0.003906h0.003907s0.003906 0 0.007812-0.003906h0.007812v-0.003907c0.015626-0.003906 0.03125-0.011719 0.046876-0.015625 0.015624-0.007812 0.027343-0.011718 0.042968-0.019531 0.003906 0 0.007813-0.003906 0.007813-0.003906h0.003906c0.003906-0.003907 0.003906-0.003907 0.007813-0.003907 0.003906 0 0.003906-0.003906 0.007812-0.003906 0.003906-0.003906 0.007812-0.003906 0.011719-0.007812 0.027343-0.015625 0.054687-0.03125 0.082031-0.050782 0 0 0.003906 0 0.003906-0.003906h0.003906c0.003907-0.003906 0.003907-0.003906 0.007813-0.003906l17.086-12.402c0.77734-0.56641 1.1016-1.5625 0.80078-2.4766zm-7.3516-16.98l3.3516 10.309h-6.6992zm2.7656 12.051l-1.3672 1.75-10.086 12.91 4.7695-14.66zm-14.645 19.371c0.003906 0.003906 0.003906 0.003906 0.003906 0.007812 0-0.003906 0-0.003906-0.003906-0.007812zm-1.5273-4.707l-11.445-14.664h6.6797zm-8.6875-26.715l3.3555 10.309h-6.7031zm-5.5234 18.047c-0.16797-0.12109-0.23438-0.33203-0.17188-0.52734l1.4727-4.5117 10.773 13.805zm16.027 13.789c-0.003907-0.003906-0.007813-0.007812-0.011719-0.007812v-0.003906c-0.007813-0.003906-0.015625-0.011719-0.019531-0.015625-0.015626-0.011719-0.027344-0.023438-0.039063-0.035157 0.003906 0 0.003906 0.003907 0.003906 0.003907s0.003907 0 0.003907 0.003906c0.027343 0.023437 0.050781 0.046875 0.078124 0.066406h0.003907s0 0.003907 0.003906 0.003907c-0.007813-0.003907-0.015625-0.011719-0.023437-0.015626zm0.54297-3.5039l-2.8047-8.625-2.4844-7.6562h10.586zm0.57422 3.4766c-0.007813 0.003906-0.015625 0.011719-0.019531 0.015625-0.003906 0-0.003906 0-0.003906 0.003906-0.003907 0-0.007813 0.003906-0.007813 0.007812-0.007813 0.003907-0.015625 0.011719-0.023437 0.015626 0 0 0-0.003907 0.003906-0.003907 0.027344-0.019531 0.054687-0.042969 0.078125-0.066406l0.003906-0.003906s0.003906 0 0.003906-0.003907c-0.011719 0.011719-0.023437 0.023438-0.035156 0.035157zm15.996-13.762l-12.074 8.7617 10.781-13.797 1.4648 4.5078c0.0625 0.19531-0.003906 0.40625-0.17188 0.52734z\"});\n\nexport { _socialIcons_gitlab as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_google = register(\"google\", {\"color\":\"#dd4b39\",\"path\":\"M0,0v64h64V0H0z M31.3,19.1c0.3,0.3,0.6,0.7,0.9,1.2c0.3,0.4,0.5,0.9,0.7,1.5c0.2,0.6,0.3,1.3,0.3,2.1 c0,1.4-0.3,2.6-0.9,3.4c-0.3,0.4-0.6,0.8-0.9,1.2c-0.4,0.4-0.8,0.7-1.2,1.1c-0.2,0.2-0.5,0.5-0.7,0.8c-0.2,0.3-0.4,0.7-0.4,1.1 c0,0.4,0.1,0.8,0.4,1c0.2,0.3,0.4,0.5,0.6,0.7l1.4,1.1c0.8,0.7,1.6,1.5,2.2,2.3c0.6,0.8,0.9,2,0.9,3.3c0,1.9-0.9,3.7-2.6,5.2 c-1.8,1.6-4.3,2.4-7.7,2.4c-2.8,0-4.9-0.6-6.3-1.8c-1.4-1.1-2.1-2.4-2.1-3.9c0-0.7,0.2-1.6,0.7-2.5c0.4-0.9,1.2-1.7,2.4-2.4 c1.3-0.7,2.7-1.2,4.1-1.5c1.4-0.2,2.6-0.3,3.5-0.4c-0.3-0.4-0.5-0.8-0.8-1.2c-0.3-0.4-0.4-0.9-0.4-1.5c0-0.4,0-0.6,0.2-0.9 c0.1-0.2,0.2-0.5,0.2-0.7c-0.5,0.1-0.9,0.1-1.3,0.1c-2.1,0-3.8-0.7-4.9-2c-1.2-1.2-1.8-2.7-1.8-4.3c0-2,0.8-3.8,2.5-5.4 c1.1-0.9,2.3-1.6,3.5-1.8c1.2-0.2,2.3-0.4,3.4-0.4h8L33,18.4h-2.5C30.7,18.6,31,18.8,31.3,19.1z M48,32h-4.3v4.2h-2.5V32H37v-2.5 h4.2v-4.3h2.5v4.3H48V32z M27.1,19.1c-0.6-0.5-1.4-0.7-2.2-0.7c-1.1,0-2,0.5-2.7,1.3c-0.6,0.9-0.9,1.9-0.9,3c0,1.5,0.4,3,1.3,4.5 c0.4,0.7,0.9,1.4,1.6,1.9c0.6,0.5,1.4,0.8,2.2,0.8c1.1,0,1.9-0.4,2.6-1.1c0.3-0.5,0.6-1,0.7-1.6c0.1-0.5,0.1-1,0.1-1.4 c0-1.6-0.4-3.2-1.2-4.8C28.2,20.2,27.7,19.5,27.1,19.1z M26.9,36.2c-0.2,0-0.7,0-1.6,0.1c-0.8,0.1-1.7,0.3-2.5,0.6 c-0.2,0.1-0.5,0.2-0.9,0.4c-0.4,0.2-0.7,0.4-1.1,0.7c-0.4,0.3-0.7,0.7-0.9,1.2c-0.3,0.5-0.4,1.1-0.4,1.8c0,1.4,0.6,2.6,1.9,3.5 c1.2,0.9,2.9,1.4,5,1.4c1.9,0,3.3-0.4,4.3-1.3c1-0.8,1.5-1.8,1.5-3.1c0-1-0.3-1.9-1-2.7c-0.7-0.7-1.8-1.6-3.3-2.6 C27.5,36.2,27.2,36.2,26.9,36.2z\"});\n\nexport { _socialIcons_google as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_google_play = register(\"google_play\", {\"color\":\"#40BBC1\",\"path\":\"M0,0v64h64V0H0z M40.4,27.1l-3.6,3.6L24.5,18.4L40.4,27.1z M22,44.5V19.4c0-0.4,0.1-0.7,0.2-0.9L35.6,32 L22.2,45.4C22.1,45.2,22,44.9,22,44.5z M24.4,45.6l12.4-12.4l3.6,3.6L24.4,45.6z M47.1,33.2l-5,2.8l-4-4l3.9-3.9l5.1,2.8 C48.3,31.4,48.3,32.5,47.1,33.2z\"});\n\nexport { _socialIcons_google_play as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_groupme = register(\"groupme\", {\"color\":\"#00aff0\",\"path\":\"M0,0v64h64V0H0z M40.321,39.43448a10.40049,9.51724 0 0 1 -16.64078,0a2.60012,2.37931 0 1 0 -4.16019,2.85517a15.60073,14.27586 0 0 0 24.96117,0a2.60012,2.37931 0 0 0 -4.16019,-2.85517zm-17.42081,-12.84828a2.60012,2.37931 0 0 0 0,4.75862l1.30006,0l0,1.18966a2.60012,2.37931 0 0 0 5.20024,0l0,-1.18966l5.20024,0l0,1.18966a2.60012,2.37931 0 0 0 5.20024,0l0,-1.18966l1.30006,0a2.60012,2.37931 0 0 0 0,-4.75862l-1.30006,0l0,-4.75862l1.30006,0a2.60012,2.37931 0 0 0 0,-4.75862l-1.30006,0l0,-1.18966a2.60012,2.37931 0 0 0 -5.20024,0l0,1.18966l-5.20024,0l0,-1.18966a2.60012,2.37931 0 0 0 -5.20024,0l0,1.18966l-1.30006,0a2.60012,2.37931 0 0 0 0,4.75862l1.30006,0l0,4.75862l-1.30006,0zm6.5003,-4.75862l5.20024,0l0,4.75862l-5.20024,0l0,-4.75862z\"});\n\nexport { _socialIcons_groupme as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_instagram = register(\"instagram\", {\"color\":\"#e94475\",\"path\":\"M0,0v64h64V0H0z M 39.88,25.89 C 40.86,25.89 41.65,25.10 41.65,24.12 41.65,23.14 40.86,22.35 39.88,22.35 38.90,22.35 38.11,23.14 38.11,24.12 38.11,25.10 38.90,25.89 39.88,25.89 Z M 32.00,24.42 C 27.82,24.42 24.42,27.81 24.42,32.00 24.42,36.19 27.82,39.58 32.00,39.58 36.18,39.58 39.58,36.18 39.58,32.00 39.58,27.82 36.18,24.42 32.00,24.42 Z M 32.00,36.92 C 29.28,36.92 27.08,34.72 27.08,32.00 27.08,29.28 29.28,27.08 32.00,27.08 34.72,27.08 36.92,29.28 36.92,32.00 36.92,34.72 34.72,36.92 32.00,36.92 Z M 32.00,19.90 C 35.94,19.90 36.41,19.92 37.96,19.99 39.41,20.05 40.19,20.29 40.71,20.50 41.40,20.77 41.89,21.08 42.41,21.60 42.92,22.12 43.24,22.61 43.51,23.30 43.71,23.82 43.95,24.60 44.02,26.04 44.09,27.60 44.11,28.06 44.11,32.01 44.11,35.95 44.09,36.41 44.02,37.97 43.95,39.41 43.71,40.19 43.51,40.71 43.24,41.40 42.92,41.90 42.41,42.41 41.89,42.93 41.40,43.25 40.71,43.51 40.19,43.71 39.41,43.96 37.96,44.02 36.41,44.09 35.94,44.11 32.00,44.11 28.06,44.11 27.59,44.09 26.04,44.02 24.59,43.96 23.81,43.72 23.29,43.51 22.60,43.24 22.11,42.93 21.59,42.41 21.08,41.90 20.76,41.40 20.49,40.71 20.29,40.19 20.05,39.41 19.98,37.97 19.91,36.41 19.89,35.95 19.89,32.01 19.89,28.06 19.91,27.60 19.98,26.04 20.05,24.60 20.29,23.82 20.49,23.30 20.76,22.61 21.08,22.12 21.59,21.60 22.11,21.08 22.60,20.76 23.29,20.50 23.81,20.30 24.59,20.05 26.04,19.99 27.59,19.91 28.06,19.90 32.00,19.90 Z M 32.00,17.24 C 27.99,17.24 27.49,17.26 25.91,17.33 24.34,17.40 23.27,17.65 22.33,18.01 21.36,18.39 20.54,18.90 19.72,19.72 18.90,20.54 18.39,21.37 18.01,22.33 17.65,23.27 17.40,24.34 17.33,25.92 17.26,27.49 17.24,27.99 17.24,32.00 17.24,36.01 17.26,36.51 17.33,38.09 17.40,39.66 17.65,40.73 18.01,41.67 18.39,42.65 18.90,43.47 19.72,44.29 20.54,45.11 21.37,45.61 22.33,45.99 23.27,46.36 24.34,46.61 25.92,46.68 27.49,46.75 27.99,46.77 32.01,46.77 36.02,46.77 36.52,46.75 38.09,46.68 39.66,46.61 40.74,46.36 41.68,45.99 42.65,45.62 43.47,45.11 44.29,44.29 45.11,43.47 45.62,42.64 46.00,41.67 46.36,40.74 46.61,39.66 46.68,38.09 46.75,36.51 46.77,36.01 46.77,32.00 46.77,27.99 46.75,27.49 46.68,25.91 46.61,24.34 46.36,23.27 46.00,22.33 45.62,21.35 45.11,20.53 44.29,19.71 43.47,18.89 42.65,18.39 41.68,18.01 40.74,17.64 39.67,17.39 38.09,17.32 36.51,17.26 36.01,17.24 32.00,17.24 Z\"});\n\nexport { _socialIcons_instagram as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_itch = register(\"itch.io\", {\"color\":\"#fa5c5c\",\"path\":\"M 0 0 L 0 64 L 64 64 L 64 0 L 0 0 z M 32 16 C 36.482469 15.999275 39.489763 16.027944 43.828125 16.197266 C 45.223688 17.11826 47.973899 20.631595 48 21.552734 L 48 23.076172 C 48 25.008914 46.375769 26.707031 44.900391 26.707031 C 43.128974 26.707031 41.652344 25.07576 41.652344 23.138672 C 41.652344 25.07576 40.226756 26.707031 38.455078 26.707031 C 36.68353 26.707031 35.302734 25.07576 35.302734 23.138672 C 35.302734 25.07576 33.787432 26.707031 32.015625 26.707031 L 31.984375 26.707031 C 30.212699 26.707031 28.697266 25.07576 28.697266 23.138672 C 28.697266 25.07576 27.316728 26.707031 25.544922 26.707031 C 23.773245 26.707031 22.347656 25.07576 22.347656 23.138672 C 22.347526 25.07576 20.871157 26.707031 19.099609 26.707031 C 17.624234 26.707031 16 25.008624 16 23.076172 L 16 21.552734 C 16.026082 20.63174 18.776052 17.11855 20.171875 16.197266 C 21.406769 16.077682 27.517662 16.000435 32 16 z M 28.673828 25.796875 A 3.6505562 4.0580007 0 0 0 29.292969 26.689453 A 3.7155025 4.1301957 0 0 0 31.894531 27.867188 C 31.930136 27.867188 31.964779 27.866621 32 27.865234 C 32.035221 27.866088 32.07219 27.867188 32.107422 27.867188 A 3.7155025 4.1301957 0 0 0 34.708984 26.689453 A 3.6502954 4.0577109 0 0 0 35.326172 25.796875 A 3.6548598 4.0627847 0 0 0 35.949219 26.689453 C 36.617985 27.416189 37.534472 27.867188 38.544922 27.867188 A 3.7141985 4.1287462 0 0 0 41.146484 26.689453 C 41.388792 26.425753 41.573442 26.142952 41.742188 25.814453 C 41.910814 26.143677 42.1458 26.425338 42.388672 26.689453 A 3.7168066 4.1316454 0 0 0 44.990234 27.867188 C 45.112172 27.867188 45.239291 27.830162 45.341797 27.791016 C 45.484209 29.439616 45.543344 31.01503 45.564453 32.164062 L 45.566406 32.169922 C 45.569073 32.753426 45.571445 33.23411 45.574219 33.900391 C 45.546831 37.359375 45.881298 45.110721 44.201172 47.015625 C 41.597581 47.690463 36.806287 47.998187 32 48 C 27.193582 47.998115 22.402421 47.690463 19.798828 47.015625 C 18.118702 45.110865 18.455126 37.359375 18.427734 33.900391 C 18.430401 33.233965 18.432987 32.753281 18.435547 32.169922 L 18.435547 32.164062 C 18.456799 31.015319 18.515782 29.439616 18.658203 27.791016 C 18.760709 27.830151 18.887947 27.867188 19.009766 27.867188 A 3.7168066 4.1316454 0 0 0 21.611328 26.689453 C 21.85416 26.425316 22.089324 26.143533 22.257812 25.814453 C 22.426437 26.142953 22.611207 26.425606 22.853516 26.689453 A 3.7144592 4.129036 0 0 0 25.455078 27.867188 C 26.465659 27.867188 27.382014 27.416332 28.050781 26.689453 A 3.6548598 4.0627847 0 0 0 28.673828 25.796875 z M 37.998047 29.636719 L 37.998047 29.638672 L 37.996094 29.638672 C 36.938044 29.640989 35.998583 29.639715 34.833984 31.052734 C 33.917302 30.94591 32.958545 30.891191 32 30.892578 C 31.041455 30.890977 30.082567 30.945897 29.166016 31.052734 C 28.001416 29.63986 27.061956 29.641019 26.003906 29.638672 L 26.001953 29.638672 C 25.502078 29.638672 23.502722 29.638165 22.109375 33.988281 L 20.613281 39.955078 C 19.504239 44.394801 20.966648 44.503759 22.792969 44.507812 C 25.50128 44.395752 27.001953 42.209586 27.001953 40.023438 C 28.501065 40.296565 30.250885 40.433594 32 40.433594 C 33.748987 40.433449 35.498804 40.296562 36.998047 40.023438 C 36.998047 42.209586 38.496636 44.395759 41.205078 44.507812 C 43.031397 44.503898 44.495762 44.39464 43.386719 39.955078 L 41.890625 33.988281 C 40.497278 29.638166 38.497925 29.636719 37.998047 29.636719 z M 32 33.056641 C 32 33.056641 34.851013 35.967594 35.363281 37.001953 L 33.498047 36.919922 L 33.498047 38.728516 C 33.498047 38.813166 32.749101 38.778784 32 38.740234 C 31.250641 38.778805 30.501953 38.813177 30.501953 38.728516 L 30.501953 36.919922 L 28.636719 37.001953 C 29.148854 35.967594 31.997653 33.059414 32 33.056641 z \"});\n\nexport { _socialIcons_itch as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_itunes = register(\"itunes\", {\"color\":\"#E049D1\",\"path\":\"M0,0v64h64V0H0z M42.5,40c0,2.2-1.8,4-4,4h-2c-1.9,0-3.4-1.5-3.4-3.4s1.5-3.4,3.4-3.4h2.8c0.8,0,1.4-0.6,1.4-1.4 v-11c0-0.5-0.4-0.9-0.9-0.9c-0.1,0-0.1,0-0.2,0l-12.1,2.4c-0.4,0.1-0.7,0.4-0.7,0.9V43c0,2.2-1.8,4-4,4h-2c-1.9,0-3.4-1.5-3.4-3.4 c0-1.9,1.5-3.4,3.4-3.4h2.8c0.8,0,1.4-0.6,1.4-1.4V21.3c0-0.7,0.5-1.2,1.1-1.4l14.7-3c0.1,0,0.2,0,0.3,0c0.8,0,1.4,0.6,1.4,1.4V40z\"});\n\nexport { _socialIcons_itunes as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_leetcode = register(\"leetcode\", {\"color\":\"#E7A41F\",\"path\":\"M0 0H64V64H0V0ZM42.0505 42.0701C41.2043 41.1924 39.8301 41.1901 38.9812 42.065L35.2116 45.9499C33.4064 47.8103 30.4336 47.8376 28.595 46.0099L21.8371 39.1709C20.0126 37.3244 19.6935 34.4303 21.2767 32.6807L27.4861 26.0554C29.1514 24.2149 32.5276 23.9936 34.4576 25.6045L39.9647 30.2012C40.8973 30.9797 42.2638 30.8291 43.0167 29.8648C43.7696 28.9006 43.624 27.4879 42.6913 26.7094L37.1842 22.1126C35.98 21.1076 34.5353 20.472 33.023 20.1957L36.5 16.5C37.3491 15.5894 37.4474 14.2364 36.5397 13.3845C35.6321 12.5326 34.208 12.5802 33.3589 13.4908L24.3163 22.9895L18.2527 29.6904C15.0006 33.2842 15.3449 38.8805 18.8008 42.3779C23.9956 47.6352 25.5703 49.2288 25.5907 49.249C29.1271 52.7645 34.7982 52.7125 38.276 49.1283L42.0456 45.2434C42.8945 44.3685 42.8967 42.9478 42.0505 42.0701ZM27.6535 36.054C27.6535 37.2933 28.6251 38.2979 29.8238 38.2979H45.8298C47.0284 38.2979 48.0001 37.2933 48.0001 36.054C48.0001 34.8148 47.0284 33.8101 45.8298 33.8101H29.8238C28.6251 33.8101 27.6535 34.8148 27.6535 36.054Z\"});\n\nexport { _socialIcons_leetcode as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_linkedin = register(\"linkedin\", {\"color\":\"#007fb1\",\"path\":\"M0,0v64h64V0H0z M25.8,44h-5.4V26.6h5.4V44z M23.1,24.3c-1.7,0-3.1-1.4-3.1-3.1c0-1.7,1.4-3.1,3.1-3.1 c1.7,0,3.1,1.4,3.1,3.1C26.2,22.9,24.8,24.3,23.1,24.3z M46,44h-5.4v-8.4c0-2,0-4.6-2.8-4.6c-2.8,0-3.2,2.2-3.2,4.5V44h-5.4V26.6 h5.2V29h0.1c0.7-1.4,2.5-2.8,5.1-2.8c5.5,0,6.5,3.6,6.5,8.3V44z\"});\n\nexport { _socialIcons_linkedin as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_linktree = register(\"linktree\", {\"color\":\"#39e09b\",\"path\":\"M0,0v64h64V0H0z M27.43603,19.38636c-0.60084,-0.94849 -2.16195,-0.94849 -2.76234,0l-10.32917,16.44343c-0.48058,0.84332 0.24007,1.79182 1.32104,1.79182l6.96599,0l0,6.21877c0,0.63259 0.60084,1.15962 1.32149,1.15962l4.08339,0c0.72065,0 1.32104,-0.52703 1.32104,-1.15962l0,-6.21877l-1.92144,0c-0.84091,0 -1.4413,-0.52703 -1.56156,-1.15962c0,-0.21073 0,-0.42147 0.12026,-0.63454l5.7652,-9.17021l-4.3239,-7.27088zm9.12794,0c0.60084,-0.94849 2.16195,-0.94849 2.76234,0l10.32917,16.44343c0.48058,0.84332 -0.24007,1.79182 -1.32104,1.79182l-6.84618,0l0,6.21877c0,0.63259 -0.60039,1.15962 -1.32238,1.15962l-4.32257,0c-0.72065,0 -1.32104,-0.52703 -1.32104,-1.15962l0,-6.21877l1.92188,0c0.84046,0 1.44086,-0.52703 1.56111,-1.15962c0,-0.21073 0,-0.42147 -0.12026,-0.63454l-5.76476,-9.16786l4.44371,-7.27322z\"});\n\nexport { _socialIcons_linktree as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_mailto = register(\"mailto\", {\"color\":\"#7f7f7f\",\"path\":\"M41.1,25H22.9l9.1,7.1L41.1,25z M44,26.6l-12,9.3l-12-9.3V39h24V26.6z M0,0v64h64V0H0z M47,42H17V22h30V42z\"});\n\nexport { _socialIcons_mailto as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_mastodon = register(\"mastodon\", {\"color\":\"#17063B\",\"path\":\"M -0.13476562,-0.13476562 V 64.40625 H 64.542969 V -0.13476562 Z M 31.910156,16 c 4.393659,-0.01635 8.819314,0.462327 11.212891,1.488281 0,0 4.875,2.042137 4.875,8.992188 0,0 0.06408,5.125699 -0.683594,8.6875 -0.477112,2.260168 -4.218698,4.733622 -8.515625,5.21289 -1.53898,0.170881 -7.129606,1.013405 -13.685547,-0.480468 -0.0015,0.332416 0.02181,0.666347 0.06836,0.996093 0.507659,3.545781 3.767366,3.759249 6.861328,3.859375 3.123054,0.09345 5.646484,-0.722656 5.646484,-0.722656 l 0.128906,2.638672 c 0,0 -1.923363,1.093335 -5.814453,1.294922 -2.1441,0.113475 -4.810874,-0.04949 -7.912109,-0.814453 C 15.994012,45.143157 16,34.753512 16,26.480469 16,19.530418 20.882812,17.488281 20.882812,17.488281 23.152736,16.527743 27.516498,16.01635 31.910156,16 Z m -4.703125,5.300781 c -1.505342,-0.03705 -3.027216,0.508604 -4.015625,1.53125 -1.802265,1.918407 -1.40625,3.173566 -1.40625,11.816407 h 3.56836 v -7.513672 c 0,-3.517747 4.882812,-3.65096 4.882812,0.490234 v 4.353516 h 3.53711 V 27.625 c 0,-4.141195 4.886718,-4.006027 4.886718,-0.488281 v 7.515625 h 3.560547 v -0.0039 c 0,-8.636166 0.403288,-9.883315 -1.40625,-11.816407 -1.962273,-2.031882 -6.087649,-2.196273 -7.927734,0.429688 l -0.882813,1.382812 -0.886718,-1.382812 c -0.916407,-1.305638 -2.404814,-1.923888 -3.910157,-1.960938 z\"});\n\nexport { _socialIcons_mastodon as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_matrix = register(\"matrix\", {\"color\":\"#000000\",\"path\":\"M 0 0 L 0 64 L 64 64 L 64 0 L 0 0 z M 16 16 L 19.039062 16 L 19.039062 16.732422 L 16.841797 16.732422 L 16.841797 47.267578 L 19.039062 47.267578 L 19.039062 48 L 16 48 L 16 16 z M 44.960938 16 L 48 16 L 48 48 L 44.960938 48 L 44.960938 47.267578 L 47.158203 47.267578 L 47.158203 16.732422 L 44.960938 16.732422 L 44.960938 16 z M 29.767578 26.103516 C 30.487577 26.103516 31.144855 26.247438 31.742188 26.523438 C 32.339521 26.80077 32.78823 27.298668 33.101562 28 C 33.440229 27.501333 33.901802 27.059068 34.480469 26.677734 C 35.059135 26.295069 35.74635 26.103516 36.541016 26.103516 C 37.145015 26.103516 37.703371 26.178175 38.220703 26.326172 C 38.738037 26.472838 39.175589 26.70787 39.544922 27.033203 C 39.912922 27.35987 40.196916 27.778116 40.40625 28.300781 C 40.608916 28.823448 40.712891 29.45274 40.712891 30.191406 L 40.712891 37.828125 L 37.582031 37.828125 L 37.582031 31.359375 C 37.582031 30.978042 37.568402 30.614677 37.539062 30.277344 A 2.34 2.34 0 0 0 37.298828 29.396484 A 1.4746667 1.4746667 0 0 0 36.714844 28.800781 C 36.456177 28.654114 36.105301 28.578125 35.667969 28.578125 C 35.225302 28.578125 34.868323 28.663408 34.597656 28.830078 A 1.84 1.84 0 0 0 33.957031 29.496094 A 2.5946667 2.5946667 0 0 0 33.648438 30.423828 A 7.4133333 7.4133333 0 0 0 33.568359 31.470703 L 33.568359 37.828125 L 30.435547 37.828125 L 30.435547 31.427734 C 30.435547 31.089068 30.430809 30.757781 30.412109 30.425781 A 2.7653333 2.7653333 0 0 0 30.220703 29.507812 A 1.4026667 1.4026667 0 0 0 29.667969 28.837891 C 29.409302 28.671225 29.033296 28.583984 28.529297 28.583984 C 28.381297 28.583984 28.183359 28.616924 27.943359 28.683594 C 27.70336 28.751594 27.464948 28.87326 27.238281 29.058594 C 27.010281 29.242594 26.812344 29.507563 26.652344 29.851562 C 26.492344 30.196895 26.412109 30.652891 26.412109 31.212891 L 26.412109 37.833984 L 23.279297 37.833984 L 23.279297 26.414062 L 26.232422 26.414062 L 26.232422 27.955078 L 26.277344 27.955078 C 26.689343 27.364412 27.188912 26.909843 27.767578 26.589844 C 28.344911 26.263177 29.015579 26.103516 29.767578 26.103516 z\"});\n\nexport { _socialIcons_matrix as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_medium = register(\"medium\", {\"color\":\"#333332\",\"path\":\"M0,0v64h64V0H0z M47,23.7h-1.2c-0.4,0-0.9,0.6-0.9,1v14.7c0,0.4,0.5,1,0.9,1H47v3.4H36.4v-3.4h2.1V24.9h-0.1 l-5.3,18.9h-4.1l-5.2-18.9h-0.1v15.5H26v3.4h-9v-3.4h1.2c0.5,0,1-0.6,1-1V24.7c0-0.4-0.5-1-1-1H17v-3.6h11.3l3.7,13.8h0.1l3.7-13.8 H47V23.7z\"});\n\nexport { _socialIcons_medium as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_meetup = register(\"meetup\", {\"color\":\"#E51937\",\"path\":\"M0,0v64h64V0H0z M47.8,44.3c-0.4,0.2-2.5,0.9-3.9,1c-0.6,0.1-1.1-0.6-1.4-1.5c-1.5-4.6-3.5-11.8-5.2-16.6 c0,3.7-0.3,10.8-0.4,12c-0.1,1.7-0.4,3.7-1.8,3.9c-1.1,0.2-2.4,0.4-4,0.4c-1.3,0-1.8-0.9-2.4-1.8c-1-1.4-3.1-4.8-4.1-6.9 c0.3,2.3,0.7,4.7,0.9,5.8c0.1,0.8,0,1.5-0.6,1.9c-1,0.7-3.2,1.4-4.1,1.4c-0.8,0-1.5-0.8-1.6-1.6c-0.7-3.4-1.2-8-1.1-11.1 c0-2.8,0-5.9,0.2-8.3c0-0.7,0.3-1.1,0.9-1.4c1.2-0.5,3-0.6,4.7-0.3c0.8,0.1,1,0.8,1.4,1.4c1.7,2.8,3.8,6.7,5.7,10.6 c0-6.3,1.9-11.9,3.5-15.3c0.5-1.1,0.9-1.4,1.9-1.4c1.3,0,2.9,0.2,4.1,0.4c1.1,0.2,1.5,1.6,1.7,2.5c1.2,4.5,4.7,18.7,5.5,22.4 C47.8,42.8,48.3,44,47.8,44.3z\"});\n\nexport { _socialIcons_meetup as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_opensea = register(\"opensea\", {\"color\":\"#2081E2\",\"path\":\"M 0,0 H 64 V 64 H 0 Z m 33,12.800782 c 0.499712,0 0.955746,0.203124 1.28125,0.535156 0.32544,0.332096 0.527344,0.786664 0.527344,1.292968 v 3.101562 l 0.375,0.10547 c 0.02956,0.01 0.05964,0.02325 0.08594,0.04297 0.0921,0.06906 0.222944,0.17188 0.390624,0.296876 0.13152,0.10516 0.274368,0.23176 0.445312,0.36328 0.338624,0.272832 0.743662,0.626834 1.1875,1.03125 0.11834,0.10188 0.234628,0.207284 0.339844,0.3125 0.572096,0.532608 1.2127,1.157226 1.82422,1.847656 0.17094,0.19398 0.336868,0.390554 0.507812,0.597656 0.17094,0.210432 0.353958,0.417834 0.511718,0.625 0.207168,0.27616 0.42711,0.560176 0.621094,0.859376 0.09204,0.14138 0.200286,0.288312 0.289062,0.429688 0.249856,0.378048 0.469256,0.768924 0.679688,1.160156 0.08876,0.1808 0.1789,0.376328 0.257812,0.570312 0.233408,0.522752 0.420728,1.057236 0.539064,1.589844 0.03616,0.11508 0.06104,0.239754 0.07422,0.351562 v 0.02734 c 0.03942,0.15776 0.05329,0.32515 0.06641,0.496094 0.0526,0.545792 0.02459,1.09157 -0.09375,1.640624 -0.04934,0.233472 -0.112506,0.45403 -0.191406,0.6875 -0.07892,0.223552 -0.159826,0.455494 -0.261718,0.675782 -0.19724,0.45696 -0.430872,0.912452 -0.707032,1.339844 -0.08876,0.15782 -0.191656,0.326552 -0.296876,0.484374 -0.115078,0.16762 -0.234626,0.32591 -0.339842,0.48047 -0.14464,0.19724 -0.299208,0.405716 -0.457032,0.589844 -0.14138,0.19398 -0.287488,0.38765 -0.445312,0.558594 -0.220288,0.25971 -0.42815,0.50545 -0.648438,0.742186 -0.13146,0.1545 -0.273264,0.31175 -0.417968,0.453126 -0.14132,0.15776 -0.28645,0.298168 -0.41797,0.429688 -0.220224,0.220288 -0.404034,0.39378 -0.558594,0.535156 l -0.36328,0.33203 c -0.0526,0.04602 -0.122994,0.07031 -0.195312,0.07031 h -2.800782 v 3.59375 h 3.527344 c 0.789054,0 1.535698,-0.280074 2.140624,-0.79297 0.207104,-0.1808 1.11121,-0.960338 2.179688,-2.140624 0.03616,-0.03948 0.08412,-0.06891 0.136718,-0.08203 l 9.734376,-2.816406 c 0.18086,-0.0526 0.36328,0.08662 0.36328,0.277344 v 2.058594 c 0,0.11834 -0.07056,0.223514 -0.17578,0.26953 -0.644352,0.27616 -2.852284,1.29076 -3.769532,2.566406 -2.340862,3.25811 -4.127116,7.91797 -8.125,7.91797 H 24.140624 c -5.911226,0 -10.699218,-4.807216 -10.699218,-10.738282 v -0.191406 c 0,-0.15782 0.12734,-0.285156 0.285156,-0.285156 h 9.296876 c 0.18406,0 0.317164,0.170758 0.30078,0.351562 -0.0658,0.604928 0.04602,1.222982 0.332032,1.785156 0.55232,1.121152 1.697434,1.820314 2.933594,1.820314 h 4.605468 v -3.59375 h -4.55078 c -0.233408,0 -0.373066,-0.270282 -0.238282,-0.460938 0.04928,-0.07564 0.104922,-0.153424 0.164062,-0.242188 0.43072,-0.61152 1.044732,-1.562868 1.65625,-2.64453 0.417536,-0.729856 0.822934,-1.5066 1.148438,-2.289064 0.0658,-0.14138 0.119276,-0.288312 0.171876,-0.429688 0.08876,-0.249854 0.18036,-0.481434 0.246092,-0.714842 0.0658,-0.19732 0.119276,-0.403674 0.171876,-0.597658 0.15456,-0.664126 0.21875,-1.3678 0.21875,-2.097656 0,-0.286014 -0.01284,-0.585078 -0.03906,-0.871092 -0.0132,-0.31232 -0.05034,-0.625182 -0.08984,-0.9375 -0.0263,-0.27616 -0.07629,-0.549922 -0.128906,-0.835938 -0.06572,-0.417536 -0.160406,-0.8324 -0.265626,-1.25 L 29.625,23.929688 c -0.07892,-0.28608 -0.14625,-0.561642 -0.238282,-0.847656 -0.259774,-0.8976 -0.555446,-1.771222 -0.871094,-2.589844 -0.115058,-0.3255 -0.247386,-0.6369 -0.378906,-0.94922 -0.19392,-0.470142 -0.393418,-0.896364 -0.574218,-1.30078 -0.09204,-0.18412 -0.171084,-0.352494 -0.25,-0.523438 -0.08876,-0.19398 -0.177436,-0.390154 -0.269532,-0.574218 -0.06572,-0.14138 -0.142712,-0.270824 -0.195312,-0.402344 l -0.5625,-1.039064 c -0.07892,-0.141378 0.05253,-0.308376 0.207032,-0.265624 l 3.51953,0.953124 h 0.0078 c 0.0066,0 0.0083,0.0039 0.01172,0.0039 l 0.464844,0.128906 0.511718,0.14453 0.1875,0.05078 v -2.089844 c 0,-1.009342 0.8052,-1.828124 1.804688,-1.828124 z m -8.488282,6.902342 c 0.09822,0.007 0.192266,0.06442 0.238282,0.16797 1.390718,3.116732 2.58952,6.993068 2.027344,9.40625 -0.24,0.992894 -0.896944,2.33928 -1.63672,3.582032 -0.0953,0.180858 -0.200692,0.356398 -0.3125,0.527342 -0.0526,0.07892 -0.139018,0.125 -0.234374,0.125 h -8.5625 c -0.230144,0 -0.363852,-0.250108 -0.242188,-0.4375 L 15.925782,32.859376 24.25,19.835938 c 0.06083,-0.09533 0.163502,-0.139798 0.261718,-0.132814 z\"});\n\nexport { _socialIcons_opensea as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_pinterest = register(\"pinterest\", {\"color\":\"#cb2128\",\"path\":\"M0,0v64h64V0H0z M32,48c-1.6,0-3.1-0.2-4.5-0.7c0.6-1,1.3-2.2,1.6-3.4c0.2-0.7,1.1-4.4,1.1-4.4 c0.6,1.1,2.2,2,3.9,2c5.1,0,8.6-4.7,8.6-11c0-4.7-4-9.2-10.1-9.2c-7.6,0-11.4,5.5-11.4,10c0,2.8,1,5.2,3.3,6.1 c0.4,0.1,0.7,0,0.8-0.4c0.1-0.3,0.2-1,0.3-1.3c0.1-0.4,0.1-0.5-0.2-0.9c-0.6-0.8-1.1-1.7-1.1-3.1c0-4,3-7.7,7.9-7.7 c4.3,0,6.7,2.6,6.7,6.1c0,4.6-2,8.5-5.1,8.5c-1.7,0-2.9-1.4-2.5-3.1c0.5-2,1.4-4.2,1.4-5.7c0-1.3-0.7-2.4-2.2-2.4 c-1.7,0-3.1,1.8-3.1,4.1c0,1.5,0.5,2.5,0.5,2.5s-1.8,7.4-2.1,8.7c-0.3,1.2-0.3,2.6-0.3,3.7C19.9,44.2,16,38.6,16,32 c0-8.8,7.2-16,16-16c8.8,0,16,7.2,16,16C48,40.8,40.8,48,32,48z\"});\n\nexport { _socialIcons_pinterest as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_pixiv = register(\"pixiv\", {\"color\":\"#0097fa\",\"path\":\"M0,0v64h64V0H0z M 33.552734 16.46875 C 21.708875 16.46875 13.650391 25.615234 13.650391 25.615234 L 15.919922 29.220703 C 15.919922 29.220703 17.180054 29.327146 16.511719 27.203125 C 17.085451 26.116698 18.210086 24.658325 20.404297 22.970703 L 20.404297 46.978516 C 19.458253 47.247074 18.209962 47.747072 19.064453 48.601562 L 25.582031 48.601562 C 26.442627 47.740968 25.088743 47.222673 24.261719 46.978516 L 24.261719 41.316406 C 24.261719 41.316406 28.730963 43.072266 33.552734 43.072266 C 37.78552 43.072266 41.640263 41.811762 44.505859 39.535156 C 47.374506 37.270752 49.218055 33.892818 49.208984 30.029297 C 49.227296 26.306156 47.618647 22.755613 44.798828 20.320312 C 42.006468 17.881962 38.093741 16.472656 33.552734 16.472656 L 33.552734 16.46875 z M 33.15625 18.496094 C 36.757322 18.499147 39.580706 19.856689 41.494141 21.925781 C 43.401491 24.000973 44.442052 26.756349 44.451172 29.966797 C 44.438968 33.091793 43.327375 35.664185 41.34375 37.638672 C 39.363164 39.597898 36.479609 40.833984 33.15625 40.833984 L 33.134766 40.833984 C 29.436041 40.833984 26.318602 40.114744 24.261719 39.101562 L 24.261719 21.087891 C 26.523068 19.482668 30.189947 18.489893 33.15625 18.496094 z \"});\n\nexport { _socialIcons_pixiv as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_ravelry = register(\"ravelry\", {\"color\":\"#EE6E62\",\"path\":\"M 0,0 H 64 V 64 H 0 Z m 42.692268,28.943187 c 0,0 -2.183968,-0.39738 -3.751944,-0.39738 -3.583932,0 -4.423932,1.986862 -4.423932,4.938744 v 12.48877 h -9.68784 v -25.43168 h 9.68784 v 4.257542 c 1.175992,-3.576324 3.527958,-4.825204 8.175876,-4.825204 z\"});\n\nexport { _socialIcons_ravelry as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_rdio = register(\"rdio\", {\"color\":\"#0475C5\",\"path\":\"M0,0v64h64V0H0z M43.9,30.5c0.1,0.5,0.1,1,0.1,1.5V32c0,6.4-5.1,11.6-12,11.6c-6.9,0-12-5.1-12-11.5V32 c0-6.4,5.1-11.6,12-11.6c1.2,0,2.3,0.2,3.4,0.5v6.8c-0.2-0.1-0.4-0.2-0.6-0.3c-3-1-6.2,0.4-7.7,2.9l0,0.1c-1.5,2.5-0.8,5.3,2.1,6.3 c3,1,6.2-0.4,7.7-2.9l0-0.1c0.5-0.8,0.8-1.7,0.8-2.6h0v-9.3c0.2,0.1,0.3,0.2,0.5,0.3c0.1,0.1,0.3,0.2,0.4,0.2c1.5,1,5.4,3.5,8.7,3.4 C49,25.8,47.5,29.5,43.9,30.5z\"});\n\nexport { _socialIcons_rdio as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_reddit = register(\"reddit\", {\"color\":\"#FF4500\",\"path\":\"M0,0v64h64V0H0z M 53.34375 32 C 53.277344 30.160156 52.136719 28.53125 50.429688 27.839844 C 48.722656 27.148438 46.769531 27.523438 45.441406 28.800781 C 41.800781 26.324219 37.519531 24.957031 33.121094 24.863281 L 35.199219 14.878906 L 42.046875 16.320312 C 42.214844 17.882812 43.496094 19.09375 45.066406 19.171875 C 46.636719 19.253906 48.03125 18.183594 48.359375 16.644531 C 48.6875 15.105469 47.847656 13.558594 46.382812 12.992188 C 44.914062 12.425781 43.253906 13.007812 42.464844 14.367188 L 34.625 12.800781 C 34.363281 12.742188 34.09375 12.792969 33.871094 12.9375 C 33.648438 13.082031 33.492188 13.308594 33.441406 13.566406 L 31.070312 24.671875 C 26.617188 24.738281 22.277344 26.105469 18.59375 28.609375 C 17.242188 27.339844 15.273438 26.988281 13.570312 27.707031 C 11.863281 28.429688 10.746094 30.089844 10.71875 31.941406 C 10.691406 33.789062 11.757812 35.484375 13.441406 36.257812 C 13.402344 36.726562 13.402344 37.195312 13.441406 37.664062 C 13.441406 44.832031 21.792969 50.65625 32.097656 50.65625 C 42.398438 50.65625 50.753906 44.832031 50.753906 37.664062 C 50.789062 37.195312 50.789062 36.726562 50.753906 36.257812 C 52.363281 35.453125 53.371094 33.800781 53.34375 32 Z M 21.34375 35.199219 C 21.34375 33.433594 22.777344 32 24.542969 32 C 26.3125 32 27.742188 33.433594 27.742188 35.199219 C 27.742188 36.96875 26.3125 38.398438 24.542969 38.398438 C 22.777344 38.398438 21.34375 36.96875 21.34375 35.199219 Z M 39.9375 44 C 37.664062 45.710938 34.871094 46.582031 32.03125 46.464844 C 29.191406 46.582031 26.398438 45.710938 24.128906 44 C 23.847656 43.65625 23.871094 43.15625 24.183594 42.839844 C 24.5 42.527344 25 42.503906 25.34375 42.785156 C 27.269531 44.195312 29.617188 44.90625 32 44.800781 C 34.386719 44.929688 36.746094 44.242188 38.6875 42.847656 C 39.042969 42.503906 39.605469 42.511719 39.953125 42.863281 C 40.296875 43.21875 40.289062 43.785156 39.9375 44.128906 Z M 39.359375 38.527344 C 37.59375 38.527344 36.160156 37.09375 36.160156 35.328125 C 36.160156 33.5625 37.59375 32.128906 39.359375 32.128906 C 41.128906 32.128906 42.558594 33.5625 42.558594 35.328125 C 42.59375 36.203125 42.269531 37.054688 41.65625 37.6875 C 41.046875 38.316406 40.203125 38.664062 39.328125 38.65625 Z M 39.359375 38.527344\"});\n\nexport { _socialIcons_reddit as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_rss = register(\"rss\", {\"color\":\"#EF8733\",\"path\":\"M0,0v64h64V0H0z M24,44c-2.2,0-4-1.8-4-4c0-2.2,1.8-4,4-4s4,1.8,4,4C28,42.2,26.2,44,24,44z M35,43 c-1.1,0-2-0.9-2-2c0-5.5-4.5-10-10-10c-1.1,0-2-0.9-2-2s0.9-2,2-2c7.7,0,14,6.3,14,14C37,42.1,36.1,43,35,43z M44,43 c-1.1,0-2-0.9-2-2c0-10.5-8.5-19-19-19c-1.1,0-2-0.9-2-2s0.9-2,2-2c12.7,0,23,10.3,23,23C46,42.1,45.1,43,44,43z\"});\n\nexport { _socialIcons_rss as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_sharethis = register(\"sharethis\", {\"color\":\"#00BF00\",\"path\":\"M0,0L64,0L64,64L0,64L0,0ZM28.3875,32.0001C28.3875,32.0843 28.3683,32.1632 28.3633,32.2471L37.1647,36.6464C37.9182,36.0083 38.8823,35.61 39.9474,35.61C42.3418,35.6105 44.2821,37.5509 44.2821,39.945C44.2821,42.3418 42.3417,44.2821 39.9474,44.2821C37.551,44.2821 35.6127,42.3417 35.6127,39.945C35.6127,39.8587 35.6319,39.7816 35.6367,39.698L26.8353,35.2984C26.0795,35.9341 25.1177,36.3324 24.0526,36.3324C21.6584,36.3324 19.7179,34.3941 19.7179,32.0001C19.7179,29.6036 21.6584,27.6628 24.0526,27.6628C25.1176,27.6628 26.0798,28.0635 26.8353,28.6992L35.6367,24.2997C35.6319,24.2156 35.6127,24.1365 35.6127,24.0502C35.6127,21.6584 37.551,19.7179 39.9474,19.7179C42.3418,19.7179 44.2821,21.6584 44.2821,24.0502C44.2821,26.4466 42.3417,28.3875 39.9474,28.3875C38.88,28.3875 37.9178,27.9868 37.1647,27.3487L28.3633,31.7506C28.368,31.8347 28.3875,31.9138 28.3875,32.0001Z\"});\n\nexport { _socialIcons_sharethis as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_slack = register(\"slack\", {\"color\":\"#4A164A\",\"path\":\"M 0,0 V 64 H 64 V 0 Z m 12.636243,37.559371 c 0,5.066505 8,5.066505 8,0 v -3.79988 h -4 c -2.209139,0 -4,1.701265 -4,3.79988 z m 25.28,-6.34579 c 2.209139,0 4,-1.701264 4,-3.79988 v -10.12667 c 0,-5.066504 -8,-5.066504 -8,0 v 10.12667 c -1.11e-4,2.113546 1.815256,3.821016 4.04,3.79988 z m 14.64,-3.79988 c 0,-5.066504 -8,-5.066504 -8,0 v 3.79988 h 4 c 2.240314,0.04257 4.080448,-1.671223 4.08,-3.79988 z m -25.24,6.34579 c -2.209139,0 -4,1.701265 -4,3.79988 v 10.12667 c 0,5.066505 8,5.066505 8,0 v -10.12667 c 0,-2.098615 -1.790861,-3.79988 -4,-3.79988 z m 10.64,10.12667 h -4 v 3.79988 c 0,3.385567 4.308554,5.080452 6.828283,2.686785 2.51973,-2.393667 0.735584,-6.486665 -2.828283,-6.486665 z m 10.68,-10.12667 h -10.68 c -5.324679,0.0082 -5.324679,7.591545 0,7.59975 h 10.68 c 5.324679,-0.0082 5.324679,-7.591544 0,-7.59975 z m -21.32,-10.14567 h -10.68 c -5.341983,-0.0082 -5.341983,7.607983 0,7.59975 h 10.68 c 5.324679,-0.0082 5.324679,-7.591544 0,-7.59975 z m 0,-10.12667 c -5.324679,0.0082 -5.324679,7.591545 0,7.59975 h 4 v -3.79988 c 0,-2.125738 -1.803765,-3.79987 -4,-3.79987 z\"});\n\nexport { _socialIcons_slack as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_smugmug = register(\"smugmug\", {\"color\":\"#8cca1e\",\"path\":\"M0,0v64h64V0H0z M36.1,19.8c0.2-1.3,1.3-2.6,3.2-2.8c2.4-0.2,3.8,1.3,3.8,2.8c0,1.3-1.2,2.6-3.8,2.8 C36.9,22.7,35.9,21.3,36.1,19.8z M22.5,20.2c0.2-1.4,1.4-2.8,3.3-2.8c2.3,0,3.5,1.1,3.6,2.4c0.2,1.5-1.1,3.1-3.9,3.1 C23.1,23,22.3,21.6,22.5,20.2z M28.8,47c-10.9,0-12-17.5-6.9-17.5c12.1-0.3,12.5-0.3,19-1C51.7,27.4,39.2,47,28.8,47z M40.3,31.6 c-3.9,0-6.8,0.5-17.8,0.9c-1.6,0.1-2.9,11.4,6.6,11.4C36.6,43.9,44.3,31.6,40.3,31.6z\"});\n\nexport { _socialIcons_smugmug as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_snapchat = register(\"snapchat\", {\"color\":\"#FFC91B\",\"path\":\"M0,0v64h64V0H0z M47.927,39.545c-0.326,0.76-1.702,1.318-4.21,1.707c-0.083,0.113-0.17,0.511-0.223,0.754c-0.054,0.245-0.108,0.487-0.183,0.743c-0.104,0.357-0.367,0.554-0.74,0.554h-0.018l-0.019,0c-0.177,0-0.421-0.03-0.723-0.089c-0.482-0.094-1.022-0.181-1.706-0.181c-0.397,0-0.809,0.034-1.222,0.103c-0.809,0.135-1.496,0.62-2.293,1.184c-1.139,0.805-2.43,1.718-4.392,1.718c-0.088,0-0.171-0.003-0.234-0.006c-0.054,0.004-0.108,0.006-0.162,0.006c-1.962,0-3.253-0.912-4.393-1.718c-0.796-0.562-1.483-1.048-2.292-1.183c-0.414-0.069-0.826-0.103-1.223-0.103c-0.716,0-1.288,0.112-1.706,0.193c-0.278,0.055-0.519,0.102-0.723,0.102c-0.505,0-0.701-0.308-0.776-0.565c-0.077-0.262-0.131-0.51-0.183-0.751c-0.053-0.244-0.14-0.644-0.224-0.758c-2.507-0.389-3.884-0.948-4.21-1.711c-0.041-0.097-0.065-0.197-0.071-0.298c-0.019-0.338,0.22-0.637,0.555-0.692c4.349-0.716,6.308-5.181,6.389-5.371c0.005-0.011,0.01-0.021,0.015-0.032c0.232-0.471,0.284-0.866,0.154-1.172c-0.251-0.592-1.177-0.885-1.789-1.08c-0.17-0.054-0.331-0.105-0.464-0.157c-1.482-0.585-1.688-1.258-1.601-1.719c0.122-0.64,0.903-1.07,1.555-1.07c0.189,0,0.359,0.035,0.507,0.104c0.557,0.261,1.053,0.394,1.472,0.394c0.314,0,0.513-0.075,0.622-0.136c-0.015-0.257-0.032-0.523-0.048-0.779c-0.136-2.173-0.307-4.877,0.403-6.469c2.111-4.732,6.585-5.1,7.905-5.1c0.041,0,0.554-0.005,0.554-0.005c0.025-0.001,0.051-0.001,0.078-0.001h0.001c1.324,0,5.807,0.368,7.919,5.103c0.711,1.593,0.54,4.299,0.403,6.474l-0.006,0.092c-0.015,0.237-0.029,0.464-0.042,0.685c0.099,0.055,0.272,0.121,0.537,0.134c0.4-0.018,0.863-0.149,1.379-0.391c0.219-0.103,0.454-0.124,0.613-0.124c0.232,0,0.468,0.045,0.667,0.128l0.002,0.001c0.592,0.212,0.965,0.638,0.974,1.117c0.011,0.609-0.533,1.135-1.617,1.564c-0.132,0.052-0.293,0.103-0.465,0.158c-0.612,0.194-1.538,0.488-1.788,1.079c-0.13,0.306-0.079,0.701,0.154,1.172c0.005,0.011,0.01,0.021,0.015,0.032c0.081,0.189,2.038,4.654,6.389,5.371c0.334,0.055,0.573,0.353,0.555,0.691C47.993,39.347,47.969,39.448,47.927,39.545z\"});\n\nexport { _socialIcons_snapchat as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_soundcloud = register(\"soundcloud\", {\"color\":\"#FF5700\",\"path\":\"M0,0v64h64V0H0z M18.5,36.3c0,0.7-0.6,1.2-1.2,1.2c-0.7,0-1.2-0.6-1.2-1.2v-4.9c0-0.6,0.6-1.1,1.2-1.1 c0.7,0,1.2,0.5,1.2,1.1V36.3z M23.4,37.5c0,0.7-0.6,1.2-1.2,1.2S21,38.2,21,37.5V29c0-0.6,0.6-1.1,1.2-1.1s1.2,0.5,1.2,1.1V37.5z M28.4,37.5c0,0.7-0.6,1.2-1.2,1.2c-0.7,0-1.2-0.6-1.2-1.2V26.2c0-0.6,0.6-1.1,1.2-1.1c0.7,0,1.2,0.5,1.2,1.1V37.5z M43.6,38.7 c0,0-12.1,0-12.2,0c-0.3,0-0.5-0.2-0.5-0.5V24.3c0-0.3,0.1-0.4,0.4-0.5c0.9-0.3,1.8-0.5,2.8-0.5c4,0,7.4,3.1,7.7,7.1 c0.5-0.2,1.1-0.3,1.7-0.3c2.4,0,4.4,2,4.4,4.4C48,36.8,46,38.7,43.6,38.7z\"});\n\nexport { _socialIcons_soundcloud as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_spotify = register(\"spotify\", {\"color\":\"#2EBD59\",\"path\":\"M39,37.7c-4.2-2.6-9.4-3.2-15.5-1.8c-0.5,0.1-0.9,0.7-0.8,1.2c0.1,0.5,0.7,0.9,1.2,0.7c5.6-1.3,10.3-0.8,14.1,1.5 c0.5,0.3,1.1,0.1,1.4-0.3C39.6,38.6,39.5,38,39,37.7z M40.9,33c-4.9-3-12.2-3.9-18-2.1c-0.7,0.2-1,0.9-0.8,1.6 c0.2,0.7,0.9,1,1.6,0.8c5.1-1.5,11.6-0.8,15.9,1.9c0.6,0.4,1.4,0.2,1.7-0.4C41.7,34.1,41.5,33.4,40.9,33z M0,0v64h64V0H0z M32,48 c-8.8,0-16-7.2-16-16c0-8.8,7.2-16,16-16c8.8,0,16,7.2,16,16C48,40.8,40.8,48,32,48z M43,27.6c-5.9-3.5-15.3-3.9-21-2.1 c-0.8,0.2-1.2,1.1-1,1.9c0.2,0.8,1.1,1.2,1.9,1c4.9-1.5,13.4-1.2,18.6,1.9c0.7,0.4,1.6,0.2,2.1-0.5C43.9,29,43.7,28,43,27.6z\"});\n\nexport { _socialIcons_spotify as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_squarespace = register(\"squarespace\", {\"color\":\"#1C1C1C\",\"path\":\"M0,0v64h64V0H0z M39.6,21.1c0.6,0.6,0.6,1.6,0,2.2c-0.6,0.6-1.6,0.6-2.2,0c-1.2-1.2-3.2-1.2-4.4,0l-9.8,9.8 c-0.6,0.6-1.6,0.6-2.2,0c-0.6-0.6-0.6-1.6,0-2.2l9.8-9.8C33.3,18.7,37.2,18.7,39.6,21.1z M17.8,36.4c-2.4-2.4-2.4-6.3,0-8.7l7.5-7.5 c1.2-1.2,3.2-1.2,4.4,0L20,29.8c-1.2,1.2-1.2,3.2,0,4.4c1.2,1.2,3.2,1.2,4.4,0l9.8-9.8c0.6-0.6,1.6-0.6,2.2,0c0.6,0.6,0.6,1.6,0,2.2 l-9.8,9.8C24.1,38.8,20.2,38.8,17.8,36.4z M24.4,42.9c-0.6-0.6-0.6-1.6,0-2.2c0.6-0.6,1.6-0.6,2.2,0c1.2,1.2,3.2,1.2,4.4,0l9.8-9.8 c0.6-0.6,1.6-0.6,2.2,0c0.6,0.6,0.6,1.6,0,2.2l-9.8,9.8C30.7,45.3,26.8,45.3,24.4,42.9z M46.2,36.4l-7.5,7.5c-1.2,1.2-3.2,1.2-4.4,0 l9.6-9.6c1.2-1.2,1.2-3.2,0-4.4c-1.2-1.2-3.2-1.2-4.4,0l-9.8,9.8c-0.6,0.6-1.6,0.6-2.2,0c-0.6-0.6-0.6-1.6,0-2.2l9.8-9.8 c2.4-2.4,6.3-2.4,8.7,0C48.6,30,48.6,34,46.2,36.4z\"});\n\nexport { _socialIcons_squarespace as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_stackoverflow = register(\"stackoverflow\", {\"color\":\"#ed803d\",\"path\":\"M64 0V64H0V0H64ZM46.1451 37.2649H42.7989V47.3034H19.3758V37.2649H16.0297V50.6495H46.1451V37.2649ZM39.4566 39.7243L23.0225 36.2702L23.7133 32.9834L40.1475 36.439L39.4566 39.7243ZM40.4209 35.4912L25.1972 28.401L26.615 25.3563L41.8391 32.4465L40.4209 35.4912ZM42.3161 31.6796L29.4097 20.932L31.5591 18.3512L44.4655 29.0985L42.3161 31.6796ZM35.0455 14.9923L37.7407 12.9877L47.7633 26.4638L45.0681 28.4682L35.0455 14.9923ZM39.4527 43.9572H22.7219V40.6111H39.4527V43.9572Z\"});\n\nexport { _socialIcons_stackoverflow as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_t = register(\"t.me\", {\"color\":\"#49a9e9\",\"path\":\"M0,0v64h64V0H0z M 11.886719 33.476562 C 15.617188 31.421875 19.78125 29.707031 23.671875 27.980469 C 30.367188 25.15625 37.085938 22.382812 43.875 19.800781 C 45.199219 19.359375 47.570312 18.929688 47.804688 20.886719 C 47.675781 23.660156 47.152344 26.414062 46.792969 29.167969 C 45.878906 35.222656 44.824219 41.261719 43.796875 47.300781 C 43.441406 49.308594 40.921875 50.351562 39.308594 49.0625 C 35.4375 46.449219 31.53125 43.855469 27.710938 41.179688 C 26.457031 39.90625 27.617188 38.078125 28.738281 37.167969 C 31.925781 34.023438 35.3125 31.351562 38.335938 28.046875 C 39.152344 26.074219 36.742188 27.734375 35.945312 28.246094 C 31.578125 31.253906 27.316406 34.449219 22.710938 37.09375 C 20.359375 38.390625 17.617188 37.28125 15.265625 36.558594 C 13.15625 35.6875 10.066406 34.808594 11.886719 33.476562 Z M 11.886719 33.476562\"});\n\nexport { _socialIcons_t as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_telegram = register(\"telegram\", {\"color\":\"#49a9e9\",\"path\":\"M0,0v64h64V0H0z M 11.886719 33.476562 C 15.617188 31.421875 19.78125 29.707031 23.671875 27.980469 C 30.367188 25.15625 37.085938 22.382812 43.875 19.800781 C 45.199219 19.359375 47.570312 18.929688 47.804688 20.886719 C 47.675781 23.660156 47.152344 26.414062 46.792969 29.167969 C 45.878906 35.222656 44.824219 41.261719 43.796875 47.300781 C 43.441406 49.308594 40.921875 50.351562 39.308594 49.0625 C 35.4375 46.449219 31.53125 43.855469 27.710938 41.179688 C 26.457031 39.90625 27.617188 38.078125 28.738281 37.167969 C 31.925781 34.023438 35.3125 31.351562 38.335938 28.046875 C 39.152344 26.074219 36.742188 27.734375 35.945312 28.246094 C 31.578125 31.253906 27.316406 34.449219 22.710938 37.09375 C 20.359375 38.390625 17.617188 37.28125 15.265625 36.558594 C 13.15625 35.6875 10.066406 34.808594 11.886719 33.476562 Z M 11.886719 33.476562\"});\n\nexport { _socialIcons_telegram as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_tiktok = register(\"tiktok\", {\"color\":\"#000000\",\"path\":\"M 0 0 L 0 64 L 64 64 L 64 0 L 0 0 z M 32.78125 16 L 38.275391 16 C 38.266721 16 38.210919 16.525885 38.349609 17.339844 L 38.341797 17.339844 C 38.507788 18.320459 38.959422 19.720964 40.166016 21.101562 A 8.8574793 8.8575582 0 0 0 41.783203 22.476562 A 7.2842381 7.2843028 0 0 0 42.414062 22.84375 C 43.819312 23.544381 45.19123 23.756924 45.867188 23.683594 L 45.867188 29.140625 C 45.867188 29.140625 43.937775 29.059668 42.505859 28.679688 C 40.509978 28.145715 39.230469 27.326172 39.230469 27.326172 C 39.230469 27.326172 38.342051 26.739219 38.275391 26.699219 L 38.275391 37.972656 C 38.275391 38.599293 38.110585 40.16734 37.613281 41.474609 A 10.563379 10.563472 0 0 1 35.769531 44.537109 C 35.769531 44.537109 34.543209 46.057509 32.388672 47.078125 C 30.446121 47.998744 28.737199 47.977377 28.226562 47.998047 C 28.226563 47.998047 25.275743 48.116502 22.615234 46.308594 L 22.601562 46.294922 L 22.601562 46.308594 A 11.168009 11.168108 0 0 1 20.220703 44.0625 C 19.378754 42.988556 18.86184 41.71511 18.728516 41.341797 L 18.728516 41.328125 C 18.516528 40.694159 18.072012 39.16028 18.138672 37.679688 C 18.244666 35.071156 19.121529 33.464433 19.353516 33.064453 A 10.785366 10.785461 0 0 1 21.705078 30.162109 A 10.208733 10.208824 0 0 1 29.572266 27.861328 L 29.566406 33.457031 A 4.5930634 4.5931041 0 0 0 28.138672 33.230469 C 25.578158 33.230469 23.501953 35.319903 23.501953 37.898438 C 23.501953 40.476973 25.578158 42.564453 28.138672 42.564453 A 4.5863967 4.5864374 0 0 0 30.412109 41.964844 A 4.6663919 4.6664333 0 0 0 32.759766 38.259766 L 32.759766 38.248047 C 32.763066 38.232047 32.763672 38.216512 32.763672 38.201172 C 32.765672 38.163839 32.769531 38.132316 32.769531 38.097656 C 32.781531 37.819002 32.78125 37.535319 32.78125 37.25 L 32.78125 16 z \"});\n\nexport { _socialIcons_tiktok as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_tumblr = register(\"tumblr\", {\"color\":\"#2c4762\",\"path\":\"M0,0v64h64V0H0z M35.4,47c-6.5,0.1-9-4.7-9-8v-9.8h-3v-3.9c4.6-1.6,5.6-5.7,5.9-8.1c0-0.2,0.1-0.2,0.2-0.2 c0.1,0,4.4,0,4.4,0v7.6h6v4.5h-6v9.3c0,1.3,0.5,3,2.9,3c0.8,0,1.9-0.3,2.4-0.5l1.4,4.3C40.1,46,37.6,47,35.4,47z\"});\n\nexport { _socialIcons_tumblr as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_twitch = register(\"twitch\", {\"color\":\"#6441A5\",\"path\":\"M0,0v64h64V0H0z M47,35.8l-7.6,7.6h-5.7l-3.8,3.8H26v-3.8h-7V23.1l1.9-5.1H47V35.8z M29.2,42.8L33,39h7l4.5-4.5 v-14h-21V39h5.7V42.8z M37.5,25.6H40v7.6h-2.5V25.6z M30.5,25.6H33v7.6h-2.5V25.6z\"});\n\nexport { _socialIcons_twitch as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_twitter = register(\"twitter\", {\"color\":\"#00aced\",\"path\":\"M0,0v64h64V0H0z M44.7,25.5c0,0.3,0,0.6,0,0.8C44.7,35,38.1,45,26.1,45c-3.7,0-7.2-1.1-10.1-2.9 c0.5,0.1,1,0.1,1.6,0.1c3.1,0,5.9-1,8.2-2.8c-2.9-0.1-5.3-2-6.1-4.6c0.4,0.1,0.8,0.1,1.2,0.1c0.6,0,1.2-0.1,1.7-0.2 c-3-0.6-5.3-3.3-5.3-6.4c0,0,0-0.1,0-0.1c0.9,0.5,1.9,0.8,3,0.8c-1.8-1.2-2.9-3.2-2.9-5.5c0-1.2,0.3-2.3,0.9-3.3 c3.2,4,8.1,6.6,13.5,6.9c-0.1-0.5-0.2-1-0.2-1.5c0-3.6,2.9-6.6,6.6-6.6c1.9,0,3.6,0.8,4.8,2.1c1.5-0.3,2.9-0.8,4.2-1.6 c-0.5,1.5-1.5,2.8-2.9,3.6c1.3-0.2,2.6-0.5,3.8-1C47.1,23.4,46,24.5,44.7,25.5z\"});\n\nexport { _socialIcons_twitter as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_upwork = register(\"upwork\", {\"color\":\"#3da800\",\"path\":\"M 0,0 H 64 V 64 H 0 Z m 24.9375,17.111328 h 5.599609 c 1.1,3.8 3.09961,8.19961 5.59961,12.09961 1.6,-5.5 5.60039,-9 10.90039,-9 6.1,0 11.09961,5.001562 11.09961,11.101562 0,6.4 -4.99961,11.398438 -11.09961,11.398438 -3,-10e-7 -5.499218,-0.799219 -7.699218,-2.199219 L 36.9375,52.412109 h -5.701172 l 3.5,-16.300781 c -1.5,-2.1 -2.9,-4.499219 -4,-6.699219 v 2.5 c 0,6.1 -4.898437,11 -10.898437,11 -6,0 -10.900391,-4.9 -10.900391,-11 V 17.210938 h 5.400391 V 31.8125 c 0,2.9 2.398828,5.298828 5.298828,5.298828 2.9,0 5.300781,-2.398828 5.300781,-5.298828 z m 22.199219,8.800781 c -4.1,0 -5.398828,4.000391 -5.798828,6.400391 v 0.09961 l -0.601563,2.199219 c 1.8,1.5 4.100781,2.5 6.300781,2.5 2.9,0 5.599219,-2.499609 5.699219,-5.599609 0,-3.1 -2.499609,-5.59961 -5.599609,-5.59961 z\"});\n\nexport { _socialIcons_upwork as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_vevo = register(\"vevo\", {\"color\":\"#ED1A3B\",\"path\":\"M0,0v64h64V0H0z M34.2,41.9c-1.4,2.1-2.9,3.1-5,3.1c0,0-3,0.2-4.1-3.4L20,21h8.1l3,12.3c1.4-2.1,5.1-7.7,5.1-7.7 c1.4-1.9,2.2-4.6,6.8-4.6c0.2,0,5,0,5,0L34.2,41.9z\"});\n\nexport { _socialIcons_vevo as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_vimeo = register(\"vimeo\", {\"color\":\"#1ab7ea\",\"path\":\"M0,0v64h64V0H0z M40.9,37c-4.1,5.3-7.5,8-10.4,8c-1.7,0-3.2-1.6-4.4-4.8c-0.8-3-1.6-5.9-2.4-8.9 c-0.9-3.2-1.9-4.8-2.9-4.8c-0.2,0-1,0.5-2.4,1.4L17,26c1.5-1.3,2.9-2.6,4.4-3.9c2-1.7,3.5-2.6,4.4-2.7c2.3-0.2,3.8,1.4,4.3,4.8 c0.6,3.7,1,6,1.2,6.9c0.7,3.1,1.4,4.6,2.2,4.6c0.6,0,1.6-1,2.8-3c1.3-2,1.9-3.5,2-4.5c0.2-1.7-0.5-2.6-2-2.6c-0.7,0-1.5,0.2-2.2,0.5 c1.5-4.8,4.3-7.2,8.4-7c3.1,0.1,4.5,2.1,4.4,6C46.9,27.9,44.8,31.9,40.9,37z\"});\n\nexport { _socialIcons_vimeo as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_vine = register(\"vine\", {\"color\":\"#00BF8F\",\"path\":\"M0,0v64h64V0H0z M38.4,21.5c-1.2,0-2.1,1.2-2.1,3.4c0,4.6,2.9,7.2,6.7,7.2c0.7,0,1.4-0.1,2.2-0.3v3.6 c-1.3,0.3-2.5,0.4-3.6,0.4c-2.5,5.3-7,9.8-8.6,10.7c-1,0.5-1.9,0.6-2.9-0.1c-1.9-1.1-8.9-6.9-11.2-25H24c1.3,10.9,4.4,16.5,7.9,20.7 c1.9-1.9,3.7-4.4,5.2-7.3c-3.4-1.7-5.5-5.5-5.5-10c0-4.5,2.6-7.9,7-7.9c4.3,0,6.6,2.7,6.6,7.3c0,1.7-0.4,3.7-1,5.2 c-3.2,0.6-4.4-1.4-4.4-1.4c0.2-0.8,0.6-2.1,0.6-3.3C40.3,22.6,39.5,21.5,38.4,21.5z\"});\n\nexport { _socialIcons_vine as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_vk = register(\"vk\", {\"color\":\"#45668e\",\"path\":\"M0,0v64h64V0H0z M44.94,44.84h-0.2c-2.17-.36-3.66-1.92-4.92-3.37C39.1,40.66,38,38.81,36.7,39c-1.85.3-.93,3.52-1.71,4.9-0.62,1.11-3.29.91-5.12,0.71-5.79-.62-8.75-3.77-11.35-7.14A64.13,64.13,0,0,1,11.6,26a10.59,10.59,0,0,1-1.51-4.49C11,20.7,12.56,21,14.11,21c1.31,0,3.36-.29,4.32.2C19,21.46,19.57,23,20,24a37.18,37.18,0,0,0,3.31,5.82c0.56,0.81,1.41,2.35,2.41,2.14s1.06-2.63,1.1-4.18c0-1.77,0-4-.5-4.9S25,22,24.15,21.47c0.73-1.49,2.72-1.63,5.12-1.63,2,0,4.84-.23,5.62,1.12s0.25,3.85.2,5.71c-0.06,2.09-.41,4.25,1,5.21,1.09-.12,1.68-1.2,2.31-2A28,28,0,0,0,41.72,24c0.44-1,.91-2.65,1.71-3,1.21-.47,3.15-0.1,4.92-0.1,1.46,0,4.05-.41,4.52.61,0.39,0.85-.75,3-1.1,3.57a61.88,61.88,0,0,1-4.12,5.61c-0.58.78-1.78,2-1.71,3.27,0.05,0.94,1,1.67,1.71,2.35a33.12,33.12,0,0,1,3.92,4.18c0.47,0.62,1.5,2,1.4,2.76C52.66,45.81,46.88,44.24,44.94,44.84Z\"});\n\nexport { _socialIcons_vk as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_vsco = register(\"vsco\", {\"color\":\"#83878A\",\"path\":\"M0,0v64h64V0H0z M18.5,34.5c-1.4,0-2.5-1.1-2.5-2.5c0-1.4,1.1-2.5,2.5-2.5c1.4,0,2.5,1.1,2.5,2.5 C20.9,33.4,19.8,34.5,18.5,34.5z M25.1,41.1c-1.4,0-2.5-1.1-2.5-2.5c0-1.4,1.1-2.5,2.5-2.5c1.4,0,2.5,1.1,2.5,2.5 C27.6,40,26.5,41.1,25.1,41.1z M25.2,27.7c-1.4,0-2.5-1.1-2.5-2.5c0-1.4,1.1-2.5,2.5-2.5c1.4,0,2.5,1.1,2.5,2.5 C27.7,26.6,26.6,27.7,25.2,27.7z M32,48c-1.4,0-2.5-1.1-2.5-2.5c0-1.4,1.1-2.5,2.5-2.5c1.4,0,2.5,1.1,2.5,2.5 C34.5,46.9,33.4,48,32,48z M29.5,31.9c0-1.4,1.1-2.5,2.5-2.5c1.4,0,2.5,1.1,2.5,2.5c0,1.4-1.1,2.5-2.5,2.5 C30.6,34.4,29.5,33.3,29.5,31.9z M32,20.9c-1.4,0-2.5-1.1-2.5-2.5c0-1.4,1.1-2.5,2.5-2.5c1.4,0,2.5,1.1,2.5,2.5 C34.5,19.8,33.4,20.9,32,20.9z M38.7,22.7c1.4,0,2.5,1.1,2.5,2.5c0,1.4-1.1,2.5-2.5,2.5c-1.4,0-2.5-1.1-2.5-2.5 C36.2,23.8,37.3,22.7,38.7,22.7z M38.8,41.2c-1.4,0-2.5-1.1-2.5-2.5c0-1.4,1.1-2.5,2.5-2.5c1.4,0,2.5,1.1,2.5,2.5 C41.2,40.1,40.1,41.2,38.8,41.2z M45.5,34.5c-1.4,0-2.5-1.1-2.5-2.5c0-1.4,1.1-2.5,2.5-2.5c1.4,0,2.5,1.1,2.5,2.5 C48,33.4,46.9,34.5,45.5,34.5z\"});\n\nexport { _socialIcons_vsco as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_wechat = register(\"wechat\", {\"color\":\"#00c80f\",\"path\":\"M65.6,65.6H-1.6V-1.6H65.6V65.6z M49.738,46.043c2.846-2.061,4.662-5.107,4.662-8.498 c0-6.207-6.043-11.244-13.492-11.244c-7.453,0-13.494,5.037-13.494,11.244c0,6.213,6.041,11.246,13.494,11.246 c1.537,0,3.025-0.221,4.402-0.615l0.395-0.059c0.262,0,0.498,0.078,0.717,0.207l2.955,1.707l0.26,0.082 c0.252,0,0.451-0.203,0.451-0.449l-0.074-0.328l-0.605-2.271l-0.047-0.287C49.361,46.477,49.508,46.211,49.738,46.043L49.738,46.043 z M25.793,13.887C16.85,13.887,9.6,19.93,9.6,27.383c0,4.066,2.182,7.723,5.596,10.197c0.275,0.195,0.453,0.518,0.453,0.879 l-0.055,0.344l-0.732,2.725l-0.086,0.393c0,0.301,0.24,0.541,0.539,0.541l0.311-0.1l3.545-2.049c0.27-0.152,0.551-0.248,0.861-0.248 l0.475,0.068c1.654,0.479,3.439,0.742,5.287,0.742l0.891-0.021c-0.354-1.053-0.543-2.16-0.543-3.309 c0-6.793,6.611-12.305,14.768-12.305l0.879,0.021C40.564,18.818,33.871,13.887,25.793,13.887z M36.408,35.746 c-0.996,0-1.799-0.805-1.799-1.799c0-0.992,0.803-1.799,1.799-1.799s1.799,0.807,1.799,1.799 C38.207,34.941,37.404,35.746,36.408,35.746z M45.404,35.746c-0.996,0-1.799-0.805-1.799-1.799c0-0.992,0.803-1.799,1.799-1.799 s1.799,0.807,1.799,1.799C47.203,34.941,46.4,35.746,45.404,35.746z M20.395,25.221c-1.189,0-2.158-0.965-2.158-2.158 s0.969-2.158,2.158-2.158c1.193,0,2.162,0.965,2.162,2.158S21.588,25.221,20.395,25.221z M31.191,25.221 c-1.193,0-2.158-0.965-2.158-2.158s0.965-2.158,2.158-2.158s2.158,0.965,2.158,2.158S32.385,25.221,31.191,25.221z\"});\n\nexport { _socialIcons_wechat as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_whatsapp = register(\"whatsapp\", {\"color\":\"#25D366\",\"path\":\"M0,0v64h64V0H0z M 48 31.589844 C 48 40.195312 40.96875 47.175781 32.289062 47.175781 C 29.535156 47.175781 26.949219 46.472656 24.695312 45.234375 L 16 48 L 18.835938 39.636719 C 17.40625 37.289062 16.582031 34.53125 16.582031 31.589844 C 16.582031 22.980469 23.613281 16 32.289062 16 C 40.96875 16 48 22.980469 48 31.589844 Z M 32.289062 18.484375 C 25.007812 18.484375 19.082031 24.363281 19.082031 31.589844 C 19.082031 34.457031 20.019531 37.109375 21.597656 39.269531 L 19.949219 44.136719 L 25.023438 42.527344 C 27.109375 43.894531 29.609375 44.691406 32.292969 44.691406 C 39.574219 44.691406 45.5 38.816406 45.5 31.589844 C 45.5 24.363281 39.574219 18.484375 32.289062 18.484375 Z M 40.222656 35.179688 C 40.125 35.019531 39.871094 34.921875 39.484375 34.730469 C 39.101562 34.542969 37.207031 33.617188 36.855469 33.488281 C 36.5 33.363281 36.242188 33.296875 35.988281 33.679688 C 35.730469 34.0625 34.992188 34.921875 34.769531 35.179688 C 34.542969 35.433594 34.320312 35.464844 33.933594 35.273438 C 33.546875 35.082031 32.308594 34.679688 30.835938 33.378906 C 29.691406 32.367188 28.917969 31.117188 28.695312 30.734375 C 28.472656 30.351562 28.671875 30.144531 28.863281 29.953125 C 29.039062 29.78125 29.25 29.507812 29.441406 29.285156 C 29.636719 29.0625 29.699219 28.902344 29.828125 28.648438 C 29.957031 28.390625 29.890625 28.167969 29.792969 27.976562 C 29.699219 27.785156 28.925781 25.90625 28.605469 25.140625 C 28.285156 24.375 27.964844 24.503906 27.742188 24.503906 C 27.515625 24.503906 27.257812 24.472656 27.003906 24.472656 C 26.746094 24.472656 26.328125 24.566406 25.976562 24.949219 C 25.621094 25.332031 24.628906 26.257812 24.628906 28.136719 C 24.628906 30.015625 26.007812 31.832031 26.199219 32.085938 C 26.394531 32.34375 28.863281 36.324219 32.777344 37.855469 C 36.691406 39.386719 36.691406 38.875 37.398438 38.8125 C 38.105469 38.746094 39.675781 37.886719 40 36.996094 C 40.320312 36.101562 40.320312 35.335938 40.222656 35.179688 Z M 40.222656 35.179688\"});\n\nexport { _socialIcons_whatsapp as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_x = register(\"x\", {\"color\":\"#000000\",\"path\":\"M 0 0 L 0 64 L 64 64 L 64 0 L 0 0 z M 16 17.537109 L 26.125 17.537109 L 33.117188 26.779297 L 41.201172 17.537109 L 46.109375 17.537109 L 35.388672 29.789062 L 48 46.462891 L 38.125 46.462891 L 30.390625 36.351562 L 21.541016 46.462891 L 16.632812 46.462891 L 28.097656 33.357422 L 16 17.537109 z M 21.730469 20.320312 L 39.480469 43.525391 L 42.199219 43.525391 L 24.648438 20.320312 L 21.730469 20.320312 z \"});\n\nexport { _socialIcons_x as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_yelp = register(\"yelp\", {\"color\":\"#B90C04\",\"path\":\"M0,0v64h64V0H0z M22.4,37.9c-0.4,0-0.7-0.2-0.9-0.6c-0.1-0.3-0.2-0.7-0.3-1.3c-0.2-1.7,0-4.2,0.5-5 c0.2-0.4,0.6-0.6,1-0.6c0.3,0,0.5,0.1,5.5,2.1c0,0,1.5,0.6,1.5,0.6c0.5,0.2,0.9,0.7,0.8,1.4c0,0.6-0.4,1.1-0.9,1.2 c0,0-2.1,0.7-2.1,0.7C22.8,37.9,22.7,37.9,22.4,37.9z M33,41c0,4.9,0,5-0.1,5.3c-0.1,0.4-0.4,0.6-0.9,0.7c-1.2,0.2-5.1-1.2-6-2.2 c-0.2-0.2-0.3-0.4-0.3-0.6c0-0.2,0-0.3,0.1-0.4c0.1-0.2,0.2-0.4,3.7-4.5c0,0,1-1.2,1-1.2c0.3-0.4,1-0.6,1.5-0.4 c0.6,0.2,0.9,0.7,0.9,1.2C33,38.8,33,41,33,41z M32.2,30.8c-0.3,0.1-1,0.3-2-1.2c0,0-6.4-10.1-6.5-10.4c-0.1-0.3,0-0.7,0.3-1.1 c1-1,6.1-2.4,7.5-2.1c0.4,0.1,0.7,0.4,0.9,0.8c0.1,0.4,0.7,9.8,0.8,11.9C33.2,30.5,32.4,30.7,32.2,30.8z M35.4,31.3 c0,0,1.3-1.8,1.3-1.8c2.8-3.9,3-4.1,3.2-4.2c0.3-0.2,0.7-0.2,1.1,0c1.1,0.5,3.4,3.9,3.5,5.2c0,0,0,0,0,0c0,0.4-0.1,0.8-0.5,1 c-0.2,0.1-0.4,0.2-5.7,1.5c-0.8,0.2-1.3,0.3-1.6,0.4c0,0,0,0,0,0c-0.5,0.1-1.1-0.1-1.4-0.6C35.1,32.3,35.1,31.7,35.4,31.3z M44.7,39.6c-0.2,1.3-2.7,4.5-3.9,5c-0.4,0.2-0.8,0.1-1.1-0.1c-0.2-0.2-0.4-0.5-3.2-5l-0.8-1.3c-0.3-0.5-0.3-1.1,0.1-1.6 c0.4-0.5,0.9-0.6,1.4-0.5c0,0,2.1,0.7,2.1,0.7c4.6,1.5,4.8,1.6,5,1.7C44.7,38.8,44.8,39.2,44.7,39.6z\"});\n\nexport { _socialIcons_yelp as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_youtube = register(\"youtube\", {\"color\":\"#ff3333\",\"path\":\"M0,0v64h64V0H0z M47,33.1c0,2.4-0.3,4.9-0.3,4.9s-0.3,2.1-1.2,3c-1.1,1.2-2.4,1.2-3,1.3 C38.3,42.5,32,42.6,32,42.6s-7.8-0.1-10.2-0.3c-0.7-0.1-2.2-0.1-3.3-1.3c-0.9-0.9-1.2-3-1.2-3S17,35.6,17,33.1v-2.3 c0-2.4,0.3-4.9,0.3-4.9s0.3-2.1,1.2-3c1.1-1.2,2.4-1.2,3-1.3c4.2-0.3,10.5-0.3,10.5-0.3h0c0,0,6.3,0,10.5,0.3c0.6,0.1,1.9,0.1,3,1.3 c0.9,0.9,1.2,3,1.2,3s0.3,2.4,0.3,4.9V33.1z M28.9,35.9l8.1-4.2l-8.1-4.2L28.9,35.9z\"});\n\nexport { _socialIcons_youtube as default };\n","import React, { useEffect, useState, useContext } from 'react';\nimport { SocialIcon } from 'react-social-icons';\nimport { ThemeContext } from 'styled-components';\nimport endpoints from '../constants/endpoints';\n\nconst styles = {\n iconStyle: {\n marginLeft: 10,\n marginRight: 10,\n marginBottom: 10,\n },\n};\n\nfunction Social() {\n const theme = useContext(ThemeContext);\n const [data, setData] = useState(null);\n\n useEffect(() => {\n fetch(endpoints.social, {\n method: 'GET',\n })\n .then((res) => res.json())\n .then((res) => setData(res))\n .catch((err) => err);\n }, []);\n\n return (\n
\n {data ? data.social.map((social) => (\n \n )) : null}\n
\n );\n}\n\nexport default Social;\n","import React, { useState,useEffect } from 'react';\nimport DarkModeToggle from 'react-dark-mode-toggle';\nimport PropTypes from 'prop-types';\nimport AppContext from '../AppContext';\n\nfunction ThemeToggler(props) {\n\n\n const { onClick } = props;\n const handleOnChange = (darkMode) => {\n if(darkMode){\n\n localStorage.theme = 'light';\n document.documentElement.classList.remove('dark')\n }else{\n localStorage.theme = 'dark'\n document.documentElement.classList.add('dark')\n }\n setDarkMode(!darkMode)\n onClick();\n };\n const [darkMode,setDarkMode] = useState(true)\n useEffect(()=>{\n if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {\n setDarkMode(true)\n } else {\n setDarkMode(false)\n }\n },[])\n\n return (\n <>\n\n\n
\n handleOnChange(darkMode)}\n checked={darkMode}\n size={50}\n />\n
\n\n \n );\n}\n\n// ThemeToggler.propTypes = {\n// onClick: PropTypes.func,\n// };\n// ThemeToggler.defaultProps = {\n// onClick: () => {},\n// };\n\nexport default ThemeToggler;\n","const endpoints = {\n navbar: 'profile/navbar.json',\n routes: 'profile/routes.json',\n home: 'profile/home.json',\n social: 'profile/social.json',\n about: 'profile/about.json',\n skills: 'profile/skills.json',\n education: 'profile/education.json',\n experiences: 'profile/experiences.json',\n projects: 'profile/projects.json',\n};\n\nexport default endpoints;\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\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\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\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","'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","(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 expressionsInterfaces = 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 setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\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.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 // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), 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 getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\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 this.expressionsPlugin = getExpressionsPlugin();\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 : getRegisteredRenderer() || '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 if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\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 (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\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 if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\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('_play');\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('_pause');\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.expressionsPlugin = 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.setLoop = function (isLooping) {\n this.loop = isLooping;\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 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 var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\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 ShapePath.prototype.length = function () {\n return this._length;\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 multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\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.multiply = multiply;\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.12.2';\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 this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\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 floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 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], amplitude, frequency, pointType));\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 linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.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 var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\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, lineJoin, miterLimit));\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 BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\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); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * 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 getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\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(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\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.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\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 SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\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 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 var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\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 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 var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\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.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\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.slotManager = slotFactory(animData);\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 var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\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 finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\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 svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\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 if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\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$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[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 SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[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 if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\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._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\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 this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\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(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\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 useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\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 maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\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.renderLocalTransform();\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\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\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 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 mat.multiply(itemData.transformers[k].mProps.v);\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' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\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\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\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 var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\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.setCurrentData(dData);\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\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 ITextElement.prototype.validateText = function () {\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 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 this.validateText();\n\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 this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\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] && this.elements[i].destroy) {\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.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\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 var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\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 var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\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 runExpressions: !config || config.runExpressions === undefined || config.runExpressions\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 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 sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\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 var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 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(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.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 CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\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 var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\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 this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\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 clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\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' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\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 renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // 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 renderer.ctxStroke();\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 this.globalData.renderer.ctxFill(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 this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // 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 var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // 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 renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// 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 renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // 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 renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// 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 this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\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 this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\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 () {\n this.canvasContext.save();\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.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\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.contextData.setContext(this.canvasContext);\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 (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * 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] && this.elements[i].destroy) {\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 = 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 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 CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\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 runExpressions: !config || config.runExpressions === undefined || config.runExpressions\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 if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\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 } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\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 this.validateText();\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 if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\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 runExpressions: !config || config.runExpressions === undefined || config.runExpressions\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 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 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 /* 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$2(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$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 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 var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\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' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\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$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\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$1(a);\n\n var tOfB = _typeof$1(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$1(a);\n\n var tOfB = _typeof$1(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$1(a);\n\n var tOfB = _typeof$1(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 // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\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, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\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 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 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 _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 (!_sourceText || stringValue !== _sourceText.value) {\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 Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\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 var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\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 var linearFilterValue = '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';\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', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\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.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\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 1 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 globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.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 function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\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);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","module.exports = function parseUnit(str, out) {\n if (!out)\n out = [ 0, '' ]\n\n str = String(str)\n var num = parseFloat(str, 10)\n out[0] = num\n out[1] = str.match(/[\\d.\\-\\+]*\\s*(.*)/)[1] || ''\n return out\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-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'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\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","\"use strict\";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)}Object.defineProperty(exports,\"__esModule\",{value:true});exports[\"default\"]=void 0;var _react=_interopRequireWildcard(require(\"react\"));var _propTypes=_interopRequireDefault(require(\"prop-types\"));var _reactLottiePlayer=_interopRequireDefault(require(\"react-lottie-player\"));var _parseUnit3=_interopRequireDefault(require(\"parse-unit\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _getRequireWildcardCache(){if(typeof WeakMap!==\"function\")return null;var cache=new WeakMap;_getRequireWildcardCache=function _getRequireWildcardCache(){return cache};return cache}function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj}if(obj===null||_typeof(obj)!==\"object\"&&typeof obj!==\"function\"){return{default:obj}}var cache=_getRequireWildcardCache();if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj[\"default\"]=obj;if(cache){cache.set(obj,newObj)}return newObj}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o===\"string\")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n===\"Object\"&&o.constructor)n=o.constructor.name;if(n===\"Map\"||n===\"Set\")return Array.from(o);if(n===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);ib}return!1}function v(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 v(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 v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(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 v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(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(ra,\nsa);z[b]=new v(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(ra,sa);z[b]=new v(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(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(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{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(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 ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(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 Qa(b);case 8:return b===za?\"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 Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(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 Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(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 Ya(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 Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(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 ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(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\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(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 cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={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},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=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 ub(a,b){if(b){if(tb[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 vb(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 wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(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 uc(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=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(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 Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(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=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!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=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();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=Xa(a.document)}return b}function Ne(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 Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(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=Ke(c,f);var g=Ke(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,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(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}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;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 Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(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,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){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===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa: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=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(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=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(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 Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{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(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();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=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;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[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(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;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(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=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(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(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(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&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(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 Sj(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 Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));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 Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(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 Wj(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=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(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(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(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)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(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*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(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);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(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=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,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);Sg(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}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(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 Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(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 yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(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 bl(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=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 {};\n\nconst makeLottiePlayer = ({ loadAnimation }) => {\n const Lottie = memo(forwardRef((params, forwardedRef) => {\n const {\n animationData = null,\n path = null,\n\n play = null,\n speed = 1,\n direction = 1,\n segments: segmentsIn = null,\n goTo = null,\n useSubframes = true,\n\n renderer = 'svg',\n loop = true,\n rendererSettings: rendererSettingsIn = emptyObject,\n\n audioFactory = null,\n\n onLoad = noOp,\n onComplete = noOp,\n onLoopComplete = noOp,\n onEnterFrame = noOp,\n onSegmentStart = noOp,\n ...props\n } = params;\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 useEffect(() => () => animRef.current.removeEventListener('DOMLoaded', onLoad), [onLoad]);\n\n const setLottieRefs = useCallback((newRef) => {\n animRef.current = newRef;\n // eslint-disable-next-line no-param-reassign\n if (forwardedRef) forwardedRef.current = newRef;\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\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 const 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 setLottieRefs(lottie);\n\n const onDomLoaded = () => setReady(true);\n\n animRef.current.addEventListener('DOMLoaded', onDomLoaded);\n\n return () => {\n animRef.current.removeEventListener('DOMLoaded', onDomLoaded);\n setReady(false);\n animRef.current.destroy();\n setLottieRefs(undefined);\n };\n }, [loop, renderer, rendererSettings, animationData, path, audioFactory, setLottieRefs]);\n\n useEffect(() => {\n animRef.current.addEventListener('DOMLoaded', onLoad);\n }, [onLoad]);\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, direction]);\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 useEffect(() => {\n if (animRef.current.setSubframe) animRef.current.setSubframe(useSubframes);\n // console.log(animRef.current.isSubframeEnabled)\n }, [useSubframes]);\n\n return (\n \n );\n }));\n\n Lottie.propTypes = propTypes;\n\n return Lottie;\n};\n\nexport default makeLottiePlayer;\n","import lottie from 'lottie-web';\nimport makeLottiePlayer from './makeLottiePlayer';\n\nexport default makeLottiePlayer(lottie);\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>>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","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(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}\n\nexport function __classPrivateFieldSet(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}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace, substr, match} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @param {object[]} children\n * @return {string}\n */\nexport function prefix (value, length, children) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// tab-size\n\t\tcase 4789:\n\t\t\treturn MOZ + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t\t// default: fallthrough to below\n\t\t\t}\n\t\t// flex, flex-direction, scroll-snap-type, writing-mode\n\t\tcase 6828: case 4268: case 2903:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/g, '') + (!match(value, /flex-|baseline/) ? MS + 'grid-row-' + replace(value, /flex-|-self/g, '') : '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/g, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// justify-self\n\t\tcase 4200:\n\t\t\tif (!match(value, /flex-|baseline/)) return MS + 'grid-column-align' + substr(value, length) + value\n\t\t\tbreak\n\t\t// grid-template-(columns|rows)\n\t\tcase 2592: case 3360:\n\t\t\treturn MS + replace(value, 'template-', '') + value\n\t\t// grid-(row|column)-start\n\t\tcase 4384: case 3616:\n\t\t\tif (children && children.some(function (element, index) { return length = index, match(element.props, /grid-\\w+-end/) })) {\n\t\t\t\treturn ~indexof(value + (children = children[length].value), 'span') ? value : (MS + replace(value, '-start', '') + value + MS + 'grid-row-span:' + (~indexof(children, 'span') ? match(children, /\\d+/) : +match(children, /\\d+/) - +match(value, /\\d+/)) + ';')\n\t\t\t}\n\t\t\treturn MS + replace(value, '-start', '') + value\n\t\t// grid-(row|column)-end\n\t\tcase 4896: case 4128:\n\t\t\treturn (children && children.some(function (element) { return match(element.props, /grid-\\w+-start/) })) ? value : MS + replace(replace(value, '-end', '-span'), 'span ', '') + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length, children) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// grid-(column|row)\n\t\tcase 5152: case 5920:\n\t\t\treturn replace(value, /(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/, function (_, a, b, c, d, e, f) { return (MS + a + ':' + b + f) + (c ? (MS + a + '-span:' + (d ? e : +e - +b)) + f : '') + value })\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// stick(y)?\n\t\t\tif (charat(value, length + 6) === 121)\n\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\tbreak\n\t\t// display: (flex|inline-flex|grid|inline-grid)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, charat(value, 14) === 45 ? 18 : 11)) {\n\t\t\t\t// (inline-)?fle(x)\n\t\t\t\tcase 120:\n\t\t\t\t\treturn replace(value, /(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t\t// (inline-)?gri(d)\n\t\t\t\tcase 100:\n\t\t\t\t\treturn replace(value, ':', ':' + MS) + value\n\t\t\t}\n\t\t\tbreak\n\t\t// scroll-margin, scroll-margin-(top|right|bottom|left)\n\t\tcase 5719: case 2647: case 2135: case 3927: case 2391:\n\t\t\treturn replace(value, 'scroll-', 'scroll-snap-') + value\n\t}\n\n\treturn value\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine, filter, assign} from './Utility.js'\nimport {copy, lift, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(children = element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, callback = /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","declare let SC_DISABLE_SPEEDY: boolean | null | undefined;\ndeclare let __VERSION__: string;\n\nexport const SC_ATTR: string =\n (typeof process !== 'undefined' &&\n typeof process.env !== 'undefined' &&\n (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR)) ||\n 'data-styled';\n\nexport const SC_ATTR_ACTIVE = 'active';\nexport const SC_ATTR_VERSION = 'data-styled-version';\nexport const SC_VERSION = __VERSION__;\nexport const SPLITTER = '/*!sc*/\\n';\n\nexport const IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\n\nexport const DISABLE_SPEEDY = Boolean(\n typeof SC_DISABLE_SPEEDY === 'boolean'\n ? SC_DISABLE_SPEEDY\n : typeof process !== 'undefined' &&\n typeof process.env !== 'undefined' &&\n typeof process.env.REACT_APP_SC_DISABLE_SPEEDY !== 'undefined' &&\n process.env.REACT_APP_SC_DISABLE_SPEEDY !== ''\n ? process.env.REACT_APP_SC_DISABLE_SPEEDY === 'false'\n ? false\n : process.env.REACT_APP_SC_DISABLE_SPEEDY\n : typeof process !== 'undefined' &&\n typeof process.env !== 'undefined' &&\n typeof process.env.SC_DISABLE_SPEEDY !== 'undefined' &&\n process.env.SC_DISABLE_SPEEDY !== ''\n ? process.env.SC_DISABLE_SPEEDY === 'false'\n ? false\n : process.env.SC_DISABLE_SPEEDY\n : process.env.NODE_ENV !== 'production'\n);\n\n// Shared empty execution context when generating static styles\nexport const STATIC_EXECUTION_CONTEXT = {};\n","import { Dict } from '../types';\n\nexport const EMPTY_ARRAY = Object.freeze([]) as Readonly;\nexport const EMPTY_OBJECT = Object.freeze({}) as Readonly>;\n","import { useRef } from 'react';\n\nconst invalidHookCallRe = /invalid hook call/i;\nconst seen = new Set();\n\nexport const checkDynamicCreation = (displayName: string, componentId?: string | undefined) => {\n if (process.env.NODE_ENV !== 'production') {\n const parsedIdString = componentId ? ` with the id of \"${componentId}\"` : '';\n const message =\n `The component ${displayName}${parsedIdString} has been created dynamically.\\n` +\n \"You may see this warning because you've called styled inside another component.\\n\" +\n 'To resolve this only create new StyledComponents outside of any render method and function component.';\n\n // If a hook is called outside of a component:\n // React 17 and earlier throw an error\n // React 18 and above use console.error\n\n const originalConsoleError = console.error;\n try {\n let didNotCallInvalidHook = true;\n console.error = (consoleErrorMessage, ...consoleErrorArgs) => {\n // The error here is expected, since we're expecting anything that uses `checkDynamicCreation` to\n // be called outside of a React component.\n if (invalidHookCallRe.test(consoleErrorMessage)) {\n didNotCallInvalidHook = false;\n // This shouldn't happen, but resets `warningSeen` if we had this error happen intermittently\n seen.delete(message);\n } else {\n originalConsoleError(consoleErrorMessage, ...consoleErrorArgs);\n }\n };\n // We purposefully call `useRef` outside of a component and expect it to throw\n // If it doesn't, then we're inside another component.\n useRef();\n\n if (didNotCallInvalidHook && !seen.has(message)) {\n console.warn(message);\n seen.add(message);\n }\n } catch (error) {\n // The error here is expected, since we're expecting anything that uses `checkDynamicCreation` to\n // be called outside of a React component.\n if (invalidHookCallRe.test((error as Error).message)) {\n // This shouldn't happen, but resets `warningSeen` if we had this error happen intermittently\n seen.delete(message);\n }\n } finally {\n console.error = originalConsoleError;\n }\n }\n};\n","import { DefaultTheme, ExecutionProps } from '../types';\nimport { EMPTY_OBJECT } from './empties';\n\nexport default function determineTheme(\n props: ExecutionProps,\n providedTheme?: DefaultTheme | undefined,\n defaultProps: { theme?: DefaultTheme | undefined } = EMPTY_OBJECT\n): DefaultTheme | undefined {\n return (props.theme !== defaultProps.theme && props.theme) || providedTheme || defaultProps.theme;\n}\n","// Thanks to ReactDOMFactories for this handy list!\n\nconst elements = [\n 'a',\n 'abbr',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'base',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'keygen',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'menu',\n 'menuitem',\n 'meta',\n 'meter',\n 'nav',\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'u',\n 'ul',\n 'use',\n 'var',\n 'video',\n 'wbr', // SVG\n 'circle',\n 'clipPath',\n 'defs',\n 'ellipse',\n 'foreignObject',\n 'g',\n 'image',\n 'line',\n 'linearGradient',\n 'marker',\n 'mask',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialGradient',\n 'rect',\n 'stop',\n 'svg',\n 'text',\n 'tspan',\n] as const;\n\nexport default new Set(elements);\nexport type SupportedHTMLElements = (typeof elements)[number];\n","// Source: https://www.w3.org/TR/cssom-1/#serialize-an-identifier\n// Control characters and non-letter first symbols are not supported\nconst escapeRegex = /[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g;\n\nconst dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nexport default function escape(str: string) {\n return str // Replace all possible CSS selectors\n .replace(escapeRegex, '-') // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n","const AD_REPLACER_R = /(a)(d)/gi;\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nconst charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nconst getAlphabeticChar = (code: number) => String.fromCharCode(code + (code > 25 ? 39 : 97));\n\n/* input a number, usually a hash and convert it to base-52 */\nexport default function generateAlphabeticName(code: number) {\n let name = '';\n let x;\n\n /* get a char and divide by alphabet-length */\n for (x = Math.abs(code); x > charsLength; x = (x / charsLength) | 0) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return (getAlphabeticChar(x % charsLength) + name).replace(AD_REPLACER_R, '$1-$2');\n}\n","export const SEED = 5381;\n\n// When we have separate strings it's useful to run a progressive\n// version of djb2 where we pretend that we're still looping over\n// the same string\nexport const phash = (h: number, x: string) => {\n let i = x.length;\n\n while (i) {\n h = (h * 33) ^ x.charCodeAt(--i);\n }\n\n return h;\n};\n\n// This is a djb2 hashing function\nexport const hash = (x: string) => {\n return phash(SEED, x);\n};\n","import generateAlphabeticName from './generateAlphabeticName';\nimport { hash } from './hash';\n\nexport default function generateComponentId(str: string) {\n return generateAlphabeticName(hash(str) >>> 0);\n}\n","import { StyledTarget } from '../types';\n\nexport default function isTag(target: StyledTarget<'web'>): target is string {\n return (\n typeof target === 'string' &&\n (process.env.NODE_ENV !== 'production'\n ? target.charAt(0) === target.charAt(0).toLowerCase()\n : true)\n );\n}\n","import React from 'react';\nimport { AnyComponent } from '../types';\n\nconst hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\n// copied from react-is\nconst REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nconst REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\n\n/**\n * Adapted from hoist-non-react-statics to avoid the react-is dependency.\n */\nconst REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true,\n};\n\nconst KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true,\n};\n\nconst FORWARD_REF_STATICS = {\n $$typeof: true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n};\n\nconst MEMO_STATICS = {\n $$typeof: true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true,\n};\n\nconst TYPE_STATICS = {\n [REACT_FORWARD_REF_TYPE]: FORWARD_REF_STATICS,\n [REACT_MEMO_TYPE]: MEMO_STATICS,\n};\n\ntype OmniComponent = AnyComponent;\n\n// adapted from react-is\nfunction isMemo(\n object: OmniComponent | React.MemoExoticComponent\n): object is React.MemoExoticComponent {\n const $$typeofType = 'type' in object && object.type.$$typeof;\n\n return $$typeofType === REACT_MEMO_TYPE;\n}\n\nfunction getStatics(component: OmniComponent) {\n // React v16.11 and below\n if (isMemo(component)) {\n return MEMO_STATICS;\n }\n\n // React v16.12 and above\n return '$$typeof' in component\n ? TYPE_STATICS[component['$$typeof'] as unknown as string]\n : REACT_STATICS;\n}\n\nconst defineProperty = Object.defineProperty;\nconst getOwnPropertyNames = Object.getOwnPropertyNames;\nconst getOwnPropertySymbols = Object.getOwnPropertySymbols;\nconst getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nconst getPrototypeOf = Object.getPrototypeOf;\nconst objectPrototype = Object.prototype;\n\ntype ExcludeList = {\n [key: string]: true;\n};\n\ntype NonReactStatics = {\n [key in Exclude<\n keyof S,\n S extends React.MemoExoticComponent\n ? keyof typeof MEMO_STATICS | keyof C\n : S extends React.ForwardRefExoticComponent\n ? keyof typeof FORWARD_REF_STATICS | keyof C\n : keyof typeof REACT_STATICS | keyof typeof KNOWN_STATICS | keyof C\n >]: S[key];\n};\n\nexport default function hoistNonReactStatics<\n T extends OmniComponent,\n S extends OmniComponent,\n C extends ExcludeList = {},\n>(targetComponent: T, sourceComponent: S, excludelist?: C | undefined) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n const inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, excludelist);\n }\n }\n\n let keys: (String | Symbol)[] = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n const targetStatics = getStatics(targetComponent);\n const sourceStatics = getStatics(sourceComponent);\n\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i] as unknown as string;\n if (\n !(key in KNOWN_STATICS) &&\n !(excludelist && excludelist[key]) &&\n !(sourceStatics && key in sourceStatics) &&\n !(targetStatics && key in targetStatics)\n ) {\n const descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor!);\n } catch (e) {\n /* ignore */\n }\n }\n }\n }\n\n return targetComponent as T & NonReactStatics;\n}\n","export default function isFunction(test: any): test is Function {\n return typeof test === 'function';\n}\n","import { StyledComponentBrand } from '../types';\n\nexport default function isStyledComponent(target: any): target is StyledComponentBrand {\n return typeof target === 'object' && 'styledComponentId' in target;\n}\n","/**\n * Convenience function for joining strings to form className chains\n */\nexport function joinStrings(a?: string | undefined, b?: string | undefined): string {\n return a && b ? `${a} ${b}` : a || b || '';\n}\n\nexport function joinStringArray(arr: string[], sep?: string | undefined): string {\n if (arr.length === 0) {\n return '';\n }\n\n let result = arr[0];\n for (let i = 1; i < arr.length; i++) {\n result += sep ? sep + arr[i] : arr[i];\n }\n return result;\n}\n","export default function isPlainObject(x: any): x is Record {\n return (\n x !== null &&\n typeof x === 'object' &&\n x.constructor.name === Object.name &&\n /* check for reasonable markers that the object isn't an element for react & preact/compat */\n !('props' in x && x.$$typeof)\n );\n}\n","import isPlainObject from './isPlainObject';\n\nfunction mixinRecursively(target: any, source: any, forceMerge = false) {\n /* only merge into POJOs, Arrays, but for top level objects only\n * allow to merge into anything by passing forceMerge = true */\n if (!forceMerge && !isPlainObject(target) && !Array.isArray(target)) {\n return source;\n }\n\n if (Array.isArray(source)) {\n for (let key = 0; key < source.length; key++) {\n target[key] = mixinRecursively(target[key], source[key]);\n }\n } else if (isPlainObject(source)) {\n for (const key in source) {\n target[key] = mixinRecursively(target[key], source[key]);\n }\n }\n\n return target;\n}\n\n/**\n * Arrays & POJOs merged recursively, other objects and value types are overridden\n * If target is not a POJO or an Array, it will get source properties injected via shallow merge\n * Source objects applied left to right. Mutates & returns target. Similar to lodash merge.\n */\nexport default function mixinDeep(target: any, ...sources: any[]) {\n for (const source of sources) {\n mixinRecursively(target, source, true);\n }\n\n return target;\n}\n","/**\n * If the Object prototype is frozen, the \"toString\" property is non-writable. This means that any objects which inherit this property\n * cannot have the property changed using a \"=\" assignment operator. If using strict mode, attempting that will cause an error. If not using\n * strict mode, attempting that will be silently ignored.\n *\n * If the Object prototype is frozen, inherited non-writable properties can still be shadowed using one of two mechanisms:\n *\n * 1. ES6 class methods: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#methods\n * 2. Using the `Object.defineProperty()` static method:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty\n *\n * However, this project uses Babel to transpile ES6 classes, and transforms ES6 class methods to use the assignment operator instead:\n * https://babeljs.io/docs/babel-plugin-transform-class-properties#options\n *\n * Therefore, the most compatible way to shadow the prototype's \"toString\" property is to define a new \"toString\" property on this object.\n */\nexport function setToString(object: object, toStringFn: () => string) {\n Object.defineProperty(object, 'toString', { value: toStringFn });\n}\n","import { Dict } from '../types';\nimport errorMap from './errors';\n\nconst ERRORS: Dict = process.env.NODE_ENV !== 'production' ? errorMap : {};\n\n/**\n * super basic version of sprintf\n */\nfunction format(...args: [string, ...any]) {\n let a = args[0];\n const b = [];\n\n for (let c = 1, len = args.length; c < len; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(d => {\n a = a.replace(/%[a-z]/, d);\n });\n\n return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n */\nexport default function throwStyledComponentsError(\n code: string | number,\n ...interpolations: any[]\n) {\n if (process.env.NODE_ENV === 'production') {\n return new Error(\n `An error occurred. See https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#${code} for more information.${\n interpolations.length > 0 ? ` Args: ${interpolations.join(', ')}` : ''\n }`\n );\n } else {\n return new Error(format(ERRORS[code], ...interpolations).trim());\n }\n}\n","import { SPLITTER } from '../constants';\nimport styledError from '../utils/error';\nimport { GroupedTag, Tag } from './types';\n\n/** Create a GroupedTag with an underlying Tag implementation */\nexport const makeGroupedTag = (tag: Tag) => {\n return new DefaultGroupedTag(tag);\n};\n\nconst BASE_SIZE = 1 << 9;\n\nconst DefaultGroupedTag = class DefaultGroupedTag implements GroupedTag {\n groupSizes: Uint32Array;\n length: number;\n tag: Tag;\n\n constructor(tag: Tag) {\n this.groupSizes = new Uint32Array(BASE_SIZE);\n this.length = BASE_SIZE;\n this.tag = tag;\n }\n\n indexOfGroup(group: number) {\n let index = 0;\n for (let i = 0; i < group; i++) {\n index += this.groupSizes[i];\n }\n\n return index;\n }\n\n insertRules(group: number, rules: string[]) {\n if (group >= this.groupSizes.length) {\n const oldBuffer = this.groupSizes;\n const oldSize = oldBuffer.length;\n\n let newSize = oldSize;\n while (group >= newSize) {\n newSize <<= 1;\n if (newSize < 0) {\n throw styledError(16, `${group}`);\n }\n }\n\n this.groupSizes = new Uint32Array(newSize);\n this.groupSizes.set(oldBuffer);\n this.length = newSize;\n\n for (let i = oldSize; i < newSize; i++) {\n this.groupSizes[i] = 0;\n }\n }\n\n let ruleIndex = this.indexOfGroup(group + 1);\n\n for (let i = 0, l = rules.length; i < l; i++) {\n if (this.tag.insertRule(ruleIndex, rules[i])) {\n this.groupSizes[group]++;\n ruleIndex++;\n }\n }\n }\n\n clearGroup(group: number) {\n if (group < this.length) {\n const length = this.groupSizes[group];\n const startIndex = this.indexOfGroup(group);\n const endIndex = startIndex + length;\n\n this.groupSizes[group] = 0;\n\n for (let i = startIndex; i < endIndex; i++) {\n this.tag.deleteRule(startIndex);\n }\n }\n }\n\n getGroup(group: number) {\n let css = '';\n if (group >= this.length || this.groupSizes[group] === 0) {\n return css;\n }\n\n const length = this.groupSizes[group];\n const startIndex = this.indexOfGroup(group);\n const endIndex = startIndex + length;\n\n for (let i = startIndex; i < endIndex; i++) {\n css += `${this.tag.getRule(i)}${SPLITTER}`;\n }\n\n return css;\n }\n};\n","import styledError from '../utils/error';\n\nconst MAX_SMI = 1 << (31 - 1);\n\nlet groupIDRegister: Map = new Map();\nlet reverseRegister: Map = new Map();\nlet nextFreeGroup = 1;\n\nexport const resetGroupIds = () => {\n groupIDRegister = new Map();\n reverseRegister = new Map();\n nextFreeGroup = 1;\n};\n\nexport const getGroupForId = (id: string): number => {\n if (groupIDRegister.has(id)) {\n return groupIDRegister.get(id) as any;\n }\n\n while (reverseRegister.has(nextFreeGroup)) {\n nextFreeGroup++;\n }\n\n const group = nextFreeGroup++;\n\n if (process.env.NODE_ENV !== 'production' && ((group | 0) < 0 || group > MAX_SMI)) {\n throw styledError(16, `${group}`);\n }\n\n groupIDRegister.set(id, group);\n reverseRegister.set(group, id);\n return group;\n};\n\nexport const getIdForGroup = (group: number): void | string => {\n return reverseRegister.get(group);\n};\n\nexport const setGroupForId = (id: string, group: number) => {\n groupIDRegister.set(id, group);\n reverseRegister.set(group, id);\n};\n","import { SC_ATTR, SC_ATTR_ACTIVE, SC_ATTR_VERSION, SC_VERSION, SPLITTER } from '../constants';\nimport { getIdForGroup, setGroupForId } from './GroupIDAllocator';\nimport { Sheet } from './types';\n\nconst SELECTOR = `style[${SC_ATTR}][${SC_ATTR_VERSION}=\"${SC_VERSION}\"]`;\nconst MARKER_RE = new RegExp(`^${SC_ATTR}\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)`);\n\nexport const outputSheet = (sheet: Sheet) => {\n const tag = sheet.getTag();\n const { length } = tag;\n\n let css = '';\n for (let group = 0; group < length; group++) {\n const id = getIdForGroup(group);\n if (id === undefined) continue;\n\n const names = sheet.names.get(id);\n const rules = tag.getGroup(group);\n if (names === undefined || rules.length === 0) continue;\n\n const selector = `${SC_ATTR}.g${group}[id=\"${id}\"]`;\n\n let content = '';\n if (names !== undefined) {\n names.forEach(name => {\n if (name.length > 0) {\n content += `${name},`;\n }\n });\n }\n\n // NOTE: It's easier to collect rules and have the marker\n // after the actual rules to simplify the rehydration\n css += `${rules}${selector}{content:\"${content}\"}${SPLITTER}`;\n }\n\n return css;\n};\n\nconst rehydrateNamesFromContent = (sheet: Sheet, id: string, content: string) => {\n const names = content.split(',');\n let name;\n\n for (let i = 0, l = names.length; i < l; i++) {\n if ((name = names[i])) {\n sheet.registerName(id, name);\n }\n }\n};\n\nconst rehydrateSheetFromTag = (sheet: Sheet, style: HTMLStyleElement) => {\n const parts = (style.textContent ?? '').split(SPLITTER);\n const rules: string[] = [];\n\n for (let i = 0, l = parts.length; i < l; i++) {\n const part = parts[i].trim();\n if (!part) continue;\n\n const marker = part.match(MARKER_RE);\n\n if (marker) {\n const group = parseInt(marker[1], 10) | 0;\n const id = marker[2];\n\n if (group !== 0) {\n // Rehydrate componentId to group index mapping\n setGroupForId(id, group);\n // Rehydrate names and rules\n // looks like: data-styled.g11[id=\"idA\"]{content:\"nameA,\"}\n rehydrateNamesFromContent(sheet, id, marker[3]);\n sheet.getTag().insertRules(group, rules);\n }\n\n rules.length = 0;\n } else {\n rules.push(part);\n }\n }\n};\n\nexport const rehydrateSheet = (sheet: Sheet) => {\n const nodes = document.querySelectorAll(SELECTOR);\n\n for (let i = 0, l = nodes.length; i < l; i++) {\n const node = nodes[i] as any as HTMLStyleElement;\n if (node && node.getAttribute(SC_ATTR) !== SC_ATTR_ACTIVE) {\n rehydrateSheetFromTag(sheet, node);\n\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n }\n};\n","declare let __webpack_nonce__: string;\n\nexport default function getNonce() {\n return typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n}\n","import { SC_ATTR, SC_ATTR_ACTIVE, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport styledError from '../utils/error';\nimport getNonce from '../utils/nonce';\n\n/** Find last style element if any inside target */\nconst findLastStyleTag = (target: HTMLElement): void | HTMLStyleElement => {\n const arr = Array.from(target.querySelectorAll(`style[${SC_ATTR}]`));\n\n return arr[arr.length - 1];\n};\n\n/** Create a style element inside `target` or after the last */\nexport const makeStyleTag = (target?: HTMLElement | undefined): HTMLStyleElement => {\n const head = document.head;\n const parent = target || head;\n const style = document.createElement('style');\n const prevStyle = findLastStyleTag(parent);\n const nextSibling = prevStyle !== undefined ? prevStyle.nextSibling : null;\n\n style.setAttribute(SC_ATTR, SC_ATTR_ACTIVE);\n style.setAttribute(SC_ATTR_VERSION, SC_VERSION);\n\n const nonce = getNonce();\n\n if (nonce) style.setAttribute('nonce', nonce);\n\n parent.insertBefore(style, nextSibling);\n\n return style;\n};\n\n/** Get the CSSStyleSheet instance for a given style element */\nexport const getSheet = (tag: HTMLStyleElement): CSSStyleSheet => {\n if (tag.sheet) {\n return tag.sheet as any as CSSStyleSheet;\n }\n\n // Avoid Firefox quirk where the style element might not have a sheet property\n const { styleSheets } = document;\n for (let i = 0, l = styleSheets.length; i < l; i++) {\n const sheet = styleSheets[i];\n if (sheet.ownerNode === tag) {\n return sheet as any as CSSStyleSheet;\n }\n }\n\n throw styledError(17);\n};\n","import { getSheet, makeStyleTag } from './dom';\nimport { SheetOptions, Tag } from './types';\n\n/** Create a CSSStyleSheet-like tag depending on the environment */\nexport const makeTag = ({ isServer, useCSSOMInjection, target }: SheetOptions) => {\n if (isServer) {\n return new VirtualTag(target);\n } else if (useCSSOMInjection) {\n return new CSSOMTag(target);\n } else {\n return new TextTag(target);\n }\n};\n\nexport const CSSOMTag = class CSSOMTag implements Tag {\n element: HTMLStyleElement;\n\n sheet: CSSStyleSheet;\n\n length: number;\n\n constructor(target?: HTMLElement | undefined) {\n this.element = makeStyleTag(target);\n\n // Avoid Edge bug where empty style elements don't create sheets\n this.element.appendChild(document.createTextNode(''));\n\n this.sheet = getSheet(this.element);\n this.length = 0;\n }\n\n insertRule(index: number, rule: string): boolean {\n try {\n this.sheet.insertRule(rule, index);\n this.length++;\n return true;\n } catch (_error) {\n return false;\n }\n }\n\n deleteRule(index: number): void {\n this.sheet.deleteRule(index);\n this.length--;\n }\n\n getRule(index: number): string {\n const rule = this.sheet.cssRules[index];\n\n // Avoid IE11 quirk where cssText is inaccessible on some invalid rules\n if (rule && rule.cssText) {\n return rule.cssText;\n } else {\n return '';\n }\n }\n};\n\n/** A Tag that emulates the CSSStyleSheet API but uses text nodes */\nexport const TextTag = class TextTag implements Tag {\n element: HTMLStyleElement;\n nodes: NodeListOf;\n length: number;\n\n constructor(target?: HTMLElement | undefined) {\n this.element = makeStyleTag(target);\n this.nodes = this.element.childNodes;\n this.length = 0;\n }\n\n insertRule(index: number, rule: string) {\n if (index <= this.length && index >= 0) {\n const node = document.createTextNode(rule);\n const refNode = this.nodes[index];\n this.element.insertBefore(node, refNode || null);\n this.length++;\n return true;\n } else {\n return false;\n }\n }\n\n deleteRule(index: number) {\n this.element.removeChild(this.nodes[index]);\n this.length--;\n }\n\n getRule(index: number) {\n if (index < this.length) {\n return this.nodes[index].textContent as string;\n } else {\n return '';\n }\n }\n};\n\n/** A completely virtual (server-side) Tag that doesn't manipulate the DOM */\nexport const VirtualTag = class VirtualTag implements Tag {\n rules: string[];\n\n length: number;\n\n constructor(_target?: HTMLElement | undefined) {\n this.rules = [];\n this.length = 0;\n }\n\n insertRule(index: number, rule: string) {\n if (index <= this.length) {\n this.rules.splice(index, 0, rule);\n this.length++;\n return true;\n } else {\n return false;\n }\n }\n\n deleteRule(index: number) {\n this.rules.splice(index, 1);\n this.length--;\n }\n\n getRule(index: number) {\n if (index < this.length) {\n return this.rules[index];\n } else {\n return '';\n }\n }\n};\n","import { DISABLE_SPEEDY, IS_BROWSER } from '../constants';\nimport { EMPTY_OBJECT } from '../utils/empties';\nimport { setToString } from '../utils/setToString';\nimport { makeGroupedTag } from './GroupedTag';\nimport { getGroupForId } from './GroupIDAllocator';\nimport { outputSheet, rehydrateSheet } from './Rehydration';\nimport { makeTag } from './Tag';\nimport { GroupedTag, Sheet, SheetOptions } from './types';\n\nlet SHOULD_REHYDRATE = IS_BROWSER;\n\ntype SheetConstructorArgs = {\n isServer?: boolean;\n useCSSOMInjection?: boolean;\n target?: HTMLElement | undefined;\n};\n\ntype GlobalStylesAllocationMap = {\n [key: string]: number;\n};\ntype NamesAllocationMap = Map>;\n\nconst defaultOptions: SheetOptions = {\n isServer: !IS_BROWSER,\n useCSSOMInjection: !DISABLE_SPEEDY,\n};\n\n/** Contains the main stylesheet logic for stringification and caching */\nexport default class StyleSheet implements Sheet {\n gs: GlobalStylesAllocationMap;\n names: NamesAllocationMap;\n options: SheetOptions;\n server: boolean;\n tag?: GroupedTag | undefined;\n\n /** Register a group ID to give it an index */\n static registerId(id: string): number {\n return getGroupForId(id);\n }\n\n constructor(\n options: SheetConstructorArgs = EMPTY_OBJECT as Object,\n globalStyles: GlobalStylesAllocationMap = {},\n names?: NamesAllocationMap | undefined\n ) {\n this.options = {\n ...defaultOptions,\n ...options,\n };\n\n this.gs = globalStyles;\n this.names = new Map(names as NamesAllocationMap);\n this.server = !!options.isServer;\n\n // We rehydrate only once and use the sheet that is created first\n if (!this.server && IS_BROWSER && SHOULD_REHYDRATE) {\n SHOULD_REHYDRATE = false;\n rehydrateSheet(this);\n }\n\n setToString(this, () => outputSheet(this));\n }\n\n reconstructWithOptions(options: SheetConstructorArgs, withNames = true) {\n return new StyleSheet(\n { ...this.options, ...options },\n this.gs,\n (withNames && this.names) || undefined\n );\n }\n\n allocateGSInstance(id: string) {\n return (this.gs[id] = (this.gs[id] || 0) + 1);\n }\n\n /** Lazily initialises a GroupedTag for when it's actually needed */\n getTag() {\n return this.tag || (this.tag = makeGroupedTag(makeTag(this.options)));\n }\n\n /** Check whether a name is known for caching */\n hasNameForId(id: string, name: string): boolean {\n return this.names.has(id) && (this.names.get(id) as any).has(name);\n }\n\n /** Mark a group's name as known for caching */\n registerName(id: string, name: string) {\n getGroupForId(id);\n\n if (!this.names.has(id)) {\n const groupNames = new Set();\n groupNames.add(name);\n this.names.set(id, groupNames);\n } else {\n (this.names.get(id) as any).add(name);\n }\n }\n\n /** Insert new rules which also marks the name as known */\n insertRules(id: string, name: string, rules: string | string[]) {\n this.registerName(id, name);\n this.getTag().insertRules(getGroupForId(id), rules);\n }\n\n /** Clears all cached names for a given group ID */\n clearNames(id: string) {\n if (this.names.has(id)) {\n (this.names.get(id) as any).clear();\n }\n }\n\n /** Clears all rules for a given group ID */\n clearRules(id: string) {\n this.getTag().clearGroup(getGroupForId(id));\n this.clearNames(id);\n }\n\n /** Clears the entire tag which deletes all rules but not its names */\n clearTag() {\n // NOTE: This does not clear the names, since it's only used during SSR\n // so that we can continuously output only new rules\n this.tag = undefined;\n }\n}\n","import * as stylis from 'stylis';\nimport { Stringifier } from '../types';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from './empties';\nimport throwStyledError from './error';\nimport { phash, SEED } from './hash';\n\nconst AMP_REGEX = /&/g;\nconst COMMENT_REGEX = /^\\s*\\/\\/.*$/gm;\n\nexport type ICreateStylisInstance = {\n options?: { namespace?: string | undefined; prefix?: boolean | undefined } | undefined;\n plugins?: stylis.Middleware[] | undefined;\n};\n\n/**\n * Takes an element and recurses through it's rules added the namespace to the start of each selector.\n * Takes into account media queries by recursing through child rules if they are present.\n */\nfunction recursivelySetNamepace(compiled: stylis.Element[], namespace: String): stylis.Element[] {\n return compiled.map(rule => {\n if (rule.type === 'rule') {\n // add the namespace to the start\n rule.value = `${namespace} ${rule.value}`;\n // add the namespace after each comma for subsequent selectors.\n // @ts-expect-error we target modern browsers but intentionally transpile to ES5 for speed\n rule.value = rule.value.replaceAll(',', `,${namespace} `);\n rule.props = (rule.props as string[]).map(prop => {\n return `${namespace} ${prop}`;\n });\n }\n\n if (Array.isArray(rule.children) && rule.type !== '@keyframes') {\n rule.children = recursivelySetNamepace(rule.children, namespace);\n }\n return rule;\n });\n}\n\nexport default function createStylisInstance(\n {\n options = EMPTY_OBJECT as object,\n plugins = EMPTY_ARRAY as unknown as stylis.Middleware[],\n }: ICreateStylisInstance = EMPTY_OBJECT as object\n) {\n let _componentId: string;\n let _selector: string;\n let _selectorRegexp: RegExp;\n\n const selfReferenceReplacer: Parameters[1] = (match, offset, string) => {\n if (\n /**\n * We only want to refer to the static class directly in the following scenarios:\n *\n * 1. The selector is alone on the line `& { color: red; }`\n * 2. The selector is part of a self-reference selector `& + & { color: red; }`\n */\n string === _selector ||\n (string.startsWith(_selector) &&\n string.endsWith(_selector) &&\n string.replaceAll(_selector, '').length > 0)\n ) {\n return `.${_componentId}`;\n }\n\n return match;\n };\n\n /**\n * When writing a style like\n *\n * & + & {\n * color: red;\n * }\n *\n * The second ampersand should be a reference to the static component class. stylis\n * has no knowledge of static class so we have to intelligently replace the base selector.\n *\n * https://github.com/thysultan/stylis.js/tree/v4.0.2#abstract-syntax-structure\n */\n const selfReferenceReplacementPlugin: stylis.Middleware = element => {\n if (element.type === stylis.RULESET && element.value.includes('&')) {\n (element.props as string[])[0] = element.props[0]\n // catch any hanging references that stylis missed\n .replace(AMP_REGEX, _selector)\n .replace(_selectorRegexp, selfReferenceReplacer);\n }\n };\n\n const middlewares = plugins.slice();\n\n middlewares.push(selfReferenceReplacementPlugin);\n\n /**\n * Enables automatic vendor-prefixing for styles.\n */\n if (options.prefix) {\n middlewares.push(stylis.prefixer);\n }\n\n middlewares.push(stylis.stringify);\n\n const stringifyRules: Stringifier = (\n css: string,\n selector = '',\n /**\n * This \"prefix\" referes to a _selector_ prefix.\n */\n prefix = '',\n componentId = '&'\n ) => {\n // stylis has no concept of state to be passed to plugins\n // but since JS is single-threaded, we can rely on that to ensure\n // these properties stay in sync with the current stylis run\n _componentId = componentId;\n _selector = selector;\n _selectorRegexp = new RegExp(`\\\\${_selector}\\\\b`, 'g');\n\n const flatCSS = css.replace(COMMENT_REGEX, '');\n let compiled = stylis.compile(\n prefix || selector ? `${prefix} ${selector} { ${flatCSS} }` : flatCSS\n );\n\n if (options.namespace) {\n compiled = recursivelySetNamepace(compiled, options.namespace);\n }\n\n const stack: string[] = [];\n\n stylis.serialize(\n compiled,\n stylis.middleware(middlewares.concat(stylis.rulesheet(value => stack.push(value))))\n );\n\n return stack;\n };\n\n stringifyRules.hash = plugins.length\n ? plugins\n .reduce((acc, plugin) => {\n if (!plugin.name) {\n throwStyledError(15);\n }\n\n return phash(acc, plugin.name);\n }, SEED)\n .toString()\n : '';\n\n return stringifyRules;\n}\n","import React, { useContext, useEffect, useMemo, useState } from 'react';\nimport shallowequal from 'shallowequal';\nimport type stylis from 'stylis';\nimport StyleSheet from '../sheet';\nimport { ShouldForwardProp, Stringifier } from '../types';\nimport createStylisInstance from '../utils/stylis';\n\nexport const mainSheet: StyleSheet = new StyleSheet();\nexport const mainStylis: Stringifier = createStylisInstance();\n\nexport type IStyleSheetContext = {\n shouldForwardProp?: ShouldForwardProp<'web'> | undefined;\n styleSheet: StyleSheet;\n stylis: Stringifier;\n};\n\nexport const StyleSheetContext = React.createContext({\n shouldForwardProp: undefined,\n styleSheet: mainSheet,\n stylis: mainStylis,\n});\n\nexport const StyleSheetConsumer = StyleSheetContext.Consumer;\n\nexport type IStylisContext = Stringifier | void;\nexport const StylisContext = React.createContext(undefined);\nexport const StylisConsumer = StylisContext.Consumer;\n\nexport function useStyleSheetContext() {\n return useContext(StyleSheetContext);\n}\n\nexport type IStyleSheetManager = React.PropsWithChildren<{\n /**\n * If desired, you can pass this prop to disable \"speedy\" insertion mode, which\n * uses the browser [CSSOM APIs](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet).\n * When disabled, rules are inserted as simple text into style blocks.\n */\n disableCSSOMInjection?: undefined | boolean;\n /**\n * If you are working exclusively with modern browsers, vendor prefixes can often be omitted\n * to reduce the weight of CSS on the page.\n */\n enableVendorPrefixes?: undefined | boolean;\n /**\n * Provide an optional selector to be prepended to all generated style rules.\n */\n namespace?: undefined | string;\n /**\n * Create and provide your own `StyleSheet` if necessary for advanced SSR scenarios.\n */\n sheet?: undefined | StyleSheet;\n /**\n * Starting in v6, styled-components no longer does its own prop validation\n * and recommends use of transient props \"$prop\" to pass style-only props to\n * components. If for some reason you are not able to use transient props, a\n * prop validation function can be provided via `StyleSheetManager`, such as\n * `@emotion/is-prop-valid`.\n *\n * When the return value is `true`, props will be forwarded to the DOM/underlying\n * component. If return value is `false`, the prop will be discarded after styles\n * are calculated.\n *\n * Manually composing `styled.{element}.withConfig({shouldForwardProp})` will\n * override this default.\n */\n shouldForwardProp?: undefined | IStyleSheetContext['shouldForwardProp'];\n /**\n * An array of plugins to be run by stylis (style processor) during compilation.\n * Check out [what's available on npm*](https://www.npmjs.com/search?q=keywords%3Astylis).\n *\n * \\* The plugin(s) must be compatible with stylis v4 or above.\n */\n stylisPlugins?: undefined | stylis.Middleware[];\n /**\n * Provide an alternate DOM node to host generated styles; useful for iframes.\n */\n target?: undefined | HTMLElement;\n}>;\n\nexport function StyleSheetManager(props: IStyleSheetManager): JSX.Element {\n const [plugins, setPlugins] = useState(props.stylisPlugins);\n const { styleSheet } = useStyleSheetContext();\n\n const resolvedStyleSheet = useMemo(() => {\n let sheet = styleSheet;\n\n if (props.sheet) {\n sheet = props.sheet;\n } else if (props.target) {\n sheet = sheet.reconstructWithOptions({ target: props.target }, false);\n }\n\n if (props.disableCSSOMInjection) {\n sheet = sheet.reconstructWithOptions({ useCSSOMInjection: false });\n }\n\n return sheet;\n }, [props.disableCSSOMInjection, props.sheet, props.target, styleSheet]);\n\n const stylis = useMemo(\n () =>\n createStylisInstance({\n options: { namespace: props.namespace, prefix: props.enableVendorPrefixes },\n plugins,\n }),\n [props.enableVendorPrefixes, props.namespace, plugins]\n );\n\n useEffect(() => {\n if (!shallowequal(plugins, props.stylisPlugins)) setPlugins(props.stylisPlugins);\n }, [props.stylisPlugins]);\n\n const styleSheetContextValue = useMemo(\n () => ({\n shouldForwardProp: props.shouldForwardProp,\n styleSheet: resolvedStyleSheet,\n stylis,\n }),\n [props.shouldForwardProp, resolvedStyleSheet, stylis]\n );\n\n return (\n \n {props.children}\n \n );\n}\n","import StyleSheet from '../sheet';\nimport { Keyframes as KeyframesType, Stringifier } from '../types';\nimport styledError from '../utils/error';\nimport { setToString } from '../utils/setToString';\nimport { mainStylis } from './StyleSheetManager';\n\nexport default class Keyframes implements KeyframesType {\n id: string;\n name: string;\n rules: string;\n\n constructor(name: string, rules: string) {\n this.name = name;\n this.id = `sc-keyframes-${name}`;\n this.rules = rules;\n\n setToString(this, () => {\n throw styledError(12, String(this.name));\n });\n }\n\n inject = (styleSheet: StyleSheet, stylisInstance: Stringifier = mainStylis): void => {\n const resolvedName = this.name + stylisInstance.hash;\n\n if (!styleSheet.hasNameForId(this.id, resolvedName)) {\n styleSheet.insertRules(\n this.id,\n resolvedName,\n stylisInstance(this.rules, resolvedName, '@keyframes')\n );\n }\n };\n\n getName(stylisInstance: Stringifier = mainStylis): string {\n return this.name + stylisInstance.hash;\n }\n}\n","const isUpper = (c: string) => c >= 'A' && c <= 'Z';\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n */\nexport default function hyphenateStyleName(string: string): string {\n let output = '';\n\n for (let i = 0; i < string.length; i++) {\n const c = string[i];\n // Check for CSS variable prefix\n if (i === 1 && c === '-' && string[0] === '-') {\n return string;\n }\n\n if (isUpper(c)) {\n output += '-' + c.toLowerCase();\n } else {\n output += c;\n }\n }\n\n return output.startsWith('ms-') ? '-' + output : output;\n}\n","import Keyframes from '../models/Keyframes';\nimport StyleSheet from '../sheet';\nimport {\n AnyComponent,\n Dict,\n ExecutionContext,\n Interpolation,\n IStyledComponent,\n RuleSet,\n Stringifier,\n StyledObject,\n} from '../types';\nimport addUnitIfNeeded from './addUnitIfNeeded';\nimport { EMPTY_ARRAY } from './empties';\nimport getComponentName from './getComponentName';\nimport hyphenate from './hyphenateStyleName';\nimport isFunction from './isFunction';\nimport isPlainObject from './isPlainObject';\nimport isStatelessFunction from './isStatelessFunction';\nimport isStyledComponent from './isStyledComponent';\n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nconst isFalsish = (chunk: any): chunk is undefined | null | false | '' =>\n chunk === undefined || chunk === null || chunk === false || chunk === '';\n\nexport const objToCssArray = (obj: Dict): string[] => {\n const rules = [];\n\n for (const key in obj) {\n const val = obj[key];\n if (!obj.hasOwnProperty(key) || isFalsish(val)) continue;\n\n // @ts-expect-error Property 'isCss' does not exist on type 'any[]'\n if ((Array.isArray(val) && val.isCss) || isFunction(val)) {\n rules.push(`${hyphenate(key)}:`, val, ';');\n } else if (isPlainObject(val)) {\n rules.push(`${key} {`, ...objToCssArray(val), '}');\n } else {\n rules.push(`${hyphenate(key)}: ${addUnitIfNeeded(key, val)};`);\n }\n }\n\n return rules;\n};\n\nexport default function flatten(\n chunk: Interpolation,\n executionContext?: (ExecutionContext & Props) | undefined,\n styleSheet?: StyleSheet | undefined,\n stylisInstance?: Stringifier | undefined\n): RuleSet {\n if (isFalsish(chunk)) {\n return [];\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return [`.${(chunk as unknown as IStyledComponent<'web', any>).styledComponentId}`];\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n const result = chunk(executionContext);\n\n if (\n process.env.NODE_ENV !== 'production' &&\n typeof result === 'object' &&\n !Array.isArray(result) &&\n !(result instanceof Keyframes) &&\n !isPlainObject(result) &&\n result !== null\n ) {\n console.error(\n `${getComponentName(\n chunk as AnyComponent\n )} is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.`\n );\n }\n\n return flatten(result, executionContext, styleSheet, stylisInstance);\n } else {\n return [chunk as unknown as IStyledComponent<'web'>];\n }\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet, stylisInstance);\n return [chunk.getName(stylisInstance)];\n } else {\n return [chunk];\n }\n }\n\n /* Handle objects */\n if (isPlainObject(chunk)) {\n return objToCssArray(chunk as StyledObject);\n }\n\n if (!Array.isArray(chunk)) {\n return [chunk.toString()];\n }\n\n return flatMap(chunk, chunklet =>\n flatten(chunklet, executionContext, styleSheet, stylisInstance)\n );\n}\n\nfunction flatMap(array: T[], transform: (value: T, index: number, array: T[]) => U[]): U[] {\n return Array.prototype.concat.apply(EMPTY_ARRAY, array.map(transform));\n}\n","import unitless from '@emotion/unitless';\n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nexport default function addUnitIfNeeded(name: string, value: any) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless) && !name.startsWith('--')) {\n return `${value}px`; // Presumes implicit 'px' suffix for unitless numbers except for CSS variables\n }\n\n return String(value).trim();\n}\n","import isFunction from './isFunction';\n\nexport default function isStatelessFunction(test: any): test is Function {\n return isFunction(test) && !(test.prototype && test.prototype.isReactComponent);\n}\n","import { RuleSet } from '../types';\nimport isFunction from './isFunction';\nimport isStyledComponent from './isStyledComponent';\n\nexport default function isStaticRules(rules: RuleSet) {\n for (let i = 0; i < rules.length; i += 1) {\n const rule = rules[i];\n\n if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n return true;\n}\n","import { SC_VERSION } from '../constants';\nimport StyleSheet from '../sheet';\nimport { ExecutionContext, RuleSet, Stringifier } from '../types';\nimport flatten from '../utils/flatten';\nimport generateName from '../utils/generateAlphabeticName';\nimport { hash, phash } from '../utils/hash';\nimport isStaticRules from '../utils/isStaticRules';\nimport { joinStringArray, joinStrings } from '../utils/joinStrings';\n\nconst SEED = hash(SC_VERSION);\n\n/**\n * ComponentStyle is all the CSS-specific stuff, not the React-specific stuff.\n */\nexport default class ComponentStyle {\n baseHash: number;\n baseStyle: ComponentStyle | null | undefined;\n componentId: string;\n isStatic: boolean;\n rules: RuleSet;\n staticRulesId: string;\n\n constructor(rules: RuleSet, componentId: string, baseStyle?: ComponentStyle | undefined) {\n this.rules = rules;\n this.staticRulesId = '';\n this.isStatic =\n process.env.NODE_ENV === 'production' &&\n (baseStyle === undefined || baseStyle.isStatic) &&\n isStaticRules(rules);\n this.componentId = componentId;\n this.baseHash = phash(SEED, componentId);\n this.baseStyle = baseStyle;\n\n // NOTE: This registers the componentId, which ensures a consistent order\n // for this component's styles compared to others\n StyleSheet.registerId(componentId);\n }\n\n generateAndInjectStyles(\n executionContext: ExecutionContext,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ): string {\n let names = this.baseStyle\n ? this.baseStyle.generateAndInjectStyles(executionContext, styleSheet, stylis)\n : '';\n\n // force dynamic classnames if user-supplied stylis plugins are in use\n if (this.isStatic && !stylis.hash) {\n if (this.staticRulesId && styleSheet.hasNameForId(this.componentId, this.staticRulesId)) {\n names = joinStrings(names, this.staticRulesId);\n } else {\n const cssStatic = joinStringArray(\n flatten(this.rules, executionContext, styleSheet, stylis) as string[]\n );\n const name = generateName(phash(this.baseHash, cssStatic) >>> 0);\n\n if (!styleSheet.hasNameForId(this.componentId, name)) {\n const cssStaticFormatted = stylis(cssStatic, `.${name}`, undefined, this.componentId);\n styleSheet.insertRules(this.componentId, name, cssStaticFormatted);\n }\n\n names = joinStrings(names, name);\n this.staticRulesId = name;\n }\n } else {\n let dynamicHash = phash(this.baseHash, stylis.hash);\n let css = '';\n\n for (let i = 0; i < this.rules.length; i++) {\n const partRule = this.rules[i];\n\n if (typeof partRule === 'string') {\n css += partRule;\n\n if (process.env.NODE_ENV !== 'production') dynamicHash = phash(dynamicHash, partRule);\n } else if (partRule) {\n const partString = joinStringArray(\n flatten(partRule, executionContext, styleSheet, stylis) as string[]\n );\n // The same value can switch positions in the array, so we include \"i\" in the hash.\n dynamicHash = phash(dynamicHash, partString + i);\n css += partString;\n }\n }\n\n if (css) {\n const name = generateName(dynamicHash >>> 0);\n\n if (!styleSheet.hasNameForId(this.componentId, name)) {\n styleSheet.insertRules(\n this.componentId,\n name,\n stylis(css, `.${name}`, undefined, this.componentId)\n );\n }\n\n names = joinStrings(names, name);\n }\n }\n\n return names;\n }\n}\n","import React, { useContext, useMemo } from 'react';\nimport styledError from '../utils/error';\nimport isFunction from '../utils/isFunction';\n\n/**\n * Override DefaultTheme to get accurate typings for your project.\n *\n * ```\n * // create styled-components.d.ts in your project source\n * // if it isn't being picked up, check tsconfig compilerOptions.types\n * import type { CSSProp } from \"styled-components\";\n * import Theme from './theme';\n *\n * type ThemeType = typeof Theme;\n *\n * declare module \"styled-components\" {\n * export interface DefaultTheme extends ThemeType {}\n * }\n *\n * declare module \"react\" {\n * interface DOMAttributes {\n * css?: CSSProp;\n * }\n * }\n * ```\n */\nexport interface DefaultTheme {\n [key: string]: any;\n}\n\ntype ThemeFn = (outerTheme?: DefaultTheme | undefined) => DefaultTheme;\ntype ThemeArgument = DefaultTheme | ThemeFn;\n\ntype Props = {\n children?: React.ReactNode;\n theme: ThemeArgument;\n};\n\nexport const ThemeContext = React.createContext(undefined);\n\nexport const ThemeConsumer = ThemeContext.Consumer;\n\nfunction mergeTheme(theme: ThemeArgument, outerTheme?: DefaultTheme | undefined): DefaultTheme {\n if (!theme) {\n throw styledError(14);\n }\n\n if (isFunction(theme)) {\n const themeFn = theme as ThemeFn;\n const mergedTheme = themeFn(outerTheme);\n\n if (\n process.env.NODE_ENV !== 'production' &&\n (mergedTheme === null || Array.isArray(mergedTheme) || typeof mergedTheme !== 'object')\n ) {\n throw styledError(7);\n }\n\n return mergedTheme;\n }\n\n if (Array.isArray(theme) || typeof theme !== 'object') {\n throw styledError(8);\n }\n\n return outerTheme ? { ...outerTheme, ...theme } : theme;\n}\n\n/**\n * Returns the current theme (as provided by the closest ancestor `ThemeProvider`.)\n *\n * If no `ThemeProvider` is found, the function will error. If you need access to the theme in an\n * uncertain composition scenario, `React.useContext(ThemeContext)` will not emit an error if there\n * is no `ThemeProvider` ancestor.\n */\nexport function useTheme(): DefaultTheme {\n const theme = useContext(ThemeContext);\n\n if (!theme) {\n throw styledError(18);\n }\n\n return theme;\n}\n\n/**\n * Provide a theme to an entire react component tree via context\n */\nexport default function ThemeProvider(props: Props): JSX.Element | null {\n const outerTheme = React.useContext(ThemeContext);\n const themeContext = useMemo(\n () => mergeTheme(props.theme, outerTheme),\n [props.theme, outerTheme]\n );\n\n if (!props.children) {\n return null;\n }\n\n return {props.children};\n}\n","import isPropValid from '@emotion/is-prop-valid';\nimport React, { createElement, Ref, useDebugValue } from 'react';\nimport { SC_VERSION } from '../constants';\nimport type {\n AnyComponent,\n Attrs,\n BaseObject,\n Dict,\n ExecutionContext,\n ExecutionProps,\n IStyledComponent,\n IStyledComponentFactory,\n IStyledStatics,\n OmitNever,\n RuleSet,\n StyledOptions,\n WebTarget,\n} from '../types';\nimport { checkDynamicCreation } from '../utils/checkDynamicCreation';\nimport createWarnTooManyClasses from '../utils/createWarnTooManyClasses';\nimport determineTheme from '../utils/determineTheme';\nimport domElements from '../utils/domElements';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from '../utils/empties';\nimport escape from '../utils/escape';\nimport generateComponentId from '../utils/generateComponentId';\nimport generateDisplayName from '../utils/generateDisplayName';\nimport hoist from '../utils/hoist';\nimport isFunction from '../utils/isFunction';\nimport isStyledComponent from '../utils/isStyledComponent';\nimport isTag from '../utils/isTag';\nimport { joinStrings } from '../utils/joinStrings';\nimport merge from '../utils/mixinDeep';\nimport { setToString } from '../utils/setToString';\nimport ComponentStyle from './ComponentStyle';\nimport { useStyleSheetContext } from './StyleSheetManager';\nimport { DefaultTheme, ThemeContext } from './ThemeProvider';\n\nconst identifiers: { [key: string]: number } = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(\n displayName?: string | undefined,\n parentComponentId?: string | undefined\n): string {\n const name = typeof displayName !== 'string' ? 'sc' : escape(displayName);\n // Ensure that no displayName can lead to duplicate componentIds\n identifiers[name] = (identifiers[name] || 0) + 1;\n\n const componentId = `${name}-${generateComponentId(\n // SC_VERSION gives us isolation between multiple runtimes on the page at once\n // this is improved further with use of the babel plugin \"namespace\" feature\n SC_VERSION + name + identifiers[name]\n )}`;\n\n return parentComponentId ? `${parentComponentId}-${componentId}` : componentId;\n}\n\nfunction useInjectedStyle(\n componentStyle: ComponentStyle,\n resolvedAttrs: T\n) {\n const ssc = useStyleSheetContext();\n\n const className = componentStyle.generateAndInjectStyles(\n resolvedAttrs,\n ssc.styleSheet,\n ssc.stylis\n );\n\n if (process.env.NODE_ENV !== 'production') useDebugValue(className);\n\n return className;\n}\n\nfunction resolveContext(\n attrs: Attrs & Props>[],\n props: React.HTMLAttributes & ExecutionProps & Props,\n theme: DefaultTheme\n) {\n const context: React.HTMLAttributes &\n ExecutionContext &\n Props & { [key: string]: any; class?: string; ref?: React.Ref } = {\n ...props,\n // unset, add `props.className` back at the end so props always \"wins\"\n className: undefined,\n theme,\n };\n let attrDef;\n\n for (let i = 0; i < attrs.length; i += 1) {\n attrDef = attrs[i];\n const resolvedAttrDef = isFunction(attrDef) ? attrDef(context) : attrDef;\n\n for (const key in resolvedAttrDef) {\n context[key as keyof typeof context] =\n key === 'className'\n ? joinStrings(context[key] as string | undefined, resolvedAttrDef[key] as string)\n : key === 'style'\n ? { ...context[key], ...resolvedAttrDef[key] }\n : resolvedAttrDef[key as keyof typeof resolvedAttrDef];\n }\n }\n\n if (props.className) {\n context.className = joinStrings(context.className, props.className);\n }\n\n return context;\n}\n\nlet seenUnknownProps = new Set();\n\nfunction useStyledComponentImpl(\n forwardedComponent: IStyledComponent<'web', Props>,\n props: ExecutionProps & Props,\n forwardedRef: Ref\n) {\n const {\n attrs: componentAttrs,\n componentStyle,\n defaultProps,\n foldedComponentIds,\n styledComponentId,\n target,\n } = forwardedComponent;\n\n const contextTheme = React.useContext(ThemeContext);\n const ssc = useStyleSheetContext();\n const shouldForwardProp = forwardedComponent.shouldForwardProp || ssc.shouldForwardProp;\n\n if (process.env.NODE_ENV !== 'production') useDebugValue(styledComponentId);\n\n // NOTE: the non-hooks version only subscribes to this when !componentStyle.isStatic,\n // but that'd be against the rules-of-hooks. We could be naughty and do it anyway as it\n // should be an immutable value, but behave for now.\n const theme = determineTheme(props, contextTheme, defaultProps) || EMPTY_OBJECT;\n\n const context = resolveContext(componentAttrs, props, theme);\n const elementToBeCreated: WebTarget = context.as || target;\n const propsForElement: Dict = {};\n\n for (const key in context) {\n if (context[key] === undefined) {\n // Omit undefined values from props passed to wrapped element.\n // This enables using .attrs() to remove props, for example.\n } else if (key[0] === '$' || key === 'as' || key === 'theme') {\n // Omit transient props and execution props.\n } else if (key === 'forwardedAs') {\n propsForElement.as = context.forwardedAs;\n } else if (!shouldForwardProp || shouldForwardProp(key, elementToBeCreated)) {\n propsForElement[key] = context[key];\n\n if (\n !shouldForwardProp &&\n process.env.NODE_ENV === 'development' &&\n !isPropValid(key) &&\n !seenUnknownProps.has(key) &&\n // Only warn on DOM Element.\n domElements.has(elementToBeCreated as any)\n ) {\n seenUnknownProps.add(key);\n console.warn(\n `styled-components: it looks like an unknown prop \"${key}\" is being sent through to the DOM, which will likely trigger a React console error. If you would like automatic filtering of unknown props, you can opt-into that behavior via \\`\\` (connect an API like \\`@emotion/is-prop-valid\\`) or consider using transient props (\\`$\\` prefix for automatic filtering.)`\n );\n }\n }\n }\n\n const generatedClassName = useInjectedStyle(componentStyle, context);\n\n if (process.env.NODE_ENV !== 'production' && forwardedComponent.warnTooManyClasses) {\n forwardedComponent.warnTooManyClasses(generatedClassName);\n }\n\n let classString = joinStrings(foldedComponentIds, styledComponentId);\n if (generatedClassName) {\n classString += ' ' + generatedClassName;\n }\n if (context.className) {\n classString += ' ' + context.className;\n }\n\n propsForElement[\n // handle custom elements which React doesn't properly alias\n isTag(elementToBeCreated) &&\n !domElements.has(elementToBeCreated as Extract)\n ? 'class'\n : 'className'\n ] = classString;\n\n propsForElement.ref = forwardedRef;\n\n return createElement(elementToBeCreated, propsForElement);\n}\n\nfunction createStyledComponent<\n Target extends WebTarget,\n OuterProps extends object,\n Statics extends object = BaseObject,\n>(\n target: Target,\n options: StyledOptions<'web', OuterProps>,\n rules: RuleSet\n): ReturnType> {\n const isTargetStyledComp = isStyledComponent(target);\n const styledComponentTarget = target as IStyledComponent<'web', OuterProps>;\n const isCompositeComponent = !isTag(target);\n\n const {\n attrs = EMPTY_ARRAY,\n componentId = generateId(options.displayName, options.parentComponentId),\n displayName = generateDisplayName(target),\n } = options;\n\n const styledComponentId =\n options.displayName && options.componentId\n ? `${escape(options.displayName)}-${options.componentId}`\n : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n const finalAttrs =\n isTargetStyledComp && styledComponentTarget.attrs\n ? styledComponentTarget.attrs.concat(attrs as unknown as Attrs[]).filter(Boolean)\n : (attrs as Attrs[]);\n\n let { shouldForwardProp } = options;\n\n if (isTargetStyledComp && styledComponentTarget.shouldForwardProp) {\n const shouldForwardPropFn = styledComponentTarget.shouldForwardProp;\n\n if (options.shouldForwardProp) {\n const passedShouldForwardPropFn = options.shouldForwardProp;\n\n // compose nested shouldForwardProp calls\n shouldForwardProp = (prop, elementToBeCreated) =>\n shouldForwardPropFn(prop, elementToBeCreated) &&\n passedShouldForwardPropFn(prop, elementToBeCreated);\n } else {\n shouldForwardProp = shouldForwardPropFn;\n }\n }\n\n const componentStyle = new ComponentStyle(\n rules,\n styledComponentId,\n isTargetStyledComp ? (styledComponentTarget.componentStyle as ComponentStyle) : undefined\n );\n\n function forwardRefRender(props: ExecutionProps & OuterProps, ref: Ref) {\n return useStyledComponentImpl(WrappedStyledComponent, props, ref);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n forwardRefRender.displayName = displayName;\n }\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n let WrappedStyledComponent = React.forwardRef(forwardRefRender) as unknown as IStyledComponent<\n 'web',\n any\n > &\n Statics;\n WrappedStyledComponent.attrs = finalAttrs;\n WrappedStyledComponent.componentStyle = componentStyle;\n WrappedStyledComponent.shouldForwardProp = shouldForwardProp;\n\n if (process.env.NODE_ENV !== 'production') {\n WrappedStyledComponent.displayName = displayName;\n }\n\n // this static is used to preserve the cascade of static classes for component selector\n // purposes; this is especially important with usage of the css prop\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp\n ? joinStrings(styledComponentTarget.foldedComponentIds, styledComponentTarget.styledComponentId)\n : '';\n\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n WrappedStyledComponent.target = isTargetStyledComp ? styledComponentTarget.target : target;\n\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get() {\n return this._foldedDefaultProps;\n },\n\n set(obj) {\n this._foldedDefaultProps = isTargetStyledComp\n ? merge({}, styledComponentTarget.defaultProps, obj)\n : obj;\n },\n });\n\n if (process.env.NODE_ENV !== 'production') {\n checkDynamicCreation(displayName, styledComponentId);\n\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(\n displayName,\n styledComponentId\n );\n }\n\n setToString(WrappedStyledComponent, () => `.${WrappedStyledComponent.styledComponentId}`);\n\n if (isCompositeComponent) {\n const compositeComponentTarget = target as AnyComponent;\n\n hoist(\n WrappedStyledComponent,\n compositeComponentTarget,\n {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n shouldForwardProp: true,\n styledComponentId: true,\n target: true,\n } as { [key in keyof OmitNever>]: true }\n );\n }\n\n return WrappedStyledComponent;\n}\n\nexport default createStyledComponent;\n","import { StyledTarget } from '../types';\nimport getComponentName from './getComponentName';\nimport isTag from './isTag';\n\nexport default function generateDisplayName(target: StyledTarget) {\n return isTag(target) ? `styled.${target}` : `Styled(${getComponentName(target)})`;\n}\n","import { StyledTarget } from '../types';\n\nexport default function getComponentName(target: StyledTarget) {\n return (\n (process.env.NODE_ENV !== 'production' ? typeof target === 'string' && target : false) ||\n (target as Exclude, string>).displayName ||\n (target as Function).name ||\n 'Component'\n );\n}\n","import { Interpolation } from '../types';\n\nexport default function interleave(\n strings: readonly string[],\n interpolations: Interpolation[]\n): Interpolation[] {\n const result: Interpolation[] = [strings[0]];\n\n for (let i = 0, len = interpolations.length; i < len; i += 1) {\n result.push(interpolations[i], strings[i + 1]);\n }\n\n return result;\n}\n","import {\n BaseObject,\n Interpolation,\n NoInfer,\n RuleSet,\n StyledObject,\n StyleFunction,\n Styles,\n} from '../types';\nimport { EMPTY_ARRAY } from '../utils/empties';\nimport flatten from '../utils/flatten';\nimport interleave from '../utils/interleave';\nimport isFunction from '../utils/isFunction';\nimport isPlainObject from '../utils/isPlainObject';\n\n/**\n * Used when flattening object styles to determine if we should\n * expand an array of styles.\n */\nconst addTag = >(arg: T): T & { isCss: true } =>\n Object.assign(arg, { isCss: true } as const);\n\nfunction css(styles: Styles, ...interpolations: Interpolation[]): RuleSet;\nfunction css(\n styles: Styles>,\n ...interpolations: Interpolation>[]\n): RuleSet>;\nfunction css(\n styles: Styles>,\n ...interpolations: Interpolation>[]\n): RuleSet> {\n if (isFunction(styles) || isPlainObject(styles)) {\n const styleFunctionOrObject = styles as StyleFunction | StyledObject;\n\n return addTag(\n flatten(\n interleave(EMPTY_ARRAY, [\n styleFunctionOrObject,\n ...interpolations,\n ]) as Interpolation\n )\n );\n }\n\n const styleStringArray = styles as TemplateStringsArray;\n\n if (\n interpolations.length === 0 &&\n styleStringArray.length === 1 &&\n typeof styleStringArray[0] === 'string'\n ) {\n return flatten(styleStringArray);\n }\n\n return addTag(\n flatten(interleave(styleStringArray, interpolations) as Interpolation)\n );\n}\n\nexport default css;\n","import {\n Attrs,\n BaseObject,\n ExecutionProps,\n Interpolation,\n IStyledComponent,\n IStyledComponentFactory,\n KnownTarget,\n NoInfer,\n Runtime,\n StyledOptions,\n StyledTarget,\n Styles,\n Substitute,\n} from '../types';\nimport { EMPTY_OBJECT } from '../utils/empties';\nimport styledError from '../utils/error';\nimport css from './css';\n\ntype AttrsResult> = T extends (...args: any) => infer P\n ? P extends object\n ? P\n : never\n : T extends object\n ? T\n : never;\n\n/**\n * Based on Attrs being a simple object or function that returns\n * a prop object, inspect the attrs result and attempt to extract\n * any \"as\" prop usage to modify the runtime target.\n */\ntype AttrsTarget<\n R extends Runtime,\n T extends Attrs,\n FallbackTarget extends StyledTarget,\n Result extends ExecutionProps = AttrsResult,\n> = Result extends { as: infer RuntimeTarget }\n ? RuntimeTarget extends KnownTarget\n ? RuntimeTarget\n : FallbackTarget\n : FallbackTarget;\n\nexport interface Styled<\n R extends Runtime,\n Target extends StyledTarget,\n OuterProps extends object,\n OuterStatics extends object = BaseObject,\n> {\n (\n initialStyles: Styles>>,\n ...interpolations: Interpolation>>[]\n ): IStyledComponent> &\n OuterStatics &\n Statics &\n (R extends 'web' ? (Target extends string ? {} : Target) : {});\n\n attrs: <\n Props extends object = BaseObject,\n PrivateMergedProps extends object = Substitute,\n PrivateAttrsArg extends Attrs = Attrs,\n PrivateResolvedTarget extends StyledTarget = AttrsTarget,\n >(\n attrs: PrivateAttrsArg\n ) => Styled<\n R,\n PrivateResolvedTarget,\n PrivateResolvedTarget extends KnownTarget\n ? Substitute<\n Substitute>,\n Props\n >\n : PrivateMergedProps,\n OuterStatics\n >;\n\n withConfig: (config: StyledOptions) => Styled;\n}\n\nexport default function constructWithOptions<\n R extends Runtime,\n Target extends StyledTarget,\n OuterProps extends object = Target extends KnownTarget\n ? React.ComponentPropsWithRef\n : BaseObject,\n OuterStatics extends object = BaseObject,\n>(\n componentConstructor: IStyledComponentFactory, object, any>,\n tag: StyledTarget,\n options: StyledOptions = EMPTY_OBJECT\n): Styled {\n /**\n * We trust that the tag is a valid component as long as it isn't\n * falsish. Typically the tag here is a string or function (i.e.\n * class or pure function component), however a component may also be\n * an object if it uses another utility, e.g. React.memo. React will\n * output an appropriate warning however if the `tag` isn't valid.\n */\n if (!tag) {\n throw styledError(1, tag);\n }\n\n /* This is callable directly as a template function */\n const templateFunction = (\n initialStyles: Styles>,\n ...interpolations: Interpolation>[]\n ) =>\n componentConstructor, Statics>(\n tag,\n options as StyledOptions>,\n css>(initialStyles, ...interpolations)\n );\n\n /**\n * Attrs allows for accomplishing two goals:\n *\n * 1. Backfilling props at runtime more expressively than defaultProps\n * 2. Amending the prop interface of a wrapped styled component\n */\n templateFunction.attrs = <\n Props extends object = BaseObject,\n PrivateMergedProps extends object = Substitute,\n PrivateAttrsArg extends Attrs = Attrs,\n PrivateResolvedTarget extends StyledTarget = AttrsTarget,\n >(\n attrs: PrivateAttrsArg\n ) =>\n constructWithOptions<\n R,\n PrivateResolvedTarget,\n PrivateResolvedTarget extends KnownTarget\n ? Substitute<\n Substitute>,\n Props\n >\n : PrivateMergedProps,\n OuterStatics\n >(componentConstructor, tag, {\n ...options,\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean),\n });\n\n /**\n * If config methods are called, wrap up a new template function\n * and merge options.\n */\n templateFunction.withConfig = (config: StyledOptions) =>\n constructWithOptions(componentConstructor, tag, {\n ...options,\n ...config,\n });\n\n return templateFunction;\n}\n","import createStyledComponent from '../models/StyledComponent';\nimport { WebTarget } from '../types';\nimport domElements, { SupportedHTMLElements } from '../utils/domElements';\nimport constructWithOptions, { Styled } from './constructWithOptions';\n\nconst baseStyled = (tag: Target) =>\n constructWithOptions<'web', Target>(createStyledComponent, tag);\n\nconst styled = baseStyled as typeof baseStyled & {\n [E in SupportedHTMLElements]: Styled<'web', E, JSX.IntrinsicElements[E]>;\n};\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(domElement => {\n // @ts-expect-error some react typing bs\n styled[domElement] = baseStyled(domElement);\n});\n\nexport default styled;\n","import StyleSheet from '../sheet';\nimport { ExecutionContext, RuleSet, Stringifier } from '../types';\nimport flatten from '../utils/flatten';\nimport isStaticRules from '../utils/isStaticRules';\nimport { joinStringArray } from '../utils/joinStrings';\n\nexport default class GlobalStyle {\n componentId: string;\n isStatic: boolean;\n rules: RuleSet;\n\n constructor(rules: RuleSet, componentId: string) {\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules);\n\n // pre-register the first instance to ensure global styles\n // load before component ones\n StyleSheet.registerId(this.componentId + 1);\n }\n\n createStyles(\n instance: number,\n executionContext: ExecutionContext & Props,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ): void {\n const flatCSS = joinStringArray(\n flatten(this.rules as RuleSet, executionContext, styleSheet, stylis) as string[]\n );\n const css = stylis(flatCSS, '');\n const id = this.componentId + instance;\n\n // NOTE: We use the id as a name as well, since these rules never change\n styleSheet.insertRules(id, id, css);\n }\n\n removeStyles(instance: number, styleSheet: StyleSheet): void {\n styleSheet.clearRules(this.componentId + instance);\n }\n\n renderStyles(\n instance: number,\n executionContext: ExecutionContext & Props,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ): void {\n if (instance > 2) StyleSheet.registerId(this.componentId + instance);\n\n // NOTE: Remove old styles, then inject the new ones\n this.removeStyles(instance, styleSheet);\n this.createStyles(instance, executionContext, styleSheet, stylis);\n }\n}\n","import React from 'react';\nimport type * as streamInternal from 'stream';\nimport { Readable } from 'stream';\nimport { IS_BROWSER, SC_ATTR, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport StyleSheet from '../sheet';\nimport styledError from '../utils/error';\nimport { joinStringArray } from '../utils/joinStrings';\nimport getNonce from '../utils/nonce';\nimport { StyleSheetManager } from './StyleSheetManager';\n\ndeclare const __SERVER__: boolean;\n\nconst CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nexport default class ServerStyleSheet {\n instance: StyleSheet;\n sealed: boolean;\n\n constructor() {\n this.instance = new StyleSheet({ isServer: true });\n this.sealed = false;\n }\n\n _emitSheetCSS = (): string => {\n const css = this.instance.toString();\n const nonce = getNonce();\n const attrs = [\n nonce && `nonce=\"${nonce}\"`,\n `${SC_ATTR}=\"true\"`,\n `${SC_ATTR_VERSION}=\"${SC_VERSION}\"`,\n ];\n const htmlAttr = joinStringArray(attrs.filter(Boolean) as string[], ' ');\n\n return ``;\n };\n\n collectStyles(children: any): JSX.Element {\n if (this.sealed) {\n throw styledError(2);\n }\n\n return {children};\n }\n\n getStyleTags = (): string => {\n if (this.sealed) {\n throw styledError(2);\n }\n\n return this._emitSheetCSS();\n };\n\n getStyleElement = () => {\n if (this.sealed) {\n throw styledError(2);\n }\n\n const props = {\n [SC_ATTR]: '',\n [SC_ATTR_VERSION]: SC_VERSION,\n dangerouslySetInnerHTML: {\n __html: this.instance.toString(),\n },\n };\n\n const nonce = getNonce();\n if (nonce) {\n (props as any).nonce = nonce;\n }\n\n // v4 returned an array for this fn, so we'll do the same for v5 for backward compat\n return [