{"version":3,"file":"static/js/main.6143f7fc.js","mappings":"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ACI/8K,IAAK,EACLg9K,QAASprL,EAAE,uCACXolL,QAASplL,EAAE,uCACXmoD,YAAanoD,EAAE,uCACf+jF,KAAM,2CAEV,CACI31E,IAAK,EACLg9K,QAASprL,EAAE,6BACXolL,QAASplL,EAAE,6BACXmoD,YAAanoD,EAAE,6BACf+jF,KAAM,iCAEV,CACI31E,IAAK,EACLg9K,QAASprL,EAAE,iCACXolL,QAASplL,EAAE,iCACXmoD,YAAanoD,EAAE,iCACf+jF,KAAM,qCAEV,CACI31E,IAAK,EACLg9K,QAASprL,EAAE,qCACXolL,QAASplL,EAAE,qCACXmoD,YAAanoD,EAAE,qCACf+jF,KAAM,yCAEV,CACI31E,IAAK,EACLg9K,QAASprL,EAAE,yCACXolL,QAASplL,EAAE,yCACXmoD,YAAanoD,EAAE,yCACf+jF,KAAM,6CAEV,CACI31E,IAAK,EACLg9K,QAASprL,EAAE,gCACXolL,QAASplL,EAAE,gCACXmoD,YAAanoD,EAAE,gCACf+jF,KAAM,oCAEV,CACI31E,IAAK,EACLg9K,QAASprL,EAAE,sCACXolL,QAASplL,EAAE,sCACXmoD,YAAanoD,EAAE,sCACf+jF,KAAM,0CAEV,CACI31E,IAAK,EACLg9K,QAASprL,EAAE,kCACXolL,QAASplL,EAAE,kCACXmoD,YAAanoD,EAAE,kCACf+jF,KAAM,sCAEV,CACI31E,IAAK,EACLg9K,QAASprL,EAAE,+BACXolL,QAASplL,EAAE,+BACXmoD,YAAanoD,EAAE,+BACf+jF,KAAM,mCAEV,CACI31E,IAAK,GACLg9K,QAASprL,EAAE,8BACXolL,QAASplL,EAAE,8BACXmoD,YAAanoD,EAAE,8BACf+jF,KAAM,kCAEV,CACI31E,IAAK,GACLg9K,QAASprL,EAAE,sCACXolL,QAASplL,EAAE,sCACXmoD,YAAanoD,EAAE,sCACf+jF,KAAM,2CAGdrzE,EAAQy6K,GACR/4K,YAAW,KACPu2K,GAAW,EAAM,GAClB,IAAK,EAiBZnF,GAAYvnF,MAAMt1D,QAAQj5C,OAdA0hI,WACtB,IACIu5D,GAAW,GACX,MAAMxh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","sources":["../node_modules/invariant/browser.js","../node_modules/lottie-react/compiled/hooks/useLottie.js","../node_modules/lottie-react/compiled/hooks/useLottieInteractivity.js","../node_modules/lottie-react/compiled/components/Lottie.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/prop-types-extra/lib/all.js","../node_modules/prop-types-extra/lib/utils/createChainableTypeChecker.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react/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/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/void-elements/index.js","../node_modules/warning/warning.js","../node_modules/classnames/index.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../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/index.ts","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/html-parse-stringify/src/parse.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/defaults.js","../node_modules/react-i18next/dist/es/i18nInstance.js","../node_modules/react-i18next/dist/es/initReactI18next.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/Container.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/uncontrollable/lib/esm/utils.js","../node_modules/uncontrollable/lib/esm/hook.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/@restart/hooks/esm/useForceUpdate.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/@restart/ui/esm/NavContext.js","../node_modules/@restart/ui/esm/SelectableContext.js","../node_modules/@restart/ui/esm/TabContext.js","../node_modules/@restart/ui/esm/DataKey.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/@restart/ui/esm/NavItem.js","../node_modules/@restart/ui/esm/Nav.js","../node_modules/react-bootstrap/esm/NavbarContext.js","../node_modules/react-bootstrap/esm/CardHeaderContext.js","../node_modules/react-bootstrap/esm/NavItem.js","../node_modules/@restart/hooks/esm/useCallbackRef.js","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/@restart/hooks/esm/usePrevious.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@restart/hooks/esm/useResizeObserver.js","../node_modules/@restart/ui/esm/Anchor.js","../node_modules/react-bootstrap/esm/NavLink.js","../node_modules/react-bootstrap/esm/Nav.js","../node_modules/react-bootstrap/esm/NavbarBrand.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/react-bootstrap/esm/createChainedFunction.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/react-bootstrap/esm/Collapse.js","../node_modules/react-bootstrap/esm/NavbarCollapse.js","../node_modules/react-bootstrap/esm/NavbarToggle.js","../node_modules/@restart/hooks/esm/useMediaQuery.js","../node_modules/@restart/hooks/esm/useBreakpoint.js","../node_modules/dom-helpers/esm/activeElement.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/@restart/hooks/esm/useWillUnmount.js","../node_modules/@restart/hooks/esm/useUpdatedRef.js","../node_modules/@restart/ui/esm/ModalManager.js","../node_modules/@restart/ui/esm/getScrollbarWidth.js","../node_modules/@restart/ui/esm/useWindow.js","../node_modules/@restart/ui/esm/useWaitForDOMRef.js","../node_modules/@restart/ui/esm/NoopTransition.js","../node_modules/@restart/ui/esm/useRTGTransitionProps.js","../node_modules/@restart/ui/esm/utils.js","../node_modules/@restart/ui/esm/RTGTransition.js","../node_modules/@restart/ui/esm/ImperativeTransition.js","../node_modules/@restart/ui/esm/Modal.js","../node_modules/react-bootstrap/esm/Fade.js","../node_modules/react-bootstrap/esm/OffcanvasBody.js","../node_modules/react-bootstrap/esm/OffcanvasToggling.js","../node_modules/react-bootstrap/esm/ModalContext.js","../node_modules/react-bootstrap/esm/CloseButton.js","../node_modules/react-bootstrap/esm/AbstractModalHeader.js","../node_modules/react-bootstrap/esm/OffcanvasHeader.js","../node_modules/react-bootstrap/esm/divWithClassName.js","../node_modules/react-bootstrap/esm/OffcanvasTitle.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-bootstrap/esm/BootstrapModalManager.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/react-bootstrap/esm/Offcanvas.js","../node_modules/react-bootstrap/esm/NavbarOffcanvas.js","../node_modules/react-bootstrap/esm/NavbarText.js","../node_modules/react-bootstrap/esm/Navbar.js","../node_modules/@restart/ui/node_modules/uncontrollable/lib/esm/index.js","../node_modules/@restart/ui/esm/DropdownContext.js","../node_modules/dequal/dist/index.mjs","../node_modules/@restart/hooks/esm/useSafeState.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@restart/ui/esm/popper.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@restart/ui/esm/usePopper.js","../node_modules/@restart/ui/esm/useClickOutside.js","../node_modules/@restart/ui/esm/mergeOptionsWithPopperConfig.js","../node_modules/@restart/ui/esm/DropdownMenu.js","../node_modules/@react-aria/ssr/dist/SSRProvider.mjs","../node_modules/@restart/ui/esm/DropdownToggle.js","../node_modules/@restart/ui/esm/DropdownItem.js","../node_modules/@restart/ui/esm/Dropdown.js","../node_modules/@restart/hooks/esm/useEventListener.js","../node_modules/react-bootstrap/esm/DropdownContext.js","../node_modules/react-bootstrap/esm/DropdownDivider.js","../node_modules/react-bootstrap/esm/DropdownHeader.js","../node_modules/react-bootstrap/esm/DropdownItem.js","../node_modules/react-bootstrap/esm/DropdownItemText.js","../node_modules/react-bootstrap/esm/InputGroupContext.js","../node_modules/react-bootstrap/esm/useWrappedRefWithWarning.js","../node_modules/react-bootstrap/esm/DropdownMenu.js","../node_modules/react-bootstrap/esm/Button.js","../node_modules/react-bootstrap/esm/DropdownToggle.js","../node_modules/react-bootstrap/esm/Dropdown.js","../node_modules/react-bootstrap/esm/NavDropdown.js","../node_modules/react-feather/dist/icons/linkedin.js","components/shared/LinkButton.tsx","components/shared/TranslateRoutes.tsx","components/shared/NavMenu.tsx","../node_modules/react-bootstrap/esm/Row.js","../node_modules/react-bootstrap/esm/Col.js","../node_modules/react-feather/dist/icons/mail.js","../node_modules/react-feather/dist/icons/map-pin.js","components/shared/Section.tsx","../node_modules/js-cookie/dist/js.cookie.mjs","components/shared/Cookie.tsx","components/shared/footer/Footer.tsx","components/shared/ScrollToTop.tsx","components/shared/backaltered/BackAltered.tsx","../node_modules/i18next/dist/esm/i18next.js","i18n/i18n.ts","components/shared/Layout.tsx","../node_modules/react-feather/dist/icons/arrow-up-right.js","components/shared/SliderItem.tsx","components/shared/Slider.tsx","../node_modules/react-bootstrap/esm/AccordionContext.js","../node_modules/react-bootstrap/esm/AccordionCollapse.js","../node_modules/react-bootstrap/esm/AccordionItemContext.js","../node_modules/react-bootstrap/esm/AccordionBody.js","../node_modules/react-bootstrap/esm/AccordionButton.js","../node_modules/react-bootstrap/esm/AccordionHeader.js","../node_modules/react-bootstrap/esm/AccordionItem.js","../node_modules/react-bootstrap/esm/Accordion.js","../node_modules/react-feather/dist/icons/plus-circle.js","../node_modules/react-feather/dist/icons/minus-circle.js","components/shared/accordion/Accordions.tsx","assets/img/home/flowly.svg","assets/img/home/img_1.svg","assets/img/home/img_2.svg","assets/img/home/img_3.svg","components/shared/loader/ImageLoader.tsx","../node_modules/react-feather/dist/icons/message-circle.js","../node_modules/react-feather/dist/icons/arrow-left-circle.js","../node_modules/react-feather/dist/icons/arrow-right-circle.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/react-bootstrap/esm/ModalBody.js","../node_modules/react-bootstrap/esm/ModalDialog.js","../node_modules/react-bootstrap/esm/ModalFooter.js","../node_modules/react-bootstrap/esm/ModalHeader.js","../node_modules/react-bootstrap/esm/ModalTitle.js","../node_modules/react-bootstrap/esm/Modal.js","components/shared/testimonial/Testimonials.tsx","../node_modules/react-feather/dist/icons/external-link.js","components/linkedin/LinkedinPost.tsx","components/home/Home.tsx","../node_modules/react-bootstrap/esm/Feedback.js","../node_modules/react-bootstrap/esm/FormContext.js","../node_modules/react-bootstrap/esm/FormCheckInput.js","../node_modules/react-bootstrap/esm/FormCheckLabel.js","../node_modules/react-bootstrap/esm/ElementChildren.js","../node_modules/react-bootstrap/esm/FormCheck.js","../node_modules/react-bootstrap/esm/FormControl.js","../node_modules/react-bootstrap/esm/FormFloating.js","../node_modules/react-bootstrap/esm/FormGroup.js","../node_modules/react-bootstrap/esm/FormLabel.js","../node_modules/react-bootstrap/esm/FormRange.js","../node_modules/react-bootstrap/esm/FormSelect.js","../node_modules/react-bootstrap/esm/FormText.js","../node_modules/react-bootstrap/esm/Switch.js","../node_modules/react-bootstrap/esm/FloatingLabel.js","../node_modules/react-bootstrap/esm/Form.js","../node_modules/react-bootstrap/esm/Spinner.js","components/contact/Contact.tsx","../node_modules/@restart/ui/esm/TabPanel.js","../node_modules/@restart/ui/esm/Tabs.js","../node_modules/react-bootstrap/esm/getTabTransitionComponent.js","../node_modules/react-bootstrap/esm/TabContainer.js","../node_modules/react-bootstrap/esm/TabContent.js","../node_modules/react-bootstrap/esm/TabPane.js","../node_modules/react-bootstrap/esm/Tab.js","../node_modules/react-bootstrap/esm/Tabs.js","components/medias/Media.tsx","components/medias/Medias.tsx","components/team/TeamCard.tsx","components/society/Society.tsx","components/privacy/Privacy.tsx","components/politic/Politic.tsx","components/team/Team.tsx","components/shared/carroussel/Carroussels.tsx","../node_modules/react-feather/dist/icons/arrow-down-right.js","../node_modules/react-feather/dist/icons/arrow-down.js","components/expertises/Expertises.tsx","components/valence/Valence.tsx","components/reunion/Reunion.tsx","components/avignon/Avignon.tsx","components/rouen/Rouen.tsx","components/douai/Douai.tsx","components/carjaune/Carjaune.tsx","components/shared/Lotties.tsx","components/the-solution/TheSolution.tsx","components/mentions-legales/MentionsLegales.tsx","components/shared/LanguageRedirect.tsx","AppRoutes.tsx","matomo_script.js","index.tsx"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","import lottie from \"lottie-web\";\nimport React, { useEffect, useRef, useState, } from \"react\";\nconst useLottie = (props, style) => {\n const { animationData, loop, autoplay, initialSegment, onComplete, onLoopComplete, onEnterFrame, onSegmentStart, onConfigReady, onDataReady, onDataFailed, onLoadedImages, onDOMLoaded, onDestroy, \n // Specified here to take them out from the 'rest'\n lottieRef, renderer, name, assetsPath, rendererSettings, \n // TODO: find a better way to extract the html props to avoid specifying\n // all the props that we want to exclude (as you can see above)\n ...rest } = props;\n const [animationLoaded, setAnimationLoaded] = useState(false);\n const animationInstanceRef = useRef();\n const animationContainer = useRef(null);\n /*\n ======================================\n INTERACTION METHODS\n ======================================\n */\n /**\n * Play\n */\n const play = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.play();\n };\n /**\n * Stop\n */\n const stop = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.stop();\n };\n /**\n * Pause\n */\n const pause = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.pause();\n };\n /**\n * Set animation speed\n * @param speed\n */\n const setSpeed = (speed) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSpeed(speed);\n };\n /**\n * Got to frame and play\n * @param value\n * @param isFrame\n */\n const goToAndPlay = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndPlay(value, isFrame);\n };\n /**\n * Got to frame and stop\n * @param value\n * @param isFrame\n */\n const goToAndStop = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndStop(value, isFrame);\n };\n /**\n * Set animation direction\n * @param direction\n */\n const setDirection = (direction) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setDirection(direction);\n };\n /**\n * Play animation segments\n * @param segments\n * @param forceFlag\n */\n const playSegments = (segments, forceFlag) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.playSegments(segments, forceFlag);\n };\n /**\n * Set sub frames\n * @param useSubFrames\n */\n const setSubframe = (useSubFrames) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSubframe(useSubFrames);\n };\n /**\n * Get animation duration\n * @param inFrames\n */\n const getDuration = (inFrames) => { var _a; return (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.getDuration(inFrames); };\n /**\n * Destroy animation\n */\n const destroy = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Removing the reference to the animation so separate cleanups are skipped.\n // Without it the internal `lottie-react` instance throws exceptions as it already cleared itself on destroy.\n animationInstanceRef.current = undefined;\n };\n /*\n ======================================\n LOTTIE\n ======================================\n */\n /**\n * Load a new animation, and if it's the case, destroy the previous one\n * @param {Object} forcedConfigs\n */\n const loadAnimation = (forcedConfigs = {}) => {\n var _a;\n // Return if the container ref is null\n if (!animationContainer.current) {\n return;\n }\n // Destroy any previous instance\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Build the animation configuration\n const config = {\n ...props,\n ...forcedConfigs,\n container: animationContainer.current,\n };\n // Save the animation instance\n animationInstanceRef.current = lottie.loadAnimation(config);\n setAnimationLoaded(!!animationInstanceRef.current);\n // Return a function that will clean up\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n animationInstanceRef.current = undefined;\n };\n };\n /**\n * (Re)Initialize when animation data changed\n */\n useEffect(() => {\n const onUnmount = loadAnimation();\n // Clean up on unmount\n return () => onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animationData, loop]);\n // Update the autoplay state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n animationInstanceRef.current.autoplay = !!autoplay;\n }, [autoplay]);\n // Update the initial segment state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n // When null should reset to default animation length\n if (!initialSegment) {\n animationInstanceRef.current.resetSegments(true);\n return;\n }\n // If it's not a valid segment, do nothing\n if (!Array.isArray(initialSegment) || !initialSegment.length) {\n return;\n }\n // If the current position it's not in the new segment\n // set the current position to start\n if (animationInstanceRef.current.currentRawFrame < initialSegment[0] ||\n animationInstanceRef.current.currentRawFrame > initialSegment[1]) {\n animationInstanceRef.current.currentRawFrame = initialSegment[0];\n }\n // Update the segment\n animationInstanceRef.current.setSegment(initialSegment[0], initialSegment[1]);\n }, [initialSegment]);\n /*\n ======================================\n EVENTS\n ======================================\n */\n /**\n * Reinitialize listener on change\n */\n useEffect(() => {\n const partialListeners = [\n { name: \"complete\", handler: onComplete },\n { name: \"loopComplete\", handler: onLoopComplete },\n { name: \"enterFrame\", handler: onEnterFrame },\n { name: \"segmentStart\", handler: onSegmentStart },\n { name: \"config_ready\", handler: onConfigReady },\n { name: \"data_ready\", handler: onDataReady },\n { name: \"data_failed\", handler: onDataFailed },\n { name: \"loaded_images\", handler: onLoadedImages },\n { name: \"DOMLoaded\", handler: onDOMLoaded },\n { name: \"destroy\", handler: onDestroy },\n ];\n const listeners = partialListeners.filter((listener) => listener.handler != null);\n if (!listeners.length) {\n return;\n }\n const deregisterList = listeners.map(\n /**\n * Handle the process of adding an event listener\n * @param {Listener} listener\n * @return {Function} Function that deregister the listener\n */\n (listener) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener(listener.name, listener.handler);\n // Return a function to deregister this listener\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(listener.name, listener.handler);\n };\n });\n // Deregister listeners on unmount\n return () => {\n deregisterList.forEach((deregister) => deregister());\n };\n }, [\n onComplete,\n onLoopComplete,\n onEnterFrame,\n onSegmentStart,\n onConfigReady,\n onDataReady,\n onDataFailed,\n onLoadedImages,\n onDOMLoaded,\n onDestroy,\n ]);\n /**\n * Build the animation view\n */\n const View = React.createElement(\"div\", { style: style, ref: animationContainer, ...rest });\n return {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef: animationContainer,\n animationLoaded,\n animationItem: animationInstanceRef.current,\n };\n};\nexport default useLottie;\n","import { useEffect } from \"react\";\n// helpers\nexport function getContainerVisibility(container) {\n const { top, height } = container.getBoundingClientRect();\n const current = window.innerHeight - top;\n const max = window.innerHeight + height;\n return current / max;\n}\nexport function getContainerCursorPosition(container, cursorX, cursorY) {\n const { top, left, width, height } = container.getBoundingClientRect();\n const x = (cursorX - left) / width;\n const y = (cursorY - top) / height;\n return { x, y };\n}\nexport const useInitInteractivity = ({ wrapperRef, animationItem, mode, actions, }) => {\n useEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper || !animationItem || !actions.length) {\n return;\n }\n animationItem.stop();\n const scrollModeHandler = () => {\n let assignedSegment = null;\n const scrollHandler = () => {\n const currentPercent = getContainerVisibility(wrapper);\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ visibility }) => visibility &&\n currentPercent >= visibility[0] &&\n currentPercent <= visibility[1]);\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n if (action.type === \"seek\" &&\n action.visibility &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const frameToGo = action.frames[0] +\n Math.ceil(((currentPercent - action.visibility[0]) /\n (action.visibility[1] - action.visibility[0])) *\n action.frames[1]);\n //! goToAndStop must be relative to the start of the current segment\n animationItem.goToAndStop(frameToGo - animationItem.firstFrame - 1, true);\n }\n if (action.type === \"loop\") {\n // Loop: Loop a given frames\n if (assignedSegment === null) {\n // if not playing any segments currently. play those segments and save to state\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else {\n // if playing any segments currently.\n //check if segments in state are equal to the frames selected by action\n if (assignedSegment !== action.frames) {\n // if they are not equal. new segments are to be loaded\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else if (animationItem.isPaused) {\n // if they are equal the play method must be called only if lottie is paused\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n }\n }\n if (action.type === \"play\" && animationItem.isPaused) {\n // Play: Reset segments and continue playing full animation from current position\n animationItem.resetSegments(true);\n animationItem.play();\n }\n if (action.type === \"stop\") {\n // Stop: Stop playback\n animationItem.goToAndStop(action.frames[0] - animationItem.firstFrame - 1, true);\n }\n };\n document.addEventListener(\"scroll\", scrollHandler);\n return () => {\n document.removeEventListener(\"scroll\", scrollHandler);\n };\n };\n const cursorModeHandler = () => {\n const handleCursor = (_x, _y) => {\n let x = _x;\n let y = _y;\n // Resolve cursor position if cursor is inside container\n if (x !== -1 && y !== -1) {\n // Get container cursor position\n const pos = getContainerCursorPosition(wrapper, x, y);\n // Use the resolved position\n x = pos.x;\n y = pos.y;\n }\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ position }) => {\n if (position &&\n Array.isArray(position.x) &&\n Array.isArray(position.y)) {\n return (x >= position.x[0] &&\n x <= position.x[1] &&\n y >= position.y[0] &&\n y <= position.y[1]);\n }\n if (position &&\n !Number.isNaN(position.x) &&\n !Number.isNaN(position.y)) {\n return x === position.x && y === position.y;\n }\n return false;\n });\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n // Process action types:\n if (action.type === \"seek\" &&\n action.position &&\n Array.isArray(action.position.x) &&\n Array.isArray(action.position.y) &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const xPercent = (x - action.position.x[0]) /\n (action.position.x[1] - action.position.x[0]);\n const yPercent = (y - action.position.y[0]) /\n (action.position.y[1] - action.position.y[0]);\n animationItem.playSegments(action.frames, true);\n animationItem.goToAndStop(Math.ceil(((xPercent + yPercent) / 2) *\n (action.frames[1] - action.frames[0])), true);\n }\n if (action.type === \"loop\") {\n animationItem.playSegments(action.frames, true);\n }\n if (action.type === \"play\") {\n // Play: Reset segments and continue playing full animation from current position\n if (animationItem.isPaused) {\n animationItem.resetSegments(false);\n }\n animationItem.playSegments(action.frames);\n }\n if (action.type === \"stop\") {\n animationItem.goToAndStop(action.frames[0], true);\n }\n };\n const mouseMoveHandler = (ev) => {\n handleCursor(ev.clientX, ev.clientY);\n };\n const mouseOutHandler = () => {\n handleCursor(-1, -1);\n };\n wrapper.addEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.addEventListener(\"mouseout\", mouseOutHandler);\n return () => {\n wrapper.removeEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.removeEventListener(\"mouseout\", mouseOutHandler);\n };\n };\n switch (mode) {\n case \"scroll\":\n return scrollModeHandler();\n case \"cursor\":\n return cursorModeHandler();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mode, animationItem]);\n};\nconst useLottieInteractivity = ({ actions, mode, lottieObj, }) => {\n const { animationItem, View, animationContainerRef } = lottieObj;\n useInitInteractivity({\n actions,\n animationItem,\n mode,\n wrapperRef: animationContainerRef,\n });\n return View;\n};\nexport default useLottieInteractivity;\n","import { useEffect } from \"react\";\nimport useLottie from \"../hooks/useLottie\";\nimport useLottieInteractivity from \"../hooks/useLottieInteractivity\";\nconst Lottie = (props) => {\n var _a, _b, _c;\n const { style, interactivity, ...lottieProps } = props;\n /**\n * Initialize the 'useLottie' hook\n */\n const { View, play, stop, pause, setSpeed, goToAndStop, goToAndPlay, setDirection, playSegments, setSubframe, getDuration, destroy, animationContainerRef, animationLoaded, animationItem, } = useLottie(lottieProps, style);\n /**\n * Make the hook variables/methods available through the provided 'lottieRef'\n */\n useEffect(() => {\n if (props.lottieRef) {\n props.lottieRef.current = {\n play,\n stop,\n pause,\n setSpeed,\n goToAndPlay,\n goToAndStop,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(_a = props.lottieRef) === null || _a === void 0 ? void 0 : _a.current]);\n return useLottieInteractivity({\n lottieObj: {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n },\n actions: (_b = interactivity === null || interactivity === void 0 ? void 0 : interactivity.actions) !== null && _b !== void 0 ? _b : [],\n mode: (_c = interactivity === null || interactivity === void 0 ? void 0 : interactivity.mode) !== null && _c !== void 0 ? _c : \"scroll\",\n });\n};\nexport default Lottie;\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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = all;\n\nvar _createChainableTypeChecker = require('./utils/createChainableTypeChecker');\n\nvar _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction all() {\n for (var _len = arguments.length, validators = Array(_len), _key = 0; _key < _len; _key++) {\n validators[_key] = arguments[_key];\n }\n\n function allPropTypes() {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var error = null;\n\n validators.forEach(function (validator) {\n if (error != null) {\n return;\n }\n\n var result = validator.apply(undefined, args);\n if (result != null) {\n error = result;\n }\n });\n\n return error;\n }\n\n return (0, _createChainableTypeChecker2.default)(allPropTypes);\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createChainableTypeChecker;\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n// Mostly taken from ReactPropTypes.\n\nfunction createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<>';\n var propFullNameSafe = propFullName || propName;\n\n if (props[propName] == null) {\n if (isRequired) {\n return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));\n }\n\n return null;\n }\n\n for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n args[_key - 6] = arguments[_key];\n }\n\n return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n}\nmodule.exports = exports['default'];","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}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&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(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=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(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=Sg(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);Mg(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=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(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,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();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=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;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;zj(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;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(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=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&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 Ij(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 zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);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(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(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 Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(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:Ci(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=Nj;Nj=!1;return n}\nfunction Pj(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&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(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 Rj(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 Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(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 Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(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 Vj(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(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(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(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(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=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=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)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(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)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(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*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=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()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(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);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();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,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(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:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(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=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(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),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(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(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(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=mh(-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);bh(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);bh(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}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(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 $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(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 Pg(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 Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(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 pj(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 Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(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 al(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 bl(a,b,c,d,e,f,g,h,k){a=new al(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};kh(f);return a}function cl(a,b,c){var d=3>>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 * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData\n status?: number;\n}\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n unstable_actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded);\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n unstable_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n unstable_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.unstable_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n\n let actionData: Record | null | undefined;\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n actionData = {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n actionData = null;\n } else {\n actionData = state.actionData;\n }\n }\n\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(request, redirect.result, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.unstable_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(revalidationRequest, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\n }));\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise {\n let { result, type, status } = handlerResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : status,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result, statusCode: status };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a