{"version":3,"file":"static/js/main.48fe1508.js","mappings":"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","sources":["../node_modules/react/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/react-dom/client.js","../node_modules/react/jsx-runtime.js","../node_modules/react-dom/cjs/react-dom.production.min.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/scheduler/index.js","../node_modules/react-dom/index.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/hasOwnProperty shorthand","components/Logo.jsx","../node_modules/number-flow/dist/continuous-ybARbRnI.mjs","../node_modules/@number-flow/react/dist/NumberFlow-client-CHWbu7lx.mjs","../node_modules/number-flow/dist/index.mjs","components/NumberFlowWrapper.jsx","../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../node_modules/framer-motion/dist/es/utils/is-browser.mjs","../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../node_modules/framer-motion/dist/es/context/LazyContext.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../node_modules/framer-motion/dist/es/render/utils/variant-props.mjs","../node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","../node_modules/framer-motion/dist/es/motion/index.mjs","../node_modules/framer-motion/dist/es/motion/features/load-features.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../node_modules/framer-motion/dist/es/utils/clamp.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/index.mjs","../node_modules/framer-motion/dist/es/value/types/utils.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/units.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/html/use-props.mjs","../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs","../node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../node_modules/framer-motion/dist/es/utils/noop.mjs","../node_modules/framer-motion/dist/es/frameloop/render-step.mjs","../node_modules/framer-motion/dist/es/frameloop/batcher.mjs","../node_modules/framer-motion/dist/es/frameloop/frame.mjs","../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../node_modules/framer-motion/dist/es/events/add-dom-event.mjs","../node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs","../node_modules/framer-motion/dist/es/events/event-info.mjs","../node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","../node_modules/framer-motion/dist/es/utils/pipe.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../node_modules/framer-motion/dist/es/motion/features/Feature.mjs","../node_modules/framer-motion/dist/es/gestures/hover.mjs","../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../node_modules/framer-motion/dist/es/gestures/press.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs","../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../node_modules/framer-motion/dist/es/gestures/focus.mjs","../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","../node_modules/framer-motion/dist/es/utils/errors.mjs","../node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs","../node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs","../node_modules/framer-motion/dist/es/easing/ease.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs","../node_modules/framer-motion/dist/es/easing/circ.mjs","../node_modules/framer-motion/dist/es/easing/back.mjs","../node_modules/framer-motion/dist/es/easing/utils/map.mjs","../node_modules/framer-motion/dist/es/easing/anticipate.mjs","../node_modules/framer-motion/dist/es/value/types/color/utils.mjs","../node_modules/framer-motion/dist/es/value/types/color/rgba.mjs","../node_modules/framer-motion/dist/es/value/types/color/hex.mjs","../node_modules/framer-motion/dist/es/value/types/color/hsla.mjs","../node_modules/framer-motion/dist/es/value/types/color/index.mjs","../node_modules/framer-motion/dist/es/utils/mix.mjs","../node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs","../node_modules/framer-motion/dist/es/utils/mix-color.mjs","../node_modules/framer-motion/dist/es/value/types/complex/index.mjs","../node_modules/framer-motion/dist/es/utils/mix-complex.mjs","../node_modules/framer-motion/dist/es/utils/progress.mjs","../node_modules/framer-motion/dist/es/utils/interpolate.mjs","../node_modules/framer-motion/dist/es/utils/offsets/default.mjs","../node_modules/framer-motion/dist/es/utils/offsets/fill.mjs","../node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs","../node_modules/framer-motion/dist/es/utils/offsets/time.mjs","../node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs","../node_modules/framer-motion/dist/es/animation/generators/inertia.mjs","../node_modules/framer-motion/dist/es/animation/animators/js/driver-frameloop.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs","../node_modules/framer-motion/dist/es/animation/animators/js/index.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/create-accelerated-animation.mjs","../node_modules/framer-motion/dist/es/utils/memo.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs","../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../node_modules/framer-motion/dist/es/value/types/complex/filter.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-none.mjs","../node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","../node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs","../node_modules/framer-motion/dist/es/animation/utils/keyframes.mjs","../node_modules/framer-motion/dist/es/animation/animators/instant.mjs","../node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../node_modules/framer-motion/dist/es/utils/array.mjs","../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../node_modules/framer-motion/dist/es/value/index.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../node_modules/framer-motion/dist/es/render/utils/setters.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs","../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/index.mjs","../node_modules/framer-motion/dist/es/utils/distance.mjs","../node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../node_modules/framer-motion/dist/es/utils/get-context-window.mjs","../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../node_modules/framer-motion/dist/es/gestures/pan/index.mjs","../node_modules/framer-motion/dist/es/projection/node/state.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../node_modules/framer-motion/dist/es/debug/record.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs","../node_modules/framer-motion/dist/es/utils/delay.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/single-value.mjs","../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../node_modules/framer-motion/dist/es/motion/features/drag.mjs","../node_modules/framer-motion/dist/es/gestures/drag/index.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","../node_modules/framer-motion/dist/es/render/store.mjs","../node_modules/framer-motion/dist/es/render/VisualElement.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","../node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","../node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../node_modules/framer-motion/dist/es/render/dom/motion.mjs","../node_modules/framer-motion/dist/es/motion/features/layout.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","components/GradientBackground.jsx","components/ParticleExplosion.jsx","config.js","components/DiggCounter.jsx","components/EmailSignup.jsx","components/SimpleTyping.jsx","components/HeadlineManager.jsx","../node_modules/shared/src/utils.ts","../node_modules/lucide-react/src/defaultAttributes.ts","../node_modules/lucide-react/src/Icon.ts","../node_modules/lucide-react/src/icons/check.ts","../node_modules/lucide-react/src/createLucideIcon.ts","components/SuccessMessage.jsx","components/LiveBanner.jsx","App.jsx","index.jsx"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","(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\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\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 {\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","'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","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\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};","// 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__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import React from 'react';\n\nconst Logo = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Logo;\n","import { BROWSER as m } from \"esm-env\";\nconst c = (n, t, e) => {\n const i = document.createElement(n), [s, a] = Array.isArray(t) ? [void 0, t] : [t, e];\n return s && Object.assign(i, s), a == null || a.forEach((r) => i.appendChild(r)), i;\n}, V = (n, t) => {\n var e;\n return t === \"left\" ? n.offsetLeft : (((e = n.offsetParent instanceof HTMLElement ? n.offsetParent : null) == null ? void 0 : e.offsetWidth) ?? 0) - n.offsetWidth - n.offsetLeft;\n}, W = (n) => n.offsetWidth > 0 && n.offsetHeight > 0, tt = (n, t) => {\n m && customElements.get(n) !== t && customElements.define(n, t);\n};\nfunction B(n, t, { reverse: e = !1 } = {}) {\n const i = n.length;\n for (let s = e ? i - 1 : 0; e ? s >= 0 : s < i; e ? s-- : s++)\n t(n[s], s);\n}\nconst D = String.raw, M = String.raw, H = m && typeof CSS < \"u\" && CSS.supports && CSS.supports(\"animation-timing-function\", \"linear(1,2)\"), X = m && typeof CSS < \"u\" && CSS.supports && CSS.supports(\"line-height\", \"mod(1,1)\"), $ = m && typeof matchMedia < \"u\" ? matchMedia(\"(prefers-reduced-motion: reduce)\") : null, _ = \"--_number-flow-d-opacity\", A = \"--_number-flow-d-width\", w = \"--_number-flow-dx\", k = \"--_number-flow-d\", F = (() => {\n try {\n return CSS.registerProperty({\n name: _,\n syntax: \"\",\n inherits: !1,\n initialValue: \"0\"\n }), CSS.registerProperty({\n name: w,\n syntax: \"\",\n inherits: !0,\n initialValue: \"0px\"\n }), CSS.registerProperty({\n name: A,\n syntax: \"\",\n inherits: !1,\n initialValue: \"0\"\n }), CSS.registerProperty({\n name: k,\n syntax: \"\",\n inherits: !0,\n initialValue: \"0\"\n }), !0;\n } catch {\n return !1;\n }\n})(), R = \"var(--number-flow-char-height, 1em)\", h = \"var(--number-flow-mask-height, 0.25em)\", x = `calc(${h} / 2)`, C = \"var(--number-flow-mask-width, 0.5em)\", d = `calc(${C} / var(--scale-x))`, u = \"#000 0, transparent 71%\", U = M`:host{display:inline-block;direction:ltr;white-space:nowrap;isolation:isolate;line-height:${R} !important}.number,.number__inner{display:inline-block;transform-origin:left top}:host([data-will-change]) :is(.number,.number__inner,.section,.digit,.digit__num,.symbol){will-change:transform}.number{--scale-x:calc(1 + var(${A}) / var(--width));transform:translateX(var(${w})) scaleX(var(--scale-x));margin:0 calc(-1 * ${C});position:relative;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 ${d},#000 calc(100% - ${d}),transparent ),linear-gradient(to bottom,transparent 0,#000 ${h},#000 calc(100% - ${h}),transparent 100% ),radial-gradient(at bottom right,${u}),radial-gradient(at bottom left,${u}),radial-gradient(at top left,${u}),radial-gradient(at top right,${u});-webkit-mask-size:100% calc(100% - ${h} * 2),calc(100% - ${d} * 2) 100%,${d} ${h},${d} ${h},${d} ${h},${d} ${h};-webkit-mask-position:center,center,top left,top right,bottom right,bottom left;-webkit-mask-repeat:no-repeat}.number__inner{padding:${x} ${C};transform:scaleX(calc(1 / var(--scale-x))) translateX(calc(-1 * var(${w})))}:host > :not(.number){z-index:5}.section,.symbol{display:inline-block;position:relative;isolation:isolate}.section::after{content:'\\200b';display:inline-block}.section--justify-left{transform-origin:center left}.section--justify-right{transform-origin:center right}.section > [inert],.symbol > [inert]{margin:0 !important;position:absolute !important;z-index:-1}.digit{display:inline-block;position:relative;--c:var(--current) + var(${k})}.digit__num,.number .section::after{padding:${x} 0}.digit__num{display:inline-block;--offset-raw:mod(var(--length) + var(--n) - mod(var(--c),var(--length)),var(--length));--offset:calc( var(--offset-raw) - var(--length) * round(down,var(--offset-raw) / (var(--length) / 2),1) );--y:clamp(-100%,var(--offset) * 100%,100%);transform:translateY(var(--y))}.digit__num[inert]{position:absolute;top:0;left:50%;transform:translateX(-50%) translateY(var(--y))}.digit:not(.is-spinning) .digit__num[inert]{display:none}.symbol__value{display:inline-block;mix-blend-mode:plus-lighter;white-space:pre}.section--justify-left .symbol > [inert]{left:0}.section--justify-right .symbol > [inert]{right:0}.animate-presence{opacity:calc(1 + var(${_}))}`, O = m ? HTMLElement : class {\n}, z = M`:host{display:inline-block;direction:ltr;white-space:nowrap;line-height:${R} !important}span{display:inline-block}:host([data-will-change]) span{will-change:transform}.number,.digit{padding:${x} 0}.symbol{white-space:pre}`, I = (n) => `${n.value}`, g = (n, t) => `${n.reduce((e, i) => e + I(i), \"\")}`, et = (n) => (\n // shadowroot=\"open\" non-standard attribute for old Chrome:\n D`