import { b8 as openBlock, ah as createElementBlock, ai as createBaseVNode, aY as normalizeClass, d as defineComponent, r as ref, a as useRoute, n as onMounted, E as nextTick, O as onUnmounted, y as watch, f as createVNode, k as createTextVNode, dl as NInputNumber, w as NSpace, j as NButton, t as NImage, dm as getSecond, V as dayjs, x as mergeProps, F as Fragment, c as useUserStore, dn as NSkeleton, c3 as commonjsGlobal, c4 as getDefaultExportFromCjs, L as computed, a_ as normalizeStyle, bB as toRefs, e as reactive, v as NModal, b as useMessage, u as useRouter, T as Transition, dp as NDrawer, dq as NDrawerContent, R as px2vw, aU as isVNode } from './index-6f73a5a0-1694138600520.js'; import { T as TCPlayer, b as iconplay, c as iconpause, d as iconReplay$2, f as tickMp3, V as Vudio, N as NScrollbar } from './contants-b5c5ecbc-1694138600520.js'; import { N as NSlider } from './Slider-51f6cd78-1694138600520.js'; import { c as lessonCoursewareDetail, h as lessonPreTrainingPage, C as CardType, q as queryCourseware, u as courseScheduleUpdate } from './isCollaose-94c46d24-1694138600520.js'; import { a as TrainSettings } from './index-972d5f96-1694138600520.js'; import { v as vaildUrl } from './urlUtils-b7caaee8-1694138600520.js'; import { d as dingPng$1, m as moveTop } from './ding-8e9054d5-1694138600520.js'; import { s as state } from './state-72990c21-1694138600520.js'; const timerWrap = '_timerWrap_1ilvi_1', timerTop = '_timerTop_1ilvi_8', timerTopPane = '_timerTopPane_1ilvi_19', timerTopPaneActive = '_timerTopPaneActive_1ilvi_25', timerItemInfo = '_timerItemInfo_1ilvi_30', timerItemInset = '_timerItemInset_1ilvi_38', timerItemInfoTop = '_timerItemInfoTop_1ilvi_43', dot = '_dot_1ilvi_50', dotTop = '_dotTop_1ilvi_58', timerItemTopCore = '_timerItemTopCore_1ilvi_62', nowTimerWrap = '_nowTimerWrap_1ilvi_74', btnGroupModal$2 = '_btnGroupModal_1ilvi_86', palyIcon = '_palyIcon_1ilvi_93', playText = '_playText_1ilvi_97', countInput = '_countInput_1ilvi_100', dotBtm = '_dotBtm_1ilvi_120', chioseWrap = '_chioseWrap_1ilvi_124', add$1 = '_add_1ilvi_144', minus$1 = '_minus_1ilvi_149', chioseHidden = '_chioseHidden_1ilvi_154', numberWrap = '_numberWrap_1ilvi_157', styles$7 = { timerWrap, timerTop, timerTopPane, timerTopPaneActive, timerItemInfo, timerItemInset, timerItemInfoTop, dot, dotTop, timerItemTopCore, nowTimerWrap, btnGroupModal: btnGroupModal$2, palyIcon, playText, countInput, dotBtm, chioseWrap, add: add$1, minus: minus$1, chioseHidden, numberWrap }, flipper_vue_vue_type_style_index_0_lang = '', _export_sfc$1 = (e, t) => { const r = e.__vccOpts || e; for (const [i, s] of t) r[i] = s; return r; }, _sfc_main$1 = { name: 'FlipClock', data() { return { isFlipping: !1, flipType: 'down', frontTextFromData: 0, backTextFromData: 1 }; }, props: { frontText: { type: [Number, String], default: 0 }, backText: { type: [Number, String], default: 1 }, duration: { type: Number, default: 600 } }, methods: { _textClass(e) { return 'number' + e; }, _flip(e, t, r) { console.log(e, t, r, '=====>'), (this.frontTextFromData = t), (this.backTextFromData = r), (this.flipType = e), (this.isFlipping = !0), setTimeout(() => { (this.isFlipping = !1), (this.frontTextFromData = r); }, this.duration); }, flipDown(e, t) { this._flip('down', e, t); }, flipUp(e, t) { this._flip('up', e, t); }, setFront(e) { this.frontTextFromData = e; }, setBack(e) { this.backTextFromData = e; } }, created() { (this.frontTextFromData = this.frontText), (this.backTextFromData = this.backText); } }; function _sfc_render$1(e, t, r, i, s, a) { return ( openBlock(), createElementBlock( 'div', { class: normalizeClass(['M-Flipper', [s.flipType, { go: s.isFlipping }]]) }, [ createBaseVNode( 'div', { class: normalizeClass([ 'digital front', a._textClass(s.frontTextFromData) ]) }, null, 2 ), createBaseVNode( 'div', { class: normalizeClass([ 'digital back', a._textClass(s.backTextFromData) ]) }, null, 2 ) ], 2 ) ); } const Flipper = _export_sfc$1(_sfc_main$1, [['render', _sfc_render$1]]), playIcon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAcCAYAAABlL09dAAAAAXNSR0IArs4c6QAAAR1JREFUSEvV1rFOwlAYxfH/eQx2VgcfBJ+AOMqCE5uB6OITyAPwCPogKBMOOhITQuLkaq45iU1KKL2X9nbgWzq0/X03/dpzKzoqhRAE3AAD4BNYSFq17Wf4HngoQb/AEzCT9NO0geEvoFcBbICxpJcmuOEQufEZuJXkRsmVAhvzI5kCc0l+VNFKhQtoCYwk+Vhbp8LGkobbBC5WWjvcNnDRoHK4OeDK4eaCy8O9lrTODbvBN3DRBWx8clbwDrjMveJXYCjpPRfsLJk5bossyQE7Vh2ve+nXBjbkOPWXd1BNYIfQ3DFat8OcCmePzYPh5MjjyuGkwB9A/8hmenQ4KfAd8Fi6MGmHiMK+IIQwAq6A7f9L/ha7MXbef0Gd1B+5cJ8q7osJlgAAAABJRU5ErkJggg==', suspend = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAcCAYAAAB75n/uAAAAAXNSR0IArs4c6QAAAMlJREFUSEvtlj0OwUEQxX+voXARtZBwAgWVA2hVOgfQ6FQ0DkLCBSioxRncgObJikr+X4msaqfaZF/ey8zO7BsRORT4bQ+AOdAEbuEsaVdV23YDWAAjoA4cgJmkuz7k2wyyYVUR23ug/8VxBVpB4Ay0MwQukjplWdjuAccc3DgIPIBaBuApKaRbGLYnwCYHtAwCzmOQ9H6jorA9BVY5mHUSCC2eSpS6KA1amoP0m/7FD6Jb5q+m3wVORaYfdqJ4a0v0xausz3+9fwE+w+v3NO9E8gAAAABJRU5ErkJggg==', add = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAJhJREFUWEftlzEOQEAURPffgwOhRkPrUFoa1NaBuMeXLyTqsQmS2X7mT95uMvvFgaeffOLUtYdcXFPl6YJYCSIyTT/6VVWjY77IVhVpjHjBAbph1vvAuswgL0hkgxmABEiABEggGIGr1a5iQQoF0ViBWYvKvdUQoycaC/GBAOfH4rUrQBEGe4QMQAIkQAIk8FsCry+nodbzHQqVmosCTFkgAAAAAElFTkSuQmCC', minus = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAECAYAAADvRz3UAAAAAXNSR0IArs4c6QAAADNJREFUKFNjXLJ6myfDf4ZZ////l2GgI2BkZHzCwMiQxrhk1bbH9LYc5k+QIwaBAwY4CgCYmB5vQGvODAAAAABJRU5ErkJggg==', soundWav = '' + new URL('timer-ee5a21d4.wav', import.meta.url).href, Countdown = defineComponent({ name: 'timer-countdown', setup() { ref('positive'), useRoute(); const e = ref(), t = ref(), r = ref(), i = ref(), s = ref(null), a = ref(null), o = ref(new Date()); a.value = setInterval(() => { o.value = new Date(); }, 1e3); const n = ref(0), l = ref(0), f = ref(0), g = ref(!1), S = ref([e, t, r, i]), c = () => { const T = '0000'; (l.value = 0), (f.value = 0); for (let E = 0; E < S.value.length; E++) S.value[E].value.setFront(T[E]); }, P = new Audio(soundWav), d = () => { (g.value = !0), (s.value = setInterval(() => { const T = getSecond(n.value); if ((n.value == 4 && P.play(), n.value <= 0)) { x(); return; } n.value--; const E = getSecond(n.value); for (let _ = 0; _ < S.value.length; _++) T[_] !== E[_] && S.value[_].value.flipDown(T[_], E[_]); }, 1e3)); }, p = () => { setTimeout(() => { (g.value = !1), (P.currentTime = 0), P.pause(), s.value && (clearInterval(s.value), (s.value = null)); }, 600); }, x = () => { g.value ? (p(), (n.value = 0), (P.currentTime = 0), P.pause(), setTimeout(() => { c(); }, 600)) : ((n.value = 0), c()); }; onMounted(() => { nextTick(() => { c(); }); }), onUnmounted(() => { P.pause(); }); const u = T => { const E = getSecond(n.value); (n.value += T), n.value > 3599 ? (n.value = 3599) : n.value; const _ = getSecond(n.value); for (let I = 0; I < S.value.length; I++) E[I] !== _[I] && S.value[I].value.flipDown(E[I], _[I]); (l.value = Math.floor(n.value / 60)), (f.value = Math.floor(n.value % 60)); }, y = T => { const E = getSecond(n.value); (n.value -= T), n.value < 0 ? (n.value = 0) : n.value; const _ = getSecond(n.value); for (let I = 0; I < S.value.length; I++) E[I] !== _[I] && S.value[I].value.flipUp(E[I], _[I]); (l.value = Math.floor(n.value / 60)), (f.value = Math.floor(n.value % 60)); }, m = T => { let E = parseInt(T.target.value); Number.isNaN(E) && (E = 0), E > 59 && (E = 59), (l.value = E); const _ = getSecond(n.value); console.log(l.value), (n.value = l.value * 60 + f.value); const I = getSecond(n.value); console.log(I, _); for (let B = 0; B < S.value.length; B++) _[B], I[B]; }, A = T => { let E = parseInt(T.target.value); Number.isNaN(E) && (E = 0), E > 59 && (E = 59), (f.value = E); const _ = getSecond(n.value); n.value = l.value * 60 + f.value; const I = getSecond(n.value); for (let B = 0; B < S.value.length; B++) _[B] !== I[B] && S.value[B].value.flipUp(_[B], I[B]); }; return ( watch( () => n.value, T => { (l.value = Math.floor(T / 60)), (f.value = Math.floor(T % 60)); } ), () => createVNode('div', { class: styles$7.timerItemWrap }, [ createVNode('div', { class: styles$7.timerItemInfo }, [ createVNode('div', { class: styles$7.timerItemInset }, [ createVNode('div', { class: styles$7.timerItemInfoTop }, [ createVNode('div', { class: styles$7.timerItemTopCore }, [ createVNode('h4', null, [createTextVNode(' 分')]), createVNode('div', { class: styles$7.FlipClock }, [ createVNode('div', { class: styles$7.numberWrap }, [ createVNode(Flipper, { ref: e }, null), createVNode(Flipper, { ref: t }, null) ]), createVNode( 'div', { class: [ styles$7.chioseWrap, g.value ? styles$7.chioseHidden : '' ] }, [ createVNode( 'img', { src: add, class: styles$7.add, alt: '', onClick: () => u(60) }, null ), createVNode( NInputNumber, { class: styles$7.countInput, min: 0, max: 59, 'show-button': !1, onInput: m, value: l.value, 'onUpdate:value': T => (l.value = T) }, null ), createVNode( 'img', { src: minus, class: styles$7.minus, alt: '', onClick: () => y(60) }, null ) ] ) ]) ]), createVNode('div', { class: styles$7.timerItemTopCore }, [ createVNode('div', { class: styles$7.dot }, null), createVNode('div', { class: styles$7.dot }, null), createVNode('h4', { class: styles$7.dotBtm }, null) ]), createVNode('div', { class: styles$7.timerItemTopCore }, [ createVNode('h4', null, [createTextVNode(' 秒 ')]), createVNode('div', { class: styles$7.FlipClock }, [ createVNode('div', { class: styles$7.numberWrap }, [ createVNode(Flipper, { ref: r }, null), createVNode(Flipper, { ref: i }, null) ]), createVNode( 'div', { class: [ styles$7.chioseWrap, g.value ? styles$7.chioseHidden : '' ] }, [ createVNode( 'img', { src: add, class: styles$7.add, alt: '', onClick: () => u(1) }, null ), createVNode( NInputNumber, { class: styles$7.countInput, min: 0, max: 59, 'show-button': !1, value: f.value, 'onUpdate:value': T => (f.value = T), onInput: A }, null ), createVNode( 'img', { src: minus, class: styles$7.minus, alt: '', onClick: () => y(1) }, null ) ] ) ]) ]) ]) ]) ]), createVNode( NSpace, { class: styles$7.btnGroupModal, justify: 'center' }, { default: () => [ createVNode( NButton, { round: !0, onClick: () => x() }, { default: () => [createTextVNode('重置')] } ), g.value ? createVNode( NButton, { round: !0, type: 'primary', 'icon-placement': 'right', onClick: () => p() }, { default: () => createVNode('p', { class: styles$7.playText }, [ createTextVNode('暂停') ]), icon: () => createVNode( NImage, { previewDisabled: !0, class: styles$7.palyIcon, src: suspend }, null ) } ) : createVNode( NButton, { round: !0, type: 'primary', disabled: n.value == 0, 'icon-placement': 'right', onClick: () => d() }, { default: () => createVNode('p', { class: styles$7.playText }, [ createTextVNode('开始') ]), icon: () => createVNode( NImage, { previewDisabled: !0, class: styles$7.palyIcon, src: playIcon }, null ) } ) ] } ) ]) ); } }), Positive = defineComponent({ name: 'timer-positive', setup() { ref('positive'), useRoute(); const e = ref(), t = ref(), r = ref(), i = ref(), s = ref(null), a = ref(null), o = ref(new Date()); a.value = setInterval(() => { o.value = new Date(); }, 1e3); const n = ref(0), l = ref(!1), f = ref([e, t, r, i]), g = () => { const d = '0000'; for (let p = 0; p < f.value.length; p++) f.value[p].value.setFront(d[p]); }, S = () => { (l.value = !0), (s.value = setInterval(() => { const d = getSecond(n.value); n.value++; const p = getSecond(n.value); for (let x = 0; x < f.value.length; x++) d[x] !== p[x] && f.value[x].value.flipDown(d[x], p[x]); }, 1e3)); }, c = () => { (l.value = !1), s.value && (clearInterval(s.value), (s.value = null)); }, P = () => { c(), (n.value = 0), setTimeout(() => { g(); }, 600); }; return ( onMounted(() => { nextTick(() => { g(); }); }), () => createVNode('div', { class: styles$7.timerItemWrap }, [ createVNode('div', { class: styles$7.timerItemInfo }, [ createVNode('div', { class: styles$7.timerItemInset }, [ createVNode('div', { class: styles$7.timerItemInfoTop }, [ createVNode('div', { class: styles$7.timerItemTopCore }, [ createVNode('h4', null, [createTextVNode(' 分')]), createVNode('div', { class: styles$7.FlipClock }, [ createVNode('div', { class: styles$7.numberWrap }, [ createVNode(Flipper, { ref: e }, null), createVNode(Flipper, { ref: t }, null) ]) ]) ]), createVNode('div', { class: styles$7.timerItemTopCore }, [ createVNode('h4', { class: styles$7.dotTop }, null), createVNode('div', { class: styles$7.dot }, null), createVNode('div', { class: styles$7.dot }, null) ]), createVNode('div', { class: styles$7.timerItemTopCore }, [ createVNode('h4', null, [createTextVNode(' 秒')]), createVNode('div', { class: styles$7.FlipClock }, [ createVNode('div', { class: styles$7.numberWrap }, [ createVNode(Flipper, { ref: r }, null), createVNode(Flipper, { ref: i }, null) ]) ]) ]) ]), createVNode('div', { class: styles$7.nowTimerWrap }, [ dayjs(o.value).format('YYYY年MM月DD日 HH:mm:ss') ]) ]) ]), createVNode( NSpace, { class: styles$7.btnGroupModal, justify: 'center' }, { default: () => [ createVNode( NButton, { round: !0, onClick: () => P() }, { default: () => [createTextVNode('重置')] } ), l.value ? createVNode( NButton, { round: !0, type: 'primary', 'icon-placement': 'right', onClick: () => c() }, { default: () => createVNode('p', { class: styles$7.playText }, [ createTextVNode('暂停') ]), icon: () => createVNode( NImage, { previewDisabled: !0, class: styles$7.palyIcon, src: suspend }, null ) } ) : createVNode( NButton, { round: !0, type: 'primary', 'icon-placement': 'right', onClick: () => S() }, { default: () => createVNode('p', { class: styles$7.playText }, [ createTextVNode('开始') ]), icon: () => createVNode( NImage, { previewDisabled: !0, class: styles$7.palyIcon, src: playIcon }, null ) } ) ] } ) ]) ); } }), TimerMeter = defineComponent({ name: 'data-module', setup() { const e = ref('positive'); useRoute(); const t = r => { e.value = r; }; return () => createVNode('div', null, [ createVNode('div', { class: styles$7.timerWrap }, [ createVNode('div', { class: styles$7.timerTop }, [ createVNode( 'div', { class: [ styles$7.timerTopPane, e.value == 'positive' ? styles$7.timerTopPaneActive : '' ], onClick: () => { t('positive'); } }, [createTextVNode('正计时')] ), createVNode( 'div', { class: [ styles$7.timerTopPane, e.value == 'countdown' ? styles$7.timerTopPaneActive : '' ], onClick: () => { t('countdown'); } }, [createTextVNode('倒计时')] ) ]), e.value == 'positive' ? createVNode(Positive, null, null) : createVNode(Countdown, null, null) ]) ]); } }), downMove = '_downMove_137wx_1', downMoveBg = '_downMoveBg_137wx_9', dingPng = '_dingPng_137wx_16', closeAble = '_closeAble_137wx_25', submitAppBtn = '_submitAppBtn_137wx_53', styles$6 = { downMove, downMoveBg, dingPng, closeAble, submitAppBtn }, PlaceholderTone = defineComponent({ props: ['item'], emits: ['close'], name: 'placeholderTone', setup(e, { emit: t }) { return () => createVNode(Fragment, null, [ createVNode('div', { class: styles$6.downMove }, [ createVNode( 'img', { src: dingPng$1, class: styles$6.dingPng, alt: '' }, null ), createVNode( 'img', { src: moveTop, class: styles$6.downMoveBg, alt: '' }, null ), createVNode('h2', null, [createTextVNode('温馨提示')]), createVNode('p', null, [ createTextVNode('调音器功能暂未开放,敬请期待!') ]), createVNode( NSpace, { style: { padding: '25px 0 0 0' }, justify: 'center' }, { default: () => [ createVNode( NButton, mergeProps( { id: 'submitBtn' }, { class: styles$6.submitAppBtn, round: !0, type: 'primary', onClick: () => { t('close'); } } ), { default: () => [createTextVNode('我知道了')] } ) ] } ) ]) ]); } }), playContent = '_playContent_z3eb0_1', assignHomeworkClose = '_assignHomeworkClose_z3eb0_10', coursewarePlay = '_coursewarePlay_z3eb0_23', playModel = '_playModel_z3eb0_29', headerContainer = '_headerContainer_z3eb0_38', backBtn = '_backBtn_z3eb0_58', headRight = '_headRight_z3eb0_70', rightBtn = '_rightBtn_z3eb0_79', menu = '_menu_z3eb0_91', tabsContent = '_tabsContent_z3eb0_102', wraps = '_wraps_z3eb0_113', itemDiv = '_itemDiv_z3eb0_120', itemActive = '_itemActive_z3eb0_133', acitveAnimation = '_acitveAnimation_z3eb0_136', show = '_show_z3eb0_139', hide$1 = '_hide_z3eb0_142', rightFixedBtns = '_rightFixedBtns_z3eb0_155', fullBtn = '_fullBtn_z3eb0_162', point = '_point_z3eb0_167', iconUp$1 = '_iconUp_z3eb0_177', iconDown$1 = '_iconDown_z3eb0_178', btnsDisabled = '_btnsDisabled_z3eb0_181', loadWrap = '_loadWrap_z3eb0_211', drawerContainer = '_drawerContainer_z3eb0_222', cardContainer = '_cardContainer_z3eb0_225', sectionAnimate$2 = '_sectionAnimate_z3eb0_261', sectionAnimateUp = '_sectionAnimateUp_z3eb0_267', switchDisplaySection = '_switchDisplaySection_z3eb0_273', switchSpace = '_switchSpace_z3eb0_288', btnItem = '_btnItem_z3eb0_291', attendClassModal = '_attendClassModal_z3eb0_313', modelAttendContent = '_modelAttendContent_z3eb0_337', modelAttendBtnGroup = '_modelAttendBtnGroup_z3eb0_343', trainClassModal = '_trainClassModal_z3eb0_351', workContainer = '_workContainer_z3eb0_357', toolboxImg = '_toolboxImg_z3eb0_364', isDragIng = '_isDragIng_z3eb0_373', toolClassImg = '_toolClassImg_z3eb0_377', booxToolWrap = '_booxToolWrap_z3eb0_392', booxToolItem = '_booxToolItem_z3eb0_403', setTimeImage = '_setTimeImage_z3eb0_420', beatImage = '_beatImage_z3eb0_426', changePwdModal = '_changePwdModal_z3eb0_432', imChatModal = '_imChatModal_z3eb0_435', modeWrap = '_modeWrap_z3eb0_438', showModalTone = '_showModalTone_z3eb0_443', studentRemove$1 = '_studentRemove_z3eb0_446', removeVisiable$1 = '_removeVisiable_z3eb0_458', btnGroupModal$1 = '_btnGroupModal_z3eb0_476', styles$5 = { playContent, assignHomeworkClose, coursewarePlay, playModel, headerContainer, backBtn, headRight, rightBtn, menu, tabsContent, wraps, itemDiv, itemActive, acitveAnimation, show, hide: hide$1, rightFixedBtns, fullBtn, point, iconUp: iconUp$1, iconDown: iconDown$1, btnsDisabled, loadWrap, drawerContainer, cardContainer, sectionAnimate: sectionAnimate$2, sectionAnimateUp, switchDisplaySection, switchSpace, btnItem, attendClassModal, modelAttendContent, modelAttendBtnGroup, trainClassModal, workContainer, toolboxImg, isDragIng, toolClassImg, booxToolWrap, booxToolItem, setTimeImage, beatImage, changePwdModal, imChatModal, modeWrap, showModalTone, studentRemove: studentRemove$1, removeVisiable: removeVisiable$1, btnGroupModal: btnGroupModal$1 }, plyr = '', musicScore = '_musicScore_6u588_1', container = '_container_6u588_7', musicModel = '_musicModel_6u588_15', errorModel = '_errorModel_6u588_22', startBtn = '_startBtn_6u588_34', loading = '_loading_6u588_44', skeletonWrap = '_skeletonWrap_6u588_50', skeleton = '_skeleton_6u588_50', styles$4 = { musicScore, container, musicModel, errorModel, startBtn, loading, skeletonWrap, skeleton }; var inBrowser = typeof window < 'u', visibility; function usePageVisibility() { if (!visibility && ((visibility = ref('visible')), inBrowser)) { const e = () => { visibility.value = document.hidden ? 'hidden' : 'visible'; }; e(), window.addEventListener('visibilitychange', e); } return visibility; } const MusicScore = defineComponent({ name: 'musicScore', props: { music: { type: Object, default: () => ({}) }, activeModel: { type: Boolean }, activeStatus: { type: Boolean } }, emits: ['setIframe'], setup(e, { emit: t }) { const r = useUserStore(), i = ref(!1), s = usePageVisibility(); watch(s, c => { console.log('🚀 ~ value:', c), c == 'hidden' && (i.value = !1); }); const a = ref(), o = ref(!1), n = ref(!1), l = ref(!1), f = /(localhost|192)/.test(location.host) ? 'https://test.lexiaoya.cn/instrument' : location.origin + '/instrument', g = '' .concat( f, '?showGuide=true&platform=pc&zoom=1.2&modelType=practise&id=' ) .concat(e.music.content, '&Authorization=') .concat(r.getToken), S = () => { fetch(g) .then(() => { (l.value = !0), (n.value = !1); }) .catch(() => { n.value = !0; }); }; return ( watch( () => e.music, () => { l.value || ((n.value = !1), e.music.display && S()); } ), watch( () => e.activeModel, () => { a.value.contentWindow && e.activeStatus && a.value.contentWindow.postMessage( { api: 'attendClassBarStatus', hideMenu: !e.activeModel }, '*' ); } ), () => createVNode('div', { class: styles$4.musicScore }, [ createVNode( 'iframe', { ref: a, onLoad: () => { t('setIframe', a.value), (o.value = !0); }, class: [styles$4.container, 'musicIframe'], frameborder: '0', src: g }, null ), o.value && createVNode('div', { class: styles$4.skeletonWrap }, [ createVNode('div', null, [ createVNode(NSkeleton, { text: !0, repeat: 8 }, null) ]) ]) ]) ); } }); var lottie = { exports: {} }; (function (module, exports) { typeof navigator < 'u' && (function (e, t) { module.exports = t(); })(commonjsGlobal, function () { var svgNS = 'http://www.w3.org/2000/svg', locationHref = '', _useWebWorker = !1, initialDefaultFrame = -999999, setWebWorker = function (t) { _useWebWorker = !!t; }, getWebWorker = function () { return _useWebWorker; }, setLocationHref = function (t) { locationHref = t; }, getLocationHref = function () { return locationHref; }; function createTag(e) { return document.createElement(e); } function extendPrototype(e, t) { var r, i = e.length, s; for (r = 0; r < i; r += 1) { s = e[r].prototype; for (var a in s) Object.prototype.hasOwnProperty.call(s, a) && (t.prototype[a] = s[a]); } } function getDescriptor(e, t) { return Object.getOwnPropertyDescriptor(e, t); } function createProxyFunction(e) { function t() {} return (t.prototype = e), t; } var audioControllerFactory = (function () { function e(t) { (this.audios = []), (this.audioFactory = t), (this._volume = 1), (this._isMuted = !1); } return ( (e.prototype = { addAudio: function (r) { this.audios.push(r); }, pause: function () { var r, i = this.audios.length; for (r = 0; r < i; r += 1) this.audios[r].pause(); }, resume: function () { var r, i = this.audios.length; for (r = 0; r < i; r += 1) this.audios[r].resume(); }, setRate: function (r) { var i, s = this.audios.length; for (i = 0; i < s; i += 1) this.audios[i].setRate(r); }, createAudio: function (r) { return this.audioFactory ? this.audioFactory(r) : window.Howl ? new window.Howl({ src: [r] }) : { isPlaying: !1, play: function () { this.isPlaying = !0; }, seek: function () { this.isPlaying = !1; }, playing: function () {}, rate: function () {}, setVolume: function () {} }; }, setAudioFactory: function (r) { this.audioFactory = r; }, setVolume: function (r) { (this._volume = r), this._updateVolume(); }, mute: function () { (this._isMuted = !0), this._updateVolume(); }, unmute: function () { (this._isMuted = !1), this._updateVolume(); }, getVolume: function () { return this._volume; }, _updateVolume: function () { var r, i = this.audios.length; for (r = 0; r < i; r += 1) this.audios[r].volume(this._volume * (this._isMuted ? 0 : 1)); } }), function () { return new e(); } ); })(), createTypedArray = (function () { function e(r, i) { var s = 0, a = [], o; switch (r) { case 'int16': case 'uint8c': o = 1; break; default: o = 1.1; break; } for (s = 0; s < i; s += 1) a.push(o); return a; } function t(r, i) { return r === 'float32' ? new Float32Array(i) : r === 'int16' ? new Int16Array(i) : r === 'uint8c' ? new Uint8ClampedArray(i) : e(r, i); } return typeof Uint8ClampedArray == 'function' && typeof Float32Array == 'function' ? t : e; })(); function createSizedArray(e) { return Array.apply(null, { length: e }); } function _typeof$6(e) { '@babel/helpers - typeof'; return ( typeof Symbol == 'function' && typeof Symbol.iterator == 'symbol' ? (_typeof$6 = function (r) { return typeof r; }) : (_typeof$6 = function (r) { return r && typeof Symbol == 'function' && r.constructor === Symbol && r !== Symbol.prototype ? 'symbol' : typeof r; }), _typeof$6(e) ); } var subframeEnabled = !0, expressionsPlugin = null, expressionsInterfaces = null, idPrefix$1 = '', isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent), bmPow = Math.pow, bmSqrt = Math.sqrt, bmFloor = Math.floor, bmMax = Math.max, bmMin = Math.min, BMMath = {}; (function () { var e = [ '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' ], t, r = e.length; for (t = 0; t < r; t += 1) BMMath[e[t]] = Math[e[t]]; })(), (BMMath.random = Math.random), (BMMath.abs = function (e) { var t = _typeof$6(e); if (t === 'object' && e.length) { var r = createSizedArray(e.length), i, s = e.length; for (i = 0; i < s; i += 1) r[i] = Math.abs(e[i]); return r; } return Math.abs(e); }); var defaultCurveSegments = 150, degToRads = Math.PI / 180, roundCorner = 0.5519; function styleDiv(e) { (e.style.position = 'absolute'), (e.style.top = 0), (e.style.left = 0), (e.style.display = 'block'), (e.style.transformOrigin = '0 0'), (e.style.webkitTransformOrigin = '0 0'), (e.style.backfaceVisibility = 'visible'), (e.style.webkitBackfaceVisibility = 'visible'), (e.style.transformStyle = 'preserve-3d'), (e.style.webkitTransformStyle = 'preserve-3d'), (e.style.mozTransformStyle = 'preserve-3d'); } function BMEnterFrameEvent(e, t, r, i) { (this.type = e), (this.currentTime = t), (this.totalTime = r), (this.direction = i < 0 ? -1 : 1); } function BMCompleteEvent(e, t) { (this.type = e), (this.direction = t < 0 ? -1 : 1); } function BMCompleteLoopEvent(e, t, r, i) { (this.type = e), (this.currentLoop = r), (this.totalLoops = t), (this.direction = i < 0 ? -1 : 1); } function BMSegmentStartEvent(e, t, r) { (this.type = e), (this.firstFrame = t), (this.totalFrames = r); } function BMDestroyEvent(e, t) { (this.type = e), (this.target = t); } function BMRenderFrameErrorEvent(e, t) { (this.type = 'renderFrameError'), (this.nativeError = e), (this.currentTime = t); } function BMConfigErrorEvent(e) { (this.type = 'configError'), (this.nativeError = e); } var createElementID = (function () { var e = 0; return function () { return (e += 1), idPrefix$1 + '__lottie_element_' + e; }; })(); function HSVtoRGB(e, t, r) { var i, s, a, o, n, l, f, g; switch ( ((o = Math.floor(e * 6)), (n = e * 6 - o), (l = r * (1 - t)), (f = r * (1 - n * t)), (g = r * (1 - (1 - n) * t)), o % 6) ) { case 0: (i = r), (s = g), (a = l); break; case 1: (i = f), (s = r), (a = l); break; case 2: (i = l), (s = r), (a = g); break; case 3: (i = l), (s = f), (a = r); break; case 4: (i = g), (s = l), (a = r); break; case 5: (i = r), (s = l), (a = f); break; } return [i, s, a]; } function RGBtoHSV(e, t, r) { var i = Math.max(e, t, r), s = Math.min(e, t, r), a = i - s, o, n = i === 0 ? 0 : a / i, l = i / 255; switch (i) { case s: o = 0; break; case e: (o = t - r + a * (t < r ? 6 : 0)), (o /= 6 * a); break; case t: (o = r - e + a * 2), (o /= 6 * a); break; case r: (o = e - t + a * 4), (o /= 6 * a); break; } return [o, n, l]; } function addSaturationToRGB(e, t) { var r = RGBtoHSV(e[0] * 255, e[1] * 255, e[2] * 255); return ( (r[1] += t), r[1] > 1 ? (r[1] = 1) : r[1] <= 0 && (r[1] = 0), HSVtoRGB(r[0], r[1], r[2]) ); } function addBrightnessToRGB(e, t) { var r = RGBtoHSV(e[0] * 255, e[1] * 255, e[2] * 255); return ( (r[2] += t), r[2] > 1 ? (r[2] = 1) : r[2] < 0 && (r[2] = 0), HSVtoRGB(r[0], r[1], r[2]) ); } function addHueToRGB(e, t) { var r = RGBtoHSV(e[0] * 255, e[1] * 255, e[2] * 255); return ( (r[0] += t / 360), r[0] > 1 ? (r[0] -= 1) : r[0] < 0 && (r[0] += 1), HSVtoRGB(r[0], r[1], r[2]) ); } var rgbToHex = (function () { var e = [], t, r; for (t = 0; t < 256; t += 1) (r = t.toString(16)), (e[t] = r.length === 1 ? '0' + r : r); return function (i, s, a) { return ( i < 0 && (i = 0), s < 0 && (s = 0), a < 0 && (a = 0), '#' + e[i] + e[s] + e[a] ); }; })(), setSubframeEnabled = function (t) { subframeEnabled = !!t; }, getSubframeEnabled = function () { return subframeEnabled; }, setExpressionsPlugin = function (t) { expressionsPlugin = t; }, getExpressionsPlugin = function () { return expressionsPlugin; }, setExpressionInterfaces = function (t) { expressionsInterfaces = t; }, getExpressionInterfaces = function () { return expressionsInterfaces; }, setDefaultCurveSegments = function (t) { defaultCurveSegments = t; }, getDefaultCurveSegments = function () { return defaultCurveSegments; }, setIdPrefix = function (t) { idPrefix$1 = t; }; function createNS(e) { return document.createElementNS(svgNS, e); } function _typeof$5(e) { '@babel/helpers - typeof'; return ( typeof Symbol == 'function' && typeof Symbol.iterator == 'symbol' ? (_typeof$5 = function (r) { return typeof r; }) : (_typeof$5 = function (r) { return r && typeof Symbol == 'function' && r.constructor === Symbol && r !== Symbol.prototype ? 'symbol' : typeof r; }), _typeof$5(e) ); } var dataManager = (function () { var e = 1, t = [], r, i, s = { onmessage: function () {}, postMessage: function (P) { r({ data: P }); } }, a = { postMessage: function (P) { s.onmessage({ data: P }); } }; function o(c) { if (window.Worker && window.Blob && getWebWorker()) { var P = new Blob( ['var _workerSelf = self; self.onmessage = ', c.toString()], { type: 'text/javascript' } ), d = URL.createObjectURL(P); return new Worker(d); } return (r = c), s; } function n() { i || ((i = o(function (P) { function d() { function x(N, M) { var k, b, C = N.length, L, F, U, D; for (b = 0; b < C; b += 1) if (((k = N[b]), 'ks' in k && !k.completed)) { if (((k.completed = !0), k.hasMask)) { var V = k.masksProperties; for (F = V.length, L = 0; L < F; L += 1) if (V[L].pt.k.i) T(V[L].pt.k); else for (D = V[L].pt.k.length, U = 0; U < D; U += 1) V[L].pt.k[U].s && T(V[L].pt.k[U].s[0]), V[L].pt.k[U].e && T(V[L].pt.k[U].e[0]); } k.ty === 0 ? ((k.layers = m(k.refId, M)), x(k.layers, M)) : k.ty === 4 ? A(k.shapes) : k.ty === 5 && W(k); } } function u(N, M) { if (N) { var k = 0, b = N.length; for (k = 0; k < b; k += 1) N[k].t === 1 && ((N[k].data.layers = m(N[k].data.refId, M)), x(N[k].data.layers, M)); } } function y(N, M) { for (var k = 0, b = M.length; k < b; ) { if (M[k].id === N) return M[k]; k += 1; } return null; } function m(N, M) { var k = y(N, M); return k ? k.layers.__used ? JSON.parse(JSON.stringify(k.layers)) : ((k.layers.__used = !0), k.layers) : null; } function A(N) { var M, k = N.length, b, C; for (M = k - 1; M >= 0; M -= 1) if (N[M].ty === 'sh') if (N[M].ks.k.i) T(N[M].ks.k); else for (C = N[M].ks.k.length, b = 0; b < C; b += 1) N[M].ks.k[b].s && T(N[M].ks.k[b].s[0]), N[M].ks.k[b].e && T(N[M].ks.k[b].e[0]); else N[M].ty === 'gr' && A(N[M].it); } function T(N) { var M, k = N.i.length; for (M = 0; M < k; M += 1) (N.i[M][0] += N.v[M][0]), (N.i[M][1] += N.v[M][1]), (N.o[M][0] += N.v[M][0]), (N.o[M][1] += N.v[M][1]); } function E(N, M) { var k = M ? M.split('.') : [100, 100, 100]; return N[0] > k[0] ? !0 : k[0] > N[0] ? !1 : N[1] > k[1] ? !0 : k[1] > N[1] ? !1 : N[2] > k[2] ? !0 : k[2] > N[2] ? !1 : null; } var _ = (function () { var N = [4, 4, 14]; function M(b) { var C = b.t.d; b.t.d = { k: [{ s: C, t: 0 }] }; } function k(b) { var C, L = b.length; for (C = 0; C < L; C += 1) b[C].ty === 5 && M(b[C]); } return function (b) { if (E(N, b.v) && (k(b.layers), b.assets)) { var C, L = b.assets.length; for (C = 0; C < L; C += 1) b.assets[C].layers && k(b.assets[C].layers); } }; })(), I = (function () { var N = [4, 7, 99]; return function (M) { if (M.chars && !E(N, M.v)) { var k, b = M.chars.length; for (k = 0; k < b; k += 1) { var C = M.chars[k]; C.data && C.data.shapes && (A(C.data.shapes), (C.data.ip = 0), (C.data.op = 99999), (C.data.st = 0), (C.data.sr = 1), (C.data.ks = { p: { k: [0, 0], a: 0 }, s: { k: [100, 100], a: 0 }, a: { k: [0, 0], a: 0 }, r: { k: 0, a: 0 }, o: { k: 100, a: 0 } }), M.chars[k].t || (C.data.shapes.push({ ty: 'no' }), C.data.shapes[0].it.push({ p: { k: [0, 0], a: 0 }, s: { k: [100, 100], a: 0 }, a: { k: [0, 0], a: 0 }, r: { k: 0, a: 0 }, o: { k: 100, a: 0 }, sk: { k: 0, a: 0 }, sa: { k: 0, a: 0 }, ty: 'tr' }))); } } }; })(), B = (function () { var N = [5, 7, 15]; function M(b) { var C = b.t.p; typeof C.a == 'number' && (C.a = { a: 0, k: C.a }), typeof C.p == 'number' && (C.p = { a: 0, k: C.p }), typeof C.r == 'number' && (C.r = { a: 0, k: C.r }); } function k(b) { var C, L = b.length; for (C = 0; C < L; C += 1) b[C].ty === 5 && M(b[C]); } return function (b) { if (E(N, b.v) && (k(b.layers), b.assets)) { var C, L = b.assets.length; for (C = 0; C < L; C += 1) b.assets[C].layers && k(b.assets[C].layers); } }; })(), z = (function () { var N = [4, 1, 9]; function M(b) { var C, L = b.length, F, U; for (C = 0; C < L; C += 1) if (b[C].ty === 'gr') M(b[C].it); else if (b[C].ty === 'fl' || b[C].ty === 'st') if (b[C].c.k && b[C].c.k[0].i) for (U = b[C].c.k.length, F = 0; F < U; F += 1) b[C].c.k[F].s && ((b[C].c.k[F].s[0] /= 255), (b[C].c.k[F].s[1] /= 255), (b[C].c.k[F].s[2] /= 255), (b[C].c.k[F].s[3] /= 255)), b[C].c.k[F].e && ((b[C].c.k[F].e[0] /= 255), (b[C].c.k[F].e[1] /= 255), (b[C].c.k[F].e[2] /= 255), (b[C].c.k[F].e[3] /= 255)); else (b[C].c.k[0] /= 255), (b[C].c.k[1] /= 255), (b[C].c.k[2] /= 255), (b[C].c.k[3] /= 255); } function k(b) { var C, L = b.length; for (C = 0; C < L; C += 1) b[C].ty === 4 && M(b[C].shapes); } return function (b) { if (E(N, b.v) && (k(b.layers), b.assets)) { var C, L = b.assets.length; for (C = 0; C < L; C += 1) b.assets[C].layers && k(b.assets[C].layers); } }; })(), G = (function () { var N = [4, 4, 18]; function M(b) { var C, L = b.length, F, U; for (C = L - 1; C >= 0; C -= 1) if (b[C].ty === 'sh') if (b[C].ks.k.i) b[C].ks.k.c = b[C].closed; else for (U = b[C].ks.k.length, F = 0; F < U; F += 1) b[C].ks.k[F].s && (b[C].ks.k[F].s[0].c = b[C].closed), b[C].ks.k[F].e && (b[C].ks.k[F].e[0].c = b[C].closed); else b[C].ty === 'gr' && M(b[C].it); } function k(b) { var C, L, F = b.length, U, D, V, O; for (L = 0; L < F; L += 1) { if (((C = b[L]), C.hasMask)) { var j = C.masksProperties; for (D = j.length, U = 0; U < D; U += 1) if (j[U].pt.k.i) j[U].pt.k.c = j[U].cl; else for (O = j[U].pt.k.length, V = 0; V < O; V += 1) j[U].pt.k[V].s && (j[U].pt.k[V].s[0].c = j[U].cl), j[U].pt.k[V].e && (j[U].pt.k[V].e[0].c = j[U].cl); } C.ty === 4 && M(C.shapes); } } return function (b) { if (E(N, b.v) && (k(b.layers), b.assets)) { var C, L = b.assets.length; for (C = 0; C < L; C += 1) b.assets[C].layers && k(b.assets[C].layers); } }; })(); function R(N) { N.__complete || (z(N), _(N), I(N), B(N), G(N), x(N.layers, N.assets), u(N.chars, N.assets), (N.__complete = !0)); } function W(N) { N.t.a.length === 0 && 'm' in N.t.p; } var H = {}; return ( (H.completeData = R), (H.checkColors = z), (H.checkChars = I), (H.checkPathProperties = B), (H.checkShapes = G), (H.completeLayers = x), H ); } if ( (a.dataManager || (a.dataManager = d()), a.assetLoader || (a.assetLoader = (function () { function x(y) { var m = y.getResponseHeader('content-type'); return (m && y.responseType === 'json' && m.indexOf('json') !== -1) || (y.response && _typeof$5(y.response) === 'object') ? y.response : y.response && typeof y.response == 'string' ? JSON.parse(y.response) : y.responseText ? JSON.parse(y.responseText) : null; } function u(y, m, A, T) { var E, _ = new XMLHttpRequest(); try { _.responseType = 'json'; } catch (I) {} _.onreadystatechange = function () { if (_.readyState === 4) if (_.status === 200) (E = x(_)), A(E); else try { (E = x(_)), A(E); } catch (I) { T && T(I); } }; try { _.open(['G', 'E', 'T'].join(''), y, !0); } catch (I) { _.open(['G', 'E', 'T'].join(''), m + '/' + y, !0); } _.send(); } return { load: u }; })()), P.data.type === 'loadAnimation') ) a.assetLoader.load( P.data.path, P.data.fullPath, function (x) { a.dataManager.completeData(x), a.postMessage({ id: P.data.id, payload: x, status: 'success' }); }, function () { a.postMessage({ id: P.data.id, status: 'error' }); } ); else if (P.data.type === 'complete') { var p = P.data.animation; a.dataManager.completeData(p), a.postMessage({ id: P.data.id, payload: p, status: 'success' }); } else P.data.type === 'loadData' && a.assetLoader.load( P.data.path, P.data.fullPath, function (x) { a.postMessage({ id: P.data.id, payload: x, status: 'success' }); }, function () { a.postMessage({ id: P.data.id, status: 'error' }); } ); })), (i.onmessage = function (c) { var P = c.data, d = P.id, p = t[d]; (t[d] = null), P.status === 'success' ? p.onComplete(P.payload) : p.onError && p.onError(); })); } function l(c, P) { e += 1; var d = 'processId_' + e; return (t[d] = { onComplete: c, onError: P }), d; } function f(c, P, d) { n(); var p = l(P, d); i.postMessage({ type: 'loadAnimation', path: c, fullPath: window.location.origin + window.location.pathname, id: p }); } function g(c, P, d) { n(); var p = l(P, d); i.postMessage({ type: 'loadData', path: c, fullPath: window.location.origin + window.location.pathname, id: p }); } function S(c, P, d) { n(); var p = l(P, d); i.postMessage({ type: 'complete', animation: c, id: p }); } return { loadAnimation: f, loadData: g, completeAnimation: S }; })(), ImagePreloader = (function () { var e = (function () { var u = createTag('canvas'); (u.width = 1), (u.height = 1); var y = u.getContext('2d'); return (y.fillStyle = 'rgba(0,0,0,0)'), y.fillRect(0, 0, 1, 1), u; })(); function t() { (this.loadedAssets += 1), this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages && this.imagesLoadedCb && this.imagesLoadedCb(null); } function r() { (this.loadedFootagesCount += 1), this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages && this.imagesLoadedCb && this.imagesLoadedCb(null); } function i(u, y, m) { var A = ''; if (u.e) A = u.p; else if (y) { var T = u.p; T.indexOf('images/') !== -1 && (T = T.split('/')[1]), (A = y + T); } else (A = m), (A += u.u ? u.u : ''), (A += u.p); return A; } function s(u) { var y = 0, m = setInterval( function () { var A = u.getBBox(); (A.width || y > 500) && (this._imageLoaded(), clearInterval(m)), (y += 1); }.bind(this), 50 ); } function a(u) { var y = i(u, this.assetsPath, this.path), m = createNS('image'); isSafari ? this.testImageLoaded(m) : m.addEventListener('load', this._imageLoaded, !1), m.addEventListener( 'error', function () { (A.img = e), this._imageLoaded(); }.bind(this), !1 ), m.setAttributeNS('http://www.w3.org/1999/xlink', 'href', y), this._elementHelper.append ? this._elementHelper.append(m) : this._elementHelper.appendChild(m); var A = { img: m, assetData: u }; return A; } function o(u) { var y = i(u, this.assetsPath, this.path), m = createTag('img'); (m.crossOrigin = 'anonymous'), m.addEventListener('load', this._imageLoaded, !1), m.addEventListener( 'error', function () { (A.img = e), this._imageLoaded(); }.bind(this), !1 ), (m.src = y); var A = { img: m, assetData: u }; return A; } function n(u) { var y = { assetData: u }, m = i(u, this.assetsPath, this.path); return ( dataManager.loadData( m, function (A) { (y.img = A), this._footageLoaded(); }.bind(this), function () { (y.img = {}), this._footageLoaded(); }.bind(this) ), y ); } function l(u, y) { this.imagesLoadedCb = y; var m, A = u.length; for (m = 0; m < A; m += 1) u[m].layers || (!u[m].t || u[m].t === 'seq' ? ((this.totalImages += 1), this.images.push(this._createImageData(u[m]))) : u[m].t === 3 && ((this.totalFootages += 1), this.images.push(this.createFootageData(u[m])))); } function f(u) { this.path = u || ''; } function g(u) { this.assetsPath = u || ''; } function S(u) { for (var y = 0, m = this.images.length; y < m; ) { if (this.images[y].assetData === u) return this.images[y].img; y += 1; } return null; } function c() { (this.imagesLoadedCb = null), (this.images.length = 0); } function P() { return this.totalImages === this.loadedAssets; } function d() { return this.totalFootages === this.loadedFootagesCount; } function p(u, y) { u === 'svg' ? ((this._elementHelper = y), (this._createImageData = this.createImageData.bind(this))) : (this._createImageData = this.createImgData.bind(this)); } function x() { (this._imageLoaded = t.bind(this)), (this._footageLoaded = r.bind(this)), (this.testImageLoaded = s.bind(this)), (this.createFootageData = n.bind(this)), (this.assetsPath = ''), (this.path = ''), (this.totalImages = 0), (this.totalFootages = 0), (this.loadedAssets = 0), (this.loadedFootagesCount = 0), (this.imagesLoadedCb = null), (this.images = []); } return ( (x.prototype = { loadAssets: l, setAssetsPath: g, setPath: f, loadedImages: P, loadedFootages: d, destroy: c, getAsset: S, createImgData: o, createImageData: a, imageLoaded: t, footageLoaded: r, setCacheType: p }), x ); })(); function BaseEvent() {} BaseEvent.prototype = { triggerEvent: function (t, r) { if (this._cbs[t]) for (var i = this._cbs[t], s = 0; s < i.length; s += 1) i[s](r); }, addEventListener: function (t, r) { return ( this._cbs[t] || (this._cbs[t] = []), this._cbs[t].push(r), function () { this.removeEventListener(t, r); }.bind(this) ); }, removeEventListener: function (t, r) { if (!r) this._cbs[t] = null; else if (this._cbs[t]) { for (var i = 0, s = this._cbs[t].length; i < s; ) this._cbs[t][i] === r && (this._cbs[t].splice(i, 1), (i -= 1), (s -= 1)), (i += 1); this._cbs[t].length || (this._cbs[t] = null); } } }; var markerParser = (function () { function e(t) { for ( var r = t.split('\r\n'), i = {}, s, a = 0, o = 0; o < r.length; o += 1 ) (s = r[o].split(':')), s.length === 2 && ((i[s[0]] = s[1].trim()), (a += 1)); if (a === 0) throw new Error(); return i; } return function (t) { for (var r = [], i = 0; i < t.length; i += 1) { var s = t[i], a = { time: s.tm, duration: s.dr }; try { a.payload = JSON.parse(t[i].cm); } catch (o) { try { a.payload = e(t[i].cm); } catch (n) { a.payload = { name: t[i].cm }; } } r.push(a); } return r; }; })(), ProjectInterface = (function () { function e(t) { this.compositions.push(t); } return function () { function t(r) { for (var i = 0, s = this.compositions.length; i < s; ) { if ( this.compositions[i].data && this.compositions[i].data.nm === r ) return ( this.compositions[i].prepareFrame && this.compositions[i].data.xt && this.compositions[i].prepareFrame(this.currentFrame), this.compositions[i].compInterface ); i += 1; } return null; } return ( (t.compositions = []), (t.currentFrame = 0), (t.registerComposition = e), t ); }; })(), renderers = {}, registerRenderer = function (t, r) { renderers[t] = r; }; function getRenderer(e) { return renderers[e]; } function getRegisteredRenderer() { if (renderers.canvas) return 'canvas'; for (var e in renderers) if (renderers[e]) return e; return ''; } function _typeof$4(e) { '@babel/helpers - typeof'; return ( typeof Symbol == 'function' && typeof Symbol.iterator == 'symbol' ? (_typeof$4 = function (r) { return typeof r; }) : (_typeof$4 = function (r) { return r && typeof Symbol == 'function' && r.constructor === Symbol && r !== Symbol.prototype ? 'symbol' : typeof r; }), _typeof$4(e) ); } var AnimationItem = function () { (this._cbs = []), (this.name = ''), (this.path = ''), (this.isLoaded = !1), (this.currentFrame = 0), (this.currentRawFrame = 0), (this.firstFrame = 0), (this.totalFrames = 0), (this.frameRate = 0), (this.frameMult = 0), (this.playSpeed = 1), (this.playDirection = 1), (this.playCount = 0), (this.animationData = {}), (this.assets = []), (this.isPaused = !0), (this.autoplay = !1), (this.loop = !0), (this.renderer = null), (this.animationID = createElementID()), (this.assetsPath = ''), (this.timeCompleted = 0), (this.segmentPos = 0), (this.isSubframeEnabled = getSubframeEnabled()), (this.segments = []), (this._idle = !0), (this._completedLoop = !1), (this.projectInterface = ProjectInterface()), (this.imagePreloader = new ImagePreloader()), (this.audioController = audioControllerFactory()), (this.markers = []), (this.configAnimation = this.configAnimation.bind(this)), (this.onSetupError = this.onSetupError.bind(this)), (this.onSegmentComplete = this.onSegmentComplete.bind(this)), (this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0)), (this.expressionsPlugin = getExpressionsPlugin()); }; extendPrototype([BaseEvent], AnimationItem), (AnimationItem.prototype.setParams = function (e) { (e.wrapper || e.container) && (this.wrapper = e.wrapper || e.container); var t = 'svg'; e.animType ? (t = e.animType) : e.renderer && (t = e.renderer); var r = getRenderer(t); (this.renderer = new r(this, e.rendererSettings)), this.imagePreloader.setCacheType(t, this.renderer.globalData.defs), this.renderer.setProjectInterface(this.projectInterface), (this.animType = t), e.loop === '' || e.loop === null || e.loop === void 0 || e.loop === !0 ? (this.loop = !0) : e.loop === !1 ? (this.loop = !1) : (this.loop = parseInt(e.loop, 10)), (this.autoplay = 'autoplay' in e ? e.autoplay : !0), (this.name = e.name ? e.name : ''), (this.autoloadSegments = Object.prototype.hasOwnProperty.call( e, 'autoloadSegments' ) ? e.autoloadSegments : !0), (this.assetsPath = e.assetsPath), (this.initialSegment = e.initialSegment), e.audioFactory && this.audioController.setAudioFactory(e.audioFactory), e.animationData ? this.setupAnimation(e.animationData) : e.path && (e.path.lastIndexOf('\\') !== -1 ? (this.path = e.path.substr(0, e.path.lastIndexOf('\\') + 1)) : (this.path = e.path.substr(0, e.path.lastIndexOf('/') + 1)), (this.fileName = e.path.substr(e.path.lastIndexOf('/') + 1)), (this.fileName = this.fileName.substr( 0, this.fileName.lastIndexOf('.json') )), dataManager.loadAnimation( e.path, this.configAnimation, this.onSetupError )); }), (AnimationItem.prototype.onSetupError = function () { this.trigger('data_failed'); }), (AnimationItem.prototype.setupAnimation = function (e) { dataManager.completeAnimation(e, this.configAnimation); }), (AnimationItem.prototype.setData = function (e, t) { t && _typeof$4(t) !== 'object' && (t = JSON.parse(t)); var r = { wrapper: e, animationData: t }, i = e.attributes; (r.path = i.getNamedItem('data-animation-path') ? i.getNamedItem('data-animation-path').value : i.getNamedItem('data-bm-path') ? i.getNamedItem('data-bm-path').value : i.getNamedItem('bm-path') ? i.getNamedItem('bm-path').value : ''), (r.animType = i.getNamedItem('data-anim-type') ? i.getNamedItem('data-anim-type').value : i.getNamedItem('data-bm-type') ? i.getNamedItem('data-bm-type').value : i.getNamedItem('bm-type') ? i.getNamedItem('bm-type').value : i.getNamedItem('data-bm-renderer') ? i.getNamedItem('data-bm-renderer').value : i.getNamedItem('bm-renderer') ? i.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas'); var s = i.getNamedItem('data-anim-loop') ? i.getNamedItem('data-anim-loop').value : i.getNamedItem('data-bm-loop') ? i.getNamedItem('data-bm-loop').value : i.getNamedItem('bm-loop') ? i.getNamedItem('bm-loop').value : ''; s === 'false' ? (r.loop = !1) : s === 'true' ? (r.loop = !0) : s !== '' && (r.loop = parseInt(s, 10)); var a = i.getNamedItem('data-anim-autoplay') ? i.getNamedItem('data-anim-autoplay').value : i.getNamedItem('data-bm-autoplay') ? i.getNamedItem('data-bm-autoplay').value : i.getNamedItem('bm-autoplay') ? i.getNamedItem('bm-autoplay').value : !0; (r.autoplay = a !== 'false'), (r.name = i.getNamedItem('data-name') ? i.getNamedItem('data-name').value : i.getNamedItem('data-bm-name') ? i.getNamedItem('data-bm-name').value : i.getNamedItem('bm-name') ? i.getNamedItem('bm-name').value : ''); var o = i.getNamedItem('data-anim-prerender') ? i.getNamedItem('data-anim-prerender').value : i.getNamedItem('data-bm-prerender') ? i.getNamedItem('data-bm-prerender').value : i.getNamedItem('bm-prerender') ? i.getNamedItem('bm-prerender').value : ''; o === 'false' && (r.prerender = !1), r.path ? this.setParams(r) : this.trigger('destroy'); }), (AnimationItem.prototype.includeLayers = function (e) { e.op > this.animationData.op && ((this.animationData.op = e.op), (this.totalFrames = Math.floor(e.op - this.animationData.ip))); var t = this.animationData.layers, r, i = t.length, s = e.layers, a, o = s.length; for (a = 0; a < o; a += 1) for (r = 0; r < i; ) { if (t[r].id === s[a].id) { t[r] = s[a]; break; } r += 1; } if ( ((e.chars || e.fonts) && (this.renderer.globalData.fontManager.addChars(e.chars), this.renderer.globalData.fontManager.addFonts( e.fonts, this.renderer.globalData.defs )), e.assets) ) for (i = e.assets.length, r = 0; r < i; r += 1) this.animationData.assets.push(e.assets[r]); (this.animationData.__complete = !1), dataManager.completeAnimation( this.animationData, this.onSegmentComplete ); }), (AnimationItem.prototype.onSegmentComplete = function (e) { this.animationData = e; var t = getExpressionsPlugin(); t && t.initExpressions(this), this.loadNextSegment(); }), (AnimationItem.prototype.loadNextSegment = function () { var e = this.animationData.segments; if (!e || e.length === 0 || !this.autoloadSegments) { this.trigger('data_ready'), (this.timeCompleted = this.totalFrames); return; } var t = e.shift(); this.timeCompleted = t.time * this.frameRate; var r = this.path + this.fileName + '_' + this.segmentPos + '.json'; (this.segmentPos += 1), dataManager.loadData( r, this.includeLayers.bind(this), function () { this.trigger('data_failed'); }.bind(this) ); }), (AnimationItem.prototype.loadSegments = function () { var e = this.animationData.segments; e || (this.timeCompleted = this.totalFrames), this.loadNextSegment(); }), (AnimationItem.prototype.imagesLoaded = function () { this.trigger('loaded_images'), this.checkLoaded(); }), (AnimationItem.prototype.preloadImages = function () { this.imagePreloader.setAssetsPath(this.assetsPath), this.imagePreloader.setPath(this.path), this.imagePreloader.loadAssets( this.animationData.assets, this.imagesLoaded.bind(this) ); }), (AnimationItem.prototype.configAnimation = function (e) { if (this.renderer) try { (this.animationData = e), this.initialSegment ? ((this.totalFrames = Math.floor( this.initialSegment[1] - this.initialSegment[0] )), (this.firstFrame = Math.round(this.initialSegment[0]))) : ((this.totalFrames = Math.floor( this.animationData.op - this.animationData.ip )), (this.firstFrame = Math.round(this.animationData.ip))), this.renderer.configAnimation(e), e.assets || (e.assets = []), (this.assets = this.animationData.assets), (this.frameRate = this.animationData.fr), (this.frameMult = this.animationData.fr / 1e3), this.renderer.searchExtraCompositions(e.assets), (this.markers = markerParser(e.markers || [])), this.trigger('config_ready'), this.preloadImages(), this.loadSegments(), this.updaFrameModifier(), this.waitForFontsLoaded(), this.isPaused && this.audioController.pause(); } catch (t) { this.triggerConfigError(t); } }), (AnimationItem.prototype.waitForFontsLoaded = function () { this.renderer && (this.renderer.globalData.fontManager.isLoaded ? this.checkLoaded() : setTimeout(this.waitForFontsLoaded.bind(this), 20)); }), (AnimationItem.prototype.checkLoaded = function () { if ( !this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages() ) { this.isLoaded = !0; var e = getExpressionsPlugin(); e && e.initExpressions(this), this.renderer.initItems(), setTimeout( function () { this.trigger('DOMLoaded'); }.bind(this), 0 ), this.gotoFrame(), this.autoplay && this.play(); } }), (AnimationItem.prototype.resize = function (e, t) { var r = typeof e == 'number' ? e : void 0, i = typeof t == 'number' ? t : void 0; this.renderer.updateContainerSize(r, i); }), (AnimationItem.prototype.setSubframe = function (e) { this.isSubframeEnabled = !!e; }), (AnimationItem.prototype.gotoFrame = function () { (this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame), this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted && (this.currentFrame = this.timeCompleted), this.trigger('enterFrame'), this.renderFrame(), this.trigger('drawnFrame'); }), (AnimationItem.prototype.renderFrame = function () { if (!(this.isLoaded === !1 || !this.renderer)) try { this.expressionsPlugin && this.expressionsPlugin.resetFrame(), this.renderer.renderFrame(this.currentFrame + this.firstFrame); } catch (e) { this.triggerRenderFrameError(e); } }), (AnimationItem.prototype.play = function (e) { (e && this.name !== e) || (this.isPaused === !0 && ((this.isPaused = !1), this.trigger('_play'), this.audioController.resume(), this._idle && ((this._idle = !1), this.trigger('_active')))); }), (AnimationItem.prototype.pause = function (e) { (e && this.name !== e) || (this.isPaused === !1 && ((this.isPaused = !0), this.trigger('_pause'), (this._idle = !0), this.trigger('_idle'), this.audioController.pause())); }), (AnimationItem.prototype.togglePause = function (e) { (e && this.name !== e) || (this.isPaused === !0 ? this.play() : this.pause()); }), (AnimationItem.prototype.stop = function (e) { (e && this.name !== e) || (this.pause(), (this.playCount = 0), (this._completedLoop = !1), this.setCurrentRawFrameValue(0)); }), (AnimationItem.prototype.getMarkerData = function (e) { for (var t, r = 0; r < this.markers.length; r += 1) if (((t = this.markers[r]), t.payload && t.payload.name === e)) return t; return null; }), (AnimationItem.prototype.goToAndStop = function (e, t, r) { if (!(r && this.name !== r)) { var i = Number(e); if (isNaN(i)) { var s = this.getMarkerData(e); s && this.goToAndStop(s.time, !0); } else t ? this.setCurrentRawFrameValue(e) : this.setCurrentRawFrameValue(e * this.frameModifier); this.pause(); } }), (AnimationItem.prototype.goToAndPlay = function (e, t, r) { if (!(r && this.name !== r)) { var i = Number(e); if (isNaN(i)) { var s = this.getMarkerData(e); s && (s.duration ? this.playSegments([s.time, s.time + s.duration], !0) : this.goToAndStop(s.time, !0)); } else this.goToAndStop(i, t, r); this.play(); } }), (AnimationItem.prototype.advanceTime = function (e) { if (!(this.isPaused === !0 || this.isLoaded === !1)) { var t = this.currentRawFrame + e * this.frameModifier, r = !1; t >= this.totalFrames - 1 && this.frameModifier > 0 ? !this.loop || this.playCount === this.loop ? this.checkSegments( t > this.totalFrames ? t % this.totalFrames : 0 ) || ((r = !0), (t = this.totalFrames - 1)) : t >= this.totalFrames ? ((this.playCount += 1), this.checkSegments(t % this.totalFrames) || (this.setCurrentRawFrameValue(t % this.totalFrames), (this._completedLoop = !0), this.trigger('loopComplete'))) : this.setCurrentRawFrameValue(t) : t < 0 ? this.checkSegments(t % this.totalFrames) || (this.loop && !(this.playCount-- <= 0 && this.loop !== !0) ? (this.setCurrentRawFrameValue( this.totalFrames + (t % this.totalFrames) ), this._completedLoop ? this.trigger('loopComplete') : (this._completedLoop = !0)) : ((r = !0), (t = 0))) : this.setCurrentRawFrameValue(t), r && (this.setCurrentRawFrameValue(t), this.pause(), this.trigger('complete')); } }), (AnimationItem.prototype.adjustSegment = function (e, t) { (this.playCount = 0), e[1] < e[0] ? (this.frameModifier > 0 && (this.playSpeed < 0 ? this.setSpeed(-this.playSpeed) : this.setDirection(-1)), (this.totalFrames = e[0] - e[1]), (this.timeCompleted = this.totalFrames), (this.firstFrame = e[1]), this.setCurrentRawFrameValue(this.totalFrames - 0.001 - t)) : e[1] > e[0] && (this.frameModifier < 0 && (this.playSpeed < 0 ? this.setSpeed(-this.playSpeed) : this.setDirection(1)), (this.totalFrames = e[1] - e[0]), (this.timeCompleted = this.totalFrames), (this.firstFrame = e[0]), this.setCurrentRawFrameValue(0.001 + t)), this.trigger('segmentStart'); }), (AnimationItem.prototype.setSegment = function (e, t) { var r = -1; this.isPaused && (this.currentRawFrame + this.firstFrame < e ? (r = e) : this.currentRawFrame + this.firstFrame > t && (r = t - e)), (this.firstFrame = e), (this.totalFrames = t - e), (this.timeCompleted = this.totalFrames), r !== -1 && this.goToAndStop(r, !0); }), (AnimationItem.prototype.playSegments = function (e, t) { if ((t && (this.segments.length = 0), _typeof$4(e[0]) === 'object')) { var r, i = e.length; for (r = 0; r < i; r += 1) this.segments.push(e[r]); } else this.segments.push(e); this.segments.length && t && this.adjustSegment(this.segments.shift(), 0), this.isPaused && this.play(); }), (AnimationItem.prototype.resetSegments = function (e) { (this.segments.length = 0), this.segments.push([this.animationData.ip, this.animationData.op]), e && this.checkSegments(0); }), (AnimationItem.prototype.checkSegments = function (e) { return this.segments.length ? (this.adjustSegment(this.segments.shift(), e), !0) : !1; }), (AnimationItem.prototype.destroy = function (e) { (e && this.name !== e) || !this.renderer || (this.renderer.destroy(), this.imagePreloader.destroy(), this.trigger('destroy'), (this._cbs = null), (this.onEnterFrame = null), (this.onLoopComplete = null), (this.onComplete = null), (this.onSegmentStart = null), (this.onDestroy = null), (this.renderer = null), (this.expressionsPlugin = null), (this.imagePreloader = null), (this.projectInterface = null)); }), (AnimationItem.prototype.setCurrentRawFrameValue = function (e) { (this.currentRawFrame = e), this.gotoFrame(); }), (AnimationItem.prototype.setSpeed = function (e) { (this.playSpeed = e), this.updaFrameModifier(); }), (AnimationItem.prototype.setDirection = function (e) { (this.playDirection = e < 0 ? -1 : 1), this.updaFrameModifier(); }), (AnimationItem.prototype.setLoop = function (e) { this.loop = e; }), (AnimationItem.prototype.setVolume = function (e, t) { (t && this.name !== t) || this.audioController.setVolume(e); }), (AnimationItem.prototype.getVolume = function () { return this.audioController.getVolume(); }), (AnimationItem.prototype.mute = function (e) { (e && this.name !== e) || this.audioController.mute(); }), (AnimationItem.prototype.unmute = function (e) { (e && this.name !== e) || this.audioController.unmute(); }), (AnimationItem.prototype.updaFrameModifier = function () { (this.frameModifier = this.frameMult * this.playSpeed * this.playDirection), this.audioController.setRate(this.playSpeed * this.playDirection); }), (AnimationItem.prototype.getPath = function () { return this.path; }), (AnimationItem.prototype.getAssetsPath = function (e) { var t = ''; if (e.e) t = e.p; else if (this.assetsPath) { var r = e.p; r.indexOf('images/') !== -1 && (r = r.split('/')[1]), (t = this.assetsPath + r); } else (t = this.path), (t += e.u ? e.u : ''), (t += e.p); return t; }), (AnimationItem.prototype.getAssetData = function (e) { for (var t = 0, r = this.assets.length; t < r; ) { if (e === this.assets[t].id) return this.assets[t]; t += 1; } return null; }), (AnimationItem.prototype.hide = function () { this.renderer.hide(); }), (AnimationItem.prototype.show = function () { this.renderer.show(); }), (AnimationItem.prototype.getDuration = function (e) { return e ? this.totalFrames : this.totalFrames / this.frameRate; }), (AnimationItem.prototype.updateDocumentData = function (e, t, r) { try { var i = this.renderer.getElementByPath(e); i.updateDocumentData(t, r); } catch (s) {} }), (AnimationItem.prototype.trigger = function (e) { if (this._cbs && this._cbs[e]) switch (e) { case 'enterFrame': this.triggerEvent( e, new BMEnterFrameEvent( e, this.currentFrame, this.totalFrames, this.frameModifier ) ); break; case 'drawnFrame': (this.drawnFrameEvent.currentTime = this.currentFrame), (this.drawnFrameEvent.totalTime = this.totalFrames), (this.drawnFrameEvent.direction = this.frameModifier), this.triggerEvent(e, this.drawnFrameEvent); break; case 'loopComplete': this.triggerEvent( e, new BMCompleteLoopEvent( e, this.loop, this.playCount, this.frameMult ) ); break; case 'complete': this.triggerEvent(e, new BMCompleteEvent(e, this.frameMult)); break; case 'segmentStart': this.triggerEvent( e, new BMSegmentStartEvent(e, this.firstFrame, this.totalFrames) ); break; case 'destroy': this.triggerEvent(e, new BMDestroyEvent(e, this)); break; default: this.triggerEvent(e); } e === 'enterFrame' && this.onEnterFrame && this.onEnterFrame.call( this, new BMEnterFrameEvent( e, this.currentFrame, this.totalFrames, this.frameMult ) ), e === 'loopComplete' && this.onLoopComplete && this.onLoopComplete.call( this, new BMCompleteLoopEvent( e, this.loop, this.playCount, this.frameMult ) ), e === 'complete' && this.onComplete && this.onComplete.call( this, new BMCompleteEvent(e, this.frameMult) ), e === 'segmentStart' && this.onSegmentStart && this.onSegmentStart.call( this, new BMSegmentStartEvent(e, this.firstFrame, this.totalFrames) ), e === 'destroy' && this.onDestroy && this.onDestroy.call(this, new BMDestroyEvent(e, this)); }), (AnimationItem.prototype.triggerRenderFrameError = function (e) { var t = new BMRenderFrameErrorEvent(e, this.currentFrame); this.triggerEvent('error', t), this.onError && this.onError.call(this, t); }), (AnimationItem.prototype.triggerConfigError = function (e) { var t = new BMConfigErrorEvent(e, this.currentFrame); this.triggerEvent('error', t), this.onError && this.onError.call(this, t); }); var animationManager = (function () { var e = {}, t = [], r = 0, i = 0, s = 0, a = !0, o = !1; function n(M) { for (var k = 0, b = M.target; k < i; ) t[k].animation === b && (t.splice(k, 1), (k -= 1), (i -= 1), b.isPaused || S()), (k += 1); } function l(M, k) { if (!M) return null; for (var b = 0; b < i; ) { if (t[b].elem === M && t[b].elem !== null) return t[b].animation; b += 1; } var C = new AnimationItem(); return c(C, M), C.setData(M, k), C; } function f() { var M, k = t.length, b = []; for (M = 0; M < k; M += 1) b.push(t[M].animation); return b; } function g() { (s += 1), z(); } function S() { s -= 1; } function c(M, k) { M.addEventListener('destroy', n), M.addEventListener('_active', g), M.addEventListener('_idle', S), t.push({ elem: k, animation: M }), (i += 1); } function P(M) { var k = new AnimationItem(); return c(k, null), k.setParams(M), k; } function d(M, k) { var b; for (b = 0; b < i; b += 1) t[b].animation.setSpeed(M, k); } function p(M, k) { var b; for (b = 0; b < i; b += 1) t[b].animation.setDirection(M, k); } function x(M) { var k; for (k = 0; k < i; k += 1) t[k].animation.play(M); } function u(M) { var k = M - r, b; for (b = 0; b < i; b += 1) t[b].animation.advanceTime(k); (r = M), s && !o ? window.requestAnimationFrame(u) : (a = !0); } function y(M) { (r = M), window.requestAnimationFrame(u); } function m(M) { var k; for (k = 0; k < i; k += 1) t[k].animation.pause(M); } function A(M, k, b) { var C; for (C = 0; C < i; C += 1) t[C].animation.goToAndStop(M, k, b); } function T(M) { var k; for (k = 0; k < i; k += 1) t[k].animation.stop(M); } function E(M) { var k; for (k = 0; k < i; k += 1) t[k].animation.togglePause(M); } function _(M) { var k; for (k = i - 1; k >= 0; k -= 1) t[k].animation.destroy(M); } function I(M, k, b) { var C = [].concat( [].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')) ), L, F = C.length; for (L = 0; L < F; L += 1) b && C[L].setAttribute('data-bm-type', b), l(C[L], M); if (k && F === 0) { b || (b = 'svg'); var U = document.getElementsByTagName('body')[0]; U.innerText = ''; var D = createTag('div'); (D.style.width = '100%'), (D.style.height = '100%'), D.setAttribute('data-bm-type', b), U.appendChild(D), l(D, M); } } function B() { var M; for (M = 0; M < i; M += 1) t[M].animation.resize(); } function z() { !o && s && a && (window.requestAnimationFrame(y), (a = !1)); } function G() { o = !0; } function R() { (o = !1), z(); } function W(M, k) { var b; for (b = 0; b < i; b += 1) t[b].animation.setVolume(M, k); } function H(M) { var k; for (k = 0; k < i; k += 1) t[k].animation.mute(M); } function N(M) { var k; for (k = 0; k < i; k += 1) t[k].animation.unmute(M); } return ( (e.registerAnimation = l), (e.loadAnimation = P), (e.setSpeed = d), (e.setDirection = p), (e.play = x), (e.pause = m), (e.stop = T), (e.togglePause = E), (e.searchAnimations = I), (e.resize = B), (e.goToAndStop = A), (e.destroy = _), (e.freeze = G), (e.unfreeze = R), (e.setVolume = W), (e.mute = H), (e.unmute = N), (e.getRegisteredAnimations = f), e ); })(), BezierFactory = (function () { var e = {}; e.getBezierEasing = r; var t = {}; function r(y, m, A, T, E) { var _ = E || ('bez_' + y + '_' + m + '_' + A + '_' + T).replace(/\./g, 'p'); if (t[_]) return t[_]; var I = new u([y, m, A, T]); return (t[_] = I), I; } var i = 4, s = 0.001, a = 1e-7, o = 10, n = 11, l = 1 / (n - 1), f = typeof Float32Array == 'function'; function g(y, m) { return 1 - 3 * m + 3 * y; } function S(y, m) { return 3 * m - 6 * y; } function c(y) { return 3 * y; } function P(y, m, A) { return ((g(m, A) * y + S(m, A)) * y + c(m)) * y; } function d(y, m, A) { return 3 * g(m, A) * y * y + 2 * S(m, A) * y + c(m); } function p(y, m, A, T, E) { var _, I, B = 0; do (I = m + (A - m) / 2), (_ = P(I, T, E) - y), _ > 0 ? (A = I) : (m = I); while (Math.abs(_) > a && ++B < o); return I; } function x(y, m, A, T) { for (var E = 0; E < i; ++E) { var _ = d(m, A, T); if (_ === 0) return m; var I = P(m, A, T) - y; m -= I / _; } return m; } function u(y) { (this._p = y), (this._mSampleValues = f ? new Float32Array(n) : new Array(n)), (this._precomputed = !1), (this.get = this.get.bind(this)); } return ( (u.prototype = { get: function (m) { var A = this._p[0], T = this._p[1], E = this._p[2], _ = this._p[3]; return ( this._precomputed || this._precompute(), A === T && E === _ ? m : m === 0 ? 0 : m === 1 ? 1 : P(this._getTForX(m), T, _) ); }, _precompute: function () { var m = this._p[0], A = this._p[1], T = this._p[2], E = this._p[3]; (this._precomputed = !0), (m !== A || T !== E) && this._calcSampleValues(); }, _calcSampleValues: function () { for (var m = this._p[0], A = this._p[2], T = 0; T < n; ++T) this._mSampleValues[T] = P(T * l, m, A); }, _getTForX: function (m) { for ( var A = this._p[0], T = this._p[2], E = this._mSampleValues, _ = 0, I = 1, B = n - 1; I !== B && E[I] <= m; ++I ) _ += l; --I; var z = (m - E[I]) / (E[I + 1] - E[I]), G = _ + z * l, R = d(G, A, T); return R >= s ? x(m, G, A, T) : R === 0 ? G : p(m, _, _ + l, A, T); } }), e ); })(), pooling = (function () { function e(t) { return t.concat(createSizedArray(t.length)); } return { double: e }; })(), poolFactory = (function () { return function (e, t, r) { var i = 0, s = e, a = createSizedArray(s), o = { newElement: n, release: l }; function n() { var f; return i ? ((i -= 1), (f = a[i])) : (f = t()), f; } function l(f) { i === s && ((a = pooling.double(a)), (s *= 2)), r && r(f), (a[i] = f), (i += 1); } return o; }; })(), bezierLengthPool = (function () { function e() { return { addedLength: 0, percents: createTypedArray('float32', getDefaultCurveSegments()), lengths: createTypedArray('float32', getDefaultCurveSegments()) }; } return poolFactory(8, e); })(), segmentsLengthPool = (function () { function e() { return { lengths: [], totalLength: 0 }; } function t(r) { var i, s = r.lengths.length; for (i = 0; i < s; i += 1) bezierLengthPool.release(r.lengths[i]); r.lengths.length = 0; } return poolFactory(8, e, t); })(); function bezFunction() { var e = Math; function t(c, P, d, p, x, u) { var y = c * p + P * x + d * u - x * p - u * c - d * P; return y > -0.001 && y < 0.001; } function r(c, P, d, p, x, u, y, m, A) { if (d === 0 && u === 0 && A === 0) return t(c, P, p, x, y, m); var T = e.sqrt(e.pow(p - c, 2) + e.pow(x - P, 2) + e.pow(u - d, 2)), E = e.sqrt(e.pow(y - c, 2) + e.pow(m - P, 2) + e.pow(A - d, 2)), _ = e.sqrt(e.pow(y - p, 2) + e.pow(m - x, 2) + e.pow(A - u, 2)), I; return ( T > E ? T > _ ? (I = T - E - _) : (I = _ - E - T) : _ > E ? (I = _ - E - T) : (I = E - T - _), I > -1e-4 && I < 1e-4 ); } var i = (function () { return function (c, P, d, p) { var x = getDefaultCurveSegments(), u, y, m, A, T, E = 0, _, I = [], B = [], z = bezierLengthPool.newElement(); for (m = d.length, u = 0; u < x; u += 1) { for (T = u / (x - 1), _ = 0, y = 0; y < m; y += 1) (A = bmPow(1 - T, 3) * c[y] + 3 * bmPow(1 - T, 2) * T * d[y] + 3 * (1 - T) * bmPow(T, 2) * p[y] + bmPow(T, 3) * P[y]), (I[y] = A), B[y] !== null && (_ += bmPow(I[y] - B[y], 2)), (B[y] = I[y]); _ && ((_ = bmSqrt(_)), (E += _)), (z.percents[u] = T), (z.lengths[u] = E); } return (z.addedLength = E), z; }; })(); function s(c) { var P = segmentsLengthPool.newElement(), d = c.c, p = c.v, x = c.o, u = c.i, y, m = c._length, A = P.lengths, T = 0; for (y = 0; y < m - 1; y += 1) (A[y] = i(p[y], p[y + 1], x[y], u[y + 1])), (T += A[y].addedLength); return ( d && m && ((A[y] = i(p[y], p[0], x[y], u[0])), (T += A[y].addedLength)), (P.totalLength = T), P ); } function a(c) { (this.segmentLength = 0), (this.points = new Array(c)); } function o(c, P) { (this.partialLength = c), (this.point = P); } var n = (function () { var c = {}; return function (P, d, p, x) { var u = ( P[0] + '_' + P[1] + '_' + d[0] + '_' + d[1] + '_' + p[0] + '_' + p[1] + '_' + x[0] + '_' + x[1] ).replace(/\./g, 'p'); if (!c[u]) { var y = getDefaultCurveSegments(), m, A, T, E, _, I = 0, B, z, G = null; P.length === 2 && (P[0] !== d[0] || P[1] !== d[1]) && t(P[0], P[1], d[0], d[1], P[0] + p[0], P[1] + p[1]) && t(P[0], P[1], d[0], d[1], d[0] + x[0], d[1] + x[1]) && (y = 2); var R = new a(y); for (T = p.length, m = 0; m < y; m += 1) { for ( z = createSizedArray(T), _ = m / (y - 1), B = 0, A = 0; A < T; A += 1 ) (E = bmPow(1 - _, 3) * P[A] + 3 * bmPow(1 - _, 2) * _ * (P[A] + p[A]) + 3 * (1 - _) * bmPow(_, 2) * (d[A] + x[A]) + bmPow(_, 3) * d[A]), (z[A] = E), G !== null && (B += bmPow(z[A] - G[A], 2)); (B = bmSqrt(B)), (I += B), (R.points[m] = new o(B, z)), (G = z); } (R.segmentLength = I), (c[u] = R); } return c[u]; }; })(); function l(c, P) { var d = P.percents, p = P.lengths, x = d.length, u = bmFloor((x - 1) * c), y = c * P.addedLength, m = 0; if (u === x - 1 || u === 0 || y === p[u]) return d[u]; for (var A = p[u] > y ? -1 : 1, T = !0; T; ) if ( (p[u] <= y && p[u + 1] > y ? ((m = (y - p[u]) / (p[u + 1] - p[u])), (T = !1)) : (u += A), u < 0 || u >= x - 1) ) { if (u === x - 1) return d[u]; T = !1; } return d[u] + (d[u + 1] - d[u]) * m; } function f(c, P, d, p, x, u) { var y = l(x, u), m = 1 - y, A = e.round( (m * m * m * c[0] + (y * m * m + m * y * m + m * m * y) * d[0] + (y * y * m + m * y * y + y * m * y) * p[0] + y * y * y * P[0]) * 1e3 ) / 1e3, T = e.round( (m * m * m * c[1] + (y * m * m + m * y * m + m * m * y) * d[1] + (y * y * m + m * y * y + y * m * y) * p[1] + y * y * y * P[1]) * 1e3 ) / 1e3; return [A, T]; } var g = createTypedArray('float32', 8); function S(c, P, d, p, x, u, y) { x < 0 ? (x = 0) : x > 1 && (x = 1); var m = l(x, y); u = u > 1 ? 1 : u; var A = l(u, y), T, E = c.length, _ = 1 - m, I = 1 - A, B = _ * _ * _, z = m * _ * _ * 3, G = m * m * _ * 3, R = m * m * m, W = _ * _ * I, H = m * _ * I + _ * m * I + _ * _ * A, N = m * m * I + _ * m * A + m * _ * A, M = m * m * A, k = _ * I * I, b = m * I * I + _ * A * I + _ * I * A, C = m * A * I + _ * A * A + m * I * A, L = m * A * A, F = I * I * I, U = A * I * I + I * A * I + I * I * A, D = A * A * I + I * A * A + A * I * A, V = A * A * A; for (T = 0; T < E; T += 1) (g[T * 4] = e.round((B * c[T] + z * d[T] + G * p[T] + R * P[T]) * 1e3) / 1e3), (g[T * 4 + 1] = e.round((W * c[T] + H * d[T] + N * p[T] + M * P[T]) * 1e3) / 1e3), (g[T * 4 + 2] = e.round((k * c[T] + b * d[T] + C * p[T] + L * P[T]) * 1e3) / 1e3), (g[T * 4 + 3] = e.round((F * c[T] + U * d[T] + D * p[T] + V * P[T]) * 1e3) / 1e3); return g; } return { getSegmentsLength: s, getNewSegment: S, getPointInSegment: f, buildBezierData: n, pointOnLine2D: t, pointOnLine3D: r }; } var bez = bezFunction(), initFrame = initialDefaultFrame, mathAbs = Math.abs; function interpolateValue(e, t) { var r = this.offsetTime, i; this.propType === 'multidimensional' && (i = createTypedArray('float32', this.pv.length)); for ( var s = t.lastIndex, a = s, o = this.keyframes.length - 1, n = !0, l, f, g; n; ) { if ( ((l = this.keyframes[a]), (f = this.keyframes[a + 1]), a === o - 1 && e >= f.t - r) ) { l.h && (l = f), (s = 0); break; } if (f.t - r > e) { s = a; break; } a < o - 1 ? (a += 1) : ((s = 0), (n = !1)); } g = this.keyframesMetadata[a] || {}; var S, c, P, d, p, x, u = f.t - r, y = l.t - r, m; if (l.to) { g.bezierData || (g.bezierData = bez.buildBezierData(l.s, f.s || l.e, l.to, l.ti)); var A = g.bezierData; if (e >= u || e < y) { var T = e >= u ? A.points.length - 1 : 0; for (c = A.points[T].point.length, S = 0; S < c; S += 1) i[S] = A.points[T].point[S]; } else { g.__fnct ? (x = g.__fnct) : ((x = BezierFactory.getBezierEasing( l.o.x, l.o.y, l.i.x, l.i.y, l.n ).get), (g.__fnct = x)), (P = x((e - y) / (u - y))); var E = A.segmentLength * P, _, I = t.lastFrame < e && t._lastKeyframeIndex === a ? t._lastAddedLength : 0; for ( p = t.lastFrame < e && t._lastKeyframeIndex === a ? t._lastPoint : 0, n = !0, d = A.points.length; n; ) { if ( ((I += A.points[p].partialLength), E === 0 || P === 0 || p === A.points.length - 1) ) { for (c = A.points[p].point.length, S = 0; S < c; S += 1) i[S] = A.points[p].point[S]; break; } else if (E >= I && E < I + A.points[p + 1].partialLength) { for ( _ = (E - I) / A.points[p + 1].partialLength, c = A.points[p].point.length, S = 0; S < c; S += 1 ) i[S] = A.points[p].point[S] + (A.points[p + 1].point[S] - A.points[p].point[S]) * _; break; } p < d - 1 ? (p += 1) : (n = !1); } (t._lastPoint = p), (t._lastAddedLength = I - A.points[p].partialLength), (t._lastKeyframeIndex = a); } } else { var B, z, G, R, W; if (((o = l.s.length), (m = f.s || l.e), this.sh && l.h !== 1)) if (e >= u) (i[0] = m[0]), (i[1] = m[1]), (i[2] = m[2]); else if (e <= y) (i[0] = l.s[0]), (i[1] = l.s[1]), (i[2] = l.s[2]); else { var H = createQuaternion(l.s), N = createQuaternion(m), M = (e - y) / (u - y); quaternionToEuler(i, slerp(H, N, M)); } else for (a = 0; a < o; a += 1) l.h !== 1 && (e >= u ? (P = 1) : e < y ? (P = 0) : (l.o.x.constructor === Array ? (g.__fnct || (g.__fnct = []), g.__fnct[a] ? (x = g.__fnct[a]) : ((B = l.o.x[a] === void 0 ? l.o.x[0] : l.o.x[a]), (z = l.o.y[a] === void 0 ? l.o.y[0] : l.o.y[a]), (G = l.i.x[a] === void 0 ? l.i.x[0] : l.i.x[a]), (R = l.i.y[a] === void 0 ? l.i.y[0] : l.i.y[a]), (x = BezierFactory.getBezierEasing(B, z, G, R).get), (g.__fnct[a] = x))) : g.__fnct ? (x = g.__fnct) : ((B = l.o.x), (z = l.o.y), (G = l.i.x), (R = l.i.y), (x = BezierFactory.getBezierEasing(B, z, G, R).get), (l.keyframeMetadata = x)), (P = x((e - y) / (u - y))))), (m = f.s || l.e), (W = l.h === 1 ? l.s[a] : l.s[a] + (m[a] - l.s[a]) * P), this.propType === 'multidimensional' ? (i[a] = W) : (i = W); } return (t.lastIndex = s), i; } function slerp(e, t, r) { var i = [], s = e[0], a = e[1], o = e[2], n = e[3], l = t[0], f = t[1], g = t[2], S = t[3], c, P, d, p, x; return ( (P = s * l + a * f + o * g + n * S), P < 0 && ((P = -P), (l = -l), (f = -f), (g = -g), (S = -S)), 1 - P > 1e-6 ? ((c = Math.acos(P)), (d = Math.sin(c)), (p = Math.sin((1 - r) * c) / d), (x = Math.sin(r * c) / d)) : ((p = 1 - r), (x = r)), (i[0] = p * s + x * l), (i[1] = p * a + x * f), (i[2] = p * o + x * g), (i[3] = p * n + x * S), i ); } function quaternionToEuler(e, t) { var r = t[0], i = t[1], s = t[2], a = t[3], o = Math.atan2(2 * i * a - 2 * r * s, 1 - 2 * i * i - 2 * s * s), n = Math.asin(2 * r * i + 2 * s * a), l = Math.atan2(2 * r * a - 2 * i * s, 1 - 2 * r * r - 2 * s * s); (e[0] = o / degToRads), (e[1] = n / degToRads), (e[2] = l / degToRads); } function createQuaternion(e) { var t = e[0] * degToRads, r = e[1] * degToRads, i = e[2] * degToRads, s = Math.cos(t / 2), a = Math.cos(r / 2), o = Math.cos(i / 2), n = Math.sin(t / 2), l = Math.sin(r / 2), f = Math.sin(i / 2), g = s * a * o - n * l * f, S = n * l * o + s * a * f, c = n * a * o + s * l * f, P = s * l * o - n * a * f; return [S, c, P, g]; } function getValueAtCurrentTime() { var e = this.comp.renderedFrame - this.offsetTime, t = this.keyframes[0].t - this.offsetTime, r = this.keyframes[this.keyframes.length - 1].t - this.offsetTime; if ( !( e === this._caching.lastFrame || (this._caching.lastFrame !== initFrame && ((this._caching.lastFrame >= r && e >= r) || (this._caching.lastFrame < t && e < t))) ) ) { this._caching.lastFrame >= e && ((this._caching._lastKeyframeIndex = -1), (this._caching.lastIndex = 0)); var i = this.interpolateValue(e, this._caching); this.pv = i; } return (this._caching.lastFrame = e), this.pv; } function setVValue(e) { var t; if (this.propType === 'unidimensional') (t = e * this.mult), mathAbs(this.v - t) > 1e-5 && ((this.v = t), (this._mdf = !0)); else for (var r = 0, i = this.v.length; r < i; ) (t = e[r] * this.mult), mathAbs(this.v[r] - t) > 1e-5 && ((this.v[r] = t), (this._mdf = !0)), (r += 1); } function processEffectsSequence() { if ( !( this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length ) ) { if (this.lock) { this.setVValue(this.pv); return; } (this.lock = !0), (this._mdf = this._isFirstFrame); var e, t = this.effectsSequence.length, r = this.kf ? this.pv : this.data.k; for (e = 0; e < t; e += 1) r = this.effectsSequence[e](r); this.setVValue(r), (this._isFirstFrame = !1), (this.lock = !1), (this.frameId = this.elem.globalData.frameId); } } function addEffect(e) { this.effectsSequence.push(e), this.container.addDynamicProperty(this); } function ValueProperty(e, t, r, i) { (this.propType = 'unidimensional'), (this.mult = r || 1), (this.data = t), (this.v = r ? t.k * r : t.k), (this.pv = t.k), (this._mdf = !1), (this.elem = e), (this.container = i), (this.comp = e.comp), (this.k = !1), (this.kf = !1), (this.vel = 0), (this.effectsSequence = []), (this._isFirstFrame = !0), (this.getValue = processEffectsSequence), (this.setVValue = setVValue), (this.addEffect = addEffect); } function MultiDimensionalProperty(e, t, r, i) { (this.propType = 'multidimensional'), (this.mult = r || 1), (this.data = t), (this._mdf = !1), (this.elem = e), (this.container = i), (this.comp = e.comp), (this.k = !1), (this.kf = !1), (this.frameId = -1); var s, a = t.k.length; for ( this.v = createTypedArray('float32', a), this.pv = createTypedArray('float32', a), this.vel = createTypedArray('float32', a), s = 0; s < a; s += 1 ) (this.v[s] = t.k[s] * this.mult), (this.pv[s] = t.k[s]); (this._isFirstFrame = !0), (this.effectsSequence = []), (this.getValue = processEffectsSequence), (this.setVValue = setVValue), (this.addEffect = addEffect); } function KeyframedValueProperty(e, t, r, i) { (this.propType = 'unidimensional'), (this.keyframes = t.k), (this.keyframesMetadata = []), (this.offsetTime = e.data.st), (this.frameId = -1), (this._caching = { lastFrame: initFrame, lastIndex: 0, value: 0, _lastKeyframeIndex: -1 }), (this.k = !0), (this.kf = !0), (this.data = t), (this.mult = r || 1), (this.elem = e), (this.container = i), (this.comp = e.comp), (this.v = initFrame), (this.pv = initFrame), (this._isFirstFrame = !0), (this.getValue = processEffectsSequence), (this.setVValue = setVValue), (this.interpolateValue = interpolateValue), (this.effectsSequence = [getValueAtCurrentTime.bind(this)]), (this.addEffect = addEffect); } function KeyframedMultidimensionalProperty(e, t, r, i) { this.propType = 'multidimensional'; var s, a = t.k.length, o, n, l, f; for (s = 0; s < a - 1; s += 1) t.k[s].to && t.k[s].s && t.k[s + 1] && t.k[s + 1].s && ((o = t.k[s].s), (n = t.k[s + 1].s), (l = t.k[s].to), (f = t.k[s].ti), ((o.length === 2 && !(o[0] === n[0] && o[1] === n[1]) && bez.pointOnLine2D( o[0], o[1], n[0], n[1], o[0] + l[0], o[1] + l[1] ) && bez.pointOnLine2D( o[0], o[1], n[0], n[1], n[0] + f[0], n[1] + f[1] )) || (o.length === 3 && !(o[0] === n[0] && o[1] === n[1] && o[2] === n[2]) && bez.pointOnLine3D( o[0], o[1], o[2], n[0], n[1], n[2], o[0] + l[0], o[1] + l[1], o[2] + l[2] ) && bez.pointOnLine3D( o[0], o[1], o[2], n[0], n[1], n[2], n[0] + f[0], n[1] + f[1], n[2] + f[2] ))) && ((t.k[s].to = null), (t.k[s].ti = null)), o[0] === n[0] && o[1] === n[1] && l[0] === 0 && l[1] === 0 && f[0] === 0 && f[1] === 0 && (o.length === 2 || (o[2] === n[2] && l[2] === 0 && f[2] === 0)) && ((t.k[s].to = null), (t.k[s].ti = null))); (this.effectsSequence = [getValueAtCurrentTime.bind(this)]), (this.data = t), (this.keyframes = t.k), (this.keyframesMetadata = []), (this.offsetTime = e.data.st), (this.k = !0), (this.kf = !0), (this._isFirstFrame = !0), (this.mult = r || 1), (this.elem = e), (this.container = i), (this.comp = e.comp), (this.getValue = processEffectsSequence), (this.setVValue = setVValue), (this.interpolateValue = interpolateValue), (this.frameId = -1); var g = t.k[0].s.length; for ( this.v = createTypedArray('float32', g), this.pv = createTypedArray('float32', g), s = 0; s < g; s += 1 ) (this.v[s] = initFrame), (this.pv[s] = initFrame); (this._caching = { lastFrame: initFrame, lastIndex: 0, value: createTypedArray('float32', g) }), (this.addEffect = addEffect); } var PropertyFactory = (function () { function e(r, i, s, a, o) { i.sid && (i = r.globalData.slotManager.getProp(i)); var n; if (!i.k.length) n = new ValueProperty(r, i, a, o); else if (typeof i.k[0] == 'number') n = new MultiDimensionalProperty(r, i, a, o); else switch (s) { case 0: n = new KeyframedValueProperty(r, i, a, o); break; case 1: n = new KeyframedMultidimensionalProperty(r, i, a, o); break; } return n.effectsSequence.length && o.addDynamicProperty(n), n; } var t = { getProp: e }; return t; })(); function DynamicPropertyContainer() {} DynamicPropertyContainer.prototype = { addDynamicProperty: function (t) { this.dynamicProperties.indexOf(t) === -1 && (this.dynamicProperties.push(t), this.container.addDynamicProperty(this), (this._isAnimated = !0)); }, iterateDynamicProperties: function () { this._mdf = !1; var t, r = this.dynamicProperties.length; for (t = 0; t < r; t += 1) this.dynamicProperties[t].getValue(), this.dynamicProperties[t]._mdf && (this._mdf = !0); }, initDynamicPropertyContainer: function (t) { (this.container = t), (this.dynamicProperties = []), (this._mdf = !1), (this._isAnimated = !1); } }; var pointPool = (function () { function e() { return createTypedArray('float32', 2); } return poolFactory(8, e); })(); function ShapePath() { (this.c = !1), (this._length = 0), (this._maxLength = 8), (this.v = createSizedArray(this._maxLength)), (this.o = createSizedArray(this._maxLength)), (this.i = createSizedArray(this._maxLength)); } (ShapePath.prototype.setPathData = function (e, t) { (this.c = e), this.setLength(t); for (var r = 0; r < t; ) (this.v[r] = pointPool.newElement()), (this.o[r] = pointPool.newElement()), (this.i[r] = pointPool.newElement()), (r += 1); }), (ShapePath.prototype.setLength = function (e) { for (; this._maxLength < e; ) this.doubleArrayLength(); this._length = e; }), (ShapePath.prototype.doubleArrayLength = function () { (this.v = this.v.concat(createSizedArray(this._maxLength))), (this.i = this.i.concat(createSizedArray(this._maxLength))), (this.o = this.o.concat(createSizedArray(this._maxLength))), (this._maxLength *= 2); }), (ShapePath.prototype.setXYAt = function (e, t, r, i, s) { var a; switch ( ((this._length = Math.max(this._length, i + 1)), this._length >= this._maxLength && this.doubleArrayLength(), r) ) { case 'v': a = this.v; break; case 'i': a = this.i; break; case 'o': a = this.o; break; default: a = []; break; } (!a[i] || (a[i] && !s)) && (a[i] = pointPool.newElement()), (a[i][0] = e), (a[i][1] = t); }), (ShapePath.prototype.setTripleAt = function (e, t, r, i, s, a, o, n) { this.setXYAt(e, t, 'v', o, n), this.setXYAt(r, i, 'o', o, n), this.setXYAt(s, a, 'i', o, n); }), (ShapePath.prototype.reverse = function () { var e = new ShapePath(); e.setPathData(this.c, this._length); var t = this.v, r = this.o, i = this.i, s = 0; this.c && (e.setTripleAt( t[0][0], t[0][1], i[0][0], i[0][1], r[0][0], r[0][1], 0, !1 ), (s = 1)); var a = this._length - 1, o = this._length, n; for (n = s; n < o; n += 1) e.setTripleAt( t[a][0], t[a][1], i[a][0], i[a][1], r[a][0], r[a][1], n, !1 ), (a -= 1); return e; }), (ShapePath.prototype.length = function () { return this._length; }); var shapePool = (function () { function e() { return new ShapePath(); } function t(s) { var a = s._length, o; for (o = 0; o < a; o += 1) pointPool.release(s.v[o]), pointPool.release(s.i[o]), pointPool.release(s.o[o]), (s.v[o] = null), (s.i[o] = null), (s.o[o] = null); (s._length = 0), (s.c = !1); } function r(s) { var a = i.newElement(), o, n = s._length === void 0 ? s.v.length : s._length; for (a.setLength(n), a.c = s.c, o = 0; o < n; o += 1) a.setTripleAt( s.v[o][0], s.v[o][1], s.o[o][0], s.o[o][1], s.i[o][0], s.i[o][1], o ); return a; } var i = poolFactory(4, e, t); return (i.clone = r), i; })(); function ShapeCollection() { (this._length = 0), (this._maxLength = 4), (this.shapes = createSizedArray(this._maxLength)); } (ShapeCollection.prototype.addShape = function (e) { this._length === this._maxLength && ((this.shapes = this.shapes.concat( createSizedArray(this._maxLength) )), (this._maxLength *= 2)), (this.shapes[this._length] = e), (this._length += 1); }), (ShapeCollection.prototype.releaseShapes = function () { var e; for (e = 0; e < this._length; e += 1) shapePool.release(this.shapes[e]); this._length = 0; }); var shapeCollectionPool = (function () { var e = { newShapeCollection: s, release: a }, t = 0, r = 4, i = createSizedArray(r); function s() { var o; return t ? ((t -= 1), (o = i[t])) : (o = new ShapeCollection()), o; } function a(o) { var n, l = o._length; for (n = 0; n < l; n += 1) shapePool.release(o.shapes[n]); (o._length = 0), t === r && ((i = pooling.double(i)), (r *= 2)), (i[t] = o), (t += 1); } return e; })(), ShapePropertyFactory = (function () { var e = -999999; function t(u, y, m) { var A = m.lastIndex, T, E, _, I, B, z, G, R, W, H = this.keyframes; if (u < H[0].t - this.offsetTime) (T = H[0].s[0]), (_ = !0), (A = 0); else if (u >= H[H.length - 1].t - this.offsetTime) (T = H[H.length - 1].s ? H[H.length - 1].s[0] : H[H.length - 2].e[0]), (_ = !0); else { for ( var N = A, M = H.length - 1, k = !0, b, C, L; k && ((b = H[N]), (C = H[N + 1]), !(C.t - this.offsetTime > u)); ) N < M - 1 ? (N += 1) : (k = !1); if ( ((L = this.keyframesMetadata[N] || {}), (_ = b.h === 1), (A = N), !_) ) { if (u >= C.t - this.offsetTime) R = 1; else if (u < b.t - this.offsetTime) R = 0; else { var F; L.__fnct ? (F = L.__fnct) : ((F = BezierFactory.getBezierEasing( b.o.x, b.o.y, b.i.x, b.i.y ).get), (L.__fnct = F)), (R = F( (u - (b.t - this.offsetTime)) / (C.t - this.offsetTime - (b.t - this.offsetTime)) )); } E = C.s ? C.s[0] : b.e[0]; } T = b.s[0]; } for ( z = y._length, G = T.i[0].length, m.lastIndex = A, I = 0; I < z; I += 1 ) for (B = 0; B < G; B += 1) (W = _ ? T.i[I][B] : T.i[I][B] + (E.i[I][B] - T.i[I][B]) * R), (y.i[I][B] = W), (W = _ ? T.o[I][B] : T.o[I][B] + (E.o[I][B] - T.o[I][B]) * R), (y.o[I][B] = W), (W = _ ? T.v[I][B] : T.v[I][B] + (E.v[I][B] - T.v[I][B]) * R), (y.v[I][B] = W); } function r() { var u = this.comp.renderedFrame - this.offsetTime, y = this.keyframes[0].t - this.offsetTime, m = this.keyframes[this.keyframes.length - 1].t - this.offsetTime, A = this._caching.lastFrame; return ( (A !== e && ((A < y && u < y) || (A > m && u > m))) || ((this._caching.lastIndex = A < u ? this._caching.lastIndex : 0), this.interpolateShape(u, this.pv, this._caching)), (this._caching.lastFrame = u), this.pv ); } function i() { this.paths = this.localShapeCollection; } function s(u, y) { if (u._length !== y._length || u.c !== y.c) return !1; var m, A = u._length; for (m = 0; m < A; m += 1) if ( u.v[m][0] !== y.v[m][0] || u.v[m][1] !== y.v[m][1] || u.o[m][0] !== y.o[m][0] || u.o[m][1] !== y.o[m][1] || u.i[m][0] !== y.i[m][0] || u.i[m][1] !== y.i[m][1] ) return !1; return !0; } function a(u) { s(this.v, u) || ((this.v = shapePool.clone(u)), this.localShapeCollection.releaseShapes(), this.localShapeCollection.addShape(this.v), (this._mdf = !0), (this.paths = this.localShapeCollection)); } function o() { if (this.elem.globalData.frameId !== this.frameId) { if (!this.effectsSequence.length) { this._mdf = !1; return; } if (this.lock) { this.setVValue(this.pv); return; } (this.lock = !0), (this._mdf = !1); var u; this.kf ? (u = this.pv) : this.data.ks ? (u = this.data.ks.k) : (u = this.data.pt.k); var y, m = this.effectsSequence.length; for (y = 0; y < m; y += 1) u = this.effectsSequence[y](u); this.setVValue(u), (this.lock = !1), (this.frameId = this.elem.globalData.frameId); } } function n(u, y, m) { (this.propType = 'shape'), (this.comp = u.comp), (this.container = u), (this.elem = u), (this.data = y), (this.k = !1), (this.kf = !1), (this._mdf = !1); var A = m === 3 ? y.pt.k : y.ks.k; (this.v = shapePool.clone(A)), (this.pv = shapePool.clone(this.v)), (this.localShapeCollection = shapeCollectionPool.newShapeCollection()), (this.paths = this.localShapeCollection), this.paths.addShape(this.v), (this.reset = i), (this.effectsSequence = []); } function l(u) { this.effectsSequence.push(u), this.container.addDynamicProperty(this); } (n.prototype.interpolateShape = t), (n.prototype.getValue = o), (n.prototype.setVValue = a), (n.prototype.addEffect = l); function f(u, y, m) { (this.propType = 'shape'), (this.comp = u.comp), (this.elem = u), (this.container = u), (this.offsetTime = u.data.st), (this.keyframes = m === 3 ? y.pt.k : y.ks.k), (this.keyframesMetadata = []), (this.k = !0), (this.kf = !0); var A = this.keyframes[0].s[0].i.length; (this.v = shapePool.newElement()), this.v.setPathData(this.keyframes[0].s[0].c, A), (this.pv = shapePool.clone(this.v)), (this.localShapeCollection = shapeCollectionPool.newShapeCollection()), (this.paths = this.localShapeCollection), this.paths.addShape(this.v), (this.lastFrame = e), (this.reset = i), (this._caching = { lastFrame: e, lastIndex: 0 }), (this.effectsSequence = [r.bind(this)]); } (f.prototype.getValue = o), (f.prototype.interpolateShape = t), (f.prototype.setVValue = a), (f.prototype.addEffect = l); var g = (function () { var u = roundCorner; function y(m, A) { (this.v = shapePool.newElement()), this.v.setPathData(!0, 4), (this.localShapeCollection = shapeCollectionPool.newShapeCollection()), (this.paths = this.localShapeCollection), this.localShapeCollection.addShape(this.v), (this.d = A.d), (this.elem = m), (this.comp = m.comp), (this.frameId = -1), this.initDynamicPropertyContainer(m), (this.p = PropertyFactory.getProp(m, A.p, 1, 0, this)), (this.s = PropertyFactory.getProp(m, A.s, 1, 0, this)), this.dynamicProperties.length ? (this.k = !0) : ((this.k = !1), this.convertEllToPath()); } return ( (y.prototype = { reset: i, getValue: function () { this.elem.globalData.frameId !== this.frameId && ((this.frameId = this.elem.globalData.frameId), this.iterateDynamicProperties(), this._mdf && this.convertEllToPath()); }, convertEllToPath: function () { var A = this.p.v[0], T = this.p.v[1], E = this.s.v[0] / 2, _ = this.s.v[1] / 2, I = this.d !== 3, B = this.v; (B.v[0][0] = A), (B.v[0][1] = T - _), (B.v[1][0] = I ? A + E : A - E), (B.v[1][1] = T), (B.v[2][0] = A), (B.v[2][1] = T + _), (B.v[3][0] = I ? A - E : A + E), (B.v[3][1] = T), (B.i[0][0] = I ? A - E * u : A + E * u), (B.i[0][1] = T - _), (B.i[1][0] = I ? A + E : A - E), (B.i[1][1] = T - _ * u), (B.i[2][0] = I ? A + E * u : A - E * u), (B.i[2][1] = T + _), (B.i[3][0] = I ? A - E : A + E), (B.i[3][1] = T + _ * u), (B.o[0][0] = I ? A + E * u : A - E * u), (B.o[0][1] = T - _), (B.o[1][0] = I ? A + E : A - E), (B.o[1][1] = T + _ * u), (B.o[2][0] = I ? A - E * u : A + E * u), (B.o[2][1] = T + _), (B.o[3][0] = I ? A - E : A + E), (B.o[3][1] = T - _ * u); } }), extendPrototype([DynamicPropertyContainer], y), y ); })(), S = (function () { function u(y, m) { (this.v = shapePool.newElement()), this.v.setPathData(!0, 0), (this.elem = y), (this.comp = y.comp), (this.data = m), (this.frameId = -1), (this.d = m.d), this.initDynamicPropertyContainer(y), m.sy === 1 ? ((this.ir = PropertyFactory.getProp(y, m.ir, 0, 0, this)), (this.is = PropertyFactory.getProp( y, m.is, 0, 0.01, this )), (this.convertToPath = this.convertStarToPath)) : (this.convertToPath = this.convertPolygonToPath), (this.pt = PropertyFactory.getProp(y, m.pt, 0, 0, this)), (this.p = PropertyFactory.getProp(y, m.p, 1, 0, this)), (this.r = PropertyFactory.getProp( y, m.r, 0, degToRads, this )), (this.or = PropertyFactory.getProp(y, m.or, 0, 0, this)), (this.os = PropertyFactory.getProp(y, m.os, 0, 0.01, this)), (this.localShapeCollection = shapeCollectionPool.newShapeCollection()), this.localShapeCollection.addShape(this.v), (this.paths = this.localShapeCollection), this.dynamicProperties.length ? (this.k = !0) : ((this.k = !1), this.convertToPath()); } return ( (u.prototype = { reset: i, getValue: function () { this.elem.globalData.frameId !== this.frameId && ((this.frameId = this.elem.globalData.frameId), this.iterateDynamicProperties(), this._mdf && this.convertToPath()); }, convertStarToPath: function () { var m = Math.floor(this.pt.v) * 2, A = (Math.PI * 2) / m, T = !0, E = this.or.v, _ = this.ir.v, I = this.os.v, B = this.is.v, z = (2 * Math.PI * E) / (m * 2), G = (2 * Math.PI * _) / (m * 2), R, W, H, N, M = -Math.PI / 2; M += this.r.v; var k = this.data.d === 3 ? -1 : 1; for (this.v._length = 0, R = 0; R < m; R += 1) { (W = T ? E : _), (H = T ? I : B), (N = T ? z : G); var b = W * Math.cos(M), C = W * Math.sin(M), L = b === 0 && C === 0 ? 0 : C / Math.sqrt(b * b + C * C), F = b === 0 && C === 0 ? 0 : -b / Math.sqrt(b * b + C * C); (b += +this.p.v[0]), (C += +this.p.v[1]), this.v.setTripleAt( b, C, b - L * N * H * k, C - F * N * H * k, b + L * N * H * k, C + F * N * H * k, R, !0 ), (T = !T), (M += A * k); } }, convertPolygonToPath: function () { var m = Math.floor(this.pt.v), A = (Math.PI * 2) / m, T = this.or.v, E = this.os.v, _ = (2 * Math.PI * T) / (m * 4), I, B = -Math.PI * 0.5, z = this.data.d === 3 ? -1 : 1; for ( B += this.r.v, this.v._length = 0, I = 0; I < m; I += 1 ) { var G = T * Math.cos(B), R = T * Math.sin(B), W = G === 0 && R === 0 ? 0 : R / Math.sqrt(G * G + R * R), H = G === 0 && R === 0 ? 0 : -G / Math.sqrt(G * G + R * R); (G += +this.p.v[0]), (R += +this.p.v[1]), this.v.setTripleAt( G, R, G - W * _ * E * z, R - H * _ * E * z, G + W * _ * E * z, R + H * _ * E * z, I, !0 ), (B += A * z); } (this.paths.length = 0), (this.paths[0] = this.v); } }), extendPrototype([DynamicPropertyContainer], u), u ); })(), c = (function () { function u(y, m) { (this.v = shapePool.newElement()), (this.v.c = !0), (this.localShapeCollection = shapeCollectionPool.newShapeCollection()), this.localShapeCollection.addShape(this.v), (this.paths = this.localShapeCollection), (this.elem = y), (this.comp = y.comp), (this.frameId = -1), (this.d = m.d), this.initDynamicPropertyContainer(y), (this.p = PropertyFactory.getProp(y, m.p, 1, 0, this)), (this.s = PropertyFactory.getProp(y, m.s, 1, 0, this)), (this.r = PropertyFactory.getProp(y, m.r, 0, 0, this)), this.dynamicProperties.length ? (this.k = !0) : ((this.k = !1), this.convertRectToPath()); } return ( (u.prototype = { convertRectToPath: function () { var m = this.p.v[0], A = this.p.v[1], T = this.s.v[0] / 2, E = this.s.v[1] / 2, _ = bmMin(T, E, this.r.v), I = _ * (1 - roundCorner); (this.v._length = 0), this.d === 2 || this.d === 1 ? (this.v.setTripleAt( m + T, A - E + _, m + T, A - E + _, m + T, A - E + I, 0, !0 ), this.v.setTripleAt( m + T, A + E - _, m + T, A + E - I, m + T, A + E - _, 1, !0 ), _ !== 0 ? (this.v.setTripleAt( m + T - _, A + E, m + T - _, A + E, m + T - I, A + E, 2, !0 ), this.v.setTripleAt( m - T + _, A + E, m - T + I, A + E, m - T + _, A + E, 3, !0 ), this.v.setTripleAt( m - T, A + E - _, m - T, A + E - _, m - T, A + E - I, 4, !0 ), this.v.setTripleAt( m - T, A - E + _, m - T, A - E + I, m - T, A - E + _, 5, !0 ), this.v.setTripleAt( m - T + _, A - E, m - T + _, A - E, m - T + I, A - E, 6, !0 ), this.v.setTripleAt( m + T - _, A - E, m + T - I, A - E, m + T - _, A - E, 7, !0 )) : (this.v.setTripleAt( m - T, A + E, m - T + I, A + E, m - T, A + E, 2 ), this.v.setTripleAt( m - T, A - E, m - T, A - E + I, m - T, A - E, 3 ))) : (this.v.setTripleAt( m + T, A - E + _, m + T, A - E + I, m + T, A - E + _, 0, !0 ), _ !== 0 ? (this.v.setTripleAt( m + T - _, A - E, m + T - _, A - E, m + T - I, A - E, 1, !0 ), this.v.setTripleAt( m - T + _, A - E, m - T + I, A - E, m - T + _, A - E, 2, !0 ), this.v.setTripleAt( m - T, A - E + _, m - T, A - E + _, m - T, A - E + I, 3, !0 ), this.v.setTripleAt( m - T, A + E - _, m - T, A + E - I, m - T, A + E - _, 4, !0 ), this.v.setTripleAt( m - T + _, A + E, m - T + _, A + E, m - T + I, A + E, 5, !0 ), this.v.setTripleAt( m + T - _, A + E, m + T - I, A + E, m + T - _, A + E, 6, !0 ), this.v.setTripleAt( m + T, A + E - _, m + T, A + E - _, m + T, A + E - I, 7, !0 )) : (this.v.setTripleAt( m - T, A - E, m - T + I, A - E, m - T, A - E, 1, !0 ), this.v.setTripleAt( m - T, A + E, m - T, A + E - I, m - T, A + E, 2, !0 ), this.v.setTripleAt( m + T, A + E, m + T - I, A + E, m + T, A + E, 3, !0 ))); }, getValue: function () { this.elem.globalData.frameId !== this.frameId && ((this.frameId = this.elem.globalData.frameId), this.iterateDynamicProperties(), this._mdf && this.convertRectToPath()); }, reset: i }), extendPrototype([DynamicPropertyContainer], u), u ); })(); function P(u, y, m) { var A; if (m === 3 || m === 4) { var T = m === 3 ? y.pt : y.ks, E = T.k; E.length ? (A = new f(u, y, m)) : (A = new n(u, y, m)); } else m === 5 ? (A = new c(u, y)) : m === 6 ? (A = new g(u, y)) : m === 7 && (A = new S(u, y)); return A.k && u.addDynamicProperty(A), A; } function d() { return n; } function p() { return f; } var x = {}; return ( (x.getShapeProp = P), (x.getConstructorFunction = d), (x.getKeyframedConstructorFunction = p), x ); })(); /*! Transformation Matrix v2.0 (c) Epistemex 2014-2015 www.epistemex.com By Ken Fyrstenberg Contributions by leeoniya. License: MIT, header required. */ var Matrix = (function () { var e = Math.cos, t = Math.sin, r = Math.tan, i = Math.round; function s() { return ( (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), this ); } function a(b) { if (b === 0) return this; var C = e(b), L = t(b); return this._t(C, -L, 0, 0, L, C, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); } function o(b) { if (b === 0) return this; var C = e(b), L = t(b); return this._t(1, 0, 0, 0, 0, C, -L, 0, 0, L, C, 0, 0, 0, 0, 1); } function n(b) { if (b === 0) return this; var C = e(b), L = t(b); return this._t(C, 0, L, 0, 0, 1, 0, 0, -L, 0, C, 0, 0, 0, 0, 1); } function l(b) { if (b === 0) return this; var C = e(b), L = t(b); return this._t(C, -L, 0, 0, L, C, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); } function f(b, C) { return this._t(1, C, b, 1, 0, 0); } function g(b, C) { return this.shear(r(b), r(C)); } function S(b, C) { var L = e(C), F = t(C); return this._t(L, F, 0, 0, -F, L, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) ._t(1, 0, 0, 0, r(b), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) ._t(L, -F, 0, 0, F, L, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); } function c(b, C, L) { return ( !L && L !== 0 && (L = 1), b === 1 && C === 1 && L === 1 ? this : this._t(b, 0, 0, 0, 0, C, 0, 0, 0, 0, L, 0, 0, 0, 0, 1) ); } function P(b, C, L, F, U, D, V, O, j, $, J, X, Y, K, Z, Q) { return ( (this.props[0] = b), (this.props[1] = C), (this.props[2] = L), (this.props[3] = F), (this.props[4] = U), (this.props[5] = D), (this.props[6] = V), (this.props[7] = O), (this.props[8] = j), (this.props[9] = $), (this.props[10] = J), (this.props[11] = X), (this.props[12] = Y), (this.props[13] = K), (this.props[14] = Z), (this.props[15] = Q), this ); } function d(b, C, L) { return ( (L = L || 0), b !== 0 || C !== 0 || L !== 0 ? this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, b, C, L, 1) : this ); } function p(b, C, L, F, U, D, V, O, j, $, J, X, Y, K, Z, Q) { var q = this.props; if ( b === 1 && C === 0 && L === 0 && F === 0 && U === 0 && D === 1 && V === 0 && O === 0 && j === 0 && $ === 0 && J === 1 && X === 0 ) return ( (q[12] = q[12] * b + q[15] * Y), (q[13] = q[13] * D + q[15] * K), (q[14] = q[14] * J + q[15] * Z), (q[15] *= Q), (this._identityCalculated = !1), this ); var ee = q[0], te = q[1], ne = q[2], ae = q[3], oe = q[4], le = q[5], re = q[6], he = q[7], fe = q[8], ie = q[9], ce = q[10], se = q[11], pe = q[12], ue = q[13], de = q[14], me = q[15]; return ( (q[0] = ee * b + te * U + ne * j + ae * Y), (q[1] = ee * C + te * D + ne * $ + ae * K), (q[2] = ee * L + te * V + ne * J + ae * Z), (q[3] = ee * F + te * O + ne * X + ae * Q), (q[4] = oe * b + le * U + re * j + he * Y), (q[5] = oe * C + le * D + re * $ + he * K), (q[6] = oe * L + le * V + re * J + he * Z), (q[7] = oe * F + le * O + re * X + he * Q), (q[8] = fe * b + ie * U + ce * j + se * Y), (q[9] = fe * C + ie * D + ce * $ + se * K), (q[10] = fe * L + ie * V + ce * J + se * Z), (q[11] = fe * F + ie * O + ce * X + se * Q), (q[12] = pe * b + ue * U + de * j + me * Y), (q[13] = pe * C + ue * D + de * $ + me * K), (q[14] = pe * L + ue * V + de * J + me * Z), (q[15] = pe * F + ue * O + de * X + me * Q), (this._identityCalculated = !1), this ); } function x(b) { var C = b.props; return this.transform( C[0], C[1], C[2], C[3], C[4], C[5], C[6], C[7], C[8], C[9], C[10], C[11], C[12], C[13], C[14], C[15] ); } function u() { return ( this._identityCalculated || ((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 )), (this._identityCalculated = !0)), this._identity ); } function y(b) { for (var C = 0; C < 16; ) { if (b.props[C] !== this.props[C]) return !1; C += 1; } return !0; } function m(b) { var C; for (C = 0; C < 16; C += 1) b.props[C] = this.props[C]; return b; } function A(b) { var C; for (C = 0; C < 16; C += 1) this.props[C] = b[C]; } function T(b, C, L) { return { x: b * this.props[0] + C * this.props[4] + L * this.props[8] + this.props[12], y: b * this.props[1] + C * this.props[5] + L * this.props[9] + this.props[13], z: b * this.props[2] + C * this.props[6] + L * this.props[10] + this.props[14] }; } function E(b, C, L) { return ( b * this.props[0] + C * this.props[4] + L * this.props[8] + this.props[12] ); } function _(b, C, L) { return ( b * this.props[1] + C * this.props[5] + L * this.props[9] + this.props[13] ); } function I(b, C, L) { return ( b * this.props[2] + C * this.props[6] + L * this.props[10] + this.props[14] ); } function B() { var b = this.props[0] * this.props[5] - this.props[1] * this.props[4], C = this.props[5] / b, L = -this.props[1] / b, F = -this.props[4] / b, U = this.props[0] / b, D = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / b, V = -( this.props[0] * this.props[13] - this.props[1] * this.props[12] ) / b, O = new Matrix(); return ( (O.props[0] = C), (O.props[1] = L), (O.props[4] = F), (O.props[5] = U), (O.props[12] = D), (O.props[13] = V), O ); } function z(b) { var C = this.getInverseMatrix(); return C.applyToPointArray(b[0], b[1], b[2] || 0); } function G(b) { var C, L = b.length, F = []; for (C = 0; C < L; C += 1) F[C] = z(b[C]); return F; } function R(b, C, L) { var F = createTypedArray('float32', 6); if (this.isIdentity()) (F[0] = b[0]), (F[1] = b[1]), (F[2] = C[0]), (F[3] = C[1]), (F[4] = L[0]), (F[5] = L[1]); else { var U = this.props[0], D = this.props[1], V = this.props[4], O = this.props[5], j = this.props[12], $ = this.props[13]; (F[0] = b[0] * U + b[1] * V + j), (F[1] = b[0] * D + b[1] * O + $), (F[2] = C[0] * U + C[1] * V + j), (F[3] = C[0] * D + C[1] * O + $), (F[4] = L[0] * U + L[1] * V + j), (F[5] = L[0] * D + L[1] * O + $); } return F; } function W(b, C, L) { var F; return ( this.isIdentity() ? (F = [b, C, L]) : (F = [ b * this.props[0] + C * this.props[4] + L * this.props[8] + this.props[12], b * this.props[1] + C * this.props[5] + L * this.props[9] + this.props[13], b * this.props[2] + C * this.props[6] + L * this.props[10] + this.props[14] ]), F ); } function H(b, C) { if (this.isIdentity()) return b + ',' + C; var L = this.props; return ( Math.round((b * L[0] + C * L[4] + L[12]) * 100) / 100 + ',' + Math.round((b * L[1] + C * L[5] + L[13]) * 100) / 100 ); } function N() { for (var b = 0, C = this.props, L = 'matrix3d(', F = 1e4; b < 16; ) (L += i(C[b] * F) / F), (L += b === 15 ? ')' : ','), (b += 1); return L; } function M(b) { var C = 1e4; return (b < 1e-6 && b > 0) || (b > -1e-6 && b < 0) ? i(b * C) / C : b; } function k() { var b = this.props, C = M(b[0]), L = M(b[1]), F = M(b[4]), U = M(b[5]), D = M(b[12]), V = M(b[13]); return ( 'matrix(' + C + ',' + L + ',' + F + ',' + U + ',' + D + ',' + V + ')' ); } return function () { (this.reset = s), (this.rotate = a), (this.rotateX = o), (this.rotateY = n), (this.rotateZ = l), (this.skew = g), (this.skewFromAxis = S), (this.shear = f), (this.scale = c), (this.setTransform = P), (this.translate = d), (this.transform = p), (this.multiply = x), (this.applyToPoint = T), (this.applyToX = E), (this.applyToY = _), (this.applyToZ = I), (this.applyToPointArray = W), (this.applyToTriplePoints = R), (this.applyToPointStringified = H), (this.toCSS = N), (this.to2dCSS = k), (this.clone = m), (this.cloneFromProps = A), (this.equals = y), (this.inversePoints = G), (this.inversePoint = z), (this.getInverseMatrix = B), (this._t = this.transform), (this.isIdentity = u), (this._identity = !0), (this._identityCalculated = !1), (this.props = createTypedArray('float32', 16)), this.reset(); }; })(); function _typeof$3(e) { '@babel/helpers - typeof'; return ( typeof Symbol == 'function' && typeof Symbol.iterator == 'symbol' ? (_typeof$3 = function (r) { return typeof r; }) : (_typeof$3 = function (r) { return r && typeof Symbol == 'function' && r.constructor === Symbol && r !== Symbol.prototype ? 'symbol' : typeof r; }), _typeof$3(e) ); } var lottie = {}; function setLocation(e) { setLocationHref(e); } function searchAnimations() { animationManager.searchAnimations(); } function setSubframeRendering(e) { setSubframeEnabled(e); } function setPrefix(e) { setIdPrefix(e); } function loadAnimation(e) { return animationManager.loadAnimation(e); } function setQuality(e) { if (typeof e == 'string') switch (e) { case 'high': setDefaultCurveSegments(200); break; default: case 'medium': setDefaultCurveSegments(50); break; case 'low': setDefaultCurveSegments(10); break; } else !isNaN(e) && e > 1 && setDefaultCurveSegments(e); } function inBrowser() { return typeof navigator < 'u'; } function installPlugin(e, t) { e === 'expressions' && setExpressionsPlugin(t); } function getFactory(e) { switch (e) { case 'propertyFactory': return PropertyFactory; case 'shapePropertyFactory': return ShapePropertyFactory; case 'matrix': return Matrix; default: return null; } } (lottie.play = animationManager.play), (lottie.pause = animationManager.pause), (lottie.setLocationHref = setLocation), (lottie.togglePause = animationManager.togglePause), (lottie.setSpeed = animationManager.setSpeed), (lottie.setDirection = animationManager.setDirection), (lottie.stop = animationManager.stop), (lottie.searchAnimations = searchAnimations), (lottie.registerAnimation = animationManager.registerAnimation), (lottie.loadAnimation = loadAnimation), (lottie.setSubframeRendering = setSubframeRendering), (lottie.resize = animationManager.resize), (lottie.goToAndStop = animationManager.goToAndStop), (lottie.destroy = animationManager.destroy), (lottie.setQuality = setQuality), (lottie.inBrowser = inBrowser), (lottie.installPlugin = installPlugin), (lottie.freeze = animationManager.freeze), (lottie.unfreeze = animationManager.unfreeze), (lottie.setVolume = animationManager.setVolume), (lottie.mute = animationManager.mute), (lottie.unmute = animationManager.unmute), (lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations), (lottie.useWebWorker = setWebWorker), (lottie.setIDPrefix = setPrefix), (lottie.__getFactory = getFactory), (lottie.version = '5.12.2'); function checkReady() { document.readyState === 'complete' && (clearInterval(readyStateCheckInterval), searchAnimations()); } function getQueryVariable(e) { for (var t = queryString.split('&'), r = 0; r < t.length; r += 1) { var i = t[r].split('='); if (decodeURIComponent(i[0]) == e) return decodeURIComponent(i[1]); } return null; } var queryString = ''; { var scripts = document.getElementsByTagName('script'), index = scripts.length - 1, myScript = scripts[index] || { src: '' }; (queryString = myScript.src ? myScript.src.replace(/^[^\?]+\??/, '') : ''), getQueryVariable('renderer'); } var readyStateCheckInterval = setInterval(checkReady, 100); try { _typeof$3(exports) !== 'object' && (window.bodymovin = lottie); } catch (e) {} var ShapeModifiers = (function () { var e = {}, t = {}; (e.registerModifier = r), (e.getModifier = i); function r(s, a) { t[s] || (t[s] = a); } function i(s, a, o) { return new t[s](a, o); } return e; })(); function ShapeModifier() {} (ShapeModifier.prototype.initModifierProperties = function () {}), (ShapeModifier.prototype.addShapeToModifier = function () {}), (ShapeModifier.prototype.addShape = function (e) { if (!this.closed) { e.sh.container.addDynamicProperty(e.sh); var t = { shape: e.sh, data: e, localShapeCollection: shapeCollectionPool.newShapeCollection() }; this.shapes.push(t), this.addShapeToModifier(t), this._isAnimated && e.setAsAnimated(); } }), (ShapeModifier.prototype.init = function (e, t) { (this.shapes = []), (this.elem = e), this.initDynamicPropertyContainer(e), this.initModifierProperties(e, t), (this.frameId = initialDefaultFrame), (this.closed = !1), (this.k = !1), this.dynamicProperties.length ? (this.k = !0) : this.getValue(!0); }), (ShapeModifier.prototype.processKeys = function () { this.elem.globalData.frameId !== this.frameId && ((this.frameId = this.elem.globalData.frameId), this.iterateDynamicProperties()); }), extendPrototype([DynamicPropertyContainer], ShapeModifier); function TrimModifier() {} extendPrototype([ShapeModifier], TrimModifier), (TrimModifier.prototype.initModifierProperties = function (e, t) { (this.s = PropertyFactory.getProp(e, t.s, 0, 0.01, this)), (this.e = PropertyFactory.getProp(e, t.e, 0, 0.01, this)), (this.o = PropertyFactory.getProp(e, t.o, 0, 0, this)), (this.sValue = 0), (this.eValue = 0), (this.getValue = this.processKeys), (this.m = t.m), (this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length); }), (TrimModifier.prototype.addShapeToModifier = function (e) { e.pathsData = []; }), (TrimModifier.prototype.calculateShapeEdges = function (e, t, r, i, s) { var a = []; t <= 1 ? a.push({ s: e, e: t }) : e >= 1 ? a.push({ s: e - 1, e: t - 1 }) : (a.push({ s: e, e: 1 }), a.push({ s: 0, e: t - 1 })); var o = [], n, l = a.length, f; for (n = 0; n < l; n += 1) if (((f = a[n]), !(f.e * s < i || f.s * s > i + r))) { var g, S; f.s * s <= i ? (g = 0) : (g = (f.s * s - i) / r), f.e * s >= i + r ? (S = 1) : (S = (f.e * s - i) / r), o.push([g, S]); } return o.length || o.push([0, 0]), o; }), (TrimModifier.prototype.releasePathsData = function (e) { var t, r = e.length; for (t = 0; t < r; t += 1) segmentsLengthPool.release(e[t]); return (e.length = 0), e; }), (TrimModifier.prototype.processShapes = function (e) { var t, r; if (this._mdf || e) { var i = (this.o.v % 360) / 360; if ( (i < 0 && (i += 1), this.s.v > 1 ? (t = 1 + i) : this.s.v < 0 ? (t = 0 + i) : (t = this.s.v + i), this.e.v > 1 ? (r = 1 + i) : this.e.v < 0 ? (r = 0 + i) : (r = this.e.v + i), t > r) ) { var s = t; (t = r), (r = s); } (t = Math.round(t * 1e4) * 1e-4), (r = Math.round(r * 1e4) * 1e-4), (this.sValue = t), (this.eValue = r); } else (t = this.sValue), (r = this.eValue); var a, o, n = this.shapes.length, l, f, g, S, c, P = 0; if (r === t) for (o = 0; o < n; o += 1) this.shapes[o].localShapeCollection.releaseShapes(), (this.shapes[o].shape._mdf = !0), (this.shapes[o].shape.paths = this.shapes[o].localShapeCollection), this._mdf && (this.shapes[o].pathsData.length = 0); else if ((r === 1 && t === 0) || (r === 0 && t === 1)) { if (this._mdf) for (o = 0; o < n; o += 1) (this.shapes[o].pathsData.length = 0), (this.shapes[o].shape._mdf = !0); } else { var d = [], p, x; for (o = 0; o < n; o += 1) if ( ((p = this.shapes[o]), !p.shape._mdf && !this._mdf && !e && this.m !== 2) ) p.shape.paths = p.localShapeCollection; else { if ( ((a = p.shape.paths), (f = a._length), (c = 0), !p.shape._mdf && p.pathsData.length) ) c = p.totalShapeLength; else { for ( g = this.releasePathsData(p.pathsData), l = 0; l < f; l += 1 ) (S = bez.getSegmentsLength(a.shapes[l])), g.push(S), (c += S.totalLength); (p.totalShapeLength = c), (p.pathsData = g); } (P += c), (p.shape._mdf = !0); } var u = t, y = r, m = 0, A; for (o = n - 1; o >= 0; o -= 1) if (((p = this.shapes[o]), p.shape._mdf)) { for ( x = p.localShapeCollection, x.releaseShapes(), this.m === 2 && n > 1 ? ((A = this.calculateShapeEdges( t, r, p.totalShapeLength, m, P )), (m += p.totalShapeLength)) : (A = [[u, y]]), f = A.length, l = 0; l < f; l += 1 ) { (u = A[l][0]), (y = A[l][1]), (d.length = 0), y <= 1 ? d.push({ s: p.totalShapeLength * u, e: p.totalShapeLength * y }) : u >= 1 ? d.push({ s: p.totalShapeLength * (u - 1), e: p.totalShapeLength * (y - 1) }) : (d.push({ s: p.totalShapeLength * u, e: p.totalShapeLength }), d.push({ s: 0, e: p.totalShapeLength * (y - 1) })); var T = this.addShapes(p, d[0]); if (d[0].s !== d[0].e) { if (d.length > 1) { var E = p.shape.paths.shapes[p.shape.paths._length - 1]; if (E.c) { var _ = T.pop(); this.addPaths(T, x), (T = this.addShapes(p, d[1], _)); } else this.addPaths(T, x), (T = this.addShapes(p, d[1])); } this.addPaths(T, x); } } p.shape.paths = x; } } }), (TrimModifier.prototype.addPaths = function (e, t) { var r, i = e.length; for (r = 0; r < i; r += 1) t.addShape(e[r]); }), (TrimModifier.prototype.addSegment = function (e, t, r, i, s, a, o) { s.setXYAt(t[0], t[1], 'o', a), s.setXYAt(r[0], r[1], 'i', a + 1), o && s.setXYAt(e[0], e[1], 'v', a), s.setXYAt(i[0], i[1], 'v', a + 1); }), (TrimModifier.prototype.addSegmentFromArray = function (e, t, r, i) { t.setXYAt(e[1], e[5], 'o', r), t.setXYAt(e[2], e[6], 'i', r + 1), i && t.setXYAt(e[0], e[4], 'v', r), t.setXYAt(e[3], e[7], 'v', r + 1); }), (TrimModifier.prototype.addShapes = function (e, t, r) { var i = e.pathsData, s = e.shape.paths.shapes, a, o = e.shape.paths._length, n, l, f = 0, g, S, c, P, d = [], p, x = !0; for ( r ? ((S = r._length), (p = r._length)) : ((r = shapePool.newElement()), (S = 0), (p = 0)), d.push(r), a = 0; a < o; a += 1 ) { for ( c = i[a].lengths, r.c = s[a].c, l = s[a].c ? c.length : c.length + 1, n = 1; n < l; n += 1 ) if (((g = c[n - 1]), f + g.addedLength < t.s)) (f += g.addedLength), (r.c = !1); else if (f > t.e) { r.c = !1; break; } else t.s <= f && t.e >= f + g.addedLength ? (this.addSegment( s[a].v[n - 1], s[a].o[n - 1], s[a].i[n], s[a].v[n], r, S, x ), (x = !1)) : ((P = bez.getNewSegment( s[a].v[n - 1], s[a].v[n], s[a].o[n - 1], s[a].i[n], (t.s - f) / g.addedLength, (t.e - f) / g.addedLength, c[n - 1] )), this.addSegmentFromArray(P, r, S, x), (x = !1), (r.c = !1)), (f += g.addedLength), (S += 1); if (s[a].c && c.length) { if (((g = c[n - 1]), f <= t.e)) { var u = c[n - 1].addedLength; t.s <= f && t.e >= f + u ? (this.addSegment( s[a].v[n - 1], s[a].o[n - 1], s[a].i[0], s[a].v[0], r, S, x ), (x = !1)) : ((P = bez.getNewSegment( s[a].v[n - 1], s[a].v[0], s[a].o[n - 1], s[a].i[0], (t.s - f) / u, (t.e - f) / u, c[n - 1] )), this.addSegmentFromArray(P, r, S, x), (x = !1), (r.c = !1)); } else r.c = !1; (f += g.addedLength), (S += 1); } if ( (r._length && (r.setXYAt(r.v[p][0], r.v[p][1], 'i', p), r.setXYAt( r.v[r._length - 1][0], r.v[r._length - 1][1], 'o', r._length - 1 )), f > t.e) ) break; a < o - 1 && ((r = shapePool.newElement()), (x = !0), d.push(r), (S = 0)); } return d; }); function PuckerAndBloatModifier() {} extendPrototype([ShapeModifier], PuckerAndBloatModifier), (PuckerAndBloatModifier.prototype.initModifierProperties = function ( e, t ) { (this.getValue = this.processKeys), (this.amount = PropertyFactory.getProp(e, t.a, 0, null, this)), (this._isAnimated = !!this.amount.effectsSequence.length); }), (PuckerAndBloatModifier.prototype.processPath = function (e, t) { var r = t / 100, i = [0, 0], s = e._length, a = 0; for (a = 0; a < s; a += 1) (i[0] += e.v[a][0]), (i[1] += e.v[a][1]); (i[0] /= s), (i[1] /= s); var o = shapePool.newElement(); o.c = e.c; var n, l, f, g, S, c; for (a = 0; a < s; a += 1) (n = e.v[a][0] + (i[0] - e.v[a][0]) * r), (l = e.v[a][1] + (i[1] - e.v[a][1]) * r), (f = e.o[a][0] + (i[0] - e.o[a][0]) * -r), (g = e.o[a][1] + (i[1] - e.o[a][1]) * -r), (S = e.i[a][0] + (i[0] - e.i[a][0]) * -r), (c = e.i[a][1] + (i[1] - e.i[a][1]) * -r), o.setTripleAt(n, l, f, g, S, c, a); return o; }), (PuckerAndBloatModifier.prototype.processShapes = function (e) { var t, r, i = this.shapes.length, s, a, o = this.amount.v; if (o !== 0) { var n, l; for (r = 0; r < i; r += 1) { if ( ((n = this.shapes[r]), (l = n.localShapeCollection), !(!n.shape._mdf && !this._mdf && !e)) ) for ( l.releaseShapes(), n.shape._mdf = !0, t = n.shape.paths.shapes, a = n.shape.paths._length, s = 0; s < a; s += 1 ) l.addShape(this.processPath(t[s], o)); n.shape.paths = n.localShapeCollection; } } this.dynamicProperties.length || (this._mdf = !1); }); var TransformPropertyFactory = (function () { var e = [0, 0]; function t(l) { var f = this._mdf; this.iterateDynamicProperties(), (this._mdf = this._mdf || f), this.a && l.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]), this.s && l.scale(this.s.v[0], this.s.v[1], this.s.v[2]), this.sk && l.skewFromAxis(-this.sk.v, this.sa.v), this.r ? l.rotate(-this.r.v) : l .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]), this.data.p.s ? this.data.p.z ? l.translate(this.px.v, this.py.v, -this.pz.v) : l.translate(this.px.v, this.py.v, 0) : l.translate(this.p.v[0], this.p.v[1], -this.p.v[2]); } function r(l) { if (this.elem.globalData.frameId !== this.frameId) { if ( (this._isDirty && (this.precalculateMatrix(), (this._isDirty = !1)), this.iterateDynamicProperties(), this._mdf || l) ) { var f; if ( (this.v.cloneFromProps(this.pre.props), this.appliedTransformations < 1 && this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]), this.appliedTransformations < 2 && this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]), this.sk && this.appliedTransformations < 3 && this.v.skewFromAxis(-this.sk.v, this.sa.v), this.r && this.appliedTransformations < 4 ? this.v.rotate(-this.r.v) : !this.r && this.appliedTransformations < 4 && 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]), this.autoOriented) ) { var g, S; if ( ((f = this.elem.globalData.frameRate), this.p && this.p.keyframes && this.p.getValueAtTime) ) this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t ? ((g = this.p.getValueAtTime( (this.p.keyframes[0].t + 0.01) / f, 0 )), (S = this.p.getValueAtTime(this.p.keyframes[0].t / f, 0))) : this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t ? ((g = this.p.getValueAtTime( this.p.keyframes[this.p.keyframes.length - 1].t / f, 0 )), (S = this.p.getValueAtTime( (this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / f, 0 ))) : ((g = this.p.pv), (S = this.p.getValueAtTime( (this.p._caching.lastFrame + this.p.offsetTime - 0.01) / f, this.p.offsetTime ))); else if ( this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime ) { (g = []), (S = []); var c = this.px, P = this.py; c._caching.lastFrame + c.offsetTime <= c.keyframes[0].t ? ((g[0] = c.getValueAtTime( (c.keyframes[0].t + 0.01) / f, 0 )), (g[1] = P.getValueAtTime( (P.keyframes[0].t + 0.01) / f, 0 )), (S[0] = c.getValueAtTime(c.keyframes[0].t / f, 0)), (S[1] = P.getValueAtTime(P.keyframes[0].t / f, 0))) : c._caching.lastFrame + c.offsetTime >= c.keyframes[c.keyframes.length - 1].t ? ((g[0] = c.getValueAtTime( c.keyframes[c.keyframes.length - 1].t / f, 0 )), (g[1] = P.getValueAtTime( P.keyframes[P.keyframes.length - 1].t / f, 0 )), (S[0] = c.getValueAtTime( (c.keyframes[c.keyframes.length - 1].t - 0.01) / f, 0 )), (S[1] = P.getValueAtTime( (P.keyframes[P.keyframes.length - 1].t - 0.01) / f, 0 ))) : ((g = [c.pv, P.pv]), (S[0] = c.getValueAtTime( (c._caching.lastFrame + c.offsetTime - 0.01) / f, c.offsetTime )), (S[1] = P.getValueAtTime( (P._caching.lastFrame + P.offsetTime - 0.01) / f, P.offsetTime ))); } else (S = e), (g = S); this.v.rotate(-Math.atan2(g[1] - S[1], g[0] - S[0])); } this.data.p && this.data.p.s ? this.data.p.z ? this.v.translate(this.px.v, this.py.v, -this.pz.v) : this.v.translate(this.px.v, this.py.v, 0) : this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]); } this.frameId = this.elem.globalData.frameId; } } function i() { if ( ((this.appliedTransformations = 0), this.pre.reset(), !this.a.effectsSequence.length) ) this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]), (this.appliedTransformations = 1); else return; if (!this.s.effectsSequence.length) this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]), (this.appliedTransformations = 2); else return; if (this.sk) if ( !this.sk.effectsSequence.length && !this.sa.effectsSequence.length ) this.pre.skewFromAxis(-this.sk.v, this.sa.v), (this.appliedTransformations = 3); else return; this.r ? this.r.effectsSequence.length || (this.pre.rotate(-this.r.v), (this.appliedTransformations = 4)) : !this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length && (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]), (this.appliedTransformations = 4)); } function s() {} function a(l) { this._addDynamicProperty(l), this.elem.addDynamicProperty(l), (this._isDirty = !0); } function o(l, f, g) { if ( ((this.elem = l), (this.frameId = -1), (this.propType = 'transform'), (this.data = f), (this.v = new Matrix()), (this.pre = new Matrix()), (this.appliedTransformations = 0), this.initDynamicPropertyContainer(g || l), f.p && f.p.s ? ((this.px = PropertyFactory.getProp(l, f.p.x, 0, 0, this)), (this.py = PropertyFactory.getProp(l, f.p.y, 0, 0, this)), f.p.z && (this.pz = PropertyFactory.getProp(l, f.p.z, 0, 0, this))) : (this.p = PropertyFactory.getProp( l, f.p || { k: [0, 0, 0] }, 1, 0, this )), f.rx) ) { if ( ((this.rx = PropertyFactory.getProp(l, f.rx, 0, degToRads, this)), (this.ry = PropertyFactory.getProp(l, f.ry, 0, degToRads, this)), (this.rz = PropertyFactory.getProp(l, f.rz, 0, degToRads, this)), f.or.k[0].ti) ) { var S, c = f.or.k.length; for (S = 0; S < c; S += 1) (f.or.k[S].to = null), (f.or.k[S].ti = null); } (this.or = PropertyFactory.getProp(l, f.or, 1, degToRads, this)), (this.or.sh = !0); } else this.r = PropertyFactory.getProp( l, f.r || { k: 0 }, 0, degToRads, this ); f.sk && ((this.sk = PropertyFactory.getProp(l, f.sk, 0, degToRads, this)), (this.sa = PropertyFactory.getProp(l, f.sa, 0, degToRads, this))), (this.a = PropertyFactory.getProp( l, f.a || { k: [0, 0, 0] }, 1, 0, this )), (this.s = PropertyFactory.getProp( l, f.s || { k: [100, 100, 100] }, 1, 0.01, this )), f.o ? (this.o = PropertyFactory.getProp(l, f.o, 0, 0.01, l)) : (this.o = { _mdf: !1, v: 1 }), (this._isDirty = !0), this.dynamicProperties.length || this.getValue(!0); } (o.prototype = { applyToMatrix: t, getValue: r, precalculateMatrix: i, autoOrient: s }), extendPrototype([DynamicPropertyContainer], o), (o.prototype.addDynamicProperty = a), (o.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty); function n(l, f, g) { return new o(l, f, g); } return { getTransformProperty: n }; })(); function RepeaterModifier() {} extendPrototype([ShapeModifier], RepeaterModifier), (RepeaterModifier.prototype.initModifierProperties = function (e, t) { (this.getValue = this.processKeys), (this.c = PropertyFactory.getProp(e, t.c, 0, null, this)), (this.o = PropertyFactory.getProp(e, t.o, 0, null, this)), (this.tr = TransformPropertyFactory.getTransformProperty( e, t.tr, this )), (this.so = PropertyFactory.getProp(e, t.tr.so, 0, 0.01, this)), (this.eo = PropertyFactory.getProp(e, t.tr.eo, 0, 0.01, this)), (this.data = t), this.dynamicProperties.length || this.getValue(!0), (this._isAnimated = !!this.dynamicProperties.length), (this.pMatrix = new Matrix()), (this.rMatrix = new Matrix()), (this.sMatrix = new Matrix()), (this.tMatrix = new Matrix()), (this.matrix = new Matrix()); }), (RepeaterModifier.prototype.applyTransforms = function ( e, t, r, i, s, a ) { var o = a ? -1 : 1, n = i.s.v[0] + (1 - i.s.v[0]) * (1 - s), l = i.s.v[1] + (1 - i.s.v[1]) * (1 - s); e.translate(i.p.v[0] * o * s, i.p.v[1] * o * s, i.p.v[2]), t.translate(-i.a.v[0], -i.a.v[1], i.a.v[2]), t.rotate(-i.r.v * o * s), t.translate(i.a.v[0], i.a.v[1], i.a.v[2]), r.translate(-i.a.v[0], -i.a.v[1], i.a.v[2]), r.scale(a ? 1 / n : n, a ? 1 / l : l), r.translate(i.a.v[0], i.a.v[1], i.a.v[2]); }), (RepeaterModifier.prototype.init = function (e, t, r, i) { for ( this.elem = e, this.arr = t, this.pos = r, this.elemsData = i, this._currentCopies = 0, this._elements = [], this._groups = [], this.frameId = -1, this.initDynamicPropertyContainer(e), this.initModifierProperties(e, t[r]); r > 0; ) (r -= 1), this._elements.unshift(t[r]); this.dynamicProperties.length ? (this.k = !0) : this.getValue(!0); }), (RepeaterModifier.prototype.resetElements = function (e) { var t, r = e.length; for (t = 0; t < r; t += 1) (e[t]._processed = !1), e[t].ty === 'gr' && this.resetElements(e[t].it); }), (RepeaterModifier.prototype.cloneElements = function (e) { var t = JSON.parse(JSON.stringify(e)); return this.resetElements(t), t; }), (RepeaterModifier.prototype.changeGroupRender = function (e, t) { var r, i = e.length; for (r = 0; r < i; r += 1) (e[r]._render = t), e[r].ty === 'gr' && this.changeGroupRender(e[r].it, t); }), (RepeaterModifier.prototype.processShapes = function (e) { var t, r, i, s, a, o = !1; if (this._mdf || e) { var n = Math.ceil(this.c.v); if (this._groups.length < n) { for (; this._groups.length < n; ) { var l = { it: this.cloneElements(this._elements), ty: 'gr' }; l.it.push({ a: { a: 0, ix: 1, k: [0, 0] }, nm: 'Transform', o: { a: 0, ix: 7, k: 100 }, p: { a: 0, ix: 2, k: [0, 0] }, r: { a: 1, ix: 6, k: [ { s: 0, e: 0, t: 0 }, { s: 0, e: 0, t: 1 } ] }, s: { a: 0, ix: 3, k: [100, 100] }, sa: { a: 0, ix: 5, k: 0 }, sk: { a: 0, ix: 4, k: 0 }, ty: 'tr' }), this.arr.splice(0, 0, l), this._groups.splice(0, 0, l), (this._currentCopies += 1); } this.elem.reloadShapes(), (o = !0); } a = 0; var f; for (i = 0; i <= this._groups.length - 1; i += 1) { if ( ((f = a < n), (this._groups[i]._render = f), this.changeGroupRender(this._groups[i].it, f), !f) ) { var g = this.elemsData[i].it, S = g[g.length - 1]; S.transform.op.v !== 0 ? ((S.transform.op._mdf = !0), (S.transform.op.v = 0)) : (S.transform.op._mdf = !1); } a += 1; } this._currentCopies = n; var c = this.o.v, P = c % 1, d = c > 0 ? Math.floor(c) : Math.ceil(c), p = this.pMatrix.props, x = this.rMatrix.props, u = this.sMatrix.props; this.pMatrix.reset(), this.rMatrix.reset(), this.sMatrix.reset(), this.tMatrix.reset(), this.matrix.reset(); var y = 0; if (c > 0) { for (; y < d; ) this.applyTransforms( this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, !1 ), (y += 1); P && (this.applyTransforms( this.pMatrix, this.rMatrix, this.sMatrix, this.tr, P, !1 ), (y += P)); } else if (c < 0) { for (; y > d; ) this.applyTransforms( this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, !0 ), (y -= 1); P && (this.applyTransforms( this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -P, !0 ), (y -= P)); } (i = this.data.m === 1 ? 0 : this._currentCopies - 1), (s = this.data.m === 1 ? 1 : -1), (a = this._currentCopies); for (var m, A; a; ) { if ( ((t = this.elemsData[i].it), (r = t[t.length - 1].transform.mProps.v.props), (A = r.length), (t[t.length - 1].transform.mProps._mdf = !0), (t[t.length - 1].transform.op._mdf = !0), (t[t.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1))), y !== 0) ) { for ( ((i !== 0 && s === 1) || (i !== this._currentCopies - 1 && s === -1)) && this.applyTransforms( this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, !1 ), this.matrix.transform( x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15] ), this.matrix.transform( u[0], u[1], u[2], u[3], u[4], u[5], u[6], u[7], u[8], u[9], u[10], u[11], u[12], u[13], u[14], u[15] ), this.matrix.transform( p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7], p[8], p[9], p[10], p[11], p[12], p[13], p[14], p[15] ), m = 0; m < A; m += 1 ) r[m] = this.matrix.props[m]; this.matrix.reset(); } else for (this.matrix.reset(), m = 0; m < A; m += 1) r[m] = this.matrix.props[m]; (y += 1), (a -= 1), (i += s); } } else for (a = this._currentCopies, i = 0, s = 1; a; ) (t = this.elemsData[i].it), (r = t[t.length - 1].transform.mProps.v.props), (t[t.length - 1].transform.mProps._mdf = !1), (t[t.length - 1].transform.op._mdf = !1), (a -= 1), (i += s); return o; }), (RepeaterModifier.prototype.addShape = function () {}); function RoundCornersModifier() {} extendPrototype([ShapeModifier], RoundCornersModifier), (RoundCornersModifier.prototype.initModifierProperties = function ( e, t ) { (this.getValue = this.processKeys), (this.rd = PropertyFactory.getProp(e, t.r, 0, null, this)), (this._isAnimated = !!this.rd.effectsSequence.length); }), (RoundCornersModifier.prototype.processPath = function (e, t) { var r = shapePool.newElement(); r.c = e.c; var i, s = e._length, a, o, n, l, f, g, S = 0, c, P, d, p, x, u; for (i = 0; i < s; i += 1) (a = e.v[i]), (n = e.o[i]), (o = e.i[i]), a[0] === n[0] && a[1] === n[1] && a[0] === o[0] && a[1] === o[1] ? (i === 0 || i === s - 1) && !e.c ? (r.setTripleAt(a[0], a[1], n[0], n[1], o[0], o[1], S), (S += 1)) : (i === 0 ? (l = e.v[s - 1]) : (l = e.v[i - 1]), (f = Math.sqrt( Math.pow(a[0] - l[0], 2) + Math.pow(a[1] - l[1], 2) )), (g = f ? Math.min(f / 2, t) / f : 0), (x = a[0] + (l[0] - a[0]) * g), (c = x), (u = a[1] - (a[1] - l[1]) * g), (P = u), (d = c - (c - a[0]) * roundCorner), (p = P - (P - a[1]) * roundCorner), r.setTripleAt(c, P, d, p, x, u, S), (S += 1), i === s - 1 ? (l = e.v[0]) : (l = e.v[i + 1]), (f = Math.sqrt( Math.pow(a[0] - l[0], 2) + Math.pow(a[1] - l[1], 2) )), (g = f ? Math.min(f / 2, t) / f : 0), (d = a[0] + (l[0] - a[0]) * g), (c = d), (p = a[1] + (l[1] - a[1]) * g), (P = p), (x = c - (c - a[0]) * roundCorner), (u = P - (P - a[1]) * roundCorner), r.setTripleAt(c, P, d, p, x, u, S), (S += 1)) : (r.setTripleAt( e.v[i][0], e.v[i][1], e.o[i][0], e.o[i][1], e.i[i][0], e.i[i][1], S ), (S += 1)); return r; }), (RoundCornersModifier.prototype.processShapes = function (e) { var t, r, i = this.shapes.length, s, a, o = this.rd.v; if (o !== 0) { var n, l; for (r = 0; r < i; r += 1) { if ( ((n = this.shapes[r]), (l = n.localShapeCollection), !(!n.shape._mdf && !this._mdf && !e)) ) for ( l.releaseShapes(), n.shape._mdf = !0, t = n.shape.paths.shapes, a = n.shape.paths._length, s = 0; s < a; s += 1 ) l.addShape(this.processPath(t[s], o)); n.shape.paths = n.localShapeCollection; } } this.dynamicProperties.length || (this._mdf = !1); }); function floatEqual(e, t) { return Math.abs(e - t) * 1e5 <= Math.min(Math.abs(e), Math.abs(t)); } function floatZero(e) { return Math.abs(e) <= 1e-5; } function lerp(e, t, r) { return e * (1 - r) + t * r; } function lerpPoint(e, t, r) { return [lerp(e[0], t[0], r), lerp(e[1], t[1], r)]; } function quadRoots(e, t, r) { if (e === 0) return []; var i = t * t - 4 * e * r; if (i < 0) return []; var s = -t / (2 * e); if (i === 0) return [s]; var a = Math.sqrt(i) / (2 * e); return [s - a, s + a]; } function polynomialCoefficients(e, t, r, i) { return [ -e + 3 * t - 3 * r + i, 3 * e - 6 * t + 3 * r, -3 * e + 3 * t, e ]; } function singlePoint(e) { return new PolynomialBezier(e, e, e, e, !1); } function PolynomialBezier(e, t, r, i, s) { s && pointEqual(e, t) && (t = lerpPoint(e, i, 1 / 3)), s && pointEqual(r, i) && (r = lerpPoint(e, i, 2 / 3)); var a = polynomialCoefficients(e[0], t[0], r[0], i[0]), o = polynomialCoefficients(e[1], t[1], r[1], i[1]); (this.a = [a[0], o[0]]), (this.b = [a[1], o[1]]), (this.c = [a[2], o[2]]), (this.d = [a[3], o[3]]), (this.points = [e, t, r, i]); } (PolynomialBezier.prototype.point = function (e) { return [ ((this.a[0] * e + this.b[0]) * e + this.c[0]) * e + this.d[0], ((this.a[1] * e + this.b[1]) * e + this.c[1]) * e + this.d[1] ]; }), (PolynomialBezier.prototype.derivative = function (e) { return [ (3 * e * this.a[0] + 2 * this.b[0]) * e + this.c[0], (3 * e * this.a[1] + 2 * this.b[1]) * e + this.c[1] ]; }), (PolynomialBezier.prototype.tangentAngle = function (e) { var t = this.derivative(e); return Math.atan2(t[1], t[0]); }), (PolynomialBezier.prototype.normalAngle = function (e) { var t = this.derivative(e); return Math.atan2(t[0], t[1]); }), (PolynomialBezier.prototype.inflectionPoints = function () { var e = this.a[1] * this.b[0] - this.a[0] * this.b[1]; if (floatZero(e)) return []; var t = (-0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1])) / e, r = t * t - ((1 / 3) * (this.b[1] * this.c[0] - this.b[0] * this.c[1])) / e; if (r < 0) return []; var i = Math.sqrt(r); return floatZero(i) ? i > 0 && i < 1 ? [t] : [] : [t - i, t + i].filter(function (s) { return s > 0 && s < 1; }); }), (PolynomialBezier.prototype.split = function (e) { if (e <= 0) return [singlePoint(this.points[0]), this]; if (e >= 1) return [this, singlePoint(this.points[this.points.length - 1])]; var t = lerpPoint(this.points[0], this.points[1], e), r = lerpPoint(this.points[1], this.points[2], e), i = lerpPoint(this.points[2], this.points[3], e), s = lerpPoint(t, r, e), a = lerpPoint(r, i, e), o = lerpPoint(s, a, e); return [ new PolynomialBezier(this.points[0], t, s, o, !0), new PolynomialBezier(o, a, i, this.points[3], !0) ]; }); function extrema(e, t) { var r = e.points[0][t], i = e.points[e.points.length - 1][t]; if (r > i) { var s = i; (i = r), (r = s); } for ( var a = quadRoots(3 * e.a[t], 2 * e.b[t], e.c[t]), o = 0; o < a.length; o += 1 ) if (a[o] > 0 && a[o] < 1) { var n = e.point(a[o])[t]; n < r ? (r = n) : n > i && (i = n); } return { min: r, max: i }; } (PolynomialBezier.prototype.bounds = function () { return { x: extrema(this, 0), y: extrema(this, 1) }; }), (PolynomialBezier.prototype.boundingBox = function () { var e = this.bounds(); return { left: e.x.min, right: e.x.max, top: e.y.min, bottom: e.y.max, width: e.x.max - e.x.min, height: e.y.max - e.y.min, cx: (e.x.max + e.x.min) / 2, cy: (e.y.max + e.y.min) / 2 }; }); function intersectData(e, t, r) { var i = e.boundingBox(); return { cx: i.cx, cy: i.cy, width: i.width, height: i.height, bez: e, t: (t + r) / 2, t1: t, t2: r }; } function splitData(e) { var t = e.bez.split(0.5); return [intersectData(t[0], e.t1, e.t), intersectData(t[1], e.t, e.t2)]; } function boxIntersect(e, t) { return ( Math.abs(e.cx - t.cx) * 2 < e.width + t.width && Math.abs(e.cy - t.cy) * 2 < e.height + t.height ); } function intersectsImpl(e, t, r, i, s, a) { if (boxIntersect(e, t)) { if ( r >= a || (e.width <= i && e.height <= i && t.width <= i && t.height <= i) ) { s.push([e.t, t.t]); return; } var o = splitData(e), n = splitData(t); intersectsImpl(o[0], n[0], r + 1, i, s, a), intersectsImpl(o[0], n[1], r + 1, i, s, a), intersectsImpl(o[1], n[0], r + 1, i, s, a), intersectsImpl(o[1], n[1], r + 1, i, s, a); } } (PolynomialBezier.prototype.intersections = function (e, t, r) { t === void 0 && (t = 2), r === void 0 && (r = 7); var i = []; return ( intersectsImpl( intersectData(this, 0, 1), intersectData(e, 0, 1), 0, t, i, r ), i ); }), (PolynomialBezier.shapeSegment = function (e, t) { var r = (t + 1) % e.length(); return new PolynomialBezier(e.v[t], e.o[t], e.i[r], e.v[r], !0); }), (PolynomialBezier.shapeSegmentInverted = function (e, t) { var r = (t + 1) % e.length(); return new PolynomialBezier(e.v[r], e.i[r], e.o[t], e.v[t], !0); }); function crossProduct(e, t) { return [ e[1] * t[2] - e[2] * t[1], e[2] * t[0] - e[0] * t[2], e[0] * t[1] - e[1] * t[0] ]; } function lineIntersection(e, t, r, i) { var s = [e[0], e[1], 1], a = [t[0], t[1], 1], o = [r[0], r[1], 1], n = [i[0], i[1], 1], l = crossProduct(crossProduct(s, a), crossProduct(o, n)); return floatZero(l[2]) ? null : [l[0] / l[2], l[1] / l[2]]; } function polarOffset(e, t, r) { return [e[0] + Math.cos(t) * r, e[1] - Math.sin(t) * r]; } function pointDistance(e, t) { return Math.hypot(e[0] - t[0], e[1] - t[1]); } function pointEqual(e, t) { return floatEqual(e[0], t[0]) && floatEqual(e[1], t[1]); } function ZigZagModifier() {} extendPrototype([ShapeModifier], ZigZagModifier), (ZigZagModifier.prototype.initModifierProperties = function (e, t) { (this.getValue = this.processKeys), (this.amplitude = PropertyFactory.getProp(e, t.s, 0, null, this)), (this.frequency = PropertyFactory.getProp(e, t.r, 0, null, this)), (this.pointsType = PropertyFactory.getProp(e, t.pt, 0, null, this)), (this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0); }); function setPoint(e, t, r, i, s, a, o) { var n = r - Math.PI / 2, l = r + Math.PI / 2, f = t[0] + Math.cos(r) * i * s, g = t[1] - Math.sin(r) * i * s; e.setTripleAt( f, g, f + Math.cos(n) * a, g - Math.sin(n) * a, f + Math.cos(l) * o, g - Math.sin(l) * o, e.length() ); } function getPerpendicularVector(e, t) { var r = [t[0] - e[0], t[1] - e[1]], i = -Math.PI * 0.5, s = [ Math.cos(i) * r[0] - Math.sin(i) * r[1], Math.sin(i) * r[0] + Math.cos(i) * r[1] ]; return s; } function getProjectingAngle(e, t) { var r = t === 0 ? e.length() - 1 : t - 1, i = (t + 1) % e.length(), s = e.v[r], a = e.v[i], o = getPerpendicularVector(s, a); return Math.atan2(0, 1) - Math.atan2(o[1], o[0]); } function zigZagCorner(e, t, r, i, s, a, o) { var n = getProjectingAngle(t, r), l = t.v[r % t._length], f = t.v[r === 0 ? t._length - 1 : r - 1], g = t.v[(r + 1) % t._length], S = a === 2 ? Math.sqrt(Math.pow(l[0] - f[0], 2) + Math.pow(l[1] - f[1], 2)) : 0, c = a === 2 ? Math.sqrt(Math.pow(l[0] - g[0], 2) + Math.pow(l[1] - g[1], 2)) : 0; setPoint( e, t.v[r % t._length], n, o, i, c / ((s + 1) * 2), S / ((s + 1) * 2) ); } function zigZagSegment(e, t, r, i, s, a) { for (var o = 0; o < i; o += 1) { var n = (o + 1) / (i + 1), l = s === 2 ? Math.sqrt( Math.pow(t.points[3][0] - t.points[0][0], 2) + Math.pow(t.points[3][1] - t.points[0][1], 2) ) : 0, f = t.normalAngle(n), g = t.point(n); setPoint(e, g, f, a, r, l / ((i + 1) * 2), l / ((i + 1) * 2)), (a = -a); } return a; } (ZigZagModifier.prototype.processPath = function (e, t, r, i) { var s = e._length, a = shapePool.newElement(); if (((a.c = e.c), e.c || (s -= 1), s === 0)) return a; var o = -1, n = PolynomialBezier.shapeSegment(e, 0); zigZagCorner(a, e, 0, t, r, i, o); for (var l = 0; l < s; l += 1) (o = zigZagSegment(a, n, t, r, i, -o)), l === s - 1 && !e.c ? (n = null) : (n = PolynomialBezier.shapeSegment(e, (l + 1) % s)), zigZagCorner(a, e, l + 1, t, r, i, o); return a; }), (ZigZagModifier.prototype.processShapes = function (e) { var t, r, i = this.shapes.length, s, a, o = this.amplitude.v, n = Math.max(0, Math.round(this.frequency.v)), l = this.pointsType.v; if (o !== 0) { var f, g; for (r = 0; r < i; r += 1) { if ( ((f = this.shapes[r]), (g = f.localShapeCollection), !(!f.shape._mdf && !this._mdf && !e)) ) for ( g.releaseShapes(), f.shape._mdf = !0, t = f.shape.paths.shapes, a = f.shape.paths._length, s = 0; s < a; s += 1 ) g.addShape(this.processPath(t[s], o, n, l)); f.shape.paths = f.localShapeCollection; } } this.dynamicProperties.length || (this._mdf = !1); }); function linearOffset(e, t, r) { var i = Math.atan2(t[0] - e[0], t[1] - e[1]); return [polarOffset(e, i, r), polarOffset(t, i, r)]; } function offsetSegment(e, t) { var r, i, s, a, o, n, l; (l = linearOffset(e.points[0], e.points[1], t)), (r = l[0]), (i = l[1]), (l = linearOffset(e.points[1], e.points[2], t)), (s = l[0]), (a = l[1]), (l = linearOffset(e.points[2], e.points[3], t)), (o = l[0]), (n = l[1]); var f = lineIntersection(r, i, s, a); f === null && (f = i); var g = lineIntersection(o, n, s, a); return g === null && (g = o), new PolynomialBezier(r, f, g, n); } function joinLines(e, t, r, i, s) { var a = t.points[3], o = r.points[0]; if (i === 3 || pointEqual(a, o)) return a; if (i === 2) { var n = -t.tangentAngle(1), l = -r.tangentAngle(0) + Math.PI, f = lineIntersection( a, polarOffset(a, n + Math.PI / 2, 100), o, polarOffset(o, n + Math.PI / 2, 100) ), g = f ? pointDistance(f, a) : pointDistance(a, o) / 2, S = polarOffset(a, n, 2 * g * roundCorner); return ( e.setXYAt(S[0], S[1], 'o', e.length() - 1), (S = polarOffset(o, l, 2 * g * roundCorner)), e.setTripleAt(o[0], o[1], o[0], o[1], S[0], S[1], e.length()), o ); } var c = pointEqual(a, t.points[2]) ? t.points[0] : t.points[2], P = pointEqual(o, r.points[1]) ? r.points[3] : r.points[1], d = lineIntersection(c, a, o, P); return d && pointDistance(d, a) < s ? (e.setTripleAt(d[0], d[1], d[0], d[1], d[0], d[1], e.length()), d) : a; } function getIntersection(e, t) { var r = e.intersections(t); return ( r.length && floatEqual(r[0][0], 1) && r.shift(), r.length ? r[0] : null ); } function pruneSegmentIntersection(e, t) { var r = e.slice(), i = t.slice(), s = getIntersection(e[e.length - 1], t[0]); return ( s && ((r[e.length - 1] = e[e.length - 1].split(s[0])[0]), (i[0] = t[0].split(s[1])[1])), e.length > 1 && t.length > 1 && ((s = getIntersection(e[0], t[t.length - 1])), s) ? [[e[0].split(s[0])[0]], [t[t.length - 1].split(s[1])[1]]] : [r, i] ); } function pruneIntersections(e) { for (var t, r = 1; r < e.length; r += 1) (t = pruneSegmentIntersection(e[r - 1], e[r])), (e[r - 1] = t[0]), (e[r] = t[1]); return ( e.length > 1 && ((t = pruneSegmentIntersection(e[e.length - 1], e[0])), (e[e.length - 1] = t[0]), (e[0] = t[1])), e ); } function offsetSegmentSplit(e, t) { var r = e.inflectionPoints(), i, s, a, o; if (r.length === 0) return [offsetSegment(e, t)]; if (r.length === 1 || floatEqual(r[1], 1)) return ( (a = e.split(r[0])), (i = a[0]), (s = a[1]), [offsetSegment(i, t), offsetSegment(s, t)] ); (a = e.split(r[0])), (i = a[0]); var n = (r[1] - r[0]) / (1 - r[0]); return ( (a = a[1].split(n)), (o = a[0]), (s = a[1]), [offsetSegment(i, t), offsetSegment(o, t), offsetSegment(s, t)] ); } function OffsetPathModifier() {} extendPrototype([ShapeModifier], OffsetPathModifier), (OffsetPathModifier.prototype.initModifierProperties = function (e, t) { (this.getValue = this.processKeys), (this.amount = PropertyFactory.getProp(e, t.a, 0, null, this)), (this.miterLimit = PropertyFactory.getProp(e, t.ml, 0, null, this)), (this.lineJoin = t.lj), (this._isAnimated = this.amount.effectsSequence.length !== 0); }), (OffsetPathModifier.prototype.processPath = function (e, t, r, i) { var s = shapePool.newElement(); s.c = e.c; var a = e.length(); e.c || (a -= 1); var o, n, l, f = []; for (o = 0; o < a; o += 1) (l = PolynomialBezier.shapeSegment(e, o)), f.push(offsetSegmentSplit(l, t)); if (!e.c) for (o = a - 1; o >= 0; o -= 1) (l = PolynomialBezier.shapeSegmentInverted(e, o)), f.push(offsetSegmentSplit(l, t)); f = pruneIntersections(f); var g = null, S = null; for (o = 0; o < f.length; o += 1) { var c = f[o]; for ( S && (g = joinLines(s, S, c[0], r, i)), S = c[c.length - 1], n = 0; n < c.length; n += 1 ) (l = c[n]), g && pointEqual(l.points[0], g) ? s.setXYAt( l.points[1][0], l.points[1][1], 'o', s.length() - 1 ) : s.setTripleAt( l.points[0][0], l.points[0][1], l.points[1][0], l.points[1][1], l.points[0][0], l.points[0][1], s.length() ), s.setTripleAt( l.points[3][0], l.points[3][1], l.points[3][0], l.points[3][1], l.points[2][0], l.points[2][1], s.length() ), (g = l.points[3]); } return f.length && joinLines(s, S, f[0][0], r, i), s; }), (OffsetPathModifier.prototype.processShapes = function (e) { var t, r, i = this.shapes.length, s, a, o = this.amount.v, n = this.miterLimit.v, l = this.lineJoin; if (o !== 0) { var f, g; for (r = 0; r < i; r += 1) { if ( ((f = this.shapes[r]), (g = f.localShapeCollection), !(!f.shape._mdf && !this._mdf && !e)) ) for ( g.releaseShapes(), f.shape._mdf = !0, t = f.shape.paths.shapes, a = f.shape.paths._length, s = 0; s < a; s += 1 ) g.addShape(this.processPath(t[s], o, l, n)); f.shape.paths = f.localShapeCollection; } } this.dynamicProperties.length || (this._mdf = !1); }); function getFontProperties(e) { for ( var t = e.fStyle ? e.fStyle.split(' ') : [], r = 'normal', i = 'normal', s = t.length, a, o = 0; o < s; o += 1 ) switch (((a = t[o].toLowerCase()), a)) { case 'italic': i = 'italic'; break; case 'bold': r = '700'; break; case 'black': r = '900'; break; case 'medium': r = '500'; break; case 'regular': case 'normal': r = '400'; break; case 'light': case 'thin': r = '200'; break; } return { style: i, weight: e.fWeight || r }; } var FontManager = (function () { var e = 5e3, t = { w: 0, size: 0, shapes: [], data: { shapes: [] } }, r = []; r = r.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 ]); var i = 127988, s = 917631, a = 917601, o = 917626, n = 65039, l = 8205, f = 127462, g = 127487, S = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff']; function c(M) { var k = M.split(','), b, C = k.length, L = []; for (b = 0; b < C; b += 1) k[b] !== 'sans-serif' && k[b] !== 'monospace' && L.push(k[b]); return L.join(','); } function P(M, k) { var b = createTag('span'); b.setAttribute('aria-hidden', !0), (b.style.fontFamily = k); var C = createTag('span'); (C.innerText = 'giItT1WQy@!-/#'), (b.style.position = 'absolute'), (b.style.left = '-10000px'), (b.style.top = '-10000px'), (b.style.fontSize = '300px'), (b.style.fontVariant = 'normal'), (b.style.fontStyle = 'normal'), (b.style.fontWeight = 'normal'), (b.style.letterSpacing = '0'), b.appendChild(C), document.body.appendChild(b); var L = C.offsetWidth; return ( (C.style.fontFamily = c(M) + ', ' + k), { node: C, w: L, parent: b } ); } function d() { var M, k = this.fonts.length, b, C, L = k; for (M = 0; M < k; M += 1) this.fonts[M].loaded ? (L -= 1) : this.fonts[M].fOrigin === 'n' || this.fonts[M].origin === 0 ? (this.fonts[M].loaded = !0) : ((b = this.fonts[M].monoCase.node), (C = this.fonts[M].monoCase.w), b.offsetWidth !== C ? ((L -= 1), (this.fonts[M].loaded = !0)) : ((b = this.fonts[M].sansCase.node), (C = this.fonts[M].sansCase.w), b.offsetWidth !== C && ((L -= 1), (this.fonts[M].loaded = !0))), this.fonts[M].loaded && (this.fonts[M].sansCase.parent.parentNode.removeChild( this.fonts[M].sansCase.parent ), this.fonts[M].monoCase.parent.parentNode.removeChild( this.fonts[M].monoCase.parent ))); L !== 0 && Date.now() - this.initTime < e ? setTimeout(this.checkLoadedFontsBinded, 20) : setTimeout(this.setIsLoadedBinded, 10); } function p(M, k) { var b = document.body && k ? 'svg' : 'canvas', C, L = getFontProperties(M); if (b === 'svg') { var F = createNS('text'); (F.style.fontSize = '100px'), F.setAttribute('font-family', M.fFamily), F.setAttribute('font-style', L.style), F.setAttribute('font-weight', L.weight), (F.textContent = '1'), M.fClass ? ((F.style.fontFamily = 'inherit'), F.setAttribute('class', M.fClass)) : (F.style.fontFamily = M.fFamily), k.appendChild(F), (C = F); } else { var U = new OffscreenCanvas(500, 500).getContext('2d'); (U.font = L.style + ' ' + L.weight + ' 100px ' + M.fFamily), (C = U); } function D(V) { return b === 'svg' ? ((C.textContent = V), C.getComputedTextLength()) : C.measureText(V).width; } return { measureText: D }; } function x(M, k) { if (!M) { this.isLoaded = !0; return; } if (this.chars) { (this.isLoaded = !0), (this.fonts = M.list); return; } if (!document.body) { (this.isLoaded = !0), M.list.forEach(function (J) { (J.helper = p(J)), (J.cache = {}); }), (this.fonts = M.list); return; } var b = M.list, C, L = b.length, F = L; for (C = 0; C < L; C += 1) { var U = !0, D, V; if ( ((b[C].loaded = !1), (b[C].monoCase = P(b[C].fFamily, 'monospace')), (b[C].sansCase = P(b[C].fFamily, 'sans-serif')), !b[C].fPath) ) (b[C].loaded = !0), (F -= 1); else if (b[C].fOrigin === 'p' || b[C].origin === 3) { if ( ((D = document.querySelectorAll( 'style[f-forigin="p"][f-family="' + b[C].fFamily + '"], style[f-origin="3"][f-family="' + b[C].fFamily + '"]' )), D.length > 0 && (U = !1), U) ) { var O = createTag('style'); O.setAttribute('f-forigin', b[C].fOrigin), O.setAttribute('f-origin', b[C].origin), O.setAttribute('f-family', b[C].fFamily), (O.type = 'text/css'), (O.innerText = '@font-face {font-family: ' + b[C].fFamily + "; font-style: normal; src: url('" + b[C].fPath + "');}"), k.appendChild(O); } } else if (b[C].fOrigin === 'g' || b[C].origin === 1) { for ( D = document.querySelectorAll( 'link[f-forigin="g"], link[f-origin="1"]' ), V = 0; V < D.length; V += 1 ) D[V].href.indexOf(b[C].fPath) !== -1 && (U = !1); if (U) { var j = createTag('link'); j.setAttribute('f-forigin', b[C].fOrigin), j.setAttribute('f-origin', b[C].origin), (j.type = 'text/css'), (j.rel = 'stylesheet'), (j.href = b[C].fPath), document.body.appendChild(j); } } else if (b[C].fOrigin === 't' || b[C].origin === 2) { for ( D = document.querySelectorAll( 'script[f-forigin="t"], script[f-origin="2"]' ), V = 0; V < D.length; V += 1 ) b[C].fPath === D[V].src && (U = !1); if (U) { var $ = createTag('link'); $.setAttribute('f-forigin', b[C].fOrigin), $.setAttribute('f-origin', b[C].origin), $.setAttribute('rel', 'stylesheet'), $.setAttribute('href', b[C].fPath), k.appendChild($); } } (b[C].helper = p(b[C], k)), (b[C].cache = {}), this.fonts.push(b[C]); } F === 0 ? (this.isLoaded = !0) : setTimeout(this.checkLoadedFonts.bind(this), 100); } function u(M) { if (M) { this.chars || (this.chars = []); var k, b = M.length, C, L = this.chars.length, F; for (k = 0; k < b; k += 1) { for (C = 0, F = !1; C < L; ) this.chars[C].style === M[k].style && this.chars[C].fFamily === M[k].fFamily && this.chars[C].ch === M[k].ch && (F = !0), (C += 1); F || (this.chars.push(M[k]), (L += 1)); } } } function y(M, k, b) { for (var C = 0, L = this.chars.length; C < L; ) { if ( this.chars[C].ch === M && this.chars[C].style === k && this.chars[C].fFamily === b ) return this.chars[C]; C += 1; } return ( ((typeof M == 'string' && M.charCodeAt(0) !== 13) || !M) && console && console.warn && !this._warned && ((this._warned = !0), console.warn( 'Missing character from exported characters list: ', M, k, b )), t ); } function m(M, k, b) { var C = this.getFontByName(k), L = M; if (!C.cache[L]) { var F = C.helper; if (M === ' ') { var U = F.measureText('|' + M + '|'), D = F.measureText('||'); C.cache[L] = (U - D) / 100; } else C.cache[L] = F.measureText(M) / 100; } return C.cache[L] * b; } function A(M) { for (var k = 0, b = this.fonts.length; k < b; ) { if (this.fonts[k].fName === M) return this.fonts[k]; k += 1; } return this.fonts[0]; } function T(M) { var k = 0, b = M.charCodeAt(0); if (b >= 55296 && b <= 56319) { var C = M.charCodeAt(1); C >= 56320 && C <= 57343 && (k = (b - 55296) * 1024 + C - 56320 + 65536); } return k; } function E(M, k) { var b = M.toString(16) + k.toString(16); return S.indexOf(b) !== -1; } function _(M) { return M === l; } function I(M) { return M === n; } function B(M) { var k = T(M); return k >= f && k <= g; } function z(M) { return B(M.substr(0, 2)) && B(M.substr(2, 2)); } function G(M) { return r.indexOf(M) !== -1; } function R(M, k) { var b = T(M.substr(k, 2)); if (b !== i) return !1; var C = 0; for (k += 2; C < 5; ) { if (((b = T(M.substr(k, 2))), b < a || b > o)) return !1; (C += 1), (k += 2); } return T(M.substr(k, 2)) === s; } function W() { this.isLoaded = !0; } var H = function () { (this.fonts = []), (this.chars = null), (this.typekitLoaded = 0), (this.isLoaded = !1), (this._warned = !1), (this.initTime = Date.now()), (this.setIsLoadedBinded = this.setIsLoaded.bind(this)), (this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this)); }; (H.isModifier = E), (H.isZeroWidthJoiner = _), (H.isFlagEmoji = z), (H.isRegionalCode = B), (H.isCombinedCharacter = G), (H.isRegionalFlag = R), (H.isVariationSelector = I), (H.BLACK_FLAG_CODE_POINT = i); var N = { addChars: u, addFonts: x, getCharData: y, getFontByName: A, measureText: m, checkLoadedFonts: d, setIsLoaded: W }; return (H.prototype = N), H; })(); function SlotManager(e) { this.animationData = e; } SlotManager.prototype.getProp = function (e) { return this.animationData.slots && this.animationData.slots[e.sid] ? Object.assign(e, this.animationData.slots[e.sid].p) : e; }; function slotFactory(e) { return new SlotManager(e); } function RenderableElement() {} RenderableElement.prototype = { initRenderable: function () { (this.isInRange = !1), (this.hidden = !1), (this.isTransparent = !1), (this.renderableComponents = []); }, addRenderableComponent: function (t) { this.renderableComponents.indexOf(t) === -1 && this.renderableComponents.push(t); }, removeRenderableComponent: function (t) { this.renderableComponents.indexOf(t) !== -1 && this.renderableComponents.splice( this.renderableComponents.indexOf(t), 1 ); }, prepareRenderableFrame: function (t) { this.checkLayerLimits(t); }, checkTransparency: function () { this.finalTransform.mProp.o.v <= 0 ? !this.isTransparent && this.globalData.renderConfig.hideOnTransparent && ((this.isTransparent = !0), this.hide()) : this.isTransparent && ((this.isTransparent = !1), this.show()); }, checkLayerLimits: function (t) { this.data.ip - this.data.st <= t && this.data.op - this.data.st > t ? this.isInRange !== !0 && ((this.globalData._mdf = !0), (this._mdf = !0), (this.isInRange = !0), this.show()) : this.isInRange !== !1 && ((this.globalData._mdf = !0), (this.isInRange = !1), this.hide()); }, renderRenderable: function () { var t, r = this.renderableComponents.length; for (t = 0; t < r; t += 1) this.renderableComponents[t].renderFrame(this._isFirstFrame); }, sourceRectAtTime: function () { return { top: 0, left: 0, width: 100, height: 100 }; }, getLayerSize: function () { return this.data.ty === 5 ? { w: this.data.textData.width, h: this.data.textData.height } : { w: this.data.width, h: this.data.height }; } }; var getBlendMode = (function () { var e = { 0: 'source-over', 1: 'multiply', 2: 'screen', 3: 'overlay', 4: 'darken', 5: 'lighten', 6: 'color-dodge', 7: 'color-burn', 8: 'hard-light', 9: 'soft-light', 10: 'difference', 11: 'exclusion', 12: 'hue', 13: 'saturation', 14: 'color', 15: 'luminosity' }; return function (t) { return e[t] || ''; }; })(); function SliderEffect(e, t, r) { this.p = PropertyFactory.getProp(t, e.v, 0, 0, r); } function AngleEffect(e, t, r) { this.p = PropertyFactory.getProp(t, e.v, 0, 0, r); } function ColorEffect(e, t, r) { this.p = PropertyFactory.getProp(t, e.v, 1, 0, r); } function PointEffect(e, t, r) { this.p = PropertyFactory.getProp(t, e.v, 1, 0, r); } function LayerIndexEffect(e, t, r) { this.p = PropertyFactory.getProp(t, e.v, 0, 0, r); } function MaskIndexEffect(e, t, r) { this.p = PropertyFactory.getProp(t, e.v, 0, 0, r); } function CheckboxEffect(e, t, r) { this.p = PropertyFactory.getProp(t, e.v, 0, 0, r); } function NoValueEffect() { this.p = {}; } function EffectsManager(e, t) { var r = e.ef || []; this.effectElements = []; var i, s = r.length, a; for (i = 0; i < s; i += 1) (a = new GroupEffect(r[i], t)), this.effectElements.push(a); } function GroupEffect(e, t) { this.init(e, t); } extendPrototype([DynamicPropertyContainer], GroupEffect), (GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties), (GroupEffect.prototype.init = function (e, t) { (this.data = e), (this.effectElements = []), this.initDynamicPropertyContainer(t); var r, i = this.data.ef.length, s, a = this.data.ef; for (r = 0; r < i; r += 1) { switch (((s = null), a[r].ty)) { case 0: s = new SliderEffect(a[r], t, this); break; case 1: s = new AngleEffect(a[r], t, this); break; case 2: s = new ColorEffect(a[r], t, this); break; case 3: s = new PointEffect(a[r], t, this); break; case 4: case 7: s = new CheckboxEffect(a[r], t, this); break; case 10: s = new LayerIndexEffect(a[r], t, this); break; case 11: s = new MaskIndexEffect(a[r], t, this); break; case 5: s = new EffectsManager(a[r], t); break; default: s = new NoValueEffect(a[r]); break; } s && this.effectElements.push(s); } }); function BaseElement() {} BaseElement.prototype = { checkMasks: function () { if (!this.data.hasMask) return !1; for (var t = 0, r = this.data.masksProperties.length; t < r; ) { if ( this.data.masksProperties[t].mode !== 'n' && this.data.masksProperties[t].cl !== !1 ) return !0; t += 1; } return !1; }, initExpressions: function () { var t = getExpressionInterfaces(); if (t) { var r = t('layer'), i = t('effects'), s = t('shape'), a = t('text'), o = t('comp'); (this.layerInterface = r(this)), this.data.hasMask && this.maskManager && this.layerInterface.registerMaskInterface(this.maskManager); var n = i.createEffectsInterface(this, this.layerInterface); this.layerInterface.registerEffectsInterface(n), this.data.ty === 0 || this.data.xt ? (this.compInterface = o(this)) : this.data.ty === 4 ? ((this.layerInterface.shapeInterface = s( this.shapesData, this.itemsData, this.layerInterface )), (this.layerInterface.content = this.layerInterface.shapeInterface)) : this.data.ty === 5 && ((this.layerInterface.textInterface = a(this)), (this.layerInterface.text = this.layerInterface.textInterface)); } }, setBlendMode: function () { var t = getBlendMode(this.data.bm), r = this.baseElement || this.layerElement; r.style['mix-blend-mode'] = t; }, initBaseData: function (t, r, i) { (this.globalData = r), (this.comp = i), (this.data = t), (this.layerId = createElementID()), this.data.sr || (this.data.sr = 1), (this.effectsManager = new EffectsManager( this.data, this, this.dynamicProperties )); }, getType: function () { return this.type; }, sourceRectAtTime: function () {} }; function FrameElement() {} FrameElement.prototype = { initFrame: function () { (this._isFirstFrame = !1), (this.dynamicProperties = []), (this._mdf = !1); }, prepareProperties: function (t, r) { var i, s = this.dynamicProperties.length; for (i = 0; i < s; i += 1) (r || (this._isParent && this.dynamicProperties[i].propType === 'transform')) && (this.dynamicProperties[i].getValue(), this.dynamicProperties[i]._mdf && ((this.globalData._mdf = !0), (this._mdf = !0))); }, addDynamicProperty: function (t) { this.dynamicProperties.indexOf(t) === -1 && this.dynamicProperties.push(t); } }; function FootageElement(e, t, r) { this.initFrame(), this.initRenderable(), (this.assetData = t.getAssetData(e.refId)), (this.footageData = t.imageLoader.getAsset(this.assetData)), this.initBaseData(e, t, r); } (FootageElement.prototype.prepareFrame = function () {}), extendPrototype( [RenderableElement, BaseElement, FrameElement], FootageElement ), (FootageElement.prototype.getBaseElement = function () { return null; }), (FootageElement.prototype.renderFrame = function () {}), (FootageElement.prototype.destroy = function () {}), (FootageElement.prototype.initExpressions = function () { var e = getExpressionInterfaces(); if (e) { var t = e('footage'); this.layerInterface = t(this); } }), (FootageElement.prototype.getFootageData = function () { return this.footageData; }); function AudioElement(e, t, r) { this.initFrame(), this.initRenderable(), (this.assetData = t.getAssetData(e.refId)), this.initBaseData(e, t, r), (this._isPlaying = !1), (this._canPlay = !1); var i = this.globalData.getAssetsPath(this.assetData); (this.audio = this.globalData.audioController.createAudio(i)), (this._currentTime = 0), this.globalData.audioController.addAudio(this), (this._volumeMultiplier = 1), (this._volume = 1), (this._previousVolume = null), (this.tm = e.tm ? PropertyFactory.getProp(this, e.tm, 0, t.frameRate, this) : { _placeholder: !0 }), (this.lv = PropertyFactory.getProp( this, e.au && e.au.lv ? e.au.lv : { k: [100] }, 1, 0.01, this )); } (AudioElement.prototype.prepareFrame = function (e) { if ( (this.prepareRenderableFrame(e, !0), this.prepareProperties(e, !0), this.tm._placeholder) ) this._currentTime = e / this.data.sr; else { var t = this.tm.v; this._currentTime = t; } this._volume = this.lv.v[0]; var r = this._volume * this._volumeMultiplier; this._previousVolume !== r && ((this._previousVolume = r), this.audio.volume(r)); }), extendPrototype( [RenderableElement, BaseElement, FrameElement], AudioElement ), (AudioElement.prototype.renderFrame = function () { this.isInRange && this._canPlay && (this._isPlaying ? (!this.audio.playing() || Math.abs( this._currentTime / this.globalData.frameRate - this.audio.seek() ) > 0.1) && this.audio.seek(this._currentTime / this.globalData.frameRate) : (this.audio.play(), this.audio.seek(this._currentTime / this.globalData.frameRate), (this._isPlaying = !0))); }), (AudioElement.prototype.show = function () {}), (AudioElement.prototype.hide = function () { this.audio.pause(), (this._isPlaying = !1); }), (AudioElement.prototype.pause = function () { this.audio.pause(), (this._isPlaying = !1), (this._canPlay = !1); }), (AudioElement.prototype.resume = function () { this._canPlay = !0; }), (AudioElement.prototype.setRate = function (e) { this.audio.rate(e); }), (AudioElement.prototype.volume = function (e) { (this._volumeMultiplier = e), (this._previousVolume = e * this._volume), this.audio.volume(this._previousVolume); }), (AudioElement.prototype.getBaseElement = function () { return null; }), (AudioElement.prototype.destroy = function () {}), (AudioElement.prototype.sourceRectAtTime = function () {}), (AudioElement.prototype.initExpressions = function () {}); function BaseRenderer() {} (BaseRenderer.prototype.checkLayers = function (e) { var t, r = this.layers.length, i; for (this.completeLayers = !0, t = r - 1; t >= 0; t -= 1) this.elements[t] || ((i = this.layers[t]), i.ip - i.st <= e - this.layers[t].st && i.op - i.st > e - this.layers[t].st && this.buildItem(t)), (this.completeLayers = this.elements[t] ? this.completeLayers : !1); this.checkPendingElements(); }), (BaseRenderer.prototype.createItem = function (e) { switch (e.ty) { case 2: return this.createImage(e); case 0: return this.createComp(e); case 1: return this.createSolid(e); case 3: return this.createNull(e); case 4: return this.createShape(e); case 5: return this.createText(e); case 6: return this.createAudio(e); case 13: return this.createCamera(e); case 15: return this.createFootage(e); default: return this.createNull(e); } }), (BaseRenderer.prototype.createCamera = function () { throw new Error("You're using a 3d camera. Try the html renderer."); }), (BaseRenderer.prototype.createAudio = function (e) { return new AudioElement(e, this.globalData, this); }), (BaseRenderer.prototype.createFootage = function (e) { return new FootageElement(e, this.globalData, this); }), (BaseRenderer.prototype.buildAllItems = function () { var e, t = this.layers.length; for (e = 0; e < t; e += 1) this.buildItem(e); this.checkPendingElements(); }), (BaseRenderer.prototype.includeLayers = function (e) { this.completeLayers = !1; var t, r = e.length, i, s = this.layers.length; for (t = 0; t < r; t += 1) for (i = 0; i < s; ) { if (this.layers[i].id === e[t].id) { this.layers[i] = e[t]; break; } i += 1; } }), (BaseRenderer.prototype.setProjectInterface = function (e) { this.globalData.projectInterface = e; }), (BaseRenderer.prototype.initItems = function () { this.globalData.progressiveLoad || this.buildAllItems(); }), (BaseRenderer.prototype.buildElementParenting = function (e, t, r) { for ( var i = this.elements, s = this.layers, a = 0, o = s.length; a < o; ) s[a].ind == t && (!i[a] || i[a] === !0 ? (this.buildItem(a), this.addPendingElement(e)) : (r.push(i[a]), i[a].setAsParent(), s[a].parent !== void 0 ? this.buildElementParenting(e, s[a].parent, r) : e.setHierarchy(r))), (a += 1); }), (BaseRenderer.prototype.addPendingElement = function (e) { this.pendingElements.push(e); }), (BaseRenderer.prototype.searchExtraCompositions = function (e) { var t, r = e.length; for (t = 0; t < r; t += 1) if (e[t].xt) { var i = this.createComp(e[t]); i.initExpressions(), this.globalData.projectInterface.registerComposition(i); } }), (BaseRenderer.prototype.getElementById = function (e) { var t, r = this.elements.length; for (t = 0; t < r; t += 1) if (this.elements[t].data.ind === e) return this.elements[t]; return null; }), (BaseRenderer.prototype.getElementByPath = function (e) { var t = e.shift(), r; if (typeof t == 'number') r = this.elements[t]; else { var i, s = this.elements.length; for (i = 0; i < s; i += 1) if (this.elements[i].data.nm === t) { r = this.elements[i]; break; } } return e.length === 0 ? r : r.getElementByPath(e); }), (BaseRenderer.prototype.setupGlobalData = function (e, t) { (this.globalData.fontManager = new FontManager()), (this.globalData.slotManager = slotFactory(e)), this.globalData.fontManager.addChars(e.chars), this.globalData.fontManager.addFonts(e.fonts, t), (this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem)), (this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem)), (this.globalData.imageLoader = this.animationItem.imagePreloader), (this.globalData.audioController = this.animationItem.audioController), (this.globalData.frameId = 0), (this.globalData.frameRate = e.fr), (this.globalData.nm = e.nm), (this.globalData.compSize = { w: e.w, h: e.h }); }); var effectTypes = { TRANSFORM_EFFECT: 'transformEFfect' }; function TransformElement() {} TransformElement.prototype = { initTransform: function () { var t = new Matrix(); (this.finalTransform = { mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty( this, this.data.ks, this ) : { o: 0 }, _matMdf: !1, _localMatMdf: !1, _opMdf: !1, mat: t, localMat: t, localOpacity: 1 }), this.data.ao && (this.finalTransform.mProp.autoOriented = !0), this.data.ty; }, renderTransform: function () { if ( ((this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame), (this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame), this.hierarchy) ) { var t, r = this.finalTransform.mat, i = 0, s = this.hierarchy.length; if (!this.finalTransform._matMdf) for (; i < s; ) { if (this.hierarchy[i].finalTransform.mProp._mdf) { this.finalTransform._matMdf = !0; break; } i += 1; } if (this.finalTransform._matMdf) for ( t = this.finalTransform.mProp.v.props, r.cloneFromProps(t), i = 0; i < s; i += 1 ) r.multiply(this.hierarchy[i].finalTransform.mProp.v); } this.finalTransform._matMdf && (this.finalTransform._localMatMdf = this.finalTransform._matMdf), this.finalTransform._opMdf && (this.finalTransform.localOpacity = this.finalTransform.mProp.o.v); }, renderLocalTransform: function () { if (this.localTransforms) { var t = 0, r = this.localTransforms.length; if ( ((this.finalTransform._localMatMdf = this.finalTransform._matMdf), !this.finalTransform._localMatMdf || !this.finalTransform._opMdf) ) for (; t < r; ) this.localTransforms[t]._mdf && (this.finalTransform._localMatMdf = !0), this.localTransforms[t]._opMdf && !this.finalTransform._opMdf && ((this.finalTransform.localOpacity = this.finalTransform.mProp.o.v), (this.finalTransform._opMdf = !0)), (t += 1); if (this.finalTransform._localMatMdf) { var i = this.finalTransform.localMat; for ( this.localTransforms[0].matrix.clone(i), t = 1; t < r; t += 1 ) { var s = this.localTransforms[t].matrix; i.multiply(s); } i.multiply(this.finalTransform.mat); } if (this.finalTransform._opMdf) { var a = this.finalTransform.localOpacity; for (t = 0; t < r; t += 1) a *= this.localTransforms[t].opacity * 0.01; this.finalTransform.localOpacity = a; } } }, searchEffectTransforms: function () { if (this.renderableEffectsManager) { var t = this.renderableEffectsManager.getEffects( effectTypes.TRANSFORM_EFFECT ); if (t.length) { (this.localTransforms = []), (this.finalTransform.localMat = new Matrix()); var r = 0, i = t.length; for (r = 0; r < i; r += 1) this.localTransforms.push(t[r]); } } }, globalToLocal: function (t) { var r = []; r.push(this.finalTransform); for (var i = !0, s = this.comp; i; ) s.finalTransform ? (s.data.hasMask && r.splice(0, 0, s.finalTransform), (s = s.comp)) : (i = !1); var a, o = r.length, n; for (a = 0; a < o; a += 1) (n = r[a].mat.applyToPointArray(0, 0, 0)), (t = [t[0] - n[0], t[1] - n[1], 0]); return t; }, mHelper: new Matrix() }; function MaskElement(e, t, r) { (this.data = e), (this.element = t), (this.globalData = r), (this.storedData = []), (this.masksProperties = this.data.masksProperties || []), (this.maskElement = null); var i = this.globalData.defs, s, a = this.masksProperties ? this.masksProperties.length : 0; (this.viewData = createSizedArray(a)), (this.solidPath = ''); var o, n = this.masksProperties, l = 0, f = [], g, S, c = createElementID(), P, d, p, x, u = 'clipPath', y = 'clip-path'; for (s = 0; s < a; s += 1) if ( (((n[s].mode !== 'a' && n[s].mode !== 'n') || n[s].inv || n[s].o.k !== 100 || n[s].o.x) && ((u = 'mask'), (y = 'mask')), (n[s].mode === 's' || n[s].mode === 'i') && l === 0 ? ((P = createNS('rect')), P.setAttribute('fill', '#ffffff'), P.setAttribute('width', this.element.comp.data.w || 0), P.setAttribute('height', this.element.comp.data.h || 0), f.push(P)) : (P = null), (o = createNS('path')), n[s].mode === 'n') ) (this.viewData[s] = { op: PropertyFactory.getProp( this.element, n[s].o, 0, 0.01, this.element ), prop: ShapePropertyFactory.getShapeProp(this.element, n[s], 3), elem: o, lastPath: '' }), i.appendChild(o); else { (l += 1), o.setAttribute('fill', n[s].mode === 's' ? '#000000' : '#ffffff'), o.setAttribute('clip-rule', 'nonzero'); var m; if ( (n[s].x.k !== 0 ? ((u = 'mask'), (y = 'mask'), (x = PropertyFactory.getProp( this.element, n[s].x, 0, null, this.element )), (m = createElementID()), (d = createNS('filter')), d.setAttribute('id', m), (p = createNS('feMorphology')), p.setAttribute('operator', 'erode'), p.setAttribute('in', 'SourceGraphic'), p.setAttribute('radius', '0'), d.appendChild(p), i.appendChild(d), o.setAttribute( 'stroke', n[s].mode === 's' ? '#000000' : '#ffffff' )) : ((p = null), (x = null)), (this.storedData[s] = { elem: o, x, expan: p, lastPath: '', lastOperator: '', filterId: m, lastRadius: 0 }), n[s].mode === 'i') ) { S = f.length; var A = createNS('g'); for (g = 0; g < S; g += 1) A.appendChild(f[g]); var T = createNS('mask'); T.setAttribute('mask-type', 'alpha'), T.setAttribute('id', c + '_' + l), T.appendChild(o), i.appendChild(T), A.setAttribute( 'mask', 'url(' + getLocationHref() + '#' + c + '_' + l + ')' ), (f.length = 0), f.push(A); } else f.push(o); n[s].inv && !this.solidPath && (this.solidPath = this.createLayerSolidPath()), (this.viewData[s] = { elem: o, lastPath: '', op: PropertyFactory.getProp( this.element, n[s].o, 0, 0.01, this.element ), prop: ShapePropertyFactory.getShapeProp(this.element, n[s], 3), invRect: P }), this.viewData[s].prop.k || this.drawPath(n[s], this.viewData[s].prop.v, this.viewData[s]); } for (this.maskElement = createNS(u), a = f.length, s = 0; s < a; s += 1) this.maskElement.appendChild(f[s]); l > 0 && (this.maskElement.setAttribute('id', c), this.element.maskedElement.setAttribute( y, 'url(' + getLocationHref() + '#' + c + ')' ), i.appendChild(this.maskElement)), this.viewData.length && this.element.addRenderableComponent(this); } (MaskElement.prototype.getMaskProperty = function (e) { return this.viewData[e].prop; }), (MaskElement.prototype.renderFrame = function (e) { var t = this.element.finalTransform.mat, r, i = this.masksProperties.length; for (r = 0; r < i; r += 1) if ( ((this.viewData[r].prop._mdf || e) && this.drawPath( this.masksProperties[r], this.viewData[r].prop.v, this.viewData[r] ), (this.viewData[r].op._mdf || e) && this.viewData[r].elem.setAttribute( 'fill-opacity', this.viewData[r].op.v ), this.masksProperties[r].mode !== 'n' && (this.viewData[r].invRect && (this.element.finalTransform.mProp._mdf || e) && this.viewData[r].invRect.setAttribute( 'transform', t.getInverseMatrix().to2dCSS() ), this.storedData[r].x && (this.storedData[r].x._mdf || e))) ) { var s = this.storedData[r].expan; this.storedData[r].x.v < 0 ? (this.storedData[r].lastOperator !== 'erode' && ((this.storedData[r].lastOperator = 'erode'), this.storedData[r].elem.setAttribute( 'filter', 'url(' + getLocationHref() + '#' + this.storedData[r].filterId + ')' )), s.setAttribute('radius', -this.storedData[r].x.v)) : (this.storedData[r].lastOperator !== 'dilate' && ((this.storedData[r].lastOperator = 'dilate'), this.storedData[r].elem.setAttribute('filter', null)), this.storedData[r].elem.setAttribute( 'stroke-width', this.storedData[r].x.v * 2 )); } }), (MaskElement.prototype.getMaskelement = function () { return this.maskElement; }), (MaskElement.prototype.createLayerSolidPath = function () { var e = 'M0,0 '; return ( (e += ' h' + this.globalData.compSize.w), (e += ' v' + this.globalData.compSize.h), (e += ' h-' + this.globalData.compSize.w), (e += ' v-' + this.globalData.compSize.h + ' '), e ); }), (MaskElement.prototype.drawPath = function (e, t, r) { var i = ' M' + t.v[0][0] + ',' + t.v[0][1], s, a; for (a = t._length, s = 1; s < a; s += 1) i += ' C' + t.o[s - 1][0] + ',' + t.o[s - 1][1] + ' ' + t.i[s][0] + ',' + t.i[s][1] + ' ' + t.v[s][0] + ',' + t.v[s][1]; if ( (t.c && a > 1 && (i += ' C' + t.o[s - 1][0] + ',' + t.o[s - 1][1] + ' ' + t.i[0][0] + ',' + t.i[0][1] + ' ' + t.v[0][0] + ',' + t.v[0][1]), r.lastPath !== i) ) { var o = ''; r.elem && (t.c && (o = e.inv ? this.solidPath + i : i), r.elem.setAttribute('d', o)), (r.lastPath = i); } }), (MaskElement.prototype.destroy = function () { (this.element = null), (this.globalData = null), (this.maskElement = null), (this.data = null), (this.masksProperties = null); }); var filtersFactory = (function () { var e = {}; (e.createFilter = t), (e.createAlphaToLuminanceFilter = r); function t(i, s) { var a = createNS('filter'); return ( a.setAttribute('id', i), s !== !0 && (a.setAttribute('filterUnits', 'objectBoundingBox'), a.setAttribute('x', '0%'), a.setAttribute('y', '0%'), a.setAttribute('width', '100%'), a.setAttribute('height', '100%')), a ); } function r() { var i = createNS('feColorMatrix'); return ( i.setAttribute('type', 'matrix'), i.setAttribute('color-interpolation-filters', 'sRGB'), i.setAttribute( 'values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1' ), i ); } return e; })(), featureSupport = (function () { var e = { maskType: !0, svgLumaHidden: !0, offscreenCanvas: typeof OffscreenCanvas < 'u' }; return ( (/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)) && (e.maskType = !1), /firefox/i.test(navigator.userAgent) && (e.svgLumaHidden = !1), e ); })(), registeredEffects$1 = {}, idPrefix = 'filter_result_'; function SVGEffects(e) { var t, r = 'SourceGraphic', i = e.data.ef ? e.data.ef.length : 0, s = createElementID(), a = filtersFactory.createFilter(s, !0), o = 0; this.filters = []; var n; for (t = 0; t < i; t += 1) { n = null; var l = e.data.ef[t].ty; if (registeredEffects$1[l]) { var f = registeredEffects$1[l].effect; (n = new f( a, e.effectsManager.effectElements[t], e, idPrefix + o, r )), (r = idPrefix + o), registeredEffects$1[l].countsAsEffect && (o += 1); } n && this.filters.push(n); } o && (e.globalData.defs.appendChild(a), e.layerElement.setAttribute( 'filter', 'url(' + getLocationHref() + '#' + s + ')' )), this.filters.length && e.addRenderableComponent(this); } (SVGEffects.prototype.renderFrame = function (e) { var t, r = this.filters.length; for (t = 0; t < r; t += 1) this.filters[t].renderFrame(e); }), (SVGEffects.prototype.getEffects = function (e) { var t, r = this.filters.length, i = []; for (t = 0; t < r; t += 1) this.filters[t].type === e && i.push(this.filters[t]); return i; }); function registerEffect$1(e, t, r) { registeredEffects$1[e] = { effect: t, countsAsEffect: r }; } function SVGBaseElement() {} SVGBaseElement.prototype = { initRendererElement: function () { this.layerElement = createNS('g'); }, createContainerElements: function () { (this.matteElement = createNS('g')), (this.transformedElement = this.layerElement), (this.maskedElement = this.layerElement), (this._sizeChanged = !1); var t = null; if (this.data.td) { this.matteMasks = {}; var r = createNS('g'); r.setAttribute('id', this.layerId), r.appendChild(this.layerElement), (t = r), this.globalData.defs.appendChild(r); } else this.data.tt ? (this.matteElement.appendChild(this.layerElement), (t = this.matteElement), (this.baseElement = this.matteElement)) : (this.baseElement = this.layerElement); if ( (this.data.ln && this.layerElement.setAttribute('id', this.data.ln), this.data.cl && this.layerElement.setAttribute('class', this.data.cl), this.data.ty === 0 && !this.data.hd) ) { var i = createNS('clipPath'), s = createNS('path'); s.setAttribute( 'd', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z' ); var a = createElementID(); if ( (i.setAttribute('id', a), i.appendChild(s), this.globalData.defs.appendChild(i), this.checkMasks()) ) { var o = createNS('g'); o.setAttribute( 'clip-path', 'url(' + getLocationHref() + '#' + a + ')' ), o.appendChild(this.layerElement), (this.transformedElement = o), t ? t.appendChild(this.transformedElement) : (this.baseElement = this.transformedElement); } else this.layerElement.setAttribute( 'clip-path', 'url(' + getLocationHref() + '#' + a + ')' ); } this.data.bm !== 0 && this.setBlendMode(); }, renderElement: function () { this.finalTransform._localMatMdf && this.transformedElement.setAttribute( 'transform', this.finalTransform.localMat.to2dCSS() ), this.finalTransform._opMdf && this.transformedElement.setAttribute( 'opacity', this.finalTransform.localOpacity ); }, destroyBaseElement: function () { (this.layerElement = null), (this.matteElement = null), this.maskManager.destroy(); }, getBaseElement: function () { return this.data.hd ? null : this.baseElement; }, createRenderableComponents: function () { (this.maskManager = new MaskElement( this.data, this, this.globalData )), (this.renderableEffectsManager = new SVGEffects(this)), this.searchEffectTransforms(); }, getMatte: function (t) { if ( (this.matteMasks || (this.matteMasks = {}), !this.matteMasks[t]) ) { var r = this.layerId + '_' + t, i, s, a, o; if (t === 1 || t === 3) { var n = createNS('mask'); n.setAttribute('id', r), n.setAttribute('mask-type', t === 3 ? 'luminance' : 'alpha'), (a = createNS('use')), a.setAttributeNS( 'http://www.w3.org/1999/xlink', 'href', '#' + this.layerId ), n.appendChild(a), this.globalData.defs.appendChild(n), !featureSupport.maskType && t === 1 && (n.setAttribute('mask-type', 'luminance'), (i = createElementID()), (s = filtersFactory.createFilter(i)), this.globalData.defs.appendChild(s), s.appendChild(filtersFactory.createAlphaToLuminanceFilter()), (o = createNS('g')), o.appendChild(a), n.appendChild(o), o.setAttribute( 'filter', 'url(' + getLocationHref() + '#' + i + ')' )); } else if (t === 2) { var l = createNS('mask'); l.setAttribute('id', r), l.setAttribute('mask-type', 'alpha'); var f = createNS('g'); l.appendChild(f), (i = createElementID()), (s = filtersFactory.createFilter(i)); var g = createNS('feComponentTransfer'); g.setAttribute('in', 'SourceGraphic'), s.appendChild(g); var S = createNS('feFuncA'); S.setAttribute('type', 'table'), S.setAttribute('tableValues', '1.0 0.0'), g.appendChild(S), this.globalData.defs.appendChild(s); var c = createNS('rect'); c.setAttribute('width', this.comp.data.w), c.setAttribute('height', this.comp.data.h), c.setAttribute('x', '0'), c.setAttribute('y', '0'), c.setAttribute('fill', '#ffffff'), c.setAttribute('opacity', '0'), f.setAttribute( 'filter', 'url(' + getLocationHref() + '#' + i + ')' ), f.appendChild(c), (a = createNS('use')), a.setAttributeNS( 'http://www.w3.org/1999/xlink', 'href', '#' + this.layerId ), f.appendChild(a), featureSupport.maskType || (l.setAttribute('mask-type', 'luminance'), s.appendChild(filtersFactory.createAlphaToLuminanceFilter()), (o = createNS('g')), f.appendChild(c), o.appendChild(this.layerElement), f.appendChild(o)), this.globalData.defs.appendChild(l); } this.matteMasks[t] = r; } return this.matteMasks[t]; }, setMatte: function (t) { this.matteElement && this.matteElement.setAttribute( 'mask', 'url(' + getLocationHref() + '#' + t + ')' ); } }; function HierarchyElement() {} HierarchyElement.prototype = { initHierarchy: function () { (this.hierarchy = []), (this._isParent = !1), this.checkParenting(); }, setHierarchy: function (t) { this.hierarchy = t; }, setAsParent: function () { this._isParent = !0; }, checkParenting: function () { this.data.parent !== void 0 && this.comp.buildElementParenting(this, this.data.parent, []); } }; function RenderableDOMElement() {} (function () { var e = { initElement: function (r, i, s) { this.initFrame(), this.initBaseData(r, i, s), this.initTransform(r, i, s), this.initHierarchy(), this.initRenderable(), this.initRendererElement(), this.createContainerElements(), this.createRenderableComponents(), this.createContent(), this.hide(); }, hide: function () { if (!this.hidden && (!this.isInRange || this.isTransparent)) { var r = this.baseElement || this.layerElement; (r.style.display = 'none'), (this.hidden = !0); } }, show: function () { if (this.isInRange && !this.isTransparent) { if (!this.data.hd) { var r = this.baseElement || this.layerElement; r.style.display = 'block'; } (this.hidden = !1), (this._isFirstFrame = !0); } }, renderFrame: function () { this.data.hd || this.hidden || (this.renderTransform(), this.renderRenderable(), this.renderLocalTransform(), this.renderElement(), this.renderInnerContent(), this._isFirstFrame && (this._isFirstFrame = !1)); }, renderInnerContent: function () {}, prepareFrame: function (r) { (this._mdf = !1), this.prepareRenderableFrame(r), this.prepareProperties(r, this.isInRange), this.checkTransparency(); }, destroy: function () { (this.innerElem = null), this.destroyBaseElement(); } }; extendPrototype( [RenderableElement, createProxyFunction(e)], RenderableDOMElement ); })(); function IImageElement(e, t, r) { (this.assetData = t.getAssetData(e.refId)), this.assetData && this.assetData.sid && (this.assetData = t.slotManager.getProp(this.assetData)), this.initElement(e, t, r), (this.sourceRect = { top: 0, left: 0, width: this.assetData.w, height: this.assetData.h }); } extendPrototype( [ BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement ], IImageElement ), (IImageElement.prototype.createContent = function () { var e = this.globalData.getAssetsPath(this.assetData); (this.innerElem = createNS('image')), this.innerElem.setAttribute('width', this.assetData.w + 'px'), this.innerElem.setAttribute('height', this.assetData.h + 'px'), this.innerElem.setAttribute( 'preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio ), this.innerElem.setAttributeNS( 'http://www.w3.org/1999/xlink', 'href', e ), this.layerElement.appendChild(this.innerElem); }), (IImageElement.prototype.sourceRectAtTime = function () { return this.sourceRect; }); function ProcessedElement(e, t) { (this.elem = e), (this.pos = t); } function IShapeElement() {} IShapeElement.prototype = { addShapeToModifiers: function (t) { var r, i = this.shapeModifiers.length; for (r = 0; r < i; r += 1) this.shapeModifiers[r].addShape(t); }, isShapeInAnimatedModifiers: function (t) { for (var r = 0, i = this.shapeModifiers.length; r < i; ) if (this.shapeModifiers[r].isAnimatedWithShape(t)) return !0; return !1; }, renderModifiers: function () { if (this.shapeModifiers.length) { var t, r = this.shapes.length; for (t = 0; t < r; t += 1) this.shapes[t].sh.reset(); r = this.shapeModifiers.length; var i; for ( t = r - 1; t >= 0 && ((i = this.shapeModifiers[t].processShapes(this._isFirstFrame)), !i); t -= 1 ); } }, searchProcessedElement: function (t) { for (var r = this.processedElements, i = 0, s = r.length; i < s; ) { if (r[i].elem === t) return r[i].pos; i += 1; } return 0; }, addProcessedElement: function (t, r) { for (var i = this.processedElements, s = i.length; s; ) if (((s -= 1), i[s].elem === t)) { i[s].pos = r; return; } i.push(new ProcessedElement(t, r)); }, prepareFrame: function (t) { this.prepareRenderableFrame(t), this.prepareProperties(t, this.isInRange); } }; var lineCapEnum = { 1: 'butt', 2: 'round', 3: 'square' }, lineJoinEnum = { 1: 'miter', 2: 'round', 3: 'bevel' }; function SVGShapeData(e, t, r) { (this.caches = []), (this.styles = []), (this.transformers = e), (this.lStr = ''), (this.sh = r), (this.lvl = t), (this._isAnimated = !!r.k); for (var i = 0, s = e.length; i < s; ) { if (e[i].mProps.dynamicProperties.length) { this._isAnimated = !0; break; } i += 1; } } SVGShapeData.prototype.setAsAnimated = function () { this._isAnimated = !0; }; function SVGStyleData(e, t) { (this.data = e), (this.type = e.ty), (this.d = ''), (this.lvl = t), (this._mdf = !1), (this.closed = e.hd === !0), (this.pElem = createNS('path')), (this.msElem = null); } SVGStyleData.prototype.reset = function () { (this.d = ''), (this._mdf = !1); }; function DashProperty(e, t, r, i) { (this.elem = e), (this.frameId = -1), (this.dataProps = createSizedArray(t.length)), (this.renderer = r), (this.k = !1), (this.dashStr = ''), (this.dashArray = createTypedArray( 'float32', t.length ? t.length - 1 : 0 )), (this.dashoffset = createTypedArray('float32', 1)), this.initDynamicPropertyContainer(i); var s, a = t.length || 0, o; for (s = 0; s < a; s += 1) (o = PropertyFactory.getProp(e, t[s].v, 0, 0, this)), (this.k = o.k || this.k), (this.dataProps[s] = { n: t[s].n, p: o }); this.k || this.getValue(!0), (this._isAnimated = this.k); } (DashProperty.prototype.getValue = function (e) { if ( !(this.elem.globalData.frameId === this.frameId && !e) && ((this.frameId = this.elem.globalData.frameId), this.iterateDynamicProperties(), (this._mdf = this._mdf || e), this._mdf) ) { var t = 0, r = this.dataProps.length; for ( this.renderer === 'svg' && (this.dashStr = ''), t = 0; t < r; t += 1 ) this.dataProps[t].n !== 'o' ? this.renderer === 'svg' ? (this.dashStr += ' ' + this.dataProps[t].p.v) : (this.dashArray[t] = this.dataProps[t].p.v) : (this.dashoffset[0] = this.dataProps[t].p.v); } }), extendPrototype([DynamicPropertyContainer], DashProperty); function SVGStrokeStyleData(e, t, r) { this.initDynamicPropertyContainer(e), (this.getValue = this.iterateDynamicProperties), (this.o = PropertyFactory.getProp(e, t.o, 0, 0.01, this)), (this.w = PropertyFactory.getProp(e, t.w, 0, null, this)), (this.d = new DashProperty(e, t.d || {}, 'svg', this)), (this.c = PropertyFactory.getProp(e, t.c, 1, 255, this)), (this.style = r), (this._isAnimated = !!this._isAnimated); } extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData); function SVGFillStyleData(e, t, r) { this.initDynamicPropertyContainer(e), (this.getValue = this.iterateDynamicProperties), (this.o = PropertyFactory.getProp(e, t.o, 0, 0.01, this)), (this.c = PropertyFactory.getProp(e, t.c, 1, 255, this)), (this.style = r); } extendPrototype([DynamicPropertyContainer], SVGFillStyleData); function SVGNoStyleData(e, t, r) { this.initDynamicPropertyContainer(e), (this.getValue = this.iterateDynamicProperties), (this.style = r); } extendPrototype([DynamicPropertyContainer], SVGNoStyleData); function GradientProperty(e, t, r) { (this.data = t), (this.c = createTypedArray('uint8c', t.p * 4)); var i = t.k.k[0].s ? t.k.k[0].s.length - t.p * 4 : t.k.k.length - t.p * 4; (this.o = createTypedArray('float32', i)), (this._cmdf = !1), (this._omdf = !1), (this._collapsable = this.checkCollapsable()), (this._hasOpacity = i), this.initDynamicPropertyContainer(r), (this.prop = PropertyFactory.getProp(e, t.k, 1, null, this)), (this.k = this.prop.k), this.getValue(!0); } (GradientProperty.prototype.comparePoints = function (e, t) { for (var r = 0, i = this.o.length / 2, s; r < i; ) { if (((s = Math.abs(e[r * 4] - e[t * 4 + r * 2])), s > 0.01)) return !1; r += 1; } return !0; }), (GradientProperty.prototype.checkCollapsable = function () { if (this.o.length / 2 !== this.c.length / 4) return !1; if (this.data.k.k[0].s) for (var e = 0, t = this.data.k.k.length; e < t; ) { if (!this.comparePoints(this.data.k.k[e].s, this.data.p)) return !1; e += 1; } else if (!this.comparePoints(this.data.k.k, this.data.p)) return !1; return !0; }), (GradientProperty.prototype.getValue = function (e) { if ( (this.prop.getValue(), (this._mdf = !1), (this._cmdf = !1), (this._omdf = !1), this.prop._mdf || e) ) { var t, r = this.data.p * 4, i, s; for (t = 0; t < r; t += 1) (i = t % 4 === 0 ? 100 : 255), (s = Math.round(this.prop.v[t] * i)), this.c[t] !== s && ((this.c[t] = s), (this._cmdf = !e)); if (this.o.length) for (r = this.prop.v.length, t = this.data.p * 4; t < r; t += 1) (i = t % 2 === 0 ? 100 : 1), (s = t % 2 === 0 ? Math.round(this.prop.v[t] * 100) : this.prop.v[t]), this.o[t - this.data.p * 4] !== s && ((this.o[t - this.data.p * 4] = s), (this._omdf = !e)); this._mdf = !e; } }), extendPrototype([DynamicPropertyContainer], GradientProperty); function SVGGradientFillStyleData(e, t, r) { this.initDynamicPropertyContainer(e), (this.getValue = this.iterateDynamicProperties), this.initGradientData(e, t, r); } (SVGGradientFillStyleData.prototype.initGradientData = function ( e, t, r ) { (this.o = PropertyFactory.getProp(e, t.o, 0, 0.01, this)), (this.s = PropertyFactory.getProp(e, t.s, 1, null, this)), (this.e = PropertyFactory.getProp(e, t.e, 1, null, this)), (this.h = PropertyFactory.getProp(e, t.h || { k: 0 }, 0, 0.01, this)), (this.a = PropertyFactory.getProp( e, t.a || { k: 0 }, 0, degToRads, this )), (this.g = new GradientProperty(e, t.g, this)), (this.style = r), (this.stops = []), this.setGradientData(r.pElem, t), this.setGradientOpacity(t, r), (this._isAnimated = !!this._isAnimated); }), (SVGGradientFillStyleData.prototype.setGradientData = function (e, t) { var r = createElementID(), i = createNS(t.t === 1 ? 'linearGradient' : 'radialGradient'); i.setAttribute('id', r), i.setAttribute('spreadMethod', 'pad'), i.setAttribute('gradientUnits', 'userSpaceOnUse'); var s = [], a, o, n; for (n = t.g.p * 4, o = 0; o < n; o += 4) (a = createNS('stop')), i.appendChild(a), s.push(a); e.setAttribute( t.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + r + ')' ), (this.gf = i), (this.cst = s); }), (SVGGradientFillStyleData.prototype.setGradientOpacity = function ( e, t ) { if (this.g._hasOpacity && !this.g._collapsable) { var r, i, s, a = createNS('mask'), o = createNS('path'); a.appendChild(o); var n = createElementID(), l = createElementID(); a.setAttribute('id', l); var f = createNS(e.t === 1 ? 'linearGradient' : 'radialGradient'); f.setAttribute('id', n), f.setAttribute('spreadMethod', 'pad'), f.setAttribute('gradientUnits', 'userSpaceOnUse'), (s = e.g.k.k[0].s ? e.g.k.k[0].s.length : e.g.k.k.length); var g = this.stops; for (i = e.g.p * 4; i < s; i += 2) (r = createNS('stop')), r.setAttribute('stop-color', 'rgb(255,255,255)'), f.appendChild(r), g.push(r); o.setAttribute( e.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + n + ')' ), e.ty === 'gs' && (o.setAttribute('stroke-linecap', lineCapEnum[e.lc || 2]), o.setAttribute('stroke-linejoin', lineJoinEnum[e.lj || 2]), e.lj === 1 && o.setAttribute('stroke-miterlimit', e.ml)), (this.of = f), (this.ms = a), (this.ost = g), (this.maskId = l), (t.msElem = o); } }), extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData); function SVGGradientStrokeStyleData(e, t, r) { this.initDynamicPropertyContainer(e), (this.getValue = this.iterateDynamicProperties), (this.w = PropertyFactory.getProp(e, t.w, 0, null, this)), (this.d = new DashProperty(e, t.d || {}, 'svg', this)), this.initGradientData(e, t, r), (this._isAnimated = !!this._isAnimated); } extendPrototype( [SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData ); function ShapeGroupData() { (this.it = []), (this.prevViewData = []), (this.gr = createNS('g')); } function SVGTransformData(e, t, r) { (this.transform = { mProps: e, op: t, container: r }), (this.elements = []), (this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length); } var buildShapeString = function (t, r, i, s) { if (r === 0) return ''; var a = t.o, o = t.i, n = t.v, l, f = ' M' + s.applyToPointStringified(n[0][0], n[0][1]); for (l = 1; l < r; l += 1) f += ' C' + s.applyToPointStringified(a[l - 1][0], a[l - 1][1]) + ' ' + s.applyToPointStringified(o[l][0], o[l][1]) + ' ' + s.applyToPointStringified(n[l][0], n[l][1]); return ( i && r && ((f += ' C' + s.applyToPointStringified(a[l - 1][0], a[l - 1][1]) + ' ' + s.applyToPointStringified(o[0][0], o[0][1]) + ' ' + s.applyToPointStringified(n[0][0], n[0][1])), (f += 'z')), f ); }, SVGElementsRenderer = (function () { var e = new Matrix(), t = new Matrix(), r = { createRenderFunction: i }; function i(S) { switch (S.ty) { case 'fl': return n; case 'gf': return f; case 'gs': return l; case 'st': return g; case 'sh': case 'el': case 'rc': case 'sr': return o; case 'tr': return s; case 'no': return a; default: return null; } } function s(S, c, P) { (P || c.transform.op._mdf) && c.transform.container.setAttribute('opacity', c.transform.op.v), (P || c.transform.mProps._mdf) && c.transform.container.setAttribute( 'transform', c.transform.mProps.v.to2dCSS() ); } function a() {} function o(S, c, P) { var d, p, x, u, y, m, A = c.styles.length, T = c.lvl, E, _, I, B; for (m = 0; m < A; m += 1) { if (((u = c.sh._mdf || P), c.styles[m].lvl < T)) { for ( _ = t.reset(), I = T - c.styles[m].lvl, B = c.transformers.length - 1; !u && I > 0; ) (u = c.transformers[B].mProps._mdf || u), (I -= 1), (B -= 1); if (u) for ( I = T - c.styles[m].lvl, B = c.transformers.length - 1; I > 0; ) _.multiply(c.transformers[B].mProps.v), (I -= 1), (B -= 1); } else _ = e; if (((E = c.sh.paths), (p = E._length), u)) { for (x = '', d = 0; d < p; d += 1) (y = E.shapes[d]), y && y._length && (x += buildShapeString(y, y._length, y.c, _)); c.caches[m] = x; } else x = c.caches[m]; (c.styles[m].d += S.hd === !0 ? '' : x), (c.styles[m]._mdf = u || c.styles[m]._mdf); } } function n(S, c, P) { var d = c.style; (c.c._mdf || P) && d.pElem.setAttribute( 'fill', 'rgb(' + bmFloor(c.c.v[0]) + ',' + bmFloor(c.c.v[1]) + ',' + bmFloor(c.c.v[2]) + ')' ), (c.o._mdf || P) && d.pElem.setAttribute('fill-opacity', c.o.v); } function l(S, c, P) { f(S, c, P), g(S, c, P); } function f(S, c, P) { var d = c.gf, p = c.g._hasOpacity, x = c.s.v, u = c.e.v; if (c.o._mdf || P) { var y = S.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity'; c.style.pElem.setAttribute(y, c.o.v); } if (c.s._mdf || P) { var m = S.t === 1 ? 'x1' : 'cx', A = m === 'x1' ? 'y1' : 'cy'; d.setAttribute(m, x[0]), d.setAttribute(A, x[1]), p && !c.g._collapsable && (c.of.setAttribute(m, x[0]), c.of.setAttribute(A, x[1])); } var T, E, _, I; if (c.g._cmdf || P) { T = c.cst; var B = c.g.c; for (_ = T.length, E = 0; E < _; E += 1) (I = T[E]), I.setAttribute('offset', B[E * 4] + '%'), I.setAttribute( 'stop-color', 'rgb(' + B[E * 4 + 1] + ',' + B[E * 4 + 2] + ',' + B[E * 4 + 3] + ')' ); } if (p && (c.g._omdf || P)) { var z = c.g.o; for ( c.g._collapsable ? (T = c.cst) : (T = c.ost), _ = T.length, E = 0; E < _; E += 1 ) (I = T[E]), c.g._collapsable || I.setAttribute('offset', z[E * 2] + '%'), I.setAttribute('stop-opacity', z[E * 2 + 1]); } if (S.t === 1) (c.e._mdf || P) && (d.setAttribute('x2', u[0]), d.setAttribute('y2', u[1]), p && !c.g._collapsable && (c.of.setAttribute('x2', u[0]), c.of.setAttribute('y2', u[1]))); else { var G; if ( ((c.s._mdf || c.e._mdf || P) && ((G = Math.sqrt( Math.pow(x[0] - u[0], 2) + Math.pow(x[1] - u[1], 2) )), d.setAttribute('r', G), p && !c.g._collapsable && c.of.setAttribute('r', G)), c.e._mdf || c.h._mdf || c.a._mdf || P) ) { G || (G = Math.sqrt( Math.pow(x[0] - u[0], 2) + Math.pow(x[1] - u[1], 2) )); var R = Math.atan2(u[1] - x[1], u[0] - x[0]), W = c.h.v; W >= 1 ? (W = 0.99) : W <= -1 && (W = -0.99); var H = G * W, N = Math.cos(R + c.a.v) * H + x[0], M = Math.sin(R + c.a.v) * H + x[1]; d.setAttribute('fx', N), d.setAttribute('fy', M), p && !c.g._collapsable && (c.of.setAttribute('fx', N), c.of.setAttribute('fy', M)); } } } function g(S, c, P) { var d = c.style, p = c.d; p && (p._mdf || P) && p.dashStr && (d.pElem.setAttribute('stroke-dasharray', p.dashStr), d.pElem.setAttribute('stroke-dashoffset', p.dashoffset[0])), c.c && (c.c._mdf || P) && d.pElem.setAttribute( 'stroke', 'rgb(' + bmFloor(c.c.v[0]) + ',' + bmFloor(c.c.v[1]) + ',' + bmFloor(c.c.v[2]) + ')' ), (c.o._mdf || P) && d.pElem.setAttribute('stroke-opacity', c.o.v), (c.w._mdf || P) && (d.pElem.setAttribute('stroke-width', c.w.v), d.msElem && d.msElem.setAttribute('stroke-width', c.w.v)); } return r; })(); function SVGShapeElement(e, t, r) { (this.shapes = []), (this.shapesData = e.shapes), (this.stylesList = []), (this.shapeModifiers = []), (this.itemsData = []), (this.processedElements = []), (this.animatedContents = []), this.initElement(e, t, r), (this.prevViewData = []); } extendPrototype( [ BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement ], SVGShapeElement ), (SVGShapeElement.prototype.initSecondaryElement = function () {}), (SVGShapeElement.prototype.identityMatrix = new Matrix()), (SVGShapeElement.prototype.buildExpressionInterface = function () {}), (SVGShapeElement.prototype.createContent = function () { this.searchShapes( this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], !0 ), this.filterUniqueShapes(); }), (SVGShapeElement.prototype.filterUniqueShapes = function () { var e, t = this.shapes.length, r, i, s = this.stylesList.length, a, o = [], n = !1; for (i = 0; i < s; i += 1) { for ( a = this.stylesList[i], n = !1, o.length = 0, e = 0; e < t; e += 1 ) (r = this.shapes[e]), r.styles.indexOf(a) !== -1 && (o.push(r), (n = r._isAnimated || n)); o.length > 1 && n && this.setShapesAsAnimated(o); } }), (SVGShapeElement.prototype.setShapesAsAnimated = function (e) { var t, r = e.length; for (t = 0; t < r; t += 1) e[t].setAsAnimated(); }), (SVGShapeElement.prototype.createStyleElement = function (e, t) { var r, i = new SVGStyleData(e, t), s = i.pElem; if (e.ty === 'st') r = new SVGStrokeStyleData(this, e, i); else if (e.ty === 'fl') r = new SVGFillStyleData(this, e, i); else if (e.ty === 'gf' || e.ty === 'gs') { var a = e.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData; (r = new a(this, e, i)), this.globalData.defs.appendChild(r.gf), r.maskId && (this.globalData.defs.appendChild(r.ms), this.globalData.defs.appendChild(r.of), s.setAttribute( 'mask', 'url(' + getLocationHref() + '#' + r.maskId + ')' )); } else e.ty === 'no' && (r = new SVGNoStyleData(this, e, i)); return ( (e.ty === 'st' || e.ty === 'gs') && (s.setAttribute('stroke-linecap', lineCapEnum[e.lc || 2]), s.setAttribute('stroke-linejoin', lineJoinEnum[e.lj || 2]), s.setAttribute('fill-opacity', '0'), e.lj === 1 && s.setAttribute('stroke-miterlimit', e.ml)), e.r === 2 && s.setAttribute('fill-rule', 'evenodd'), e.ln && s.setAttribute('id', e.ln), e.cl && s.setAttribute('class', e.cl), e.bm && (s.style['mix-blend-mode'] = getBlendMode(e.bm)), this.stylesList.push(i), this.addToAnimatedContents(e, r), r ); }), (SVGShapeElement.prototype.createGroupElement = function (e) { var t = new ShapeGroupData(); return ( e.ln && t.gr.setAttribute('id', e.ln), e.cl && t.gr.setAttribute('class', e.cl), e.bm && (t.gr.style['mix-blend-mode'] = getBlendMode(e.bm)), t ); }), (SVGShapeElement.prototype.createTransformElement = function (e, t) { var r = TransformPropertyFactory.getTransformProperty(this, e, this), i = new SVGTransformData(r, r.o, t); return this.addToAnimatedContents(e, i), i; }), (SVGShapeElement.prototype.createShapeElement = function (e, t, r) { var i = 4; e.ty === 'rc' ? (i = 5) : e.ty === 'el' ? (i = 6) : e.ty === 'sr' && (i = 7); var s = ShapePropertyFactory.getShapeProp(this, e, i, this), a = new SVGShapeData(t, r, s); return ( this.shapes.push(a), this.addShapeToModifiers(a), this.addToAnimatedContents(e, a), a ); }), (SVGShapeElement.prototype.addToAnimatedContents = function (e, t) { for (var r = 0, i = this.animatedContents.length; r < i; ) { if (this.animatedContents[r].element === t) return; r += 1; } this.animatedContents.push({ fn: SVGElementsRenderer.createRenderFunction(e), element: t, data: e }); }), (SVGShapeElement.prototype.setElementStyles = function (e) { var t = e.styles, r, i = this.stylesList.length; for (r = 0; r < i; r += 1) this.stylesList[r].closed || t.push(this.stylesList[r]); }), (SVGShapeElement.prototype.reloadShapes = function () { this._isFirstFrame = !0; var e, t = this.itemsData.length; for (e = 0; e < t; e += 1) this.prevViewData[e] = this.itemsData[e]; for ( this.searchShapes( this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], !0 ), this.filterUniqueShapes(), t = this.dynamicProperties.length, e = 0; e < t; e += 1 ) this.dynamicProperties[e].getValue(); this.renderModifiers(); }), (SVGShapeElement.prototype.searchShapes = function ( e, t, r, i, s, a, o ) { var n = [].concat(a), l, f = e.length - 1, g, S, c = [], P = [], d, p, x; for (l = f; l >= 0; l -= 1) { if ( ((x = this.searchProcessedElement(e[l])), x ? (t[l] = r[x - 1]) : (e[l]._render = o), e[l].ty === 'fl' || e[l].ty === 'st' || e[l].ty === 'gf' || e[l].ty === 'gs' || e[l].ty === 'no') ) x ? (t[l].style.closed = !1) : (t[l] = this.createStyleElement(e[l], s)), e[l]._render && t[l].style.pElem.parentNode !== i && i.appendChild(t[l].style.pElem), c.push(t[l].style); else if (e[l].ty === 'gr') { if (!x) t[l] = this.createGroupElement(e[l]); else for (S = t[l].it.length, g = 0; g < S; g += 1) t[l].prevViewData[g] = t[l].it[g]; this.searchShapes( e[l].it, t[l].it, t[l].prevViewData, t[l].gr, s + 1, n, o ), e[l]._render && t[l].gr.parentNode !== i && i.appendChild(t[l].gr); } else e[l].ty === 'tr' ? (x || (t[l] = this.createTransformElement(e[l], i)), (d = t[l].transform), n.push(d)) : e[l].ty === 'sh' || e[l].ty === 'rc' || e[l].ty === 'el' || e[l].ty === 'sr' ? (x || (t[l] = this.createShapeElement(e[l], n, s)), this.setElementStyles(t[l])) : e[l].ty === 'tm' || e[l].ty === 'rd' || e[l].ty === 'ms' || e[l].ty === 'pb' || e[l].ty === 'zz' || e[l].ty === 'op' ? (x ? ((p = t[l]), (p.closed = !1)) : ((p = ShapeModifiers.getModifier(e[l].ty)), p.init(this, e[l]), (t[l] = p), this.shapeModifiers.push(p)), P.push(p)) : e[l].ty === 'rp' && (x ? ((p = t[l]), (p.closed = !0)) : ((p = ShapeModifiers.getModifier(e[l].ty)), (t[l] = p), p.init(this, e, l, t), this.shapeModifiers.push(p), (o = !1)), P.push(p)); this.addProcessedElement(e[l], l + 1); } for (f = c.length, l = 0; l < f; l += 1) c[l].closed = !0; for (f = P.length, l = 0; l < f; l += 1) P[l].closed = !0; }), (SVGShapeElement.prototype.renderInnerContent = function () { this.renderModifiers(); var e, t = this.stylesList.length; for (e = 0; e < t; e += 1) this.stylesList[e].reset(); for (this.renderShape(), e = 0; e < t; e += 1) (this.stylesList[e]._mdf || this._isFirstFrame) && (this.stylesList[e].msElem && (this.stylesList[e].msElem.setAttribute( 'd', this.stylesList[e].d ), (this.stylesList[e].d = 'M0 0' + this.stylesList[e].d)), this.stylesList[e].pElem.setAttribute( 'd', this.stylesList[e].d || 'M0 0' )); }), (SVGShapeElement.prototype.renderShape = function () { var e, t = this.animatedContents.length, r; for (e = 0; e < t; e += 1) (r = this.animatedContents[e]), (this._isFirstFrame || r.element._isAnimated) && r.data !== !0 && r.fn(r.data, r.element, this._isFirstFrame); }), (SVGShapeElement.prototype.destroy = function () { this.destroyBaseElement(), (this.shapesData = null), (this.itemsData = null); }); function LetterProps(e, t, r, i, s, a) { (this.o = e), (this.sw = t), (this.sc = r), (this.fc = i), (this.m = s), (this.p = a), (this._mdf = { o: !0, sw: !!t, sc: !!r, fc: !!i, m: !0, p: !0 }); } LetterProps.prototype.update = function (e, t, r, i, s, a) { (this._mdf.o = !1), (this._mdf.sw = !1), (this._mdf.sc = !1), (this._mdf.fc = !1), (this._mdf.m = !1), (this._mdf.p = !1); var o = !1; return ( this.o !== e && ((this.o = e), (this._mdf.o = !0), (o = !0)), this.sw !== t && ((this.sw = t), (this._mdf.sw = !0), (o = !0)), this.sc !== r && ((this.sc = r), (this._mdf.sc = !0), (o = !0)), this.fc !== i && ((this.fc = i), (this._mdf.fc = !0), (o = !0)), this.m !== s && ((this.m = s), (this._mdf.m = !0), (o = !0)), a.length && (this.p[0] !== a[0] || this.p[1] !== a[1] || this.p[4] !== a[4] || this.p[5] !== a[5] || this.p[12] !== a[12] || this.p[13] !== a[13]) && ((this.p = a), (this._mdf.p = !0), (o = !0)), o ); }; function TextProperty(e, t) { (this._frameId = initialDefaultFrame), (this.pv = ''), (this.v = ''), (this.kf = !1), (this._isFirstFrame = !0), (this._mdf = !1), t.d && t.d.sid && (t.d = e.globalData.slotManager.getProp(t.d)), (this.data = t), (this.elem = e), (this.comp = this.elem.comp), (this.keysIndex = 0), (this.canResize = !1), (this.minimumFontSize = 1), (this.effectsSequence = []), (this.currentData = { ascent: 0, boxWidth: this.defaultBoxWidth, f: '', fStyle: '', fWeight: '', fc: '', j: '', justifyOffset: '', l: [], lh: 0, lineWidths: [], ls: '', of: '', s: '', sc: '', sw: 0, t: 0, tr: 0, sz: 0, ps: null, fillColorAnim: !1, strokeColorAnim: !1, strokeWidthAnim: !1, yOffset: 0, finalSize: 0, finalText: [], finalLineHeight: 0, __complete: !1 }), this.copyData(this.currentData, this.data.d.k[0].s), this.searchProperty() || this.completeTextData(this.currentData); } (TextProperty.prototype.defaultBoxWidth = [0, 0]), (TextProperty.prototype.copyData = function (e, t) { for (var r in t) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); return e; }), (TextProperty.prototype.setCurrentData = function (e) { e.__complete || this.completeTextData(e), (this.currentData = e), (this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth), (this._mdf = !0); }), (TextProperty.prototype.searchProperty = function () { return this.searchKeyframes(); }), (TextProperty.prototype.searchKeyframes = function () { return ( (this.kf = this.data.d.k.length > 1), this.kf && this.addEffect(this.getKeyframeValue.bind(this)), this.kf ); }), (TextProperty.prototype.addEffect = function (e) { this.effectsSequence.push(e), this.elem.addDynamicProperty(this); }), (TextProperty.prototype.getValue = function (e) { if ( !( (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !e ) ) { this.currentData.t = this.data.d.k[this.keysIndex].s.t; var t = this.currentData, r = this.keysIndex; if (this.lock) { this.setCurrentData(this.currentData); return; } (this.lock = !0), (this._mdf = !1); var i, s = this.effectsSequence.length, a = e || this.data.d.k[this.keysIndex].s; for (i = 0; i < s; i += 1) r !== this.keysIndex ? (a = this.effectsSequence[i](a, a.t)) : (a = this.effectsSequence[i](this.currentData, a.t)); t !== a && this.setCurrentData(a), (this.v = this.currentData), (this.pv = this.v), (this.lock = !1), (this.frameId = this.elem.globalData.frameId); } }), (TextProperty.prototype.getKeyframeValue = function () { for ( var e = this.data.d.k, t = this.elem.comp.renderedFrame, r = 0, i = e.length; r <= i - 1 && !(r === i - 1 || e[r + 1].t > t); ) r += 1; return ( this.keysIndex !== r && (this.keysIndex = r), this.data.d.k[this.keysIndex].s ); }), (TextProperty.prototype.buildFinalText = function (e) { for ( var t = [], r = 0, i = e.length, s, a, o = !1, n = !1, l = ''; r < i; ) (o = n), (n = !1), (s = e.charCodeAt(r)), (l = e.charAt(r)), FontManager.isCombinedCharacter(s) ? (o = !0) : s >= 55296 && s <= 56319 ? FontManager.isRegionalFlag(e, r) ? (l = e.substr(r, 14)) : ((a = e.charCodeAt(r + 1)), a >= 56320 && a <= 57343 && (FontManager.isModifier(s, a) ? ((l = e.substr(r, 2)), (o = !0)) : FontManager.isFlagEmoji(e.substr(r, 4)) ? (l = e.substr(r, 4)) : (l = e.substr(r, 2)))) : s > 56319 ? ((a = e.charCodeAt(r + 1)), FontManager.isVariationSelector(s) && (o = !0)) : FontManager.isZeroWidthJoiner(s) && ((o = !0), (n = !0)), o ? ((t[t.length - 1] += l), (o = !1)) : t.push(l), (r += l.length); return t; }), (TextProperty.prototype.completeTextData = function (e) { e.__complete = !0; var t = this.elem.globalData.fontManager, r = this.data, i = [], s, a, o, n = 0, l, f = r.m.g, g = 0, S = 0, c = 0, P = [], d = 0, p = 0, x, u, y = t.getFontByName(e.f), m, A = 0, T = getFontProperties(y); (e.fWeight = T.weight), (e.fStyle = T.style), (e.finalSize = e.s), (e.finalText = this.buildFinalText(e.t)), (a = e.finalText.length), (e.finalLineHeight = e.lh); var E = (e.tr / 1e3) * e.finalSize, _; if (e.sz) for (var I = !0, B = e.sz[0], z = e.sz[1], G, R; I; ) { (R = this.buildFinalText(e.t)), (G = 0), (d = 0), (a = R.length), (E = (e.tr / 1e3) * e.finalSize); var W = -1; for (s = 0; s < a; s += 1) (_ = R[s].charCodeAt(0)), (o = !1), R[s] === ' ' ? (W = s) : (_ === 13 || _ === 3) && ((d = 0), (o = !0), (G += e.finalLineHeight || e.finalSize * 1.2)), t.chars ? ((m = t.getCharData(R[s], y.fStyle, y.fFamily)), (A = o ? 0 : (m.w * e.finalSize) / 100)) : (A = t.measureText(R[s], e.f, e.finalSize)), d + A > B && R[s] !== ' ' ? (W === -1 ? (a += 1) : (s = W), (G += e.finalLineHeight || e.finalSize * 1.2), R.splice(s, W === s ? 1 : 0, '\r'), (W = -1), (d = 0)) : ((d += A), (d += E)); (G += (y.ascent * e.finalSize) / 100), this.canResize && e.finalSize > this.minimumFontSize && z < G ? ((e.finalSize -= 1), (e.finalLineHeight = (e.finalSize * e.lh) / e.s)) : ((e.finalText = R), (a = e.finalText.length), (I = !1)); } (d = -E), (A = 0); var H = 0, N; for (s = 0; s < a; s += 1) if ( ((o = !1), (N = e.finalText[s]), (_ = N.charCodeAt(0)), _ === 13 || _ === 3 ? ((H = 0), P.push(d), (p = d > p ? d : p), (d = -2 * E), (l = ''), (o = !0), (c += 1)) : (l = N), t.chars ? ((m = t.getCharData( N, y.fStyle, t.getFontByName(e.f).fFamily )), (A = o ? 0 : (m.w * e.finalSize) / 100)) : (A = t.measureText(l, e.f, e.finalSize)), N === ' ' ? (H += A + E) : ((d += A + E + H), (H = 0)), i.push({ l: A, an: A, add: g, n: o, anIndexes: [], val: l, line: c, animatorJustifyOffset: 0 }), f == 2) ) { if (((g += A), l === '' || l === ' ' || s === a - 1)) { for ((l === '' || l === ' ') && (g -= A); S <= s; ) (i[S].an = g), (i[S].ind = n), (i[S].extra = A), (S += 1); (n += 1), (g = 0); } } else if (f == 3) { if (((g += A), l === '' || s === a - 1)) { for (l === '' && (g -= A); S <= s; ) (i[S].an = g), (i[S].ind = n), (i[S].extra = A), (S += 1); (g = 0), (n += 1); } } else (i[n].ind = n), (i[n].extra = 0), (n += 1); if (((e.l = i), (p = d > p ? d : p), P.push(d), e.sz)) (e.boxWidth = e.sz[0]), (e.justifyOffset = 0); else switch (((e.boxWidth = p), e.j)) { case 1: e.justifyOffset = -e.boxWidth; break; case 2: e.justifyOffset = -e.boxWidth / 2; break; default: e.justifyOffset = 0; } e.lineWidths = P; var M = r.a, k, b; u = M.length; var C, L, F = []; for (x = 0; x < u; x += 1) { for ( k = M[x], k.a.sc && (e.strokeColorAnim = !0), k.a.sw && (e.strokeWidthAnim = !0), (k.a.fc || k.a.fh || k.a.fs || k.a.fb) && (e.fillColorAnim = !0), L = 0, C = k.s.b, s = 0; s < a; s += 1 ) (b = i[s]), (b.anIndexes[x] = L), ((C == 1 && b.val !== '') || (C == 2 && b.val !== '' && b.val !== ' ') || (C == 3 && (b.n || b.val == ' ' || s == a - 1)) || (C == 4 && (b.n || s == a - 1))) && (k.s.rn === 1 && F.push(L), (L += 1)); r.a[x].s.totalChars = L; var U = -1, D; if (k.s.rn === 1) for (s = 0; s < a; s += 1) (b = i[s]), U != b.anIndexes[x] && ((U = b.anIndexes[x]), (D = F.splice(Math.floor(Math.random() * F.length), 1)[0])), (b.anIndexes[x] = D); } (e.yOffset = e.finalLineHeight || e.finalSize * 1.2), (e.ls = e.ls || 0), (e.ascent = (y.ascent * e.finalSize) / 100); }), (TextProperty.prototype.updateDocumentData = function (e, t) { t = t === void 0 ? this.keysIndex : t; var r = this.copyData({}, this.data.d.k[t].s); (r = this.copyData(r, e)), (this.data.d.k[t].s = r), this.recalculate(t), this.setCurrentData(r), this.elem.addDynamicProperty(this); }), (TextProperty.prototype.recalculate = function (e) { var t = this.data.d.k[e].s; (t.__complete = !1), (this.keysIndex = 0), (this._isFirstFrame = !0), this.getValue(t); }), (TextProperty.prototype.canResizeFont = function (e) { (this.canResize = e), this.recalculate(this.keysIndex), this.elem.addDynamicProperty(this); }), (TextProperty.prototype.setMinimumFontSize = function (e) { (this.minimumFontSize = Math.floor(e) || 1), this.recalculate(this.keysIndex), this.elem.addDynamicProperty(this); }); var TextSelectorProp = (function () { var e = Math.max, t = Math.min, r = Math.floor; function i(a, o) { (this._currentTextLength = -1), (this.k = !1), (this.data = o), (this.elem = a), (this.comp = a.comp), (this.finalS = 0), (this.finalE = 0), this.initDynamicPropertyContainer(a), (this.s = PropertyFactory.getProp(a, o.s || { k: 0 }, 0, 0, this)), 'e' in o ? (this.e = PropertyFactory.getProp(a, o.e, 0, 0, this)) : (this.e = { v: 100 }), (this.o = PropertyFactory.getProp(a, o.o || { k: 0 }, 0, 0, this)), (this.xe = PropertyFactory.getProp( a, o.xe || { k: 0 }, 0, 0, this )), (this.ne = PropertyFactory.getProp( a, o.ne || { k: 0 }, 0, 0, this )), (this.sm = PropertyFactory.getProp( a, o.sm || { k: 100 }, 0, 0, this )), (this.a = PropertyFactory.getProp(a, o.a, 0, 0.01, this)), this.dynamicProperties.length || this.getValue(); } (i.prototype = { getMult: function (o) { this._currentTextLength !== this.elem.textProperty.currentData.l.length && this.getValue(); var n = 0, l = 0, f = 1, g = 1; this.ne.v > 0 ? (n = this.ne.v / 100) : (l = -this.ne.v / 100), this.xe.v > 0 ? (f = 1 - this.xe.v / 100) : (g = 1 + this.xe.v / 100); var S = BezierFactory.getBezierEasing(n, l, f, g).get, c = 0, P = this.finalS, d = this.finalE, p = this.data.sh; if (p === 2) d === P ? (c = o >= d ? 1 : 0) : (c = e(0, t(0.5 / (d - P) + (o - P) / (d - P), 1))), (c = S(c)); else if (p === 3) d === P ? (c = o >= d ? 0 : 1) : (c = 1 - e(0, t(0.5 / (d - P) + (o - P) / (d - P), 1))), (c = S(c)); else if (p === 4) d === P ? (c = 0) : ((c = e(0, t(0.5 / (d - P) + (o - P) / (d - P), 1))), c < 0.5 ? (c *= 2) : (c = 1 - 2 * (c - 0.5))), (c = S(c)); else if (p === 5) { if (d === P) c = 0; else { var x = d - P; o = t(e(0, o + 0.5 - P), d - P); var u = -x / 2 + o, y = x / 2; c = Math.sqrt(1 - (u * u) / (y * y)); } c = S(c); } else p === 6 ? (d === P ? (c = 0) : ((o = t(e(0, o + 0.5 - P), d - P)), (c = (1 + Math.cos(Math.PI + (Math.PI * 2 * o) / (d - P))) / 2)), (c = S(c))) : (o >= r(P) && (o - P < 0 ? (c = e(0, t(t(d, 1) - (P - o), 1))) : (c = e(0, t(d - o, 1)))), (c = S(c))); if (this.sm.v !== 100) { var m = this.sm.v * 0.01; m === 0 && (m = 1e-8); var A = 0.5 - m * 0.5; c < A ? (c = 0) : ((c = (c - A) / m), c > 1 && (c = 1)); } return c * this.a.v; }, getValue: function (o) { this.iterateDynamicProperties(), (this._mdf = o || this._mdf), (this._currentTextLength = this.elem.textProperty.currentData.l.length || 0), o && this.data.r === 2 && (this.e.v = this._currentTextLength); var n = this.data.r === 2 ? 1 : 100 / this.data.totalChars, l = this.o.v / n, f = this.s.v / n + l, g = this.e.v / n + l; if (f > g) { var S = f; (f = g), (g = S); } (this.finalS = f), (this.finalE = g); } }), extendPrototype([DynamicPropertyContainer], i); function s(a, o, n) { return new i(a, o); } return { getTextSelectorProp: s }; })(); function TextAnimatorDataProperty(e, t, r) { var i = { propType: !1 }, s = PropertyFactory.getProp, a = t.a; (this.a = { r: a.r ? s(e, a.r, 0, degToRads, r) : i, rx: a.rx ? s(e, a.rx, 0, degToRads, r) : i, ry: a.ry ? s(e, a.ry, 0, degToRads, r) : i, sk: a.sk ? s(e, a.sk, 0, degToRads, r) : i, sa: a.sa ? s(e, a.sa, 0, degToRads, r) : i, s: a.s ? s(e, a.s, 1, 0.01, r) : i, a: a.a ? s(e, a.a, 1, 0, r) : i, o: a.o ? s(e, a.o, 0, 0.01, r) : i, p: a.p ? s(e, a.p, 1, 0, r) : i, sw: a.sw ? s(e, a.sw, 0, 0, r) : i, sc: a.sc ? s(e, a.sc, 1, 0, r) : i, fc: a.fc ? s(e, a.fc, 1, 0, r) : i, fh: a.fh ? s(e, a.fh, 0, 0, r) : i, fs: a.fs ? s(e, a.fs, 0, 0.01, r) : i, fb: a.fb ? s(e, a.fb, 0, 0.01, r) : i, t: a.t ? s(e, a.t, 0, 0, r) : i }), (this.s = TextSelectorProp.getTextSelectorProp(e, t.s, r)), (this.s.t = t.s.t); } function TextAnimatorProperty(e, t, r) { (this._isFirstFrame = !0), (this._hasMaskedPath = !1), (this._frameId = -1), (this._textData = e), (this._renderType = t), (this._elem = r), (this._animatorsData = createSizedArray(this._textData.a.length)), (this._pathData = {}), (this._moreOptions = { alignment: {} }), (this.renderedLetters = []), (this.lettersChangedFlag = !1), this.initDynamicPropertyContainer(r); } (TextAnimatorProperty.prototype.searchProperties = function () { var e, t = this._textData.a.length, r, i = PropertyFactory.getProp; for (e = 0; e < t; e += 1) (r = this._textData.a[e]), (this._animatorsData[e] = new TextAnimatorDataProperty( this._elem, r, this )); this._textData.p && 'm' in this._textData.p ? ((this._pathData = { a: i(this._elem, this._textData.p.a, 0, 0, this), f: i(this._elem, this._textData.p.f, 0, 0, this), l: i(this._elem, this._textData.p.l, 0, 0, this), r: i(this._elem, this._textData.p.r, 0, 0, this), p: i(this._elem, this._textData.p.p, 0, 0, this), m: this._elem.maskManager.getMaskProperty(this._textData.p.m) }), (this._hasMaskedPath = !0)) : (this._hasMaskedPath = !1), (this._moreOptions.alignment = i( this._elem, this._textData.m.a, 1, 0, this )); }), (TextAnimatorProperty.prototype.getMeasures = function (e, t) { if ( ((this.lettersChangedFlag = t), !( !this._mdf && !this._isFirstFrame && !t && (!this._hasMaskedPath || !this._pathData.m._mdf) )) ) { this._isFirstFrame = !1; var r = this._moreOptions.alignment.v, i = this._animatorsData, s = this._textData, a = this.mHelper, o = this._renderType, n = this.renderedLetters.length, l, f, g, S, c = e.l, P, d, p, x, u, y, m, A, T, E, _, I, B, z, G; if (this._hasMaskedPath) { if ( ((G = this._pathData.m), !this._pathData.n || this._pathData._mdf) ) { var R = G.v; this._pathData.r.v && (R = R.reverse()), (P = { tLength: 0, segments: [] }), (S = R._length - 1); var W; for (I = 0, g = 0; g < S; g += 1) (W = bez.buildBezierData( R.v[g], R.v[g + 1], [R.o[g][0] - R.v[g][0], R.o[g][1] - R.v[g][1]], [ R.i[g + 1][0] - R.v[g + 1][0], R.i[g + 1][1] - R.v[g + 1][1] ] )), (P.tLength += W.segmentLength), P.segments.push(W), (I += W.segmentLength); (g = S), G.v.c && ((W = bez.buildBezierData( R.v[g], R.v[0], [R.o[g][0] - R.v[g][0], R.o[g][1] - R.v[g][1]], [R.i[0][0] - R.v[0][0], R.i[0][1] - R.v[0][1]] )), (P.tLength += W.segmentLength), P.segments.push(W), (I += W.segmentLength)), (this._pathData.pi = P); } if ( ((P = this._pathData.pi), (d = this._pathData.f.v), (m = 0), (y = 1), (x = 0), (u = !0), (E = P.segments), d < 0 && G.v.c) ) for ( P.tLength < Math.abs(d) && (d = -Math.abs(d) % P.tLength), m = E.length - 1, T = E[m].points, y = T.length - 1; d < 0; ) (d += T[y].partialLength), (y -= 1), y < 0 && ((m -= 1), (T = E[m].points), (y = T.length - 1)); (T = E[m].points), (A = T[y - 1]), (p = T[y]), (_ = p.partialLength); } (S = c.length), (l = 0), (f = 0); var H = e.finalSize * 1.2 * 0.714, N = !0, M, k, b, C, L; C = i.length; var F, U = -1, D, V, O, j = d, $ = m, J = y, X = -1, Y, K, Z, Q, q, ee, te, ne, ae = '', oe = this.defaultPropsArray, le; if (e.j === 2 || e.j === 1) { var re = 0, he = 0, fe = e.j === 2 ? -0.5 : -1, ie = 0, ce = !0; for (g = 0; g < S; g += 1) if (c[g].n) { for (re && (re += he); ie < g; ) (c[ie].animatorJustifyOffset = re), (ie += 1); (re = 0), (ce = !0); } else { for (b = 0; b < C; b += 1) (M = i[b].a), M.t.propType && (ce && e.j === 2 && (he += M.t.v * fe), (k = i[b].s), (F = k.getMult(c[g].anIndexes[b], s.a[b].s.totalChars)), F.length ? (re += M.t.v * F[0] * fe) : (re += M.t.v * F * fe)); ce = !1; } for (re && (re += he); ie < g; ) (c[ie].animatorJustifyOffset = re), (ie += 1); } for (g = 0; g < S; g += 1) { if ((a.reset(), (Y = 1), c[g].n)) (l = 0), (f += e.yOffset), (f += N ? 1 : 0), (d = j), (N = !1), this._hasMaskedPath && ((m = $), (y = J), (T = E[m].points), (A = T[y - 1]), (p = T[y]), (_ = p.partialLength), (x = 0)), (ae = ''), (ne = ''), (ee = ''), (le = ''), (oe = this.defaultPropsArray); else { if (this._hasMaskedPath) { if (X !== c[g].line) { switch (e.j) { case 1: d += I - e.lineWidths[c[g].line]; break; case 2: d += (I - e.lineWidths[c[g].line]) / 2; break; } X = c[g].line; } U !== c[g].ind && (c[U] && (d += c[U].extra), (d += c[g].an / 2), (U = c[g].ind)), (d += r[0] * c[g].an * 0.005); var se = 0; for (b = 0; b < C; b += 1) (M = i[b].a), M.p.propType && ((k = i[b].s), (F = k.getMult(c[g].anIndexes[b], s.a[b].s.totalChars)), F.length ? (se += M.p.v[0] * F[0]) : (se += M.p.v[0] * F)), M.a.propType && ((k = i[b].s), (F = k.getMult(c[g].anIndexes[b], s.a[b].s.totalChars)), F.length ? (se += M.a.v[0] * F[0]) : (se += M.a.v[0] * F)); for ( u = !0, this._pathData.a.v && ((d = c[0].an * 0.5 + ((I - this._pathData.f.v - c[0].an * 0.5 - c[c.length - 1].an * 0.5) * U) / (S - 1)), (d += this._pathData.f.v)); u; ) x + _ >= d + se || !T ? ((B = (d + se - x) / p.partialLength), (V = A.point[0] + (p.point[0] - A.point[0]) * B), (O = A.point[1] + (p.point[1] - A.point[1]) * B), a.translate( -r[0] * c[g].an * 0.005, -(r[1] * H) * 0.01 ), (u = !1)) : T && ((x += p.partialLength), (y += 1), y >= T.length && ((y = 0), (m += 1), E[m] ? (T = E[m].points) : G.v.c ? ((y = 0), (m = 0), (T = E[m].points)) : ((x -= p.partialLength), (T = null))), T && ((A = p), (p = T[y]), (_ = p.partialLength))); (D = c[g].an / 2 - c[g].add), a.translate(-D, 0, 0); } else (D = c[g].an / 2 - c[g].add), a.translate(-D, 0, 0), a.translate(-r[0] * c[g].an * 0.005, -r[1] * H * 0.01, 0); for (b = 0; b < C; b += 1) (M = i[b].a), M.t.propType && ((k = i[b].s), (F = k.getMult(c[g].anIndexes[b], s.a[b].s.totalChars)), (l !== 0 || e.j !== 0) && (this._hasMaskedPath ? F.length ? (d += M.t.v * F[0]) : (d += M.t.v * F) : F.length ? (l += M.t.v * F[0]) : (l += M.t.v * F))); for ( e.strokeWidthAnim && (Z = e.sw || 0), e.strokeColorAnim && (e.sc ? (K = [e.sc[0], e.sc[1], e.sc[2]]) : (K = [0, 0, 0])), e.fillColorAnim && e.fc && (Q = [e.fc[0], e.fc[1], e.fc[2]]), b = 0; b < C; b += 1 ) (M = i[b].a), M.a.propType && ((k = i[b].s), (F = k.getMult(c[g].anIndexes[b], s.a[b].s.totalChars)), F.length ? a.translate( -M.a.v[0] * F[0], -M.a.v[1] * F[1], M.a.v[2] * F[2] ) : a.translate( -M.a.v[0] * F, -M.a.v[1] * F, M.a.v[2] * F )); for (b = 0; b < C; b += 1) (M = i[b].a), M.s.propType && ((k = i[b].s), (F = k.getMult(c[g].anIndexes[b], s.a[b].s.totalChars)), F.length ? a.scale( 1 + (M.s.v[0] - 1) * F[0], 1 + (M.s.v[1] - 1) * F[1], 1 ) : a.scale( 1 + (M.s.v[0] - 1) * F, 1 + (M.s.v[1] - 1) * F, 1 )); for (b = 0; b < C; b += 1) { if ( ((M = i[b].a), (k = i[b].s), (F = k.getMult(c[g].anIndexes[b], s.a[b].s.totalChars)), M.sk.propType && (F.length ? a.skewFromAxis(-M.sk.v * F[0], M.sa.v * F[1]) : a.skewFromAxis(-M.sk.v * F, M.sa.v * F)), M.r.propType && (F.length ? a.rotateZ(-M.r.v * F[2]) : a.rotateZ(-M.r.v * F)), M.ry.propType && (F.length ? a.rotateY(M.ry.v * F[1]) : a.rotateY(M.ry.v * F)), M.rx.propType && (F.length ? a.rotateX(M.rx.v * F[0]) : a.rotateX(M.rx.v * F)), M.o.propType && (F.length ? (Y += (M.o.v * F[0] - Y) * F[0]) : (Y += (M.o.v * F - Y) * F)), e.strokeWidthAnim && M.sw.propType && (F.length ? (Z += M.sw.v * F[0]) : (Z += M.sw.v * F)), e.strokeColorAnim && M.sc.propType) ) for (q = 0; q < 3; q += 1) F.length ? (K[q] += (M.sc.v[q] - K[q]) * F[0]) : (K[q] += (M.sc.v[q] - K[q]) * F); if (e.fillColorAnim && e.fc) { if (M.fc.propType) for (q = 0; q < 3; q += 1) F.length ? (Q[q] += (M.fc.v[q] - Q[q]) * F[0]) : (Q[q] += (M.fc.v[q] - Q[q]) * F); M.fh.propType && (F.length ? (Q = addHueToRGB(Q, M.fh.v * F[0])) : (Q = addHueToRGB(Q, M.fh.v * F))), M.fs.propType && (F.length ? (Q = addSaturationToRGB(Q, M.fs.v * F[0])) : (Q = addSaturationToRGB(Q, M.fs.v * F))), M.fb.propType && (F.length ? (Q = addBrightnessToRGB(Q, M.fb.v * F[0])) : (Q = addBrightnessToRGB(Q, M.fb.v * F))); } } for (b = 0; b < C; b += 1) (M = i[b].a), M.p.propType && ((k = i[b].s), (F = k.getMult(c[g].anIndexes[b], s.a[b].s.totalChars)), this._hasMaskedPath ? F.length ? a.translate(0, M.p.v[1] * F[0], -M.p.v[2] * F[1]) : a.translate(0, M.p.v[1] * F, -M.p.v[2] * F) : F.length ? a.translate( M.p.v[0] * F[0], M.p.v[1] * F[1], -M.p.v[2] * F[2] ) : a.translate( M.p.v[0] * F, M.p.v[1] * F, -M.p.v[2] * F )); if ( (e.strokeWidthAnim && (ee = Z < 0 ? 0 : Z), e.strokeColorAnim && (te = 'rgb(' + Math.round(K[0] * 255) + ',' + Math.round(K[1] * 255) + ',' + Math.round(K[2] * 255) + ')'), e.fillColorAnim && e.fc && (ne = 'rgb(' + Math.round(Q[0] * 255) + ',' + Math.round(Q[1] * 255) + ',' + Math.round(Q[2] * 255) + ')'), this._hasMaskedPath) ) { if ( (a.translate(0, -e.ls), a.translate(0, r[1] * H * 0.01 + f, 0), this._pathData.p.v) ) { z = (p.point[1] - A.point[1]) / (p.point[0] - A.point[0]); var pe = (Math.atan(z) * 180) / Math.PI; p.point[0] < A.point[0] && (pe += 180), a.rotate((-pe * Math.PI) / 180); } a.translate(V, O, 0), (d -= r[0] * c[g].an * 0.005), c[g + 1] && U !== c[g + 1].ind && ((d += c[g].an / 2), (d += e.tr * 0.001 * e.finalSize)); } else { switch ( (a.translate(l, f, 0), e.ps && a.translate(e.ps[0], e.ps[1] + e.ascent, 0), e.j) ) { case 1: a.translate( c[g].animatorJustifyOffset + e.justifyOffset + (e.boxWidth - e.lineWidths[c[g].line]), 0, 0 ); break; case 2: a.translate( c[g].animatorJustifyOffset + e.justifyOffset + (e.boxWidth - e.lineWidths[c[g].line]) / 2, 0, 0 ); break; } a.translate(0, -e.ls), a.translate(D, 0, 0), a.translate(r[0] * c[g].an * 0.005, r[1] * H * 0.01, 0), (l += c[g].l + e.tr * 0.001 * e.finalSize); } o === 'html' ? (ae = a.toCSS()) : o === 'svg' ? (ae = a.to2dCSS()) : (oe = [ a.props[0], a.props[1], a.props[2], a.props[3], a.props[4], a.props[5], a.props[6], a.props[7], a.props[8], a.props[9], a.props[10], a.props[11], a.props[12], a.props[13], a.props[14], a.props[15] ]), (le = Y); } n <= g ? ((L = new LetterProps(le, ee, te, ne, ae, oe)), this.renderedLetters.push(L), (n += 1), (this.lettersChangedFlag = !0)) : ((L = this.renderedLetters[g]), (this.lettersChangedFlag = L.update(le, ee, te, ne, ae, oe) || this.lettersChangedFlag)); } } }), (TextAnimatorProperty.prototype.getValue = function () { this._elem.globalData.frameId !== this._frameId && ((this._frameId = this._elem.globalData.frameId), this.iterateDynamicProperties()); }), (TextAnimatorProperty.prototype.mHelper = new Matrix()), (TextAnimatorProperty.prototype.defaultPropsArray = []), extendPrototype([DynamicPropertyContainer], TextAnimatorProperty); function ITextElement() {} (ITextElement.prototype.initElement = function (e, t, r) { (this.lettersChangedFlag = !0), this.initFrame(), this.initBaseData(e, t, r), (this.textProperty = new TextProperty( this, e.t, this.dynamicProperties )), (this.textAnimator = new TextAnimatorProperty( e.t, this.renderType, this )), this.initTransform(e, t, r), this.initHierarchy(), this.initRenderable(), this.initRendererElement(), this.createContainerElements(), this.createRenderableComponents(), this.createContent(), this.hide(), this.textAnimator.searchProperties(this.dynamicProperties); }), (ITextElement.prototype.prepareFrame = function (e) { (this._mdf = !1), this.prepareRenderableFrame(e), this.prepareProperties(e, this.isInRange); }), (ITextElement.prototype.createPathShape = function (e, t) { var r, i = t.length, s, a = ''; for (r = 0; r < i; r += 1) t[r].ty === 'sh' && ((s = t[r].ks.k), (a += buildShapeString(s, s.i.length, !0, e))); return a; }), (ITextElement.prototype.updateDocumentData = function (e, t) { this.textProperty.updateDocumentData(e, t); }), (ITextElement.prototype.canResizeFont = function (e) { this.textProperty.canResizeFont(e); }), (ITextElement.prototype.setMinimumFontSize = function (e) { this.textProperty.setMinimumFontSize(e); }), (ITextElement.prototype.applyTextPropertiesToMatrix = function ( e, t, r, i, s ) { switch ( (e.ps && t.translate(e.ps[0], e.ps[1] + e.ascent, 0), t.translate(0, -e.ls, 0), e.j) ) { case 1: t.translate( e.justifyOffset + (e.boxWidth - e.lineWidths[r]), 0, 0 ); break; case 2: t.translate( e.justifyOffset + (e.boxWidth - e.lineWidths[r]) / 2, 0, 0 ); break; } t.translate(i, s, 0); }), (ITextElement.prototype.buildColor = function (e) { return ( 'rgb(' + Math.round(e[0] * 255) + ',' + Math.round(e[1] * 255) + ',' + Math.round(e[2] * 255) + ')' ); }), (ITextElement.prototype.emptyProp = new LetterProps()), (ITextElement.prototype.destroy = function () {}), (ITextElement.prototype.validateText = function () { (this.textProperty._mdf || this.textProperty._isFirstFrame) && (this.buildNewText(), (this.textProperty._isFirstFrame = !1), (this.textProperty._mdf = !1)); }); var emptyShapeData = { shapes: [] }; function SVGTextLottieElement(e, t, r) { (this.textSpans = []), (this.renderType = 'svg'), this.initElement(e, t, r); } extendPrototype( [ BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement ], SVGTextLottieElement ), (SVGTextLottieElement.prototype.createContent = function () { this.data.singleShape && !this.globalData.fontManager.chars && (this.textContainer = createNS('text')); }), (SVGTextLottieElement.prototype.buildTextContents = function (e) { for (var t = 0, r = e.length, i = [], s = ''; t < r; ) e[t] === String.fromCharCode(13) || e[t] === String.fromCharCode(3) ? (i.push(s), (s = '')) : (s += e[t]), (t += 1); return i.push(s), i; }), (SVGTextLottieElement.prototype.buildShapeData = function (e, t) { if (e.shapes && e.shapes.length) { var r = e.shapes[0]; if (r.it) { var i = r.it[r.it.length - 1]; i.s && ((i.s.k[0] = t), (i.s.k[1] = t)); } } return e; }), (SVGTextLottieElement.prototype.buildNewText = function () { this.addDynamicProperty(this); var e, t, r = this.textProperty.currentData; (this.renderedLetters = createSizedArray(r ? r.l.length : 0)), r.fc ? this.layerElement.setAttribute('fill', this.buildColor(r.fc)) : this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)'), r.sc && (this.layerElement.setAttribute('stroke', this.buildColor(r.sc)), this.layerElement.setAttribute('stroke-width', r.sw)), this.layerElement.setAttribute('font-size', r.finalSize); var i = this.globalData.fontManager.getFontByName(r.f); if (i.fClass) this.layerElement.setAttribute('class', i.fClass); else { this.layerElement.setAttribute('font-family', i.fFamily); var s = r.fWeight, a = r.fStyle; this.layerElement.setAttribute('font-style', a), this.layerElement.setAttribute('font-weight', s); } this.layerElement.setAttribute('aria-label', r.t); var o = r.l || [], n = !!this.globalData.fontManager.chars; t = o.length; var l, f = this.mHelper, g = '', S = this.data.singleShape, c = 0, P = 0, d = !0, p = r.tr * 0.001 * r.finalSize; if (S && !n && !r.sz) { var x = this.textContainer, u = 'start'; switch (r.j) { case 1: u = 'end'; break; case 2: u = 'middle'; break; default: u = 'start'; break; } x.setAttribute('text-anchor', u), x.setAttribute('letter-spacing', p); var y = this.buildTextContents(r.finalText); for ( t = y.length, P = r.ps ? r.ps[1] + r.ascent : 0, e = 0; e < t; e += 1 ) (l = this.textSpans[e].span || createNS('tspan')), (l.textContent = y[e]), l.setAttribute('x', 0), l.setAttribute('y', P), (l.style.display = 'inherit'), x.appendChild(l), this.textSpans[e] || (this.textSpans[e] = { span: null, glyph: null }), (this.textSpans[e].span = l), (P += r.finalLineHeight); this.layerElement.appendChild(x); } else { var m = this.textSpans.length, A; for (e = 0; e < t; e += 1) { if ( (this.textSpans[e] || (this.textSpans[e] = { span: null, childSpan: null, glyph: null }), !n || !S || e === 0) ) { if ( ((l = m > e ? this.textSpans[e].span : createNS(n ? 'g' : 'text')), m <= e) ) { if ( (l.setAttribute('stroke-linecap', 'butt'), l.setAttribute('stroke-linejoin', 'round'), l.setAttribute('stroke-miterlimit', '4'), (this.textSpans[e].span = l), n) ) { var T = createNS('g'); l.appendChild(T), (this.textSpans[e].childSpan = T); } (this.textSpans[e].span = l), this.layerElement.appendChild(l); } l.style.display = 'inherit'; } if ( (f.reset(), S && (o[e].n && ((c = -p), (P += r.yOffset), (P += d ? 1 : 0), (d = !1)), this.applyTextPropertiesToMatrix(r, f, o[e].line, c, P), (c += o[e].l || 0), (c += p)), n) ) { A = this.globalData.fontManager.getCharData( r.finalText[e], i.fStyle, this.globalData.fontManager.getFontByName(r.f).fFamily ); var E; if (A.t === 1) E = new SVGCompElement(A.data, this.globalData, this); else { var _ = emptyShapeData; A.data && A.data.shapes && (_ = this.buildShapeData(A.data, r.finalSize)), (E = new SVGShapeElement(_, this.globalData, this)); } if (this.textSpans[e].glyph) { var I = this.textSpans[e].glyph; this.textSpans[e].childSpan.removeChild(I.layerElement), I.destroy(); } (this.textSpans[e].glyph = E), (E._debug = !0), E.prepareFrame(0), E.renderFrame(), this.textSpans[e].childSpan.appendChild(E.layerElement), A.t === 1 && this.textSpans[e].childSpan.setAttribute( 'transform', 'scale(' + r.finalSize / 100 + ',' + r.finalSize / 100 + ')' ); } else S && l.setAttribute( 'transform', 'translate(' + f.props[12] + ',' + f.props[13] + ')' ), (l.textContent = o[e].val), l.setAttributeNS( 'http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve' ); } S && l && l.setAttribute('d', g); } for (; e < this.textSpans.length; ) (this.textSpans[e].span.style.display = 'none'), (e += 1); this._sizeChanged = !0; }), (SVGTextLottieElement.prototype.sourceRectAtTime = function () { if ( (this.prepareFrame(this.comp.renderedFrame - this.data.st), this.renderInnerContent(), this._sizeChanged) ) { this._sizeChanged = !1; var e = this.layerElement.getBBox(); this.bbox = { top: e.y, left: e.x, width: e.width, height: e.height }; } return this.bbox; }), (SVGTextLottieElement.prototype.getValue = function () { var e, t = this.textSpans.length, r; for ( this.renderedFrame = this.comp.renderedFrame, e = 0; e < t; e += 1 ) (r = this.textSpans[e].glyph), r && (r.prepareFrame(this.comp.renderedFrame - this.data.st), r._mdf && (this._mdf = !0)); }), (SVGTextLottieElement.prototype.renderInnerContent = function () { if ( (this.validateText(), (!this.data.singleShape || this._mdf) && (this.textAnimator.getMeasures( this.textProperty.currentData, this.lettersChangedFlag ), this.lettersChangedFlag || this.textAnimator.lettersChangedFlag)) ) { this._sizeChanged = !0; var e, t, r = this.textAnimator.renderedLetters, i = this.textProperty.currentData.l; t = i.length; var s, a, o; for (e = 0; e < t; e += 1) i[e].n || ((s = r[e]), (a = this.textSpans[e].span), (o = this.textSpans[e].glyph), o && o.renderFrame(), s._mdf.m && a.setAttribute('transform', s.m), s._mdf.o && a.setAttribute('opacity', s.o), s._mdf.sw && a.setAttribute('stroke-width', s.sw), s._mdf.sc && a.setAttribute('stroke', s.sc), s._mdf.fc && a.setAttribute('fill', s.fc)); } }); function ISolidElement(e, t, r) { this.initElement(e, t, r); } extendPrototype([IImageElement], ISolidElement), (ISolidElement.prototype.createContent = function () { var e = createNS('rect'); e.setAttribute('width', this.data.sw), e.setAttribute('height', this.data.sh), e.setAttribute('fill', this.data.sc), this.layerElement.appendChild(e); }); function NullElement(e, t, r) { this.initFrame(), this.initBaseData(e, t, r), this.initFrame(), this.initTransform(e, t, r), this.initHierarchy(); } (NullElement.prototype.prepareFrame = function (e) { this.prepareProperties(e, !0); }), (NullElement.prototype.renderFrame = function () {}), (NullElement.prototype.getBaseElement = function () { return null; }), (NullElement.prototype.destroy = function () {}), (NullElement.prototype.sourceRectAtTime = function () {}), (NullElement.prototype.hide = function () {}), extendPrototype( [BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement ); function SVGRendererBase() {} extendPrototype([BaseRenderer], SVGRendererBase), (SVGRendererBase.prototype.createNull = function (e) { return new NullElement(e, this.globalData, this); }), (SVGRendererBase.prototype.createShape = function (e) { return new SVGShapeElement(e, this.globalData, this); }), (SVGRendererBase.prototype.createText = function (e) { return new SVGTextLottieElement(e, this.globalData, this); }), (SVGRendererBase.prototype.createImage = function (e) { return new IImageElement(e, this.globalData, this); }), (SVGRendererBase.prototype.createSolid = function (e) { return new ISolidElement(e, this.globalData, this); }), (SVGRendererBase.prototype.configAnimation = function (e) { this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg'), this.svgElement.setAttribute( 'xmlns:xlink', 'http://www.w3.org/1999/xlink' ), this.renderConfig.viewBoxSize ? this.svgElement.setAttribute( 'viewBox', this.renderConfig.viewBoxSize ) : this.svgElement.setAttribute( 'viewBox', '0 0 ' + e.w + ' ' + e.h ), this.renderConfig.viewBoxOnly || (this.svgElement.setAttribute('width', e.w), this.svgElement.setAttribute('height', e.h), (this.svgElement.style.width = '100%'), (this.svgElement.style.height = '100%'), (this.svgElement.style.transform = 'translate3d(0,0,0)'), (this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility)), this.renderConfig.width && this.svgElement.setAttribute('width', this.renderConfig.width), this.renderConfig.height && this.svgElement.setAttribute('height', this.renderConfig.height), this.renderConfig.className && this.svgElement.setAttribute( 'class', this.renderConfig.className ), this.renderConfig.id && this.svgElement.setAttribute('id', this.renderConfig.id), this.renderConfig.focusable !== void 0 && this.svgElement.setAttribute( 'focusable', this.renderConfig.focusable ), this.svgElement.setAttribute( 'preserveAspectRatio', this.renderConfig.preserveAspectRatio ), this.animationItem.wrapper.appendChild(this.svgElement); var t = this.globalData.defs; this.setupGlobalData(e, t), (this.globalData.progressiveLoad = this.renderConfig.progressiveLoad), (this.data = e); var r = createNS('clipPath'), i = createNS('rect'); i.setAttribute('width', e.w), i.setAttribute('height', e.h), i.setAttribute('x', 0), i.setAttribute('y', 0); var s = createElementID(); r.setAttribute('id', s), r.appendChild(i), this.layerElement.setAttribute( 'clip-path', 'url(' + getLocationHref() + '#' + s + ')' ), t.appendChild(r), (this.layers = e.layers), (this.elements = createSizedArray(e.layers.length)); }), (SVGRendererBase.prototype.destroy = function () { this.animationItem.wrapper && (this.animationItem.wrapper.innerText = ''), (this.layerElement = null), (this.globalData.defs = null); var e, t = this.layers ? this.layers.length : 0; for (e = 0; e < t; e += 1) this.elements[e] && this.elements[e].destroy && this.elements[e].destroy(); (this.elements.length = 0), (this.destroyed = !0), (this.animationItem = null); }), (SVGRendererBase.prototype.updateContainerSize = function () {}), (SVGRendererBase.prototype.findIndexByInd = function (e) { var t = 0, r = this.layers.length; for (t = 0; t < r; t += 1) if (this.layers[t].ind === e) return t; return -1; }), (SVGRendererBase.prototype.buildItem = function (e) { var t = this.elements; if (!(t[e] || this.layers[e].ty === 99)) { t[e] = !0; var r = this.createItem(this.layers[e]); if ( ((t[e] = r), getExpressionsPlugin() && (this.layers[e].ty === 0 && this.globalData.projectInterface.registerComposition(r), r.initExpressions()), this.appendElementInPos(r, e), this.layers[e].tt) ) { var i = 'tp' in this.layers[e] ? this.findIndexByInd(this.layers[e].tp) : e - 1; if (i === -1) return; if (!this.elements[i] || this.elements[i] === !0) this.buildItem(i), this.addPendingElement(r); else { var s = t[i], a = s.getMatte(this.layers[e].tt); r.setMatte(a); } } } }), (SVGRendererBase.prototype.checkPendingElements = function () { for (; this.pendingElements.length; ) { var e = this.pendingElements.pop(); if ((e.checkParenting(), e.data.tt)) for (var t = 0, r = this.elements.length; t < r; ) { if (this.elements[t] === e) { var i = 'tp' in e.data ? this.findIndexByInd(e.data.tp) : t - 1, s = this.elements[i], a = s.getMatte(this.layers[t].tt); e.setMatte(a); break; } t += 1; } } }), (SVGRendererBase.prototype.renderFrame = function (e) { if (!(this.renderedFrame === e || this.destroyed)) { e === null ? (e = this.renderedFrame) : (this.renderedFrame = e), (this.globalData.frameNum = e), (this.globalData.frameId += 1), (this.globalData.projectInterface.currentFrame = e), (this.globalData._mdf = !1); var t, r = this.layers.length; for ( this.completeLayers || this.checkLayers(e), t = r - 1; t >= 0; t -= 1 ) (this.completeLayers || this.elements[t]) && this.elements[t].prepareFrame(e - this.layers[t].st); if (this.globalData._mdf) for (t = 0; t < r; t += 1) (this.completeLayers || this.elements[t]) && this.elements[t].renderFrame(); } }), (SVGRendererBase.prototype.appendElementInPos = function (e, t) { var r = e.getBaseElement(); if (r) { for (var i = 0, s; i < t; ) this.elements[i] && this.elements[i] !== !0 && this.elements[i].getBaseElement() && (s = this.elements[i].getBaseElement()), (i += 1); s ? this.layerElement.insertBefore(r, s) : this.layerElement.appendChild(r); } }), (SVGRendererBase.prototype.hide = function () { this.layerElement.style.display = 'none'; }), (SVGRendererBase.prototype.show = function () { this.layerElement.style.display = 'block'; }); function ICompElement() {} extendPrototype( [ BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement ], ICompElement ), (ICompElement.prototype.initElement = function (e, t, r) { this.initFrame(), this.initBaseData(e, t, r), this.initTransform(e, t, r), this.initRenderable(), this.initHierarchy(), this.initRendererElement(), this.createContainerElements(), this.createRenderableComponents(), (this.data.xt || !t.progressiveLoad) && this.buildAllItems(), this.hide(); }), (ICompElement.prototype.prepareFrame = function (e) { if ( ((this._mdf = !1), this.prepareRenderableFrame(e), this.prepareProperties(e, this.isInRange), !(!this.isInRange && !this.data.xt)) ) { if (this.tm._placeholder) this.renderedFrame = e / this.data.sr; else { var t = this.tm.v; t === this.data.op && (t = this.data.op - 1), (this.renderedFrame = t); } var r, i = this.elements.length; for ( this.completeLayers || this.checkLayers(this.renderedFrame), r = i - 1; r >= 0; r -= 1 ) (this.completeLayers || this.elements[r]) && (this.elements[r].prepareFrame( this.renderedFrame - this.layers[r].st ), this.elements[r]._mdf && (this._mdf = !0)); } }), (ICompElement.prototype.renderInnerContent = function () { var e, t = this.layers.length; for (e = 0; e < t; e += 1) (this.completeLayers || this.elements[e]) && this.elements[e].renderFrame(); }), (ICompElement.prototype.setElements = function (e) { this.elements = e; }), (ICompElement.prototype.getElements = function () { return this.elements; }), (ICompElement.prototype.destroyElements = function () { var e, t = this.layers.length; for (e = 0; e < t; e += 1) this.elements[e] && this.elements[e].destroy(); }), (ICompElement.prototype.destroy = function () { this.destroyElements(), this.destroyBaseElement(); }); function SVGCompElement(e, t, r) { (this.layers = e.layers), (this.supports3d = !0), (this.completeLayers = !1), (this.pendingElements = []), (this.elements = this.layers ? createSizedArray(this.layers.length) : []), this.initElement(e, t, r), (this.tm = e.tm ? PropertyFactory.getProp(this, e.tm, 0, t.frameRate, this) : { _placeholder: !0 }); } extendPrototype( [SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement ), (SVGCompElement.prototype.createComp = function (e) { return new SVGCompElement(e, this.globalData, this); }); function SVGRenderer(e, t) { (this.animationItem = e), (this.layers = null), (this.renderedFrame = -1), (this.svgElement = createNS('svg')); var r = ''; if (t && t.title) { var i = createNS('title'), s = createElementID(); i.setAttribute('id', s), (i.textContent = t.title), this.svgElement.appendChild(i), (r += s); } if (t && t.description) { var a = createNS('desc'), o = createElementID(); a.setAttribute('id', o), (a.textContent = t.description), this.svgElement.appendChild(a), (r += ' ' + o); } r && this.svgElement.setAttribute('aria-labelledby', r); var n = createNS('defs'); this.svgElement.appendChild(n); var l = createNS('g'); this.svgElement.appendChild(l), (this.layerElement = l), (this.renderConfig = { preserveAspectRatio: (t && t.preserveAspectRatio) || 'xMidYMid meet', imagePreserveAspectRatio: (t && t.imagePreserveAspectRatio) || 'xMidYMid slice', contentVisibility: (t && t.contentVisibility) || 'visible', progressiveLoad: (t && t.progressiveLoad) || !1, hideOnTransparent: !(t && t.hideOnTransparent === !1), viewBoxOnly: (t && t.viewBoxOnly) || !1, viewBoxSize: (t && t.viewBoxSize) || !1, className: (t && t.className) || '', id: (t && t.id) || '', focusable: t && t.focusable, filterSize: { width: (t && t.filterSize && t.filterSize.width) || '100%', height: (t && t.filterSize && t.filterSize.height) || '100%', x: (t && t.filterSize && t.filterSize.x) || '0%', y: (t && t.filterSize && t.filterSize.y) || '0%' }, width: t && t.width, height: t && t.height, runExpressions: !t || t.runExpressions === void 0 || t.runExpressions }), (this.globalData = { _mdf: !1, frameNum: -1, defs: n, renderConfig: this.renderConfig }), (this.elements = []), (this.pendingElements = []), (this.destroyed = !1), (this.rendererType = 'svg'); } extendPrototype([SVGRendererBase], SVGRenderer), (SVGRenderer.prototype.createComp = function (e) { return new SVGCompElement(e, this.globalData, this); }); function ShapeTransformManager() { (this.sequences = {}), (this.sequenceList = []), (this.transform_key_count = 0); } ShapeTransformManager.prototype = { addTransformSequence: function (t) { var r, i = t.length, s = '_'; for (r = 0; r < i; r += 1) s += t[r].transform.key + '_'; var a = this.sequences[s]; return ( a || ((a = { transforms: [].concat(t), finalTransform: new Matrix(), _mdf: !1 }), (this.sequences[s] = a), this.sequenceList.push(a)), a ); }, processSequence: function (t, r) { for (var i = 0, s = t.transforms.length, a = r; i < s && !r; ) { if (t.transforms[i].transform.mProps._mdf) { a = !0; break; } i += 1; } if (a) for (t.finalTransform.reset(), i = s - 1; i >= 0; i -= 1) t.finalTransform.multiply(t.transforms[i].transform.mProps.v); t._mdf = a; }, processSequences: function (t) { var r, i = this.sequenceList.length; for (r = 0; r < i; r += 1) this.processSequence(this.sequenceList[r], t); }, getNewKey: function () { return ( (this.transform_key_count += 1), '_' + this.transform_key_count ); } }; var lumaLoader = function () { var t = '__lottie_element_luma_buffer', r = null, i = null, s = null; function a() { var l = createNS('svg'), f = createNS('filter'), g = createNS('feColorMatrix'); return ( f.setAttribute('id', t), g.setAttribute('type', 'matrix'), g.setAttribute('color-interpolation-filters', 'sRGB'), g.setAttribute( 'values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0' ), f.appendChild(g), l.appendChild(f), l.setAttribute('id', t + '_svg'), featureSupport.svgLumaHidden && (l.style.display = 'none'), l ); } function o() { r || ((s = a()), document.body.appendChild(s), (r = createTag('canvas')), (i = r.getContext('2d')), (i.filter = 'url(#' + t + ')'), (i.fillStyle = 'rgba(0,0,0,0)'), i.fillRect(0, 0, 1, 1)); } function n(l) { return ( r || o(), (r.width = l.width), (r.height = l.height), (i.filter = 'url(#' + t + ')'), r ); } return { load: o, get: n }; }; function createCanvas(e, t) { if (featureSupport.offscreenCanvas) return new OffscreenCanvas(e, t); var r = createTag('canvas'); return (r.width = e), (r.height = t), r; } var assetLoader = (function () { return { loadLumaCanvas: lumaLoader.load, getLumaCanvas: lumaLoader.get, createCanvas }; })(), registeredEffects = {}; function CVEffects(e) { var t, r = e.data.ef ? e.data.ef.length : 0; this.filters = []; var i; for (t = 0; t < r; t += 1) { i = null; var s = e.data.ef[t].ty; if (registeredEffects[s]) { var a = registeredEffects[s].effect; i = new a(e.effectsManager.effectElements[t], e); } i && this.filters.push(i); } this.filters.length && e.addRenderableComponent(this); } (CVEffects.prototype.renderFrame = function (e) { var t, r = this.filters.length; for (t = 0; t < r; t += 1) this.filters[t].renderFrame(e); }), (CVEffects.prototype.getEffects = function (e) { var t, r = this.filters.length, i = []; for (t = 0; t < r; t += 1) this.filters[t].type === e && i.push(this.filters[t]); return i; }); function registerEffect(e, t) { registeredEffects[e] = { effect: t }; } function CVMaskElement(e, t) { (this.data = e), (this.element = t), (this.masksProperties = this.data.masksProperties || []), (this.viewData = createSizedArray(this.masksProperties.length)); var r, i = this.masksProperties.length, s = !1; for (r = 0; r < i; r += 1) this.masksProperties[r].mode !== 'n' && (s = !0), (this.viewData[r] = ShapePropertyFactory.getShapeProp( this.element, this.masksProperties[r], 3 )); (this.hasMasks = s), s && this.element.addRenderableComponent(this); } (CVMaskElement.prototype.renderFrame = function () { if (this.hasMasks) { var e = this.element.finalTransform.mat, t = this.element.canvasContext, r, i = this.masksProperties.length, s, a, o; for (t.beginPath(), r = 0; r < i; r += 1) if (this.masksProperties[r].mode !== 'n') { this.masksProperties[r].inv && (t.moveTo(0, 0), t.lineTo(this.element.globalData.compSize.w, 0), t.lineTo( this.element.globalData.compSize.w, this.element.globalData.compSize.h ), t.lineTo(0, this.element.globalData.compSize.h), t.lineTo(0, 0)), (o = this.viewData[r].v), (s = e.applyToPointArray(o.v[0][0], o.v[0][1], 0)), t.moveTo(s[0], s[1]); var n, l = o._length; for (n = 1; n < l; n += 1) (a = e.applyToTriplePoints(o.o[n - 1], o.i[n], o.v[n])), t.bezierCurveTo(a[0], a[1], a[2], a[3], a[4], a[5]); (a = e.applyToTriplePoints(o.o[n - 1], o.i[0], o.v[0])), t.bezierCurveTo(a[0], a[1], a[2], a[3], a[4], a[5]); } this.element.globalData.renderer.save(!0), t.clip(); } }), (CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty), (CVMaskElement.prototype.destroy = function () { this.element = null; }); function CVBaseElement() {} var operationsMap = { 1: 'source-in', 2: 'source-out', 3: 'source-in', 4: 'source-out' }; (CVBaseElement.prototype = { createElements: function () {}, initRendererElement: function () {}, createContainerElements: function () { if (this.data.tt >= 1) { this.buffers = []; var t = this.globalData.canvasContext, r = assetLoader.createCanvas(t.canvas.width, t.canvas.height); this.buffers.push(r); var i = assetLoader.createCanvas(t.canvas.width, t.canvas.height); this.buffers.push(i), this.data.tt >= 3 && !document._isProxy && assetLoader.loadLumaCanvas(); } (this.canvasContext = this.globalData.canvasContext), (this.transformCanvas = this.globalData.transformCanvas), (this.renderableEffectsManager = new CVEffects(this)), this.searchEffectTransforms(); }, createContent: function () {}, setBlendMode: function () { var t = this.globalData; if (t.blendMode !== this.data.bm) { t.blendMode = this.data.bm; var r = getBlendMode(this.data.bm); t.canvasContext.globalCompositeOperation = r; } }, createRenderableComponents: function () { (this.maskManager = new CVMaskElement(this.data, this)), (this.transformEffects = this.renderableEffectsManager.getEffects( effectTypes.TRANSFORM_EFFECT )); }, hideElement: function () { !this.hidden && (!this.isInRange || this.isTransparent) && (this.hidden = !0); }, showElement: function () { this.isInRange && !this.isTransparent && ((this.hidden = !1), (this._isFirstFrame = !0), (this.maskManager._isFirstFrame = !0)); }, clearCanvas: function (t) { t.clearRect( this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy ); }, prepareLayer: function () { if (this.data.tt >= 1) { var t = this.buffers[0], r = t.getContext('2d'); this.clearCanvas(r), r.drawImage(this.canvasContext.canvas, 0, 0), (this.currentTransform = this.canvasContext.getTransform()), this.canvasContext.setTransform(1, 0, 0, 1, 0, 0), this.clearCanvas(this.canvasContext), this.canvasContext.setTransform(this.currentTransform); } }, exitLayer: function () { if (this.data.tt >= 1) { var t = this.buffers[1], r = t.getContext('2d'); this.clearCanvas(r), r.drawImage(this.canvasContext.canvas, 0, 0), this.canvasContext.setTransform(1, 0, 0, 1, 0, 0), this.clearCanvas(this.canvasContext), this.canvasContext.setTransform(this.currentTransform); var i = this.comp.getElementById( 'tp' in this.data ? this.data.tp : this.data.ind - 1 ); if ( (i.renderFrame(!0), this.canvasContext.setTransform(1, 0, 0, 1, 0, 0), this.data.tt >= 3 && !document._isProxy) ) { var s = assetLoader.getLumaCanvas(this.canvasContext.canvas), a = s.getContext('2d'); a.drawImage(this.canvasContext.canvas, 0, 0), this.clearCanvas(this.canvasContext), this.canvasContext.drawImage(s, 0, 0); } (this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt]), this.canvasContext.drawImage(t, 0, 0), (this.canvasContext.globalCompositeOperation = 'destination-over'), this.canvasContext.drawImage(this.buffers[0], 0, 0), this.canvasContext.setTransform(this.currentTransform), (this.canvasContext.globalCompositeOperation = 'source-over'); } }, renderFrame: function (t) { if (!(this.hidden || this.data.hd) && !(this.data.td === 1 && !t)) { this.renderTransform(), this.renderRenderable(), this.renderLocalTransform(), this.setBlendMode(); var r = this.data.ty === 0; this.prepareLayer(), this.globalData.renderer.save(r), this.globalData.renderer.ctxTransform( this.finalTransform.localMat.props ), this.globalData.renderer.ctxOpacity( this.finalTransform.localOpacity ), this.renderInnerContent(), this.globalData.renderer.restore(r), this.exitLayer(), this.maskManager.hasMasks && this.globalData.renderer.restore(!0), this._isFirstFrame && (this._isFirstFrame = !1); } }, destroy: function () { (this.canvasContext = null), (this.data = null), (this.globalData = null), this.maskManager.destroy(); }, mHelper: new Matrix() }), (CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement), (CVBaseElement.prototype.show = CVBaseElement.prototype.showElement); function CVShapeData(e, t, r, i) { (this.styledShapes = []), (this.tr = [0, 0, 0, 0, 0, 0]); var s = 4; t.ty === 'rc' ? (s = 5) : t.ty === 'el' ? (s = 6) : t.ty === 'sr' && (s = 7), (this.sh = ShapePropertyFactory.getShapeProp(e, t, s, e)); var a, o = r.length, n; for (a = 0; a < o; a += 1) r[a].closed || ((n = { transforms: i.addTransformSequence(r[a].transforms), trNodes: [] }), this.styledShapes.push(n), r[a].elements.push(n)); } CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated; function CVShapeElement(e, t, r) { (this.shapes = []), (this.shapesData = e.shapes), (this.stylesList = []), (this.itemsData = []), (this.prevViewData = []), (this.shapeModifiers = []), (this.processedElements = []), (this.transformsManager = new ShapeTransformManager()), this.initElement(e, t, r); } extendPrototype( [ BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement ], CVShapeElement ), (CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement), (CVShapeElement.prototype.transformHelper = { opacity: 1, _opMdf: !1 }), (CVShapeElement.prototype.dashResetter = []), (CVShapeElement.prototype.createContent = function () { this.searchShapes( this.shapesData, this.itemsData, this.prevViewData, !0, [] ); }), (CVShapeElement.prototype.createStyleElement = function (e, t) { var r = { data: e, type: e.ty, preTransforms: this.transformsManager.addTransformSequence(t), transforms: [], elements: [], closed: e.hd === !0 }, i = {}; if ( (e.ty === 'fl' || e.ty === 'st' ? ((i.c = PropertyFactory.getProp(this, e.c, 1, 255, this)), i.c.k || (r.co = 'rgb(' + bmFloor(i.c.v[0]) + ',' + bmFloor(i.c.v[1]) + ',' + bmFloor(i.c.v[2]) + ')')) : (e.ty === 'gf' || e.ty === 'gs') && ((i.s = PropertyFactory.getProp(this, e.s, 1, null, this)), (i.e = PropertyFactory.getProp(this, e.e, 1, null, this)), (i.h = PropertyFactory.getProp( this, e.h || { k: 0 }, 0, 0.01, this )), (i.a = PropertyFactory.getProp( this, e.a || { k: 0 }, 0, degToRads, this )), (i.g = new GradientProperty(this, e.g, this))), (i.o = PropertyFactory.getProp(this, e.o, 0, 0.01, this)), e.ty === 'st' || e.ty === 'gs') ) { if ( ((r.lc = lineCapEnum[e.lc || 2]), (r.lj = lineJoinEnum[e.lj || 2]), e.lj == 1 && (r.ml = e.ml), (i.w = PropertyFactory.getProp(this, e.w, 0, null, this)), i.w.k || (r.wi = i.w.v), e.d) ) { var s = new DashProperty(this, e.d, 'canvas', this); (i.d = s), i.d.k || ((r.da = i.d.dashArray), (r.do = i.d.dashoffset[0])); } } else r.r = e.r === 2 ? 'evenodd' : 'nonzero'; return this.stylesList.push(r), (i.style = r), i; }), (CVShapeElement.prototype.createGroupElement = function () { var e = { it: [], prevViewData: [] }; return e; }), (CVShapeElement.prototype.createTransformElement = function (e) { var t = { transform: { opacity: 1, _opMdf: !1, key: this.transformsManager.getNewKey(), op: PropertyFactory.getProp(this, e.o, 0, 0.01, this), mProps: TransformPropertyFactory.getTransformProperty( this, e, this ) } }; return t; }), (CVShapeElement.prototype.createShapeElement = function (e) { var t = new CVShapeData( this, e, this.stylesList, this.transformsManager ); return this.shapes.push(t), this.addShapeToModifiers(t), t; }), (CVShapeElement.prototype.reloadShapes = function () { this._isFirstFrame = !0; var e, t = this.itemsData.length; for (e = 0; e < t; e += 1) this.prevViewData[e] = this.itemsData[e]; for ( this.searchShapes( this.shapesData, this.itemsData, this.prevViewData, !0, [] ), t = this.dynamicProperties.length, e = 0; e < t; e += 1 ) this.dynamicProperties[e].getValue(); this.renderModifiers(), this.transformsManager.processSequences(this._isFirstFrame); }), (CVShapeElement.prototype.addTransformToStyleList = function (e) { var t, r = this.stylesList.length; for (t = 0; t < r; t += 1) this.stylesList[t].closed || this.stylesList[t].transforms.push(e); }), (CVShapeElement.prototype.removeTransformFromStyleList = function () { var e, t = this.stylesList.length; for (e = 0; e < t; e += 1) this.stylesList[e].closed || this.stylesList[e].transforms.pop(); }), (CVShapeElement.prototype.closeStyles = function (e) { var t, r = e.length; for (t = 0; t < r; t += 1) e[t].closed = !0; }), (CVShapeElement.prototype.searchShapes = function (e, t, r, i, s) { var a, o = e.length - 1, n, l, f = [], g = [], S, c, P, d = [].concat(s); for (a = o; a >= 0; a -= 1) { if ( ((S = this.searchProcessedElement(e[a])), S ? (t[a] = r[S - 1]) : (e[a]._shouldRender = i), e[a].ty === 'fl' || e[a].ty === 'st' || e[a].ty === 'gf' || e[a].ty === 'gs') ) S ? (t[a].style.closed = !1) : (t[a] = this.createStyleElement(e[a], d)), f.push(t[a].style); else if (e[a].ty === 'gr') { if (!S) t[a] = this.createGroupElement(e[a]); else for (l = t[a].it.length, n = 0; n < l; n += 1) t[a].prevViewData[n] = t[a].it[n]; this.searchShapes(e[a].it, t[a].it, t[a].prevViewData, i, d); } else e[a].ty === 'tr' ? (S || ((P = this.createTransformElement(e[a])), (t[a] = P)), d.push(t[a]), this.addTransformToStyleList(t[a])) : e[a].ty === 'sh' || e[a].ty === 'rc' || e[a].ty === 'el' || e[a].ty === 'sr' ? S || (t[a] = this.createShapeElement(e[a])) : e[a].ty === 'tm' || e[a].ty === 'rd' || e[a].ty === 'pb' || e[a].ty === 'zz' || e[a].ty === 'op' ? (S ? ((c = t[a]), (c.closed = !1)) : ((c = ShapeModifiers.getModifier(e[a].ty)), c.init(this, e[a]), (t[a] = c), this.shapeModifiers.push(c)), g.push(c)) : e[a].ty === 'rp' && (S ? ((c = t[a]), (c.closed = !0)) : ((c = ShapeModifiers.getModifier(e[a].ty)), (t[a] = c), c.init(this, e, a, t), this.shapeModifiers.push(c), (i = !1)), g.push(c)); this.addProcessedElement(e[a], a + 1); } for ( this.removeTransformFromStyleList(), this.closeStyles(f), o = g.length, a = 0; a < o; a += 1 ) g[a].closed = !0; }), (CVShapeElement.prototype.renderInnerContent = function () { (this.transformHelper.opacity = 1), (this.transformHelper._opMdf = !1), this.renderModifiers(), this.transformsManager.processSequences(this._isFirstFrame), this.renderShape( this.transformHelper, this.shapesData, this.itemsData, !0 ); }), (CVShapeElement.prototype.renderShapeTransform = function (e, t) { (e._opMdf || t.op._mdf || this._isFirstFrame) && ((t.opacity = e.opacity), (t.opacity *= t.op.v), (t._opMdf = !0)); }), (CVShapeElement.prototype.drawLayer = function () { var e, t = this.stylesList.length, r, i, s, a, o, n, l = this.globalData.renderer, f = this.globalData.canvasContext, g, S; for (e = 0; e < t; e += 1) if ( ((S = this.stylesList[e]), (g = S.type), !( ((g === 'st' || g === 'gs') && S.wi === 0) || !S.data._shouldRender || S.coOp === 0 || this.globalData.currentGlobalAlpha === 0 )) ) { for ( l.save(), o = S.elements, g === 'st' || g === 'gs' ? (l.ctxStrokeStyle(g === 'st' ? S.co : S.grd), l.ctxLineWidth(S.wi), l.ctxLineCap(S.lc), l.ctxLineJoin(S.lj), l.ctxMiterLimit(S.ml || 0)) : l.ctxFillStyle(g === 'fl' ? S.co : S.grd), l.ctxOpacity(S.coOp), g !== 'st' && g !== 'gs' && f.beginPath(), l.ctxTransform(S.preTransforms.finalTransform.props), i = o.length, r = 0; r < i; r += 1 ) { for ( (g === 'st' || g === 'gs') && (f.beginPath(), S.da && (f.setLineDash(S.da), (f.lineDashOffset = S.do))), n = o[r].trNodes, a = n.length, s = 0; s < a; s += 1 ) n[s].t === 'm' ? f.moveTo(n[s].p[0], n[s].p[1]) : n[s].t === 'c' ? f.bezierCurveTo( n[s].pts[0], n[s].pts[1], n[s].pts[2], n[s].pts[3], n[s].pts[4], n[s].pts[5] ) : f.closePath(); (g === 'st' || g === 'gs') && (l.ctxStroke(), S.da && f.setLineDash(this.dashResetter)); } g !== 'st' && g !== 'gs' && this.globalData.renderer.ctxFill(S.r), l.restore(); } }), (CVShapeElement.prototype.renderShape = function (e, t, r, i) { var s, a = t.length - 1, o; for (o = e, s = a; s >= 0; s -= 1) t[s].ty === 'tr' ? ((o = r[s].transform), this.renderShapeTransform(e, o)) : t[s].ty === 'sh' || t[s].ty === 'el' || t[s].ty === 'rc' || t[s].ty === 'sr' ? this.renderPath(t[s], r[s]) : t[s].ty === 'fl' ? this.renderFill(t[s], r[s], o) : t[s].ty === 'st' ? this.renderStroke(t[s], r[s], o) : t[s].ty === 'gf' || t[s].ty === 'gs' ? this.renderGradientFill(t[s], r[s], o) : t[s].ty === 'gr' ? this.renderShape(o, t[s].it, r[s].it) : t[s].ty; i && this.drawLayer(); }), (CVShapeElement.prototype.renderStyledShape = function (e, t) { if (this._isFirstFrame || t._mdf || e.transforms._mdf) { var r = e.trNodes, i = t.paths, s, a, o, n = i._length; r.length = 0; var l = e.transforms.finalTransform; for (o = 0; o < n; o += 1) { var f = i.shapes[o]; if (f && f.v) { for (a = f._length, s = 1; s < a; s += 1) s === 1 && r.push({ t: 'm', p: l.applyToPointArray(f.v[0][0], f.v[0][1], 0) }), r.push({ t: 'c', pts: l.applyToTriplePoints(f.o[s - 1], f.i[s], f.v[s]) }); a === 1 && r.push({ t: 'm', p: l.applyToPointArray(f.v[0][0], f.v[0][1], 0) }), f.c && a && (r.push({ t: 'c', pts: l.applyToTriplePoints(f.o[s - 1], f.i[0], f.v[0]) }), r.push({ t: 'z' })); } } e.trNodes = r; } }), (CVShapeElement.prototype.renderPath = function (e, t) { if (e.hd !== !0 && e._shouldRender) { var r, i = t.styledShapes.length; for (r = 0; r < i; r += 1) this.renderStyledShape(t.styledShapes[r], t.sh); } }), (CVShapeElement.prototype.renderFill = function (e, t, r) { var i = t.style; (t.c._mdf || this._isFirstFrame) && (i.co = 'rgb(' + bmFloor(t.c.v[0]) + ',' + bmFloor(t.c.v[1]) + ',' + bmFloor(t.c.v[2]) + ')'), (t.o._mdf || r._opMdf || this._isFirstFrame) && (i.coOp = t.o.v * r.opacity); }), (CVShapeElement.prototype.renderGradientFill = function (e, t, r) { var i = t.style, s; if ( !i.grd || t.g._mdf || t.s._mdf || t.e._mdf || (e.t !== 1 && (t.h._mdf || t.a._mdf)) ) { var a = this.globalData.canvasContext, o = t.s.v, n = t.e.v; if (e.t === 1) s = a.createLinearGradient(o[0], o[1], n[0], n[1]); else { var l = Math.sqrt( Math.pow(o[0] - n[0], 2) + Math.pow(o[1] - n[1], 2) ), f = Math.atan2(n[1] - o[1], n[0] - o[0]), g = t.h.v; g >= 1 ? (g = 0.99) : g <= -1 && (g = -0.99); var S = l * g, c = Math.cos(f + t.a.v) * S + o[0], P = Math.sin(f + t.a.v) * S + o[1]; s = a.createRadialGradient(c, P, 0, o[0], o[1], l); } var d, p = e.g.p, x = t.g.c, u = 1; for (d = 0; d < p; d += 1) t.g._hasOpacity && t.g._collapsable && (u = t.g.o[d * 2 + 1]), s.addColorStop( x[d * 4] / 100, 'rgba(' + x[d * 4 + 1] + ',' + x[d * 4 + 2] + ',' + x[d * 4 + 3] + ',' + u + ')' ); i.grd = s; } i.coOp = t.o.v * r.opacity; }), (CVShapeElement.prototype.renderStroke = function (e, t, r) { var i = t.style, s = t.d; s && (s._mdf || this._isFirstFrame) && ((i.da = s.dashArray), (i.do = s.dashoffset[0])), (t.c._mdf || this._isFirstFrame) && (i.co = 'rgb(' + bmFloor(t.c.v[0]) + ',' + bmFloor(t.c.v[1]) + ',' + bmFloor(t.c.v[2]) + ')'), (t.o._mdf || r._opMdf || this._isFirstFrame) && (i.coOp = t.o.v * r.opacity), (t.w._mdf || this._isFirstFrame) && (i.wi = t.w.v); }), (CVShapeElement.prototype.destroy = function () { (this.shapesData = null), (this.globalData = null), (this.canvasContext = null), (this.stylesList.length = 0), (this.itemsData.length = 0); }); function CVTextElement(e, t, r) { (this.textSpans = []), (this.yOffset = 0), (this.fillColorAnim = !1), (this.strokeColorAnim = !1), (this.strokeWidthAnim = !1), (this.stroke = !1), (this.fill = !1), (this.justifyOffset = 0), (this.currentRender = null), (this.renderType = 'canvas'), (this.values = { fill: 'rgba(0,0,0,0)', stroke: 'rgba(0,0,0,0)', sWidth: 0, fValue: '' }), this.initElement(e, t, r); } extendPrototype( [ BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement ], CVTextElement ), (CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d')), (CVTextElement.prototype.buildNewText = function () { var e = this.textProperty.currentData; this.renderedLetters = createSizedArray(e.l ? e.l.length : 0); var t = !1; e.fc ? ((t = !0), (this.values.fill = this.buildColor(e.fc))) : (this.values.fill = 'rgba(0,0,0,0)'), (this.fill = t); var r = !1; e.sc && ((r = !0), (this.values.stroke = this.buildColor(e.sc)), (this.values.sWidth = e.sw)); var i = this.globalData.fontManager.getFontByName(e.f), s, a, o = e.l, n = this.mHelper; (this.stroke = r), (this.values.fValue = e.finalSize + 'px ' + this.globalData.fontManager.getFontByName(e.f).fFamily), (a = e.finalText.length); var l, f, g, S, c, P, d, p, x, u, y = this.data.singleShape, m = e.tr * 0.001 * e.finalSize, A = 0, T = 0, E = !0, _ = 0; for (s = 0; s < a; s += 1) { (l = this.globalData.fontManager.getCharData( e.finalText[s], i.fStyle, this.globalData.fontManager.getFontByName(e.f).fFamily )), (f = (l && l.data) || {}), n.reset(), y && o[s].n && ((A = -m), (T += e.yOffset), (T += E ? 1 : 0), (E = !1)), (c = f.shapes ? f.shapes[0].it : []), (d = c.length), n.scale(e.finalSize / 100, e.finalSize / 100), y && this.applyTextPropertiesToMatrix(e, n, o[s].line, A, T), (x = createSizedArray(d - 1)); var I = 0; for (P = 0; P < d; P += 1) if (c[P].ty === 'sh') { for ( S = c[P].ks.k.i.length, p = c[P].ks.k, u = [], g = 1; g < S; g += 1 ) g === 1 && u.push( n.applyToX(p.v[0][0], p.v[0][1], 0), n.applyToY(p.v[0][0], p.v[0][1], 0) ), u.push( n.applyToX(p.o[g - 1][0], p.o[g - 1][1], 0), n.applyToY(p.o[g - 1][0], p.o[g - 1][1], 0), n.applyToX(p.i[g][0], p.i[g][1], 0), n.applyToY(p.i[g][0], p.i[g][1], 0), n.applyToX(p.v[g][0], p.v[g][1], 0), n.applyToY(p.v[g][0], p.v[g][1], 0) ); u.push( n.applyToX(p.o[g - 1][0], p.o[g - 1][1], 0), n.applyToY(p.o[g - 1][0], p.o[g - 1][1], 0), n.applyToX(p.i[0][0], p.i[0][1], 0), n.applyToY(p.i[0][0], p.i[0][1], 0), n.applyToX(p.v[0][0], p.v[0][1], 0), n.applyToY(p.v[0][0], p.v[0][1], 0) ), (x[I] = u), (I += 1); } y && ((A += o[s].l), (A += m)), this.textSpans[_] ? (this.textSpans[_].elem = x) : (this.textSpans[_] = { elem: x }), (_ += 1); } }), (CVTextElement.prototype.renderInnerContent = function () { this.validateText(); var e = this.canvasContext; (e.font = this.values.fValue), this.globalData.renderer.ctxLineCap('butt'), this.globalData.renderer.ctxLineJoin('miter'), this.globalData.renderer.ctxMiterLimit(4), this.data.singleShape || this.textAnimator.getMeasures( this.textProperty.currentData, this.lettersChangedFlag ); var t, r, i, s, a, o, n = this.textAnimator.renderedLetters, l = this.textProperty.currentData.l; r = l.length; var f, g = null, S = null, c = null, P, d, p = this.globalData.renderer; for (t = 0; t < r; t += 1) if (!l[t].n) { if ( ((f = n[t]), f && (p.save(), p.ctxTransform(f.p), p.ctxOpacity(f.o)), this.fill) ) { for ( f && f.fc ? g !== f.fc && (p.ctxFillStyle(f.fc), (g = f.fc)) : g !== this.values.fill && ((g = this.values.fill), p.ctxFillStyle(this.values.fill)), P = this.textSpans[t].elem, s = P.length, this.globalData.canvasContext.beginPath(), i = 0; i < s; i += 1 ) for ( d = P[i], o = d.length, this.globalData.canvasContext.moveTo(d[0], d[1]), a = 2; a < o; a += 6 ) this.globalData.canvasContext.bezierCurveTo( d[a], d[a + 1], d[a + 2], d[a + 3], d[a + 4], d[a + 5] ); this.globalData.canvasContext.closePath(), p.ctxFill(); } if (this.stroke) { for ( f && f.sw ? c !== f.sw && ((c = f.sw), p.ctxLineWidth(f.sw)) : c !== this.values.sWidth && ((c = this.values.sWidth), p.ctxLineWidth(this.values.sWidth)), f && f.sc ? S !== f.sc && ((S = f.sc), p.ctxStrokeStyle(f.sc)) : S !== this.values.stroke && ((S = this.values.stroke), p.ctxStrokeStyle(this.values.stroke)), P = this.textSpans[t].elem, s = P.length, this.globalData.canvasContext.beginPath(), i = 0; i < s; i += 1 ) for ( d = P[i], o = d.length, this.globalData.canvasContext.moveTo(d[0], d[1]), a = 2; a < o; a += 6 ) this.globalData.canvasContext.bezierCurveTo( d[a], d[a + 1], d[a + 2], d[a + 3], d[a + 4], d[a + 5] ); this.globalData.canvasContext.closePath(), p.ctxStroke(); } f && this.globalData.renderer.restore(); } }); function CVImageElement(e, t, r) { (this.assetData = t.getAssetData(e.refId)), (this.img = t.imageLoader.getAsset(this.assetData)), this.initElement(e, t, r); } extendPrototype( [ BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement ], CVImageElement ), (CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement), (CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame), (CVImageElement.prototype.createContent = function () { if ( this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height) ) { var e = createTag('canvas'); (e.width = this.assetData.w), (e.height = this.assetData.h); var t = e.getContext('2d'), r = this.img.width, i = this.img.height, s = r / i, a = this.assetData.w / this.assetData.h, o, n, l = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio; (s > a && l === 'xMidYMid slice') || (s < a && l !== 'xMidYMid slice') ? ((n = i), (o = n * a)) : ((o = r), (n = o / a)), t.drawImage( this.img, (r - o) / 2, (i - n) / 2, o, n, 0, 0, this.assetData.w, this.assetData.h ), (this.img = e); } }), (CVImageElement.prototype.renderInnerContent = function () { this.canvasContext.drawImage(this.img, 0, 0); }), (CVImageElement.prototype.destroy = function () { this.img = null; }); function CVSolidElement(e, t, r) { this.initElement(e, t, r); } extendPrototype( [ BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement ], CVSolidElement ), (CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement), (CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame), (CVSolidElement.prototype.renderInnerContent = function () { this.globalData.renderer.ctxFillStyle(this.data.sc), this.globalData.renderer.ctxFillRect( 0, 0, this.data.sw, this.data.sh ); }); function CanvasRendererBase() {} extendPrototype([BaseRenderer], CanvasRendererBase), (CanvasRendererBase.prototype.createShape = function (e) { return new CVShapeElement(e, this.globalData, this); }), (CanvasRendererBase.prototype.createText = function (e) { return new CVTextElement(e, this.globalData, this); }), (CanvasRendererBase.prototype.createImage = function (e) { return new CVImageElement(e, this.globalData, this); }), (CanvasRendererBase.prototype.createSolid = function (e) { return new CVSolidElement(e, this.globalData, this); }), (CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull), (CanvasRendererBase.prototype.ctxTransform = function (e) { (e[0] === 1 && e[1] === 0 && e[4] === 0 && e[5] === 1 && e[12] === 0 && e[13] === 0) || this.canvasContext.transform(e[0], e[1], e[4], e[5], e[12], e[13]); }), (CanvasRendererBase.prototype.ctxOpacity = function (e) { this.canvasContext.globalAlpha *= e < 0 ? 0 : e; }), (CanvasRendererBase.prototype.ctxFillStyle = function (e) { this.canvasContext.fillStyle = e; }), (CanvasRendererBase.prototype.ctxStrokeStyle = function (e) { this.canvasContext.strokeStyle = e; }), (CanvasRendererBase.prototype.ctxLineWidth = function (e) { this.canvasContext.lineWidth = e; }), (CanvasRendererBase.prototype.ctxLineCap = function (e) { this.canvasContext.lineCap = e; }), (CanvasRendererBase.prototype.ctxLineJoin = function (e) { this.canvasContext.lineJoin = e; }), (CanvasRendererBase.prototype.ctxMiterLimit = function (e) { this.canvasContext.miterLimit = e; }), (CanvasRendererBase.prototype.ctxFill = function (e) { this.canvasContext.fill(e); }), (CanvasRendererBase.prototype.ctxFillRect = function (e, t, r, i) { this.canvasContext.fillRect(e, t, r, i); }), (CanvasRendererBase.prototype.ctxStroke = function () { this.canvasContext.stroke(); }), (CanvasRendererBase.prototype.reset = function () { if (!this.renderConfig.clearCanvas) { this.canvasContext.restore(); return; } this.contextData.reset(); }), (CanvasRendererBase.prototype.save = function () { this.canvasContext.save(); }), (CanvasRendererBase.prototype.restore = function (e) { if (!this.renderConfig.clearCanvas) { this.canvasContext.restore(); return; } e && (this.globalData.blendMode = 'source-over'), this.contextData.restore(e); }), (CanvasRendererBase.prototype.configAnimation = function (e) { if (this.animationItem.wrapper) { this.animationItem.container = createTag('canvas'); var t = this.animationItem.container.style; (t.width = '100%'), (t.height = '100%'); var r = '0px 0px 0px'; (t.transformOrigin = r), (t.mozTransformOrigin = r), (t.webkitTransformOrigin = r), (t['-webkit-transform'] = r), (t.contentVisibility = this.renderConfig.contentVisibility), this.animationItem.wrapper.appendChild( this.animationItem.container ), (this.canvasContext = this.animationItem.container.getContext('2d')), this.renderConfig.className && this.animationItem.container.setAttribute( 'class', this.renderConfig.className ), this.renderConfig.id && this.animationItem.container.setAttribute( 'id', this.renderConfig.id ); } else this.canvasContext = this.renderConfig.context; this.contextData.setContext(this.canvasContext), (this.data = e), (this.layers = e.layers), (this.transformCanvas = { w: e.w, h: e.h, sx: 0, sy: 0, tx: 0, ty: 0 }), this.setupGlobalData(e, document.body), (this.globalData.canvasContext = this.canvasContext), (this.globalData.renderer = this), (this.globalData.isDashed = !1), (this.globalData.progressiveLoad = this.renderConfig.progressiveLoad), (this.globalData.transformCanvas = this.transformCanvas), (this.elements = createSizedArray(e.layers.length)), this.updateContainerSize(); }), (CanvasRendererBase.prototype.updateContainerSize = function (e, t) { this.reset(); var r, i; e ? ((r = e), (i = t), (this.canvasContext.canvas.width = r), (this.canvasContext.canvas.height = i)) : (this.animationItem.wrapper && this.animationItem.container ? ((r = this.animationItem.wrapper.offsetWidth), (i = this.animationItem.wrapper.offsetHeight)) : ((r = this.canvasContext.canvas.width), (i = this.canvasContext.canvas.height)), (this.canvasContext.canvas.width = r * this.renderConfig.dpr), (this.canvasContext.canvas.height = i * this.renderConfig.dpr)); var s, a; if ( this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1 ) { var o = this.renderConfig.preserveAspectRatio.split(' '), n = o[1] || 'meet', l = o[0] || 'xMidYMid', f = l.substr(0, 4), g = l.substr(4); (s = r / i), (a = this.transformCanvas.w / this.transformCanvas.h), (a > s && n === 'meet') || (a < s && n === 'slice') ? ((this.transformCanvas.sx = r / (this.transformCanvas.w / this.renderConfig.dpr)), (this.transformCanvas.sy = r / (this.transformCanvas.w / this.renderConfig.dpr))) : ((this.transformCanvas.sx = i / (this.transformCanvas.h / this.renderConfig.dpr)), (this.transformCanvas.sy = i / (this.transformCanvas.h / this.renderConfig.dpr))), f === 'xMid' && ((a < s && n === 'meet') || (a > s && n === 'slice')) ? (this.transformCanvas.tx = ((r - this.transformCanvas.w * (i / this.transformCanvas.h)) / 2) * this.renderConfig.dpr) : f === 'xMax' && ((a < s && n === 'meet') || (a > s && n === 'slice')) ? (this.transformCanvas.tx = (r - this.transformCanvas.w * (i / this.transformCanvas.h)) * this.renderConfig.dpr) : (this.transformCanvas.tx = 0), g === 'YMid' && ((a > s && n === 'meet') || (a < s && n === 'slice')) ? (this.transformCanvas.ty = ((i - this.transformCanvas.h * (r / this.transformCanvas.w)) / 2) * this.renderConfig.dpr) : g === 'YMax' && ((a > s && n === 'meet') || (a < s && n === 'slice')) ? (this.transformCanvas.ty = (i - this.transformCanvas.h * (r / this.transformCanvas.w)) * this.renderConfig.dpr) : (this.transformCanvas.ty = 0); } else this.renderConfig.preserveAspectRatio === 'none' ? ((this.transformCanvas.sx = r / (this.transformCanvas.w / this.renderConfig.dpr)), (this.transformCanvas.sy = i / (this.transformCanvas.h / this.renderConfig.dpr)), (this.transformCanvas.tx = 0), (this.transformCanvas.ty = 0)) : ((this.transformCanvas.sx = this.renderConfig.dpr), (this.transformCanvas.sy = this.renderConfig.dpr), (this.transformCanvas.tx = 0), (this.transformCanvas.ty = 0)); (this.transformCanvas.props = [ this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1 ]), this.ctxTransform(this.transformCanvas.props), this.canvasContext.beginPath(), this.canvasContext.rect( 0, 0, this.transformCanvas.w, this.transformCanvas.h ), this.canvasContext.closePath(), this.canvasContext.clip(), this.renderFrame(this.renderedFrame, !0); }), (CanvasRendererBase.prototype.destroy = function () { this.renderConfig.clearCanvas && this.animationItem.wrapper && (this.animationItem.wrapper.innerText = ''); var e, t = this.layers ? this.layers.length : 0; for (e = t - 1; e >= 0; e -= 1) this.elements[e] && this.elements[e].destroy && this.elements[e].destroy(); (this.elements.length = 0), (this.globalData.canvasContext = null), (this.animationItem.container = null), (this.destroyed = !0); }), (CanvasRendererBase.prototype.renderFrame = function (e, t) { if ( !( (this.renderedFrame === e && this.renderConfig.clearCanvas === !0 && !t) || this.destroyed || e === -1 ) ) { (this.renderedFrame = e), (this.globalData.frameNum = e - this.animationItem._isFirstFrame), (this.globalData.frameId += 1), (this.globalData._mdf = !this.renderConfig.clearCanvas || t), (this.globalData.projectInterface.currentFrame = e); var r, i = this.layers.length; for ( this.completeLayers || this.checkLayers(e), r = i - 1; r >= 0; r -= 1 ) (this.completeLayers || this.elements[r]) && this.elements[r].prepareFrame(e - this.layers[r].st); if (this.globalData._mdf) { for ( this.renderConfig.clearCanvas === !0 ? this.canvasContext.clearRect( 0, 0, this.transformCanvas.w, this.transformCanvas.h ) : this.save(), r = i - 1; r >= 0; r -= 1 ) (this.completeLayers || this.elements[r]) && this.elements[r].renderFrame(); this.renderConfig.clearCanvas !== !0 && this.restore(); } } }), (CanvasRendererBase.prototype.buildItem = function (e) { var t = this.elements; if (!(t[e] || this.layers[e].ty === 99)) { var r = this.createItem(this.layers[e], this, this.globalData); (t[e] = r), r.initExpressions(); } }), (CanvasRendererBase.prototype.checkPendingElements = function () { for (; this.pendingElements.length; ) { var e = this.pendingElements.pop(); e.checkParenting(); } }), (CanvasRendererBase.prototype.hide = function () { this.animationItem.container.style.display = 'none'; }), (CanvasRendererBase.prototype.show = function () { this.animationItem.container.style.display = 'block'; }); function CanvasContext() { (this.opacity = -1), (this.transform = createTypedArray('float32', 16)), (this.fillStyle = ''), (this.strokeStyle = ''), (this.lineWidth = ''), (this.lineCap = ''), (this.lineJoin = ''), (this.miterLimit = ''), (this.id = Math.random()); } function CVContextData() { (this.stack = []), (this.cArrPos = 0), (this.cTr = new Matrix()); var e, t = 15; for (e = 0; e < t; e += 1) { var r = new CanvasContext(); this.stack[e] = r; } (this._length = t), (this.nativeContext = null), (this.transformMat = new Matrix()), (this.currentOpacity = 1), (this.currentFillStyle = ''), (this.appliedFillStyle = ''), (this.currentStrokeStyle = ''), (this.appliedStrokeStyle = ''), (this.currentLineWidth = ''), (this.appliedLineWidth = ''), (this.currentLineCap = ''), (this.appliedLineCap = ''), (this.currentLineJoin = ''), (this.appliedLineJoin = ''), (this.appliedMiterLimit = ''), (this.currentMiterLimit = ''); } (CVContextData.prototype.duplicate = function () { var e = this._length * 2, t = 0; for (t = this._length; t < e; t += 1) this.stack[t] = new CanvasContext(); this._length = e; }), (CVContextData.prototype.reset = function () { (this.cArrPos = 0), this.cTr.reset(), (this.stack[this.cArrPos].opacity = 1); }), (CVContextData.prototype.restore = function (e) { this.cArrPos -= 1; var t = this.stack[this.cArrPos], r = t.transform, i, s = this.cTr.props; for (i = 0; i < 16; i += 1) s[i] = r[i]; if (e) { this.nativeContext.restore(); var a = this.stack[this.cArrPos + 1]; (this.appliedFillStyle = a.fillStyle), (this.appliedStrokeStyle = a.strokeStyle), (this.appliedLineWidth = a.lineWidth), (this.appliedLineCap = a.lineCap), (this.appliedLineJoin = a.lineJoin), (this.appliedMiterLimit = a.miterLimit); } this.nativeContext.setTransform(r[0], r[1], r[4], r[5], r[12], r[13]), (e || (t.opacity !== -1 && this.currentOpacity !== t.opacity)) && ((this.nativeContext.globalAlpha = t.opacity), (this.currentOpacity = t.opacity)), (this.currentFillStyle = t.fillStyle), (this.currentStrokeStyle = t.strokeStyle), (this.currentLineWidth = t.lineWidth), (this.currentLineCap = t.lineCap), (this.currentLineJoin = t.lineJoin), (this.currentMiterLimit = t.miterLimit); }), (CVContextData.prototype.save = function (e) { e && this.nativeContext.save(); var t = this.cTr.props; this._length <= this.cArrPos && this.duplicate(); var r = this.stack[this.cArrPos], i; for (i = 0; i < 16; i += 1) r.transform[i] = t[i]; this.cArrPos += 1; var s = this.stack[this.cArrPos]; (s.opacity = r.opacity), (s.fillStyle = r.fillStyle), (s.strokeStyle = r.strokeStyle), (s.lineWidth = r.lineWidth), (s.lineCap = r.lineCap), (s.lineJoin = r.lineJoin), (s.miterLimit = r.miterLimit); }), (CVContextData.prototype.setOpacity = function (e) { this.stack[this.cArrPos].opacity = e; }), (CVContextData.prototype.setContext = function (e) { this.nativeContext = e; }), (CVContextData.prototype.fillStyle = function (e) { this.stack[this.cArrPos].fillStyle !== e && ((this.currentFillStyle = e), (this.stack[this.cArrPos].fillStyle = e)); }), (CVContextData.prototype.strokeStyle = function (e) { this.stack[this.cArrPos].strokeStyle !== e && ((this.currentStrokeStyle = e), (this.stack[this.cArrPos].strokeStyle = e)); }), (CVContextData.prototype.lineWidth = function (e) { this.stack[this.cArrPos].lineWidth !== e && ((this.currentLineWidth = e), (this.stack[this.cArrPos].lineWidth = e)); }), (CVContextData.prototype.lineCap = function (e) { this.stack[this.cArrPos].lineCap !== e && ((this.currentLineCap = e), (this.stack[this.cArrPos].lineCap = e)); }), (CVContextData.prototype.lineJoin = function (e) { this.stack[this.cArrPos].lineJoin !== e && ((this.currentLineJoin = e), (this.stack[this.cArrPos].lineJoin = e)); }), (CVContextData.prototype.miterLimit = function (e) { this.stack[this.cArrPos].miterLimit !== e && ((this.currentMiterLimit = e), (this.stack[this.cArrPos].miterLimit = e)); }), (CVContextData.prototype.transform = function (e) { this.transformMat.cloneFromProps(e); var t = this.cTr; this.transformMat.multiply(t), t.cloneFromProps(this.transformMat.props); var r = t.props; this.nativeContext.setTransform(r[0], r[1], r[4], r[5], r[12], r[13]); }), (CVContextData.prototype.opacity = function (e) { var t = this.stack[this.cArrPos].opacity; (t *= e < 0 ? 0 : e), this.stack[this.cArrPos].opacity !== t && (this.currentOpacity !== e && ((this.nativeContext.globalAlpha = e), (this.currentOpacity = e)), (this.stack[this.cArrPos].opacity = t)); }), (CVContextData.prototype.fill = function (e) { this.appliedFillStyle !== this.currentFillStyle && ((this.appliedFillStyle = this.currentFillStyle), (this.nativeContext.fillStyle = this.appliedFillStyle)), this.nativeContext.fill(e); }), (CVContextData.prototype.fillRect = function (e, t, r, i) { this.appliedFillStyle !== this.currentFillStyle && ((this.appliedFillStyle = this.currentFillStyle), (this.nativeContext.fillStyle = this.appliedFillStyle)), this.nativeContext.fillRect(e, t, r, i); }), (CVContextData.prototype.stroke = function () { this.appliedStrokeStyle !== this.currentStrokeStyle && ((this.appliedStrokeStyle = this.currentStrokeStyle), (this.nativeContext.strokeStyle = this.appliedStrokeStyle)), this.appliedLineWidth !== this.currentLineWidth && ((this.appliedLineWidth = this.currentLineWidth), (this.nativeContext.lineWidth = this.appliedLineWidth)), this.appliedLineCap !== this.currentLineCap && ((this.appliedLineCap = this.currentLineCap), (this.nativeContext.lineCap = this.appliedLineCap)), this.appliedLineJoin !== this.currentLineJoin && ((this.appliedLineJoin = this.currentLineJoin), (this.nativeContext.lineJoin = this.appliedLineJoin)), this.appliedMiterLimit !== this.currentMiterLimit && ((this.appliedMiterLimit = this.currentMiterLimit), (this.nativeContext.miterLimit = this.appliedMiterLimit)), this.nativeContext.stroke(); }); function CVCompElement(e, t, r) { (this.completeLayers = !1), (this.layers = e.layers), (this.pendingElements = []), (this.elements = createSizedArray(this.layers.length)), this.initElement(e, t, r), (this.tm = e.tm ? PropertyFactory.getProp(this, e.tm, 0, t.frameRate, this) : { _placeholder: !0 }); } extendPrototype( [CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement ), (CVCompElement.prototype.renderInnerContent = function () { var e = this.canvasContext; e.beginPath(), e.moveTo(0, 0), e.lineTo(this.data.w, 0), e.lineTo(this.data.w, this.data.h), e.lineTo(0, this.data.h), e.lineTo(0, 0), e.clip(); var t, r = this.layers.length; for (t = r - 1; t >= 0; t -= 1) (this.completeLayers || this.elements[t]) && this.elements[t].renderFrame(); }), (CVCompElement.prototype.destroy = function () { var e, t = this.layers.length; for (e = t - 1; e >= 0; e -= 1) this.elements[e] && this.elements[e].destroy(); (this.layers = null), (this.elements = null); }), (CVCompElement.prototype.createComp = function (e) { return new CVCompElement(e, this.globalData, this); }); function CanvasRenderer(e, t) { (this.animationItem = e), (this.renderConfig = { clearCanvas: t && t.clearCanvas !== void 0 ? t.clearCanvas : !0, context: (t && t.context) || null, progressiveLoad: (t && t.progressiveLoad) || !1, preserveAspectRatio: (t && t.preserveAspectRatio) || 'xMidYMid meet', imagePreserveAspectRatio: (t && t.imagePreserveAspectRatio) || 'xMidYMid slice', contentVisibility: (t && t.contentVisibility) || 'visible', className: (t && t.className) || '', id: (t && t.id) || '', runExpressions: !t || t.runExpressions === void 0 || t.runExpressions }), (this.renderConfig.dpr = (t && t.dpr) || 1), this.animationItem.wrapper && (this.renderConfig.dpr = (t && t.dpr) || window.devicePixelRatio || 1), (this.renderedFrame = -1), (this.globalData = { frameNum: -1, _mdf: !1, renderConfig: this.renderConfig, currentGlobalAlpha: -1 }), (this.contextData = new CVContextData()), (this.elements = []), (this.pendingElements = []), (this.transformMat = new Matrix()), (this.completeLayers = !1), (this.rendererType = 'canvas'), this.renderConfig.clearCanvas && ((this.ctxTransform = this.contextData.transform.bind( this.contextData )), (this.ctxOpacity = this.contextData.opacity.bind(this.contextData)), (this.ctxFillStyle = this.contextData.fillStyle.bind( this.contextData )), (this.ctxStrokeStyle = this.contextData.strokeStyle.bind( this.contextData )), (this.ctxLineWidth = this.contextData.lineWidth.bind( this.contextData )), (this.ctxLineCap = this.contextData.lineCap.bind(this.contextData)), (this.ctxLineJoin = this.contextData.lineJoin.bind( this.contextData )), (this.ctxMiterLimit = this.contextData.miterLimit.bind( this.contextData )), (this.ctxFill = this.contextData.fill.bind(this.contextData)), (this.ctxFillRect = this.contextData.fillRect.bind( this.contextData )), (this.ctxStroke = this.contextData.stroke.bind(this.contextData)), (this.save = this.contextData.save.bind(this.contextData))); } extendPrototype([CanvasRendererBase], CanvasRenderer), (CanvasRenderer.prototype.createComp = function (e) { return new CVCompElement(e, this.globalData, this); }); function HBaseElement() {} (HBaseElement.prototype = { checkBlendMode: function () {}, initRendererElement: function () { (this.baseElement = createTag(this.data.tg || 'div')), this.data.hasMask ? ((this.svgElement = createNS('svg')), (this.layerElement = createNS('g')), (this.maskedElement = this.layerElement), this.svgElement.appendChild(this.layerElement), this.baseElement.appendChild(this.svgElement)) : (this.layerElement = this.baseElement), styleDiv(this.baseElement); }, createContainerElements: function () { (this.renderableEffectsManager = new CVEffects(this)), (this.transformedElement = this.baseElement), (this.maskedElement = this.layerElement), this.data.ln && this.layerElement.setAttribute('id', this.data.ln), this.data.cl && this.layerElement.setAttribute('class', this.data.cl), this.data.bm !== 0 && this.setBlendMode(); }, renderElement: function () { var t = this.transformedElement ? this.transformedElement.style : {}; if (this.finalTransform._matMdf) { var r = this.finalTransform.mat.toCSS(); (t.transform = r), (t.webkitTransform = r); } this.finalTransform._opMdf && (t.opacity = this.finalTransform.mProp.o.v); }, renderFrame: function () { this.data.hd || this.hidden || (this.renderTransform(), this.renderRenderable(), this.renderElement(), this.renderInnerContent(), this._isFirstFrame && (this._isFirstFrame = !1)); }, destroy: function () { (this.layerElement = null), (this.transformedElement = null), this.matteElement && (this.matteElement = null), this.maskManager && (this.maskManager.destroy(), (this.maskManager = null)); }, createRenderableComponents: function () { this.maskManager = new MaskElement(this.data, this, this.globalData); }, addEffects: function () {}, setMatte: function () {} }), (HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement), (HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy), (HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting); function HSolidElement(e, t, r) { this.initElement(e, t, r); } extendPrototype( [ BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement ], HSolidElement ), (HSolidElement.prototype.createContent = function () { var e; this.data.hasMask ? ((e = createNS('rect')), e.setAttribute('width', this.data.sw), e.setAttribute('height', this.data.sh), e.setAttribute('fill', this.data.sc), this.svgElement.setAttribute('width', this.data.sw), this.svgElement.setAttribute('height', this.data.sh)) : ((e = createTag('div')), (e.style.width = this.data.sw + 'px'), (e.style.height = this.data.sh + 'px'), (e.style.backgroundColor = this.data.sc)), this.layerElement.appendChild(e); }); function HShapeElement(e, t, r) { (this.shapes = []), (this.shapesData = e.shapes), (this.stylesList = []), (this.shapeModifiers = []), (this.itemsData = []), (this.processedElements = []), (this.animatedContents = []), (this.shapesContainer = createNS('g')), this.initElement(e, t, r), (this.prevViewData = []), (this.currentBBox = { x: 999999, y: -999999, h: 0, w: 0 }); } extendPrototype( [ BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement ], HShapeElement ), (HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent), (HShapeElement.prototype.createContent = function () { var e; if (((this.baseElement.style.fontSize = 0), this.data.hasMask)) this.layerElement.appendChild(this.shapesContainer), (e = this.svgElement); else { e = createNS('svg'); var t = this.comp.data ? this.comp.data : this.globalData.compSize; e.setAttribute('width', t.w), e.setAttribute('height', t.h), e.appendChild(this.shapesContainer), this.layerElement.appendChild(e); } this.searchShapes( this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], !0 ), this.filterUniqueShapes(), (this.shapeCont = e); }), (HShapeElement.prototype.getTransformedPoint = function (e, t) { var r, i = e.length; for (r = 0; r < i; r += 1) t = e[r].mProps.v.applyToPointArray(t[0], t[1], 0); return t; }), (HShapeElement.prototype.calculateShapeBoundingBox = function (e, t) { var r = e.sh.v, i = e.transformers, s, a = r._length, o, n, l, f; if (!(a <= 1)) { for (s = 0; s < a - 1; s += 1) (o = this.getTransformedPoint(i, r.v[s])), (n = this.getTransformedPoint(i, r.o[s])), (l = this.getTransformedPoint(i, r.i[s + 1])), (f = this.getTransformedPoint(i, r.v[s + 1])), this.checkBounds(o, n, l, f, t); r.c && ((o = this.getTransformedPoint(i, r.v[s])), (n = this.getTransformedPoint(i, r.o[s])), (l = this.getTransformedPoint(i, r.i[0])), (f = this.getTransformedPoint(i, r.v[0])), this.checkBounds(o, n, l, f, t)); } }), (HShapeElement.prototype.checkBounds = function (e, t, r, i, s) { this.getBoundsOfCurve(e, t, r, i); var a = this.shapeBoundingBox; (s.x = bmMin(a.left, s.x)), (s.xMax = bmMax(a.right, s.xMax)), (s.y = bmMin(a.top, s.y)), (s.yMax = bmMax(a.bottom, s.yMax)); }), (HShapeElement.prototype.shapeBoundingBox = { left: 0, right: 0, top: 0, bottom: 0 }), (HShapeElement.prototype.tempBoundingBox = { x: 0, xMax: 0, y: 0, yMax: 0, width: 0, height: 0 }), (HShapeElement.prototype.getBoundsOfCurve = function (e, t, r, i) { for ( var s = [ [e[0], i[0]], [e[1], i[1]] ], a, o, n, l, f, g, S, c = 0; c < 2; ++c ) (o = 6 * e[c] - 12 * t[c] + 6 * r[c]), (a = -3 * e[c] + 9 * t[c] - 9 * r[c] + 3 * i[c]), (n = 3 * t[c] - 3 * e[c]), (o |= 0), (a |= 0), (n |= 0), (a === 0 && o === 0) || (a === 0 ? ((l = -n / o), l > 0 && l < 1 && s[c].push(this.calculateF(l, e, t, r, i, c))) : ((f = o * o - 4 * n * a), f >= 0 && ((g = (-o + bmSqrt(f)) / (2 * a)), g > 0 && g < 1 && s[c].push(this.calculateF(g, e, t, r, i, c)), (S = (-o - bmSqrt(f)) / (2 * a)), S > 0 && S < 1 && s[c].push(this.calculateF(S, e, t, r, i, c))))); (this.shapeBoundingBox.left = bmMin.apply(null, s[0])), (this.shapeBoundingBox.top = bmMin.apply(null, s[1])), (this.shapeBoundingBox.right = bmMax.apply(null, s[0])), (this.shapeBoundingBox.bottom = bmMax.apply(null, s[1])); }), (HShapeElement.prototype.calculateF = function (e, t, r, i, s, a) { return ( bmPow(1 - e, 3) * t[a] + 3 * bmPow(1 - e, 2) * e * r[a] + 3 * (1 - e) * bmPow(e, 2) * i[a] + bmPow(e, 3) * s[a] ); }), (HShapeElement.prototype.calculateBoundingBox = function (e, t) { var r, i = e.length; for (r = 0; r < i; r += 1) e[r] && e[r].sh ? this.calculateShapeBoundingBox(e[r], t) : e[r] && e[r].it ? this.calculateBoundingBox(e[r].it, t) : e[r] && e[r].style && e[r].w && this.expandStrokeBoundingBox(e[r].w, t); }), (HShapeElement.prototype.expandStrokeBoundingBox = function (e, t) { var r = 0; if (e.keyframes) { for (var i = 0; i < e.keyframes.length; i += 1) { var s = e.keyframes[i].s; s > r && (r = s); } r *= e.mult; } else r = e.v * e.mult; (t.x -= r), (t.xMax += r), (t.y -= r), (t.yMax += r); }), (HShapeElement.prototype.currentBoxContains = function (e) { return ( this.currentBBox.x <= e.x && this.currentBBox.y <= e.y && this.currentBBox.width + this.currentBBox.x >= e.x + e.width && this.currentBBox.height + this.currentBBox.y >= e.y + e.height ); }), (HShapeElement.prototype.renderInnerContent = function () { if ( (this._renderShapeFrame(), !this.hidden && (this._isFirstFrame || this._mdf)) ) { var e = this.tempBoundingBox, t = 999999; if ( ((e.x = t), (e.xMax = -t), (e.y = t), (e.yMax = -t), this.calculateBoundingBox(this.itemsData, e), (e.width = e.xMax < e.x ? 0 : e.xMax - e.x), (e.height = e.yMax < e.y ? 0 : e.yMax - e.y), this.currentBoxContains(e)) ) return; var r = !1; if ( (this.currentBBox.w !== e.width && ((this.currentBBox.w = e.width), this.shapeCont.setAttribute('width', e.width), (r = !0)), this.currentBBox.h !== e.height && ((this.currentBBox.h = e.height), this.shapeCont.setAttribute('height', e.height), (r = !0)), r || this.currentBBox.x !== e.x || this.currentBBox.y !== e.y) ) { (this.currentBBox.w = e.width), (this.currentBBox.h = e.height), (this.currentBBox.x = e.x), (this.currentBBox.y = e.y), this.shapeCont.setAttribute( 'viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h ); var i = this.shapeCont.style, s = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)'; (i.transform = s), (i.webkitTransform = s); } } }); function HTextElement(e, t, r) { (this.textSpans = []), (this.textPaths = []), (this.currentBBox = { x: 999999, y: -999999, h: 0, w: 0 }), (this.renderType = 'svg'), (this.isMasked = !1), this.initElement(e, t, r); } extendPrototype( [ BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement ], HTextElement ), (HTextElement.prototype.createContent = function () { if (((this.isMasked = this.checkMasks()), this.isMasked)) { (this.renderType = 'svg'), (this.compW = this.comp.data.w), (this.compH = this.comp.data.h), this.svgElement.setAttribute('width', this.compW), this.svgElement.setAttribute('height', this.compH); var e = createNS('g'); this.maskedElement.appendChild(e), (this.innerElem = e); } else (this.renderType = 'html'), (this.innerElem = this.layerElement); this.checkParenting(); }), (HTextElement.prototype.buildNewText = function () { var e = this.textProperty.currentData; this.renderedLetters = createSizedArray(e.l ? e.l.length : 0); var t = this.innerElem.style, r = e.fc ? this.buildColor(e.fc) : 'rgba(0,0,0,0)'; (t.fill = r), (t.color = r), e.sc && ((t.stroke = this.buildColor(e.sc)), (t.strokeWidth = e.sw + 'px')); var i = this.globalData.fontManager.getFontByName(e.f); if (!this.globalData.fontManager.chars) if ( ((t.fontSize = e.finalSize + 'px'), (t.lineHeight = e.finalSize + 'px'), i.fClass) ) this.innerElem.className = i.fClass; else { t.fontFamily = i.fFamily; var s = e.fWeight, a = e.fStyle; (t.fontStyle = a), (t.fontWeight = s); } var o, n, l = e.l; n = l.length; var f, g, S, c = this.mHelper, P, d = '', p = 0; for (o = 0; o < n; o += 1) { if ( (this.globalData.fontManager.chars ? (this.textPaths[p] ? (f = this.textPaths[p]) : ((f = createNS('path')), f.setAttribute('stroke-linecap', lineCapEnum[1]), f.setAttribute('stroke-linejoin', lineJoinEnum[2]), f.setAttribute('stroke-miterlimit', '4')), this.isMasked || (this.textSpans[p] ? ((g = this.textSpans[p]), (S = g.children[0])) : ((g = createTag('div')), (g.style.lineHeight = 0), (S = createNS('svg')), S.appendChild(f), styleDiv(g)))) : this.isMasked ? (f = this.textPaths[p] ? this.textPaths[p] : createNS('text')) : this.textSpans[p] ? ((g = this.textSpans[p]), (f = this.textPaths[p])) : ((g = createTag('span')), styleDiv(g), (f = createTag('span')), styleDiv(f), g.appendChild(f)), this.globalData.fontManager.chars) ) { var x = this.globalData.fontManager.getCharData( e.finalText[o], i.fStyle, this.globalData.fontManager.getFontByName(e.f).fFamily ), u; if ( (x ? (u = x.data) : (u = null), c.reset(), u && u.shapes && u.shapes.length && ((P = u.shapes[0].it), c.scale(e.finalSize / 100, e.finalSize / 100), (d = this.createPathShape(c, P)), f.setAttribute('d', d)), this.isMasked) ) this.innerElem.appendChild(f); else { if ((this.innerElem.appendChild(g), u && u.shapes)) { document.body.appendChild(S); var y = S.getBBox(); S.setAttribute('width', y.width + 2), S.setAttribute('height', y.height + 2), S.setAttribute( 'viewBox', y.x - 1 + ' ' + (y.y - 1) + ' ' + (y.width + 2) + ' ' + (y.height + 2) ); var m = S.style, A = 'translate(' + (y.x - 1) + 'px,' + (y.y - 1) + 'px)'; (m.transform = A), (m.webkitTransform = A), (l[o].yOffset = y.y - 1); } else S.setAttribute('width', 1), S.setAttribute('height', 1); g.appendChild(S); } } else if ( ((f.textContent = l[o].val), f.setAttributeNS( 'http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve' ), this.isMasked) ) this.innerElem.appendChild(f); else { this.innerElem.appendChild(g); var T = f.style, E = 'translate3d(0,' + -e.finalSize / 1.2 + 'px,0)'; (T.transform = E), (T.webkitTransform = E); } this.isMasked ? (this.textSpans[p] = f) : (this.textSpans[p] = g), (this.textSpans[p].style.display = 'block'), (this.textPaths[p] = f), (p += 1); } for (; p < this.textSpans.length; ) (this.textSpans[p].style.display = 'none'), (p += 1); }), (HTextElement.prototype.renderInnerContent = function () { this.validateText(); var e; if (this.data.singleShape) { if (!this._isFirstFrame && !this.lettersChangedFlag) return; if (this.isMasked && this.finalTransform._matMdf) { this.svgElement.setAttribute( 'viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH ), (e = this.svgElement.style); var t = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)'; (e.transform = t), (e.webkitTransform = t); } } if ( (this.textAnimator.getMeasures( this.textProperty.currentData, this.lettersChangedFlag ), !( !this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag )) ) { var r, i, s = 0, a = this.textAnimator.renderedLetters, o = this.textProperty.currentData.l; i = o.length; var n, l, f; for (r = 0; r < i; r += 1) o[r].n ? (s += 1) : ((l = this.textSpans[r]), (f = this.textPaths[r]), (n = a[s]), (s += 1), n._mdf.m && (this.isMasked ? l.setAttribute('transform', n.m) : ((l.style.webkitTransform = n.m), (l.style.transform = n.m))), (l.style.opacity = n.o), n.sw && n._mdf.sw && f.setAttribute('stroke-width', n.sw), n.sc && n._mdf.sc && f.setAttribute('stroke', n.sc), n.fc && n._mdf.fc && (f.setAttribute('fill', n.fc), (f.style.color = n.fc))); if ( this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf) ) { var g = this.innerElem.getBBox(); this.currentBBox.w !== g.width && ((this.currentBBox.w = g.width), this.svgElement.setAttribute('width', g.width)), this.currentBBox.h !== g.height && ((this.currentBBox.h = g.height), this.svgElement.setAttribute('height', g.height)); var S = 1; if ( this.currentBBox.w !== g.width + S * 2 || this.currentBBox.h !== g.height + S * 2 || this.currentBBox.x !== g.x - S || this.currentBBox.y !== g.y - S ) { (this.currentBBox.w = g.width + S * 2), (this.currentBBox.h = g.height + S * 2), (this.currentBBox.x = g.x - S), (this.currentBBox.y = g.y - S), this.svgElement.setAttribute( 'viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h ), (e = this.svgElement.style); var c = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)'; (e.transform = c), (e.webkitTransform = c); } } } }); function HCameraElement(e, t, r) { this.initFrame(), this.initBaseData(e, t, r), this.initHierarchy(); var i = PropertyFactory.getProp; if ( ((this.pe = i(this, e.pe, 0, 0, this)), e.ks.p.s ? ((this.px = i(this, e.ks.p.x, 1, 0, this)), (this.py = i(this, e.ks.p.y, 1, 0, this)), (this.pz = i(this, e.ks.p.z, 1, 0, this))) : (this.p = i(this, e.ks.p, 1, 0, this)), e.ks.a && (this.a = i(this, e.ks.a, 1, 0, this)), e.ks.or.k.length && e.ks.or.k[0].to) ) { var s, a = e.ks.or.k.length; for (s = 0; s < a; s += 1) (e.ks.or.k[s].to = null), (e.ks.or.k[s].ti = null); } (this.or = i(this, e.ks.or, 1, degToRads, this)), (this.or.sh = !0), (this.rx = i(this, e.ks.rx, 0, degToRads, this)), (this.ry = i(this, e.ks.ry, 0, degToRads, this)), (this.rz = i(this, e.ks.rz, 0, degToRads, this)), (this.mat = new Matrix()), (this._prevMat = new Matrix()), (this._isFirstFrame = !0), (this.finalTransform = { mProp: this }); } extendPrototype( [BaseElement, FrameElement, HierarchyElement], HCameraElement ), (HCameraElement.prototype.setup = function () { var e, t = this.comp.threeDElements.length, r, i, s; for (e = 0; e < t; e += 1) if (((r = this.comp.threeDElements[e]), r.type === '3d')) { (i = r.perspectiveElem.style), (s = r.container.style); var a = this.pe.v + 'px', o = '0px 0px 0px', n = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)'; (i.perspective = a), (i.webkitPerspective = a), (s.transformOrigin = o), (s.mozTransformOrigin = o), (s.webkitTransformOrigin = o), (i.transform = n), (i.webkitTransform = n); } }), (HCameraElement.prototype.createElements = function () {}), (HCameraElement.prototype.hide = function () {}), (HCameraElement.prototype.renderFrame = function () { var e = this._isFirstFrame, t, r; if (this.hierarchy) for (r = this.hierarchy.length, t = 0; t < r; t += 1) e = this.hierarchy[t].finalTransform.mProp._mdf || e; if ( e || this.pe._mdf || (this.p && this.p._mdf) || (this.px && (this.px._mdf || this.py._mdf || this.pz._mdf)) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || (this.a && this.a._mdf) ) { if ((this.mat.reset(), this.hierarchy)) for (r = this.hierarchy.length - 1, t = r; t >= 0; t -= 1) { var i = this.hierarchy[t].finalTransform.mProp; this.mat.translate(-i.p.v[0], -i.p.v[1], i.p.v[2]), this.mat .rotateX(-i.or.v[0]) .rotateY(-i.or.v[1]) .rotateZ(i.or.v[2]), this.mat.rotateX(-i.rx.v).rotateY(-i.ry.v).rotateZ(i.rz.v), this.mat.scale(1 / i.s.v[0], 1 / i.s.v[1], 1 / i.s.v[2]), this.mat.translate(i.a.v[0], i.a.v[1], i.a.v[2]); } if ( (this.p ? this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]) : this.mat.translate(-this.px.v, -this.py.v, this.pz.v), this.a) ) { var s; this.p ? (s = [ this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2] ]) : (s = [ this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2] ]); var a = Math.sqrt( Math.pow(s[0], 2) + Math.pow(s[1], 2) + Math.pow(s[2], 2) ), o = [s[0] / a, s[1] / a, s[2] / a], n = Math.sqrt(o[2] * o[2] + o[0] * o[0]), l = Math.atan2(o[1], n), f = Math.atan2(o[0], -o[2]); this.mat.rotateY(f).rotateX(-l); } this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v), this.mat .rotateX(-this.or.v[0]) .rotateY(-this.or.v[1]) .rotateZ(this.or.v[2]), this.mat.translate( this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0 ), this.mat.translate(0, 0, this.pe.v); var g = !this._prevMat.equals(this.mat); if ((g || this.pe._mdf) && this.comp.threeDElements) { r = this.comp.threeDElements.length; var S, c, P; for (t = 0; t < r; t += 1) if (((S = this.comp.threeDElements[t]), S.type === '3d')) { if (g) { var d = this.mat.toCSS(); (P = S.container.style), (P.transform = d), (P.webkitTransform = d); } this.pe._mdf && ((c = S.perspectiveElem.style), (c.perspective = this.pe.v + 'px'), (c.webkitPerspective = this.pe.v + 'px')); } this.mat.clone(this._prevMat); } } this._isFirstFrame = !1; }), (HCameraElement.prototype.prepareFrame = function (e) { this.prepareProperties(e, !0); }), (HCameraElement.prototype.destroy = function () {}), (HCameraElement.prototype.getBaseElement = function () { return null; }); function HImageElement(e, t, r) { (this.assetData = t.getAssetData(e.refId)), this.initElement(e, t, r); } extendPrototype( [ BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement ], HImageElement ), (HImageElement.prototype.createContent = function () { var e = this.globalData.getAssetsPath(this.assetData), t = new Image(); this.data.hasMask ? ((this.imageElem = createNS('image')), this.imageElem.setAttribute('width', this.assetData.w + 'px'), this.imageElem.setAttribute('height', this.assetData.h + 'px'), this.imageElem.setAttributeNS( 'http://www.w3.org/1999/xlink', 'href', e ), this.layerElement.appendChild(this.imageElem), this.baseElement.setAttribute('width', this.assetData.w), this.baseElement.setAttribute('height', this.assetData.h)) : this.layerElement.appendChild(t), (t.crossOrigin = 'anonymous'), (t.src = e), this.data.ln && this.baseElement.setAttribute('id', this.data.ln); }); function HybridRendererBase(e, t) { (this.animationItem = e), (this.layers = null), (this.renderedFrame = -1), (this.renderConfig = { className: (t && t.className) || '', imagePreserveAspectRatio: (t && t.imagePreserveAspectRatio) || 'xMidYMid slice', hideOnTransparent: !(t && t.hideOnTransparent === !1), filterSize: { width: (t && t.filterSize && t.filterSize.width) || '400%', height: (t && t.filterSize && t.filterSize.height) || '400%', x: (t && t.filterSize && t.filterSize.x) || '-100%', y: (t && t.filterSize && t.filterSize.y) || '-100%' } }), (this.globalData = { _mdf: !1, frameNum: -1, renderConfig: this.renderConfig }), (this.pendingElements = []), (this.elements = []), (this.threeDElements = []), (this.destroyed = !1), (this.camera = null), (this.supports3d = !0), (this.rendererType = 'html'); } extendPrototype([BaseRenderer], HybridRendererBase), (HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem), (HybridRendererBase.prototype.checkPendingElements = function () { for (; this.pendingElements.length; ) { var e = this.pendingElements.pop(); e.checkParenting(); } }), (HybridRendererBase.prototype.appendElementInPos = function (e, t) { var r = e.getBaseElement(); if (r) { var i = this.layers[t]; if (!i.ddd || !this.supports3d) if (this.threeDElements) this.addTo3dContainer(r, t); else { for (var s = 0, a, o, n; s < t; ) this.elements[s] && this.elements[s] !== !0 && this.elements[s].getBaseElement && ((o = this.elements[s]), (n = this.layers[s].ddd ? this.getThreeDContainerByPos(s) : o.getBaseElement()), (a = n || a)), (s += 1); a ? (!i.ddd || !this.supports3d) && this.layerElement.insertBefore(r, a) : (!i.ddd || !this.supports3d) && this.layerElement.appendChild(r); } else this.addTo3dContainer(r, t); } }), (HybridRendererBase.prototype.createShape = function (e) { return this.supports3d ? new HShapeElement(e, this.globalData, this) : new SVGShapeElement(e, this.globalData, this); }), (HybridRendererBase.prototype.createText = function (e) { return this.supports3d ? new HTextElement(e, this.globalData, this) : new SVGTextLottieElement(e, this.globalData, this); }), (HybridRendererBase.prototype.createCamera = function (e) { return ( (this.camera = new HCameraElement(e, this.globalData, this)), this.camera ); }), (HybridRendererBase.prototype.createImage = function (e) { return this.supports3d ? new HImageElement(e, this.globalData, this) : new IImageElement(e, this.globalData, this); }), (HybridRendererBase.prototype.createSolid = function (e) { return this.supports3d ? new HSolidElement(e, this.globalData, this) : new ISolidElement(e, this.globalData, this); }), (HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull), (HybridRendererBase.prototype.getThreeDContainerByPos = function (e) { for (var t = 0, r = this.threeDElements.length; t < r; ) { if ( this.threeDElements[t].startPos <= e && this.threeDElements[t].endPos >= e ) return this.threeDElements[t].perspectiveElem; t += 1; } return null; }), (HybridRendererBase.prototype.createThreeDContainer = function (e, t) { var r = createTag('div'), i, s; styleDiv(r); var a = createTag('div'); if ((styleDiv(a), t === '3d')) { (i = r.style), (i.width = this.globalData.compSize.w + 'px'), (i.height = this.globalData.compSize.h + 'px'); var o = '50% 50%'; (i.webkitTransformOrigin = o), (i.mozTransformOrigin = o), (i.transformOrigin = o), (s = a.style); var n = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)'; (s.transform = n), (s.webkitTransform = n); } r.appendChild(a); var l = { container: a, perspectiveElem: r, startPos: e, endPos: e, type: t }; return this.threeDElements.push(l), l; }), (HybridRendererBase.prototype.build3dContainers = function () { var e, t = this.layers.length, r, i = ''; for (e = 0; e < t; e += 1) this.layers[e].ddd && this.layers[e].ty !== 3 ? (i !== '3d' && ((i = '3d'), (r = this.createThreeDContainer(e, '3d'))), (r.endPos = Math.max(r.endPos, e))) : (i !== '2d' && ((i = '2d'), (r = this.createThreeDContainer(e, '2d'))), (r.endPos = Math.max(r.endPos, e))); for (t = this.threeDElements.length, e = t - 1; e >= 0; e -= 1) this.resizerElem.appendChild( this.threeDElements[e].perspectiveElem ); }), (HybridRendererBase.prototype.addTo3dContainer = function (e, t) { for (var r = 0, i = this.threeDElements.length; r < i; ) { if (t <= this.threeDElements[r].endPos) { for (var s = this.threeDElements[r].startPos, a; s < t; ) this.elements[s] && this.elements[s].getBaseElement && (a = this.elements[s].getBaseElement()), (s += 1); a ? this.threeDElements[r].container.insertBefore(e, a) : this.threeDElements[r].container.appendChild(e); break; } r += 1; } }), (HybridRendererBase.prototype.configAnimation = function (e) { var t = createTag('div'), r = this.animationItem.wrapper, i = t.style; (i.width = e.w + 'px'), (i.height = e.h + 'px'), (this.resizerElem = t), styleDiv(t), (i.transformStyle = 'flat'), (i.mozTransformStyle = 'flat'), (i.webkitTransformStyle = 'flat'), this.renderConfig.className && t.setAttribute('class', this.renderConfig.className), r.appendChild(t), (i.overflow = 'hidden'); var s = createNS('svg'); s.setAttribute('width', '1'), s.setAttribute('height', '1'), styleDiv(s), this.resizerElem.appendChild(s); var a = createNS('defs'); s.appendChild(a), (this.data = e), this.setupGlobalData(e, s), (this.globalData.defs = a), (this.layers = e.layers), (this.layerElement = this.resizerElem), this.build3dContainers(), this.updateContainerSize(); }), (HybridRendererBase.prototype.destroy = function () { this.animationItem.wrapper && (this.animationItem.wrapper.innerText = ''), (this.animationItem.container = null), (this.globalData.defs = null); var e, t = this.layers ? this.layers.length : 0; for (e = 0; e < t; e += 1) this.elements[e] && this.elements[e].destroy && this.elements[e].destroy(); (this.elements.length = 0), (this.destroyed = !0), (this.animationItem = null); }), (HybridRendererBase.prototype.updateContainerSize = function () { var e = this.animationItem.wrapper.offsetWidth, t = this.animationItem.wrapper.offsetHeight, r = e / t, i = this.globalData.compSize.w / this.globalData.compSize.h, s, a, o, n; i > r ? ((s = e / this.globalData.compSize.w), (a = e / this.globalData.compSize.w), (o = 0), (n = (t - this.globalData.compSize.h * (e / this.globalData.compSize.w)) / 2)) : ((s = t / this.globalData.compSize.h), (a = t / this.globalData.compSize.h), (o = (e - this.globalData.compSize.w * (t / this.globalData.compSize.h)) / 2), (n = 0)); var l = this.resizerElem.style; (l.webkitTransform = 'matrix3d(' + s + ',0,0,0,0,' + a + ',0,0,0,0,1,0,' + o + ',' + n + ',0,1)'), (l.transform = l.webkitTransform); }), (HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame), (HybridRendererBase.prototype.hide = function () { this.resizerElem.style.display = 'none'; }), (HybridRendererBase.prototype.show = function () { this.resizerElem.style.display = 'block'; }), (HybridRendererBase.prototype.initItems = function () { if ((this.buildAllItems(), this.camera)) this.camera.setup(); else { var e = this.globalData.compSize.w, t = this.globalData.compSize.h, r, i = this.threeDElements.length; for (r = 0; r < i; r += 1) { var s = this.threeDElements[r].perspectiveElem.style; (s.webkitPerspective = Math.sqrt(Math.pow(e, 2) + Math.pow(t, 2)) + 'px'), (s.perspective = s.webkitPerspective); } } }), (HybridRendererBase.prototype.searchExtraCompositions = function (e) { var t, r = e.length, i = createTag('div'); for (t = 0; t < r; t += 1) if (e[t].xt) { var s = this.createComp(e[t], i, this.globalData.comp, null); s.initExpressions(), this.globalData.projectInterface.registerComposition(s); } }); function HCompElement(e, t, r) { (this.layers = e.layers), (this.supports3d = !e.hasMask), (this.completeLayers = !1), (this.pendingElements = []), (this.elements = this.layers ? createSizedArray(this.layers.length) : []), this.initElement(e, t, r), (this.tm = e.tm ? PropertyFactory.getProp(this, e.tm, 0, t.frameRate, this) : { _placeholder: !0 }); } extendPrototype( [HybridRendererBase, ICompElement, HBaseElement], HCompElement ), (HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements), (HCompElement.prototype.createContainerElements = function () { this._createBaseContainerElements(), this.data.hasMask ? (this.svgElement.setAttribute('width', this.data.w), this.svgElement.setAttribute('height', this.data.h), (this.transformedElement = this.baseElement)) : (this.transformedElement = this.layerElement); }), (HCompElement.prototype.addTo3dContainer = function (e, t) { for (var r = 0, i; r < t; ) this.elements[r] && this.elements[r].getBaseElement && (i = this.elements[r].getBaseElement()), (r += 1); i ? this.layerElement.insertBefore(e, i) : this.layerElement.appendChild(e); }), (HCompElement.prototype.createComp = function (e) { return this.supports3d ? new HCompElement(e, this.globalData, this) : new SVGCompElement(e, this.globalData, this); }); function HybridRenderer(e, t) { (this.animationItem = e), (this.layers = null), (this.renderedFrame = -1), (this.renderConfig = { className: (t && t.className) || '', imagePreserveAspectRatio: (t && t.imagePreserveAspectRatio) || 'xMidYMid slice', hideOnTransparent: !(t && t.hideOnTransparent === !1), filterSize: { width: (t && t.filterSize && t.filterSize.width) || '400%', height: (t && t.filterSize && t.filterSize.height) || '400%', x: (t && t.filterSize && t.filterSize.x) || '-100%', y: (t && t.filterSize && t.filterSize.y) || '-100%' }, runExpressions: !t || t.runExpressions === void 0 || t.runExpressions }), (this.globalData = { _mdf: !1, frameNum: -1, renderConfig: this.renderConfig }), (this.pendingElements = []), (this.elements = []), (this.threeDElements = []), (this.destroyed = !1), (this.camera = null), (this.supports3d = !0), (this.rendererType = 'html'); } extendPrototype([HybridRendererBase], HybridRenderer), (HybridRenderer.prototype.createComp = function (e) { return this.supports3d ? new HCompElement(e, this.globalData, this) : new SVGCompElement(e, this.globalData, this); }); var CompExpressionInterface = (function () { return function (e) { function t(r) { for (var i = 0, s = e.layers.length; i < s; ) { if (e.layers[i].nm === r || e.layers[i].ind === r) return e.elements[i].layerInterface; i += 1; } return null; } return ( Object.defineProperty(t, '_name', { value: e.data.nm }), (t.layer = t), (t.pixelAspect = 1), (t.height = e.data.h || e.globalData.compSize.h), (t.width = e.data.w || e.globalData.compSize.w), (t.pixelAspect = 1), (t.frameDuration = 1 / e.globalData.frameRate), (t.displayStartTime = 0), (t.numLayers = e.layers.length), t ); }; })(); function _typeof$2(e) { '@babel/helpers - typeof'; return ( typeof Symbol == 'function' && typeof Symbol.iterator == 'symbol' ? (_typeof$2 = function (r) { return typeof r; }) : (_typeof$2 = function (r) { return r && typeof Symbol == 'function' && r.constructor === Symbol && r !== Symbol.prototype ? 'symbol' : typeof r; }), _typeof$2(e) ); } function seedRandom(e, t) { var r = this, i = 256, s = 6, a = 52, o = 'random', n = t.pow(i, s), l = t.pow(2, a), f = l * 2, g = i - 1, S; function c(m, A, T) { var E = []; A = A === !0 ? { entropy: !0 } : A || {}; var _ = x(p(A.entropy ? [m, y(e)] : m === null ? u() : m, 3), E), I = new P(E), B = function () { for (var G = I.g(s), R = n, W = 0; G < l; ) (G = (G + W) * i), (R *= i), (W = I.g(1)); for (; G >= f; ) (G /= 2), (R /= 2), (W >>>= 1); return (G + W) / R; }; return ( (B.int32 = function () { return I.g(4) | 0; }), (B.quick = function () { return I.g(4) / 4294967296; }), (B.double = B), x(y(I.S), e), ( A.pass || T || function (z, G, R, W) { return ( W && (W.S && d(W, I), (z.state = function () { return d(I, {}); })), R ? ((t[o] = z), G) : z ); } )(B, _, 'global' in A ? A.global : this == t, A.state) ); } t['seed' + o] = c; function P(m) { var A, T = m.length, E = this, _ = 0, I = (E.i = E.j = 0), B = (E.S = []); for (T || (m = [T++]); _ < i; ) B[_] = _++; for (_ = 0; _ < i; _++) (B[_] = B[(I = g & (I + m[_ % T] + (A = B[_])))]), (B[I] = A); E.g = function (z) { for (var G, R = 0, W = E.i, H = E.j, N = E.S; z--; ) (G = N[(W = g & (W + 1))]), (R = R * i + N[g & ((N[W] = N[(H = g & (H + G))]) + (N[H] = G))]); return (E.i = W), (E.j = H), R; }; } function d(m, A) { return (A.i = m.i), (A.j = m.j), (A.S = m.S.slice()), A; } function p(m, A) { var T = [], E = _typeof$2(m), _; if (A && E == 'object') for (_ in m) try { T.push(p(m[_], A - 1)); } catch (I) {} return T.length ? T : E == 'string' ? m : m + '\0'; } function x(m, A) { for (var T = m + '', E, _ = 0; _ < T.length; ) A[g & _] = g & ((E ^= A[g & _] * 19) + T.charCodeAt(_++)); return y(A); } function u() { try { var m = new Uint8Array(i); return (r.crypto || r.msCrypto).getRandomValues(m), y(m); } catch (E) { var A = r.navigator, T = A && A.plugins; return [+new Date(), r, T, r.screen, y(e)]; } } function y(m) { return String.fromCharCode.apply(0, m); } x(t.random(), e); } function initialize$2(e) { seedRandom([], e); } var propTypes = { SHAPE: 'shape' }; function _typeof$1(e) { '@babel/helpers - typeof'; return ( typeof Symbol == 'function' && typeof Symbol.iterator == 'symbol' ? (_typeof$1 = function (r) { return typeof r; }) : (_typeof$1 = function (r) { return r && typeof Symbol == 'function' && r.constructor === Symbol && r !== Symbol.prototype ? 'symbol' : typeof r; }), _typeof$1(e) ); } var ExpressionManager = (function () { var ob = {}, Math = BMMath, window = null, document = null, XMLHttpRequest = null, fetch = null, frames = null, _lottieGlobal = {}; initialize$2(BMMath); function resetFrame() { _lottieGlobal = {}; } function $bm_isInstanceOfArray(e) { return e.constructor === Array || e.constructor === Float32Array; } function isNumerable(e, t) { return ( e === 'number' || t instanceof Number || e === 'boolean' || e === 'string' ); } function $bm_neg(e) { var t = _typeof$1(e); if (t === 'number' || e instanceof Number || t === 'boolean') return -e; if ($bm_isInstanceOfArray(e)) { var r, i = e.length, s = []; for (r = 0; r < i; r += 1) s[r] = -e[r]; return s; } return e.propType ? e.v : -e; } var easeInBez = BezierFactory.getBezierEasing( 0.333, 0, 0.833, 0.833, 'easeIn' ).get, easeOutBez = BezierFactory.getBezierEasing( 0.167, 0.167, 0.667, 1, 'easeOut' ).get, easeInOutBez = BezierFactory.getBezierEasing( 0.33, 0, 0.667, 1, 'easeInOut' ).get; function sum(e, t) { var r = _typeof$1(e), i = _typeof$1(t); if ( (isNumerable(r, e) && isNumerable(i, t)) || r === 'string' || i === 'string' ) return e + t; if ($bm_isInstanceOfArray(e) && isNumerable(i, t)) return (e = e.slice(0)), (e[0] += t), e; if (isNumerable(r, e) && $bm_isInstanceOfArray(t)) return (t = t.slice(0)), (t[0] = e + t[0]), t; if ($bm_isInstanceOfArray(e) && $bm_isInstanceOfArray(t)) { for ( var s = 0, a = e.length, o = t.length, n = []; s < a || s < o; ) (typeof e[s] == 'number' || e[s] instanceof Number) && (typeof t[s] == 'number' || t[s] instanceof Number) ? (n[s] = e[s] + t[s]) : (n[s] = t[s] === void 0 ? e[s] : e[s] || t[s]), (s += 1); return n; } return 0; } var add = sum; function sub(e, t) { var r = _typeof$1(e), i = _typeof$1(t); if (isNumerable(r, e) && isNumerable(i, t)) return ( r === 'string' && (e = parseInt(e, 10)), i === 'string' && (t = parseInt(t, 10)), e - t ); if ($bm_isInstanceOfArray(e) && isNumerable(i, t)) return (e = e.slice(0)), (e[0] -= t), e; if (isNumerable(r, e) && $bm_isInstanceOfArray(t)) return (t = t.slice(0)), (t[0] = e - t[0]), t; if ($bm_isInstanceOfArray(e) && $bm_isInstanceOfArray(t)) { for ( var s = 0, a = e.length, o = t.length, n = []; s < a || s < o; ) (typeof e[s] == 'number' || e[s] instanceof Number) && (typeof t[s] == 'number' || t[s] instanceof Number) ? (n[s] = e[s] - t[s]) : (n[s] = t[s] === void 0 ? e[s] : e[s] || t[s]), (s += 1); return n; } return 0; } function mul(e, t) { var r = _typeof$1(e), i = _typeof$1(t), s; if (isNumerable(r, e) && isNumerable(i, t)) return e * t; var a, o; if ($bm_isInstanceOfArray(e) && isNumerable(i, t)) { for ( o = e.length, s = createTypedArray('float32', o), a = 0; a < o; a += 1 ) s[a] = e[a] * t; return s; } if (isNumerable(r, e) && $bm_isInstanceOfArray(t)) { for ( o = t.length, s = createTypedArray('float32', o), a = 0; a < o; a += 1 ) s[a] = e * t[a]; return s; } return 0; } function div(e, t) { var r = _typeof$1(e), i = _typeof$1(t), s; if (isNumerable(r, e) && isNumerable(i, t)) return e / t; var a, o; if ($bm_isInstanceOfArray(e) && isNumerable(i, t)) { for ( o = e.length, s = createTypedArray('float32', o), a = 0; a < o; a += 1 ) s[a] = e[a] / t; return s; } if (isNumerable(r, e) && $bm_isInstanceOfArray(t)) { for ( o = t.length, s = createTypedArray('float32', o), a = 0; a < o; a += 1 ) s[a] = e / t[a]; return s; } return 0; } function mod(e, t) { return ( typeof e == 'string' && (e = parseInt(e, 10)), typeof t == 'string' && (t = parseInt(t, 10)), e % t ); } var $bm_sum = sum, $bm_sub = sub, $bm_mul = mul, $bm_div = div, $bm_mod = mod; function clamp(e, t, r) { if (t > r) { var i = r; (r = t), (t = i); } return Math.min(Math.max(e, t), r); } function radiansToDegrees(e) { return e / degToRads; } var radians_to_degrees = radiansToDegrees; function degreesToRadians(e) { return e * degToRads; } var degrees_to_radians = radiansToDegrees, helperLengthArray = [0, 0, 0, 0, 0, 0]; function length(e, t) { if (typeof e == 'number' || e instanceof Number) return (t = t || 0), Math.abs(e - t); t || (t = helperLengthArray); var r, i = Math.min(e.length, t.length), s = 0; for (r = 0; r < i; r += 1) s += Math.pow(t[r] - e[r], 2); return Math.sqrt(s); } function normalize(e) { return div(e, length(e)); } function rgbToHsl(e) { var t = e[0], r = e[1], i = e[2], s = Math.max(t, r, i), a = Math.min(t, r, i), o, n, l = (s + a) / 2; if (s === a) (o = 0), (n = 0); else { var f = s - a; switch (((n = l > 0.5 ? f / (2 - s - a) : f / (s + a)), s)) { case t: o = (r - i) / f + (r < i ? 6 : 0); break; case r: o = (i - t) / f + 2; break; case i: o = (t - r) / f + 4; break; } o /= 6; } return [o, n, l, e[3]]; } function hue2rgb(e, t, r) { return ( r < 0 && (r += 1), r > 1 && (r -= 1), r < 1 / 6 ? e + (t - e) * 6 * r : r < 1 / 2 ? t : r < 2 / 3 ? e + (t - e) * (2 / 3 - r) * 6 : e ); } function hslToRgb(e) { var t = e[0], r = e[1], i = e[2], s, a, o; if (r === 0) (s = i), (o = i), (a = i); else { var n = i < 0.5 ? i * (1 + r) : i + r - i * r, l = 2 * i - n; (s = hue2rgb(l, n, t + 1 / 3)), (a = hue2rgb(l, n, t)), (o = hue2rgb(l, n, t - 1 / 3)); } return [s, a, o, e[3]]; } function linear(e, t, r, i, s) { if ( ((i === void 0 || s === void 0) && ((i = t), (s = r), (t = 0), (r = 1)), r < t) ) { var a = r; (r = t), (t = a); } if (e <= t) return i; if (e >= r) return s; var o = r === t ? 0 : (e - t) / (r - t); if (!i.length) return i + (s - i) * o; var n, l = i.length, f = createTypedArray('float32', l); for (n = 0; n < l; n += 1) f[n] = i[n] + (s[n] - i[n]) * o; return f; } function random(e, t) { if ( (t === void 0 && (e === void 0 ? ((e = 0), (t = 1)) : ((t = e), (e = void 0))), t.length) ) { var r, i = t.length; e || (e = createTypedArray('float32', i)); var s = createTypedArray('float32', i), a = BMMath.random(); for (r = 0; r < i; r += 1) s[r] = e[r] + a * (t[r] - e[r]); return s; } e === void 0 && (e = 0); var o = BMMath.random(); return e + o * (t - e); } function createPath(e, t, r, i) { var s, a = e.length, o = shapePool.newElement(); o.setPathData(!!i, a); var n = [0, 0], l, f; for (s = 0; s < a; s += 1) (l = t && t[s] ? t[s] : n), (f = r && r[s] ? r[s] : n), o.setTripleAt( e[s][0], e[s][1], f[0] + e[s][0], f[1] + e[s][1], l[0] + e[s][0], l[1] + e[s][1], s, !0 ); return o; } function initiateExpression(elem, data, property) { function noOp(e) { return e; } if (!elem.globalData.renderConfig.runExpressions) return noOp; var val = data.x, needsVelocity = /velocity(?![\w\d])/.test(val), _needsRandom = val.indexOf('random') !== -1, elemType = elem.data.ty, transform, $bm_transform, content, effect, thisProperty = property; (thisProperty.valueAtTime = thisProperty.getValueAtTime), Object.defineProperty(thisProperty, 'value', { get: function () { return thisProperty.v; } }), (elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate), (elem.comp.displayStartTime = 0); var inPoint = elem.data.ip / elem.comp.globalData.frameRate, outPoint = elem.data.op / elem.comp.globalData.frameRate, width = elem.data.sw ? elem.data.sw : 0, height = elem.data.sh ? elem.data.sh : 0, name = elem.data.nm, loopIn, loop_in, loopOut, loop_out, smooth, toWorld, fromWorld, fromComp, toComp, fromCompToSurface, position, rotation, anchorPoint, scale, thisLayer, thisComp, mask, valueAtTime, velocityAtTime, scoped_bm_rt, expression_function = eval( '[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]' )[0], numKeys = property.kf ? data.k.length : 0, active = !this.data || this.data.hd !== !0, wiggle = function e(t, r) { var i, s, a = this.pv.length ? this.pv.length : 1, o = createTypedArray('float32', a); t = 5; var n = Math.floor(time * t); for (i = 0, s = 0; i < n; ) { for (s = 0; s < a; s += 1) o[s] += -r + r * 2 * BMMath.random(); i += 1; } var l = time * t, f = l - Math.floor(l), g = createTypedArray('float32', a); if (a > 1) { for (s = 0; s < a; s += 1) g[s] = this.pv[s] + o[s] + (-r + r * 2 * BMMath.random()) * f; return g; } return this.pv + o[0] + (-r + r * 2 * BMMath.random()) * f; }.bind(this); thisProperty.loopIn && ((loopIn = thisProperty.loopIn.bind(thisProperty)), (loop_in = loopIn)), thisProperty.loopOut && ((loopOut = thisProperty.loopOut.bind(thisProperty)), (loop_out = loopOut)), thisProperty.smooth && (smooth = thisProperty.smooth.bind(thisProperty)); function loopInDuration(e, t) { return loopIn(e, t, !0); } function loopOutDuration(e, t) { return loopOut(e, t, !0); } this.getValueAtTime && (valueAtTime = this.getValueAtTime.bind(this)), this.getVelocityAtTime && (velocityAtTime = this.getVelocityAtTime.bind(this)); var comp = elem.comp.globalData.projectInterface.bind( elem.comp.globalData.projectInterface ); function lookAt(e, t) { var r = [t[0] - e[0], t[1] - e[1], t[2] - e[2]], i = Math.atan2(r[0], Math.sqrt(r[1] * r[1] + r[2] * r[2])) / degToRads, s = -Math.atan2(r[1], r[2]) / degToRads; return [s, i, 0]; } function easeOut(e, t, r, i, s) { return applyEase(easeOutBez, e, t, r, i, s); } function easeIn(e, t, r, i, s) { return applyEase(easeInBez, e, t, r, i, s); } function ease(e, t, r, i, s) { return applyEase(easeInOutBez, e, t, r, i, s); } function applyEase(e, t, r, i, s, a) { s === void 0 ? ((s = r), (a = i)) : (t = (t - r) / (i - r)), t > 1 ? (t = 1) : t < 0 && (t = 0); var o = e(t); if ($bm_isInstanceOfArray(s)) { var n, l = s.length, f = createTypedArray('float32', l); for (n = 0; n < l; n += 1) f[n] = (a[n] - s[n]) * o + s[n]; return f; } return (a - s) * o + s; } function nearestKey(e) { var t, r = data.k.length, i, s; if (!data.k.length || typeof data.k[0] == 'number') (i = 0), (s = 0); else if ( ((i = -1), (e *= elem.comp.globalData.frameRate), e < data.k[0].t) ) (i = 1), (s = data.k[0].t); else { for (t = 0; t < r - 1; t += 1) if (e === data.k[t].t) { (i = t + 1), (s = data.k[t].t); break; } else if (e > data.k[t].t && e < data.k[t + 1].t) { e - data.k[t].t > data.k[t + 1].t - e ? ((i = t + 2), (s = data.k[t + 1].t)) : ((i = t + 1), (s = data.k[t].t)); break; } i === -1 && ((i = t + 1), (s = data.k[t].t)); } var a = {}; return ( (a.index = i), (a.time = s / elem.comp.globalData.frameRate), a ); } function key(e) { var t, r, i; if (!data.k.length || typeof data.k[0] == 'number') throw new Error('The property has no keyframe at index ' + e); (e -= 1), (t = { time: data.k[e].t / elem.comp.globalData.frameRate, value: [] }); var s = Object.prototype.hasOwnProperty.call(data.k[e], 's') ? data.k[e].s : data.k[e - 1].e; for (i = s.length, r = 0; r < i; r += 1) (t[r] = s[r]), (t.value[r] = s[r]); return t; } function framesToTime(e, t) { return t || (t = elem.comp.globalData.frameRate), e / t; } function timeToFrames(e, t) { return ( !e && e !== 0 && (e = time), t || (t = elem.comp.globalData.frameRate), e * t ); } function seedRandom(e) { BMMath.seedrandom(randSeed + e); } function sourceRectAtTime() { return elem.sourceRectAtTime(); } function substring(e, t) { return typeof value == 'string' ? t === void 0 ? value.substring(e) : value.substring(e, t) : ''; } function substr(e, t) { return typeof value == 'string' ? t === void 0 ? value.substr(e) : value.substr(e, t) : ''; } function posterizeTime(e) { (time = e === 0 ? 0 : Math.floor(time * e) / e), (value = valueAtTime(time)); } var time, velocity, value, text, textIndex, textTotal, selectorValue, index = elem.data.ind, hasParent = !!(elem.hierarchy && elem.hierarchy.length), parent, randSeed = Math.floor(Math.random() * 1e6), globalData = elem.globalData; function executeExpression(e) { return ( (value = e), this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector' ? value : (this.propType === 'textSelector' && ((textIndex = this.textIndex), (textTotal = this.textTotal), (selectorValue = this.selectorValue)), thisLayer || ((text = elem.layerInterface.text), (thisLayer = elem.layerInterface), (thisComp = elem.comp.compInterface), (toWorld = thisLayer.toWorld.bind(thisLayer)), (fromWorld = thisLayer.fromWorld.bind(thisLayer)), (fromComp = thisLayer.fromComp.bind(thisLayer)), (toComp = thisLayer.toComp.bind(thisLayer)), (mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null), (fromCompToSurface = fromComp)), transform || ((transform = elem.layerInterface( 'ADBE Transform Group' )), ($bm_transform = transform), transform && (anchorPoint = transform.anchorPoint)), elemType === 4 && !content && (content = thisLayer('ADBE Root Vectors Group')), effect || (effect = thisLayer(4)), (hasParent = !!(elem.hierarchy && elem.hierarchy.length)), hasParent && !parent && (parent = elem.hierarchy[0].layerInterface), (time = this.comp.renderedFrame / this.comp.globalData.frameRate), _needsRandom && seedRandom(randSeed + time), needsVelocity && (velocity = velocityAtTime(time)), expression_function(), (this.frameExpressionId = elem.globalData.frameId), (scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt), scoped_bm_rt) ); } return ( (executeExpression.__preventDeadCodeRemoval = [ $bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData ]), executeExpression ); } return ( (ob.initiateExpression = initiateExpression), (ob.__preventDeadCodeRemoval = [ window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal ]), (ob.resetFrame = resetFrame), ob ); })(), Expressions = (function () { var e = {}; (e.initExpressions = t), (e.resetFrame = ExpressionManager.resetFrame); function t(r) { var i = 0, s = []; function a() { i += 1; } function o() { (i -= 1), i === 0 && l(); } function n(f) { s.indexOf(f) === -1 && s.push(f); } function l() { var f, g = s.length; for (f = 0; f < g; f += 1) s[f].release(); s.length = 0; } (r.renderer.compInterface = CompExpressionInterface(r.renderer)), r.renderer.globalData.projectInterface.registerComposition( r.renderer ), (r.renderer.globalData.pushExpression = a), (r.renderer.globalData.popExpression = o), (r.renderer.globalData.registerExpressionProperty = n); } return e; })(), MaskManagerInterface = (function () { function e(r, i) { (this._mask = r), (this._data = i); } Object.defineProperty(e.prototype, 'maskPath', { get: function () { return ( this._mask.prop.k && this._mask.prop.getValue(), this._mask.prop ); } }), Object.defineProperty(e.prototype, 'maskOpacity', { get: function () { return ( this._mask.op.k && this._mask.op.getValue(), this._mask.op.v * 100 ); } }); var t = function (i) { var s = createSizedArray(i.viewData.length), a, o = i.viewData.length; for (a = 0; a < o; a += 1) s[a] = new e(i.viewData[a], i.masksProperties[a]); var n = function (f) { for (a = 0; a < o; ) { if (i.masksProperties[a].nm === f) return s[a]; a += 1; } return null; }; return n; }; return t; })(), ExpressionPropertyInterface = (function () { var e = { pv: 0, v: 0, mult: 1 }, t = { pv: [0, 0, 0], v: [0, 0, 0], mult: 1 }; function r(o, n, l) { Object.defineProperty(o, 'velocity', { get: function () { return n.getVelocityAtTime(n.comp.currentFrame); } }), (o.numKeys = n.keyframes ? n.keyframes.length : 0), (o.key = function (f) { if (!o.numKeys) return 0; var g = ''; 's' in n.keyframes[f - 1] ? (g = n.keyframes[f - 1].s) : 'e' in n.keyframes[f - 2] ? (g = n.keyframes[f - 2].e) : (g = n.keyframes[f - 2].s); var S = l === 'unidimensional' ? new Number(g) : Object.assign({}, g); return ( (S.time = n.keyframes[f - 1].t / n.elem.comp.globalData.frameRate), (S.value = l === 'unidimensional' ? g[0] : g), S ); }), (o.valueAtTime = n.getValueAtTime), (o.speedAtTime = n.getSpeedAtTime), (o.velocityAtTime = n.getVelocityAtTime), (o.propertyGroup = n.propertyGroup); } function i(o) { (!o || !('pv' in o)) && (o = e); var n = 1 / o.mult, l = o.pv * n, f = new Number(l); return ( (f.value = l), r(f, o, 'unidimensional'), function () { return ( o.k && o.getValue(), (l = o.v * n), f.value !== l && ((f = new Number(l)), (f.value = l), r(f, o, 'unidimensional')), f ); } ); } function s(o) { (!o || !('pv' in o)) && (o = t); var n = 1 / o.mult, l = (o.data && o.data.l) || o.pv.length, f = createTypedArray('float32', l), g = createTypedArray('float32', l); return ( (f.value = g), r(f, o, 'multidimensional'), function () { o.k && o.getValue(); for (var S = 0; S < l; S += 1) (g[S] = o.v[S] * n), (f[S] = g[S]); return f; } ); } function a() { return e; } return function (o) { return o ? (o.propType === 'unidimensional' ? i(o) : s(o)) : a; }; })(), TransformExpressionInterface = (function () { return function (e) { function t(o) { switch (o) { case 'scale': case 'Scale': case 'ADBE Scale': case 6: return t.scale; case 'rotation': case 'Rotation': case 'ADBE Rotation': case 'ADBE Rotate Z': case 10: return t.rotation; case 'ADBE Rotate X': return t.xRotation; case 'ADBE Rotate Y': return t.yRotation; case 'position': case 'Position': case 'ADBE Position': case 2: return t.position; case 'ADBE Position_0': return t.xPosition; case 'ADBE Position_1': return t.yPosition; case 'ADBE Position_2': return t.zPosition; case 'anchorPoint': case 'AnchorPoint': case 'Anchor Point': case 'ADBE AnchorPoint': case 1: return t.anchorPoint; case 'opacity': case 'Opacity': case 11: return t.opacity; default: return null; } } Object.defineProperty(t, 'rotation', { get: ExpressionPropertyInterface(e.r || e.rz) }), Object.defineProperty(t, 'zRotation', { get: ExpressionPropertyInterface(e.rz || e.r) }), Object.defineProperty(t, 'xRotation', { get: ExpressionPropertyInterface(e.rx) }), Object.defineProperty(t, 'yRotation', { get: ExpressionPropertyInterface(e.ry) }), Object.defineProperty(t, 'scale', { get: ExpressionPropertyInterface(e.s) }); var r, i, s, a; return ( e.p ? (a = ExpressionPropertyInterface(e.p)) : ((r = ExpressionPropertyInterface(e.px)), (i = ExpressionPropertyInterface(e.py)), e.pz && (s = ExpressionPropertyInterface(e.pz))), Object.defineProperty(t, 'position', { get: function () { return e.p ? a() : [r(), i(), s ? s() : 0]; } }), Object.defineProperty(t, 'xPosition', { get: ExpressionPropertyInterface(e.px) }), Object.defineProperty(t, 'yPosition', { get: ExpressionPropertyInterface(e.py) }), Object.defineProperty(t, 'zPosition', { get: ExpressionPropertyInterface(e.pz) }), Object.defineProperty(t, 'anchorPoint', { get: ExpressionPropertyInterface(e.a) }), Object.defineProperty(t, 'opacity', { get: ExpressionPropertyInterface(e.o) }), Object.defineProperty(t, 'skew', { get: ExpressionPropertyInterface(e.sk) }), Object.defineProperty(t, 'skewAxis', { get: ExpressionPropertyInterface(e.sa) }), Object.defineProperty(t, 'orientation', { get: ExpressionPropertyInterface(e.or) }), t ); }; })(), LayerExpressionInterface = (function () { function e(f) { var g = new Matrix(); if (f !== void 0) { var S = this._elem.finalTransform.mProp.getValueAtTime(f); S.clone(g); } else { var c = this._elem.finalTransform.mProp; c.applyToMatrix(g); } return g; } function t(f, g) { var S = this.getMatrix(g); return ( (S.props[12] = 0), (S.props[13] = 0), (S.props[14] = 0), this.applyPoint(S, f) ); } function r(f, g) { var S = this.getMatrix(g); return this.applyPoint(S, f); } function i(f, g) { var S = this.getMatrix(g); return ( (S.props[12] = 0), (S.props[13] = 0), (S.props[14] = 0), this.invertPoint(S, f) ); } function s(f, g) { var S = this.getMatrix(g); return this.invertPoint(S, f); } function a(f, g) { if (this._elem.hierarchy && this._elem.hierarchy.length) { var S, c = this._elem.hierarchy.length; for (S = 0; S < c; S += 1) this._elem.hierarchy[S].finalTransform.mProp.applyToMatrix(f); } return f.applyToPointArray(g[0], g[1], g[2] || 0); } function o(f, g) { if (this._elem.hierarchy && this._elem.hierarchy.length) { var S, c = this._elem.hierarchy.length; for (S = 0; S < c; S += 1) this._elem.hierarchy[S].finalTransform.mProp.applyToMatrix(f); } return f.inversePoint(g); } function n(f) { var g = new Matrix(); if ( (g.reset(), this._elem.finalTransform.mProp.applyToMatrix(g), this._elem.hierarchy && this._elem.hierarchy.length) ) { var S, c = this._elem.hierarchy.length; for (S = 0; S < c; S += 1) this._elem.hierarchy[S].finalTransform.mProp.applyToMatrix(g); return g.inversePoint(f); } return g.inversePoint(f); } function l() { return [1, 1, 1, 1]; } return function (f) { var g; function S(p) { P.mask = new MaskManagerInterface(p, f); } function c(p) { P.effect = p; } function P(p) { switch (p) { case 'ADBE Root Vectors Group': case 'Contents': case 2: return P.shapeInterface; case 1: case 6: case 'Transform': case 'transform': case 'ADBE Transform Group': return g; case 4: case 'ADBE Effect Parade': case 'effects': case 'Effects': return P.effect; case 'ADBE Text Properties': return P.textInterface; default: return null; } } (P.getMatrix = e), (P.invertPoint = o), (P.applyPoint = a), (P.toWorld = r), (P.toWorldVec = t), (P.fromWorld = s), (P.fromWorldVec = i), (P.toComp = r), (P.fromComp = n), (P.sampleImage = l), (P.sourceRectAtTime = f.sourceRectAtTime.bind(f)), (P._elem = f), (g = TransformExpressionInterface(f.finalTransform.mProp)); var d = getDescriptor(g, 'anchorPoint'); return ( Object.defineProperties(P, { hasParent: { get: function () { return f.hierarchy.length; } }, parent: { get: function () { return f.hierarchy[0].layerInterface; } }, rotation: getDescriptor(g, 'rotation'), scale: getDescriptor(g, 'scale'), position: getDescriptor(g, 'position'), opacity: getDescriptor(g, 'opacity'), anchorPoint: d, anchor_point: d, transform: { get: function () { return g; } }, active: { get: function () { return f.isInRange; } } }), (P.startTime = f.data.st), (P.index = f.data.ind), (P.source = f.data.refId), (P.height = f.data.ty === 0 ? f.data.h : 100), (P.width = f.data.ty === 0 ? f.data.w : 100), (P.inPoint = f.data.ip / f.comp.globalData.frameRate), (P.outPoint = f.data.op / f.comp.globalData.frameRate), (P._name = f.data.nm), (P.registerMaskInterface = S), (P.registerEffectsInterface = c), P ); }; })(), propertyGroupFactory = (function () { return function (e, t) { return function (r) { return (r = r === void 0 ? 1 : r), r <= 0 ? e : t(r - 1); }; }; })(), PropertyInterface = (function () { return function (e, t) { var r = { _name: e }; function i(s) { return (s = s === void 0 ? 1 : s), s <= 0 ? r : t(s - 1); } return i; }; })(), EffectsExpressionInterface = (function () { var e = { createEffectsInterface: t }; function t(s, a) { if (s.effectsManager) { var o = [], n = s.data.ef, l, f = s.effectsManager.effectElements.length; for (l = 0; l < f; l += 1) o.push(r(n[l], s.effectsManager.effectElements[l], a, s)); var g = s.data.ef || [], S = function (P) { for (l = 0, f = g.length; l < f; ) { if (P === g[l].nm || P === g[l].mn || P === g[l].ix) return o[l]; l += 1; } return null; }; return ( Object.defineProperty(S, 'numProperties', { get: function () { return g.length; } }), S ); } return null; } function r(s, a, o, n) { function l(P) { for (var d = s.ef, p = 0, x = d.length; p < x; ) { if (P === d[p].nm || P === d[p].mn || P === d[p].ix) return d[p].ty === 5 ? g[p] : g[p](); p += 1; } throw new Error(); } var f = propertyGroupFactory(l, o), g = [], S, c = s.ef.length; for (S = 0; S < c; S += 1) s.ef[S].ty === 5 ? g.push( r( s.ef[S], a.effectElements[S], a.effectElements[S].propertyGroup, n ) ) : g.push(i(a.effectElements[S], s.ef[S].ty, n, f)); return ( s.mn === 'ADBE Color Control' && Object.defineProperty(l, 'color', { get: function () { return g[0](); } }), Object.defineProperties(l, { numProperties: { get: function () { return s.np; } }, _name: { value: s.nm }, propertyGroup: { value: f } }), (l.enabled = s.en !== 0), (l.active = l.enabled), l ); } function i(s, a, o, n) { var l = ExpressionPropertyInterface(s.p); function f() { return a === 10 ? o.comp.compInterface(s.p.v) : l(); } return ( s.p.setGroupProperty && s.p.setGroupProperty(PropertyInterface('', n)), f ); } return e; })(), ShapePathInterface = (function () { return function (t, r, i) { var s = r.sh; function a(n) { return n === 'Shape' || n === 'shape' || n === 'Path' || n === 'path' || n === 'ADBE Vector Shape' || n === 2 ? a.path : null; } var o = propertyGroupFactory(a, i); return ( s.setGroupProperty(PropertyInterface('Path', o)), Object.defineProperties(a, { path: { get: function () { return s.k && s.getValue(), s; } }, shape: { get: function () { return s.k && s.getValue(), s; } }, _name: { value: t.nm }, ix: { value: t.ix }, propertyIndex: { value: t.ix }, mn: { value: t.mn }, propertyGroup: { value: i } }), a ); }; })(), ShapeExpressionInterface = (function () { function e(d, p, x) { var u = [], y, m = d ? d.length : 0; for (y = 0; y < m; y += 1) d[y].ty === 'gr' ? u.push(r(d[y], p[y], x)) : d[y].ty === 'fl' ? u.push(i(d[y], p[y], x)) : d[y].ty === 'st' ? u.push(o(d[y], p[y], x)) : d[y].ty === 'tm' ? u.push(n(d[y], p[y], x)) : d[y].ty === 'tr' || (d[y].ty === 'el' ? u.push(f(d[y], p[y], x)) : d[y].ty === 'sr' ? u.push(g(d[y], p[y], x)) : d[y].ty === 'sh' ? u.push(ShapePathInterface(d[y], p[y], x)) : d[y].ty === 'rc' ? u.push(S(d[y], p[y], x)) : d[y].ty === 'rd' ? u.push(c(d[y], p[y], x)) : d[y].ty === 'rp' ? u.push(P(d[y], p[y], x)) : d[y].ty === 'gf' ? u.push(s(d[y], p[y], x)) : u.push(a(d[y], p[y]))); return u; } function t(d, p, x) { var u, y = function (T) { for (var E = 0, _ = u.length; E < _; ) { if ( u[E]._name === T || u[E].mn === T || u[E].propertyIndex === T || u[E].ix === T || u[E].ind === T ) return u[E]; E += 1; } return typeof T == 'number' ? u[T - 1] : null; }; (y.propertyGroup = propertyGroupFactory(y, x)), (u = e(d.it, p.it, y.propertyGroup)), (y.numProperties = u.length); var m = l( d.it[d.it.length - 1], p.it[p.it.length - 1], y.propertyGroup ); return ( (y.transform = m), (y.propertyIndex = d.cix), (y._name = d.nm), y ); } function r(d, p, x) { var u = function (T) { switch (T) { case 'ADBE Vectors Group': case 'Contents': case 2: return u.content; default: return u.transform; } }; u.propertyGroup = propertyGroupFactory(u, x); var y = t(d, p, u.propertyGroup), m = l( d.it[d.it.length - 1], p.it[p.it.length - 1], u.propertyGroup ); return ( (u.content = y), (u.transform = m), Object.defineProperty(u, '_name', { get: function () { return d.nm; } }), (u.numProperties = d.np), (u.propertyIndex = d.ix), (u.nm = d.nm), (u.mn = d.mn), u ); } function i(d, p, x) { function u(y) { return y === 'Color' || y === 'color' ? u.color : y === 'Opacity' || y === 'opacity' ? u.opacity : null; } return ( Object.defineProperties(u, { color: { get: ExpressionPropertyInterface(p.c) }, opacity: { get: ExpressionPropertyInterface(p.o) }, _name: { value: d.nm }, mn: { value: d.mn } }), p.c.setGroupProperty(PropertyInterface('Color', x)), p.o.setGroupProperty(PropertyInterface('Opacity', x)), u ); } function s(d, p, x) { function u(y) { return y === 'Start Point' || y === 'start point' ? u.startPoint : y === 'End Point' || y === 'end point' ? u.endPoint : y === 'Opacity' || y === 'opacity' ? u.opacity : null; } return ( Object.defineProperties(u, { startPoint: { get: ExpressionPropertyInterface(p.s) }, endPoint: { get: ExpressionPropertyInterface(p.e) }, opacity: { get: ExpressionPropertyInterface(p.o) }, type: { get: function () { return 'a'; } }, _name: { value: d.nm }, mn: { value: d.mn } }), p.s.setGroupProperty(PropertyInterface('Start Point', x)), p.e.setGroupProperty(PropertyInterface('End Point', x)), p.o.setGroupProperty(PropertyInterface('Opacity', x)), u ); } function a() { function d() { return null; } return d; } function o(d, p, x) { var u = propertyGroupFactory(_, x), y = propertyGroupFactory(E, u); function m(I) { Object.defineProperty(E, d.d[I].nm, { get: ExpressionPropertyInterface(p.d.dataProps[I].p) }); } var A, T = d.d ? d.d.length : 0, E = {}; for (A = 0; A < T; A += 1) m(A), p.d.dataProps[A].p.setGroupProperty(y); function _(I) { return I === 'Color' || I === 'color' ? _.color : I === 'Opacity' || I === 'opacity' ? _.opacity : I === 'Stroke Width' || I === 'stroke width' ? _.strokeWidth : null; } return ( Object.defineProperties(_, { color: { get: ExpressionPropertyInterface(p.c) }, opacity: { get: ExpressionPropertyInterface(p.o) }, strokeWidth: { get: ExpressionPropertyInterface(p.w) }, dash: { get: function () { return E; } }, _name: { value: d.nm }, mn: { value: d.mn } }), p.c.setGroupProperty(PropertyInterface('Color', u)), p.o.setGroupProperty(PropertyInterface('Opacity', u)), p.w.setGroupProperty(PropertyInterface('Stroke Width', u)), _ ); } function n(d, p, x) { function u(m) { return m === d.e.ix || m === 'End' || m === 'end' ? u.end : m === d.s.ix ? u.start : m === d.o.ix ? u.offset : null; } var y = propertyGroupFactory(u, x); return ( (u.propertyIndex = d.ix), p.s.setGroupProperty(PropertyInterface('Start', y)), p.e.setGroupProperty(PropertyInterface('End', y)), p.o.setGroupProperty(PropertyInterface('Offset', y)), (u.propertyIndex = d.ix), (u.propertyGroup = x), Object.defineProperties(u, { start: { get: ExpressionPropertyInterface(p.s) }, end: { get: ExpressionPropertyInterface(p.e) }, offset: { get: ExpressionPropertyInterface(p.o) }, _name: { value: d.nm } }), (u.mn = d.mn), u ); } function l(d, p, x) { function u(m) { return d.a.ix === m || m === 'Anchor Point' ? u.anchorPoint : d.o.ix === m || m === 'Opacity' ? u.opacity : d.p.ix === m || m === 'Position' ? u.position : d.r.ix === m || m === 'Rotation' || m === 'ADBE Vector Rotation' ? u.rotation : d.s.ix === m || m === 'Scale' ? u.scale : (d.sk && d.sk.ix === m) || m === 'Skew' ? u.skew : (d.sa && d.sa.ix === m) || m === 'Skew Axis' ? u.skewAxis : null; } var y = propertyGroupFactory(u, x); return ( p.transform.mProps.o.setGroupProperty( PropertyInterface('Opacity', y) ), p.transform.mProps.p.setGroupProperty( PropertyInterface('Position', y) ), p.transform.mProps.a.setGroupProperty( PropertyInterface('Anchor Point', y) ), p.transform.mProps.s.setGroupProperty( PropertyInterface('Scale', y) ), p.transform.mProps.r.setGroupProperty( PropertyInterface('Rotation', y) ), p.transform.mProps.sk && (p.transform.mProps.sk.setGroupProperty( PropertyInterface('Skew', y) ), p.transform.mProps.sa.setGroupProperty( PropertyInterface('Skew Angle', y) )), p.transform.op.setGroupProperty(PropertyInterface('Opacity', y)), Object.defineProperties(u, { opacity: { get: ExpressionPropertyInterface(p.transform.mProps.o) }, position: { get: ExpressionPropertyInterface(p.transform.mProps.p) }, anchorPoint: { get: ExpressionPropertyInterface(p.transform.mProps.a) }, scale: { get: ExpressionPropertyInterface(p.transform.mProps.s) }, rotation: { get: ExpressionPropertyInterface(p.transform.mProps.r) }, skew: { get: ExpressionPropertyInterface(p.transform.mProps.sk) }, skewAxis: { get: ExpressionPropertyInterface(p.transform.mProps.sa) }, _name: { value: d.nm } }), (u.ty = 'tr'), (u.mn = d.mn), (u.propertyGroup = x), u ); } function f(d, p, x) { function u(A) { return d.p.ix === A ? u.position : d.s.ix === A ? u.size : null; } var y = propertyGroupFactory(u, x); u.propertyIndex = d.ix; var m = p.sh.ty === 'tm' ? p.sh.prop : p.sh; return ( m.s.setGroupProperty(PropertyInterface('Size', y)), m.p.setGroupProperty(PropertyInterface('Position', y)), Object.defineProperties(u, { size: { get: ExpressionPropertyInterface(m.s) }, position: { get: ExpressionPropertyInterface(m.p) }, _name: { value: d.nm } }), (u.mn = d.mn), u ); } function g(d, p, x) { function u(A) { return d.p.ix === A ? u.position : d.r.ix === A ? u.rotation : d.pt.ix === A ? u.points : d.or.ix === A || A === 'ADBE Vector Star Outer Radius' ? u.outerRadius : d.os.ix === A ? u.outerRoundness : d.ir && (d.ir.ix === A || A === 'ADBE Vector Star Inner Radius') ? u.innerRadius : d.is && d.is.ix === A ? u.innerRoundness : null; } var y = propertyGroupFactory(u, x), m = p.sh.ty === 'tm' ? p.sh.prop : p.sh; return ( (u.propertyIndex = d.ix), m.or.setGroupProperty(PropertyInterface('Outer Radius', y)), m.os.setGroupProperty(PropertyInterface('Outer Roundness', y)), m.pt.setGroupProperty(PropertyInterface('Points', y)), m.p.setGroupProperty(PropertyInterface('Position', y)), m.r.setGroupProperty(PropertyInterface('Rotation', y)), d.ir && (m.ir.setGroupProperty(PropertyInterface('Inner Radius', y)), m.is.setGroupProperty(PropertyInterface('Inner Roundness', y))), Object.defineProperties(u, { position: { get: ExpressionPropertyInterface(m.p) }, rotation: { get: ExpressionPropertyInterface(m.r) }, points: { get: ExpressionPropertyInterface(m.pt) }, outerRadius: { get: ExpressionPropertyInterface(m.or) }, outerRoundness: { get: ExpressionPropertyInterface(m.os) }, innerRadius: { get: ExpressionPropertyInterface(m.ir) }, innerRoundness: { get: ExpressionPropertyInterface(m.is) }, _name: { value: d.nm } }), (u.mn = d.mn), u ); } function S(d, p, x) { function u(A) { return d.p.ix === A ? u.position : d.r.ix === A ? u.roundness : d.s.ix === A || A === 'Size' || A === 'ADBE Vector Rect Size' ? u.size : null; } var y = propertyGroupFactory(u, x), m = p.sh.ty === 'tm' ? p.sh.prop : p.sh; return ( (u.propertyIndex = d.ix), m.p.setGroupProperty(PropertyInterface('Position', y)), m.s.setGroupProperty(PropertyInterface('Size', y)), m.r.setGroupProperty(PropertyInterface('Rotation', y)), Object.defineProperties(u, { position: { get: ExpressionPropertyInterface(m.p) }, roundness: { get: ExpressionPropertyInterface(m.r) }, size: { get: ExpressionPropertyInterface(m.s) }, _name: { value: d.nm } }), (u.mn = d.mn), u ); } function c(d, p, x) { function u(A) { return d.r.ix === A || A === 'Round Corners 1' ? u.radius : null; } var y = propertyGroupFactory(u, x), m = p; return ( (u.propertyIndex = d.ix), m.rd.setGroupProperty(PropertyInterface('Radius', y)), Object.defineProperties(u, { radius: { get: ExpressionPropertyInterface(m.rd) }, _name: { value: d.nm } }), (u.mn = d.mn), u ); } function P(d, p, x) { function u(A) { return d.c.ix === A || A === 'Copies' ? u.copies : d.o.ix === A || A === 'Offset' ? u.offset : null; } var y = propertyGroupFactory(u, x), m = p; return ( (u.propertyIndex = d.ix), m.c.setGroupProperty(PropertyInterface('Copies', y)), m.o.setGroupProperty(PropertyInterface('Offset', y)), Object.defineProperties(u, { copies: { get: ExpressionPropertyInterface(m.c) }, offset: { get: ExpressionPropertyInterface(m.o) }, _name: { value: d.nm } }), (u.mn = d.mn), u ); } return function (d, p, x) { var u; function y(A) { if (typeof A == 'number') return (A = A === void 0 ? 1 : A), A === 0 ? x : u[A - 1]; for (var T = 0, E = u.length; T < E; ) { if (u[T]._name === A) return u[T]; T += 1; } return null; } function m() { return x; } return ( (y.propertyGroup = propertyGroupFactory(y, m)), (u = e(d, p, y.propertyGroup)), (y.numProperties = u.length), (y._name = 'Contents'), y ); }; })(), TextExpressionInterface = (function () { return function (e) { var t; function r(i) { switch (i) { case 'ADBE Text Document': return r.sourceText; default: return null; } } return ( Object.defineProperty(r, 'sourceText', { get: function () { e.textProperty.getValue(); var s = e.textProperty.currentData.t; return ( (!t || s !== t.value) && ((t = new String(s)), (t.value = s || new String(s)), Object.defineProperty(t, 'style', { get: function () { return { fillColor: e.textProperty.currentData.fc }; } })), t ); } }), r ); }; })(); function _typeof(e) { '@babel/helpers - typeof'; return ( typeof Symbol == 'function' && typeof Symbol.iterator == 'symbol' ? (_typeof = function (r) { return typeof r; }) : (_typeof = function (r) { return r && typeof Symbol == 'function' && r.constructor === Symbol && r !== Symbol.prototype ? 'symbol' : typeof r; }), _typeof(e) ); } var FootageInterface = (function () { var e = function (i) { var s = '', a = i.getFootageData(); function o() { return (s = ''), (a = i.getFootageData()), n; } function n(l) { if (a[l]) return (s = l), (a = a[l]), _typeof(a) === 'object' ? n : a; var f = l.indexOf(s); if (f !== -1) { var g = parseInt(l.substr(f + s.length), 10); return (a = a[g]), _typeof(a) === 'object' ? n : a; } return ''; } return o; }, t = function (i) { function s(a) { return a === 'Outline' ? s.outlineInterface() : null; } return (s._name = 'Outline'), (s.outlineInterface = e(i)), s; }; return function (r) { function i(s) { return s === 'Data' ? i.dataInterface : null; } return (i._name = 'Data'), (i.dataInterface = t(r)), i; }; })(), interfaces = { layer: LayerExpressionInterface, effects: EffectsExpressionInterface, comp: CompExpressionInterface, shape: ShapeExpressionInterface, text: TextExpressionInterface, footage: FootageInterface }; function getInterface(e) { return interfaces[e] || null; } var expressionHelpers = (function () { function e(o, n, l) { n.x && ((l.k = !0), (l.x = !0), (l.initiateExpression = ExpressionManager.initiateExpression), l.effectsSequence.push(l.initiateExpression(o, n, l).bind(l))); } function t(o) { return ( (o *= this.elem.globalData.frameRate), (o -= this.offsetTime), o !== this._cachingAtTime.lastFrame && ((this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < o ? this._cachingAtTime.lastIndex : 0), (this._cachingAtTime.value = this.interpolateValue( o, this._cachingAtTime )), (this._cachingAtTime.lastFrame = o)), this._cachingAtTime.value ); } function r(o) { var n = -0.01, l = this.getValueAtTime(o), f = this.getValueAtTime(o + n), g = 0; if (l.length) { var S; for (S = 0; S < l.length; S += 1) g += Math.pow(f[S] - l[S], 2); g = Math.sqrt(g) * 100; } else g = 0; return g; } function i(o) { if (this.vel !== void 0) return this.vel; var n = -0.001, l = this.getValueAtTime(o), f = this.getValueAtTime(o + n), g; if (l.length) { g = createTypedArray('float32', l.length); var S; for (S = 0; S < l.length; S += 1) g[S] = (f[S] - l[S]) / n; } else g = (f - l) / n; return g; } function s() { return this.pv; } function a(o) { this.propertyGroup = o; } return { searchExpressions: e, getSpeedAtTime: r, getVelocityAtTime: i, getValueAtTime: t, getStaticValueAtTime: s, setGroupProperty: a }; })(); function addPropertyDecorator() { function e(c, P, d) { if (!this.k || !this.keyframes) return this.pv; c = c ? c.toLowerCase() : ''; var p = this.comp.renderedFrame, x = this.keyframes, u = x[x.length - 1].t; if (p <= u) return this.pv; var y, m; d ? (P ? (y = Math.abs(u - this.elem.comp.globalData.frameRate * P)) : (y = Math.max(0, u - this.elem.data.ip)), (m = u - y)) : ((!P || P > x.length - 1) && (P = x.length - 1), (m = x[x.length - 1 - P].t), (y = u - m)); var A, T, E; if (c === 'pingpong') { var _ = Math.floor((p - m) / y); if (_ % 2 !== 0) return this.getValueAtTime( (y - ((p - m) % y) + m) / this.comp.globalData.frameRate, 0 ); } else if (c === 'offset') { var I = this.getValueAtTime(m / this.comp.globalData.frameRate, 0), B = this.getValueAtTime(u / this.comp.globalData.frameRate, 0), z = this.getValueAtTime( (((p - m) % y) + m) / this.comp.globalData.frameRate, 0 ), G = Math.floor((p - m) / y); if (this.pv.length) { for (E = new Array(I.length), T = E.length, A = 0; A < T; A += 1) E[A] = (B[A] - I[A]) * G + z[A]; return E; } return (B - I) * G + z; } else if (c === 'continue') { var R = this.getValueAtTime(u / this.comp.globalData.frameRate, 0), W = this.getValueAtTime( (u - 0.001) / this.comp.globalData.frameRate, 0 ); if (this.pv.length) { for (E = new Array(R.length), T = E.length, A = 0; A < T; A += 1) E[A] = R[A] + ((R[A] - W[A]) * ((p - u) / this.comp.globalData.frameRate)) / 5e-4; return E; } return R + (R - W) * ((p - u) / 0.001); } return this.getValueAtTime( (((p - m) % y) + m) / this.comp.globalData.frameRate, 0 ); } function t(c, P, d) { if (!this.k) return this.pv; c = c ? c.toLowerCase() : ''; var p = this.comp.renderedFrame, x = this.keyframes, u = x[0].t; if (p >= u) return this.pv; var y, m; d ? (P ? (y = Math.abs(this.elem.comp.globalData.frameRate * P)) : (y = Math.max(0, this.elem.data.op - u)), (m = u + y)) : ((!P || P > x.length - 1) && (P = x.length - 1), (m = x[P].t), (y = m - u)); var A, T, E; if (c === 'pingpong') { var _ = Math.floor((u - p) / y); if (_ % 2 === 0) return this.getValueAtTime( (((u - p) % y) + u) / this.comp.globalData.frameRate, 0 ); } else if (c === 'offset') { var I = this.getValueAtTime(u / this.comp.globalData.frameRate, 0), B = this.getValueAtTime(m / this.comp.globalData.frameRate, 0), z = this.getValueAtTime( (y - ((u - p) % y) + u) / this.comp.globalData.frameRate, 0 ), G = Math.floor((u - p) / y) + 1; if (this.pv.length) { for (E = new Array(I.length), T = E.length, A = 0; A < T; A += 1) E[A] = z[A] - (B[A] - I[A]) * G; return E; } return z - (B - I) * G; } else if (c === 'continue') { var R = this.getValueAtTime(u / this.comp.globalData.frameRate, 0), W = this.getValueAtTime( (u + 0.001) / this.comp.globalData.frameRate, 0 ); if (this.pv.length) { for (E = new Array(R.length), T = E.length, A = 0; A < T; A += 1) E[A] = R[A] + ((R[A] - W[A]) * (u - p)) / 0.001; return E; } return R + ((R - W) * (u - p)) / 0.001; } return this.getValueAtTime( (y - (((u - p) % y) + u)) / this.comp.globalData.frameRate, 0 ); } function r(c, P) { if (!this.k) return this.pv; if (((c = (c || 0.4) * 0.5), (P = Math.floor(P || 5)), P <= 1)) return this.pv; var d = this.comp.renderedFrame / this.comp.globalData.frameRate, p = d - c, x = d + c, u = P > 1 ? (x - p) / (P - 1) : 1, y = 0, m = 0, A; this.pv.length ? (A = createTypedArray('float32', this.pv.length)) : (A = 0); for (var T; y < P; ) { if (((T = this.getValueAtTime(p + y * u)), this.pv.length)) for (m = 0; m < this.pv.length; m += 1) A[m] += T[m]; else A += T; y += 1; } if (this.pv.length) for (m = 0; m < this.pv.length; m += 1) A[m] /= P; else A /= P; return A; } function i(c) { this._transformCachingAtTime || (this._transformCachingAtTime = { v: new Matrix() }); var P = this._transformCachingAtTime.v; if ( (P.cloneFromProps(this.pre.props), this.appliedTransformations < 1) ) { var d = this.a.getValueAtTime(c); P.translate( -d[0] * this.a.mult, -d[1] * this.a.mult, d[2] * this.a.mult ); } if (this.appliedTransformations < 2) { var p = this.s.getValueAtTime(c); P.scale(p[0] * this.s.mult, p[1] * this.s.mult, p[2] * this.s.mult); } if (this.sk && this.appliedTransformations < 3) { var x = this.sk.getValueAtTime(c), u = this.sa.getValueAtTime(c); P.skewFromAxis(-x * this.sk.mult, u * this.sa.mult); } if (this.r && this.appliedTransformations < 4) { var y = this.r.getValueAtTime(c); P.rotate(-y * this.r.mult); } else if (!this.r && this.appliedTransformations < 4) { var m = this.rz.getValueAtTime(c), A = this.ry.getValueAtTime(c), T = this.rx.getValueAtTime(c), E = this.or.getValueAtTime(c); P.rotateZ(-m * this.rz.mult) .rotateY(A * this.ry.mult) .rotateX(T * this.rx.mult) .rotateZ(-E[2] * this.or.mult) .rotateY(E[1] * this.or.mult) .rotateX(E[0] * this.or.mult); } if (this.data.p && this.data.p.s) { var _ = this.px.getValueAtTime(c), I = this.py.getValueAtTime(c); if (this.data.p.z) { var B = this.pz.getValueAtTime(c); P.translate( _ * this.px.mult, I * this.py.mult, -B * this.pz.mult ); } else P.translate(_ * this.px.mult, I * this.py.mult, 0); } else { var z = this.p.getValueAtTime(c); P.translate( z[0] * this.p.mult, z[1] * this.p.mult, -z[2] * this.p.mult ); } return P; } function s() { return this.v.clone(new Matrix()); } var a = TransformPropertyFactory.getTransformProperty; TransformPropertyFactory.getTransformProperty = function (c, P, d) { var p = a(c, P, d); return ( p.dynamicProperties.length ? (p.getValueAtTime = i.bind(p)) : (p.getValueAtTime = s.bind(p)), (p.setGroupProperty = expressionHelpers.setGroupProperty), p ); }; var o = PropertyFactory.getProp; PropertyFactory.getProp = function (c, P, d, p, x) { var u = o(c, P, d, p, x); u.kf ? (u.getValueAtTime = expressionHelpers.getValueAtTime.bind(u)) : (u.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(u)), (u.setGroupProperty = expressionHelpers.setGroupProperty), (u.loopOut = e), (u.loopIn = t), (u.smooth = r), (u.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(u)), (u.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(u)), (u.numKeys = P.a === 1 ? P.k.length : 0), (u.propertyIndex = P.ix); var y = 0; return ( d !== 0 && (y = createTypedArray( 'float32', P.a === 1 ? P.k[0].s.length : P.k.length )), (u._cachingAtTime = { lastFrame: initialDefaultFrame, lastIndex: 0, value: y }), expressionHelpers.searchExpressions(c, P, u), u.k && x.addDynamicProperty(u), u ); }; function n(c) { return ( this._cachingAtTime || (this._cachingAtTime = { shapeValue: shapePool.clone(this.pv), lastIndex: 0, lastTime: initialDefaultFrame }), (c *= this.elem.globalData.frameRate), (c -= this.offsetTime), c !== this._cachingAtTime.lastTime && ((this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < c ? this._caching.lastIndex : 0), (this._cachingAtTime.lastTime = c), this.interpolateShape( c, this._cachingAtTime.shapeValue, this._cachingAtTime )), this._cachingAtTime.shapeValue ); } var l = ShapePropertyFactory.getConstructorFunction(), f = ShapePropertyFactory.getKeyframedConstructorFunction(); function g() {} (g.prototype = { vertices: function (P, d) { this.k && this.getValue(); var p = this.v; d !== void 0 && (p = this.getValueAtTime(d, 0)); var x, u = p._length, y = p[P], m = p.v, A = createSizedArray(u); for (x = 0; x < u; x += 1) P === 'i' || P === 'o' ? (A[x] = [y[x][0] - m[x][0], y[x][1] - m[x][1]]) : (A[x] = [y[x][0], y[x][1]]); return A; }, points: function (P) { return this.vertices('v', P); }, inTangents: function (P) { return this.vertices('i', P); }, outTangents: function (P) { return this.vertices('o', P); }, isClosed: function () { return this.v.c; }, pointOnPath: function (P, d) { var p = this.v; d !== void 0 && (p = this.getValueAtTime(d, 0)), this._segmentsLength || (this._segmentsLength = bez.getSegmentsLength(p)); for ( var x = this._segmentsLength, u = x.lengths, y = x.totalLength * P, m = 0, A = u.length, T = 0, E; m < A; ) { if (T + u[m].addedLength > y) { var _ = m, I = p.c && m === A - 1 ? 0 : m + 1, B = (y - T) / u[m].addedLength; E = bez.getPointInSegment( p.v[_], p.v[I], p.o[_], p.i[I], B, u[m] ); break; } else T += u[m].addedLength; m += 1; } return ( E || (E = p.c ? [p.v[0][0], p.v[0][1]] : [p.v[p._length - 1][0], p.v[p._length - 1][1]]), E ); }, vectorOnPath: function (P, d, p) { P == 1 ? (P = this.v.c) : P == 0 && (P = 0.999); var x = this.pointOnPath(P, d), u = this.pointOnPath(P + 0.001, d), y = u[0] - x[0], m = u[1] - x[1], A = Math.sqrt(Math.pow(y, 2) + Math.pow(m, 2)); if (A === 0) return [0, 0]; var T = p === 'tangent' ? [y / A, m / A] : [-m / A, y / A]; return T; }, tangentOnPath: function (P, d) { return this.vectorOnPath(P, d, 'tangent'); }, normalOnPath: function (P, d) { return this.vectorOnPath(P, d, 'normal'); }, setGroupProperty: expressionHelpers.setGroupProperty, getValueAtTime: expressionHelpers.getStaticValueAtTime }), extendPrototype([g], l), extendPrototype([g], f), (f.prototype.getValueAtTime = n), (f.prototype.initiateExpression = ExpressionManager.initiateExpression); var S = ShapePropertyFactory.getShapeProp; ShapePropertyFactory.getShapeProp = function (c, P, d, p, x) { var u = S(c, P, d, p, x); return ( (u.propertyIndex = P.ix), (u.lock = !1), d === 3 ? expressionHelpers.searchExpressions(c, P.pt, u) : d === 4 && expressionHelpers.searchExpressions(c, P.ks, u), u.k && c.addDynamicProperty(u), u ); }; } function initialize$1() { addPropertyDecorator(); } function addDecorator() { function e() { return this.data.d.x ? ((this.calculateExpression = ExpressionManager.initiateExpression.bind(this)( this.elem, this.data.d, this )), this.addEffect(this.getExpressionValue.bind(this)), !0) : null; } (TextProperty.prototype.getExpressionValue = function (t, r) { var i = this.calculateExpression(r); if (t.t !== i) { var s = {}; return ( this.copyData(s, t), (s.t = i.toString()), (s.__complete = !1), s ); } return t; }), (TextProperty.prototype.searchProperty = function () { var t = this.searchKeyframes(), r = this.searchExpressions(); return (this.kf = t || r), this.kf; }), (TextProperty.prototype.searchExpressions = e); } function initialize() { addDecorator(); } function SVGComposableEffect() {} SVGComposableEffect.prototype = { createMergeNode: function e(t, r) { var i = createNS('feMerge'); i.setAttribute('result', t); var s, a; for (a = 0; a < r.length; a += 1) (s = createNS('feMergeNode')), s.setAttribute('in', r[a]), i.appendChild(s), i.appendChild(s); return i; } }; var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0'; function SVGTintFilter(e, t, r, i, s) { this.filterManager = t; var a = createNS('feColorMatrix'); a.setAttribute('type', 'matrix'), a.setAttribute('color-interpolation-filters', 'linearRGB'), a.setAttribute('values', linearFilterValue + ' 1 0'), (this.linearFilter = a), a.setAttribute('result', i + '_tint_1'), e.appendChild(a), (a = createNS('feColorMatrix')), a.setAttribute('type', 'matrix'), a.setAttribute('color-interpolation-filters', 'sRGB'), a.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0'), a.setAttribute('result', i + '_tint_2'), e.appendChild(a), (this.matrixFilter = a); var o = this.createMergeNode(i, [s, i + '_tint_1', i + '_tint_2']); e.appendChild(o); } extendPrototype([SVGComposableEffect], SVGTintFilter), (SVGTintFilter.prototype.renderFrame = function (e) { if (e || this.filterManager._mdf) { var t = this.filterManager.effectElements[0].p.v, r = this.filterManager.effectElements[1].p.v, i = this.filterManager.effectElements[2].p.v / 100; this.linearFilter.setAttribute( 'values', linearFilterValue + ' ' + i + ' 0' ), this.matrixFilter.setAttribute( 'values', r[0] - t[0] + ' 0 0 0 ' + t[0] + ' ' + (r[1] - t[1]) + ' 0 0 0 ' + t[1] + ' ' + (r[2] - t[2]) + ' 0 0 0 ' + t[2] + ' 0 0 0 1 0' ); } }); function SVGFillFilter(e, t, r, i) { this.filterManager = t; var s = createNS('feColorMatrix'); s.setAttribute('type', 'matrix'), s.setAttribute('color-interpolation-filters', 'sRGB'), s.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0'), s.setAttribute('result', i), e.appendChild(s), (this.matrixFilter = s); } SVGFillFilter.prototype.renderFrame = function (e) { if (e || this.filterManager._mdf) { var t = this.filterManager.effectElements[2].p.v, r = this.filterManager.effectElements[6].p.v; this.matrixFilter.setAttribute( 'values', '0 0 0 0 ' + t[0] + ' 0 0 0 0 ' + t[1] + ' 0 0 0 0 ' + t[2] + ' 0 0 0 ' + r + ' 0' ); } }; function SVGStrokeEffect(e, t, r) { (this.initialized = !1), (this.filterManager = t), (this.elem = r), (this.paths = []); } (SVGStrokeEffect.prototype.initialize = function () { var e = this.elem.layerElement.children || this.elem.layerElement.childNodes, t, r, i, s; for ( this.filterManager.effectElements[1].p.v === 1 ? ((s = this.elem.maskManager.masksProperties.length), (i = 0)) : ((i = this.filterManager.effectElements[0].p.v - 1), (s = i + 1)), r = createNS('g'), r.setAttribute('fill', 'none'), r.setAttribute('stroke-linecap', 'round'), r.setAttribute('stroke-dashoffset', 1), i; i < s; i += 1 ) (t = createNS('path')), r.appendChild(t), this.paths.push({ p: t, m: i }); if (this.filterManager.effectElements[10].p.v === 3) { var a = createNS('mask'), o = createElementID(); a.setAttribute('id', o), a.setAttribute('mask-type', 'alpha'), a.appendChild(r), this.elem.globalData.defs.appendChild(a); var n = createNS('g'); for ( n.setAttribute('mask', 'url(' + getLocationHref() + '#' + o + ')'); e[0]; ) n.appendChild(e[0]); this.elem.layerElement.appendChild(n), (this.masker = a), r.setAttribute('stroke', '#fff'); } else if ( this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2 ) { if (this.filterManager.effectElements[10].p.v === 2) for ( e = this.elem.layerElement.children || this.elem.layerElement.childNodes; e.length; ) this.elem.layerElement.removeChild(e[0]); this.elem.layerElement.appendChild(r), this.elem.layerElement.removeAttribute('mask'), r.setAttribute('stroke', '#fff'); } (this.initialized = !0), (this.pathMasker = r); }), (SVGStrokeEffect.prototype.renderFrame = function (e) { this.initialized || this.initialize(); var t, r = this.paths.length, i, s; for (t = 0; t < r; t += 1) if ( this.paths[t].m !== -1 && ((i = this.elem.maskManager.viewData[this.paths[t].m]), (s = this.paths[t].p), (e || this.filterManager._mdf || i.prop._mdf) && s.setAttribute('d', i.lastPath), e || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || i.prop._mdf) ) { var a; if ( this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100 ) { var o = Math.min( this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v ) * 0.01, n = Math.max( this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v ) * 0.01, l = s.getTotalLength(); a = '0 0 0 ' + l * o + ' '; var f = l * (n - o), g = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01, S = Math.floor(f / g), c; for (c = 0; c < S; c += 1) a += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' '; a += '0 ' + l * 10 + ' 0 0'; } else a = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01; s.setAttribute('stroke-dasharray', a); } if ( ((e || this.filterManager.effectElements[4].p._mdf) && this.pathMasker.setAttribute( 'stroke-width', this.filterManager.effectElements[4].p.v * 2 ), (e || this.filterManager.effectElements[6].p._mdf) && this.pathMasker.setAttribute( 'opacity', this.filterManager.effectElements[6].p.v ), (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) && (e || this.filterManager.effectElements[3].p._mdf)) ) { var P = this.filterManager.effectElements[3].p.v; this.pathMasker.setAttribute( 'stroke', 'rgb(' + bmFloor(P[0] * 255) + ',' + bmFloor(P[1] * 255) + ',' + bmFloor(P[2] * 255) + ')' ); } }); function SVGTritoneFilter(e, t, r, i) { this.filterManager = t; var s = createNS('feColorMatrix'); s.setAttribute('type', 'matrix'), s.setAttribute('color-interpolation-filters', 'linearRGB'), s.setAttribute( 'values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0' ), e.appendChild(s); var a = createNS('feComponentTransfer'); a.setAttribute('color-interpolation-filters', 'sRGB'), a.setAttribute('result', i), (this.matrixFilter = a); var o = createNS('feFuncR'); o.setAttribute('type', 'table'), a.appendChild(o), (this.feFuncR = o); var n = createNS('feFuncG'); n.setAttribute('type', 'table'), a.appendChild(n), (this.feFuncG = n); var l = createNS('feFuncB'); l.setAttribute('type', 'table'), a.appendChild(l), (this.feFuncB = l), e.appendChild(a); } SVGTritoneFilter.prototype.renderFrame = function (e) { if (e || this.filterManager._mdf) { var t = this.filterManager.effectElements[0].p.v, r = this.filterManager.effectElements[1].p.v, i = this.filterManager.effectElements[2].p.v, s = i[0] + ' ' + r[0] + ' ' + t[0], a = i[1] + ' ' + r[1] + ' ' + t[1], o = i[2] + ' ' + r[2] + ' ' + t[2]; this.feFuncR.setAttribute('tableValues', s), this.feFuncG.setAttribute('tableValues', a), this.feFuncB.setAttribute('tableValues', o); } }; function SVGProLevelsFilter(e, t, r, i) { this.filterManager = t; var s = this.filterManager.effectElements, a = createNS('feComponentTransfer'); (s[10].p.k || s[10].p.v !== 0 || s[11].p.k || s[11].p.v !== 1 || s[12].p.k || s[12].p.v !== 1 || s[13].p.k || s[13].p.v !== 0 || s[14].p.k || s[14].p.v !== 1) && (this.feFuncR = this.createFeFunc('feFuncR', a)), (s[17].p.k || s[17].p.v !== 0 || s[18].p.k || s[18].p.v !== 1 || s[19].p.k || s[19].p.v !== 1 || s[20].p.k || s[20].p.v !== 0 || s[21].p.k || s[21].p.v !== 1) && (this.feFuncG = this.createFeFunc('feFuncG', a)), (s[24].p.k || s[24].p.v !== 0 || s[25].p.k || s[25].p.v !== 1 || s[26].p.k || s[26].p.v !== 1 || s[27].p.k || s[27].p.v !== 0 || s[28].p.k || s[28].p.v !== 1) && (this.feFuncB = this.createFeFunc('feFuncB', a)), (s[31].p.k || s[31].p.v !== 0 || s[32].p.k || s[32].p.v !== 1 || s[33].p.k || s[33].p.v !== 1 || s[34].p.k || s[34].p.v !== 0 || s[35].p.k || s[35].p.v !== 1) && (this.feFuncA = this.createFeFunc('feFuncA', a)), (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) && (a.setAttribute('color-interpolation-filters', 'sRGB'), e.appendChild(a)), (s[3].p.k || s[3].p.v !== 0 || s[4].p.k || s[4].p.v !== 1 || s[5].p.k || s[5].p.v !== 1 || s[6].p.k || s[6].p.v !== 0 || s[7].p.k || s[7].p.v !== 1) && ((a = createNS('feComponentTransfer')), a.setAttribute('color-interpolation-filters', 'sRGB'), a.setAttribute('result', i), e.appendChild(a), (this.feFuncRComposed = this.createFeFunc('feFuncR', a)), (this.feFuncGComposed = this.createFeFunc('feFuncG', a)), (this.feFuncBComposed = this.createFeFunc('feFuncB', a))); } (SVGProLevelsFilter.prototype.createFeFunc = function (e, t) { var r = createNS(e); return r.setAttribute('type', 'table'), t.appendChild(r), r; }), (SVGProLevelsFilter.prototype.getTableValue = function (e, t, r, i, s) { for ( var a = 0, o = 256, n, l = Math.min(e, t), f = Math.max(e, t), g = Array.call(null, { length: o }), S, c = 0, P = s - i, d = t - e; a <= 256; ) (n = a / 256), n <= l ? (S = d < 0 ? s : i) : n >= f ? (S = d < 0 ? i : s) : (S = i + P * Math.pow((n - e) / d, 1 / r)), (g[c] = S), (c += 1), (a += 256 / (o - 1)); return g.join(' '); }), (SVGProLevelsFilter.prototype.renderFrame = function (e) { if (e || this.filterManager._mdf) { var t, r = this.filterManager.effectElements; this.feFuncRComposed && (e || r[3].p._mdf || r[4].p._mdf || r[5].p._mdf || r[6].p._mdf || r[7].p._mdf) && ((t = this.getTableValue( r[3].p.v, r[4].p.v, r[5].p.v, r[6].p.v, r[7].p.v )), this.feFuncRComposed.setAttribute('tableValues', t), this.feFuncGComposed.setAttribute('tableValues', t), this.feFuncBComposed.setAttribute('tableValues', t)), this.feFuncR && (e || r[10].p._mdf || r[11].p._mdf || r[12].p._mdf || r[13].p._mdf || r[14].p._mdf) && ((t = this.getTableValue( r[10].p.v, r[11].p.v, r[12].p.v, r[13].p.v, r[14].p.v )), this.feFuncR.setAttribute('tableValues', t)), this.feFuncG && (e || r[17].p._mdf || r[18].p._mdf || r[19].p._mdf || r[20].p._mdf || r[21].p._mdf) && ((t = this.getTableValue( r[17].p.v, r[18].p.v, r[19].p.v, r[20].p.v, r[21].p.v )), this.feFuncG.setAttribute('tableValues', t)), this.feFuncB && (e || r[24].p._mdf || r[25].p._mdf || r[26].p._mdf || r[27].p._mdf || r[28].p._mdf) && ((t = this.getTableValue( r[24].p.v, r[25].p.v, r[26].p.v, r[27].p.v, r[28].p.v )), this.feFuncB.setAttribute('tableValues', t)), this.feFuncA && (e || r[31].p._mdf || r[32].p._mdf || r[33].p._mdf || r[34].p._mdf || r[35].p._mdf) && ((t = this.getTableValue( r[31].p.v, r[32].p.v, r[33].p.v, r[34].p.v, r[35].p.v )), this.feFuncA.setAttribute('tableValues', t)); } }); function SVGDropShadowEffect(e, t, r, i, s) { var a = t.container.globalData.renderConfig.filterSize, o = t.data.fs || a; e.setAttribute('x', o.x || a.x), e.setAttribute('y', o.y || a.y), e.setAttribute('width', o.width || a.width), e.setAttribute('height', o.height || a.height), (this.filterManager = t); var n = createNS('feGaussianBlur'); n.setAttribute('in', 'SourceAlpha'), n.setAttribute('result', i + '_drop_shadow_1'), n.setAttribute('stdDeviation', '0'), (this.feGaussianBlur = n), e.appendChild(n); var l = createNS('feOffset'); l.setAttribute('dx', '25'), l.setAttribute('dy', '0'), l.setAttribute('in', i + '_drop_shadow_1'), l.setAttribute('result', i + '_drop_shadow_2'), (this.feOffset = l), e.appendChild(l); var f = createNS('feFlood'); f.setAttribute('flood-color', '#00ff00'), f.setAttribute('flood-opacity', '1'), f.setAttribute('result', i + '_drop_shadow_3'), (this.feFlood = f), e.appendChild(f); var g = createNS('feComposite'); g.setAttribute('in', i + '_drop_shadow_3'), g.setAttribute('in2', i + '_drop_shadow_2'), g.setAttribute('operator', 'in'), g.setAttribute('result', i + '_drop_shadow_4'), e.appendChild(g); var S = this.createMergeNode(i, [i + '_drop_shadow_4', s]); e.appendChild(S); } extendPrototype([SVGComposableEffect], SVGDropShadowEffect), (SVGDropShadowEffect.prototype.renderFrame = function (e) { if (e || this.filterManager._mdf) { if ( ((e || this.filterManager.effectElements[4].p._mdf) && this.feGaussianBlur.setAttribute( 'stdDeviation', this.filterManager.effectElements[4].p.v / 4 ), e || this.filterManager.effectElements[0].p._mdf) ) { var t = this.filterManager.effectElements[0].p.v; this.feFlood.setAttribute( 'flood-color', rgbToHex( Math.round(t[0] * 255), Math.round(t[1] * 255), Math.round(t[2] * 255) ) ); } if ( ((e || this.filterManager.effectElements[1].p._mdf) && this.feFlood.setAttribute( 'flood-opacity', this.filterManager.effectElements[1].p.v / 255 ), e || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) ) { var r = this.filterManager.effectElements[3].p.v, i = (this.filterManager.effectElements[2].p.v - 90) * degToRads, s = r * Math.cos(i), a = r * Math.sin(i); this.feOffset.setAttribute('dx', s), this.feOffset.setAttribute('dy', a); } } }); var _svgMatteSymbols = []; function SVGMatte3Effect(e, t, r) { (this.initialized = !1), (this.filterManager = t), (this.filterElem = e), (this.elem = r), (r.matteElement = createNS('g')), r.matteElement.appendChild(r.layerElement), r.matteElement.appendChild(r.transformedElement), (r.baseElement = r.matteElement); } (SVGMatte3Effect.prototype.findSymbol = function (e) { for (var t = 0, r = _svgMatteSymbols.length; t < r; ) { if (_svgMatteSymbols[t] === e) return _svgMatteSymbols[t]; t += 1; } return null; }), (SVGMatte3Effect.prototype.replaceInParent = function (e, t) { var r = e.layerElement.parentNode; if (r) { for ( var i = r.children, s = 0, a = i.length; s < a && i[s] !== e.layerElement; ) s += 1; var o; s <= a - 2 && (o = i[s + 1]); var n = createNS('use'); n.setAttribute('href', '#' + t), o ? r.insertBefore(n, o) : r.appendChild(n); } }), (SVGMatte3Effect.prototype.setElementAsMask = function (e, t) { if (!this.findSymbol(t)) { var r = createElementID(), i = createNS('mask'); i.setAttribute('id', t.layerId), i.setAttribute('mask-type', 'alpha'), _svgMatteSymbols.push(t); var s = e.globalData.defs; s.appendChild(i); var a = createNS('symbol'); a.setAttribute('id', r), this.replaceInParent(t, r), a.appendChild(t.layerElement), s.appendChild(a); var o = createNS('use'); o.setAttribute('href', '#' + r), i.appendChild(o), (t.data.hd = !1), t.show(); } e.setMatte(t.layerId); }), (SVGMatte3Effect.prototype.initialize = function () { for ( var e = this.filterManager.effectElements[0].p.v, t = this.elem.comp.elements, r = 0, i = t.length; r < i; ) t[r] && t[r].data.ind === e && this.setElementAsMask(this.elem, t[r]), (r += 1); this.initialized = !0; }), (SVGMatte3Effect.prototype.renderFrame = function () { this.initialized || this.initialize(); }); function SVGGaussianBlurEffect(e, t, r, i) { e.setAttribute('x', '-100%'), e.setAttribute('y', '-100%'), e.setAttribute('width', '300%'), e.setAttribute('height', '300%'), (this.filterManager = t); var s = createNS('feGaussianBlur'); s.setAttribute('result', i), e.appendChild(s), (this.feGaussianBlur = s); } SVGGaussianBlurEffect.prototype.renderFrame = function (e) { if (e || this.filterManager._mdf) { var t = 0.3, r = this.filterManager.effectElements[0].p.v * t, i = this.filterManager.effectElements[1].p.v, s = i == 3 ? 0 : r, a = i == 2 ? 0 : r; this.feGaussianBlur.setAttribute('stdDeviation', s + ' ' + a); var o = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; this.feGaussianBlur.setAttribute('edgeMode', o); } }; function TransformEffect() {} (TransformEffect.prototype.init = function (e) { (this.effectsManager = e), (this.type = effectTypes.TRANSFORM_EFFECT), (this.matrix = new Matrix()), (this.opacity = -1), (this._mdf = !1), (this._opMdf = !1); }), (TransformEffect.prototype.renderFrame = function (e) { if ( ((this._opMdf = !1), (this._mdf = !1), e || this.effectsManager._mdf) ) { var t = this.effectsManager.effectElements, r = t[0].p.v, i = t[1].p.v, s = t[2].p.v === 1, a = t[3].p.v, o = s ? a : t[4].p.v, n = t[5].p.v, l = t[6].p.v, f = t[7].p.v; this.matrix.reset(), this.matrix.translate(-r[0], -r[1], r[2]), this.matrix.scale(o * 0.01, a * 0.01, 1), this.matrix.rotate(-f * degToRads), this.matrix.skewFromAxis(-n * degToRads, (l + 90) * degToRads), this.matrix.translate(i[0], i[1], 0), (this._mdf = !0), this.opacity !== t[8].p.v && ((this.opacity = t[8].p.v), (this._opMdf = !0)); } }); function SVGTransformEffect(e, t) { this.init(t); } extendPrototype([TransformEffect], SVGTransformEffect); function CVTransformEffect(e) { this.init(e); } return ( extendPrototype([TransformEffect], CVTransformEffect), registerRenderer('canvas', CanvasRenderer), registerRenderer('html', HybridRenderer), registerRenderer('svg', SVGRenderer), ShapeModifiers.registerModifier('tm', TrimModifier), ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier), ShapeModifiers.registerModifier('rp', RepeaterModifier), ShapeModifiers.registerModifier('rd', RoundCornersModifier), ShapeModifiers.registerModifier('zz', ZigZagModifier), ShapeModifiers.registerModifier('op', OffsetPathModifier), setExpressionsPlugin(Expressions), setExpressionInterfaces(getInterface), initialize$1(), initialize(), registerEffect$1(20, SVGTintFilter, !0), registerEffect$1(21, SVGFillFilter, !0), registerEffect$1(22, SVGStrokeEffect, !1), registerEffect$1(23, SVGTritoneFilter, !0), registerEffect$1(24, SVGProLevelsFilter, !0), registerEffect$1(25, SVGDropShadowEffect, !0), registerEffect$1(28, SVGMatte3Effect, !1), registerEffect$1(29, SVGGaussianBlurEffect, !0), registerEffect$1(35, SVGTransformEffect, !1), registerEffect(35, CVTransformEffect), lottie ); }); })(lottie, lottie.exports); var lottieExports = lottie.exports; const Lottie = getDefaultExportFromCjs(lottieExports); var freeGlobal = typeof global == 'object' && global && global.Object === Object && global, freeGlobal$1 = freeGlobal, freeSelf = typeof self == 'object' && self && self.Object === Object && self, root = freeGlobal$1 || freeSelf || Function('return this')(), root$1 = root, Symbol$1 = root$1.Symbol, Symbol$2 = Symbol$1, objectProto$e = Object.prototype, hasOwnProperty$b = objectProto$e.hasOwnProperty, nativeObjectToString$1 = objectProto$e.toString, symToStringTag$1 = Symbol$2 ? Symbol$2.toStringTag : void 0; function getRawTag(e) { var t = hasOwnProperty$b.call(e, symToStringTag$1), r = e[symToStringTag$1]; try { e[symToStringTag$1] = void 0; var i = !0; } catch (a) {} var s = nativeObjectToString$1.call(e); return i && (t ? (e[symToStringTag$1] = r) : delete e[symToStringTag$1]), s; } var objectProto$d = Object.prototype, nativeObjectToString = objectProto$d.toString; function objectToString(e) { return nativeObjectToString.call(e); } var nullTag = '[object Null]', undefinedTag = '[object Undefined]', symToStringTag = Symbol$2 ? Symbol$2.toStringTag : void 0; function baseGetTag(e) { return e == null ? e === void 0 ? undefinedTag : nullTag : symToStringTag && symToStringTag in Object(e) ? getRawTag(e) : objectToString(e); } function isObjectLike(e) { return e != null && typeof e == 'object'; } var isArray = Array.isArray, isArray$1 = isArray; function isObject(e) { var t = typeof e; return e != null && (t == 'object' || t == 'function'); } var asyncTag = '[object AsyncFunction]', funcTag$2 = '[object Function]', genTag$1 = '[object GeneratorFunction]', proxyTag = '[object Proxy]'; function isFunction(e) { if (!isObject(e)) return !1; var t = baseGetTag(e); return t == funcTag$2 || t == genTag$1 || t == asyncTag || t == proxyTag; } var coreJsData = root$1['__core-js_shared__'], coreJsData$1 = coreJsData, maskSrcKey = (function () { var e = /[^.]+$/.exec( (coreJsData$1 && coreJsData$1.keys && coreJsData$1.keys.IE_PROTO) || '' ); return e ? 'Symbol(src)_1.' + e : ''; })(); function isMasked(e) { return !!maskSrcKey && maskSrcKey in e; } var funcProto$1 = Function.prototype, funcToString$1 = funcProto$1.toString; function toSource(e) { if (e != null) { try { return funcToString$1.call(e); } catch (t) {} try { return e + ''; } catch (t) {} } return ''; } var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, reIsHostCtor = /^\[object .+?Constructor\]$/, funcProto = Function.prototype, objectProto$c = Object.prototype, funcToString = funcProto.toString, hasOwnProperty$a = objectProto$c.hasOwnProperty, reIsNative = RegExp( '^' + funcToString .call(hasOwnProperty$a) .replace(reRegExpChar, '\\$&') .replace( /hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?' ) + '$' ); function baseIsNative(e) { if (!isObject(e) || isMasked(e)) return !1; var t = isFunction(e) ? reIsNative : reIsHostCtor; return t.test(toSource(e)); } function getValue(e, t) { return e == null ? void 0 : e[t]; } function getNative(e, t) { var r = getValue(e, t); return baseIsNative(r) ? r : void 0; } var WeakMap = getNative(root$1, 'WeakMap'), WeakMap$1 = WeakMap, objectCreate = Object.create, baseCreate = (function () { function e() {} return function (t) { if (!isObject(t)) return {}; if (objectCreate) return objectCreate(t); e.prototype = t; var r = new e(); return (e.prototype = void 0), r; }; })(), baseCreate$1 = baseCreate; function copyArray(e, t) { var r = -1, i = e.length; for (t || (t = Array(i)); ++r < i; ) t[r] = e[r]; return t; } var defineProperty = (function () { try { var e = getNative(Object, 'defineProperty'); return e({}, '', {}), e; } catch (t) {} })(), defineProperty$1 = defineProperty; function arrayEach(e, t) { for ( var r = -1, i = e == null ? 0 : e.length; ++r < i && t(e[r], r, e) !== !1; ); return e; } var MAX_SAFE_INTEGER$1 = 9007199254740991, reIsUint = /^(?:0|[1-9]\d*)$/; function isIndex(e, t) { var r = typeof e; return ( (t = t == null ? MAX_SAFE_INTEGER$1 : t), !!t && (r == 'number' || (r != 'symbol' && reIsUint.test(e))) && e > -1 && e % 1 == 0 && e < t ); } function baseAssignValue(e, t, r) { t == '__proto__' && defineProperty$1 ? defineProperty$1(e, t, { configurable: !0, enumerable: !0, value: r, writable: !0 }) : (e[t] = r); } function eq(e, t) { return e === t || (e !== e && t !== t); } var objectProto$b = Object.prototype, hasOwnProperty$9 = objectProto$b.hasOwnProperty; function assignValue(e, t, r) { var i = e[t]; (!(hasOwnProperty$9.call(e, t) && eq(i, r)) || (r === void 0 && !(t in e))) && baseAssignValue(e, t, r); } function copyObject(e, t, r, i) { var s = !r; r || (r = {}); for (var a = -1, o = t.length; ++a < o; ) { var n = t[a], l = i ? i(r[n], e[n], n, r, e) : void 0; l === void 0 && (l = e[n]), s ? baseAssignValue(r, n, l) : assignValue(r, n, l); } return r; } var MAX_SAFE_INTEGER = 9007199254740991; function isLength(e) { return typeof e == 'number' && e > -1 && e % 1 == 0 && e <= MAX_SAFE_INTEGER; } function isArrayLike(e) { return e != null && isLength(e.length) && !isFunction(e); } var objectProto$a = Object.prototype; function isPrototype(e) { var t = e && e.constructor, r = (typeof t == 'function' && t.prototype) || objectProto$a; return e === r; } function baseTimes(e, t) { for (var r = -1, i = Array(e); ++r < e; ) i[r] = t(r); return i; } var argsTag$3 = '[object Arguments]'; function baseIsArguments(e) { return isObjectLike(e) && baseGetTag(e) == argsTag$3; } var objectProto$9 = Object.prototype, hasOwnProperty$8 = objectProto$9.hasOwnProperty, propertyIsEnumerable$1 = objectProto$9.propertyIsEnumerable, isArguments = baseIsArguments( (function () { return arguments; })() ) ? baseIsArguments : function (e) { return ( isObjectLike(e) && hasOwnProperty$8.call(e, 'callee') && !propertyIsEnumerable$1.call(e, 'callee') ); }, isArguments$1 = isArguments; function stubFalse() { return !1; } var freeExports$2 = typeof exports == 'object' && exports && !exports.nodeType && exports, freeModule$2 = freeExports$2 && typeof module == 'object' && module && !module.nodeType && module, moduleExports$2 = freeModule$2 && freeModule$2.exports === freeExports$2, Buffer$1 = moduleExports$2 ? root$1.Buffer : void 0, nativeIsBuffer = Buffer$1 ? Buffer$1.isBuffer : void 0, isBuffer = nativeIsBuffer || stubFalse, isBuffer$1 = isBuffer, argsTag$2 = '[object Arguments]', arrayTag$2 = '[object Array]', boolTag$3 = '[object Boolean]', dateTag$3 = '[object Date]', errorTag$2 = '[object Error]', funcTag$1 = '[object Function]', mapTag$5 = '[object Map]', numberTag$3 = '[object Number]', objectTag$3 = '[object Object]', regexpTag$3 = '[object RegExp]', setTag$5 = '[object Set]', stringTag$3 = '[object String]', weakMapTag$2 = '[object WeakMap]', arrayBufferTag$3 = '[object ArrayBuffer]', dataViewTag$4 = '[object DataView]', float32Tag$2 = '[object Float32Array]', float64Tag$2 = '[object Float64Array]', int8Tag$2 = '[object Int8Array]', int16Tag$2 = '[object Int16Array]', int32Tag$2 = '[object Int32Array]', uint8Tag$2 = '[object Uint8Array]', uint8ClampedTag$2 = '[object Uint8ClampedArray]', uint16Tag$2 = '[object Uint16Array]', uint32Tag$2 = '[object Uint32Array]', typedArrayTags = {}; typedArrayTags[float32Tag$2] = typedArrayTags[float64Tag$2] = typedArrayTags[int8Tag$2] = typedArrayTags[int16Tag$2] = typedArrayTags[int32Tag$2] = typedArrayTags[uint8Tag$2] = typedArrayTags[uint8ClampedTag$2] = typedArrayTags[uint16Tag$2] = typedArrayTags[uint32Tag$2] = !0; typedArrayTags[argsTag$2] = typedArrayTags[arrayTag$2] = typedArrayTags[arrayBufferTag$3] = typedArrayTags[boolTag$3] = typedArrayTags[dataViewTag$4] = typedArrayTags[dateTag$3] = typedArrayTags[errorTag$2] = typedArrayTags[funcTag$1] = typedArrayTags[mapTag$5] = typedArrayTags[numberTag$3] = typedArrayTags[objectTag$3] = typedArrayTags[regexpTag$3] = typedArrayTags[setTag$5] = typedArrayTags[stringTag$3] = typedArrayTags[weakMapTag$2] = !1; function baseIsTypedArray(e) { return ( isObjectLike(e) && isLength(e.length) && !!typedArrayTags[baseGetTag(e)] ); } function baseUnary(e) { return function (t) { return e(t); }; } var freeExports$1 = typeof exports == 'object' && exports && !exports.nodeType && exports, freeModule$1 = freeExports$1 && typeof module == 'object' && module && !module.nodeType && module, moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1, freeProcess = moduleExports$1 && freeGlobal$1.process, nodeUtil = (function () { try { var e = freeModule$1 && freeModule$1.require && freeModule$1.require('util').types; return ( e || (freeProcess && freeProcess.binding && freeProcess.binding('util')) ); } catch (t) {} })(), nodeUtil$1 = nodeUtil, nodeIsTypedArray = nodeUtil$1 && nodeUtil$1.isTypedArray, isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray, isTypedArray$1 = isTypedArray, objectProto$8 = Object.prototype, hasOwnProperty$7 = objectProto$8.hasOwnProperty; function arrayLikeKeys(e, t) { var r = isArray$1(e), i = !r && isArguments$1(e), s = !r && !i && isBuffer$1(e), a = !r && !i && !s && isTypedArray$1(e), o = r || i || s || a, n = o ? baseTimes(e.length, String) : [], l = n.length; for (var f in e) (t || hasOwnProperty$7.call(e, f)) && !( o && (f == 'length' || (s && (f == 'offset' || f == 'parent')) || (a && (f == 'buffer' || f == 'byteLength' || f == 'byteOffset')) || isIndex(f, l)) ) && n.push(f); return n; } function overArg(e, t) { return function (r) { return e(t(r)); }; } var nativeKeys = overArg(Object.keys, Object), nativeKeys$1 = nativeKeys, objectProto$7 = Object.prototype, hasOwnProperty$6 = objectProto$7.hasOwnProperty; function baseKeys(e) { if (!isPrototype(e)) return nativeKeys$1(e); var t = []; for (var r in Object(e)) hasOwnProperty$6.call(e, r) && r != 'constructor' && t.push(r); return t; } function keys(e) { return isArrayLike(e) ? arrayLikeKeys(e) : baseKeys(e); } function nativeKeysIn(e) { var t = []; if (e != null) for (var r in Object(e)) t.push(r); return t; } var objectProto$6 = Object.prototype, hasOwnProperty$5 = objectProto$6.hasOwnProperty; function baseKeysIn(e) { if (!isObject(e)) return nativeKeysIn(e); var t = isPrototype(e), r = []; for (var i in e) (i == 'constructor' && (t || !hasOwnProperty$5.call(e, i))) || r.push(i); return r; } function keysIn(e) { return isArrayLike(e) ? arrayLikeKeys(e, !0) : baseKeysIn(e); } var nativeCreate = getNative(Object, 'create'), nativeCreate$1 = nativeCreate; function hashClear() { (this.__data__ = nativeCreate$1 ? nativeCreate$1(null) : {}), (this.size = 0); } function hashDelete(e) { var t = this.has(e) && delete this.__data__[e]; return (this.size -= t ? 1 : 0), t; } var HASH_UNDEFINED$2 = '__lodash_hash_undefined__', objectProto$5 = Object.prototype, hasOwnProperty$4 = objectProto$5.hasOwnProperty; function hashGet(e) { var t = this.__data__; if (nativeCreate$1) { var r = t[e]; return r === HASH_UNDEFINED$2 ? void 0 : r; } return hasOwnProperty$4.call(t, e) ? t[e] : void 0; } var objectProto$4 = Object.prototype, hasOwnProperty$3 = objectProto$4.hasOwnProperty; function hashHas(e) { var t = this.__data__; return nativeCreate$1 ? t[e] !== void 0 : hasOwnProperty$3.call(t, e); } var HASH_UNDEFINED$1 = '__lodash_hash_undefined__'; function hashSet(e, t) { var r = this.__data__; return ( (this.size += this.has(e) ? 0 : 1), (r[e] = nativeCreate$1 && t === void 0 ? HASH_UNDEFINED$1 : t), this ); } function Hash(e) { var t = -1, r = e == null ? 0 : e.length; for (this.clear(); ++t < r; ) { var i = e[t]; this.set(i[0], i[1]); } } Hash.prototype.clear = hashClear; Hash.prototype.delete = hashDelete; Hash.prototype.get = hashGet; Hash.prototype.has = hashHas; Hash.prototype.set = hashSet; function listCacheClear() { (this.__data__ = []), (this.size = 0); } function assocIndexOf(e, t) { for (var r = e.length; r--; ) if (eq(e[r][0], t)) return r; return -1; } var arrayProto = Array.prototype, splice = arrayProto.splice; function listCacheDelete(e) { var t = this.__data__, r = assocIndexOf(t, e); if (r < 0) return !1; var i = t.length - 1; return r == i ? t.pop() : splice.call(t, r, 1), --this.size, !0; } function listCacheGet(e) { var t = this.__data__, r = assocIndexOf(t, e); return r < 0 ? void 0 : t[r][1]; } function listCacheHas(e) { return assocIndexOf(this.__data__, e) > -1; } function listCacheSet(e, t) { var r = this.__data__, i = assocIndexOf(r, e); return i < 0 ? (++this.size, r.push([e, t])) : (r[i][1] = t), this; } function ListCache(e) { var t = -1, r = e == null ? 0 : e.length; for (this.clear(); ++t < r; ) { var i = e[t]; this.set(i[0], i[1]); } } ListCache.prototype.clear = listCacheClear; ListCache.prototype.delete = listCacheDelete; ListCache.prototype.get = listCacheGet; ListCache.prototype.has = listCacheHas; ListCache.prototype.set = listCacheSet; var Map = getNative(root$1, 'Map'), Map$1 = Map; function mapCacheClear() { (this.size = 0), (this.__data__ = { hash: new Hash(), map: new (Map$1 || ListCache)(), string: new Hash() }); } function isKeyable(e) { var t = typeof e; return t == 'string' || t == 'number' || t == 'symbol' || t == 'boolean' ? e !== '__proto__' : e === null; } function getMapData(e, t) { var r = e.__data__; return isKeyable(t) ? r[typeof t == 'string' ? 'string' : 'hash'] : r.map; } function mapCacheDelete(e) { var t = getMapData(this, e).delete(e); return (this.size -= t ? 1 : 0), t; } function mapCacheGet(e) { return getMapData(this, e).get(e); } function mapCacheHas(e) { return getMapData(this, e).has(e); } function mapCacheSet(e, t) { var r = getMapData(this, e), i = r.size; return r.set(e, t), (this.size += r.size == i ? 0 : 1), this; } function MapCache(e) { var t = -1, r = e == null ? 0 : e.length; for (this.clear(); ++t < r; ) { var i = e[t]; this.set(i[0], i[1]); } } MapCache.prototype.clear = mapCacheClear; MapCache.prototype.delete = mapCacheDelete; MapCache.prototype.get = mapCacheGet; MapCache.prototype.has = mapCacheHas; MapCache.prototype.set = mapCacheSet; function arrayPush(e, t) { for (var r = -1, i = t.length, s = e.length; ++r < i; ) e[s + r] = t[r]; return e; } var getPrototype = overArg(Object.getPrototypeOf, Object), getPrototype$1 = getPrototype; function stackClear() { (this.__data__ = new ListCache()), (this.size = 0); } function stackDelete(e) { var t = this.__data__, r = t.delete(e); return (this.size = t.size), r; } function stackGet(e) { return this.__data__.get(e); } function stackHas(e) { return this.__data__.has(e); } var LARGE_ARRAY_SIZE = 200; function stackSet(e, t) { var r = this.__data__; if (r instanceof ListCache) { var i = r.__data__; if (!Map$1 || i.length < LARGE_ARRAY_SIZE - 1) return i.push([e, t]), (this.size = ++r.size), this; r = this.__data__ = new MapCache(i); } return r.set(e, t), (this.size = r.size), this; } function Stack(e) { var t = (this.__data__ = new ListCache(e)); this.size = t.size; } Stack.prototype.clear = stackClear; Stack.prototype.delete = stackDelete; Stack.prototype.get = stackGet; Stack.prototype.has = stackHas; Stack.prototype.set = stackSet; function baseAssign(e, t) { return e && copyObject(t, keys(t), e); } function baseAssignIn(e, t) { return e && copyObject(t, keysIn(t), e); } var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports, freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module, moduleExports = freeModule && freeModule.exports === freeExports, Buffer = moduleExports ? root$1.Buffer : void 0, allocUnsafe = Buffer ? Buffer.allocUnsafe : void 0; function cloneBuffer(e, t) { if (t) return e.slice(); var r = e.length, i = allocUnsafe ? allocUnsafe(r) : new e.constructor(r); return e.copy(i), i; } function arrayFilter(e, t) { for (var r = -1, i = e == null ? 0 : e.length, s = 0, a = []; ++r < i; ) { var o = e[r]; t(o, r, e) && (a[s++] = o); } return a; } function stubArray() { return []; } var objectProto$3 = Object.prototype, propertyIsEnumerable = objectProto$3.propertyIsEnumerable, nativeGetSymbols$1 = Object.getOwnPropertySymbols, getSymbols = nativeGetSymbols$1 ? function (e) { return e == null ? [] : ((e = Object(e)), arrayFilter(nativeGetSymbols$1(e), function (t) { return propertyIsEnumerable.call(e, t); })); } : stubArray, getSymbols$1 = getSymbols; function copySymbols(e, t) { return copyObject(e, getSymbols$1(e), t); } var nativeGetSymbols = Object.getOwnPropertySymbols, getSymbolsIn = nativeGetSymbols ? function (e) { for (var t = []; e; ) arrayPush(t, getSymbols$1(e)), (e = getPrototype$1(e)); return t; } : stubArray, getSymbolsIn$1 = getSymbolsIn; function copySymbolsIn(e, t) { return copyObject(e, getSymbolsIn$1(e), t); } function baseGetAllKeys(e, t, r) { var i = t(e); return isArray$1(e) ? i : arrayPush(i, r(e)); } function getAllKeys(e) { return baseGetAllKeys(e, keys, getSymbols$1); } function getAllKeysIn(e) { return baseGetAllKeys(e, keysIn, getSymbolsIn$1); } var DataView = getNative(root$1, 'DataView'), DataView$1 = DataView, Promise$1 = getNative(root$1, 'Promise'), Promise$2 = Promise$1, Set = getNative(root$1, 'Set'), Set$1 = Set, mapTag$4 = '[object Map]', objectTag$2 = '[object Object]', promiseTag = '[object Promise]', setTag$4 = '[object Set]', weakMapTag$1 = '[object WeakMap]', dataViewTag$3 = '[object DataView]', dataViewCtorString = toSource(DataView$1), mapCtorString = toSource(Map$1), promiseCtorString = toSource(Promise$2), setCtorString = toSource(Set$1), weakMapCtorString = toSource(WeakMap$1), getTag = baseGetTag; ((DataView$1 && getTag(new DataView$1(new ArrayBuffer(1))) != dataViewTag$3) || (Map$1 && getTag(new Map$1()) != mapTag$4) || (Promise$2 && getTag(Promise$2.resolve()) != promiseTag) || (Set$1 && getTag(new Set$1()) != setTag$4) || (WeakMap$1 && getTag(new WeakMap$1()) != weakMapTag$1)) && (getTag = function (e) { var t = baseGetTag(e), r = t == objectTag$2 ? e.constructor : void 0, i = r ? toSource(r) : ''; if (i) switch (i) { case dataViewCtorString: return dataViewTag$3; case mapCtorString: return mapTag$4; case promiseCtorString: return promiseTag; case setCtorString: return setTag$4; case weakMapCtorString: return weakMapTag$1; } return t; }); var getTag$1 = getTag, objectProto$2 = Object.prototype, hasOwnProperty$2 = objectProto$2.hasOwnProperty; function initCloneArray(e) { var t = e.length, r = new e.constructor(t); return ( t && typeof e[0] == 'string' && hasOwnProperty$2.call(e, 'index') && ((r.index = e.index), (r.input = e.input)), r ); } var Uint8Array$1 = root$1.Uint8Array, Uint8Array$1$1 = Uint8Array$1; function cloneArrayBuffer(e) { var t = new e.constructor(e.byteLength); return new Uint8Array$1$1(t).set(new Uint8Array$1$1(e)), t; } function cloneDataView(e, t) { var r = t ? cloneArrayBuffer(e.buffer) : e.buffer; return new e.constructor(r, e.byteOffset, e.byteLength); } var reFlags = /\w*$/; function cloneRegExp(e) { var t = new e.constructor(e.source, reFlags.exec(e)); return (t.lastIndex = e.lastIndex), t; } var symbolProto$1 = Symbol$2 ? Symbol$2.prototype : void 0, symbolValueOf$1 = symbolProto$1 ? symbolProto$1.valueOf : void 0; function cloneSymbol(e) { return symbolValueOf$1 ? Object(symbolValueOf$1.call(e)) : {}; } function cloneTypedArray(e, t) { var r = t ? cloneArrayBuffer(e.buffer) : e.buffer; return new e.constructor(r, e.byteOffset, e.length); } var boolTag$2 = '[object Boolean]', dateTag$2 = '[object Date]', mapTag$3 = '[object Map]', numberTag$2 = '[object Number]', regexpTag$2 = '[object RegExp]', setTag$3 = '[object Set]', stringTag$2 = '[object String]', symbolTag$2 = '[object Symbol]', arrayBufferTag$2 = '[object ArrayBuffer]', dataViewTag$2 = '[object DataView]', float32Tag$1 = '[object Float32Array]', float64Tag$1 = '[object Float64Array]', int8Tag$1 = '[object Int8Array]', int16Tag$1 = '[object Int16Array]', int32Tag$1 = '[object Int32Array]', uint8Tag$1 = '[object Uint8Array]', uint8ClampedTag$1 = '[object Uint8ClampedArray]', uint16Tag$1 = '[object Uint16Array]', uint32Tag$1 = '[object Uint32Array]'; function initCloneByTag(e, t, r) { var i = e.constructor; switch (t) { case arrayBufferTag$2: return cloneArrayBuffer(e); case boolTag$2: case dateTag$2: return new i(+e); case dataViewTag$2: return cloneDataView(e, r); case float32Tag$1: case float64Tag$1: case int8Tag$1: case int16Tag$1: case int32Tag$1: case uint8Tag$1: case uint8ClampedTag$1: case uint16Tag$1: case uint32Tag$1: return cloneTypedArray(e, r); case mapTag$3: return new i(); case numberTag$2: case stringTag$2: return new i(e); case regexpTag$2: return cloneRegExp(e); case setTag$3: return new i(); case symbolTag$2: return cloneSymbol(e); } } function initCloneObject(e) { return typeof e.constructor == 'function' && !isPrototype(e) ? baseCreate$1(getPrototype$1(e)) : {}; } var mapTag$2 = '[object Map]'; function baseIsMap(e) { return isObjectLike(e) && getTag$1(e) == mapTag$2; } var nodeIsMap = nodeUtil$1 && nodeUtil$1.isMap, isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap, isMap$1 = isMap, setTag$2 = '[object Set]'; function baseIsSet(e) { return isObjectLike(e) && getTag$1(e) == setTag$2; } var nodeIsSet = nodeUtil$1 && nodeUtil$1.isSet, isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet, isSet$1 = isSet, CLONE_DEEP_FLAG$1 = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG$1 = 4, argsTag$1 = '[object Arguments]', arrayTag$1 = '[object Array]', boolTag$1 = '[object Boolean]', dateTag$1 = '[object Date]', errorTag$1 = '[object Error]', funcTag = '[object Function]', genTag = '[object GeneratorFunction]', mapTag$1 = '[object Map]', numberTag$1 = '[object Number]', objectTag$1 = '[object Object]', regexpTag$1 = '[object RegExp]', setTag$1 = '[object Set]', stringTag$1 = '[object String]', symbolTag$1 = '[object Symbol]', weakMapTag = '[object WeakMap]', arrayBufferTag$1 = '[object ArrayBuffer]', dataViewTag$1 = '[object DataView]', float32Tag = '[object Float32Array]', float64Tag = '[object Float64Array]', int8Tag = '[object Int8Array]', int16Tag = '[object Int16Array]', int32Tag = '[object Int32Array]', uint8Tag = '[object Uint8Array]', uint8ClampedTag = '[object Uint8ClampedArray]', uint16Tag = '[object Uint16Array]', uint32Tag = '[object Uint32Array]', cloneableTags = {}; cloneableTags[argsTag$1] = cloneableTags[arrayTag$1] = cloneableTags[arrayBufferTag$1] = cloneableTags[dataViewTag$1] = cloneableTags[boolTag$1] = cloneableTags[dateTag$1] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag$1] = cloneableTags[numberTag$1] = cloneableTags[objectTag$1] = cloneableTags[regexpTag$1] = cloneableTags[setTag$1] = cloneableTags[stringTag$1] = cloneableTags[symbolTag$1] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = !0; cloneableTags[errorTag$1] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = !1; function baseClone(e, t, r, i, s, a) { var o, n = t & CLONE_DEEP_FLAG$1, l = t & CLONE_FLAT_FLAG, f = t & CLONE_SYMBOLS_FLAG$1; if ((r && (o = s ? r(e, i, s, a) : r(e)), o !== void 0)) return o; if (!isObject(e)) return e; var g = isArray$1(e); if (g) { if (((o = initCloneArray(e)), !n)) return copyArray(e, o); } else { var S = getTag$1(e), c = S == funcTag || S == genTag; if (isBuffer$1(e)) return cloneBuffer(e, n); if (S == objectTag$1 || S == argsTag$1 || (c && !s)) { if (((o = l || c ? {} : initCloneObject(e)), !n)) return l ? copySymbolsIn(e, baseAssignIn(o, e)) : copySymbols(e, baseAssign(o, e)); } else { if (!cloneableTags[S]) return s ? e : {}; o = initCloneByTag(e, S, n); } } a || (a = new Stack()); var P = a.get(e); if (P) return P; a.set(e, o), isSet$1(e) ? e.forEach(function (x) { o.add(baseClone(x, t, r, x, e, a)); }) : isMap$1(e) && e.forEach(function (x, u) { o.set(u, baseClone(x, t, r, u, e, a)); }); var d = f ? (l ? getAllKeysIn : getAllKeys) : l ? keysIn : keys, p = g ? void 0 : d(e); return ( arrayEach(p || e, function (x, u) { p && ((u = x), (x = e[u])), assignValue(o, u, baseClone(x, t, r, u, e, a)); }), o ); } var CLONE_DEEP_FLAG = 1, CLONE_SYMBOLS_FLAG = 4; function cloneDeep(e) { return baseClone(e, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); } var HASH_UNDEFINED = '__lodash_hash_undefined__'; function setCacheAdd(e) { return this.__data__.set(e, HASH_UNDEFINED), this; } function setCacheHas(e) { return this.__data__.has(e); } function SetCache(e) { var t = -1, r = e == null ? 0 : e.length; for (this.__data__ = new MapCache(); ++t < r; ) this.add(e[t]); } SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; SetCache.prototype.has = setCacheHas; function arraySome(e, t) { for (var r = -1, i = e == null ? 0 : e.length; ++r < i; ) if (t(e[r], r, e)) return !0; return !1; } function cacheHas(e, t) { return e.has(t); } var COMPARE_PARTIAL_FLAG$3 = 1, COMPARE_UNORDERED_FLAG$1 = 2; function equalArrays(e, t, r, i, s, a) { var o = r & COMPARE_PARTIAL_FLAG$3, n = e.length, l = t.length; if (n != l && !(o && l > n)) return !1; var f = a.get(e), g = a.get(t); if (f && g) return f == t && g == e; var S = -1, c = !0, P = r & COMPARE_UNORDERED_FLAG$1 ? new SetCache() : void 0; for (a.set(e, t), a.set(t, e); ++S < n; ) { var d = e[S], p = t[S]; if (i) var x = o ? i(p, d, S, t, e, a) : i(d, p, S, e, t, a); if (x !== void 0) { if (x) continue; c = !1; break; } if (P) { if ( !arraySome(t, function (u, y) { if (!cacheHas(P, y) && (d === u || s(d, u, r, i, a))) return P.push(y); }) ) { c = !1; break; } } else if (!(d === p || s(d, p, r, i, a))) { c = !1; break; } } return a.delete(e), a.delete(t), c; } function mapToArray(e) { var t = -1, r = Array(e.size); return ( e.forEach(function (i, s) { r[++t] = [s, i]; }), r ); } function setToArray(e) { var t = -1, r = Array(e.size); return ( e.forEach(function (i) { r[++t] = i; }), r ); } var COMPARE_PARTIAL_FLAG$2 = 1, COMPARE_UNORDERED_FLAG = 2, boolTag = '[object Boolean]', dateTag = '[object Date]', errorTag = '[object Error]', mapTag = '[object Map]', numberTag = '[object Number]', regexpTag = '[object RegExp]', setTag = '[object Set]', stringTag = '[object String]', symbolTag = '[object Symbol]', arrayBufferTag = '[object ArrayBuffer]', dataViewTag = '[object DataView]', symbolProto = Symbol$2 ? Symbol$2.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0; function equalByTag(e, t, r, i, s, a, o) { switch (r) { case dataViewTag: if (e.byteLength != t.byteLength || e.byteOffset != t.byteOffset) return !1; (e = e.buffer), (t = t.buffer); case arrayBufferTag: return !( e.byteLength != t.byteLength || !a(new Uint8Array$1$1(e), new Uint8Array$1$1(t)) ); case boolTag: case dateTag: case numberTag: return eq(+e, +t); case errorTag: return e.name == t.name && e.message == t.message; case regexpTag: case stringTag: return e == t + ''; case mapTag: var n = mapToArray; case setTag: var l = i & COMPARE_PARTIAL_FLAG$2; if ((n || (n = setToArray), e.size != t.size && !l)) return !1; var f = o.get(e); if (f) return f == t; (i |= COMPARE_UNORDERED_FLAG), o.set(e, t); var g = equalArrays(n(e), n(t), i, s, a, o); return o.delete(e), g; case symbolTag: if (symbolValueOf) return symbolValueOf.call(e) == symbolValueOf.call(t); } return !1; } var COMPARE_PARTIAL_FLAG$1 = 1, objectProto$1 = Object.prototype, hasOwnProperty$1 = objectProto$1.hasOwnProperty; function equalObjects(e, t, r, i, s, a) { var o = r & COMPARE_PARTIAL_FLAG$1, n = getAllKeys(e), l = n.length, f = getAllKeys(t), g = f.length; if (l != g && !o) return !1; for (var S = l; S--; ) { var c = n[S]; if (!(o ? c in t : hasOwnProperty$1.call(t, c))) return !1; } var P = a.get(e), d = a.get(t); if (P && d) return P == t && d == e; var p = !0; a.set(e, t), a.set(t, e); for (var x = o; ++S < l; ) { c = n[S]; var u = e[c], y = t[c]; if (i) var m = o ? i(y, u, c, t, e, a) : i(u, y, c, e, t, a); if (!(m === void 0 ? u === y || s(u, y, r, i, a) : m)) { p = !1; break; } x || (x = c == 'constructor'); } if (p && !x) { var A = e.constructor, T = t.constructor; A != T && 'constructor' in e && 'constructor' in t && !( typeof A == 'function' && A instanceof A && typeof T == 'function' && T instanceof T ) && (p = !1); } return a.delete(e), a.delete(t), p; } var COMPARE_PARTIAL_FLAG = 1, argsTag = '[object Arguments]', arrayTag = '[object Array]', objectTag = '[object Object]', objectProto = Object.prototype, hasOwnProperty = objectProto.hasOwnProperty; function baseIsEqualDeep(e, t, r, i, s, a) { var o = isArray$1(e), n = isArray$1(t), l = o ? arrayTag : getTag$1(e), f = n ? arrayTag : getTag$1(t); (l = l == argsTag ? objectTag : l), (f = f == argsTag ? objectTag : f); var g = l == objectTag, S = f == objectTag, c = l == f; if (c && isBuffer$1(e)) { if (!isBuffer$1(t)) return !1; (o = !0), (g = !1); } if (c && !g) return ( a || (a = new Stack()), o || isTypedArray$1(e) ? equalArrays(e, t, r, i, s, a) : equalByTag(e, t, l, r, i, s, a) ); if (!(r & COMPARE_PARTIAL_FLAG)) { var P = g && hasOwnProperty.call(e, '__wrapped__'), d = S && hasOwnProperty.call(t, '__wrapped__'); if (P || d) { var p = P ? e.value() : e, x = d ? t.value() : t; return a || (a = new Stack()), s(p, x, r, i, a); } } return c ? (a || (a = new Stack()), equalObjects(e, t, r, i, s, a)) : !1; } function baseIsEqual(e, t, r, i, s) { return e === t ? !0 : e == null || t == null || (!isObjectLike(e) && !isObjectLike(t)) ? e !== e && t !== t : baseIsEqualDeep(e, t, r, i, baseIsEqual, s); } function isEqual(e, t) { return baseIsEqual(e, t); } var _export_sfc = (e, t) => { const r = e.__vccOpts || e; for (const [i, s] of t) r[i] = s; return r; }; const _sfc_main = defineComponent({ props: { animationData: { type: Object, default: () => ({}) }, animationLink: { type: String, default: '' }, loop: { type: [Boolean, Number], default: !0 }, autoPlay: { type: Boolean, default: !0 }, width: { type: [Number, String], default: '100%' }, height: { type: [Number, String], default: '100%' }, speed: { type: Number, default: 1 }, delay: { type: Number, default: 0 }, direction: { type: String, default: 'forward' }, pauseOnHover: { type: Boolean, default: !1 }, playOnHover: { type: Boolean, default: !1 }, backgroundColor: { type: String, default: 'transparent' }, pauseAnimation: { type: Boolean, default: !1 }, renderer: { type: String, default: 'svg' }, rendererSettings: { type: Object, default: () => ({}) }, assetsPath: { type: String, default: '' } }, emits: { onComplete: null, onLoopComplete: null, onEnterFrame: null, onSegmentStart: null, onAnimationLoaded: null }, setup(e, { emit: t }) { let r = ref(null); const i = ref(''); let s = 1; const a = I => document.querySelector('[data-id="'.concat(I, '"]')) !== null, o = async I => { let B = e.autoPlay; e.playOnHover && (B = !1); let z = {}; if ( (isEqual(e.animationData, {}) === !1 && (z = cloneDeep(e.animationData)), e.animationLink != '') ) try { z = await (await fetch(e.animationLink)).json(); } catch (W) { console.error(W); return; } let G = e.loop; typeof G == 'number' && G > 0 && (G = G - 1), e.delay > 0 && (B = !1); const R = { container: I, renderer: e.renderer, loop: G, autoplay: B, animationData: z, assetsPath: e.assetsPath }; isEqual(e.rendererSettings, {}) === !1 && (R.rendererSettings = e.rendererSettings), (r = Lottie.loadAnimation(R)), setTimeout(() => { (B = e.autoPlay), e.playOnHover ? r.pause() : B ? r.play() : r.pause(), t('onAnimationLoaded'); }, e.delay), r.setSpeed(e.speed), e.direction === 'reverse' && r.setDirection(-1), e.direction === 'normal' && r.setDirection(1), (e.pauseAnimation || e.playOnHover) && r.pause(), r.addEventListener('loopComplete', () => { e.direction === 'alternate' && (r.stop(), (s = s * -1), r.setDirection(s), r.play()), t('onLoopComplete'); }), r.addEventListener('complete', () => { t('onComplete'); }), r.addEventListener('enterFrame', () => { t('onEnterFrame'); }), r.addEventListener('segmentStart', () => { t('onSegmentStart'); }); }, n = computed(() => { let I = e.width, B = e.height; return ( typeof e.width == 'number' && (I = ''.concat(e.width, 'px')), typeof e.height == 'number' && (B = ''.concat(e.height, 'px')), { '--lottie-animation-container-width': I, '--lottie-animation-container-height': B, '--lottie-animation-container-background-color': e.backgroundColor } ); }), l = () => { r && e.pauseOnHover && r.pause(), r && e.playOnHover && r.play(); }, f = () => { r && e.pauseOnHover && r.play(), r && e.playOnHover && r.pause(); }; watch( () => e.pauseAnimation, () => { if ((e.pauseOnHover || e.playOnHover) && e.pauseAnimation) { console.error( 'If you are using pauseAnimation prop for Vue3-Lottie, please remove the props pauseOnHover and playOnHover' ); return; } r && (e.pauseAnimation ? r.pause() : r.play()); } ); const g = () => { r && r.play(); }, S = () => { r && r.pause(); }, c = () => { r && r.stop(); }, P = () => { r && r.destroy(); }, d = (I = 1) => { if (I <= 0) throw new Error('Speed must be greater than 0'); r && r.setSpeed(I); }, p = I => { r && (I === 'forward' ? r.setDirection(1) : I === 'reverse' && r.setDirection(-1)); }, x = (I, B = !0) => { r && r.goToAndStop(I, B); }, u = (I, B = !0) => { r && r.goToAndPlay(I, B); }, y = (I, B = !1) => { r && r.playSegments(I, B); }, m = (I = !0) => { r && r.setSubframe(I); }, A = (I = !0) => { if (r) return r.getDuration(I); }, T = (I, B = 0) => { r && r.renderer.elements[B].updateDocumentData(I); }, E = I => { for ( var B = '', z = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', G = z.length, R = 0; R < I; R++ ) B += z.charAt(Math.floor(Math.random() * G)); return B; }, _ = I => { if (e.pauseOnHover && e.playOnHover) throw new Error( 'You cannot set pauseOnHover and playOnHover for Vue3-Lottie at the same time.' ); if (e.animationLink === '' && isEqual(e.animationData, {})) throw new Error( 'You must provide either animationLink or animationData' ); const B = setInterval(() => { if (a(I)) { clearInterval(B); const z = document.querySelector('[data-id="'.concat(I, '" ]')); z && o(z); } }, 0); }; return ( onMounted(async () => { (i.value = E(20)), _(i.value); }), { elementid: i, hoverEnded: f, hoverStarted: l, getCurrentStyle: n, play: g, pause: S, stop: c, destroy: P, setSpeed: d, setDirection: p, goToAndStop: x, goToAndPlay: u, playSegments: y, setSubFrame: m, getDuration: A, updateDocumentData: T } ); } }), _hoisted_1 = ['data-id']; function _sfc_render(e, t, r, i, s, a) { return ( openBlock(), createElementBlock( 'div', { 'data-id': e.elementid, class: 'lottie-animation-container', style: normalizeStyle(e.getCurrentStyle), onMouseenter: t[0] || (t[0] = (...o) => e.hoverStarted && e.hoverStarted(...o)), onMouseleave: t[1] || (t[1] = (...o) => e.hoverEnded && e.hoverEnded(...o)) }, null, 44, _hoisted_1 ) ); } var Vue3Lottie = _export_sfc(_sfc_main, [['render', _sfc_render]]); const v = '5.7.1', fr = 60, ip = 0, op = 120, w = 2436, h = 1125, nm = '合成 1', ddd = 0, assets = [ { id: 'image_0', w: 195, h: 264, u: '', p: 'data:image/png;base64,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', e: 1 }, { id: 'image_1', w: 1080, h: 3, u: '', p: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABDgAAAAECAYAAABr549KAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAQPklEQVR4nO2bW44cx5WGvz8yq9gtkbQ1tmDIkAFiYMwDX7UBbcLrEbgebYIb0CsfBoJBwMIIguwZXXjprs44vx/ikpFZ1RQHMPykAJuVGXHucT0n44hfy7+12FZ/efZMfAE8gy+fPtVfAOp/z58/1+fAc+BzgEePxGfw4sVf9bSif318qD/X55fztXj5kidPnvDNt9/r0z/Bt99dF15/hPT9UQBp/lGaHnQZfj8dBPB/P74SH33ER8APP70SgKaD+A3o1Rs95jE/pzcFLxUcpbfl/c1c36faPgteI63vb4APlfT25iSA6wp7k05qcFdccaPSLk3idCeugNtU6Sehu9qedAROWsSptJ+U9IATpKTTXdLxAHdKOgBaFqGkOy2CIwctEgXvThJL1uFw4G7JkhbBAZRFhWFZxOGAliwkwQJKWiouwEFJzMAicSi/C0sxtKoOWWJemBeJQ1JrXlRokFPvG5HXsSIV2jlq3QytPQOEYEZacRYNtHIWU5UjF6ZT001SLkQKrUkrXsQqA6U+k5k0D7KFyBmYakXDmQjFKuM0jP1oPHLRbYe35QvQcBNZ1jQ2KdTEH+VkggivfACYReQzOHKls6GSBLn9Y6p2yVE1TcCG/gQRWgnWMklEVAQIvNONitfgmzxWkzGAFBWU0tZl6DLtbcZg51irCJImFdxo/1Z7jODyyn/TFNq8d/064k6W2DxO07Y9iI6dBrk71frQnyev/OPcnnH2UMvk0hcp3YPQGGZt9OmCJPZEpQv9+c4yzpX6HgHMWtvG310ZO6NVRWyrJG37fOy/Up/OaralaRqBOsC5+gOH9ywRVZhhBL0P+jjgEqSE3w34S/TSSs/2vn4cj+W3zd8YbLcRqeI3Wr8gx2iDcUxWW9ipyxQ7cc8oJ/kyv60GWPfY7HxKkOQiS9raZ6dCdP4rnR1XcrYvdeBa8k7+xGasJbvPmZxhqtCevdJs/M91DNutV7d9Je8tmil2nxLkyExMZMvjbElddnu1zSB/an23zuPETtZLfTHqCUCByVWeor49AUxTlSC8GZONd186qnxpqs/r+tNtlTNUvRvdsz7vsNHlal3ktI7VKdkZIKdhTo02Ks/TiLfh38Qe8G33+rzayGmVcaLwnRpgssvenVZchwHM1PHmFG62siczr3CVsqGcuDyF89JsM8MM3tgpDDPz1OgvcBde5vJuT4YFnDx3AWzugHmVyZ1/5VPEKHV3VUZgJlzFMY12k9dh5tk4fFd1Pxxm+1Rp2z558rHy9xzGs0+cOB5nc4LbQ/joMLfA8eCjZ5+4xT642/IYvnL4BiAOhfYt+Jh95aNvBn2uIpuro4nsjZ7xwPAaX1+ZN0AspT2uDK/hg8X8/BB/mE3cGeDRww/MT8DDxT/+CH5U6vkB/PihAT6qsH/P5df5seF7YvmNAeLjk/kf+OQPbw2f8s3fvmH55GMDPFneGuBr4M+nVwZ4ATx9+p/mK+Dnn/2c4p89Bz7//PvC/0vgxQvzRXXu+KL3q3T/+vtr+dcXbRzu9ynNKecLePYMvgC+fKp3OubAi+tzx/zlXBzwJwDzA3373T/0yR8/Ab6FdNR330Gaj9L0k2B1xouD/RE//PQ36T9+r98AP6XX0qtZpLeChyi91cOH8Or1JL2dxMNJenvbHPf0Nt3qmmvQSVLSjZK4PenqCm5vk0iTkHSlOxXnNOl0V54fqDjap1MSWsTxgFIk7iSUJak4xpJYFqGsRVM6QD14Zi06Fsf4kMUyI0UiSwtZM3N3rtWcP0UihzLSBGRJSJpz1jKHlGdR9+AJCYUySCFBVKc8isMkJ5iIcJpEqYtQdcQUFb/UF7xpmhThCudETGIKRRSchBQVHyRJStR2ORW+CCzZqTqHKSQlrAgEk1DlkSRZCSxkhZVSCkVYiUkoJCRcaRsVx1FClkIJWSSKDnIiJMsSStgiWW48HCJNRTaKnFiVJpJJCGEnqejiQIiKj0SFwbTASLgGHGpYBoNAzXEs9i3nyCRqnbGKh+jqKAqwcnE0Gq0yg1fnowcKAIdAuDrTogbXJGTjDlzajSksXbwGq/IPcBGZ5k80OdsbBg+Onlu9CHuArw1e8aNpg6Uib33tQrcgTDsXrbR6AKcdGJv9ql3UzmhlkHslusrZeseuJt3Yo/x6o+8eflV/ALBdTe069HfBTRqXLe1qaMImla4aAdTYVrm6bbfiuFkMrzoOtryg+14ul5Wnnd2q+dexdO5bNvac02tcPfLd8KvmbgRKN6jbcdV95a0N/oao+1joLdUYG3NUoLO+azpshnzlawmZrfoNSBdtuQ7ZLc0R5lyDOv629t/y25Bwnf8b2XQOWzgNdj3rlta3q601ot7Tv71xJ9Zm0Jzp1/n1cc34X1ejtY1khoW1tI0KDW3b50GfJpjHFa4Pm27zcbk9L7r4uFZcGvDrktbKao21B8UawelzW7buo3suY+8+1SV1lKrb1aA0LkV7+2mltVZXGQe6g/1dN7jNMrNyhbqc6EyVXuFB0DK1Rr0Y4UvdufrawfZ6b0EqPhsedTpXew/bzzjLBQSUg1eR0WO8ZJ2AG+HWBawu5tZ+W60TtEEONh8E3Om2Bg86n23/d75thRx4DjZJW7p9saj9MoowMBydtygzmjQ4/5Y2u1lqpyFc5U5NkK0OUgukbGypYROycNdl7MZy1Km7R5vPVQ411LbjVEQNNnSB3Q6/QQ65bUdmDblXvYbFUrJXeQ01vteDXB7w3bYaY4OTazSP1Ow/9r1to0Bysh3C2FHnUBQr2KQpJEdkSHJgmSRbDhY7TSmiHD6dqJE7K0hF9hK3VAlsJBkrqrBGKnFOO0pg1A4li4hwMtgp4TCRUnJyRJAM2SWQK5NwsYejjJvkEqSycxlPTlKAC2wZAU6O6LAk55xNarjJCZd3R2TsKSXnjFOFn5KCbJPsnGFKKRbK+0RypgSPphbMnMGOKAG4yfjOCzAzFZPZxor5avKyLODJnm3uCixzePZkKt0727Pr56spooRja8BqzuEWxLXNYQo7Sh+c4OiDbw9LlObwlY92ZN84fPUg/NZHXzmMj+bqle0HNYAU9vUD8yrb19kPP8x+9Qoc1z349Ojh4h/jQzsW88MP/PbxQ/PbO/O/8Pff3pl//A7XwFEsp/LbA0a/M8utX9Yh+mR56zFQRAsSwSZQxOefG74sQSKAv7xwiRF9wT5Y9D7lPT91/Fr+lWXRfiuuTvC8NIgRGoav8gAcpBYoAUm5BiEAhq+426/gLbhRv4xG6OLXwQtlmiYufmL7BfQS3NjIMLQWOdpXlXJAsAhKcEP1C63rF8ROZQZFCdyMDqMqsVTf2m9ADF+he0mWAkHlkyZB5V/4KlLZpVTCGGo7Yz2zq3ogdSeT1i/uSeGscFanULZ/9W21C9T3yvGktnNMAjZfibWeuO4JbmxWgdDKwZdcgaZDYd6OinYJ3Aw21iBn1d3IBWmQTUG9qTDoJaMWLAjQGty46Imcl0ZLTfbCpb6cnyAvELiv5QzSlKDVemwWa99X83f77OQf9E4l+Gb1MVnItpNTUUttcg5E+mmNzcPofN4v/vbV53VtLFwgYu/H34Z/HeOsf97pr2F+NHusWg14rn/a2Q+VwJylfhrtvoA4Wz9pzVt5KqV7dBn/9gZoqu7gLtrlMs02LqxhjKhMlTpHmo4Xcdv4O5PVbZyk9c/teQPX1bmgWnNsL8ei9vYYNOyRtPfD2TmmA6kSZPF+4p5JvI70zr4tvbyjN96ll3Yw2veBi01NUjnFFtu6fxBqI+vd/df6f9fe+tSuNHyx/R69Gr0N3Xv07/v9Fu7SyBjGnM9CBT2WcWGeXphLdVtounijV9dusJ13MqoQ8a6trBcbDQYdtjK/e1xfXD/Oagb3e0d4Azv2l0BK6z7hqGeG8dZeQiTVerZrYueyrhsedRz3m7b/nE2hy+v6RtOu2KUNIHT5SpVgF6Tf2Wa1Q3PXJUVdr2VJXs+DYRQezw11nd/OgX7OS/Q1sY0Q9aiGh/HZbTIouhnTQ4yw/mzm3AjbDqEtKjfA9n7RVndIIs7tWmejUhUs2tlUVgn3WDg6ZF08tufKQNFh+8cfqaxZVYaoUhWYcNszo35IXD8sdQUShK31xme9QTXsteVmlol2G3n0HquvEf3cszqXqWnP4HAOH1zVfIR6XfDecuat1ruk0/tsSCPPpnSn0z/uThOUU3vWFFLOIXJoUvG1yo1tyk1soEBLMJdLNXP9k7Qsud/Q1tJ8uJlfy7+vvN/A+LX8S0r/gltvwTx7VgJTX365pqc8f/7x5gbMV4/+W5/xGXwGvPhrwX8KX399np4yP/hQn/6p1H373bX4Y3ke01PgY9qNGLg/RUW1XlNJT+HxT/z8qqYltBSV12/FI85SVN6kWR98AHp7ozc39fnmVlxf8/bmpDE9BUCadAXcKIkb0PWd4Iqr0125WQMo3QkegO6k9uX+tIgH0NM/Tqm83y2CpLsl6XAALYtODUZJl9JTOMBhSVq0aObAUusgq6ScHJBygV2SOMwlrWTJXZ6ZrBKA+YXUlFaUtNTGXldTVC6mp0BNUanpKT3A1OqgpagsGupaegr0jailp2SVwFiu2J1lSGsES1tZOtt9SsSF1BRgs/lfTE3Z4hb+F1JUpjSkbtClRtrZYuqktukLVacYYSlXctsGTZT0m1wJTlKO4XpwwLRPMRl1amXcdINdWkr9HhUD/8ovZKVdqsc+PWWq+jduU8nbuLyWlxtY27qpBzmHS+NV3iGVprAvn2nq5XyV7IIyYlpay/hW6NNvQU8b/tv8hijRx67vHqoFPc/rU8VdbRpwzmbyZZtskBq8z+WMy1f+pQs2hWEc3MdoKBrn1yV5GG707xOEUhkQ7TCYUn++lL5wAbs+t1SVcUqsAK0+lvXQusk9+OW8lXeXLv97onf+PdnAlz/RvEdqyMiv5VTs0EebEambuaeKtK7oqSvv4O72hTou8xvfZ3mdZxBkEhOWPeof0VIldsZLieY7v5f+Z6kSiZRGbarsiXMDeJ8aU2TqYMneZt+kjV2d7a08aWfANQSXWnpJSoZM5Pa86alKYrhN0Pj7PB2lfvVlX59J7hkRdTFLljtUKvYnjakrlBsLbZ/qPNJZX6Se/lOFy2OocUix2CBpczskB0zthsQ0DWkNsEnv2KSoDO9AsrzNhGv09jQq/55xs5XNQ0rOxET5Ul745RG223vl1VNVSl4L/GKqSktVWnw5VSXt7JDXNJVmo3nGy4rT0lRKCgn0NJWZ+r1x8gwsU5RxsZS7B8xzE6vSCjPNkKlpKiVFpcEtlPSiZZrM8v9MVZnnloFS6oZUFTjZntY0lXkyS0lTubPNPBmHD7bhgKn1wGFuNw9mw4mTZx8BjuWWABH2MYxr+olnw225PdDSVKLcGOAGbo4Fzi43AUqayg320VcPcrlNAGzSVGqKymtnf8CHXExR4SGuOC1NxbEYHuO8+H1SVIDLaSpAS1X55m+wfPLaT3jCy5cvefLpH0r7n1+ZF9s0la/4is9+/q/LNxDuuX3wa5rKv6/8EycY65bo+YM2AAAAAElFTkSuQmCC', e: 1 } ], layers = [ { ddd: 0, ind: 1, ty: 2, nm: '加载视频@3x.png', cl: 'png', refId: 'image_0', sr: 1, ks: { o: { a: 0, k: 100, ix: 11 }, r: { a: 0, k: 0, ix: 10 }, p: { a: 0, k: [1218, 562, 0], ix: 2 }, a: { a: 0, k: [97.5, 132, 0], ix: 1 }, s: { a: 0, k: [100, 100, 100], ix: 6 } }, ao: 0, ip: 0, op: 300, st: 0, bm: 0 }, { ddd: 0, ind: 2, ty: 2, nm: '进度条@3x.png', cl: 'png', refId: 'image_1', sr: 1, ks: { o: { a: 1, k: [ { i: { x: [0.667], y: [1] }, o: { x: [0.333], y: [0] }, t: 60, s: [100], e: [0] }, { i: { x: [0.667], y: [1] }, o: { x: [0.333], y: [0] }, t: 61, s: [0], e: [0] }, { t: 120 } ], ix: 11 }, r: { a: 0, k: 0, ix: 10 }, p: { a: 0, k: [678, 587.5, 0], ix: 2 }, a: { a: 0, k: [0, 1.5, 0], ix: 1 }, s: { a: 1, k: [ { i: { x: [0.667, 0.667, 0.667], y: [1, 1, 1] }, o: { x: [0.333, 0.333, 0.333], y: [0, 0, 0] }, t: 0, s: [0, 100, 100], e: [100, 100, 100] }, { t: 60 } ], ix: 6 } }, ao: 0, ip: 0, op: 300, st: 0, bm: 0 }, { ddd: 0, ind: 3, ty: 2, nm: '进度条@3x.png', cl: 'png', refId: 'image_1', sr: 1, ks: { o: { a: 1, k: [ { i: { x: [0.667], y: [1] }, o: { x: [0.333], y: [0] }, t: 0, s: [0], e: [0] }, { i: { x: [0.667], y: [1] }, o: { x: [0.333], y: [0] }, t: 60, s: [0], e: [100] }, { t: 61 } ], ix: 11 }, r: { a: 0, k: 0, ix: 10 }, p: { a: 0, k: [1758, 589, 0], ix: 2 }, a: { a: 0, k: [1080, 3, 0], ix: 1 }, s: { a: 1, k: [ { i: { x: [0.667, 0.667, 0.667], y: [1, 1, 1] }, o: { x: [0.333, 0.333, 0.333], y: [0, 0, 0] }, t: 60, s: [100, 100, 100], e: [100, 100, 100] }, { i: { x: [0.667, 0.667, 0.667], y: [1, 1, 1] }, o: { x: [0.333, 0.333, 0.333], y: [0, 0, 0] }, t: 61, s: [100, 100, 100], e: [0, 100, 100] }, { t: 120 } ], ix: 6 } }, ao: 0, ip: 0, op: 300, st: 0, bm: 0 } ], markers = [], playLoadData = { v, fr, ip, op, w, h, nm, ddd, assets, layers, markers }, videoWrap = '_videoWrap_19uw7_1', sectionAnimate$1 = '_sectionAnimate_19uw7_5', controls$1 = '_controls_19uw7_11', time$1 = '_time_19uw7_24', line$1 = '_line_19uw7_36', actions$1 = '_actions_19uw7_43', actionWrap$1 = '_actionWrap_19uw7_51', actionBtn$1 = '_actionBtn_19uw7_54', iconReplay$1 = '_iconReplay_19uw7_65', slider$1 = '_slider_19uw7_74', styles$3 = { videoWrap, sectionAnimate: sectionAnimate$1, controls: controls$1, time: time$1, line: line$1, actions: actions$1, actionWrap: actionWrap$1, actionBtn: actionBtn$1, iconReplay: iconReplay$1, slider: slider$1 }, VideoPlay = defineComponent({ name: 'video-play', props: { item: { type: Object, default: () => ({}) }, isEmtry: { type: Boolean, default: !1 } }, emits: ['loadedmetadata', 'togglePlay', 'ended', 'reset', 'error'], setup(e, { emit: t, expose: r }) { const { item: i, isEmtry: s } = toRefs(e), a = reactive({ paused: !0, currentTimeNum: 0, currentTime: '00:00', durationNum: 0, duration: '00:00', showBar: !0 }), o = ref(), n = ref(), l = ref('video' + Date.now() + Math.floor(Math.random() * 100)), f = p => { if (p > 0) { const x = Math.floor(p / 60), u = p % 60; return (x < 10 ? '0' + x : x) + ':' + (u < 10 ? '0' + u : u); } else return '00:00'; }, g = () => { n.value && (n.value.src(i.value.content), t('reset')); }, S = p => { a.showBar = p; }, c = () => { n.value && n.value.currentTime(0); }, P = p => { p == null || p.stopPropagation(), a.paused ? (n.value.play(), (a.paused = !1)) : (n.value.pause(), (a.paused = !0)), t('togglePlay', a.paused); }; onMounted(() => { (n.value = TCPlayer(l.value, { appID: '', controls: !1 })), n.value && (n.value.src(s.value ? '' : i.value.content), n.value.one('loadedmetadata', () => { console.log(' Loading metadata'), (a.duration = f(Math.round(n.value.duration()))), (a.durationNum = n.value.duration()), t('loadedmetadata', n.value); }), n.value.on('timeupdate', () => { var p; (a.currentTime = f( Math.round( ((p = n.value) == null ? void 0 : p.currentTime()) || 0 ) )), (a.currentTimeNum = n.value.currentTime()); }), n.value.on('ended', () => { (a.paused = !0), t('ended'); }), n.value.on('pause', () => { a.paused = !0; }), n.value.on('playing', () => { a.paused = !1; }), n.value.on('error', p => { t('error'), console.log(p, 'error'); })); }); const d = () => { n.value.currentTime(0), n.value.pause(); }; return ( onUnmounted(() => { n.value && (n.value.pause(), n.value.src(''), n.value.dispose()); }), r({ onPlay: g, stop: d, toggleHideControl: S }), () => createVNode('div', { class: styles$3.videoWrap }, [ createVNode( 'video', { style: { width: '100%', height: '100%' }, src: s.value ? '' : i.value.content, ref: o, id: l.value, preload: 'auto', playsinline: !0, 'webkit-playsinline': !0 }, null ), createVNode( 'div', { class: [ styles$3.controls, a.showBar ? '' : styles$3.sectionAnimate ], onClick: p => { p.stopPropagation(), t('reset'); } }, [ createVNode('div', { class: styles$3.actions }, [ createVNode('div', { class: styles$3.actionWrap }, [ createVNode( 'button', { class: styles$3.actionBtn, onClick: P }, [ a.paused ? createVNode( 'img', { class: styles$3.playIcon, src: iconplay }, null ) : createVNode( 'img', { class: styles$3.playIcon, src: iconpause }, null ) ] ) ]), createVNode('div', { class: styles$3.time }, [ createVNode( 'div', { class: 'plyr__time plyr__time--current', 'aria-label': 'Current time' }, [a.currentTime] ), createVNode('span', { class: styles$3.line }, [ createTextVNode('/') ]), createVNode( 'div', { class: 'plyr__time plyr__time--duration', 'aria-label': 'Duration' }, [a.duration] ) ]) ]), createVNode('div', { class: styles$3.slider }, [ createVNode( NSlider, { value: a.currentTimeNum, step: 0.01, max: a.durationNum, tooltip: !1, 'onUpdate:value': p => { n.value.currentTime(p), (a.currentTimeNum = p), (a.currentTime = f(Math.round(p || 0))); } }, null ) ]), createVNode('div', { class: styles$3.actions }, [ createVNode('div', { class: styles$3.actionWrap }, [ createVNode( 'button', { class: styles$3.iconReplay, onClick: c }, [createVNode('img', { src: iconReplay$2 }, null)] ) ]) ]) ] ) ]) ); } }), pen = '_pen_apyjn_1', open = '_open_apyjn_9', whiteboard = '_whiteboard_apyjn_12', hide = '_hide_apyjn_15', iframe = '_iframe_apyjn_18', dely = '_dely_apyjn_24', rightItem = '_rightItem_apyjn_27', img = '_img_apyjn_42', removeVisiable = '_removeVisiable_apyjn_50', studentRemove = '_studentRemove_apyjn_56', btnGroupModal = '_btnGroupModal_apyjn_68', styles$2 = { pen, open, whiteboard, hide, iframe, dely, rightItem, img, removeVisiable, studentRemove, btnGroupModal }, Pen = defineComponent({ name: 'pen-page', props: { show: { type: Boolean, default: !1 }, type: { type: String, default: 'pen' }, close: { type: Function, default: () => ({}) } }, setup(e) { const { show: t, type: r } = toRefs(e), i = reactive({ status: !1, title: r.value === 'pen' ? '退出批注' : '退出白板', content: r.value === 'pen' ? '确认是否退出批注?' : '确认是否退出白板?' }), s = ref(!0), a = /(localhost|192)/.test(location.host) ? 'https://test.lexiaoya.cn/' : location.origin, o = ''.concat(a, '/classroom-whiteboard?t=').concat(+new Date()); return () => createVNode( 'div', { class: [ styles$2.pen, r.value === 'whiteboard' ? styles$2.whiteboard : '', s.value ? styles$2.dely : '', t.value ? styles$2.open : styles$2.hide ] }, [ createVNode( 'iframe', { class: styles$2.iframe, frameborder: '0', width: '100vw', height: '100vh', src: o, onLoad: () => { s.value = !1; } }, null ), createVNode( 'div', { class: styles$2.rightItem, onClick: () => (i.status = !0) }, [ createVNode( 'svg', { width: '28px', height: '28px', viewBox: '0 0 34 34', version: '1.1', xmlns: 'http://www.w3.org/2000/svg' }, [ createVNode( 'g', { stroke: 'none', 'stroke-width': '1', fill: 'none', 'fill-rule': 'evenodd' }, [ createVNode( 'g', { transform: 'translate(-1842.000000, -1016.000000)', stroke: '#FFFFFF' }, [ createVNode( 'g', { transform: 'translate(980.000000, 1006.000000)' }, [ createVNode( 'g', { transform: 'translate(862.000000, 10.000000)' }, [ createVNode( 'g', { transform: 'translate(4.000000, 5.000000)' }, [ createVNode( 'g', { transform: 'translate(8.058241, 5.009812)', fill: '#FFFFFF', 'fill-rule': 'nonzero', 'stroke-width': '0.3' }, [ createVNode( 'path', { d: 'M11.6084252,-0.15 C11.9880433,-0.15 12.3676614,-0.00518057514 12.6573002,0.284458275 L12.6573002,0.284458275 L18.3141545,5.94131252 C18.6037933,6.23095137 18.7486128,6.61056948 18.7486128,6.99018758 C18.7486128,7.36980569 18.6037933,7.74942379 18.3141545,8.03906264 L18.3141545,8.03906264 L12.6573002,13.6959169 C12.3676614,13.9855557 11.9880433,14.1303752 11.6084252,14.1303752 C11.2288071,14.1303752 10.849189,13.9855557 10.5595501,13.6959169 C10.2699113,13.406278 10.1250918,13.0266599 10.1250918,12.6470418 C10.1250918,12.2674237 10.2699113,11.8878056 10.5595368,11.5981801 L10.5595368,11.5981801 L13.6839174,8.47301484 L1.33333333,8.47352092 C0.923722144,8.47352092 0.552888811,8.30749318 0.284458275,8.03906264 C0.0160277386,7.77063211 -0.15,7.39979877 -0.15,6.99018758 C-0.15,6.61194961 -0.00841906355,6.26678575 0.224608408,6.00476938 C0.462154637,5.73767211 0.794779811,5.55707713 1.16932931,5.51583101 L1.16932931,5.51583101 L13.6841044,5.50627626 L10.5595501,2.38220839 C10.2699113,2.09256954 10.1250918,1.71295144 10.1250918,1.33333333 C10.1250918,0.953715229 10.2699113,0.574097124 10.5595501,0.284458275 C10.849189,-0.00518057514 11.2288071,-0.15 11.6084252,-0.15 Z' }, null ) ] ), createVNode( 'path', { d: 'M15,24 L3,24 C1.34314575,24 -1.1293615e-15,22.6568542 0,21 L0,3 C-2.02906125e-16,1.34314575 1.34314575,3.04359188e-16 3,0 L15,0 L15,0', 'stroke-width': '3.5', 'stroke-linecap': 'round', 'stroke-linejoin': 'round' }, null ) ] ) ] ) ] ) ] ) ] ) ] ) ] ), createVNode( NModal, { transformOrigin: 'center', show: i.status, 'onUpdate:show': n => (i.status = n), preset: 'card', title: i.title, class: ['modalTitle', styles$2.removeVisiable] }, { default: () => [ createVNode('div', { class: styles$2.studentRemove }, [ createVNode('p', null, [i.content]), createVNode( NSpace, { class: styles$2.btnGroupModal }, { default: () => [ createVNode( NButton, { type: 'default', round: !0, onClick: () => { i.status = !1; } }, { default: () => [createTextVNode('取消')] } ), createVNode( NButton, { type: 'primary', round: !0, onClick: () => { (i.status = !1), e.close(); } }, { default: () => [createTextVNode('确认')] } ) ] } ) ]) ] } ) ] ); } }), audioWrap = '_audioWrap_8oxfj_1', audioContainer = '_audioContainer_8oxfj_6', audio = '_audio_8oxfj_1', tempVudio = '_tempVudio_8oxfj_22', sectionAnimate = '_sectionAnimate_8oxfj_34', controls = '_controls_8oxfj_40', time = '_time_8oxfj_53', line = '_line_8oxfj_65', actions = '_actions_8oxfj_72', actionWrap = '_actionWrap_8oxfj_80', actionBtn = '_actionBtn_8oxfj_83', iconReplay = '_iconReplay_8oxfj_95', slider = '_slider_8oxfj_104', styles$1 = { audioWrap, audioContainer, audio, tempVudio, sectionAnimate, controls, time, line, actions, actionWrap, actionBtn, iconReplay, slider }, AudioPay = defineComponent({ name: 'audio-play', props: { item: { type: Object, default: () => ({}) }, isEmtry: { type: Boolean, default: !1 } }, emits: ['loadedmetadata', 'togglePlay', 'ended', 'reset'], setup(e, { emit: t, expose: r }) { const i = reactive({ paused: !0, currentTimeNum: 0, currentTime: '00:00', durationNum: 0, duration: '00:00', showBar: !0, afterMa3: !0 }), s = ref(), a = ref(); let o = null; const n = p => { var x, u, y; console.log(p, 'e', p), p == null || p.stopPropagation(), a.value.paused ? (l(a.value, s.value), a.value.play(), (i.afterMa3 = !1)) : (x = a.value) == null || x.pause(), (i.paused = (u = a.value) == null ? void 0 : u.paused), (y = p.target) == null || y.focus(), t('togglePlay', i.paused); }, l = (p, x) => { o || ((o = new Vudio(p, x, { effect: 'waveform', accuracy: 256, width: 1024, height: 600, waveform: { maxHeight: 200, color: [ [0, '#44D1FF'], [0.5, '#44D1FF'], [0.5, '#198CFE'], [1, '#198CFE'] ], prettify: !1 } })), o.dance()); }, f = p => { if (p > 0) { const x = Math.floor(p / 60), u = p % 60; return (x < 10 ? '0' + x : x) + ':' + (u < 10 ? '0' + u : u); } else return '00:00'; }, g = p => { i.showBar = p; }, S = () => { a.value && (a.value.currentTime = 0); }; let c = null; const P = ref(), d = ref(); return ( nextTick(() => { (c = new Vudio(d.value, P.value, { effect: 'waveform', accuracy: 256, width: 1024, height: 600, waveform: { maxHeight: 200, color: [ [0, '#44D1FF'], [0.5, '#44D1FF'], [0.5, '#198CFE'], [1, '#198CFE'] ], prettify: !1 } })), c.dance(); }), r({ toggleHideControl: g }), () => createVNode('div', { class: styles$1.audioWrap }, [ createVNode('div', { class: styles$1.audioContainer }, [ createVNode( 'audio', { ref: a, crossorigin: 'anonymous', src: e.item.content + '?time=1', onEnded: () => { (i.paused = !0), t('ended'); }, onTimeupdate: () => { var p, x; (i.currentTime = f( Math.round( ((p = a.value) == null ? void 0 : p.currentTime) || 0 ) )), (i.currentTimeNum = ((x = a.value) == null ? void 0 : x.currentTime) || 0); }, onLoadedmetadata: () => { var p, x; (i.duration = f( Math.round((p = a.value) == null ? void 0 : p.duration) )), (i.durationNum = (x = a.value) == null ? void 0 : x.duration), e.item.autoPlay && a.value && a.value.play(), a.value && ((a.value.stop = () => { var u; (u = a.value) == null || u.pause(), (i.paused = !0), t('togglePlay', i.paused); }), (a.value.onPlay = () => { var u; (u = a.value) == null || u.play(), (i.paused = !1), l(a.value, s.value), t('togglePlay', i.paused); })), t('loadedmetadata', a.value); } }, null ), createVNode('canvas', { ref: s }, null), i.afterMa3 && createVNode('div', { class: styles$1.tempVudio }, [ createVNode('audio', { ref: d, src: tickMp3 }, null), createVNode('canvas', { ref: P }, null) ]) ]), createVNode( 'div', { class: [ styles$1.controls, i.showBar ? '' : styles$1.sectionAnimate ], onClick: p => { p.stopPropagation(), t('reset'); } }, [ createVNode('div', { class: styles$1.actions }, [ createVNode('div', { class: styles$1.actionWrap }, [ createVNode( 'div', { class: styles$1.actionBtn, onClick: n }, [ i.paused ? createVNode( 'img', { class: styles$1.playIcon, src: iconplay }, null ) : createVNode( 'img', { class: styles$1.playIcon, src: iconpause }, null ) ] ) ]), createVNode('div', { class: styles$1.time }, [ createVNode( 'div', { class: 'plyr__time plyr__time--current', 'aria-label': 'Current time' }, [i.currentTime] ), createVNode('span', { class: styles$1.line }, [ createTextVNode('/') ]), createVNode( 'div', { class: 'plyr__time plyr__time--duration', 'aria-label': 'Duration' }, [i.duration] ) ]) ]), createVNode('div', { class: styles$1.slider }, [ createVNode( NSlider, { value: i.currentTimeNum, step: 0.01, max: i.durationNum, tooltip: !1, 'onUpdate:value': p => { (a.value.currentTime = p), (i.currentTimeNum = p), (i.currentTime = f(Math.round(p || 0))); } }, null ) ]), createVNode('div', { class: styles$1.actions }, [ createVNode('div', { class: styles$1.actionWrap }, [ createVNode( 'button', { class: styles$1.iconReplay, onClick: S }, [createVNode('img', { src: iconReplay$2 }, null)] ) ]) ]) ] ) ]) ); } }), scrollBar = '_scrollBar_ds6lg_1', treeParent = '_treeParent_ds6lg_5', treeChild = '_treeChild_ds6lg_8', treeItem = '_treeItem_ds6lg_11', title = '_title_ds6lg_23', dir = '_dir_ds6lg_33', titleSelect = '_titleSelect_ds6lg_42', arrow = '_arrow_ds6lg_50', arrowSelect = '_arrowSelect_ds6lg_57', childArrow = '_childArrow_ds6lg_61', childItem = '_childItem_ds6lg_64', childSelect = '_childSelect_ds6lg_71', styles = { scrollBar, treeParent, treeChild, treeItem, title, dir, titleSelect, arrow, arrowSelect, childArrow, childItem, childSelect }, Chapter = defineComponent({ name: 'chapter-modal', props: { treeList: { type: Array, default: () => [] }, itemActive: { type: String, default: '' } }, emits: ['handleSelect'], setup(e, { emit: t }) { const r = useMessage(), { treeList: i, itemActive: s } = toRefs(e), a = (o, n, l = []) => { for (const f of n) { if (f.knowledgeList && f.knowledgeList.length > 0) { const g = a(o, f.knowledgeList, [...l, f.id]); if (g.includes(o)) return g; } if (f.id === o) return [...l, o]; } return l; }; return ( watch( () => e.itemActive, () => { const o = a(s.value, i.value); o.length > 0 && i.value.forEach(n => { n.id == o[0] ? (n.selected = !0) : (n.selected = !1); }); } ), onMounted(() => { const o = a(s.value, i.value); o.length > 0 && i.value.forEach(n => { n.id == o[0] && (n.selected = !0); }); }), () => createVNode( NScrollbar, { class: styles.scrollBar }, { default: () => [ createVNode('div', { class: [styles.listSection] }, [ i.value.map((o, n) => createVNode( 'div', { class: styles.treeParent, key: 'parent' + n }, [ createVNode( 'div', { class: [styles.treeItem, styles.parentItem], onClick: () => { i.value.forEach(l => { o.id !== l.id && (l.selected = !1); }), (o.selected = !o.selected); } }, [ o.knowledgeList && o.knowledgeList.length > 0 && createVNode( 'span', { class: [ styles.arrow, o.selected ? styles.arrowSelect : '' ] }, null ), createVNode( 'p', { class: [ styles.title, o.selected ? styles.titleSelect : '' ] }, [ createVNode( 'span', { class: [ styles.dir, o.selected ? styles.dirSelect : '' ] }, null ), o.name ] ) ] ), o.selected && o.knowledgeList && o.knowledgeList.map((l, f) => createVNode( 'div', { key: 'child' + f, class: [ styles.treeItem, styles.childItem, styles.animation, s.value === l.id ? styles.childSelect : '' ], onClick: () => { if (s.value != l.id) { if (!l.containMaterial) { r.error('该章节暂无课件'); return; } t('handleSelect', { itemActive: l.id, itemName: l.name }); } } }, [ createVNode( 'span', { class: styles.childArrow }, null ), createVNode('p', { class: styles.title }, [ l.name ]) ] ) ) ] ) ) ]) ] } ) ); } }), iconBeatIcon = 'data:image/png;base64,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', iconChange = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABwCAMAAADxPgR5AAAAtFBMVEUAAADl8//k9P/l9f/n9f/l9P/l9P/l9P/m8//m9P/o+P/q///k9P/k8//l8//k9P/l9P/k9P/k8//m8//m9P/l9P/l9P/l9f/n9v/o8//o8//n+f/p9P/////l9P/k8/8wmP+02//Z7f+QyP82m/9+wP88nv9Vq//S6v/H5f/C4//h8v+t1/9fsP9Mpv+h0f+azv+Vy//d7//N6P+23P+n1f+e0P+Ixf9qtv9Fo/+73v+OyP+arTjPAAAAH3RSTlMAx/lMSc774YJwIAzR7uy/uLSYl4yLiWpUQiwqFwWpOo+15wAAA4hJREFUaN7Vm2tX4jAQhpPSK1SE5SIgOsilLTcBQS76///X7hoPXWCiaWhn6/P1PTmvkcwwmQwsGUXTq1W475QNo+z4vFLzzCLLiJJZtwxAMKy6WUrbreNyG77A5m4nPbeuZ4ECltdNxa5dtUERu9q+2q7AIRG8cJVdy4fEWC1tu/tb0OL2Xi8MmgZoYjQ1wsR04AocM6HdQwOupPGQKINxuBpeTBALN5ACN8oRcgcpcafm50JquCp+vyBFfn3v9wip8qi0P8I9upA6rvL5JDirBcgEaTwWbyATboqS/MkhIzieVxuQGQ3Mz4QMMZHvWwcyxLn8Rm5CpjQv6hcDUCaL1eCU5WwNn6xnyzNxtZgAinFe56D10nR56GGE2+kfcRui4mE5RSurs3oQEKKwJ+N5PH6WimEECKfVo4/5HXpyguAL8YA5+t/mtHlPm/l3GY4j+mvvCl6xfBP7tTU2qLHF+KZTRdS+WDlcRv1Txqvg+EGuxmditBwKqQ+XVI/3PxsLQLFwh0jjodCGY0TcCQ2T7C4TeICwEQufMG0ktBGmPQltg2keE1jowthQdp5ek66zhF8Hki3U10D0AVw6Q1cEIYlhHIolm87QLom0RmEYp7c6pWFdBAWFYRwYBqWhwVgRKA2hyExaQ5N5tIYeq9Ea1liF1rDCOK0hZz6toc8cWkOHlWkNy8ygNTTIDcn/peSHhjwsyANfK7W9Ce1NJ7VpJe++0PpaydvTMITBX2kAWl9Ppo4hbEajDegYmholRoxWicEMSkNDlIl0hpZOIRyjVwgXKA1NcZkhM7RL8XVNcscfQEIGYt0EFXl8IZVlk2A2hQRMZ0GchWQX0g6gHBttw1OCfQSfRPvgTDy220B65ZYGxkLe2XuBD17k/b2FJCgEnnyLOFv4YIur8g16cWMIYx3It/j1BoM1YNjduPWFIm+JziOAaC5vpgJKVdLci+nvZJschuFQtr1dH3Da7AiXH/PB6ISLvyA41QfyMOJaj06zc8MZqFJAWtAKLJDzr4SFNNmVWP3rtwJlWsgzghqT+fGwTkCZW+ShRN3yfR+G+/cJqGPcUz8F/f/Hroyf8/LwYJnpk2w+Hp2ze1bPz+BANqMR+Rr+SH+8JX8DPOmOKOVzCCu9MbP8DtKlMyqY72HIq8c9f8JAq+7Irt/6SUPJyceuf+JgOfHofEypIP9xQEE9DMh//vAbvXewtdzt9jkAAAAASUVORK5CYII=', iconDown = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABwCAMAAADxPgR5AAAAt1BMVEUAAADl8//l9f/l9P/l9P/k9P/l9P/m9P/q///k9P/n9f/k9P/k8//l8//l9P/l9P/k9P/l9P/k9P/k8//m8//m9P/m8//l8//l9f/n9v/n9f/o8//o8//n+f/p+P/m9//p9P/////l9P/k8/8wmP85nf/h8v9HpP/b7v/R6v/I5v+63v9+wP9AoP+g0f+Yzf9zuv9ks/9OqP/C4v+y2v+s1/+m1P+Zzf+Ryf+Jxv9cr/9st/9XrP/lnD+mAAAAI3RSTlMAx0zO+/qKcAzRSvju7OLfv7i0mJeMg4FqVElCLCoiHhcFqVhMnCYAAAKcSURBVGjetNeJUupAEIXhnuwJO7LIjp5AABW57l59/+eytFKZogq0p5P5XuCvJNNdEzIzH4e9jopbDd9vtGLV6YXjOVkSJX23hhNqbj+JqGLTgfLwC08NplSZZeiCwQ2XVIVJ1wOT151QWY6CEeVQGaMYxtwRSc3aEGnPSCIKfAj5gWBMkiZKaCZk5ipAScEVGVgolKYWxObUUYE6e0IuUZFLYhmiMkNiuECFLuhP16jUteD5rD7jEJUb8s+n/bPqwIqz87iow4r64sz+VLBEnd6rAawJ6IQEFiWU06ImLGpGjBdq96XOfFjlz+hYG5a16cgI1h3fHmOwrHcbSMWCnfa6StODOOmQpsCxT789bCGjdG8Cliz9kUmL+k+nC451mst2EOlSbumBJUtzd7Kit8yDIXju06L4CIkwD7pgOhTF1Q0EXPoxBdttyeKUvg2gGRSfYG6gh5DrPS08QzMZxciDiTddfIEpLxJc1V51cQ8+vd76MLTXxXsY6uuhMPCii2/g0oNRg7FnXXyHkRrRHAJPq6J4CyNzGkPiRlocn12k/OJhDb6QepB5vCuKHwbFHnUgtNPFf/xihxSkdpkubsCkKIbYVhf/c4sxtSC3fdDFNVha1ICYLvK3XIN8lLH5LD4jWPyv6u3lBkAYhsGwBBdgA/ZflCMnJB7Jh9sFKlVN69h/+Ib8SPml4WXBC58/bfzx5t8T/4C5xNAiistELoS11N94M6PbNd6Q8pZbmwrcNuHGkLa+uLmn7Utu0GILeuYmu44ReFCio6D/w67mOC8hsGyNZDNC575YPQcc6EEjsuCPerwlD+CpRZQyIaw6zCwXpKtBBbNhyM+45whA61tkd91HgpKfY9cjguUYnT/XMl0PB0z3y4CPPxwYqUFcDbWqqAAAAABJRU5ErkJggg==', iconMenu = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABwCAMAAADxPgR5AAAAqFBMVEUAAADl8//k9P/l9P/m9P/l9f/n9f/l9P/l9P/l8//m9P/o9v/q///k8//l8//k9P/k9P/l9P/k9P/m8//l8//l9f/n9v/o8//p+P/m9//p9P/////l9P/k8/8wmP+g0f/U6//W6//Y7f+czv81m//h8v8/oP/M5/+x2v9yuv9Yrf9Rqf+s1//B4f+PyP/c7/9mtP/F5P+Wy/+23P+k0/+Bwf99v/9cr//VxVGGAAAAHXRSTlMAx/nPi0xK++GYcCsM7uzSv7i0g4FqVEIiHhcFqXWR2NYAAAMBSURBVGjevNZrb9sgGAXgF+z4nnuaW3tYtuXaemmzbuv//2eTjDrJEngQA883Pli2EeflkJ11UuRTNs5GnI+yMZvmRbImT6okjjgUeBQnFTlWzlmKDimbl+TMtohgICq25MJqlsJQOltRXwMGK2xAfSwjWIuWdK9ygrtMyvtiEHPciccVWUsy9JAlZOcxRk/xI1nYMPTGNhZZGMKBoXFCHuDIAxlZwJkFGcjhUE7/9QSnnoz+L+A/LuDcwvh8BjirA3ihzeNmCC+GG838ZPCEqedqDG9iUkjgUaK4bzN4lFWBNlS/qSWHV7yktgk8m1DLEt6122ME76IAM00/4RgCYPTPCmq7+vyKT4cfX74bqXdQW9GnGZSueyGOZ0inZ2Fqf4XSjEjaplCpm6ePOzSehYUaKumWpAJKb6Lxs1nchI03KBXdmXgRjd/N4ixsvHQmo4TaRTR+yfMjbFygJufbHGqnffOxBzT+CHP7E9Tm3SG8feyPl6+QDtej6es+bp1RrFJoHVqr129GDtBKK39jTT/eYgQU+7so9MHgCIgTrRHUmhIElVCBoArKEVROUwQ1JYagGI2ht6vfWxXDTL2D3pgy6MiK8Q6pd8WQMhpBzXnFkEbaQeO8Ykhc+0LnFUPi2i11XjGkkfbQOK8YUtYVi7/Vm0EKgzAURJFiheKqLgqFtLFYCEIQpND738xFVlnkJ8b88WdW7QGiLzNPO09TDmLMljoWjSLi08JnTMpXEWngjzb4wxv+eoK/gOGIgYYoOCbCQRiN+ld3mYGl6+nORBuHGC72906K0ZHmZFCBrLmIsapABvLKbTzE+L92xISu3ESpwIEYF6o24UCMG1UMMSBG96SqLwbEuEfKPYcY2v0ugRiPeH25eP9GnZSFOITYghZdQcNLdvSMAB9K0FPQ+WMX85wnYbBknWRljM58s7occYBHjZAlf5TXW+QJPGUVJZkSVjnNTK5IV0YVlC1DHtY9axBa85XdmqTk/dp1jWI5UJ3307fhjwPa9GMA//xhA1C4YmYrR8CJAAAAAElFTkSuQmCC', iconNote = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABwCAMAAADxPgR5AAAAwFBMVEUAAADk9P/k8//l9f/n9f/l9P/l9P/l8//l9P/l8//m8//m9P/o9v/q///k9P/k9P/l9P/k9P/m9P/l9P/l9P/l9f/n9v/o8//p+P/m9//p9P/////l8//l8//l9P/k8/8wmP9Wq/9Rqf80mv9Bof83nP/S6v94vf/d8P/X7f/F5P9yuf9mtP88nv/K5v+73v9IpP+Ixf/A4f9/wP9st/+j0/+w2f+bzv+Uy/9Zrf/O6P+OyP9fsP/h8v+13P+p1v+YamAyAAAAH3RSTlMA+cdMSs777eGYgnArDNG/uLSMi4lqVEIiHhcFxsWpm2xOQwAABJ5JREFUaN7Vm2lT6lAMhlso+yIgV3G7OdhS9lVAWcT//6/uaKNHKU2TUu7g88UZmOlrw8mb9JzUkNGwCrnKQzmbMc1MtvxQyRWshnEiSlYtZcIBzFTNKsWtVswn0kCQTuSL8andFlLAIFW4jUXuupoGJunq9dFyyQSISCSPkrsqg5jUVfSVcgGRuChGS4O6CREx6xHSxMrCEWQtodzdJRzJ5Z1E7yYBR5O4EeRCBmIgw86QPxATf3h6eYiNPEcvBzGSC9f7C7HyV3Z/p7/HPMROnr8+T79Wk3ASkoH+koGTkLkJ8E+5n3XHy8XbrAshJA77qtSv3WlTeTxuRiFOfrAegYh121bf6LtAYR2ot7L69zZUP2k9k/XRX5HrIOFJ+XkCgrqvfzGlen76VNex3+eI+qUXhQwH0+fp/Cu6L1RntdcPgoCx8nCW4DGbeB/YYwjmZ/dYliSfgxH0x3gFwZQje9pAfdCG70y9D3dMh5N4zPPhm1mpdwaU32i9a+DTa3mCg+5eoL1s7EAw+kmnCmw6jwpxdv5bpGNaNZDbNLBpK8301R/qDfU0d4uCBYGjqe+s1r6YknZTQMEU37G9HLedz8RfgAbXLkEKXQ24vK48nbfu4MvOOoB0UJCiKGycMNnmAPDcQsXJDDx2+BtS5GVJuMPl6aXH53K10UHn6h2MMZWKpbTM0uw1hrCtkO1H8fVumS796RLamsTSdKFdDrWLY7ibEN7A1WQ1aQsad/tVfEe6QFHU+Ekxs71EwGRHNjYqen8d9DsyMUyepWHJmwGyVwp1uElMw2gAiz66mf8/wW/0L0jSYHaHC2xAD373mZKtEYRi8Yx01MLiQ3yrc5C20xzH0jDJl6QB9YFBzqiwukLKJ2focR1gUDHuIZQlXjHg9rGC9IDDPaNfc9HSXDjIlpXyunfLgoa84oI0oAHwyBoZCGFDXnGktMVwyIQazRgtDQ7j6H6UhRkm2EXrClgSc21ATEEdUvKKG7KnWr0Cl4yRFbfZmi6Gew1ssnRauEOyn8ZwvwGfsvHAqBFjiQHRPJDW5tpUczvGCtIBARXSvF+ojOhgBemBhBxZnraUxTR1kRdQIAvw8OMWSAOagwyLajE6RJHoYQXpgowG1UStdV/oA2vSGGSYZJs4CnbtAWlAdJtYiyC4UMTNhzXCSbkg5qfjghSLfJjpBa3DCdFThT/MGAmpYJuxmUftnOSFgku0NKIm0Q+kRZlgz9ZttpQivakwO9TfzmzdU8mTwqPAF1yv9N6onELIxtB479LuE7ZMVE2iN4aQKiXYRrW2o75w1hCBqt7cowVRTTPpQRSuye1LLbinpjcSxUmoSRKCtvpJcwnRSIZuQbvKh+1MHlnMZ76cYGyyP6rI+I3hinGMsIss52//L1gHJS92XIJmkXcUNB7EFNI6+7Cr129God8LPuxCLDghFnlgGT+X5JFs/CTuzuPQ+XTH6uczOHCa0YjzGv6If7zl/AZ44h1ROs8hrPjGzM53kC6eUcHzHoY8etzzNwy0Rh3ZLV/9pqFk+dj1bxws//+j80gpGfxyQFKSBvLXH+4/X3+4j/D6wz82EbmlhUaaogAAAABJRU5ErkJggg==', iconOverClass = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABwCAMAAADxPgR5AAAAulBMVEUAAAD/6uj/6ej/6+j/6ur/6ef/6uj/6uf/6uf/6+j/8Oz/9er/6uf/6ef/6ej/6uj/6uj/6uj/6uf/6uj/6ej/6ef/6+n/6uj/6ef/6en/6ur/7Oj/7uj/7e3/9On/////6uj/6ef/U3b/na7/4+P/WHr/5+b/x83/kKT/2Nr/Z4X/qLb/3d7/rbr/lqj/gZn/d5H/1Nf/zdL/usT/tsH/s77/v8f/iZ//e5T/XH3/bor/4OD/orH/b4qWx+cJAAAAIXRSTlMA+8dMSfnhzoxwIAzu7NLQxr+4tJiXiYOBalRCLCoXBamt+0gtAAAEWElEQVRo3rTTaZKDIBiE4QYREcxiFmMWY7oq9z/j/J6MM8Mn8Nygq96GjDft+bDf2k1db+x2fzi3xqOQYFxTc0HdOBOQ2eOiFf+g9OWBbJ5twwhN+0QO96NiJHW8I1WlKaIrpLjtKLa7Ya2p5yr9hDXCoLiSGgLEjGUCayAzOyZyMwS8ZjLtBV/omEFXIdKVmVwRZWQ2IyKcmNEJ/3oxq5dsX/mNI7MbBX0Wb7ViERV+4TsW0XksmjUL0TOWOBbjsMCwIIMfgmVBNuDTwKIGfJgURd5viqgJ3/WU+KK1XncSBoIwDC9GPMZzjIkak2/YruXQSimFAvd/X8putwkpzkxjfH5veEvamWxRE9UF+ngwB17Rh53Qj4lFH4e3xzv0sSRviT7u/rDTRuSNwOA33AmifwyemNYbRHJQ9maiJyjYKhsfD46zykLhKfY+BpCVGyKqjgUrItqUkA0+THAJkct9Ipl1g7OE9nIH0aUJziGxNQVlN1hSUFtIzo33Lvfm1PjsBj+pMZeL7z74AoFre1vXDbptW3QQvOiGMG17M3SDmLXFVDWK1wPwMmrUu+NjsaupkYE3uFastXESn9/9NvgupSAZK9bbBXhfFEy5TTOl4Au8C3koVhTk/GrLKVjJgzEEax6/QD7o4jmwhsZcgROnLCmk5V0kcVJZV+ZU9QZHkIIYqd7iqbBIbRL+4E4O7pqjVlinz5rLRA45iFxz8Xg2j+CsyVtoggvy1uA8mntwJrQ3ARPsHubcm1swLHmpLpiSZ8G4NWeKoch0wUwxGGfmBowy/oQmGB+vBOOGXzQVeYUuWJBXgTHkg1Pyvqu3ut4EYSg6YpZtGl1mYkyWzKQFLIWKgqLD6P//W3u6vlR6Dwqunkc1vYbez3MPBjNoKMs7DY4Bg9q6rKtXqwGDY8tpeDegEhlrwMVsp5kAiWZrfR5LGe8sFwNSzcQd+GXTQ9JVpZsuoHQH/hQI/IOAcAACf/oyA1JbvRQAljWQ2mZMeUqocQCwR3rFD6YA76xD2D+3YwrwECrAWrDQUAEeck3UAXEb/JevbJuopOXrzgiSim0T36Eu6hgxA9YR6qHe+Va/oJ566QwJ6s8LnuQbBdjslAsHcmx+CkbAuGZqa5ghWMNMbRDmZM4GNI1rDceZXymxBDHHRu6MzkuvHrhP6fuMHblBUiGRhI2y4mYj4QH4DaJNyAfJZKbFBTojc+THEG2yCDCahnBOwtV2uwqTsyRARE2waEF9VbF0Iq4w6gsn91QqHUgVSu7h9GV0qmUD6lOE0JetCVqTx1efZm4EgsENFLQOU+thhlpA+LyRZC+zdXoxts5KgeL7jjVCVJRKlUUrVv/LXpT0iuDn0aug/1929bzO82Fh2etK1o+lc39rdX+EA/1II/wSf3Qvb/FPwNOtRMlPEVZ3MjN/hXTdSAX9FkPeLfd8BkHr7ZLdZxIlt5ddP6Ow/OHSecJo0PxywAAPg4e//vAHMr7+ynUuAYkAAAAASUVORK5CYII=', iconSetTime = 'data:image/png;base64,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', iconToneIcon = 'data:image/png;base64,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', iconUp = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABwCAMAAADxPgR5AAAAulBMVEUAAADk8//m9f/l9P/l9P/k9P/l8//l9P/m8//m9P/q///k9P/k9P/l9P/l9P/k9P/k8//m8//m9P/l9P/l9P/l9f/n9v/l9f/n9f/o8//o8//n+f/p+P/m9//p9P/////l8//l8//l9P/k8/8wmP/h8v+Yzf9Eov/b7v/E4/+12/+Nx/9+wP9xuf83nP8zmv/U6//P6f/K5v+g0f9ks/9arv9Ipf86nv8+oP+83/+s1/+m1P9Np/9Rqf8vxikbAAAAI3RSTlMAx0vO+/nttoJwDNH64t+/mJeMi4lqVE1JQiwqIh4XBcbFqQTxdBcAAAKqSURBVGjevNaHUttAEMbxVW8uuOBegE9yAQzYDjYt7/9amTDOwWiUZG+l8+8F/iPp9rSkZzKIWsF10vA9z28k10ErGkzIkNhuOx4KeE7bjqlio9By8Q+uFY6oMrPIAYMTzagKw8AFkxsMqSzbghbLpjJ6CbQ5PZIaNyHSHMvGoFuDUK0rGBO7jhLqNumZd1BSZ04aphZKs6bE1vdRAb9PTJeoyCWxhKhMSAwXqNAF/dcNKnUjeD6jzxiiciH/fJo/q30Y8dd5nPowwp9SobkFQ6w5FenAmA4VsGGQXfC/rcOgekx5XRjVpZxxDUbV8ntOE4Y1c/sgjOvRdwmkVrsMLEklI/G0SdPjAiw2fbEgs/1If9uDwyJlCJntIf10AMtQBQOI7JbpSQaOgE5mLiTWqrcEizs7BSNIrF/SPxbgiU5BBwKvR9XbgMmhTyMI3D6o3j3YRqLFSd5DKB3Ct0fVuwOTGsXYha53YQ9uLLrW9inzfBZfb21oWqTKHpragqG4U7nHd2hQg+Ehh917gzaPaAIt96r3cAuBCQ2QY7SHAUXgyzaqd3yFSEQt5LB6L2vItCgAV/ZD9ZbSHgK6AtPqW28HqSv2vrZ6Vr3DFmIJNcCSffU+niDXIB8sC9X7WaYHn3vRqA/4vEIZ3tmDZ3+lZz805x+LX9WbIQLAIAwDxeT8NPxi/3/Z1AQOSnqkHgukl2ufOCW8+B1/2vDHG/+e8A8Yjxh0iMJjIh6E8aiPDzP0uMYPpPzIzUMFHpvEwdAbAEMs+sLhHo0vcUALI+gLh+x0jYAXJXQVdL7sSq7zHArL1ErWo3TOq9V9xIEcNcJL/tDrLX4Cj1ZR8pSwdJqZr0inUQW9Zcht3bOC0BpVdu+nkpS8rl1XFMun1fnaywHD+kP71x9aYP3hA/M5Qidw03TPAAAAAElFTkSuQmCC', iconWhite = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABwCAMAAADxPgR5AAAAulBMVEUAAADk9P/k8//l9f/n9f/l9P/l9P/m8//m9P/o+P/q///k9P/k8//l8//l9P/l9P/l8//k9P/k8//m8//m9P/l9P/l9P/l9f/n9v/o8//o8//n+f/p9P/////l9P/k8/8wmP/Y7f+Fw//d8P+t1/9/v/8+n/9otf95vf8zmv+Bwv9st/+k0/9cr/9Dov/U6//D4/9zuv/N6P9Op/83nP9ptv+dz/+QyP/g8v+WzP+94P+13P+73v+33f9oZhavAAAAH3RSTlMA+cdMSc62gnAgDNHu7OLfxr+Yl4yLiWpUQiwqFwWpuFocwwAAA9RJREFUaN681otO6kAUheE9pVfKVS4CgmsKqQHTQtETMcbz/q910kOJhhntdFrme4E/Tbp2hqoJbH/kDsJ+l7FuPxy4I98O6Eba9thhkGDO2G5TwxaexfALZnkLaszSd6DA8ZfUhLnLoIi5c6qrZaESq0V1zEJU5sxI18MQWoYPejOYMmhiU42Z2D3U0LOpmtUENU1WVEFgoTYrqLCFDhrQUV7IPRpyT0o8NMYjBXdo0B2VekSjHpW+z+A3emicp/x/GvhXW7iJH/cYdHATnYCkVhZUfcbb7Xb9AkWW/K5O1Hs7nttHUDQhCRvKjvwsgSqbBO0elL0WwRiqem0hOIWyza4IplA2Fd4vDMo+eOEPlLHrd84QModkHYtSfnGMBevkAJnh1XtQmjtyLUdpckbfhRBle65pn0EUlt20Q97TLR5KLpwlH5u+I0TWV28OUbTjNewiiOZ04UKUnJeWbSrK0h+PkEuFJYPoxHMZKst47gQRW9KZD4k1z0WoLOK5NSR8OnNMBZ1zbwFTQSwo55kLepSzTAWLKbaZuSBrC2dNGtxcRP+9awaL8zYuCyb76zOSvugGx8IoxGC244JUPSgOg5UET1xioxlkRAFKggkXPUEziIDssuD7Kxe8aQdt8suC2Lw9x/HzN6cPaAd9GgHmdgiMyDUbdGlgNjig0GwwpL7ZYJ+6ZoNdYqXBz3T/9Jv0b4UgKw/+q97sdhqGYSjcsQ46dsUFaHATN9tYq0K7td2g7P3fix9PQkJ2PNMuyr4HqKsojuJzTuoWBNpaUVBe0g5EOsWSyptmDyJ7xaaR2yItQaBMNW0hN35l13/Z/VAgNtU0vvejzf/hnfgtmESx34JxNPVbcBpFI58FR3hN9FdwIl+EJfQX4bHPgjE7zKQFjupLNXiPLVJ6mOHGtS6HnuQdq5zckMJAfzbcQPpEShj9eaNHbrIxLAyAJZoCSXwVTFhhqG7yHHqR501NC0MofQkUgBwMQQZIYQSuCXGPZtEex0Jyul8C0i6Mm0dGvuQ/uXX+DiyNk6vTTaet+4sF8T+SBTUzDt6f3Wv2Ar8rzjMhRHaGAyA7g7Ba7sE4mBM2AkMmOT9rQDLDc6cwSkpeVkb2gJRGMEpOs4I+RDWogiO82vCgMLusrJW8AmIVZlcUS15aZVg6QBrDEGsMy0bW1+rWXfBeZcluVtkXtnJ2TvbNquYs2TBM5/PZ6uEEB84TjQgr/DF8vCW8AM+wEaUwQ1jDxczCDdINExUMOwzZO+55CYHW/0Z2Z/NLCiXrY9eXGCz3EJ2nuR3zjwPGijbw/fzhE7HYtyzsXc6MAAAAAElFTkSuQmCC', iconWork = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABwCAMAAADxPgR5AAAAt1BMVEUAAAD/6uj/6uj/6+j/6ur/6uf/6ef/6uj/6uf/6uj/6+j/8Oz/9er/6uj/6uf/6ef/6uj/6uf/6uj/6ej/6ef/6+n/6en/6ur/7Oj/7uj/7e3/9On/////6uj/6ef/U3b/39//mav/2tv/XX7/n6//hZz/WXv/iZ7/e5T/Z4T/5OT/s7//YYD/cIz/4eH/1tn/u8T/fpf/dY//prT/x87/wsr/k6b/aof/rbr/jaL/nK3/z9P/yc/wFT71AAAAHnRSTlMA/MdMSc754YyCcCAM0e7sv7i0mJeJalRCLCoXBamy1b4xAAAECklEQVRo3tWba3OaQBSGl+Wigiaaahqb9CyRSFNA8ZJoLv3/v6sd6JRE9nJYLmOfjxmHZ1Z4T5azR1INz3KnEzrqXTrOZW9EJ1PX8khLDK2+7QAHx+5bw6Zt8wE1QIJBB/PmbLeuDQhs97YR3c2VAUiMq5vaOpNCJahZS/d1BJWxv2rrvo1Bi/E3vRjMDNDEmGnExOpBDXpWRd1dH2rSv6tUwSjUhnoVsnABDXCBTsi1AY1gXON8A2iMAcb3BRrki9r3HRrlu+769NeIvH8d3cdraIFrSf4MaAFDmEevnPf3fRxBXS48Qf0s17OYMbZaQ10ov65y6nXC/rCE2vR5PgvKsIw91MYq+4Y9KLPNjU9Ql96wJJwBhzTIhIkPn1j7HOS3elbav/ATsWEZj5/+9pNxCVdvqTgbp/ucMfC5Zxlv8I9FyMQchCEan+wHQcSOZWw+REXGagECPu8eRyBikWQXClL4yzOTG0VrHH2qaSDm+fRCW7nxAAJMUkBBwp5lvBZPzds9h8OO5aTAhxa+GxBTLCkGBU/543sPAoo3nSuQ4ucXCt+VxuxzRxBwRf5ya4CcX2F+JWUZf8w+J8ziLclxQcULY8oyXqTWBwEuybFBySuujD9knxJG0c59c1ATrYoyri+EOX7jlIZ5GV/UEg74IZSWcZxQFsWhASiKMq4vNIacsqYq4881hGBytjKIMq4v7JdDoS7ju0gtlAXDkRarh5fo9HrsoC90CPFUFWYVKcs4XggesUBCkl2+VMaTSFtoSQupn/+7KZfxVFvokilaWJTxQH+FUzLBCov8hxvQFk4IrSiE9NkHfSElI7ywQF84Ij0tYfrj+PMDx+U7UtgjlzrC6MhOSHyc8JI4GkLeZjjGCR094VNZuEEK9b5S2J36jmvkV6r50Kwfto8f2N772Iem+1jQboWUTLoVTsi0W+GUuN0KXWJ1K7SIV0EYv/7g87pfo7cYxEELD9JXe+wmithYoc9kbNDbxD5WmEqFMXojbGKFsJP4ggVKaGUvM1jhYhmEAnZP+JcZQruLBc1fSLsTDjLhvDvhnGTYXQltVdskKnpeOA6KtomyMRRkRQQwFMEJxY0hZevrscg0vvGwU7a+yI28kRgijXHeIX9QNPdkUfQDlpFsl0q2CcsIF8IQFpiyJeKRL9BEtaCXVX1bYSZwTfaoonG5xjXZyRhEvCR4XbAHEWPVQUnBOl6ukkBJslrGa/xBCZlBq8wwh114dA67iAUtYvEPLFujLzqSbQl6Jzx0boUL71yO1dsaHDin0Yg2hj/Obbyl6QGecxxRanII61zHzJoapDvnUcEGhiHPf9yz64FW/ZHd0df/aSi5+tj1/zhY3vHofMHQFP84wMTHoPOfP/wGTQWP9qtjfVcAAAAASUVORK5CYII='; function _isSlot(e) { return ( typeof e == 'function' || (Object.prototype.toString.call(e) === '[object Object]' && !isVNode(e)) ); } const AttendClass = defineComponent({ name: 'CoursewarePlay', props: { type: { type: String, default: '' }, subjectId: { type: [String, Number], default: '' }, lessonCourseId: { type: [String, Number], default: '' }, detailId: { type: String, default: '' }, classGroupId: { type: String, default: '' }, classId: { type: String, defaault: '' }, preStudentNum: { type: [String, Number], default: '' } }, emits: ['close'], setup(e, { emit: t }) { const r = useMessage(), i = useRoute(), s = useRouter(), a = useUserStore(), o = reactive({ width: '100vw' }); onUnmounted(() => {}); const n = reactive({ type: 'class', subjectId: '', lessonCourseId: '', lessonCoursewareDetailId: '', detailId: '', classGroupId: '', classId: '', preStudentNum: '', knowledgePointList: [], itemList: [], videoRefs: {}, audioRefs: {}, modelAttendStatus: !1, modalAttendMessage: '本节课未设置课后作业,是否继续?', modelTrainStatus: !1, homeworkStatus: !0, removeVisiable: !1, removeTitle: '', removeContent: '' }), l = reactive({ nowTime: 0, model: !0, isAnimation: !0, timer: null, item: null }), f = async () => { try { const V = ( await queryCourseware({ coursewareDetailKnowledgeId: n.detailId, subjectId: n.subjectId, pag: 1, rows: 99 }) ).data.rows || [], O = []; V.forEach(j => { j.removeFlag || O.push({ id: j.id, materialId: j.materialId, coverImg: j.coverImg, type: j.materialType, title: j.materialName, isCollect: !!j.favoriteFlag, isSelected: j.source === 'PLATFORM', content: j.content }); }), (n.knowledgePointList = O), (n.itemList = n.knowledgePointList.map(j => ({ ...j, iframeRef: null, videoEle: null, audioEle: null, autoPlay: !1, isprepare: !1, isRender: !1 }))); } catch (D) {} }, g = ref(!1), S = ref(!1), c = ref(!1), P = D => { var V, O, j, $, J, X, Y, K; if ( (console.log( (V = D.data) == null ? void 0 : V.api, D.data, 'ev.data' ), ((O = D.data) == null ? void 0 : O.api) === 'headerTogge' && (l.model = D.data.show || D.data.playState != 'play'), ((j = D.data) == null ? void 0 : j.api) === 'onAttendToggleMenu' && (l.model = !l.model), (($ = D.data) == null ? void 0 : $.api) === 'api_fingerPreView' && (clearInterval(l.timer), (l.model = !D.data.state)), ((J = D.data) == null ? void 0 : J.api) === 'documentBodyKeyup' && (((X = D.data) == null ? void 0 : X.code) === 'ArrowLeft' && (M(), H('up')), ((Y = D.data) == null ? void 0 : Y.code) === 'ArrowRight' && (M(), H('down'))), ((K = D.data) == null ? void 0 : K.api) === 'onLogin') ) { const Z = document; Z.exitFullscreen ? Z.exitFullscreen() : Z.mozCancelFullScreen ? Z.mozCancelFullScreen() : Z.webkitExitFullscreen && Z.webkitExitFullscreen(), a.logout(), s.replace('/login'); } }; onMounted(() => { const D = i.query; console.log(D, e.preStudentNum, '学生人数'), (n.type = e.type || D.type), (n.subjectId = e.subjectId || D.subjectId), (n.detailId = e.detailId || D.detailId), (n.lessonCourseId = e.lessonCourseId || D.lessonCourseId), (n.classGroupId = e.classGroupId || D.classGroupId), (n.classId = e.classId || D.classId), (n.preStudentNum = e.preStudentNum || D.preStudentNum), window.addEventListener('message', P), f(), x(); }); const d = reactive({ open: !1, activeIndex: 0, toolOpen: !1, chapterOpen: !1, chapterDetails: [], chapterLoading: !1 }), p = (D, V, O = []) => { for (const j of V) { if (j.knowledgeList && j.knowledgeList.length > 0) { const $ = p(D, j.knowledgeList, [...O, j.id]); if ($.includes(D)) return $; } if (j.id === D) return [...O, D]; } return O; }, x = async () => { try { const D = await lessonCoursewareDetail({ id: n.lessonCourseId, subjectId: n.subjectId }); d.chapterDetails = D.data.lessonList || []; const V = p(n.detailId, d.chapterDetails); n.lessonCoursewareDetailId = V[0]; } catch (D) {} }, u = async () => { try { if (!n.classId) return; await courseScheduleUpdate({ lessonCoursewareKnowledgeDetailId: n.detailId, id: n.classId }); } catch (D) {} }, y = computed(() => { let D = ''; return ( d.chapterDetails.forEach(V => { var O; V.id === n.lessonCoursewareDetailId && ((D = V.name), (O = V.knowledgeList) == null || O.forEach(j => { j.id === n.detailId && (D += ' - ' + j.name); })); }), D ); }), m = () => { var D, V, O, j, $; for (let J = 0; J < n.itemList.length; J++) { const X = n.itemList[J]; if (X.type === 'VIDEO' && X.videoEle) try { (D = X.videoEle) == null || D.currentTime(0), (V = X.videoEle) == null || V.pause(); } catch (Y) {} X.type === 'SONG' && X.audioEle && ((O = X.audioEle) == null || O.stop()), X.type === 'MUSIC' && (($ = (j = X.iframeRef) == null ? void 0 : j.contentWindow) == null || $.postMessage({ api: 'setPlayState' }, '*')); } }, A = D => { const V = n.itemList.findIndex(O => O.id == D); V > -1 && R(V); }, T = () => { clearTimeout(l.timer), r.destroyAll(), (l.timer = setTimeout(() => { (l.model = !1), Object.values(n.videoRefs).map(D => D == null ? void 0 : D.toggleHideControl(!1) ), Object.values(n.audioRefs).map(D => D == null ? void 0 : D.toggleHideControl(!1) ); }, 4e3)); }, E = () => { clearTimeout(l.timer), r.destroyAll(), (l.model = !1), Object.values(n.videoRefs).map(D => D == null ? void 0 : D.toggleHideControl(!1) ), Object.values(n.audioRefs).map(D => D == null ? void 0 : D.toggleHideControl(!1) ); }, _ = (D = !0) => { (l.model = D), Object.values(n.videoRefs).map(V => V == null ? void 0 : V.toggleHideControl(D) ), Object.values(n.audioRefs).map(V => V == null ? void 0 : V.toggleHideControl(D) ); }, I = D => { if (D && D.type === 'VIDEO') { const V = D.videoEle; V && (V.paused ? (r.destroyAll(), V.play()) : (r.warning('已暂停'), V.pause())); } }, B = ref(3), z = [ { prev: { transform: 'translate3d(0, 0, -800px) rotateX(180deg)' }, next: { transform: 'translate3d(0, 0, -800px) rotateX(-180deg)' } }, { prev: { transform: 'translate3d(-100%, 0, -800px)' }, next: { transform: 'translate3d(100%, 0, -800px)' } }, { prev: { transform: 'translate3d(-50%, 0, -800px) rotateY(80deg)' }, next: { transform: 'translate3d(50%, 0, -800px) rotateY(-80deg)' } }, { prev: { transform: 'translate3d(-100%, 0, -800px) rotateY(-120deg)' }, next: { transform: 'translate3d(100%, 0, -800px) rotateY(120deg)' } }, { prev: { transform: 'translate3d(-50%, 50%, -800px) rotateZ(-14deg)', opacity: 0 }, next: { transform: 'translate3d(50%, 50%, -800px) rotateZ(14deg)', opacity: 0 } }, { prev: { transform: 'translateZ(-800px) rotate3d(0, -1, 0, 90deg)', opacity: 0 }, next: { transform: 'translateZ(-800px) rotate3d(0, 1, 0, 90deg)', opacity: 0 }, current: { transitionDelay: '700ms' } } ], G = ref(), R = D => { d.activeIndex != D && (m(), clearTimeout(G.value), W(d.activeIndex, D), (d.activeIndex = D), (G.value = setTimeout( () => { const V = n.itemList[D]; V && (V.type == 'MUSIC' && (l.model = !0), V.type === 'SONG' && (clearTimeout(l.timer), r.destroyAll()), V.type === 'VIDEO' && (clearTimeout(l.timer), r.destroyAll(), nextTick(() => { var O; V.error && ((O = V.videoEle) == null || O.src(V.content), (V.error = !1)); }))); }, l.isAnimation ? 800 : 0 ))); }, W = (D, V) => { const O = n.itemList[D], j = n.itemList[V]; if (j) { if (j.knowledgePointId != O.knowledgePointId) { l.isAnimation = !0; return; } const $ = O.videoEle, J = j.videoEle; ($ && $.duration < 8 && D < V) || (J && J.duration < 8 && D > V) ? (l.isAnimation = !1) : (l.isAnimation = !0); } else l.isAnimation = !( (O == null ? void 0 : O.adviseStudyTimeSecond) < 8 ); }, H = async D => { var V, O, j, $; if (D === 'up') { if (d.activeIndex > 0) { R(d.activeIndex - 1); return; } let J = d.chapterDetails.findIndex( ee => ee.id == n.lessonCoursewareDetailId ); const X = ((V = d.chapterDetails[J]) == null ? void 0 : V.knowledgeList) || []; let Y = X.findIndex(ee => ee.id == n.detailId), K = !1, Z = '', Q = ''; for ( ; Y >= 0 && (Y--, Y >= 0 && X[Y].containMaterial && ((K = !0), (Z = X[Y].lessonCoursewareDetailId), (Q = X[Y].id)), !K); ); if (K) { (d.chapterLoading = !0), (n.detailId = Q), (n.lessonCoursewareDetailId = Z), n.type !== 'preview' && (await u()), await f(), (d.activeIndex = n.itemList.length - 1 || 0), (d.chapterOpen = !1), (d.chapterLoading = !1); return; } let q = !1; for (; J >= 0; ) { J--; const ee = ((O = d.chapterDetails[J]) == null ? void 0 : O.knowledgeList) || []; let te = ee.length; for ( ; te > 0 && (ee[te - 1].containMaterial && ((q = !0), (Z = ee[te - 1].lessonCoursewareDetailId), (Q = ee[te - 1].id)), te--, !q); ); if (q) break; } if (q) { (d.chapterLoading = !0), (n.detailId = Q), (n.lessonCoursewareDetailId = Z), await f(), (d.activeIndex = n.itemList.length - 1 || 0), (d.chapterLoading = !1); return; } } else { if (d.activeIndex < n.itemList.length - 1) { R(d.activeIndex + 1); return; } let J = d.chapterDetails.findIndex( ee => ee.id == n.lessonCoursewareDetailId ); const X = ((j = d.chapterDetails[J]) == null ? void 0 : j.knowledgeList) || []; let Y = X.findIndex(ee => ee.id == n.detailId), K = !1, Z = '', Q = ''; for ( ; Y < X.length - 1 && (Y++, Y >= 0 && X[Y].containMaterial && ((K = !0), (Z = X[Y].lessonCoursewareDetailId), (Q = X[Y].id)), !K); ); if (K) { (d.chapterLoading = !0), (n.detailId = Q), (n.lessonCoursewareDetailId = Z), n.type !== 'preview' && (await u()), await f(), (d.activeIndex = 0), (d.chapterOpen = !1), (d.chapterLoading = !1); return; } let q = !1; for (; J <= d.chapterDetails.length - 1; ) { J++; const ee = (($ = d.chapterDetails[J]) == null ? void 0 : $.knowledgeList) || []; let te = 0; for ( ; te <= ee.length - 1 && (ee[te].containMaterial && ((q = !0), (Z = ee[te].lessonCoursewareDetailId), (Q = ee[te].id)), te++, !q); ); if (q) break; } if (q) { (d.chapterLoading = !0), (n.detailId = Q), (n.lessonCoursewareDetailId = Z), n.type !== 'preview' && (await u()), await f(), (d.activeIndex = 0), (d.chapterOpen = !1), (d.chapterLoading = !1); return; } } }, N = () => { var V, O; const D = n.itemList[d.activeIndex]; (D == null ? void 0 : D.type) == 'VIDEO' && !((V = D.videoEle) != null && V.paused) && T(), (D == null ? void 0 : D.type) == 'SONG' && !((O = D.audioEle) != null && O.paused) && T(); }; document.body.addEventListener('keyup', D => { D.code === 'ArrowLeft' ? (M(), H('up')) : D.code === 'ArrowRight' && (M(), H('down')); }); const M = (D = !0) => { clearTimeout(l.timer), (l.model = D), Object.values(n.videoRefs).map(V => V == null ? void 0 : V.toggleHideControl(D) ), Object.values(n.audioRefs).map(V => V == null ? void 0 : V.toggleHideControl(D) ); }, k = reactive({ type: '', penShow: !1, whiteboardShow: !1 }), b = D => { var O, j, $, J; const V = n.itemList[d.activeIndex]; switch ( (V.type === 'VIDEO' && V.videoEle && ((O = V.videoEle) == null || O.pause()), V.type === 'SONG' && V.audioEle && ((j = V.audioEle) == null || j.stop()), V.type === 'MUSIC' && ((J = ($ = V.iframeRef) == null ? void 0 : $.contentWindow) == null || J.postMessage({ api: 'setPlayState' }, '*')), E(), (d.toolOpen = !1), (k.type = D.type), D.type) ) { case 'pen': k.penShow = !0; break; case 'whiteboard': k.whiteboardShow = !0; } }, C = () => { (k.type = 'init'), _(); }, L = D => { D == 'setTimeIcon' && (c.value = !0), D == 'beatIcon' && (g.value = !0), D == 'toneIcon' && (S.value = !0); }, F = computed(() => { var J, X; if (d.activeIndex > 0) return !0; let D = d.chapterDetails.findIndex( Y => Y.id == n.lessonCoursewareDetailId ); const V = ((J = d.chapterDetails[D]) == null ? void 0 : J.knowledgeList) || []; let O = V.findIndex(Y => Y.id == n.detailId); if (D <= 0 && O <= 0) return !1; let j = !1; for (; O >= 0; ) O--, O >= 0 && V[O].containMaterial && (j = !0); if (j) return !0; if (D <= 0) return !1; let $ = !1; for (; D >= 0; ) { D--; const Y = ((X = d.chapterDetails[D]) == null ? void 0 : X.knowledgeList) || []; let K = Y.length; for (; K > 0; ) Y[K - 1].containMaterial && ($ = !0), K--; if ($) return !0; } return !1; }), U = computed(() => { var J, X; if (d.activeIndex < n.itemList.length - 1) return !0; let D = d.chapterDetails.findIndex( Y => Y.id == n.lessonCoursewareDetailId ); const V = ((J = d.chapterDetails[D]) == null ? void 0 : J.knowledgeList) || []; let O = V.findIndex(Y => Y.id == n.detailId); if (D >= d.chapterDetails.length - 1 && O >= V.length - 1) return !1; let j = !1; for (; O < V.length - 1; ) O++, O >= 0 && V[O].containMaterial && (j = !0); if (j) return !0; if (D >= d.chapterDetails.length - 1) return !1; let $ = !1; for (; D < d.chapterDetails.length - 1; ) { D++; const Y = ((X = d.chapterDetails[D]) == null ? void 0 : X.knowledgeList) || []; let K = 0; for (; K <= Y.length - 1; ) Y[K].containMaterial && ($ = !0), K++; if ($) return !0; } return !1; }); return () => { let D; return createVNode( 'div', { id: 'playContent', class: [styles$5.playContent, 'wrap'] }, [ createVNode( 'div', { onClick: () => { clearTimeout(l.timer), (l.model = !l.model), Object.values(n.videoRefs).map(V => V == null ? void 0 : V.toggleHideControl(l.model) ), Object.values(n.audioRefs).map(V => V == null ? void 0 : V.toggleHideControl(l.model) ); } }, [ createVNode( 'div', { class: styles$5.coursewarePlay, style: { width: o.width }, onClick: V => { V.stopPropagation(), T(); } }, [ d.chapterLoading ? '' : createVNode('div', { class: styles$5.wraps }, [ n.itemList.map((V, O) => { const j = Math.abs(d.activeIndex - O) < 2, $ = Math.abs(d.activeIndex - O) > 4; return j ? createVNode( 'div', { key: 'index' + O, class: [ styles$5.itemDiv, d.activeIndex === O && styles$5.itemActive, l.isAnimation && styles$5.acitveAnimation, Math.abs(d.activeIndex - O) < 2 ? styles$5.show : styles$5.hide ], style: O < d.activeIndex ? z[B.value].prev : O > d.activeIndex ? z[B.value].next : {}, onClick: J => { if ( (J.stopPropagation(), clearTimeout(l.timer), Date.now() - l.nowTime < 300) ) { I(V); return; } (l.nowTime = Date.now()), (l.timer = setTimeout(() => { (l.model = !l.model), Object.values(n.videoRefs).map(X => X == null ? void 0 : X.toggleHideControl(l.model) ), Object.values(n.audioRefs).map(X => X == null ? void 0 : X.toggleHideControl(l.model) ), l.model && T(); }, 300)); } }, [ V.type === 'VIDEO' ? createVNode(Fragment, null, [ createVNode( VideoPlay, { ref: J => (n.videoRefs[O] = J), item: V, isEmtry: $, onLoadedmetadata: J => { (V.videoEle = J), (V.isprepare = !0); }, onTogglePlay: J => { (V.autoPlay = !1), J || d.open ? clearTimeout(l.timer) : T(); }, onReset: () => { var J; ((J = V.videoEle) != null && J.paused) || T(); }, onError: () => { console.log('video error'), (V.error = !0); } }, null ), createVNode( Transition, { name: 'van-fade' }, { default: () => [ !V.isprepare && createVNode( 'div', { class: styles$5.loadWrap }, [ createVNode( Vue3Lottie, { animationData: playLoadData }, null ) ] ) ] } ) ]) : V.type === 'IMG' ? createVNode( 'img', { src: V.content }, null ) : V.type === 'SONG' ? createVNode( AudioPay, { item: V, ref: J => (n.audioRefs[O] = J), onLoadedmetadata: J => { (V.audioEle = J), (V.isprepare = !0); }, onTogglePlay: J => { (V.autoPlay = !1), J || d.open ? clearTimeout(l.timer) : T(); }, onEnded: () => { const J = d.activeIndex + 1; J < n.itemList.length && R(J); }, onReset: () => { var J; ((J = V.audioEle) != null && J.paused) || T(); } }, null ) : createVNode( MusicScore, { activeModel: l.model, activeStatus: d.activeIndex === O, 'data-vid': V.id, music: V, onSetIframe: J => { V.iframeRef = J; } }, null ) ] ) : null; }) ]) ] ) ] ), createVNode( 'div', { style: { transform: l.model ? '' : 'translateY(-100%)' }, class: styles$5.headerContainer }, [createVNode('div', { class: styles$5.menu }, [y.value]), '14:56'] ), createVNode( 'div', { onClick: V => { V.stopPropagation(); }, class: [ styles$5.switchDisplaySection, l.model ? '' : styles$5.sectionAnimate ] }, [ createVNode( NSpace, { class: styles$5.switchSpace }, { default: () => [ createVNode( 'div', { class: styles$5.btnItem, onClick: async () => { n.type === 'preview' ? (m(), (n.removeVisiable = !0), (n.removeTitle = '结束预览'), (n.removeContent = '请确认是否结束预览?')) : ((n.removeVisiable = !0), (n.removeTitle = '结束课程'), (n.removeContent = '请确认是否结束课程?')); } }, [ createVNode('img', { src: iconOverClass }, null), createVNode('p', null, [ n.type !== 'preview' ? '结束课程' : '结束预览' ]) ] ), n.type !== 'preview' && createVNode( 'div', { class: [ styles$5.btnItem, n.preStudentNum <= 0 ? styles$5.btnsDisabled : '' ], onClick: async () => { if (n.preStudentNum <= 0) return; const V = await lessonPreTrainingPage({ coursewareKnowledgeDetailId: n.detailId, subjectId: n.subjectId, page: 1, rows: 99 }); V.data.rows && V.data.rows.length && (n.modalAttendMessage = '本节课已设置课后作业,是否布置?'), (n.modelAttendStatus = !0); } }, [ createVNode('img', { src: iconWork }, null), createVNode('p', null, [ createTextVNode('布置作业') ]) ] ), createVNode( 'div', { class: styles$5.btnItem, onClick: () => b({ type: 'pen', icon: iconNote, name: '批注' }) }, [ createVNode('img', { src: iconNote }, null), createVNode('p', null, [createTextVNode('批注')]) ] ), createVNode( 'div', { class: styles$5.btnItem, onClick: () => b({ type: 'whiteboard', icon: iconWhite, name: '白板' }) }, [ createVNode('img', { src: iconWhite }, null), createVNode('p', null, [createTextVNode('白板')]) ] ), createVNode( 'div', { class: styles$5.btnItem, onClick: () => L('beatIcon') }, [ createVNode('img', { src: iconToneIcon }, null), createVNode('p', null, [createTextVNode('节拍器')]) ] ), createVNode( 'div', { class: styles$5.btnItem, onClick: () => L('toneIcon') }, [ createVNode('img', { src: iconSetTime }, null), createVNode('p', null, [createTextVNode('调音器')]) ] ), createVNode( 'div', { class: styles$5.btnItem, onClick: () => L('setTimeIcon') }, [ createVNode('img', { src: iconBeatIcon }, null), createVNode('p', null, [createTextVNode('计时器')]) ] ) ] } ), createVNode( NSpace, { class: styles$5.switchSpace }, { default: () => [ createVNode( 'div', { class: styles$5.btnItem, onClick: () => (d.chapterOpen = !0) }, [ createVNode('img', { src: iconChange }, null), createVNode('p', null, [createTextVNode('切换章节')]) ] ), createVNode( 'div', { class: styles$5.btnItem, onClick: () => (d.open = !0) }, [ createVNode('img', { src: iconMenu }, null), createVNode('p', null, [createTextVNode('资源列表')]) ] ), createVNode( 'div', { class: [ styles$5.btnItem, F.value ? '' : styles$5.btnsDisabled ], onClick: () => { F.value && H('up'); } }, [ createVNode('img', { src: iconUp }, null), createVNode('p', null, [createTextVNode('上一个')]) ] ), createVNode( 'div', { class: [ styles$5.btnItem, U.value ? '' : styles$5.btnsDisabled ], onClick: () => { U.value && H('down'); } }, [ createVNode('img', { src: iconDown }, null), createVNode('p', null, [createTextVNode('下一个')]) ] ) ] } ) ] ), createVNode( NDrawer, { show: d.open, 'onUpdate:show': V => (d.open = V), class: styles$5.drawerContainer, onAfterLeave: N, showMask: !1 }, { default: () => [ createVNode( NDrawerContent, { title: '资源列表', closable: !0 }, _isSlot( (D = n.knowledgePointList.map((V, O) => createVNode('div', { class: styles$5.cardContainer }, [ createVNode( CardType, { item: V, isActive: d.activeIndex === O, isCollect: !1, isShowCollect: !1, onClick: j => { (d.open = !1), A(j.id); } }, null ) ]) )) ) ? D : { default: () => [D] } ) ] } ), createVNode( NDrawer, { show: d.chapterOpen, 'onUpdate:show': V => (d.chapterOpen = V), class: styles$5.drawerContainer, onAfterLeave: N, showMask: !1, displayDirective: 'show' }, { default: () => [ createVNode( NDrawerContent, { title: '切换章节', closable: !0 }, { default: () => [ createVNode( Chapter, { treeList: d.chapterDetails, itemActive: n.detailId, onHandleSelect: async V => { d.chapterLoading = !0; try { n.detailId = V.itemActive; const O = p(V.itemActive, d.chapterDetails); (n.lessonCoursewareDetailId = O[0]), n.type !== 'preview' && (await u()), await f(), (d.activeIndex = 0), (d.chapterOpen = !1); } catch (O) {} d.chapterLoading = !1; } }, null ) ] } ) ] } ), k.penShow && createVNode( Pen, { show: k.type === 'pen', type: k.type, close: () => C() }, null ), k.whiteboardShow && createVNode( Pen, { show: k.type === 'whiteboard', type: k.type, close: () => C() }, null ), createVNode( NModal, { transformOrigin: 'center', show: n.modelAttendStatus, 'onUpdate:show': V => (n.modelAttendStatus = V), preset: 'card', title: '课后作业', class: ['modalTitle', styles$5.removeVisiable] }, { default: () => [ createVNode('div', { class: styles$5.studentRemove }, [ createVNode('p', null, [n.modalAttendMessage]), createVNode( NSpace, { class: styles$5.btnGroupModal }, { default: () => [ createVNode( NButton, { type: 'default', round: !0, onClick: () => { (n.modelAttendStatus = !1), m(), (n.modelAttendStatus = !1); } }, { default: () => [createTextVNode('暂不布置')] } ), createVNode( NButton, { type: 'primary', round: !0, onClick: () => { (n.modelTrainStatus = !0), (n.modelAttendStatus = !1); } }, { default: () => [createTextVNode('布置')] } ) ] } ) ]) ] } ), createVNode( NModal, { transformOrigin: 'center', show: n.modelTrainStatus, 'onUpdate:show': V => (n.modelTrainStatus = V), preset: 'card', class: [styles$5.attendClassModal, styles$5.trainClassModal], title: '作业设置' }, { default: () => [ createVNode( TrainSettings, { detailId: n.detailId, subjectId: n.subjectId, classGroupId: n.classGroupId, onClose: () => (n.modelTrainStatus = !1), onConfirm: () => { n.modelTrainStatus = !1; } }, null ) ] } ), createVNode( NModal, { transformOrigin: 'center', class: ['modalTitle background'], title: '节拍器', preset: 'card', show: g.value, 'onUpdate:show': V => (g.value = V), style: { width: '687px' } }, { default: () => [ createVNode('div', { class: styles$5.modeWrap }, [ createVNode( 'iframe', { src: '' .concat(vaildUrl(), '/metronome/?id=') .concat(new Date().getTime()), scrolling: 'no', frameborder: '0', width: '100%', height: '650px' }, null ) ]) ] } ), createVNode( NModal, { transformOrigin: 'center', class: ['background'], show: S.value, 'onUpdate:show': V => (S.value = V) }, { default: () => [ createVNode('div', null, [ createVNode( PlaceholderTone, { onClose: () => { S.value = !1; } }, null ) ]) ] } ), createVNode( NModal, { transformOrigin: 'center', show: c.value, 'onUpdate:show': V => (c.value = V), class: ['modalTitle background'], title: '计时器', preset: 'card', style: { width: px2vw(772) } }, { default: () => [ createVNode('div', null, [ createVNode(TimerMeter, null, null) ]) ] } ), createVNode( NModal, { transformOrigin: 'center', show: n.removeVisiable, 'onUpdate:show': V => (n.removeVisiable = V), preset: 'card', class: ['modalTitle', styles$5.removeVisiable], title: n.removeTitle }, { default: () => [ createVNode('div', { class: styles$5.studentRemove }, [ createVNode('p', null, [n.removeContent]), createVNode( NSpace, { class: styles$5.btnGroupModal, justify: 'center' }, { default: () => [ createVNode( NButton, { round: !0, onClick: () => (n.removeVisiable = !1) }, { default: () => [createTextVNode('取消')] } ), createVNode( NButton, { round: !0, type: 'primary', onClick: () => { state.application ? (document.exitFullscreen ? document.exitFullscreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitExitFullscreen && document.webkitExitFullscreen(), t('close')) : window.close(); } }, { default: () => [createTextVNode('确定')] } ) ] } ) ]) ] } ) ] ); }; } }), index = Object.freeze( Object.defineProperty( { __proto__: null, default: AttendClass }, Symbol.toStringTag, { value: 'Module' } ) ); export { AttendClass as A, Pen as P, TimerMeter as T, PlaceholderTone as a, index as i };