{"version":3,"file":"static/chunks/a2c29f49-cc469f2cbc4fe813.js","mappings":"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","sources":["webpack://_N_E/./node_modules/lottie-web/build/player/lottie_light.js"],"sourcesContent":["(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$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 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$3(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$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n var 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$2(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$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 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$1(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$1(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(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 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(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 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n 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(id, effect, countsAsEffect) {\n registeredEffects[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n 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 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);\n\n return lottie;\n\n}));\n"],"names":["factory","navigator","_count","_length","_maxLength","pool","ob","modifiers","blendModeEnums","locationHref","_useWebWorker","setLocationHref","value","getLocationHref","createTag","type","document","createElement","extendPrototype","sources","destination","i","sourcePrototype","len","length","attr","prototype","Object","hasOwnProperty","call","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","push","pause","resume","setRate","rateValue","createAudio","assetPath","window","Howl","src","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","arr","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","Array","apply","_typeof$3","obj","Symbol","iterator","constructor","subframeEnabled","expressionsPlugin","idPrefix$1","isSafari","test","userAgent","bmPow","Math","pow","bmSqrt","sqrt","bmFloor","floor","bmMin","min","BMMath","propertyNames","random","abs","val","tOfVal","absArr","defaultCurveSegments","degToRads","PI","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","target","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","createElementID","HSVtoRGB","h","s","v","r","g","b","f","p","q","t","RGBtoHSV","max","d","addSaturationToRGB","color","offset","hsv","addBrightnessToRGB","addHueToRGB","hex","colorMap","toString","setSubframeEnabled","flag","setExpressionsPlugin","getExpressionsPlugin","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","createNS","createElementNS","_typeof$2","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","path","data","_workerSelf","setupWorker","createWorker","fn","Worker","Blob","blob","URL","createObjectURL","e","dataFunctionManager","completeLayers","layers","comps","layerData","j","jLen","k","kLen","completed","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","a","id","comp","findComp","__used","JSON","parse","stringify","ks","it","o","checkVersion","minimum","animVersionString","animVersion","split","minimumVersion","checkText","iterateLayers","updateTextLayer","textLayer","documentData","animationData","assets","checkChars","chars","charData","ip","op","st","sr","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","c","checkShapes","cl","completeClosingShapes","closed","moduleOb","completeData","__complete","completeChars","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","indexOf","response","responseText","load","fullPath","callback","errorCallback","XMLHttpRequest","err","onreadystatechange","readyState","status","open","error","send","payload","animation","event","process","onComplete","onError","createProcess","loadAnimation","processId","location","origin","pathname","loadData","completeAnimation","anim","ImagePreloader","canvas","ctx","proxyImage","width","height","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","u","testImageLoaded","img","intervalId","setInterval","box","getBBox","_imageLoaded","clearInterval","bind","createFootageData","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","destroy","getAsset","createImgData","crossOrigin","addEventListener","createImageData","setAttributeNS","_elementHelper","append","appendChild","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","args","_cbs","callbacks","removeEventListener","splice","markerParser","_markers","markers","_marker","markerData","time","tm","duration","dr","cm","_","parsePayloadLines","line","lines","keys","keysCount","trim","__","name","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","_typeof$1","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","autoplay","loop","renderer","animationID","timeCompleted","segmentPos","isSubframeEnabled","segments","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","params","wrapper","container","animType","RendererClass","rendererSettings","globalData","defs","setProjectInterface","undefined","parseInt","autoloadSegments","initialSegment","setupAnimation","lastIndexOf","substr","fileName","trigger","setData","wrapperAttributes","attributes","getNamedItem","getRegisteredRenderer","key","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","shift","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","round","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","setTimeout","rendererType","initItems","gotoFrame","resize","updateContainerSize","setSubframe","renderFrame","resetFrame","triggerRenderFrameError","togglePause","stop","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","isNaN","Number","frameModifier","goToAndPlay","numValue","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","init","end","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","setLoop","isLooping","getPath","getAssetData","hide","show","getDuration","updateDocumentData","index","element","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","first","searchAnimations","standalone","animElements","concat","slice","getElementsByClassName","lenAnims","setAttribute","body","getElementsByTagName","innerText","div","style","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","getBezierEasing","str","replace","beziers","bezEasing","BezierEasing","float32ArraySupported","calcBezier","aT","aA1","aA2","A","getSlope","points","_p","_mSampleValues","_precomputed","get","x","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","guessForT","dist","initialSlope","newtonRaphsonIterate","aGuessT","currentSlope","currentX","binarySubdivide","aA","aB","currentT","pooling","poolFactory","initialLength","_create","_release","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bez","bezFunction","storedData","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","point","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","mathAbs","interpolateValue","frameNum","caching","offsetTime","propType","newValue","pv","iterationIndex","lastIndex","keyframes","keyData","nextKeyData","keyframeMetadata","keyframesMetadata","nextKeyTime","keyTime","to","ti","ind","__fnct","fnc","y","n","endValue","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","sh","omega","cosom","sinom","scale0","scale1","out","ax","ay","az","aw","bx","by","bz","bw","quat","qx","qy","qz","qw","outX","outY","inX","inY","keyValue","quatStart","createQuaternion","quatEnd","sin","acos","heading","atan2","attitude","asin","bank","values","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","getValue","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","prop","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","pos","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","isHold","keyPropE","vertexValue","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shapesEqual","shape1","shape2","ShapeProperty","reset","KeyframedShapeProperty","EllShapeProperty","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","cPoint","getShapeProp","getConstructorFunction","getKeyframedConstructorFunction","Matrix","_cos","_sin","_tan","tan","_rnd","props","rotate","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","l","m","translate","tx","tz","transform","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","multiply","matrix","matrixProps","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof","lottie","href","setSubframeRendering","setQuality","inBrowser","installPlugin","plugin","useWebWorker","setIDPrefix","prefix","__getFactory","version","queryString","scripts","myScript","getQueryVariable","variable","vars","pair","decodeURIComponent","readyStateCheckInterval","exports","__webpack_require__","amdO","ShapeModifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","releasePathsData","processShapes","_s","shapePaths","totalShapeLength","edges","shapeS","shapeE","newShapesData","addShapes","lastShapeInCollection","lastShape","pop","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","getValueAtTime","v2","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerpPoint","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","quadRoots","singleRoot","delta","intersectData","t2","boundingBox","cx","cy","splitData","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","zigZagCorner","cur","frequency","pointType","prevIndex","nextIndex","prevPoint","nextPoint","vector","rot","pVector","prevDist","nextDist","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","lineJoin","miterLimit","angleOut","tangentAngle","angleIn","center","radius","intersection","getIntersection","intersect","intersections","pruneSegmentIntersection","outa","outb","offsetSegmentSplit","left","right","mid","flex","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","styles","fStyle","fWeight","toLowerCase","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","hasReloaded","items","itemsTransform","cont","copies","ceil","group","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","distance","newPosPerc","derivative","normalAngle","denom","tcusp","square","root","filter","p10","p11","p20","p21","bounds","top","bottom","other","tolerance","maxRecursion","intersectsImpl","depth","d1s","d2s","shapeSegmentInverted","pointsType","count","zigZagSegment","ml","lj","inputBezier","multiSegments","pruneIntersections","lastSeg","multiSegment","FontManager","emptyChar","w","size","combinedCharacters","surrogateModifiers","setUpNode","font","family","parentNode","fontFamily","node","position","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","trimFontOptions","familyArray","enabledFamilies","join","parent","createHelper","def","helper","engine","fontProps","tHelper","fFamily","textContent","fClass","tCanvasHelper","OffscreenCanvas","measureText","text","getComputedTextLength","getCodePoint","string","codePoint","charCodeAt","second","isRegionalCode","Font","typekitLoaded","_warned","Date","now","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","charCode","isFlagEmoji","isCombinedCharacter","_char3","isRegionalFlag","isVariationSelector","BLACK_FLAG_CODE_POINT","found","ch","list","forEach","cache","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","querySelectorAll","rel","sc","getCharData","_char","console","warn","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","removeChild","SlotManager","RenderableElement","slots","assign","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","component","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","mode","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effectItem","effects","ef","effectElements","GroupEffect","BaseElement","FrameElement","FootageElement","initFrame","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","eff","checkMasks","expressionsInterfaces","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","content","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","layerId","effectsManager","getType","prepareProperties","isVisible","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","getElementById","pathValue","setupGlobalData","fontsContainer","animationItem","compSize","effectTypes","TRANSFORM_EFFECT","TransformElement","MaskElement","maskElement","viewData","solidPath","properties","currentMasks","maskType","maskRef","rect","lastPath","filterID","expansor","feMorph","expan","lastOperator","filterId","lastRadius","mask","createLayerSolidPath","invRect","drawPath","maskedElement","initTransform","_matMdf","_localMatMdf","_opMdf","localMat","localOpacity","ao","renderTransform","finalMat","renderLocalTransform","localTransforms","lmat","localOp","opacity","searchEffectTransforms","renderableEffectsManager","transformEffects","getEffects","globalToLocal","ptNew","transforms","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","createFilter","filId","skipCoordinates","fil","createAlphaToLuminanceFilter","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects","idPrefix","SVGEffects","filterManager","source","filters","effect","countsAsEffect","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","td","matteMasks","gg","tt","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","getMatte","matteType","useElement","masker","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createProxyFunction","ProxyFunction","createContent","display","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","diff","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","of","ms","ost","buildShapeString","_o","_i","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","render","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charactersArray","shouldCombine","shouldCombineNext","currentChars","charAt","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","newLineFlag","currentHeight","boxHeight","lastSpaceIndex","uncollapsedSpaces","currentChar","an","add","anIndexes","animatorJustifyOffset","extra","animators","indexes","animatorData","fh","fs","fb","based","letterData","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","letterValue","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","matrixHelper","renderedLettersCount","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","tLength","pi","yOff","firstLine","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorSelector","animatorOffset","atan","textAnimator","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","validateText","buildNewText","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","config","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","className","focusable","filterSize","runExpressions","destroyed","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","buildShapeData","shapeItem","usesGlyphs","cachedSpansLength","span","childSpan","glyph","tSpan","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","insertBefore","setElements","getElements","destroyElements","module"],"sourceRoot":""}