{"version":3,"sources":["promise.js","fetch.js","underscore.js","swiper.js","clipboard.js","lottie.js","intersection-observer.js","vh-check.min.js","filetype.js","dis.base.js","dis.module.accordion.js","dis.module.animations.js","dis.module.contentBox.js","dis.module.cookiepolicy.js","dis.module.departmentFinder.js","dis.module.equalizer.js","dis.module.footerEffect.js","dis.module.forms.js","dis.module.imgoverlay.js","dis.module.nav.js","dis.module.search.js","dis.main.js"],"names":["root","noop","bind","fn","thisArg","apply","arguments","Promise","this","TypeError","_state","_handled","_value","undefined","_deferreds","doResolve","handle","self","deferred","push","_immediateFn","cb","onFulfilled","onRejected","resolve","reject","promise","ret","e","newValue","then","finale","length","_unhandledRejectionFn","i","len","Handler","done","value","reason","ex","setTimeoutFunc","setTimeout","prototype","prom","all","arr","args","Array","slice","call","res","val","remaining","constructor","race","values","setImmediate","err","console","warn","_setImmediateFn","_setUnhandledRejectionFn","module","exports","normalizeName","name","String","test","toLowerCase","normalizeValue","iteratorFor","items","iterator","next","shift","support","iterable","Symbol","Headers","headers","map","forEach","append","isArray","header","Object","getOwnPropertyNames","consumed","body","bodyUsed","fileReaderReady","reader","onload","result","onerror","error","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","buf","view","Uint8Array","chars","fromCharCode","join","bufferClone","byteLength","set","buffer","Body","_initBody","_bodyInit","_bodyText","Blob","isPrototypeOf","_bodyBlob","formData","FormData","_bodyFormData","searchParams","URLSearchParams","toString","arrayBuffer","isDataView","_bodyArrayBuffer","ArrayBuffer","isArrayBufferView","Error","get","type","rejected","text","decode","json","JSON","parse","normalizeMethod","method","upcased","toUpperCase","methods","indexOf","Request","input","options","url","credentials","mode","referrer","form","trim","split","bytes","replace","decodeURIComponent","parseHeaders","rawHeaders","preProcessedHeaders","line","parts","key","Response","bodyInit","status","ok","statusText","fetch","viewClasses","obj","DataView","isView","oldValue","has","hasOwnProperty","callback","keys","entries","clone","response","redirectStatuses","redirect","RangeError","location","init","request","xhr","XMLHttpRequest","getAllResponseHeaders","responseURL","responseText","ontimeout","open","withCredentials","responseType","setRequestHeader","send","polyfill","createReduce","dir","iteratee","memo","index","currentKey","context","optimizeCb","isArrayLike","_","createPredicateIndexFinder","array","predicate","getLength","createIndexFinder","predicateFind","sortedIndex","item","idx","Math","max","min","isNaN","collectNonEnumProps","nonEnumIdx","nonEnumerableProps","proto","isFunction","ObjProto","prop","contains","previousUnderscore","ArrayProto","FuncProto","Function","nativeIsArray","nativeKeys","nativeBind","nativeCreate","create","Ctor","_wrapped","VERSION","func","argCount","other","collection","accumulator","identity","isObject","matcher","property","Infinity","createAssigner","keysFunc","undefinedOnly","source","l","baseCreate","MAX_ARRAY_INDEX","pow","each","collect","results","reduce","foldl","inject","reduceRight","foldr","find","detect","findIndex","findKey","filter","select","list","negate","every","some","any","includes","include","fromIndex","guard","invoke","isFunc","pluck","where","attrs","findWhere","computed","lastComputed","shuffle","rand","shuffled","random","sample","n","sortBy","criteria","sort","left","right","a","b","group","behavior","groupBy","indexBy","countBy","toArray","size","partition","pass","fail","first","head","take","initial","last","rest","tail","drop","compact","flatten","shallow","strict","startIndex","output","isArguments","j","without","difference","uniq","unique","isSorted","isBoolean","seen","union","intersection","argsLength","zip","unzip","object","findLastIndex","low","high","mid","floor","lastIndexOf","range","start","stop","step","ceil","executeBound","sourceFunc","boundFunc","callingContext","bound","concat","partial","boundArgs","position","bindAll","memoize","hasher","cache","address","delay","wait","defer","throttle","timeout","previous","later","leading","now","clearTimeout","trailing","debounce","immediate","timestamp","callNow","wrap","wrapper","compose","after","times","before","once","hasEnumBug","propertyIsEnumerable","allKeys","mapObject","pairs","invert","functions","names","extend","extendOwn","assign","pick","oiteratee","omit","defaults","props","tap","interceptor","isMatch","eq","aStack","bStack","className","areArrays","aCtor","bCtor","pop","isEqual","isEmpty","isString","isElement","nodeType","Int8Array","isFinite","parseFloat","isNumber","isNull","isUndefined","noConflict","constant","propertyOf","matches","accum","Date","getTime","escapeMap","&","<",">","\"","'","`","unescapeMap","createEscaper","escaper","match","testRegexp","RegExp","replaceRegexp","string","escape","unescape","fallback","idCounter","uniqueId","prefix","id","templateSettings","evaluate","interpolate","noMatch","escapes","\\","\r","\n","
","
","escapeChar","template","settings","oldSettings","offset","variable","render","data","argument","chain","instance","_chain","mixin","valueOf","toJSON","define","amd","global","factory","Swiper","$","selector","Dom7","els","tempParent","html","toCreate","doc","createElement","innerHTML","childNodes","querySelectorAll","getElementById","win","uniqueArray","addClass","classes","classList","add","removeClass","remove","hasClass","toggleClass","toggle","attr","arguments$1","setAttribute","attrName","getAttribute","removeAttr","removeAttribute","el","dom7ElementDataStorage","dataKey","transform","elStyle","style","webkitTransform","transition","duration","webkitTransitionDuration","transitionDuration","on","handleLiveEvent","target","eventData","dom7EventData","unshift","is","targetSelector","listener","parents","k","handleEvent","eventType","capture","events","event$1","dom7LiveListeners","proxyListener","addEventListener","event","dom7Listeners","off","handlers","handler","removeEventListener","splice","dom7proxy","trigger","evt","CustomEvent","detail","bubbles","cancelable","createEvent","initEvent","dataIndex","dispatchEvent","transitionEnd","fireCallBack","dom","outerWidth","includeMargins","styles","offsetWidth","getPropertyValue","outerHeight","offsetHeight","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","getComputedStyle","css","textContent","compareWith","webkitMatchesSelector","msMatchesSelector","child","previousSibling","returnIndex","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","parent","parentNode","closest","foundElements","found","children","removeChild","toAdd","updateSize","width","height","swiper","$el","params","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","Utils","updateSlides","$wrapperEl","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","slidesNumberEvenToRows","slidesPerColumn","slidesPerView","slidesPerColumnFill","slideSize","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","-webkit-box-ordinal-group","-moz-box-ordinal-group","-ms-flex-order","-webkit-order","order","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","paddingTop","paddingBottom","boxSizing$1","swiperSlideSize","centeredSlides","abs","slidesPerGroup","newSlidesGrid","effect","Support","flexbox","setWrapperSize","i$1","slidesGridItem","i$2","slidesGridItem$1","centerInsufficientSlides","allSlidesSize","slideSizeValue","allSlidesOffset","snap","snapIndex","emit","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","speed","activeSlides","newHeight","setTransition","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","visibleSlides","slideProgress","minTranslate","slideBefore","slideAfter","isVisible","progress","updateProgress","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","activeSlide","loop","slideDuplicateClass","nextSlide","prevSlide","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getTranslate","axis","virtualTranslate","currentTranslate","setTranslate","byController","x","y","z","transforms3d","previousTranslate","newProgress","transitionStart","runCallbacks","direction","autoHeight","transitionEnd$1","animating","slideTo","internal","slideIndex","preventInteractionOnTransition","initialSlide","initialized","allowSlideNext","allowSlidePrev","onSlideToWrapperTransitionEnd","destroyed","slideToLoop","newIndex","loopedSlides","slideNext","loopFix","_clientLeft","slidePrev","normalize","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","currentSnap","nextSnap","slidesPerViewDynamic","slideToIndex","nextTick","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","snapTranslate","diff","slideChanged","slideChanged$1","loopDestroy","setGrabCursor","moving","touch","simulateTouch","isLocked","cursor","unsetGrabCursor","appendSlide","observer","update","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","onTouchStart","touchEventsData","touches","originalEvent","isTouchEvent","which","button","isTouched","isMoved","noSwiping","noSwipingSelector","noSwipingClass","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","screen","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","threshold","allowThresholdMove","preventDefault","formElements","activeElement","blur","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","onTouchMove","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","PI","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","grabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","time","onTouchEnd","touchEndTime","timeDiff","lastClickTime","clickTimeout","currentPos","freeModeMomentum","lastMoveEvent","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","freeModeSticky","longSwipesMs","stopIndex","groupSize","ratio","longSwipes","longSwipesRatio","shortSwipes","onResize","breakpoints","setBreakpoint","newTranslate","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","attachEvents","touchEvents","wrapperEl","touchEventsTarget","pointerEvents","prefixedPointerEvents","passiveListener","passiveListeners","passive","move","end","Device","ios","android","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","directionChanged","needsReLoop","changeDirection","points","point","breakpointsInverse","innerWidth","addClasses","classNames","suffixes","Browser","isIE","isEdge","suffix","containerModifierClass","removeClasses","loadImage","imageEl","src","srcset","sizes","checkForComplete","onReady","image","complete","Image","preloadImages","imagesLoaded","imagesToLoad","updateOnImagesReady","currentSrc","wasLocked","navigation","isEventSupported","eventName","isSupported","element","implementation","hasFeature","document","nodeName","querySelector","getElementsByTagName","hash","window","navigator","userAgent","history","Class","Methods","methodName","deleteProps","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","parseUrlQuery","query","urlToParse","href","paramsPart","o","len$1","to","nextSource","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","enumerable","testDiv","Modernizr","maxTouchPoints","DocumentTouch","pointerEnabled","PointerEvent","msPointerEnabled","csstransforms3d","supportsPassive","opts","defineProperty","gestures","isSafari","ua","isUiWebView","SwiperClass","eventsListeners","staticAccessors","components","configurable","priority","onceHandler","f7proxy","eventHandler","eventsArray","useModulesParams","instanceParams","modules","moduleName","useModules","modulesParams","moduleParams","modulePropName","moduleProp","moduleEventName","use","installModule","static","install","m","defineProperties","transition$1","manipulation","device","androidChrome","desktop","windows","iphone","ipod","ipad","cordova","phonegap","os","osVersion","webView","osVersionArr","metaViewport","minimalUi","pixelRatio","devicePixelRatio","images","checkOverflow$1","uniqueNavElements","wrapperClass","runCallbacksOnInit","prototypes","extendedDefaults","prototypeGroup","protoMethod","moduleParamName","swiperParams","passedParams","swipers","containerEl","newParams","touchEventsTouch","touchEventsDesktop","__proto__","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","slideEl","destroy","deleteInstance","cleanStyles","extendDefaults","newDefaults","Device$1","Support$1","Browser$1","browser","Resize","resize","resizeHandler","orientationChangeHandler","Observer","MutationObserver","WebkitMutationObserver","attach","ObserverFunc","mutations","observerUpdate","requestAnimationFrame","observe","attributes","childList","characterData","observers","observeParents","containerParents","observeSlideChildren","disconnect","Observer$1","Virtual","force","onRendered","lazy","load","ref","ref$1","addSlidesBefore","addSlidesAfter","ref$2","previousFrom","from","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","renderExternal","slidesToRender","prependIndexes","appendIndexes","$slideEl","numberOfNewSlides","newCache","cachedIndex","Virtual$1","beforeInit","overwriteParams","Keyboard","kc","keyCode","charCode","shiftKey","altKey","ctrlKey","metaKey","keyboard","onlyInViewport","inView","windowWidth","windowHeight","innerHeight","swiperOffset","swiperCoord","returnValue","enable","disable","Keyboard$1","Mousewheel","lastScrollTime","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","mousewheel","releaseOnEdges","delta","rtlFactor","forceToAxis","sensitivity","autoplay","autoplayDisableOnInteraction","eventsTarged","Mousewheel$1","Navigation","$nextEl","$prevEl","disabledClass","lockClass","onPrevClick","onNextClick","nextEl","prevEl","Navigation$1","hideOnClick","hiddenClass","toEdge","fromEdge","click","isHidden","Pagination","pagination","current","total","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","renderCustom","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","Pagination$1","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","hide","opacity","divider","moveDivider","display","setDragPosition","pointerPosition","clientX","clientY","positionRatio","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","draggable","Scrollbar$1","Parallax","setTransform","p","currentOpacity","currentScale","parallax","parallaxEl","$parallaxEl","parallaxDuration","Parallax$1","Zoom","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","zoom","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$imageEl","$imageWrapEl","containerClass","maxRatio","isScaling","onGestureChange","scaleMove","minRatio","onGestureEnd","changedTouches","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","onTransitionEnd","out","in","zoomedSlideClass","touchX","touchY","offsetX","offsetY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","Zoom$1","touchStart","touchEnd","doubleTap","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","imageIndex","background","preloaderClass","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","elIndex","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","Lazy$1","loadOnTransitionStart","scroll","scrollbarDragMove","Controller","LinearSpline","binarySearch","guess","i1","i3","getInterpolateFunction","c","controller","spline","setTranslate$1","setControlledTranslate","by","controlledTranslate","multiplier","inverse","controlled","control","setControlledTransition","Controller$1","a11y","makeElFocusable","addElRole","role","addElLabel","label","disableEl","enableEl","onEnterKey","$targetEl","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","message","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","A11y","notificationClass","paginationUpdate","History","pushState","hashNavigation","paths","getPathValues","scrollToSlide","replaceState","setHistoryPopState","pathArray","pathname","part","setHistory","slugify","currentState","state","slideHistory","History$1","HashNavigation","onHashCange","newHash","activeSlideHash","setHash","slideHash","watchState","HashNavigation$1","Autoplay","run","$activeSlideEl","reverseDirection","stopOnLastSlide","running","pause","paused","waitForTransition","Autoplay$1","disableOnInteraction","beforeTransitionStart","sliderFirstMove","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","EffectFade","Cube","$cubeShadowEl","swiperWidth","swiperHeight","cubeEffect","wrapperRotate","shadow","slideAngle","round","tz","slideShadows","shadowBefore","shadowAfter","-webkit-transform-origin","-moz-transform-origin","-ms-transform-origin","transform-origin","shadowOffset","shadowScale","shadowAngle","sin","cos","scale1","scale2","zFactor","EffectCube","Flip","flipEffect","limitRotation","rotate","rotateY","rotateX","zIndex","EffectFlip","Coverflow","coverflowEffect","center","depth","slideOffset","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","ws","perspectiveOrigin","EffectCoverflow","Thumbs","thumbsParams","thumbs","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","Thumbs$1","slideChange","beforeDestroy","f","g","Clipboard","t","r","s","u","require","code","1","DOCUMENT_NODE_TYPE","Element","matchesSelector","mozMatchesSelector","oMatchesSelector","2","delegate","useCapture","listenerFn","delegateTarget","./closest","3","node","HTMLElement","nodeList","4","listen","listenNode","listenNodeList","listenSelector","./is","5","selectedText","focus","isReadOnly","hasAttribute","setSelectionRange","selection","getSelection","createRange","selectNodeContents","removeAllRanges","addRange","6","E","ctx","evtArr","evts","liveEvents","7","mod","clipboardAction","_select","_interopRequireDefault","__esModule","default","_classCallCheck","Constructor","_select2","_typeof","_createClass","descriptor","writable","protoProps","staticProps","ClipboardAction","resolveOptions","initSelection","action","container","emitter","selectFake","selectTarget","_this","isRTL","documentElement","removeFake","fakeHandlerCallback","fakeHandler","fakeElem","fontSize","border","padding","margin","yPosition","pageYOffset","copyText","succeeded","execCommand","handleResult","clearSelection","_action","_target","8","tinyEmitter","goodListener","clipboard","_clipboardAction","_tinyEmitter","_goodListener","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","getAttributeValue","attribute","_clipboardAction2","_tinyEmitter2","_goodListener2","_Emitter","getPrototypeOf","listenClick","defaultAction","defaultTarget","defaultText","_this2","currentTarget","actions","queryCommandSupported","./clipboard-action","good-listener","tiny-emitter","globalThis","lottie","createTag","extendPrototype","sources","destination","sourcePrototype","getDescriptor","createProxyFunction","ProxyFunction","createSizedArray","_typeof$6","ProjectInterface$1","roundValues","flag","_shouldRoundValues","bmRnd","styleDiv","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","HSVtoRGB","h","v","q","RGBtoHSV","d","addSaturationToRGB","color","hsv","addBrightnessToRGB","addHueToRGB","createNS","createElementNS","svgNS","_typeof$5","BaseEvent","getRenderer","renderers","_typeof$4","bezFunction","pointOnLine2D","x3","y3","det1","pointOnLine3D","z1","z2","z3","diffDist","dist1","math","dist2","dist3","getSegmentsLength","shapeData","segmentsLength","segmentsLengthPool","newElement","closed","pathV","pathO","pathI","_length","lengths","totalLength","getBezierLength","addedLength","BezierData","segmentLength","PointData","partialLength","getDistancePerc","perc","bezierData","percents","initPos","bmFloor","lengthPos","lPerc","getPointInSegment","pt1","pt2","pt3","pt4","percent","t1","u1","ptX","ptY","getNewSegment","startPerc","endPerc","t0","u0","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","bezierSegmentPoints","ptCoord","ptDistance","curveSegments","getDefaultCurveSegments","lastPoint","lengthData","bezierLengthPool","bmPow","bmSqrt","buildBezierData","storedData","bezierName","createTypedArray","DynamicPropertyContainer","ShapePath","_maxLength","ShapeCollection","shapes","_typeof$3","setLocation","setLocationHref","searchAnimations","standalone","animationManager","animationData","renderer","setSubframeRendering","setSubframeEnabled","setPrefix","setIdPrefix","loadAnimation","setQuality","setDefaultCurveSegments","inBrowser","installPlugin","plugin","setExpressionsPlugin","getFactory","PropertyFactory","ShapePropertyFactory","Matrix","checkReady","readyState","clearInterval","readyStateCheckInterval","getQueryVariable","vars","queryString","pair","ShapeModifier","TrimModifier","PuckerAndBloatModifier","RepeaterModifier","RoundCornersModifier","getFontProperties","fontData","styleName","fStyle","fWeight","weight","RenderableElement","SliderEffect","elem","getProp","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","ef","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","_typeof$2","FootageElement","globalData","comp","initFrame","initRenderable","assetData","getAssetData","refId","footageData","imageLoader","getAsset","initBaseData","AudioElement","_isPlaying","_canPlay","assetPath","getAssetsPath","audio","audioController","createAudio","_currentTime","addAudio","tm","frameRate","_placeholder","BaseRenderer","TransformElement","MaskElement","masksProperties","maskElement","defs","viewData","solidPath","path","jLen","rect","expansor","feMorph","properties","count","currentMasks","layerId","createElementID","maskType","maskRef","inv","w","op","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","mask","getLocationHref","createLayerSolidPath","invRect","drawPath","maskedElement","addRenderableComponent","SVGTintFilter","filterManager","feColorMatrix","matrixFilter","feMerge","feMergeNode","SVGFillFilter","SVGStrokeEffect","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","filterSize","renderConfig","feGaussianBlur","feOffset","feFlood","feComposite","originalNodeAdded","SVGMatte3Effect","filterElem","matteElement","layerElement","transformedElement","baseElement","SVGGaussianBlurEffect","SVGEffects","filId","fil","filtersFactory","createFilter","filters","registeredEffects","Effect","effectsManager","countsAsEffect","registerEffect","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","pos","IShapeElement","SVGShapeData","transformers","level","shape","caches","lStr","sh","lvl","_isAnimated","mProps","dynamicProperties","SVGStyleData","_mdf","hd","pElem","msElem","DashProperty","frameId","dataProps","dashStr","dashArray","dashoffset","initDynamicPropertyContainer","getValue","SVGStrokeStyleData","styleOb","iterateDynamicProperties","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","it","prevViewData","gr","SVGTransformData","elements","effectsSequence","SVGShapeElement","shapesData","stylesList","shapeModifiers","itemsData","processedElements","animatedContents","LetterProps","sw","sc","fc","TextProperty","_frameId","initialDefaultFrame","pv","kf","_isFirstFrame","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","of","tr","sz","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","__complete","copyData","searchProperty","completeTextData","TextAnimatorDataProperty","animatorProps","defaultData","propType","textAnimatorAnimatables","degToRads","rx","ry","sk","sa","fh","fs","fb","TextSelectorProp","getTextSelectorProp","TextAnimatorProperty","textData","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","SVGTextLottieElement","textSpans","ISolidElement","NullElement","initTransform","initHierarchy","SVGRendererBase","ICompElement","SVGCompElement","layers","supports3d","completeLayers","pendingElements","SVGRenderer","animationItem","config","renderedFrame","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","preserveAspectRatio","imagePreserveAspectRatio","contentVisibility","progressiveLoad","hideOnTransparent","viewBoxOnly","viewBoxSize","focusable","frameNum","rendererType","CVContextData","saved","cArrPos","cTr","cO","savedOp","ShapeTransformManager","sequences","sequenceList","transform_key_count","CVEffects","CVMaskElement","hasMasks","CVBaseElement","CVShapeData","transformsManager","styledShapes","styledShape","transforms","addTransformSequence","trNodes","CVShapeElement","CVTextElement","stroke","fill","currentRender","sWidth","fValue","CVImageElement","img","CVSolidElement","CanvasRendererBase","clearCanvas","dpr","currentGlobalAlpha","contextData","transformMat","CVCompElement","CanvasRenderer","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","ks","px","py","pz","or","ti","rz","mat","_prevMat","finalTransform","mProp","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","hasMask","HybridRenderer","_typeof$1","seedRandom","pool","seedrandom","seed","entropy","shortseed","mixkey","tostring","autoseed","arc4","ARC4","prng","chunks","startdenom","significance","overflow","int32","quick","S","is_math_call","copy","rngname","keylen","me","typ","smear","stringseed","charCodeAt","nodecrypto","randomBytes","crypto","msCrypto","getRandomValues","plugins","digits","initialize$2","BMMath","addPropertyDecorator","loopOut","durationFlag","keyframes","currentFrame","lastKeyFrame","cycleDuration","firstKeyFrame","ip","iterations","getValueAtTime","initV","endV","repeats","lastValue","nextLastValue","loopIn","firstValue","nextFirstValue","smooth","samples","endFrame","sampleFrequency","sampleValue","getTransformValueAtTime","_transformCachingAtTime","cloneFromProps","pre","appliedTransformations","anchor","mult","skew","skewAxis","skewFromAxis","rotation","rotationZ","rotationY","rotationX","orientation","rotateZ","positionX","positionY","positionZ","getTransformStaticValueAtTime","getShapeValueAtTime","_cachingAtTime","shapeValue","shapePool","lastTime","offsetTime","_caching","interpolateShape","ShapeExpressions","getTransformProperty","TransformPropertyFactory","setGroupProperty","expressionHelpers","propertyGetProp","getStaticValueAtTime","getVelocityAtTime","getSpeedAtTime","numKeys","propertyIndex","ix","lastFrame","searchExpressions","addDynamicProperty","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","vertices","shapePath","inTangents","outTangents","isClosed","pointOnPath","_segmentsLength","bez","pt","accumulatedLength","initIndex","endIndex","segmentPerc","vectorOnPath","vectorType","xLength","yLength","magnitude","unitVector","tangentOnPath","normalOnPath","initiateExpression","ExpressionManager","propertyGetShapeProp","trims","lock","initialize$1","addDecorator","calculateExpression","addEffect","getExpressionValue","currentValue","newData","isKeyframed","searchKeyframes","hasExpressions","initialize","locationHref","_useWebWorker","setWebWorker","getWebWorker","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","resume","setRate","rateValue","Howl","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createRegularArray","createTypedArrayFactory","Float32Array","Int16Array","Uint8ClampedArray","subframeEnabled","expressionsPlugin","idPrefix","bmMax","bmMin","propertyNames","tOfVal","absArr","defaultCurveSegments","roundCorner","_count","rgbToHex","hex","colorMap","getSubframeEnabled","getExpressionsPlugin","getIdPrefix","dataManager","createWorker","Worker","URL","createObjectURL","workerFn","workerProxy","setupWorker","workerInstance","dataFunctionManager","comps","layerData","kLen","completed","tt","td","maskProps","convertPathsToAbsoluteValues","findCompLayers","completeShapes","completeText","completeChars","assets","findComp","__used","stringify","checkVersion","minimum","animVersionString","animVersion","completeData","checkColors","checkText","checkChars","checkPathProperties","checkShapes","updateTextLayer","textLayer","documentData","iterateLayers","minimumVersion","charData","st","sr","pathData","iterateShapes","completeClosingShapes","cl","moduleOb","_workerSelf","assetLoader","formatResponse","contentTypeHeader","getResponseHeader","loadAsset","fullPath","errorCallback","onreadystatechange","postMessage","payload","animation","onmessage","process","processes","onComplete","onError","createProcess","_counterId","processId","origin","loadData","completeAnimation","anim","ImagePreloader","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","assetsPath","originalPath","imagePath","testImageLoaded","intervalId","setInterval","getBBox","_imageLoaded","createImageData","ob","proxyImage","setAttributeNS","_elementHelper","createImgData","crossOrigin","createFootageData","_footageLoaded","loadAssets","_createImageData","setPath","setAssetsPath","loadedImages","loadedFootages","setCacheType","elementHelper","ImagePreloaderFactory","canvas","getContext","fillStyle","fillRect","triggerEvent","_cbs","callbacks","markerParser","parsePayloadLines","lines","keysCount","_markers","markers","_marker","markerData","dr","cm","__","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","compInterface","registerRenderer","AnimationItem","isLoaded","currentRawFrame","frameMult","playSpeed","playDirection","playCount","isPaused","animationID","timeCompleted","segmentPos","isSubframeEnabled","segments","_idle","_completedLoop","projectInterface","imagePreloader","configAnimation","onSetupError","onSegmentComplete","setParams","animType","RendererClass","rendererSettings","setProjectInterface","autoloadSegments","initialSegment","setupAnimation","substr","fileName","setData","wrapperAttributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","segmentPath","loadSegments","checkLoaded","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","initItems","gotoFrame","updateContainerSize","setSubframe","renderFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","Number","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","getPath","show","getDuration","removeElement","ev","animItem","registeredAnimations","subtractPlayingCount","registerAnimation","getRegisteredAnimations","lenAnims","animations","addPlayingCount","playingAnimationsNum","activate","nowTime","elapsedTime","initTime","_isFrozen","_stopped","animElements","getElementsByClassName","innerText","div","freeze","unfreeze","BezierFactory","getBezierEasing","str","beziers","bezEasing","BezierEasing","A","aA1","aA2","B","C","calcBezier","aT","getSlope","binarySubdivide","aX","aA","aB","mX1","mX2","currentT","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","newtonRaphsonIterate","aGuessT","NEWTON_ITERATIONS","currentSlope","_p","_mSampleValues","float32ArraySupported","kSplineTableSize","_precomputed","NEWTON_MIN_SLOPE","kSampleStepSize","mY1","mY2","_precompute","_getTForX","_calcSampleValues","mSampleValues","intervalStart","currentSample","lastSample","dist","guessForT","initialSlope","pooling","_double","double","poolFactory","initialLength","_create","_release","release","interpolateValue","caching","keyData","nextKeyData","keyframeMetadata","iterationIndex","keyframesMetadata","fnc","endValue","nextKeyTime","keyTime","ind","__fnct","distanceInLine","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","quatStart","createQuaternion","quatEnd","quaternionToEuler","slerp","omega","cosom","sinom","scale0","ax","ay","az","aw","bx","bz","bw","acos","quat","qx","qy","qz","qw","heading","attitude","asin","bank","c1","c2","c3","s1","s2","s3","getValueAtCurrentTime","endTime","renderResult","setVValue","multipliedValue","mathAbs","processEffectsSequence","finalValue","effectFunction","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","pointPool","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","outPoints","inPoints","cnt","cloned","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","localShapeCollection","shapesEqual","shape1","shape2","ShapeProperty","reset","KeyframedShapeProperty","dataProp","RectShapeProperty","EllShapeProperty","StarShapeProperty","EllShapePropertyFactory","convertEllToPath","cPoint","p0","p1","s0","_cw","_v","StarShapePropertyFactory","sy","ir","convertToPath","convertStarToPath","convertPolygonToPath","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapePropertyFactory","convertRectToPath","v0","v1","mCos","_cos","mSin","_sin","_t","shear","sx","_tan","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","j1","k1","l1","m1","n1","o1","isIdentity","_identity","equals","matr","applyToPoint","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","_rnd","roundMatrixProperty","to2dCSS","_a","_b","_c","_d","_e","_f","tan","useWebWorker","setIDPrefix","__getFactory","version","scripts","myScript","bodymovin","ShapeModifiers","registerModifier","modifiers","getModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","_s","shapePaths","totalShapeLength","edges","newShapesData","addShapes","lastShapeInCollection","lastShape","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","processPath","centerPoint","pathLength","clonedPath","applyToMatrix","forceRender","_isDirty","precalculateMatrix","autoOriented","v2","defaultVector","autoOrient","_addDynamicProperty","TransformProperty","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","applyTransforms","elemsData","_currentCopies","_elements","_groups","resetElements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","itemsTransform","cont","hasReloaded","copies","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","rd","currentV","currentI","currentO","closerV","newPosPerc","FontManager","trimFontOptions","font","familyArray","enabledFamilies","setUpNode","family","fontFamily","fontVariant","fontStyle","fontWeight","letterSpacing","checkLoadedFonts","loadedCount","loaded","fOrigin","monoCase","sansCase","maxWaitingTime","checkLoadedFontsBinded","setIsLoadedBinded","createHelper","def","tHelper","fontProps","fFamily","fClass","tCanvasHelper","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","fPath","rel","helper","ch","getCharData","_char","_warned","emptyChar","measureText","_char2","fontName","getFontByName","doubleSize","getComputedTextLength","singleSize","fName","isModifier","firstCharCode","secondCharCode","sum","surrogateModifiers","isZeroWidthJoiner","zeroWidthJoiner","isCombinedCharacter","_char3","combinedCharacters","setIsLoaded","Font","typekitLoaded","fontPrototype","isInRange","hidden","isTransparent","renderableComponents","component","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","renderRenderable","sourceRectAtTime","getLayerSize","MaskManagerInterface","MaskInterface","_mask","_data","MaskManager","maskManager","_masksInterfaces","maskFunction","ExpressionPropertyInterface","completeProperty","expressionValue","valueProp","valueAtTime","speedAtTime","velocityAtTime","propertyGroup","UnidimensionalPropertyInterface","defaultUnidimensionalValue","MultidimensionalPropertyInterface","defaultMultidimensionalValue","arrValue","defaultGetter","TransformExpressionInterface","_thisFunction","xRotation","yRotation","xPosition","zPosition","anchorPoint","_px","_py","_pz","_transformFactory","LayerExpressionInterface","getMatrix","toWorldMat","propMatrix","toWorldVec","applyPoint","toWorld","fromWorldVec","invertPoint","fromWorld","hierarchy","fromComp","sampleImage","_registerMaskInterface","_thisLayerFunction","_registerEffectsInterface","shapeInterface","transformInterface","textInterface","toComp","anchorPointDescriptor","hasParent","layerInterface","anchor_point","active","startTime","inPoint","outPoint","_name","registerMaskInterface","registerEffectsInterface","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","_propertyGroup","EffectsExpressionInterface","createEffectsInterface","effectsData","createGroupInterface","groupInterface","mn","createValueInterface","numProperties","np","en","expressionProperty","CompExpressionInterface","layer","pixelAspect","compSize","frameDuration","displayStartTime","numLayers","ShapePathInterface","ShapeExpressionInterface","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","defaultInterfaceFactory","contentsInterfaceFactory","interfaces","transformInterfaceFactory","cix","content","startPoint","endPoint","addPropertyToDashOb","dashOb","strokeWidth","_dashPropertyGroup","dash","outerRadius","outerRoundness","innerRoundness","innerRadius","radius","_interfaceFunction","parentGroupWrapper","TextExpressionInterface","sourceText","_prevValue","_sourceText","textProperty","stringValue","getBlendMode","blendModeEnums","0","9","10","11","12","13","14","15","eff","checkMasks","effectsInterface","setBlendMode","blendModeValue","bm","getType","prepareProperties","_isParent","FootageInterface","outlineInterfaceFactory","currentPropertyName","currentProperty","getFootageData","propertyNameIndex","dataInterfaceFactory","outlineInterface","dataInterface","getBaseElement","timeRemapped","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","buildElementParenting","parentName","setAsParent","setHierarchy","addPendingElement","setupGlobalData","fontsContainer","_matMdf","_opMdf","ao","renderTransform","finalMat","globalToLocal","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","skipCoordinates","createAlphaToLuminanceFilter","featureSupport","colorBlack","colorWhite","groupPath","elemChildren","masker","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","feFunc","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","setMatte","kBlurrinessToSigma","sigma","dimensions","sigmaX","sigmaY","edgeMode","initRendererElement","createContainerElements","_sizeChanged","gg","layerElementParent","maskGroup","maskGrouper","feCTr","alphaRect","ln","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","renderableEffectsManager","checkParenting","_prototype","createContent","renderInnerContent","innerElem","pr","addShapeToModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","shouldBreakProcess","searchProcessedElement","addProcessedElement","lineCapEnum","lineJoinEnum","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","lj","ml","ms","ost","buildShapeString","_o","_i","shapeString","SVGElementsRenderer","createRenderFunction","renderFill","renderGradient","renderGradientStroke","renderStroke","renderPath","renderContentTransform","renderNoop","styleData","itemData","pathStringTransformed","redraw","lLen","_matrixHelper","_identityMatrix","styleElem","hasOpacity","attr1","attr2","cValues","oValues","ang","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","GradientConstructor","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","shapeProperty","setElementStyles","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","updated","setCurrentData","getKeyframeValue","_finalValue","textKeys","buildFinalText","charactersArray","shouldCombine","charAt","newLineFlag","letters","anchorGrouping","currentSize","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","animators","based","indexes","rn","totalChars","newInd","currentInd","updateDocumentData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","easer","tot","smoothness","newCharsFlag","divisor","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","animatorSelector","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","rot","atan","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","emptyShapeData","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","usesGlyphs","tSpan","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","appendElementInPos","nextElement","setElements","getElements","destroyElements","duplicate","newLength","currentSavedOp","sequence","processSequence","processSequences","getNewKey","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","createElements","blendMode","globalCompositeOperation","hideElement","showElement","forceRealStack","ctxTransform","ctxOpacity","restore","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","strokeStyle","grd","lineCap","lineJoin","miterLimit","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","drawImage","cProps","trProps","globalAlpha","actionFlag","popped","containerStyle","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","elementRel","animationRel","fillType","clearRect","checkBlendMode","tg","transformedElementStyle","matrixValue","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","bounds","shapeBoundingBox","xMax","yMax","bottom","tempBoundingBox","p3","b2ac","t2","calculateF","calculateBoundingBox","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","lineHeight","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","tmpDOMElement","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","svg","cWidth","cHeight","floatingContainer","_createBaseContainerElements","Expressions","pushExpression","stackCount","popExpression","releaseInstances","registerExpressionProperty","expression","registers","propTypes","SHAPE","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","tOfB","lenB","sub","mul","clamp","mm","radiansToDegrees","degreesToRadians","arr1","arr2","helperLengthArray","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","rndm","createPath","inVertexPoint","outVertexPoint","arrPlaceholder","loopInDuration","loopOutDuration","lookAt","elem1","elem2","fVec","pitch","yaw","easeOut","val1","val2","applyEase","easeOutBez","easeIn","easeInBez","ease","easeInOutBez","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","randSeed","substring","posterizeTime","framesPerSecond","executeExpression","frameExpressionId","textIndex","textTotal","selectorValue","thisLayer","thisComp","fromCompToSurface","$bm_transform","elemType","_needsRandom","needsVelocity","expression_function","scoped_bm_rt","thisProperty","loop_in","loop_out","eval","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","__preventDeadCodeRemoval","frames","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","radians_to_degrees","degrees_to_radians","getFrameElement","defaultView","frameElement","IntersectionObserverEntry","entry","rootBounds","ensureDOMRect","boundingClientRect","intersectionRect","getEmptyRect","isIntersecting","targetRect","targetArea","intersectionArea","intersectionRatio","toFixed","IntersectionObserver","opt_options","_checkForIntersections","THROTTLE_TIMEOUT","_callback","_observationTargets","_queuedEntries","_rootMarginValues","_parseRootMargin","rootMargin","thresholds","_initThresholds","unit","_monitoringDocuments","_monitoringUnsubscribes","performance","timer","addEvent","opt_useCapture","attachEvent","removeEvent","detatchEvent","computeRectIntersection","rect1","rect2","convertFromParentRect","parentBoundingRect","parentIntersectionRect","containsDeep","getParentNode","assignedSlot","host","isDoc","startDoc","frame","ownerDocument","registry","crossOriginUpdater","crossOriginRect","POLL_INTERVAL","USE_MUTATION_OBSERVER","_setupCrossOriginUpdater","_resetCrossOriginUpdater","isTargetAlreadyObserved","_registerInstance","_monitorIntersections","unobserve","_unmonitorIntersections","_unregisterInstance","_unmonitorAllIntersections","takeRecords","records","opt_threshold","opt_rootMargin","marginString","margins","exec","monitoringInterval","domObserver","subtree","rootDoc","hasDependentTargets","itemDoc","unsubscribe","unsubscribes","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","rootContainsTarget","_rootContainsTarget","oldEntry","_computeTargetAndRootIntersection","newEntry","_hasCrossedThreshold","atRoot","parentRect","parentComputedStyle","frameRect","frameIntersect","_expandRectByRootMargin","newRect","oldRatio","newRatio","vhCheck","cssText","vh","isNeeded","setProperty","unbind","recompute","computeDifference","redefineVhUnit","cssVarName","redefineVh","updateOnTouch","onUpdate","nextId","JFilestyle","$elementjFilestyle","$element","clear","removeData","disabled","buttonBefore","pushNameFiles","htmlInput","files","buttonText","inputSize","placeholder","_self","keypress","change","search","old","jfilestyle","option","$this","jQuery","dis","underscore","BaseModule","globalDOM","returnFunction","functionQueue","domIsReady","funcRef","functionReference","Accordion","objectConfiguration","hashAnimation","$allHashAccordion","not","selfScope","animate","hasHash","initPrint","write","close","print","configuration","linktocopy","copylink","printUrl","scrollTo","onhashchange","reload","Animations","buildLottiAnimation","jsonName","mouseevent","bindLottieAnimation","fullwidth","playOnSwiperChange","repeatCount","$container","ContentBox","readmoreTrigger","readmoreContainer","eventHandlers","toggleHiddenContent","Cookiepolicy","deleteCookie","cookie","setCookie","exdays","setTime","expires","toUTCString","getCookie","ca","DOM","removeCookie","DepartmentFinder","link","initialUrl","splits","departmentFinderUrl","Equalizer","setHeight","$elements","maxHeight","FooterEffect","footerMargin","footerOuterHeight","onFocus","Forms","autoResizeTextarea","scrollHeight","empty","$required","fields","inputFields","submit","$input","required","log","validity","valid","$invalidInput","ImgOverlay","$overlay","appendTo","Nav","vhCheckHeight","navHead","navContent","subNavHead","subNavContent","navIcon","subNavIcon","burger","burgerInner","searchIcon","searchSite","foldoutNav","foldoutSubNav","foldoutSearch","dropDown","hasActive","IconActive","slideUp","slideToggle","that","Search","mouseEnterDropDown","mouseLeaveDropDown","mouseClick","maxResults","searchTerm","ContentTypeListClick","$item","$listItems","searchContentTypesList","listItemsCount","activeListItemsCount","temp","_index","currentContentTypes","dataset","contenttype","emptySearchList","tempStartIndex","currentSearchTerm","loadDOM","searchType","searchtype","onBlur","keyup","onKeyup","keydown","onKeydown","tempMaxResults","loadMore","isParameterByName","siteUrl","hostname","chosen","typeAheadRedirectUrl","typeAheadUrl","termUrl","redirUrl","contentTypeGroups","getParameterByName","dropdown","dropdownList","searchBanner","totalResults","searchAlias","searchContentTypes","searchResult","searchList","clickLink","showDropdown","hideDropdown","emptyDropdownList","emptyContentTypeList","ankiroSearchID","ankiroDocumentOffset","catch","createTypeAheadListitem","term","searchCount","listitem","tempString","createContentTypeListitem","contentType","contentTypeCssClass","createSearchTermListitem","createLoadMoreButton","loadMoreButton","iKeyCode","requestSuggestions","listitems","activeListItem","suggestion","suggestions","encodeURIComponent","buildDropdown","suggestionsLength","Term","AverageNumberOfResults","mouseenter","mouseleave","buildContentTypeList","contentTypes","tempContentTypes","Value","urlSearch","tempUrlMaxResult","termUrlQueryString","handleSearchData","SearchId","Offset","Documents","Decorations","FacetDefinitions","Properties","Buckets","Name","ValueMarkup","Id","Banners","BannerText","ZeroSearchResult","ExplanationText","TotalResults","heroSwiper","animationIsPlaused","imgoverlay","resizeObserver","450","820","consent","CookieInformation","getConsentGivenFor"],"mappings":"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","file":"main.min.js","sourcesContent":["(function (root) {\n\n // Store setTimeout reference so promise-polyfill will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var setTimeoutFunc = setTimeout;\n\n function noop() {}\n \n // Polyfill for Function.prototype.bind\n function bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n }\n\n function Promise(fn) {\n if (typeof this !== 'object') throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function') throw new TypeError('not a function');\n this._state = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n\n doResolve(fn, this);\n }\n\n function handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function () {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n }\n\n function resolve(self, newValue) {\n try {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) throw new TypeError('A promise cannot be resolved with itself.');\n if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n }\n\n function reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n }\n\n function finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function() {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n }\n\n function Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n }\n\n /**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\n function doResolve(fn, self) {\n var done = false;\n try {\n fn(function (value) {\n if (done) return;\n done = true;\n resolve(self, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(self, reason);\n });\n } catch (ex) {\n if (done) return;\n done = true;\n reject(self, ex);\n }\n }\n\n Promise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n };\n\n Promise.prototype.then = function (onFulfilled, onRejected) {\n var prom = new (this.constructor)(noop);\n\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n };\n\n Promise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n };\n\n Promise.resolve = function (value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n\n return new Promise(function (resolve) {\n resolve(value);\n });\n };\n\n Promise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n };\n\n Promise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n };\n\n // Use polyfill for setImmediate for performance gains\n Promise._immediateFn = (typeof setImmediate === 'function' && function (fn) { setImmediate(fn); }) ||\n function (fn) {\n setTimeoutFunc(fn, 0);\n };\n\n Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console\n }\n };\n\n /**\n * Set the immediate function to execute callbacks\n * @param fn {function} Function to execute\n * @deprecated\n */\n Promise._setImmediateFn = function _setImmediateFn(fn) {\n Promise._immediateFn = fn;\n };\n\n /**\n * Change the function to execute on unhandled rejection\n * @param {function} fn Function to execute on unhandled rejection\n * @deprecated\n */\n Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {\n Promise._unhandledRejectionFn = fn;\n };\n \n if (typeof module !== 'undefined' && module.exports) {\n module.exports = Promise;\n } else if (!root.Promise) {\n root.Promise = Promise;\n }\n\n})(this);\n","(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n","// Underscore.js 1.8.3\n// http://underscorejs.org\n// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n(function() {\n\n // Baseline setup\n // --------------\n\n // Establish the root object, `window` in the browser, or `exports` on the server.\n var root = this;\n\n // Save the previous value of the `_` variable.\n var previousUnderscore = root._;\n\n // Save bytes in the minified (but not gzipped) version:\n var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;\n\n // Create quick reference variables for speed access to core prototypes.\n var\n push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n // All **ECMAScript 5** native function implementations that we hope to use\n // are declared here.\n var\n nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeBind = FuncProto.bind,\n nativeCreate = Object.create;\n\n // Naked function reference for surrogate-prototype-swapping.\n var Ctor = function(){};\n\n // Create a safe reference to the Underscore object for use below.\n var _ = function(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n };\n\n // Export the Underscore object for **Node.js**, with\n // backwards-compatibility for the old `require()` API. If we're in\n // the browser, add `_` as a global object.\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = _;\n }\n exports._ = _;\n } else {\n root._ = _;\n }\n\n // Current version.\n _.VERSION = '1.8.3';\n\n // Internal function that returns an efficient (for current engines) version\n // of the passed-in callback, to be repeatedly applied in other Underscore\n // functions.\n var optimizeCb = function(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n case 2: return function(value, other) {\n return func.call(context, value, other);\n };\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n };\n\n // A mostly-internal function to generate callbacks that can be applied\n // to each element in a collection, returning the desired result — either\n // identity, an arbitrary callback, a property matcher, or a property accessor.\n var cb = function(value, context, argCount) {\n if (value == null) return _.identity;\n if (_.isFunction(value)) return optimizeCb(value, context, argCount);\n if (_.isObject(value)) return _.matcher(value);\n return _.property(value);\n };\n _.iteratee = function(value, context) {\n return cb(value, context, Infinity);\n };\n\n // An internal function for creating assigner functions.\n var createAssigner = function(keysFunc, undefinedOnly) {\n return function(obj) {\n var length = arguments.length;\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!undefinedOnly || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n };\n\n // An internal function for creating a new object that inherits from another.\n var baseCreate = function(prototype) {\n if (!_.isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n };\n\n var property = function(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n };\n\n // Helper for collection methods to determine whether a collection\n // should be iterated as an array or as an object\n // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\n var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n var getLength = property('length');\n var isArrayLike = function(collection) {\n var length = getLength(collection);\n return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n };\n\n // Collection Functions\n // --------------------\n\n // The cornerstone, an `each` implementation, aka `forEach`.\n // Handles raw objects in addition to array-likes. Treats all\n // sparse array-likes as if they were dense.\n _.each = _.forEach = function(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var keys = _.keys(obj);\n for (i = 0, length = keys.length; i < length; i++) {\n iteratee(obj[keys[i]], keys[i], obj);\n }\n }\n return obj;\n };\n\n // Return the results of applying the iteratee to each element.\n _.map = _.collect = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Create a reducing function iterating left or right.\n function createReduce(dir) {\n // Optimized iterator function as using arguments.length\n // in the main function will deoptimize the, see #1991.\n function iterator(obj, iteratee, memo, keys, index, length) {\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = keys ? keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n }\n\n return function(obj, iteratee, memo, context) {\n iteratee = optimizeCb(iteratee, context, 4);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n // Determine the initial value if none is provided.\n if (arguments.length < 3) {\n memo = obj[keys ? keys[index] : index];\n index += dir;\n }\n return iterator(obj, iteratee, memo, keys, index, length);\n };\n }\n\n // **Reduce** builds up a single result from a list of values, aka `inject`,\n // or `foldl`.\n _.reduce = _.foldl = _.inject = createReduce(1);\n\n // The right-associative version of reduce, also known as `foldr`.\n _.reduceRight = _.foldr = createReduce(-1);\n\n // Return the first value which passes a truth test. Aliased as `detect`.\n _.find = _.detect = function(obj, predicate, context) {\n var key;\n if (isArrayLike(obj)) {\n key = _.findIndex(obj, predicate, context);\n } else {\n key = _.findKey(obj, predicate, context);\n }\n if (key !== void 0 && key !== -1) return obj[key];\n };\n\n // Return all the elements that pass a truth test.\n // Aliased as `select`.\n _.filter = _.select = function(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n _.each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n };\n\n // Return all the elements for which a truth test fails.\n _.reject = function(obj, predicate, context) {\n return _.filter(obj, _.negate(cb(predicate)), context);\n };\n\n // Determine whether all of the elements match a truth test.\n // Aliased as `all`.\n _.every = _.all = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n };\n\n // Determine if at least one element in the object matches a truth test.\n // Aliased as `any`.\n _.some = _.any = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n };\n\n // Determine if the array or object contains a given item (using `===`).\n // Aliased as `includes` and `include`.\n _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return _.indexOf(obj, item, fromIndex) >= 0;\n };\n\n // Invoke a method (with arguments) on every item in a collection.\n _.invoke = function(obj, method) {\n var args = slice.call(arguments, 2);\n var isFunc = _.isFunction(method);\n return _.map(obj, function(value) {\n var func = isFunc ? method : value[method];\n return func == null ? func : func.apply(value, args);\n });\n };\n\n // Convenience version of a common use case of `map`: fetching a property.\n _.pluck = function(obj, key) {\n return _.map(obj, _.property(key));\n };\n\n // Convenience version of a common use case of `filter`: selecting only objects\n // containing specific `key:value` pairs.\n _.where = function(obj, attrs) {\n return _.filter(obj, _.matcher(attrs));\n };\n\n // Convenience version of a common use case of `find`: getting the first object\n // containing specific `key:value` pairs.\n _.findWhere = function(obj, attrs) {\n return _.find(obj, _.matcher(attrs));\n };\n\n // Return the maximum element (or element-based computation).\n _.max = function(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index, list) {\n computed = iteratee(value, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = value;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Return the minimum element (or element-based computation).\n _.min = function(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index, list) {\n computed = iteratee(value, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = value;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Shuffle a collection, using the modern version of the\n // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n _.shuffle = function(obj) {\n var set = isArrayLike(obj) ? obj : _.values(obj);\n var length = set.length;\n var shuffled = Array(length);\n for (var index = 0, rand; index < length; index++) {\n rand = _.random(0, index);\n if (rand !== index) shuffled[index] = shuffled[rand];\n shuffled[rand] = set[index];\n }\n return shuffled;\n };\n\n // Sample **n** random values from a collection.\n // If **n** is not specified, returns a single random element.\n // The internal `guard` argument allows it to work with `map`.\n _.sample = function(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n return obj[_.random(obj.length - 1)];\n }\n return _.shuffle(obj).slice(0, Math.max(0, n));\n };\n\n // Sort the object's values by a criterion produced by an iteratee.\n _.sortBy = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n return _.pluck(_.map(obj, function(value, index, list) {\n return {\n value: value,\n index: index,\n criteria: iteratee(value, index, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n };\n\n // An internal function used for aggregate \"group by\" operations.\n var group = function(behavior) {\n return function(obj, iteratee, context) {\n var result = {};\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n };\n\n // Groups the object's values by a criterion. Pass either a string attribute\n // to group by, or a function that returns the criterion.\n _.groupBy = group(function(result, value, key) {\n if (_.has(result, key)) result[key].push(value); else result[key] = [value];\n });\n\n // Indexes the object's values by a criterion, similar to `groupBy`, but for\n // when you know that your index values will be unique.\n _.indexBy = group(function(result, value, key) {\n result[key] = value;\n });\n\n // Counts instances of an object that group by a certain criterion. Pass\n // either a string attribute to count by, or a function that returns the\n // criterion.\n _.countBy = group(function(result, value, key) {\n if (_.has(result, key)) result[key]++; else result[key] = 1;\n });\n\n // Safely create a real, live array from anything iterable.\n _.toArray = function(obj) {\n if (!obj) return [];\n if (_.isArray(obj)) return slice.call(obj);\n if (isArrayLike(obj)) return _.map(obj, _.identity);\n return _.values(obj);\n };\n\n // Return the number of elements in an object.\n _.size = function(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : _.keys(obj).length;\n };\n\n // Split a collection into two arrays: one whose elements all satisfy the given\n // predicate, and one whose elements all do not satisfy the predicate.\n _.partition = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var pass = [], fail = [];\n _.each(obj, function(value, key, obj) {\n (predicate(value, key, obj) ? pass : fail).push(value);\n });\n return [pass, fail];\n };\n\n // Array Functions\n // ---------------\n\n // Get the first element of an array. Passing **n** will return the first N\n // values in the array. Aliased as `head` and `take`. The **guard** check\n // allows it to work with `_.map`.\n _.first = _.head = _.take = function(array, n, guard) {\n if (array == null) return void 0;\n if (n == null || guard) return array[0];\n return _.initial(array, array.length - n);\n };\n\n // Returns everything but the last entry of the array. Especially useful on\n // the arguments object. Passing **n** will return all the values in\n // the array, excluding the last N.\n _.initial = function(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n };\n\n // Get the last element of an array. Passing **n** will return the last N\n // values in the array.\n _.last = function(array, n, guard) {\n if (array == null) return void 0;\n if (n == null || guard) return array[array.length - 1];\n return _.rest(array, Math.max(0, array.length - n));\n };\n\n // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.\n // Especially useful on the arguments object. Passing an **n** will return\n // the rest N values in the array.\n _.rest = _.tail = _.drop = function(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n };\n\n // Trim out all falsy values from an array.\n _.compact = function(array) {\n return _.filter(array, _.identity);\n };\n\n // Internal implementation of a recursive `flatten` function.\n var flatten = function(input, shallow, strict, startIndex) {\n var output = [], idx = 0;\n for (var i = startIndex || 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) {\n //flatten current level of array or arguments object\n if (!shallow) value = flatten(value, shallow, strict);\n var j = 0, len = value.length;\n output.length += len;\n while (j < len) {\n output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n };\n\n // Flatten out an array, either recursively (by default), or just one level.\n _.flatten = function(array, shallow) {\n return flatten(array, shallow, false);\n };\n\n // Return a version of the array that does not contain the specified value(s).\n _.without = function(array) {\n return _.difference(array, slice.call(arguments, 1));\n };\n\n // Produce a duplicate-free version of the array. If the array has already\n // been sorted, you have the option of using a faster algorithm.\n // Aliased as `unique`.\n _.uniq = _.unique = function(array, isSorted, iteratee, context) {\n if (!_.isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!_.contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!_.contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n };\n\n // Produce an array that contains the union: each distinct element from all of\n // the passed-in arrays.\n _.union = function() {\n return _.uniq(flatten(arguments, true, true));\n };\n\n // Produce an array that contains every item shared between all the\n // passed-in arrays.\n _.intersection = function(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (_.contains(result, item)) continue;\n for (var j = 1; j < argsLength; j++) {\n if (!_.contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n };\n\n // Take the difference between one array and a number of other arrays.\n // Only the elements present in just the first array will remain.\n _.difference = function(array) {\n var rest = flatten(arguments, true, true, 1);\n return _.filter(array, function(value){\n return !_.contains(rest, value);\n });\n };\n\n // Zip together multiple lists into a single array -- elements that share\n // an index go together.\n _.zip = function() {\n return _.unzip(arguments);\n };\n\n // Complement of _.zip. Unzip accepts an array of arrays and groups\n // each array's elements on shared indices\n _.unzip = function(array) {\n var length = array && _.max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = _.pluck(array, index);\n }\n return result;\n };\n\n // Converts lists into objects. Pass either a single array of `[key, value]`\n // pairs, or two parallel arrays of the same length -- one of keys, and one of\n // the corresponding values.\n _.object = function(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n };\n\n // Generator function to create the findIndex and findLastIndex functions\n function createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n }\n\n // Returns the first index on an array-like that passes a predicate test\n _.findIndex = createPredicateIndexFinder(1);\n _.findLastIndex = createPredicateIndexFinder(-1);\n\n // Use a comparator function to figure out the smallest index at which\n // an object should be inserted so as to maintain order. Uses binary search.\n _.sortedIndex = function(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n };\n\n // Generator function to create the indexOf and lastIndexOf functions\n function createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), _.isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n }\n\n // Return the position of the first occurrence of an item in an array,\n // or -1 if the item is not included in the array.\n // If the array is large and already in sort order, pass `true`\n // for **isSorted** to use binary search.\n _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex);\n _.lastIndexOf = createIndexFinder(-1, _.findLastIndex);\n\n // Generate an integer Array containing an arithmetic progression. A port of\n // the native Python `range()` function. See\n // [the Python documentation](http://docs.python.org/library/functions.html#range).\n _.range = function(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n step = step || 1;\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n };\n\n // Function (ahem) Functions\n // ------------------\n\n // Determines whether to execute a function as a constructor\n // or a normal function with the provided arguments\n var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (_.isObject(result)) return result;\n return self;\n };\n\n // Create a function bound to a given object (assigning `this`, and arguments,\n // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if\n // available.\n _.bind = function(func, context) {\n if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));\n if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function');\n var args = slice.call(arguments, 2);\n var bound = function() {\n return executeBound(func, bound, context, this, args.concat(slice.call(arguments)));\n };\n return bound;\n };\n\n // Partially apply a function by creating a version that has had some of its\n // arguments pre-filled, without changing its dynamic `this` context. _ acts\n // as a placeholder, allowing any combination of arguments to be pre-filled.\n _.partial = function(func) {\n var boundArgs = slice.call(arguments, 1);\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === _ ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n };\n\n // Bind a number of an object's methods to that object. Remaining arguments\n // are the method names to be bound. Useful for ensuring that all callbacks\n // defined on an object belong to it.\n _.bindAll = function(obj) {\n var i, length = arguments.length, key;\n if (length <= 1) throw new Error('bindAll must be passed function names');\n for (i = 1; i < length; i++) {\n key = arguments[i];\n obj[key] = _.bind(obj[key], obj);\n }\n return obj;\n };\n\n // Memoize an expensive function by storing its results.\n _.memoize = function(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!_.has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n };\n\n // Delays a function for the given number of milliseconds, and then calls\n // it with the arguments supplied.\n _.delay = function(func, wait) {\n var args = slice.call(arguments, 2);\n return setTimeout(function(){\n return func.apply(null, args);\n }, wait);\n };\n\n // Defers a function, scheduling it to run after the current call stack has\n // cleared.\n _.defer = _.partial(_.delay, _, 1);\n\n // Returns a function, that, when invoked, will only be triggered at most once\n // during a given window of time. Normally, the throttled function will run\n // as much as it can, without ever going more than once per `wait` duration;\n // but if you'd like to disable the execution on the leading edge, pass\n // `{leading: false}`. To disable execution on the trailing edge, ditto.\n _.throttle = function(func, wait, options) {\n var context, args, result;\n var timeout = null;\n var previous = 0;\n if (!options) options = {};\n var later = function() {\n previous = options.leading === false ? 0 : _.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n return function() {\n var now = _.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n };\n\n // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds. If `immediate` is passed, trigger the function on the\n // leading edge, instead of the trailing.\n _.debounce = function(func, wait, immediate) {\n var timeout, args, context, timestamp, result;\n\n var later = function() {\n var last = _.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n }\n }\n };\n\n return function() {\n context = this;\n args = arguments;\n timestamp = _.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n };\n\n // Returns the first function passed as an argument to the second,\n // allowing you to adjust arguments, run code before and after, and\n // conditionally execute the original function.\n _.wrap = function(func, wrapper) {\n return _.partial(wrapper, func);\n };\n\n // Returns a negated version of the passed-in predicate.\n _.negate = function(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n };\n\n // Returns a function that is the composition of a list of functions, each\n // consuming the return value of the function that follows.\n _.compose = function() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n };\n\n // Returns a function that will only be executed on and after the Nth call.\n _.after = function(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n };\n\n // Returns a function that will only be executed up to (but not including) the Nth call.\n _.before = function(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n };\n\n // Returns a function that will be executed at most one time, no matter how\n // often you call it. Useful for lazy initialization.\n _.once = _.partial(_.before, 2);\n\n // Object Functions\n // ----------------\n\n // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\n var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\n var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n function collectNonEnumProps(obj, keys) {\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = (_.isFunction(constructor) && constructor.prototype) || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (_.has(obj, prop) && !_.contains(keys, prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) {\n keys.push(prop);\n }\n }\n }\n\n // Retrieve the names of an object's own properties.\n // Delegates to **ECMAScript 5**'s native `Object.keys`\n _.keys = function(obj) {\n if (!_.isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (_.has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve all the property names of an object.\n _.allKeys = function(obj) {\n if (!_.isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve the values of an object's properties.\n _.values = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[keys[i]];\n }\n return values;\n };\n\n // Returns the results of applying the iteratee to each element of the object\n // In contrast to _.map it returns an object\n _.mapObject = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = _.keys(obj),\n length = keys.length,\n results = {},\n currentKey;\n for (var index = 0; index < length; index++) {\n currentKey = keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Convert an object into a list of `[key, value]` pairs.\n _.pairs = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [keys[i], obj[keys[i]]];\n }\n return pairs;\n };\n\n // Invert the keys and values of an object. The values must be serializable.\n _.invert = function(obj) {\n var result = {};\n var keys = _.keys(obj);\n for (var i = 0, length = keys.length; i < length; i++) {\n result[obj[keys[i]]] = keys[i];\n }\n return result;\n };\n\n // Return a sorted list of the function names available on the object.\n // Aliased as `methods`\n _.functions = _.methods = function(obj) {\n var names = [];\n for (var key in obj) {\n if (_.isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n };\n\n // Extend a given object with all the properties in passed-in object(s).\n _.extend = createAssigner(_.allKeys);\n\n // Assigns a given object with all the own properties in the passed-in object(s)\n // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\n _.extendOwn = _.assign = createAssigner(_.keys);\n\n // Returns the first key on an object that passes a predicate test\n _.findKey = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = _.keys(obj), key;\n for (var i = 0, length = keys.length; i < length; i++) {\n key = keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n };\n\n // Return a copy of the object only containing the whitelisted properties.\n _.pick = function(object, oiteratee, context) {\n var result = {}, obj = object, iteratee, keys;\n if (obj == null) return result;\n if (_.isFunction(oiteratee)) {\n keys = _.allKeys(obj);\n iteratee = optimizeCb(oiteratee, context);\n } else {\n keys = flatten(arguments, false, false, 1);\n iteratee = function(value, key, obj) { return key in obj; };\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n };\n\n // Return a copy of the object without the blacklisted properties.\n _.omit = function(obj, iteratee, context) {\n if (_.isFunction(iteratee)) {\n iteratee = _.negate(iteratee);\n } else {\n var keys = _.map(flatten(arguments, false, false, 1), String);\n iteratee = function(value, key) {\n return !_.contains(keys, key);\n };\n }\n return _.pick(obj, iteratee, context);\n };\n\n // Fill in a given object with default properties.\n _.defaults = createAssigner(_.allKeys, true);\n\n // Creates an object that inherits from the given prototype object.\n // If additional properties are provided then they will be added to the\n // created object.\n _.create = function(prototype, props) {\n var result = baseCreate(prototype);\n if (props) _.extendOwn(result, props);\n return result;\n };\n\n // Create a (shallow-cloned) duplicate of an object.\n _.clone = function(obj) {\n if (!_.isObject(obj)) return obj;\n return _.isArray(obj) ? obj.slice() : _.extend({}, obj);\n };\n\n // Invokes interceptor with the obj, and then returns obj.\n // The primary purpose of this method is to \"tap into\" a method chain, in\n // order to perform operations on intermediate results within the chain.\n _.tap = function(obj, interceptor) {\n interceptor(obj);\n return obj;\n };\n\n // Returns whether an object has a given set of `key:value` pairs.\n _.isMatch = function(object, attrs) {\n var keys = _.keys(attrs), length = keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n };\n\n\n // Internal recursive comparison function for `isEqual`.\n var eq = function(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // A strict comparison is necessary because `null == undefined`.\n if (a == null || b == null) return a === b;\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor &&\n _.isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var keys = _.keys(a), key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (_.keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(_.has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n };\n\n // Perform a deep comparison to check if two objects are equal.\n _.isEqual = function(a, b) {\n return eq(a, b);\n };\n\n // Is a given array, string, or object empty?\n // An \"empty\" object has no enumerable own-properties.\n _.isEmpty = function(obj) {\n if (obj == null) return true;\n if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0;\n return _.keys(obj).length === 0;\n };\n\n // Is a given value a DOM element?\n _.isElement = function(obj) {\n return !!(obj && obj.nodeType === 1);\n };\n\n // Is a given value an array?\n // Delegates to ECMA5's native Array.isArray\n _.isArray = nativeIsArray || function(obj) {\n return toString.call(obj) === '[object Array]';\n };\n\n // Is a given variable an object?\n _.isObject = function(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n };\n\n // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError.\n _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) {\n _['is' + name] = function(obj) {\n return toString.call(obj) === '[object ' + name + ']';\n };\n });\n\n // Define a fallback version of the method in browsers (ahem, IE < 9), where\n // there isn't any inspectable \"Arguments\" type.\n if (!_.isArguments(arguments)) {\n _.isArguments = function(obj) {\n return _.has(obj, 'callee');\n };\n }\n\n // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,\n // IE 11 (#1621), and in Safari 8 (#1929).\n if (typeof /./ != 'function' && typeof Int8Array != 'object') {\n _.isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n }\n\n // Is a given object a finite number?\n _.isFinite = function(obj) {\n return isFinite(obj) && !isNaN(parseFloat(obj));\n };\n\n // Is the given value `NaN`? (NaN is the only number which does not equal itself).\n _.isNaN = function(obj) {\n return _.isNumber(obj) && obj !== +obj;\n };\n\n // Is a given value a boolean?\n _.isBoolean = function(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n };\n\n // Is a given value equal to null?\n _.isNull = function(obj) {\n return obj === null;\n };\n\n // Is a given variable undefined?\n _.isUndefined = function(obj) {\n return obj === void 0;\n };\n\n // Shortcut function for checking if an object has a given property directly\n // on itself (in other words, not on a prototype).\n _.has = function(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n };\n\n // Utility Functions\n // -----------------\n\n // Run Underscore.js in *noConflict* mode, returning the `_` variable to its\n // previous owner. Returns a reference to the Underscore object.\n _.noConflict = function() {\n root._ = previousUnderscore;\n return this;\n };\n\n // Keep the identity function around for default iteratees.\n _.identity = function(value) {\n return value;\n };\n\n // Predicate-generating functions. Often useful outside of Underscore.\n _.constant = function(value) {\n return function() {\n return value;\n };\n };\n\n _.noop = function(){};\n\n _.property = property;\n\n // Generates a function for a given object that returns a given property.\n _.propertyOf = function(obj) {\n return obj == null ? function(){} : function(key) {\n return obj[key];\n };\n };\n\n // Returns a predicate for checking whether an object has a given set of\n // `key:value` pairs.\n _.matcher = _.matches = function(attrs) {\n attrs = _.extendOwn({}, attrs);\n return function(obj) {\n return _.isMatch(obj, attrs);\n };\n };\n\n // Run a function **n** times.\n _.times = function(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n };\n\n // Return a random integer between min and max (inclusive).\n _.random = function(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n };\n\n // A (possibly faster) way to get the current timestamp as an integer.\n _.now = Date.now || function() {\n return new Date().getTime();\n };\n\n // List of HTML entities for escaping.\n var escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n };\n var unescapeMap = _.invert(escapeMap);\n\n // Functions for escaping and unescaping strings to/from HTML interpolation.\n var createEscaper = function(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped\n var source = '(?:' + _.keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n };\n _.escape = createEscaper(escapeMap);\n _.unescape = createEscaper(unescapeMap);\n\n // If the value of the named `property` is a function then invoke it with the\n // `object` as context; otherwise, return it.\n _.result = function(object, property, fallback) {\n var value = object == null ? void 0 : object[property];\n if (value === void 0) {\n value = fallback;\n }\n return _.isFunction(value) ? value.call(object) : value;\n };\n\n // Generate a unique integer id (unique within the entire client session).\n // Useful for temporary DOM ids.\n var idCounter = 0;\n _.uniqueId = function(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n };\n\n // By default, Underscore uses ERB-style template delimiters, change the\n // following template settings to use alternative delimiters.\n _.templateSettings = {\n evaluate : /<%([\\s\\S]+?)%>/g,\n interpolate : /<%=([\\s\\S]+?)%>/g,\n escape : /<%-([\\s\\S]+?)%>/g\n };\n\n // When customizing `templateSettings`, if you don't want to define an\n // interpolation, evaluation or escaping regex, we need one that is\n // guaranteed not to match.\n var noMatch = /(.)^/;\n\n // Certain characters need to be escaped so that they can be put into a\n // string literal.\n var escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n var escaper = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\n var escapeChar = function(match) {\n return '\\\\' + escapes[match];\n };\n\n // JavaScript micro-templating, similar to John Resig's implementation.\n // Underscore templating handles arbitrary delimiters, preserves whitespace,\n // and correctly escapes quotes within interpolated code.\n // NB: `oldSettings` only exists for backwards compatibility.\n _.template = function(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = _.defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escaper, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offest.\n return match;\n });\n source += \"';\\n\";\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n';\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n try {\n var render = new Function(settings.variable || 'obj', '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n var argument = settings.variable || 'obj';\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n };\n\n // Add a \"chain\" function. Start chaining a wrapped Underscore object.\n _.chain = function(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n };\n\n // OOP\n // ---------------\n // If Underscore is called as a function, it returns a wrapped object that\n // can be used OO-style. This wrapper holds altered versions of all the\n // underscore functions. Wrapped objects may be chained.\n\n // Helper function to continue chaining intermediate results.\n var result = function(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n };\n\n // Add your own custom functions to the Underscore object.\n _.mixin = function(obj) {\n _.each(_.functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return result(this, func.apply(_, args));\n };\n });\n };\n\n // Add all of the Underscore functions to the wrapper object.\n _.mixin(_);\n\n // Add all mutator Array functions to the wrapper.\n _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];\n return result(this, obj);\n };\n });\n\n // Add all accessor Array functions to the wrapper.\n _.each(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n return result(this, method.apply(this._wrapped, arguments));\n };\n });\n\n // Extracts the result from a wrapped and chained object.\n _.prototype.value = function() {\n return this._wrapped;\n };\n\n // Provide unwrapping proxy for some methods used in engine operations\n // such as arithmetic and JSON stringification.\n _.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n _.prototype.toString = function() {\n return '' + this._wrapped;\n };\n\n // AMD registration happens at the end for compatibility with AMD loaders\n // that may not enforce next-turn semantics on modules. Even though general\n // practice for AMD registration is to be anonymous, underscore registers\n // as a named module because, like jQuery, it is a base library that is\n // popular enough to be bundled in a third party lib, but not be part of\n // an AMD load request. Those cases could generate an error when an\n // anonymous define() is called outside of a loader request.\n if (typeof define === 'function' && define.amd) {\n define('underscore', [], function() {\n return _;\n });\n }\n}.call(this));\n","/**\n * Swiper 4.5.0\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * http://www.idangero.us/swiper/\n *\n * Copyright 2014-2019 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: February 22, 2019\n */\n\n(function (global, factory) {\n\ttypeof exports === \"object\" && typeof module !== \"undefined\"\n\t\t? (module.exports = factory())\n\t\t: typeof define === \"function\" && define.amd\n\t\t? define(factory)\n\t\t: ((global = global || self), (global.Swiper = factory()));\n})(this, function () {\n\t\"use strict\";\n\n\t/**\n\t * SSR Window 1.0.1\n\t * Better handling for window object in SSR environment\n\t * https://github.com/nolimits4web/ssr-window\n\t *\n\t * Copyright 2018, Vladimir Kharlampidi\n\t *\n\t * Licensed under MIT\n\t *\n\t * Released on: July 18, 2018\n\t */\n\tvar doc =\n\t\ttypeof document === \"undefined\"\n\t\t\t? {\n\t\t\t\t\tbody: {},\n\t\t\t\t\taddEventListener: function addEventListener() {},\n\t\t\t\t\tremoveEventListener: function removeEventListener() {},\n\t\t\t\t\tactiveElement: {\n\t\t\t\t\t\tblur: function blur() {},\n\t\t\t\t\t\tnodeName: \"\",\n\t\t\t\t\t},\n\t\t\t\t\tquerySelector: function querySelector() {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t},\n\t\t\t\t\tquerySelectorAll: function querySelectorAll() {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t},\n\t\t\t\t\tgetElementById: function getElementById() {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t},\n\t\t\t\t\tcreateEvent: function createEvent() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinitEvent: function initEvent() {},\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\tcreateElement: function createElement() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tchildren: [],\n\t\t\t\t\t\t\tchildNodes: [],\n\t\t\t\t\t\t\tstyle: {},\n\t\t\t\t\t\t\tsetAttribute: function setAttribute() {},\n\t\t\t\t\t\t\tgetElementsByTagName:\n\t\t\t\t\t\t\t\tfunction getElementsByTagName() {\n\t\t\t\t\t\t\t\t\treturn [];\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\tlocation: { hash: \"\" },\n\t\t\t }\n\t\t\t: document; // eslint-disable-line\n\n\tvar win =\n\t\ttypeof window === \"undefined\"\n\t\t\t? {\n\t\t\t\t\tdocument: doc,\n\t\t\t\t\tnavigator: {\n\t\t\t\t\t\tuserAgent: \"\",\n\t\t\t\t\t},\n\t\t\t\t\tlocation: {},\n\t\t\t\t\thistory: {},\n\t\t\t\t\tCustomEvent: function CustomEvent() {\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t},\n\t\t\t\t\taddEventListener: function addEventListener() {},\n\t\t\t\t\tremoveEventListener: function removeEventListener() {},\n\t\t\t\t\tgetComputedStyle: function getComputedStyle() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tgetPropertyValue: function getPropertyValue() {\n\t\t\t\t\t\t\t\treturn \"\";\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\tImage: function Image() {},\n\t\t\t\t\tDate: function Date() {},\n\t\t\t\t\tscreen: {},\n\t\t\t\t\tsetTimeout: function setTimeout() {},\n\t\t\t\t\tclearTimeout: function clearTimeout() {},\n\t\t\t }\n\t\t\t: window; // eslint-disable-line\n\n\t/**\n\t * Dom7 2.1.3\n\t * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n\t * http://framework7.io/docs/dom.html\n\t *\n\t * Copyright 2019, Vladimir Kharlampidi\n\t * The iDangero.us\n\t * http://www.idangero.us/\n\t *\n\t * Licensed under MIT\n\t *\n\t * Released on: February 11, 2019\n\t */\n\n\tvar Dom7 = function Dom7(arr) {\n\t\tvar self = this;\n\t\t// Create array-like object\n\t\tfor (var i = 0; i < arr.length; i += 1) {\n\t\t\tself[i] = arr[i];\n\t\t}\n\t\tself.length = arr.length;\n\t\t// Return collection with methods\n\t\treturn this;\n\t};\n\n\tfunction $(selector, context) {\n\t\tvar arr = [];\n\t\tvar i = 0;\n\t\tif (selector && !context) {\n\t\t\tif (selector instanceof Dom7) {\n\t\t\t\treturn selector;\n\t\t\t}\n\t\t}\n\t\tif (selector) {\n\t\t\t// String\n\t\t\tif (typeof selector === \"string\") {\n\t\t\t\tvar els;\n\t\t\t\tvar tempParent;\n\t\t\t\tvar html = selector.trim();\n\t\t\t\tif (html.indexOf(\"<\") >= 0 && html.indexOf(\">\") >= 0) {\n\t\t\t\t\tvar toCreate = \"div\";\n\t\t\t\t\tif (html.indexOf(\"<li\") === 0) {\n\t\t\t\t\t\ttoCreate = \"ul\";\n\t\t\t\t\t}\n\t\t\t\t\tif (html.indexOf(\"<tr\") === 0) {\n\t\t\t\t\t\ttoCreate = \"tbody\";\n\t\t\t\t\t}\n\t\t\t\t\tif (\n\t\t\t\t\t\thtml.indexOf(\"<td\") === 0 ||\n\t\t\t\t\t\thtml.indexOf(\"<th\") === 0\n\t\t\t\t\t) {\n\t\t\t\t\t\ttoCreate = \"tr\";\n\t\t\t\t\t}\n\t\t\t\t\tif (html.indexOf(\"<tbody\") === 0) {\n\t\t\t\t\t\ttoCreate = \"table\";\n\t\t\t\t\t}\n\t\t\t\t\tif (html.indexOf(\"<option\") === 0) {\n\t\t\t\t\t\ttoCreate = \"select\";\n\t\t\t\t\t}\n\t\t\t\t\ttempParent = doc.createElement(toCreate);\n\t\t\t\t\ttempParent.innerHTML = html;\n\t\t\t\t\tfor (i = 0; i < tempParent.childNodes.length; i += 1) {\n\t\t\t\t\t\tarr.push(tempParent.childNodes[i]);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (\n\t\t\t\t\t\t!context &&\n\t\t\t\t\t\tselector[0] === \"#\" &&\n\t\t\t\t\t\t!selector.match(/[ .<>:~]/)\n\t\t\t\t\t) {\n\t\t\t\t\t\t// Pure ID selector\n\t\t\t\t\t\tels = [\n\t\t\t\t\t\t\tdoc.getElementById(selector.trim().split(\"#\")[1]),\n\t\t\t\t\t\t];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Other selectors\n\t\t\t\t\t\tels = (context || doc).querySelectorAll(\n\t\t\t\t\t\t\tselector.trim()\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tfor (i = 0; i < els.length; i += 1) {\n\t\t\t\t\t\tif (els[i]) {\n\t\t\t\t\t\t\tarr.push(els[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tselector.nodeType ||\n\t\t\t\tselector === win ||\n\t\t\t\tselector === doc\n\t\t\t) {\n\t\t\t\t// Node/element\n\t\t\t\tarr.push(selector);\n\t\t\t} else if (selector.length > 0 && selector[0].nodeType) {\n\t\t\t\t// Array of elements or instance of Dom\n\t\t\t\tfor (i = 0; i < selector.length; i += 1) {\n\t\t\t\t\tarr.push(selector[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn new Dom7(arr);\n\t}\n\n\t$.fn = Dom7.prototype;\n\t$.Class = Dom7;\n\t$.Dom7 = Dom7;\n\n\tfunction unique(arr) {\n\t\tvar uniqueArray = [];\n\t\tfor (var i = 0; i < arr.length; i += 1) {\n\t\t\tif (uniqueArray.indexOf(arr[i]) === -1) {\n\t\t\t\tuniqueArray.push(arr[i]);\n\t\t\t}\n\t\t}\n\t\treturn uniqueArray;\n\t}\n\n\t// Classes and attributes\n\tfunction addClass(className) {\n\t\tif (typeof className === \"undefined\") {\n\t\t\treturn this;\n\t\t}\n\t\tvar classes = className.split(\" \");\n\t\tfor (var i = 0; i < classes.length; i += 1) {\n\t\t\tfor (var j = 0; j < this.length; j += 1) {\n\t\t\t\tif (\n\t\t\t\t\ttypeof this[j] !== \"undefined\" &&\n\t\t\t\t\ttypeof this[j].classList !== \"undefined\"\n\t\t\t\t) {\n\t\t\t\t\tthis[j].classList.add(classes[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\tfunction removeClass(className) {\n\t\tvar classes = className.split(\" \");\n\t\tfor (var i = 0; i < classes.length; i += 1) {\n\t\t\tfor (var j = 0; j < this.length; j += 1) {\n\t\t\t\tif (\n\t\t\t\t\ttypeof this[j] !== \"undefined\" &&\n\t\t\t\t\ttypeof this[j].classList !== \"undefined\"\n\t\t\t\t) {\n\t\t\t\t\tthis[j].classList.remove(classes[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\tfunction hasClass(className) {\n\t\tif (!this[0]) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this[0].classList.contains(className);\n\t}\n\tfunction toggleClass(className) {\n\t\tvar classes = className.split(\" \");\n\t\tfor (var i = 0; i < classes.length; i += 1) {\n\t\t\tfor (var j = 0; j < this.length; j += 1) {\n\t\t\t\tif (\n\t\t\t\t\ttypeof this[j] !== \"undefined\" &&\n\t\t\t\t\ttypeof this[j].classList !== \"undefined\"\n\t\t\t\t) {\n\t\t\t\t\tthis[j].classList.toggle(classes[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\tfunction attr(attrs, value) {\n\t\tvar arguments$1 = arguments;\n\n\t\tif (arguments.length === 1 && typeof attrs === \"string\") {\n\t\t\t// Get attr\n\t\t\tif (this[0]) {\n\t\t\t\treturn this[0].getAttribute(attrs);\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Set attrs\n\t\tfor (var i = 0; i < this.length; i += 1) {\n\t\t\tif (arguments$1.length === 2) {\n\t\t\t\t// String\n\t\t\t\tthis[i].setAttribute(attrs, value);\n\t\t\t} else {\n\t\t\t\t// Object\n\t\t\t\t// eslint-disable-next-line\n\t\t\t\tfor (var attrName in attrs) {\n\t\t\t\t\tthis[i][attrName] = attrs[attrName];\n\t\t\t\t\tthis[i].setAttribute(attrName, attrs[attrName]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\t// eslint-disable-next-line\n\tfunction removeAttr(attr) {\n\t\tfor (var i = 0; i < this.length; i += 1) {\n\t\t\tthis[i].removeAttribute(attr);\n\t\t}\n\t\treturn this;\n\t}\n\tfunction data(key, value) {\n\t\tvar el;\n\t\tif (typeof value === \"undefined\") {\n\t\t\tel = this[0];\n\t\t\t// Get value\n\t\t\tif (el) {\n\t\t\t\tif (\n\t\t\t\t\tel.dom7ElementDataStorage &&\n\t\t\t\t\tkey in el.dom7ElementDataStorage\n\t\t\t\t) {\n\t\t\t\t\treturn el.dom7ElementDataStorage[key];\n\t\t\t\t}\n\n\t\t\t\tvar dataKey = el.getAttribute(\"data-\" + key);\n\t\t\t\tif (dataKey) {\n\t\t\t\t\treturn dataKey;\n\t\t\t\t}\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Set value\n\t\tfor (var i = 0; i < this.length; i += 1) {\n\t\t\tel = this[i];\n\t\t\tif (!el.dom7ElementDataStorage) {\n\t\t\t\tel.dom7ElementDataStorage = {};\n\t\t\t}\n\t\t\tel.dom7ElementDataStorage[key] = value;\n\t\t}\n\t\treturn this;\n\t}\n\t// Transforms\n\t// eslint-disable-next-line\n\tfunction transform(transform) {\n\t\tfor (var i = 0; i < this.length; i += 1) {\n\t\t\tvar elStyle = this[i].style;\n\t\t\telStyle.webkitTransform = transform;\n\t\t\telStyle.transform = transform;\n\t\t}\n\t\treturn this;\n\t}\n\tfunction transition(duration) {\n\t\tif (typeof duration !== \"string\") {\n\t\t\tduration = duration + \"ms\"; // eslint-disable-line\n\t\t}\n\t\tfor (var i = 0; i < this.length; i += 1) {\n\t\t\tvar elStyle = this[i].style;\n\t\t\telStyle.webkitTransitionDuration = duration;\n\t\t\telStyle.transitionDuration = duration;\n\t\t}\n\t\treturn this;\n\t}\n\t// Events\n\tfunction on() {\n\t\tvar assign;\n\n\t\tvar args = [],\n\t\t\tlen = arguments.length;\n\t\twhile (len--) args[len] = arguments[len];\n\t\tvar eventType = args[0];\n\t\tvar targetSelector = args[1];\n\t\tvar listener = args[2];\n\t\tvar capture = args[3];\n\t\tif (typeof args[1] === \"function\") {\n\t\t\t(assign = args),\n\t\t\t\t(eventType = assign[0]),\n\t\t\t\t(listener = assign[1]),\n\t\t\t\t(capture = assign[2]);\n\t\t\ttargetSelector = undefined;\n\t\t}\n\t\tif (!capture) {\n\t\t\tcapture = false;\n\t\t}\n\n\t\tfunction handleLiveEvent(e) {\n\t\t\tvar target = e.target;\n\t\t\tif (!target) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar eventData = e.target.dom7EventData || [];\n\t\t\tif (eventData.indexOf(e) < 0) {\n\t\t\t\teventData.unshift(e);\n\t\t\t}\n\t\t\tif ($(target).is(targetSelector)) {\n\t\t\t\tlistener.apply(target, eventData);\n\t\t\t} else {\n\t\t\t\tvar parents = $(target).parents(); // eslint-disable-line\n\t\t\t\tfor (var k = 0; k < parents.length; k += 1) {\n\t\t\t\t\tif ($(parents[k]).is(targetSelector)) {\n\t\t\t\t\t\tlistener.apply(parents[k], eventData);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfunction handleEvent(e) {\n\t\t\tvar eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\t\t\tif (eventData.indexOf(e) < 0) {\n\t\t\t\teventData.unshift(e);\n\t\t\t}\n\t\t\tlistener.apply(this, eventData);\n\t\t}\n\t\tvar events = eventType.split(\" \");\n\t\tvar j;\n\t\tfor (var i = 0; i < this.length; i += 1) {\n\t\t\tvar el = this[i];\n\t\t\tif (!targetSelector) {\n\t\t\t\tfor (j = 0; j < events.length; j += 1) {\n\t\t\t\t\tvar event = events[j];\n\t\t\t\t\tif (!el.dom7Listeners) {\n\t\t\t\t\t\tel.dom7Listeners = {};\n\t\t\t\t\t}\n\t\t\t\t\tif (!el.dom7Listeners[event]) {\n\t\t\t\t\t\tel.dom7Listeners[event] = [];\n\t\t\t\t\t}\n\t\t\t\t\tel.dom7Listeners[event].push({\n\t\t\t\t\t\tlistener: listener,\n\t\t\t\t\t\tproxyListener: handleEvent,\n\t\t\t\t\t});\n\t\t\t\t\tel.addEventListener(event, handleEvent, capture);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Live events\n\t\t\t\tfor (j = 0; j < events.length; j += 1) {\n\t\t\t\t\tvar event$1 = events[j];\n\t\t\t\t\tif (!el.dom7LiveListeners) {\n\t\t\t\t\t\tel.dom7LiveListeners = {};\n\t\t\t\t\t}\n\t\t\t\t\tif (!el.dom7LiveListeners[event$1]) {\n\t\t\t\t\t\tel.dom7LiveListeners[event$1] = [];\n\t\t\t\t\t}\n\t\t\t\t\tel.dom7LiveListeners[event$1].push({\n\t\t\t\t\t\tlistener: listener,\n\t\t\t\t\t\tproxyListener: handleLiveEvent,\n\t\t\t\t\t});\n\t\t\t\t\tel.addEventListener(event$1, handleLiveEvent, capture);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\tfunction off() {\n\t\tvar assign;\n\n\t\tvar args = [],\n\t\t\tlen = arguments.length;\n\t\twhile (len--) args[len] = arguments[len];\n\t\tvar eventType = args[0];\n\t\tvar targetSelector = args[1];\n\t\tvar listener = args[2];\n\t\tvar capture = args[3];\n\t\tif (typeof args[1] === \"function\") {\n\t\t\t(assign = args),\n\t\t\t\t(eventType = assign[0]),\n\t\t\t\t(listener = assign[1]),\n\t\t\t\t(capture = assign[2]);\n\t\t\ttargetSelector = undefined;\n\t\t}\n\t\tif (!capture) {\n\t\t\tcapture = false;\n\t\t}\n\n\t\tvar events = eventType.split(\" \");\n\t\tfor (var i = 0; i < events.length; i += 1) {\n\t\t\tvar event = events[i];\n\t\t\tfor (var j = 0; j < this.length; j += 1) {\n\t\t\t\tvar el = this[j];\n\t\t\t\tvar handlers = void 0;\n\t\t\t\tif (!targetSelector && el.dom7Listeners) {\n\t\t\t\t\thandlers = el.dom7Listeners[event];\n\t\t\t\t} else if (targetSelector && el.dom7LiveListeners) {\n\t\t\t\t\thandlers = el.dom7LiveListeners[event];\n\t\t\t\t}\n\t\t\t\tif (handlers && handlers.length) {\n\t\t\t\t\tfor (var k = handlers.length - 1; k >= 0; k -= 1) {\n\t\t\t\t\t\tvar handler = handlers[k];\n\t\t\t\t\t\tif (listener && handler.listener === listener) {\n\t\t\t\t\t\t\tel.removeEventListener(\n\t\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\t\thandler.proxyListener,\n\t\t\t\t\t\t\t\tcapture\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\thandlers.splice(k, 1);\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\tlistener &&\n\t\t\t\t\t\t\thandler.listener &&\n\t\t\t\t\t\t\thandler.listener.dom7proxy &&\n\t\t\t\t\t\t\thandler.listener.dom7proxy === listener\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tel.removeEventListener(\n\t\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\t\thandler.proxyListener,\n\t\t\t\t\t\t\t\tcapture\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\thandlers.splice(k, 1);\n\t\t\t\t\t\t} else if (!listener) {\n\t\t\t\t\t\t\tel.removeEventListener(\n\t\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\t\thandler.proxyListener,\n\t\t\t\t\t\t\t\tcapture\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\thandlers.splice(k, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\tfunction trigger() {\n\t\tvar args = [],\n\t\t\tlen = arguments.length;\n\t\twhile (len--) args[len] = arguments[len];\n\n\t\tvar events = args[0].split(\" \");\n\t\tvar eventData = args[1];\n\t\tfor (var i = 0; i < events.length; i += 1) {\n\t\t\tvar event = events[i];\n\t\t\tfor (var j = 0; j < this.length; j += 1) {\n\t\t\t\tvar el = this[j];\n\t\t\t\tvar evt = void 0;\n\t\t\t\ttry {\n\t\t\t\t\tevt = new win.CustomEvent(event, {\n\t\t\t\t\t\tdetail: eventData,\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcancelable: true,\n\t\t\t\t\t});\n\t\t\t\t} catch (e) {\n\t\t\t\t\tevt = doc.createEvent(\"Event\");\n\t\t\t\t\tevt.initEvent(event, true, true);\n\t\t\t\t\tevt.detail = eventData;\n\t\t\t\t}\n\t\t\t\t// eslint-disable-next-line\n\t\t\t\tel.dom7EventData = args.filter(function (data, dataIndex) {\n\t\t\t\t\treturn dataIndex > 0;\n\t\t\t\t});\n\t\t\t\tel.dispatchEvent(evt);\n\t\t\t\tel.dom7EventData = [];\n\t\t\t\tdelete el.dom7EventData;\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\tfunction transitionEnd(callback) {\n\t\tvar events = [\"webkitTransitionEnd\", \"transitionend\"];\n\t\tvar dom = this;\n\t\tvar i;\n\t\tfunction fireCallBack(e) {\n\t\t\t/* jshint validthis:true */\n\t\t\tif (e.target !== this) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcallback.call(this, e);\n\t\t\tfor (i = 0; i < events.length; i += 1) {\n\t\t\t\tdom.off(events[i], fireCallBack);\n\t\t\t}\n\t\t}\n\t\tif (callback) {\n\t\t\tfor (i = 0; i < events.length; i += 1) {\n\t\t\t\tdom.on(events[i], fireCallBack);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\tfunction outerWidth(includeMargins) {\n\t\tif (this.length > 0) {\n\t\t\tif (includeMargins) {\n\t\t\t\t// eslint-disable-next-line\n\t\t\t\tvar styles = this.styles();\n\t\t\t\treturn (\n\t\t\t\t\tthis[0].offsetWidth +\n\t\t\t\t\tparseFloat(styles.getPropertyValue(\"margin-right\")) +\n\t\t\t\t\tparseFloat(styles.getPropertyValue(\"margin-left\"))\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn this[0].offsetWidth;\n\t\t}\n\t\treturn null;\n\t}\n\tfunction outerHeight(includeMargins) {\n\t\tif (this.length > 0) {\n\t\t\tif (includeMargins) {\n\t\t\t\t// eslint-disable-next-line\n\t\t\t\tvar styles = this.styles();\n\t\t\t\treturn (\n\t\t\t\t\tthis[0].offsetHeight +\n\t\t\t\t\tparseFloat(styles.getPropertyValue(\"margin-top\")) +\n\t\t\t\t\tparseFloat(styles.getPropertyValue(\"margin-bottom\"))\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn this[0].offsetHeight;\n\t\t}\n\t\treturn null;\n\t}\n\tfunction offset() {\n\t\tif (this.length > 0) {\n\t\t\tvar el = this[0];\n\t\t\tvar box = el.getBoundingClientRect();\n\t\t\tvar body = doc.body;\n\t\t\tvar clientTop = el.clientTop || body.clientTop || 0;\n\t\t\tvar clientLeft = el.clientLeft || body.clientLeft || 0;\n\t\t\tvar scrollTop = el === win ? win.scrollY : el.scrollTop;\n\t\t\tvar scrollLeft = el === win ? win.scrollX : el.scrollLeft;\n\t\t\treturn {\n\t\t\t\ttop: box.top + scrollTop - clientTop,\n\t\t\t\tleft: box.left + scrollLeft - clientLeft,\n\t\t\t};\n\t\t}\n\n\t\treturn null;\n\t}\n\tfunction styles() {\n\t\tif (this[0]) {\n\t\t\treturn win.getComputedStyle(this[0], null);\n\t\t}\n\t\treturn {};\n\t}\n\tfunction css(props, value) {\n\t\tvar i;\n\t\tif (arguments.length === 1) {\n\t\t\tif (typeof props === \"string\") {\n\t\t\t\tif (this[0]) {\n\t\t\t\t\treturn win\n\t\t\t\t\t\t.getComputedStyle(this[0], null)\n\t\t\t\t\t\t.getPropertyValue(props);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (i = 0; i < this.length; i += 1) {\n\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\tfor (var prop in props) {\n\t\t\t\t\t\tthis[i].style[prop] = props[prop];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tif (arguments.length === 2 && typeof props === \"string\") {\n\t\t\tfor (i = 0; i < this.length; i += 1) {\n\t\t\t\tthis[i].style[props] = value;\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\treturn this;\n\t}\n\t// Iterate over the collection passing elements to `callback`\n\tfunction each(callback) {\n\t\t// Don't bother continuing without a callback\n\t\tif (!callback) {\n\t\t\treturn this;\n\t\t}\n\t\t// Iterate over the current collection\n\t\tfor (var i = 0; i < this.length; i += 1) {\n\t\t\t// If the callback returns false\n\t\t\tif (callback.call(this[i], i, this[i]) === false) {\n\t\t\t\t// End the loop early\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\t// Return `this` to allow chained DOM operations\n\t\treturn this;\n\t}\n\t// eslint-disable-next-line\n\tfunction html(html) {\n\t\tif (typeof html === \"undefined\") {\n\t\t\treturn this[0] ? this[0].innerHTML : undefined;\n\t\t}\n\n\t\tfor (var i = 0; i < this.length; i += 1) {\n\t\t\tthis[i].innerHTML = html;\n\t\t}\n\t\treturn this;\n\t}\n\t// eslint-disable-next-line\n\tfunction text(text) {\n\t\tif (typeof text === \"undefined\") {\n\t\t\tif (this[0]) {\n\t\t\t\treturn this[0].textContent.trim();\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\tfor (var i = 0; i < this.length; i += 1) {\n\t\t\tthis[i].textContent = text;\n\t\t}\n\t\treturn this;\n\t}\n\tfunction is(selector) {\n\t\tvar el = this[0];\n\t\tvar compareWith;\n\t\tvar i;\n\t\tif (!el || typeof selector === \"undefined\") {\n\t\t\treturn false;\n\t\t}\n\t\tif (typeof selector === \"string\") {\n\t\t\tif (el.matches) {\n\t\t\t\treturn el.matches(selector);\n\t\t\t} else if (el.webkitMatchesSelector) {\n\t\t\t\treturn el.webkitMatchesSelector(selector);\n\t\t\t} else if (el.msMatchesSelector) {\n\t\t\t\treturn el.msMatchesSelector(selector);\n\t\t\t}\n\n\t\t\tcompareWith = $(selector);\n\t\t\tfor (i = 0; i < compareWith.length; i += 1) {\n\t\t\t\tif (compareWith[i] === el) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} else if (selector === doc) {\n\t\t\treturn el === doc;\n\t\t} else if (selector === win) {\n\t\t\treturn el === win;\n\t\t}\n\n\t\tif (selector.nodeType || selector instanceof Dom7) {\n\t\t\tcompareWith = selector.nodeType ? [selector] : selector;\n\t\t\tfor (i = 0; i < compareWith.length; i += 1) {\n\t\t\t\tif (compareWith[i] === el) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t\treturn false;\n\t}\n\tfunction index() {\n\t\tvar child = this[0];\n\t\tvar i;\n\t\tif (child) {\n\t\t\ti = 0;\n\t\t\t// eslint-disable-next-line\n\t\t\twhile ((child = child.previousSibling) !== null) {\n\t\t\t\tif (child.nodeType === 1) {\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn i;\n\t\t}\n\t\treturn undefined;\n\t}\n\t// eslint-disable-next-line\n\tfunction eq(index) {\n\t\tif (typeof index === \"undefined\") {\n\t\t\treturn this;\n\t\t}\n\t\tvar length = this.length;\n\t\tvar returnIndex;\n\t\tif (index > length - 1) {\n\t\t\treturn new Dom7([]);\n\t\t}\n\t\tif (index < 0) {\n\t\t\treturnIndex = length + index;\n\t\t\tif (returnIndex < 0) {\n\t\t\t\treturn new Dom7([]);\n\t\t\t}\n\t\t\treturn new Dom7([this[returnIndex]]);\n\t\t}\n\t\treturn new Dom7([this[index]]);\n\t}\n\tfunction append() {\n\t\tvar args = [],\n\t\t\tlen = arguments.length;\n\t\twhile (len--) args[len] = arguments[len];\n\n\t\tvar newChild;\n\n\t\tfor (var k = 0; k < args.length; k += 1) {\n\t\t\tnewChild = args[k];\n\t\t\tfor (var i = 0; i < this.length; i += 1) {\n\t\t\t\tif (typeof newChild === \"string\") {\n\t\t\t\t\tvar tempDiv = doc.createElement(\"div\");\n\t\t\t\t\ttempDiv.innerHTML = newChild;\n\t\t\t\t\twhile (tempDiv.firstChild) {\n\t\t\t\t\t\tthis[i].appendChild(tempDiv.firstChild);\n\t\t\t\t\t}\n\t\t\t\t} else if (newChild instanceof Dom7) {\n\t\t\t\t\tfor (var j = 0; j < newChild.length; j += 1) {\n\t\t\t\t\t\tthis[i].appendChild(newChild[j]);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis[i].appendChild(newChild);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\tfunction prepend(newChild) {\n\t\tvar i;\n\t\tvar j;\n\t\tfor (i = 0; i < this.length; i += 1) {\n\t\t\tif (typeof newChild === \"string\") {\n\t\t\t\tvar tempDiv = doc.createElement(\"div\");\n\t\t\t\ttempDiv.innerHTML = newChild;\n\t\t\t\tfor (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n\t\t\t\t\tthis[i].insertBefore(\n\t\t\t\t\t\ttempDiv.childNodes[j],\n\t\t\t\t\t\tthis[i].childNodes[0]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else if (newChild instanceof Dom7) {\n\t\t\t\tfor (j = 0; j < newChild.length; j += 1) {\n\t\t\t\t\tthis[i].insertBefore(newChild[j], this[i].childNodes[0]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis[i].insertBefore(newChild, this[i].childNodes[0]);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\tfunction next(selector) {\n\t\tif (this.length > 0) {\n\t\t\tif (selector) {\n\t\t\t\tif (\n\t\t\t\t\tthis[0].nextElementSibling &&\n\t\t\t\t\t$(this[0].nextElementSibling).is(selector)\n\t\t\t\t) {\n\t\t\t\t\treturn new Dom7([this[0].nextElementSibling]);\n\t\t\t\t}\n\t\t\t\treturn new Dom7([]);\n\t\t\t}\n\n\t\t\tif (this[0].nextElementSibling) {\n\t\t\t\treturn new Dom7([this[0].nextElementSibling]);\n\t\t\t}\n\t\t\treturn new Dom7([]);\n\t\t}\n\t\treturn new Dom7([]);\n\t}\n\tfunction nextAll(selector) {\n\t\tvar nextEls = [];\n\t\tvar el = this[0];\n\t\tif (!el) {\n\t\t\treturn new Dom7([]);\n\t\t}\n\t\twhile (el.nextElementSibling) {\n\t\t\tvar next = el.nextElementSibling; // eslint-disable-line\n\t\t\tif (selector) {\n\t\t\t\tif ($(next).is(selector)) {\n\t\t\t\t\tnextEls.push(next);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnextEls.push(next);\n\t\t\t}\n\t\t\tel = next;\n\t\t}\n\t\treturn new Dom7(nextEls);\n\t}\n\tfunction prev(selector) {\n\t\tif (this.length > 0) {\n\t\t\tvar el = this[0];\n\t\t\tif (selector) {\n\t\t\t\tif (\n\t\t\t\t\tel.previousElementSibling &&\n\t\t\t\t\t$(el.previousElementSibling).is(selector)\n\t\t\t\t) {\n\t\t\t\t\treturn new Dom7([el.previousElementSibling]);\n\t\t\t\t}\n\t\t\t\treturn new Dom7([]);\n\t\t\t}\n\n\t\t\tif (el.previousElementSibling) {\n\t\t\t\treturn new Dom7([el.previousElementSibling]);\n\t\t\t}\n\t\t\treturn new Dom7([]);\n\t\t}\n\t\treturn new Dom7([]);\n\t}\n\tfunction prevAll(selector) {\n\t\tvar prevEls = [];\n\t\tvar el = this[0];\n\t\tif (!el) {\n\t\t\treturn new Dom7([]);\n\t\t}\n\t\twhile (el.previousElementSibling) {\n\t\t\tvar prev = el.previousElementSibling; // eslint-disable-line\n\t\t\tif (selector) {\n\t\t\t\tif ($(prev).is(selector)) {\n\t\t\t\t\tprevEls.push(prev);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tprevEls.push(prev);\n\t\t\t}\n\t\t\tel = prev;\n\t\t}\n\t\treturn new Dom7(prevEls);\n\t}\n\tfunction parent(selector) {\n\t\tvar parents = []; // eslint-disable-line\n\t\tfor (var i = 0; i < this.length; i += 1) {\n\t\t\tif (this[i].parentNode !== null) {\n\t\t\t\tif (selector) {\n\t\t\t\t\tif ($(this[i].parentNode).is(selector)) {\n\t\t\t\t\t\tparents.push(this[i].parentNode);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tparents.push(this[i].parentNode);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn $(unique(parents));\n\t}\n\tfunction parents(selector) {\n\t\tvar parents = []; // eslint-disable-line\n\t\tfor (var i = 0; i < this.length; i += 1) {\n\t\t\tvar parent = this[i].parentNode; // eslint-disable-line\n\t\t\twhile (parent) {\n\t\t\t\tif (selector) {\n\t\t\t\t\tif ($(parent).is(selector)) {\n\t\t\t\t\t\tparents.push(parent);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tparents.push(parent);\n\t\t\t\t}\n\t\t\t\tparent = parent.parentNode;\n\t\t\t}\n\t\t}\n\t\treturn $(unique(parents));\n\t}\n\tfunction closest(selector) {\n\t\tvar closest = this; // eslint-disable-line\n\t\tif (typeof selector === \"undefined\") {\n\t\t\treturn new Dom7([]);\n\t\t}\n\t\tif (!closest.is(selector)) {\n\t\t\tclosest = closest.parents(selector).eq(0);\n\t\t}\n\t\treturn closest;\n\t}\n\tfunction find(selector) {\n\t\tvar foundElements = [];\n\t\tfor (var i = 0; i < this.length; i += 1) {\n\t\t\tvar found = this[i].querySelectorAll(selector);\n\t\t\tfor (var j = 0; j < found.length; j += 1) {\n\t\t\t\tfoundElements.push(found[j]);\n\t\t\t}\n\t\t}\n\t\treturn new Dom7(foundElements);\n\t}\n\tfunction children(selector) {\n\t\tvar children = []; // eslint-disable-line\n\t\tfor (var i = 0; i < this.length; i += 1) {\n\t\t\tvar childNodes = this[i].childNodes;\n\n\t\t\tfor (var j = 0; j < childNodes.length; j += 1) {\n\t\t\t\tif (!selector) {\n\t\t\t\t\tif (childNodes[j].nodeType === 1) {\n\t\t\t\t\t\tchildren.push(childNodes[j]);\n\t\t\t\t\t}\n\t\t\t\t} else if (\n\t\t\t\t\tchildNodes[j].nodeType === 1 &&\n\t\t\t\t\t$(childNodes[j]).is(selector)\n\t\t\t\t) {\n\t\t\t\t\tchildren.push(childNodes[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn new Dom7(unique(children));\n\t}\n\tfunction remove() {\n\t\tfor (var i = 0; i < this.length; i += 1) {\n\t\t\tif (this[i].parentNode) {\n\t\t\t\tthis[i].parentNode.removeChild(this[i]);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\tfunction add() {\n\t\tvar args = [],\n\t\t\tlen = arguments.length;\n\t\twhile (len--) args[len] = arguments[len];\n\n\t\tvar dom = this;\n\t\tvar i;\n\t\tvar j;\n\t\tfor (i = 0; i < args.length; i += 1) {\n\t\t\tvar toAdd = $(args[i]);\n\t\t\tfor (j = 0; j < toAdd.length; j += 1) {\n\t\t\t\tdom[dom.length] = toAdd[j];\n\t\t\t\tdom.length += 1;\n\t\t\t}\n\t\t}\n\t\treturn dom;\n\t}\n\n\tvar Methods = {\n\t\taddClass: addClass,\n\t\tremoveClass: removeClass,\n\t\thasClass: hasClass,\n\t\ttoggleClass: toggleClass,\n\t\tattr: attr,\n\t\tremoveAttr: removeAttr,\n\t\tdata: data,\n\t\ttransform: transform,\n\t\ttransition: transition,\n\t\ton: on,\n\t\toff: off,\n\t\ttrigger: trigger,\n\t\ttransitionEnd: transitionEnd,\n\t\touterWidth: outerWidth,\n\t\touterHeight: outerHeight,\n\t\toffset: offset,\n\t\tcss: css,\n\t\teach: each,\n\t\thtml: html,\n\t\ttext: text,\n\t\tis: is,\n\t\tindex: index,\n\t\teq: eq,\n\t\tappend: append,\n\t\tprepend: prepend,\n\t\tnext: next,\n\t\tnextAll: nextAll,\n\t\tprev: prev,\n\t\tprevAll: prevAll,\n\t\tparent: parent,\n\t\tparents: parents,\n\t\tclosest: closest,\n\t\tfind: find,\n\t\tchildren: children,\n\t\tremove: remove,\n\t\tadd: add,\n\t\tstyles: styles,\n\t};\n\n\tObject.keys(Methods).forEach(function (methodName) {\n\t\t$.fn[methodName] = Methods[methodName];\n\t});\n\n\tvar Utils = {\n\t\tdeleteProps: function deleteProps(obj) {\n\t\t\tvar object = obj;\n\t\t\tObject.keys(object).forEach(function (key) {\n\t\t\t\ttry {\n\t\t\t\t\tobject[key] = null;\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// no getter for object\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tdelete object[key];\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// something got wrong\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tnextTick: function nextTick(callback, delay) {\n\t\t\tif (delay === void 0) delay = 0;\n\n\t\t\treturn setTimeout(callback, delay);\n\t\t},\n\t\tnow: function now() {\n\t\t\treturn Date.now();\n\t\t},\n\t\tgetTranslate: function getTranslate(el, axis) {\n\t\t\tif (axis === void 0) axis = \"x\";\n\n\t\t\tvar matrix;\n\t\t\tvar curTransform;\n\t\t\tvar transformMatrix;\n\n\t\t\tvar curStyle = win.getComputedStyle(el, null);\n\n\t\t\tif (win.WebKitCSSMatrix) {\n\t\t\t\tcurTransform = curStyle.transform || curStyle.webkitTransform;\n\t\t\t\tif (curTransform.split(\",\").length > 6) {\n\t\t\t\t\tcurTransform = curTransform\n\t\t\t\t\t\t.split(\", \")\n\t\t\t\t\t\t.map(function (a) {\n\t\t\t\t\t\t\treturn a.replace(\",\", \".\");\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.join(\", \");\n\t\t\t\t}\n\t\t\t\t// Some old versions of Webkit choke when 'none' is passed; pass\n\t\t\t\t// empty string instead in this case\n\t\t\t\ttransformMatrix = new win.WebKitCSSMatrix(\n\t\t\t\t\tcurTransform === \"none\" ? \"\" : curTransform\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\ttransformMatrix =\n\t\t\t\t\tcurStyle.MozTransform ||\n\t\t\t\t\tcurStyle.OTransform ||\n\t\t\t\t\tcurStyle.MsTransform ||\n\t\t\t\t\tcurStyle.msTransform ||\n\t\t\t\t\tcurStyle.transform ||\n\t\t\t\t\tcurStyle\n\t\t\t\t\t\t.getPropertyValue(\"transform\")\n\t\t\t\t\t\t.replace(\"translate(\", \"matrix(1, 0, 0, 1,\");\n\t\t\t\tmatrix = transformMatrix.toString().split(\",\");\n\t\t\t}\n\n\t\t\tif (axis === \"x\") {\n\t\t\t\t// Latest Chrome and webkits Fix\n\t\t\t\tif (win.WebKitCSSMatrix) {\n\t\t\t\t\tcurTransform = transformMatrix.m41;\n\t\t\t\t}\n\t\t\t\t// Crazy IE10 Matrix\n\t\t\t\telse if (matrix.length === 16) {\n\t\t\t\t\tcurTransform = parseFloat(matrix[12]);\n\t\t\t\t}\n\t\t\t\t// Normal Browsers\n\t\t\t\telse {\n\t\t\t\t\tcurTransform = parseFloat(matrix[4]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (axis === \"y\") {\n\t\t\t\t// Latest Chrome and webkits Fix\n\t\t\t\tif (win.WebKitCSSMatrix) {\n\t\t\t\t\tcurTransform = transformMatrix.m42;\n\t\t\t\t}\n\t\t\t\t// Crazy IE10 Matrix\n\t\t\t\telse if (matrix.length === 16) {\n\t\t\t\t\tcurTransform = parseFloat(matrix[13]);\n\t\t\t\t}\n\t\t\t\t// Normal Browsers\n\t\t\t\telse {\n\t\t\t\t\tcurTransform = parseFloat(matrix[5]);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn curTransform || 0;\n\t\t},\n\t\tparseUrlQuery: function parseUrlQuery(url) {\n\t\t\tvar query = {};\n\t\t\tvar urlToParse = url || win.location.href;\n\t\t\tvar i;\n\t\t\tvar params;\n\t\t\tvar param;\n\t\t\tvar length;\n\t\t\tif (typeof urlToParse === \"string\" && urlToParse.length) {\n\t\t\t\turlToParse =\n\t\t\t\t\turlToParse.indexOf(\"?\") > -1\n\t\t\t\t\t\t? urlToParse.replace(/\\S*\\?/, \"\")\n\t\t\t\t\t\t: \"\";\n\t\t\t\tparams = urlToParse.split(\"&\").filter(function (paramsPart) {\n\t\t\t\t\treturn paramsPart !== \"\";\n\t\t\t\t});\n\t\t\t\tlength = params.length;\n\n\t\t\t\tfor (i = 0; i < length; i += 1) {\n\t\t\t\t\tparam = params[i].replace(/#\\S+/g, \"\").split(\"=\");\n\t\t\t\t\tquery[decodeURIComponent(param[0])] =\n\t\t\t\t\t\ttypeof param[1] === \"undefined\"\n\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t: decodeURIComponent(param[1]) || \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn query;\n\t\t},\n\t\tisObject: function isObject(o) {\n\t\t\treturn (\n\t\t\t\ttypeof o === \"object\" &&\n\t\t\t\to !== null &&\n\t\t\t\to.constructor &&\n\t\t\t\to.constructor === Object\n\t\t\t);\n\t\t},\n\t\textend: function extend() {\n\t\t\tvar args = [],\n\t\t\t\tlen$1 = arguments.length;\n\t\t\twhile (len$1--) args[len$1] = arguments[len$1];\n\n\t\t\tvar to = Object(args[0]);\n\t\t\tfor (var i = 1; i < args.length; i += 1) {\n\t\t\t\tvar nextSource = args[i];\n\t\t\t\tif (nextSource !== undefined && nextSource !== null) {\n\t\t\t\t\tvar keysArray = Object.keys(Object(nextSource));\n\t\t\t\t\tfor (\n\t\t\t\t\t\tvar nextIndex = 0, len = keysArray.length;\n\t\t\t\t\t\tnextIndex < len;\n\t\t\t\t\t\tnextIndex += 1\n\t\t\t\t\t) {\n\t\t\t\t\t\tvar nextKey = keysArray[nextIndex];\n\t\t\t\t\t\tvar desc = Object.getOwnPropertyDescriptor(\n\t\t\t\t\t\t\tnextSource,\n\t\t\t\t\t\t\tnextKey\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (desc !== undefined && desc.enumerable) {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tUtils.isObject(to[nextKey]) &&\n\t\t\t\t\t\t\t\tUtils.isObject(nextSource[nextKey])\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tUtils.extend(to[nextKey], nextSource[nextKey]);\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\t!Utils.isObject(to[nextKey]) &&\n\t\t\t\t\t\t\t\tUtils.isObject(nextSource[nextKey])\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tto[nextKey] = {};\n\t\t\t\t\t\t\t\tUtils.extend(to[nextKey], nextSource[nextKey]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tto[nextKey] = nextSource[nextKey];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn to;\n\t\t},\n\t};\n\n\tvar Support = (function Support() {\n\t\tvar testDiv = doc.createElement(\"div\");\n\t\treturn {\n\t\t\ttouch:\n\t\t\t\t(win.Modernizr && win.Modernizr.touch === true) ||\n\t\t\t\t(function checkTouch() {\n\t\t\t\t\treturn !!(\n\t\t\t\t\t\twin.navigator.maxTouchPoints > 0 ||\n\t\t\t\t\t\t\"ontouchstart\" in win ||\n\t\t\t\t\t\t(win.DocumentTouch && doc instanceof win.DocumentTouch)\n\t\t\t\t\t);\n\t\t\t\t})(),\n\n\t\t\tpointerEvents: !!(\n\t\t\t\twin.navigator.pointerEnabled ||\n\t\t\t\twin.PointerEvent ||\n\t\t\t\t(\"maxTouchPoints\" in win.navigator &&\n\t\t\t\t\twin.navigator.maxTouchPoints > 0)\n\t\t\t),\n\t\t\tprefixedPointerEvents: !!win.navigator.msPointerEnabled,\n\n\t\t\ttransition: (function checkTransition() {\n\t\t\t\tvar style = testDiv.style;\n\t\t\t\treturn (\n\t\t\t\t\t\"transition\" in style ||\n\t\t\t\t\t\"webkitTransition\" in style ||\n\t\t\t\t\t\"MozTransition\" in style\n\t\t\t\t);\n\t\t\t})(),\n\t\t\ttransforms3d:\n\t\t\t\t(win.Modernizr && win.Modernizr.csstransforms3d === true) ||\n\t\t\t\t(function checkTransforms3d() {\n\t\t\t\t\tvar style = testDiv.style;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\"webkitPerspective\" in style ||\n\t\t\t\t\t\t\"MozPerspective\" in style ||\n\t\t\t\t\t\t\"OPerspective\" in style ||\n\t\t\t\t\t\t\"MsPerspective\" in style ||\n\t\t\t\t\t\t\"perspective\" in style\n\t\t\t\t\t);\n\t\t\t\t})(),\n\n\t\t\tflexbox: (function checkFlexbox() {\n\t\t\t\tvar style = testDiv.style;\n\t\t\t\tvar styles =\n\t\t\t\t\t\"alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient\".split(\n\t\t\t\t\t\t\" \"\n\t\t\t\t\t);\n\t\t\t\tfor (var i = 0; i < styles.length; i += 1) {\n\t\t\t\t\tif (styles[i] in style) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t})(),\n\n\t\t\tobserver: (function checkObserver() {\n\t\t\t\treturn (\n\t\t\t\t\t\"MutationObserver\" in win || \"WebkitMutationObserver\" in win\n\t\t\t\t);\n\t\t\t})(),\n\n\t\t\tpassiveListener: (function checkPassiveListener() {\n\t\t\t\tvar supportsPassive = false;\n\t\t\t\ttry {\n\t\t\t\t\tvar opts = Object.defineProperty({}, \"passive\", {\n\t\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\t\tget: function get() {\n\t\t\t\t\t\t\tsupportsPassive = true;\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\twin.addEventListener(\"testPassiveListener\", null, opts);\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// No support\n\t\t\t\t}\n\t\t\t\treturn supportsPassive;\n\t\t\t})(),\n\n\t\t\tgestures: (function checkGestures() {\n\t\t\t\treturn \"ongesturestart\" in win;\n\t\t\t})(),\n\t\t};\n\t})();\n\n\tvar Browser = (function Browser() {\n\t\tfunction isSafari() {\n\t\t\tvar ua = win.navigator.userAgent.toLowerCase();\n\t\t\treturn (\n\t\t\t\tua.indexOf(\"safari\") >= 0 &&\n\t\t\t\tua.indexOf(\"chrome\") < 0 &&\n\t\t\t\tua.indexOf(\"android\") < 0\n\t\t\t);\n\t\t}\n\t\treturn {\n\t\t\tisIE:\n\t\t\t\t!!win.navigator.userAgent.match(/Trident/g) ||\n\t\t\t\t!!win.navigator.userAgent.match(/MSIE/g),\n\t\t\tisEdge: !!win.navigator.userAgent.match(/Edge/g),\n\t\t\tisSafari: isSafari(),\n\t\t\tisUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(\n\t\t\t\twin.navigator.userAgent\n\t\t\t),\n\t\t};\n\t})();\n\n\tvar SwiperClass = function SwiperClass(params) {\n\t\tif (params === void 0) params = {};\n\n\t\tvar self = this;\n\t\tself.params = params;\n\n\t\t// Events\n\t\tself.eventsListeners = {};\n\n\t\tif (self.params && self.params.on) {\n\t\t\tObject.keys(self.params.on).forEach(function (eventName) {\n\t\t\t\tself.on(eventName, self.params.on[eventName]);\n\t\t\t});\n\t\t}\n\t};\n\n\tvar staticAccessors = { components: { configurable: true } };\n\n\tSwiperClass.prototype.on = function on(events, handler, priority) {\n\t\tvar self = this;\n\t\tif (typeof handler !== \"function\") {\n\t\t\treturn self;\n\t\t}\n\t\tvar method = priority ? \"unshift\" : \"push\";\n\t\tevents.split(\" \").forEach(function (event) {\n\t\t\tif (!self.eventsListeners[event]) {\n\t\t\t\tself.eventsListeners[event] = [];\n\t\t\t}\n\t\t\tself.eventsListeners[event][method](handler);\n\t\t});\n\t\treturn self;\n\t};\n\n\tSwiperClass.prototype.once = function once(events, handler, priority) {\n\t\tvar self = this;\n\t\tif (typeof handler !== \"function\") {\n\t\t\treturn self;\n\t\t}\n\t\tfunction onceHandler() {\n\t\t\tvar args = [],\n\t\t\t\tlen = arguments.length;\n\t\t\twhile (len--) args[len] = arguments[len];\n\n\t\t\thandler.apply(self, args);\n\t\t\tself.off(events, onceHandler);\n\t\t\tif (onceHandler.f7proxy) {\n\t\t\t\tdelete onceHandler.f7proxy;\n\t\t\t}\n\t\t}\n\t\tonceHandler.f7proxy = handler;\n\t\treturn self.on(events, onceHandler, priority);\n\t};\n\n\tSwiperClass.prototype.off = function off(events, handler) {\n\t\tvar self = this;\n\t\tif (!self.eventsListeners) {\n\t\t\treturn self;\n\t\t}\n\t\tevents.split(\" \").forEach(function (event) {\n\t\t\tif (typeof handler === \"undefined\") {\n\t\t\t\tself.eventsListeners[event] = [];\n\t\t\t} else if (\n\t\t\t\tself.eventsListeners[event] &&\n\t\t\t\tself.eventsListeners[event].length\n\t\t\t) {\n\t\t\t\tself.eventsListeners[event].forEach(function (\n\t\t\t\t\teventHandler,\n\t\t\t\t\tindex\n\t\t\t\t) {\n\t\t\t\t\tif (\n\t\t\t\t\t\teventHandler === handler ||\n\t\t\t\t\t\t(eventHandler.f7proxy &&\n\t\t\t\t\t\t\teventHandler.f7proxy === handler)\n\t\t\t\t\t) {\n\t\t\t\t\t\tself.eventsListeners[event].splice(index, 1);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\treturn self;\n\t};\n\n\tSwiperClass.prototype.emit = function emit() {\n\t\tvar args = [],\n\t\t\tlen = arguments.length;\n\t\twhile (len--) args[len] = arguments[len];\n\n\t\tvar self = this;\n\t\tif (!self.eventsListeners) {\n\t\t\treturn self;\n\t\t}\n\t\tvar events;\n\t\tvar data;\n\t\tvar context;\n\t\tif (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n\t\t\tevents = args[0];\n\t\t\tdata = args.slice(1, args.length);\n\t\t\tcontext = self;\n\t\t} else {\n\t\t\tevents = args[0].events;\n\t\t\tdata = args[0].data;\n\t\t\tcontext = args[0].context || self;\n\t\t}\n\t\tvar eventsArray = Array.isArray(events) ? events : events.split(\" \");\n\t\teventsArray.forEach(function (event) {\n\t\t\tif (self.eventsListeners && self.eventsListeners[event]) {\n\t\t\t\tvar handlers = [];\n\t\t\t\tself.eventsListeners[event].forEach(function (eventHandler) {\n\t\t\t\t\thandlers.push(eventHandler);\n\t\t\t\t});\n\t\t\t\thandlers.forEach(function (eventHandler) {\n\t\t\t\t\teventHandler.apply(context, data);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\treturn self;\n\t};\n\n\tSwiperClass.prototype.useModulesParams = function useModulesParams(\n\t\tinstanceParams\n\t) {\n\t\tvar instance = this;\n\t\tif (!instance.modules) {\n\t\t\treturn;\n\t\t}\n\t\tObject.keys(instance.modules).forEach(function (moduleName) {\n\t\t\tvar module = instance.modules[moduleName];\n\t\t\t// Extend params\n\t\t\tif (module.params) {\n\t\t\t\tUtils.extend(instanceParams, module.params);\n\t\t\t}\n\t\t});\n\t};\n\n\tSwiperClass.prototype.useModules = function useModules(modulesParams) {\n\t\tif (modulesParams === void 0) modulesParams = {};\n\n\t\tvar instance = this;\n\t\tif (!instance.modules) {\n\t\t\treturn;\n\t\t}\n\t\tObject.keys(instance.modules).forEach(function (moduleName) {\n\t\t\tvar module = instance.modules[moduleName];\n\t\t\tvar moduleParams = modulesParams[moduleName] || {};\n\t\t\t// Extend instance methods and props\n\t\t\tif (module.instance) {\n\t\t\t\tObject.keys(module.instance).forEach(function (modulePropName) {\n\t\t\t\t\tvar moduleProp = module.instance[modulePropName];\n\t\t\t\t\tif (typeof moduleProp === \"function\") {\n\t\t\t\t\t\tinstance[modulePropName] = moduleProp.bind(instance);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tinstance[modulePropName] = moduleProp;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Add event listeners\n\t\t\tif (module.on && instance.on) {\n\t\t\t\tObject.keys(module.on).forEach(function (moduleEventName) {\n\t\t\t\t\tinstance.on(moduleEventName, module.on[moduleEventName]);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Module create callback\n\t\t\tif (module.create) {\n\t\t\t\tmodule.create.bind(instance)(moduleParams);\n\t\t\t}\n\t\t});\n\t};\n\n\tstaticAccessors.components.set = function (components) {\n\t\tvar Class = this;\n\t\tif (!Class.use) {\n\t\t\treturn;\n\t\t}\n\t\tClass.use(components);\n\t};\n\n\tSwiperClass.installModule = function installModule(module) {\n\t\tvar params = [],\n\t\t\tlen = arguments.length - 1;\n\t\twhile (len-- > 0) params[len] = arguments[len + 1];\n\n\t\tvar Class = this;\n\t\tif (!Class.prototype.modules) {\n\t\t\tClass.prototype.modules = {};\n\t\t}\n\t\tvar name =\n\t\t\tmodule.name ||\n\t\t\tObject.keys(Class.prototype.modules).length + \"_\" + Utils.now();\n\t\tClass.prototype.modules[name] = module;\n\t\t// Prototype\n\t\tif (module.proto) {\n\t\t\tObject.keys(module.proto).forEach(function (key) {\n\t\t\t\tClass.prototype[key] = module.proto[key];\n\t\t\t});\n\t\t}\n\t\t// Class\n\t\tif (module.static) {\n\t\t\tObject.keys(module.static).forEach(function (key) {\n\t\t\t\tClass[key] = module.static[key];\n\t\t\t});\n\t\t}\n\t\t// Callback\n\t\tif (module.install) {\n\t\t\tmodule.install.apply(Class, params);\n\t\t}\n\t\treturn Class;\n\t};\n\n\tSwiperClass.use = function use(module) {\n\t\tvar params = [],\n\t\t\tlen = arguments.length - 1;\n\t\twhile (len-- > 0) params[len] = arguments[len + 1];\n\n\t\tvar Class = this;\n\t\tif (Array.isArray(module)) {\n\t\t\tmodule.forEach(function (m) {\n\t\t\t\treturn Class.installModule(m);\n\t\t\t});\n\t\t\treturn Class;\n\t\t}\n\t\treturn Class.installModule.apply(Class, [module].concat(params));\n\t};\n\n\tObject.defineProperties(SwiperClass, staticAccessors);\n\n\tfunction updateSize() {\n\t\tvar swiper = this;\n\t\tvar width;\n\t\tvar height;\n\t\tvar $el = swiper.$el;\n\t\tif (typeof swiper.params.width !== \"undefined\") {\n\t\t\twidth = swiper.params.width;\n\t\t} else {\n\t\t\twidth = $el[0].clientWidth;\n\t\t}\n\t\tif (typeof swiper.params.height !== \"undefined\") {\n\t\t\theight = swiper.params.height;\n\t\t} else {\n\t\t\theight = $el[0].clientHeight;\n\t\t}\n\t\tif (\n\t\t\t(width === 0 && swiper.isHorizontal()) ||\n\t\t\t(height === 0 && swiper.isVertical())\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Subtract paddings\n\t\twidth =\n\t\t\twidth -\n\t\t\tparseInt($el.css(\"padding-left\"), 10) -\n\t\t\tparseInt($el.css(\"padding-right\"), 10);\n\t\theight =\n\t\t\theight -\n\t\t\tparseInt($el.css(\"padding-top\"), 10) -\n\t\t\tparseInt($el.css(\"padding-bottom\"), 10);\n\n\t\tUtils.extend(swiper, {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tsize: swiper.isHorizontal() ? width : height,\n\t\t});\n\t}\n\n\tfunction updateSlides() {\n\t\tvar swiper = this;\n\t\tvar params = swiper.params;\n\n\t\tvar $wrapperEl = swiper.$wrapperEl;\n\t\tvar swiperSize = swiper.size;\n\t\tvar rtl = swiper.rtlTranslate;\n\t\tvar wrongRTL = swiper.wrongRTL;\n\t\tvar isVirtual = swiper.virtual && params.virtual.enabled;\n\t\tvar previousSlidesLength = isVirtual\n\t\t\t? swiper.virtual.slides.length\n\t\t\t: swiper.slides.length;\n\t\tvar slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n\t\tvar slidesLength = isVirtual\n\t\t\t? swiper.virtual.slides.length\n\t\t\t: slides.length;\n\t\tvar snapGrid = [];\n\t\tvar slidesGrid = [];\n\t\tvar slidesSizesGrid = [];\n\n\t\tvar offsetBefore = params.slidesOffsetBefore;\n\t\tif (typeof offsetBefore === \"function\") {\n\t\t\toffsetBefore = params.slidesOffsetBefore.call(swiper);\n\t\t}\n\n\t\tvar offsetAfter = params.slidesOffsetAfter;\n\t\tif (typeof offsetAfter === \"function\") {\n\t\t\toffsetAfter = params.slidesOffsetAfter.call(swiper);\n\t\t}\n\n\t\tvar previousSnapGridLength = swiper.snapGrid.length;\n\t\tvar previousSlidesGridLength = swiper.snapGrid.length;\n\n\t\tvar spaceBetween = params.spaceBetween;\n\t\tvar slidePosition = -offsetBefore;\n\t\tvar prevSlideSize = 0;\n\t\tvar index = 0;\n\t\tif (typeof swiperSize === \"undefined\") {\n\t\t\treturn;\n\t\t}\n\t\tif (\n\t\t\ttypeof spaceBetween === \"string\" &&\n\t\t\tspaceBetween.indexOf(\"%\") >= 0\n\t\t) {\n\t\t\tspaceBetween =\n\t\t\t\t(parseFloat(spaceBetween.replace(\"%\", \"\")) / 100) * swiperSize;\n\t\t}\n\n\t\tswiper.virtualSize = -spaceBetween;\n\n\t\t// reset margins\n\t\tif (rtl) {\n\t\t\tslides.css({ marginLeft: \"\", marginTop: \"\" });\n\t\t} else {\n\t\t\tslides.css({ marginRight: \"\", marginBottom: \"\" });\n\t\t}\n\n\t\tvar slidesNumberEvenToRows;\n\t\tif (params.slidesPerColumn > 1) {\n\t\t\tif (\n\t\t\t\tMath.floor(slidesLength / params.slidesPerColumn) ===\n\t\t\t\tslidesLength / swiper.params.slidesPerColumn\n\t\t\t) {\n\t\t\t\tslidesNumberEvenToRows = slidesLength;\n\t\t\t} else {\n\t\t\t\tslidesNumberEvenToRows =\n\t\t\t\t\tMath.ceil(slidesLength / params.slidesPerColumn) *\n\t\t\t\t\tparams.slidesPerColumn;\n\t\t\t}\n\t\t\tif (\n\t\t\t\tparams.slidesPerView !== \"auto\" &&\n\t\t\t\tparams.slidesPerColumnFill === \"row\"\n\t\t\t) {\n\t\t\t\tslidesNumberEvenToRows = Math.max(\n\t\t\t\t\tslidesNumberEvenToRows,\n\t\t\t\t\tparams.slidesPerView * params.slidesPerColumn\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// Calc slides\n\t\tvar slideSize;\n\t\tvar slidesPerColumn = params.slidesPerColumn;\n\t\tvar slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n\t\tvar numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\t\tfor (var i = 0; i < slidesLength; i += 1) {\n\t\t\tslideSize = 0;\n\t\t\tvar slide = slides.eq(i);\n\t\t\tif (params.slidesPerColumn > 1) {\n\t\t\t\t// Set slides order\n\t\t\t\tvar newSlideOrderIndex = void 0;\n\t\t\t\tvar column = void 0;\n\t\t\t\tvar row = void 0;\n\t\t\t\tif (params.slidesPerColumnFill === \"column\") {\n\t\t\t\t\tcolumn = Math.floor(i / slidesPerColumn);\n\t\t\t\t\trow = i - column * slidesPerColumn;\n\t\t\t\t\tif (\n\t\t\t\t\t\tcolumn > numFullColumns ||\n\t\t\t\t\t\t(column === numFullColumns &&\n\t\t\t\t\t\t\trow === slidesPerColumn - 1)\n\t\t\t\t\t) {\n\t\t\t\t\t\trow += 1;\n\t\t\t\t\t\tif (row >= slidesPerColumn) {\n\t\t\t\t\t\t\trow = 0;\n\t\t\t\t\t\t\tcolumn += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tnewSlideOrderIndex =\n\t\t\t\t\t\tcolumn +\n\t\t\t\t\t\t(row * slidesNumberEvenToRows) / slidesPerColumn;\n\t\t\t\t\tslide.css({\n\t\t\t\t\t\t\"-webkit-box-ordinal-group\": newSlideOrderIndex,\n\t\t\t\t\t\t\"-moz-box-ordinal-group\": newSlideOrderIndex,\n\t\t\t\t\t\t\"-ms-flex-order\": newSlideOrderIndex,\n\t\t\t\t\t\t\"-webkit-order\": newSlideOrderIndex,\n\t\t\t\t\t\torder: newSlideOrderIndex,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\trow = Math.floor(i / slidesPerRow);\n\t\t\t\t\tcolumn = i - row * slidesPerRow;\n\t\t\t\t}\n\t\t\t\tslide\n\t\t\t\t\t.css(\n\t\t\t\t\t\t\"margin-\" + (swiper.isHorizontal() ? \"top\" : \"left\"),\n\t\t\t\t\t\trow !== 0 &&\n\t\t\t\t\t\t\tparams.spaceBetween &&\n\t\t\t\t\t\t\tparams.spaceBetween + \"px\"\n\t\t\t\t\t)\n\t\t\t\t\t.attr(\"data-swiper-column\", column)\n\t\t\t\t\t.attr(\"data-swiper-row\", row);\n\t\t\t}\n\t\t\tif (slide.css(\"display\") === \"none\") {\n\t\t\t\tcontinue;\n\t\t\t} // eslint-disable-line\n\n\t\t\tif (params.slidesPerView === \"auto\") {\n\t\t\t\tvar slideStyles = win.getComputedStyle(slide[0], null);\n\t\t\t\tvar currentTransform = slide[0].style.transform;\n\t\t\t\tvar currentWebKitTransform = slide[0].style.webkitTransform;\n\t\t\t\tif (currentTransform) {\n\t\t\t\t\tslide[0].style.transform = \"none\";\n\t\t\t\t}\n\t\t\t\tif (currentWebKitTransform) {\n\t\t\t\t\tslide[0].style.webkitTransform = \"none\";\n\t\t\t\t}\n\t\t\t\tif (params.roundLengths) {\n\t\t\t\t\tslideSize = swiper.isHorizontal()\n\t\t\t\t\t\t? slide.outerWidth(true)\n\t\t\t\t\t\t: slide.outerHeight(true);\n\t\t\t\t} else {\n\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\tif (swiper.isHorizontal()) {\n\t\t\t\t\t\tvar width = parseFloat(\n\t\t\t\t\t\t\tslideStyles.getPropertyValue(\"width\")\n\t\t\t\t\t\t);\n\t\t\t\t\t\tvar paddingLeft = parseFloat(\n\t\t\t\t\t\t\tslideStyles.getPropertyValue(\"padding-left\")\n\t\t\t\t\t\t);\n\t\t\t\t\t\tvar paddingRight = parseFloat(\n\t\t\t\t\t\t\tslideStyles.getPropertyValue(\"padding-right\")\n\t\t\t\t\t\t);\n\t\t\t\t\t\tvar marginLeft = parseFloat(\n\t\t\t\t\t\t\tslideStyles.getPropertyValue(\"margin-left\")\n\t\t\t\t\t\t);\n\t\t\t\t\t\tvar marginRight = parseFloat(\n\t\t\t\t\t\t\tslideStyles.getPropertyValue(\"margin-right\")\n\t\t\t\t\t\t);\n\t\t\t\t\t\tvar boxSizing =\n\t\t\t\t\t\t\tslideStyles.getPropertyValue(\"box-sizing\");\n\t\t\t\t\t\tif (boxSizing && boxSizing === \"border-box\") {\n\t\t\t\t\t\t\tslideSize = width + marginLeft + marginRight;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tslideSize =\n\t\t\t\t\t\t\t\twidth +\n\t\t\t\t\t\t\t\tpaddingLeft +\n\t\t\t\t\t\t\t\tpaddingRight +\n\t\t\t\t\t\t\t\tmarginLeft +\n\t\t\t\t\t\t\t\tmarginRight;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar height = parseFloat(\n\t\t\t\t\t\t\tslideStyles.getPropertyValue(\"height\")\n\t\t\t\t\t\t);\n\t\t\t\t\t\tvar paddingTop = parseFloat(\n\t\t\t\t\t\t\tslideStyles.getPropertyValue(\"padding-top\")\n\t\t\t\t\t\t);\n\t\t\t\t\t\tvar paddingBottom = parseFloat(\n\t\t\t\t\t\t\tslideStyles.getPropertyValue(\"padding-bottom\")\n\t\t\t\t\t\t);\n\t\t\t\t\t\tvar marginTop = parseFloat(\n\t\t\t\t\t\t\tslideStyles.getPropertyValue(\"margin-top\")\n\t\t\t\t\t\t);\n\t\t\t\t\t\tvar marginBottom = parseFloat(\n\t\t\t\t\t\t\tslideStyles.getPropertyValue(\"margin-bottom\")\n\t\t\t\t\t\t);\n\t\t\t\t\t\tvar boxSizing$1 =\n\t\t\t\t\t\t\tslideStyles.getPropertyValue(\"box-sizing\");\n\t\t\t\t\t\tif (boxSizing$1 && boxSizing$1 === \"border-box\") {\n\t\t\t\t\t\t\tslideSize = height + marginTop + marginBottom;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tslideSize =\n\t\t\t\t\t\t\t\theight +\n\t\t\t\t\t\t\t\tpaddingTop +\n\t\t\t\t\t\t\t\tpaddingBottom +\n\t\t\t\t\t\t\t\tmarginTop +\n\t\t\t\t\t\t\t\tmarginBottom;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (currentTransform) {\n\t\t\t\t\tslide[0].style.transform = currentTransform;\n\t\t\t\t}\n\t\t\t\tif (currentWebKitTransform) {\n\t\t\t\t\tslide[0].style.webkitTransform = currentWebKitTransform;\n\t\t\t\t}\n\t\t\t\tif (params.roundLengths) {\n\t\t\t\t\tslideSize = Math.floor(slideSize);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tslideSize =\n\t\t\t\t\t(swiperSize - (params.slidesPerView - 1) * spaceBetween) /\n\t\t\t\t\tparams.slidesPerView;\n\t\t\t\tif (params.roundLengths) {\n\t\t\t\t\tslideSize = Math.floor(slideSize);\n\t\t\t\t}\n\n\t\t\t\tif (slides[i]) {\n\t\t\t\t\tif (swiper.isHorizontal()) {\n\t\t\t\t\t\tslides[i].style.width = slideSize + \"px\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tslides[i].style.height = slideSize + \"px\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (slides[i]) {\n\t\t\t\tslides[i].swiperSlideSize = slideSize;\n\t\t\t}\n\t\t\tslidesSizesGrid.push(slideSize);\n\n\t\t\tif (params.centeredSlides) {\n\t\t\t\tslidePosition =\n\t\t\t\t\tslidePosition +\n\t\t\t\t\tslideSize / 2 +\n\t\t\t\t\tprevSlideSize / 2 +\n\t\t\t\t\tspaceBetween;\n\t\t\t\tif (prevSlideSize === 0 && i !== 0) {\n\t\t\t\t\tslidePosition =\n\t\t\t\t\t\tslidePosition - swiperSize / 2 - spaceBetween;\n\t\t\t\t}\n\t\t\t\tif (i === 0) {\n\t\t\t\t\tslidePosition =\n\t\t\t\t\t\tslidePosition - swiperSize / 2 - spaceBetween;\n\t\t\t\t}\n\t\t\t\tif (Math.abs(slidePosition) < 1 / 1000) {\n\t\t\t\t\tslidePosition = 0;\n\t\t\t\t}\n\t\t\t\tif (params.roundLengths) {\n\t\t\t\t\tslidePosition = Math.floor(slidePosition);\n\t\t\t\t}\n\t\t\t\tif (index % params.slidesPerGroup === 0) {\n\t\t\t\t\tsnapGrid.push(slidePosition);\n\t\t\t\t}\n\t\t\t\tslidesGrid.push(slidePosition);\n\t\t\t} else {\n\t\t\t\tif (params.roundLengths) {\n\t\t\t\t\tslidePosition = Math.floor(slidePosition);\n\t\t\t\t}\n\t\t\t\tif (index % params.slidesPerGroup === 0) {\n\t\t\t\t\tsnapGrid.push(slidePosition);\n\t\t\t\t}\n\t\t\t\tslidesGrid.push(slidePosition);\n\t\t\t\tslidePosition = slidePosition + slideSize + spaceBetween;\n\t\t\t}\n\n\t\t\tswiper.virtualSize += slideSize + spaceBetween;\n\n\t\t\tprevSlideSize = slideSize;\n\n\t\t\tindex += 1;\n\t\t}\n\t\tswiper.virtualSize =\n\t\t\tMath.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\t\tvar newSlidesGrid;\n\n\t\tif (\n\t\t\trtl &&\n\t\t\twrongRTL &&\n\t\t\t(params.effect === \"slide\" || params.effect === \"coverflow\")\n\t\t) {\n\t\t\t$wrapperEl.css({\n\t\t\t\twidth: swiper.virtualSize + params.spaceBetween + \"px\",\n\t\t\t});\n\t\t}\n\t\tif (!Support.flexbox || params.setWrapperSize) {\n\t\t\tif (swiper.isHorizontal()) {\n\t\t\t\t$wrapperEl.css({\n\t\t\t\t\twidth: swiper.virtualSize + params.spaceBetween + \"px\",\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t$wrapperEl.css({\n\t\t\t\t\theight: swiper.virtualSize + params.spaceBetween + \"px\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (params.slidesPerColumn > 1) {\n\t\t\tswiper.virtualSize =\n\t\t\t\t(slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n\t\t\tswiper.virtualSize =\n\t\t\t\tMath.ceil(swiper.virtualSize / params.slidesPerColumn) -\n\t\t\t\tparams.spaceBetween;\n\t\t\tif (swiper.isHorizontal()) {\n\t\t\t\t$wrapperEl.css({\n\t\t\t\t\twidth: swiper.virtualSize + params.spaceBetween + \"px\",\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t$wrapperEl.css({\n\t\t\t\t\theight: swiper.virtualSize + params.spaceBetween + \"px\",\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (params.centeredSlides) {\n\t\t\t\tnewSlidesGrid = [];\n\t\t\t\tfor (var i$1 = 0; i$1 < snapGrid.length; i$1 += 1) {\n\t\t\t\t\tvar slidesGridItem = snapGrid[i$1];\n\t\t\t\t\tif (params.roundLengths) {\n\t\t\t\t\t\tslidesGridItem = Math.floor(slidesGridItem);\n\t\t\t\t\t}\n\t\t\t\t\tif (snapGrid[i$1] < swiper.virtualSize + snapGrid[0]) {\n\t\t\t\t\t\tnewSlidesGrid.push(slidesGridItem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tsnapGrid = newSlidesGrid;\n\t\t\t}\n\t\t}\n\n\t\t// Remove last grid elements depending on width\n\t\tif (!params.centeredSlides) {\n\t\t\tnewSlidesGrid = [];\n\t\t\tfor (var i$2 = 0; i$2 < snapGrid.length; i$2 += 1) {\n\t\t\t\tvar slidesGridItem$1 = snapGrid[i$2];\n\t\t\t\tif (params.roundLengths) {\n\t\t\t\t\tslidesGridItem$1 = Math.floor(slidesGridItem$1);\n\t\t\t\t}\n\t\t\t\tif (snapGrid[i$2] <= swiper.virtualSize - swiperSize) {\n\t\t\t\t\tnewSlidesGrid.push(slidesGridItem$1);\n\t\t\t\t}\n\t\t\t}\n\t\t\tsnapGrid = newSlidesGrid;\n\t\t\tif (\n\t\t\t\tMath.floor(swiper.virtualSize - swiperSize) -\n\t\t\t\t\tMath.floor(snapGrid[snapGrid.length - 1]) >\n\t\t\t\t1\n\t\t\t) {\n\t\t\t\tsnapGrid.push(swiper.virtualSize - swiperSize);\n\t\t\t}\n\t\t}\n\t\tif (snapGrid.length === 0) {\n\t\t\tsnapGrid = [0];\n\t\t}\n\n\t\tif (params.spaceBetween !== 0) {\n\t\t\tif (swiper.isHorizontal()) {\n\t\t\t\tif (rtl) {\n\t\t\t\t\tslides.css({ marginLeft: spaceBetween + \"px\" });\n\t\t\t\t} else {\n\t\t\t\t\tslides.css({ marginRight: spaceBetween + \"px\" });\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tslides.css({ marginBottom: spaceBetween + \"px\" });\n\t\t\t}\n\t\t}\n\n\t\tif (params.centerInsufficientSlides) {\n\t\t\tvar allSlidesSize = 0;\n\t\t\tslidesSizesGrid.forEach(function (slideSizeValue) {\n\t\t\t\tallSlidesSize +=\n\t\t\t\t\tslideSizeValue +\n\t\t\t\t\t(params.spaceBetween ? params.spaceBetween : 0);\n\t\t\t});\n\t\t\tallSlidesSize -= params.spaceBetween;\n\t\t\tif (allSlidesSize < swiperSize) {\n\t\t\t\tvar allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n\t\t\t\tsnapGrid.forEach(function (snap, snapIndex) {\n\t\t\t\t\tsnapGrid[snapIndex] = snap - allSlidesOffset;\n\t\t\t\t});\n\t\t\t\tslidesGrid.forEach(function (snap, snapIndex) {\n\t\t\t\t\tslidesGrid[snapIndex] = snap + allSlidesOffset;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tUtils.extend(swiper, {\n\t\t\tslides: slides,\n\t\t\tsnapGrid: snapGrid,\n\t\t\tslidesGrid: slidesGrid,\n\t\t\tslidesSizesGrid: slidesSizesGrid,\n\t\t});\n\n\t\tif (slidesLength !== previousSlidesLength) {\n\t\t\tswiper.emit(\"slidesLengthChange\");\n\t\t}\n\t\tif (snapGrid.length !== previousSnapGridLength) {\n\t\t\tif (swiper.params.watchOverflow) {\n\t\t\t\tswiper.checkOverflow();\n\t\t\t}\n\t\t\tswiper.emit(\"snapGridLengthChange\");\n\t\t}\n\t\tif (slidesGrid.length !== previousSlidesGridLength) {\n\t\t\tswiper.emit(\"slidesGridLengthChange\");\n\t\t}\n\n\t\tif (params.watchSlidesProgress || params.watchSlidesVisibility) {\n\t\t\tswiper.updateSlidesOffset();\n\t\t}\n\t}\n\n\tfunction updateAutoHeight(speed) {\n\t\tvar swiper = this;\n\t\tvar activeSlides = [];\n\t\tvar newHeight = 0;\n\t\tvar i;\n\t\tif (typeof speed === \"number\") {\n\t\t\tswiper.setTransition(speed);\n\t\t} else if (speed === true) {\n\t\t\tswiper.setTransition(swiper.params.speed);\n\t\t}\n\t\t// Find slides currently in view\n\t\tif (\n\t\t\tswiper.params.slidesPerView !== \"auto\" &&\n\t\t\tswiper.params.slidesPerView > 1\n\t\t) {\n\t\t\tfor (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n\t\t\t\tvar index = swiper.activeIndex + i;\n\t\t\t\tif (index > swiper.slides.length) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tactiveSlides.push(swiper.slides.eq(index)[0]);\n\t\t\t}\n\t\t} else {\n\t\t\tactiveSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n\t\t}\n\n\t\t// Find new height from highest slide in view\n\t\tfor (i = 0; i < activeSlides.length; i += 1) {\n\t\t\tif (typeof activeSlides[i] !== \"undefined\") {\n\t\t\t\tvar height = activeSlides[i].offsetHeight;\n\t\t\t\tnewHeight = height > newHeight ? height : newHeight;\n\t\t\t}\n\t\t}\n\n\t\t// Update Height\n\t\tif (newHeight) {\n\t\t\tswiper.$wrapperEl.css(\"height\", newHeight + \"px\");\n\t\t}\n\t}\n\n\tfunction updateSlidesOffset() {\n\t\tvar swiper = this;\n\t\tvar slides = swiper.slides;\n\t\tfor (var i = 0; i < slides.length; i += 1) {\n\t\t\tslides[i].swiperSlideOffset = swiper.isHorizontal()\n\t\t\t\t? slides[i].offsetLeft\n\t\t\t\t: slides[i].offsetTop;\n\t\t}\n\t}\n\n\tfunction updateSlidesProgress(translate) {\n\t\tif (translate === void 0) translate = (this && this.translate) || 0;\n\n\t\tvar swiper = this;\n\t\tvar params = swiper.params;\n\n\t\tvar slides = swiper.slides;\n\t\tvar rtl = swiper.rtlTranslate;\n\n\t\tif (slides.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tif (typeof slides[0].swiperSlideOffset === \"undefined\") {\n\t\t\tswiper.updateSlidesOffset();\n\t\t}\n\n\t\tvar offsetCenter = -translate;\n\t\tif (rtl) {\n\t\t\toffsetCenter = translate;\n\t\t}\n\n\t\t// Visible Slides\n\t\tslides.removeClass(params.slideVisibleClass);\n\n\t\tswiper.visibleSlidesIndexes = [];\n\t\tswiper.visibleSlides = [];\n\n\t\tfor (var i = 0; i < slides.length; i += 1) {\n\t\t\tvar slide = slides[i];\n\t\t\tvar slideProgress =\n\t\t\t\t(offsetCenter +\n\t\t\t\t\t(params.centeredSlides ? swiper.minTranslate() : 0) -\n\t\t\t\t\tslide.swiperSlideOffset) /\n\t\t\t\t(slide.swiperSlideSize + params.spaceBetween);\n\t\t\tif (params.watchSlidesVisibility) {\n\t\t\t\tvar slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n\t\t\t\tvar slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n\t\t\t\tvar isVisible =\n\t\t\t\t\t(slideBefore >= 0 && slideBefore < swiper.size) ||\n\t\t\t\t\t(slideAfter > 0 && slideAfter <= swiper.size) ||\n\t\t\t\t\t(slideBefore <= 0 && slideAfter >= swiper.size);\n\t\t\t\tif (isVisible) {\n\t\t\t\t\tswiper.visibleSlides.push(slide);\n\t\t\t\t\tswiper.visibleSlidesIndexes.push(i);\n\t\t\t\t\tslides.eq(i).addClass(params.slideVisibleClass);\n\t\t\t\t}\n\t\t\t}\n\t\t\tslide.progress = rtl ? -slideProgress : slideProgress;\n\t\t}\n\t\tswiper.visibleSlides = $(swiper.visibleSlides);\n\t}\n\n\tfunction updateProgress(translate) {\n\t\tif (translate === void 0) translate = (this && this.translate) || 0;\n\n\t\tvar swiper = this;\n\t\tvar params = swiper.params;\n\n\t\tvar translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\t\tvar progress = swiper.progress;\n\t\tvar isBeginning = swiper.isBeginning;\n\t\tvar isEnd = swiper.isEnd;\n\t\tvar wasBeginning = isBeginning;\n\t\tvar wasEnd = isEnd;\n\t\tif (translatesDiff === 0) {\n\t\t\tprogress = 0;\n\t\t\tisBeginning = true;\n\t\t\tisEnd = true;\n\t\t} else {\n\t\t\tprogress = (translate - swiper.minTranslate()) / translatesDiff;\n\t\t\tisBeginning = progress <= 0;\n\t\t\tisEnd = progress >= 1;\n\t\t}\n\t\tUtils.extend(swiper, {\n\t\t\tprogress: progress,\n\t\t\tisBeginning: isBeginning,\n\t\t\tisEnd: isEnd,\n\t\t});\n\n\t\tif (params.watchSlidesProgress || params.watchSlidesVisibility) {\n\t\t\tswiper.updateSlidesProgress(translate);\n\t\t}\n\n\t\tif (isBeginning && !wasBeginning) {\n\t\t\tswiper.emit(\"reachBeginning toEdge\");\n\t\t}\n\t\tif (isEnd && !wasEnd) {\n\t\t\tswiper.emit(\"reachEnd toEdge\");\n\t\t}\n\t\tif ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n\t\t\tswiper.emit(\"fromEdge\");\n\t\t}\n\n\t\tswiper.emit(\"progress\", progress);\n\t}\n\n\tfunction updateSlidesClasses() {\n\t\tvar swiper = this;\n\n\t\tvar slides = swiper.slides;\n\t\tvar params = swiper.params;\n\t\tvar $wrapperEl = swiper.$wrapperEl;\n\t\tvar activeIndex = swiper.activeIndex;\n\t\tvar realIndex = swiper.realIndex;\n\t\tvar isVirtual = swiper.virtual && params.virtual.enabled;\n\n\t\tslides.removeClass(\n\t\t\tparams.slideActiveClass +\n\t\t\t\t\" \" +\n\t\t\t\tparams.slideNextClass +\n\t\t\t\t\" \" +\n\t\t\t\tparams.slidePrevClass +\n\t\t\t\t\" \" +\n\t\t\t\tparams.slideDuplicateActiveClass +\n\t\t\t\t\" \" +\n\t\t\t\tparams.slideDuplicateNextClass +\n\t\t\t\t\" \" +\n\t\t\t\tparams.slideDuplicatePrevClass\n\t\t);\n\n\t\tvar activeSlide;\n\t\tif (isVirtual) {\n\t\t\tactiveSlide = swiper.$wrapperEl.find(\n\t\t\t\t\".\" +\n\t\t\t\t\tparams.slideClass +\n\t\t\t\t\t'[data-swiper-slide-index=\"' +\n\t\t\t\t\tactiveIndex +\n\t\t\t\t\t'\"]'\n\t\t\t);\n\t\t} else {\n\t\t\tactiveSlide = slides.eq(activeIndex);\n\t\t}\n\n\t\t// Active classes\n\t\tactiveSlide.addClass(params.slideActiveClass);\n\n\t\tif (params.loop) {\n\t\t\t// Duplicate to all looped slides\n\t\t\tif (activeSlide.hasClass(params.slideDuplicateClass)) {\n\t\t\t\t$wrapperEl\n\t\t\t\t\t.children(\n\t\t\t\t\t\t\".\" +\n\t\t\t\t\t\t\tparams.slideClass +\n\t\t\t\t\t\t\t\":not(.\" +\n\t\t\t\t\t\t\tparams.slideDuplicateClass +\n\t\t\t\t\t\t\t')[data-swiper-slide-index=\"' +\n\t\t\t\t\t\t\trealIndex +\n\t\t\t\t\t\t\t'\"]'\n\t\t\t\t\t)\n\t\t\t\t\t.addClass(params.slideDuplicateActiveClass);\n\t\t\t} else {\n\t\t\t\t$wrapperEl\n\t\t\t\t\t.children(\n\t\t\t\t\t\t\".\" +\n\t\t\t\t\t\t\tparams.slideClass +\n\t\t\t\t\t\t\t\".\" +\n\t\t\t\t\t\t\tparams.slideDuplicateClass +\n\t\t\t\t\t\t\t'[data-swiper-slide-index=\"' +\n\t\t\t\t\t\t\trealIndex +\n\t\t\t\t\t\t\t'\"]'\n\t\t\t\t\t)\n\t\t\t\t\t.addClass(params.slideDuplicateActiveClass);\n\t\t\t}\n\t\t}\n\t\t// Next Slide\n\t\tvar nextSlide = activeSlide\n\t\t\t.nextAll(\".\" + params.slideClass)\n\t\t\t.eq(0)\n\t\t\t.addClass(params.slideNextClass);\n\t\tif (params.loop && nextSlide.length === 0) {\n\t\t\tnextSlide = slides.eq(0);\n\t\t\tnextSlide.addClass(params.slideNextClass);\n\t\t}\n\t\t// Prev Slide\n\t\tvar prevSlide = activeSlide\n\t\t\t.prevAll(\".\" + params.slideClass)\n\t\t\t.eq(0)\n\t\t\t.addClass(params.slidePrevClass);\n\t\tif (params.loop && prevSlide.length === 0) {\n\t\t\tprevSlide = slides.eq(-1);\n\t\t\tprevSlide.addClass(params.slidePrevClass);\n\t\t}\n\t\tif (params.loop) {\n\t\t\t// Duplicate to all looped slides\n\t\t\tif (nextSlide.hasClass(params.slideDuplicateClass)) {\n\t\t\t\t$wrapperEl\n\t\t\t\t\t.children(\n\t\t\t\t\t\t\".\" +\n\t\t\t\t\t\t\tparams.slideClass +\n\t\t\t\t\t\t\t\":not(.\" +\n\t\t\t\t\t\t\tparams.slideDuplicateClass +\n\t\t\t\t\t\t\t')[data-swiper-slide-index=\"' +\n\t\t\t\t\t\t\tnextSlide.attr(\"data-swiper-slide-index\") +\n\t\t\t\t\t\t\t'\"]'\n\t\t\t\t\t)\n\t\t\t\t\t.addClass(params.slideDuplicateNextClass);\n\t\t\t} else {\n\t\t\t\t$wrapperEl\n\t\t\t\t\t.children(\n\t\t\t\t\t\t\".\" +\n\t\t\t\t\t\t\tparams.slideClass +\n\t\t\t\t\t\t\t\".\" +\n\t\t\t\t\t\t\tparams.slideDuplicateClass +\n\t\t\t\t\t\t\t'[data-swiper-slide-index=\"' +\n\t\t\t\t\t\t\tnextSlide.attr(\"data-swiper-slide-index\") +\n\t\t\t\t\t\t\t'\"]'\n\t\t\t\t\t)\n\t\t\t\t\t.addClass(params.slideDuplicateNextClass);\n\t\t\t}\n\t\t\tif (prevSlide.hasClass(params.slideDuplicateClass)) {\n\t\t\t\t$wrapperEl\n\t\t\t\t\t.children(\n\t\t\t\t\t\t\".\" +\n\t\t\t\t\t\t\tparams.slideClass +\n\t\t\t\t\t\t\t\":not(.\" +\n\t\t\t\t\t\t\tparams.slideDuplicateClass +\n\t\t\t\t\t\t\t')[data-swiper-slide-index=\"' +\n\t\t\t\t\t\t\tprevSlide.attr(\"data-swiper-slide-index\") +\n\t\t\t\t\t\t\t'\"]'\n\t\t\t\t\t)\n\t\t\t\t\t.addClass(params.slideDuplicatePrevClass);\n\t\t\t} else {\n\t\t\t\t$wrapperEl\n\t\t\t\t\t.children(\n\t\t\t\t\t\t\".\" +\n\t\t\t\t\t\t\tparams.slideClass +\n\t\t\t\t\t\t\t\".\" +\n\t\t\t\t\t\t\tparams.slideDuplicateClass +\n\t\t\t\t\t\t\t'[data-swiper-slide-index=\"' +\n\t\t\t\t\t\t\tprevSlide.attr(\"data-swiper-slide-index\") +\n\t\t\t\t\t\t\t'\"]'\n\t\t\t\t\t)\n\t\t\t\t\t.addClass(params.slideDuplicatePrevClass);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction updateActiveIndex(newActiveIndex) {\n\t\tvar swiper = this;\n\t\tvar translate = swiper.rtlTranslate\n\t\t\t? swiper.translate\n\t\t\t: -swiper.translate;\n\t\tvar slidesGrid = swiper.slidesGrid;\n\t\tvar snapGrid = swiper.snapGrid;\n\t\tvar params = swiper.params;\n\t\tvar previousIndex = swiper.activeIndex;\n\t\tvar previousRealIndex = swiper.realIndex;\n\t\tvar previousSnapIndex = swiper.snapIndex;\n\t\tvar activeIndex = newActiveIndex;\n\t\tvar snapIndex;\n\t\tif (typeof activeIndex === \"undefined\") {\n\t\t\tfor (var i = 0; i < slidesGrid.length; i += 1) {\n\t\t\t\tif (typeof slidesGrid[i + 1] !== \"undefined\") {\n\t\t\t\t\tif (\n\t\t\t\t\t\ttranslate >= slidesGrid[i] &&\n\t\t\t\t\t\ttranslate <\n\t\t\t\t\t\t\tslidesGrid[i + 1] -\n\t\t\t\t\t\t\t\t(slidesGrid[i + 1] - slidesGrid[i]) / 2\n\t\t\t\t\t) {\n\t\t\t\t\t\tactiveIndex = i;\n\t\t\t\t\t} else if (\n\t\t\t\t\t\ttranslate >= slidesGrid[i] &&\n\t\t\t\t\t\ttranslate < slidesGrid[i + 1]\n\t\t\t\t\t) {\n\t\t\t\t\t\tactiveIndex = i + 1;\n\t\t\t\t\t}\n\t\t\t\t} else if (translate >= slidesGrid[i]) {\n\t\t\t\t\tactiveIndex = i;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Normalize slideIndex\n\t\t\tif (params.normalizeSlideIndex) {\n\t\t\t\tif (activeIndex < 0 || typeof activeIndex === \"undefined\") {\n\t\t\t\t\tactiveIndex = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (snapGrid.indexOf(translate) >= 0) {\n\t\t\tsnapIndex = snapGrid.indexOf(translate);\n\t\t} else {\n\t\t\tsnapIndex = Math.floor(activeIndex / params.slidesPerGroup);\n\t\t}\n\t\tif (snapIndex >= snapGrid.length) {\n\t\t\tsnapIndex = snapGrid.length - 1;\n\t\t}\n\t\tif (activeIndex === previousIndex) {\n\t\t\tif (snapIndex !== previousSnapIndex) {\n\t\t\t\tswiper.snapIndex = snapIndex;\n\t\t\t\tswiper.emit(\"snapIndexChange\");\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Get real index\n\t\tvar realIndex = parseInt(\n\t\t\tswiper.slides.eq(activeIndex).attr(\"data-swiper-slide-index\") ||\n\t\t\t\tactiveIndex,\n\t\t\t10\n\t\t);\n\n\t\tUtils.extend(swiper, {\n\t\t\tsnapIndex: snapIndex,\n\t\t\trealIndex: realIndex,\n\t\t\tpreviousIndex: previousIndex,\n\t\t\tactiveIndex: activeIndex,\n\t\t});\n\t\tswiper.emit(\"activeIndexChange\");\n\t\tswiper.emit(\"snapIndexChange\");\n\t\tif (previousRealIndex !== realIndex) {\n\t\t\tswiper.emit(\"realIndexChange\");\n\t\t}\n\t\tswiper.emit(\"slideChange\");\n\t}\n\n\tfunction updateClickedSlide(e) {\n\t\tvar swiper = this;\n\t\tvar params = swiper.params;\n\t\tvar slide = $(e.target).closest(\".\" + params.slideClass)[0];\n\t\tvar slideFound = false;\n\t\tif (slide) {\n\t\t\tfor (var i = 0; i < swiper.slides.length; i += 1) {\n\t\t\t\tif (swiper.slides[i] === slide) {\n\t\t\t\t\tslideFound = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (slide && slideFound) {\n\t\t\tswiper.clickedSlide = slide;\n\t\t\tif (swiper.virtual && swiper.params.virtual.enabled) {\n\t\t\t\tswiper.clickedIndex = parseInt(\n\t\t\t\t\t$(slide).attr(\"data-swiper-slide-index\"),\n\t\t\t\t\t10\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tswiper.clickedIndex = $(slide).index();\n\t\t\t}\n\t\t} else {\n\t\t\tswiper.clickedSlide = undefined;\n\t\t\tswiper.clickedIndex = undefined;\n\t\t\treturn;\n\t\t}\n\t\tif (\n\t\t\tparams.slideToClickedSlide &&\n\t\t\tswiper.clickedIndex !== undefined &&\n\t\t\tswiper.clickedIndex !== swiper.activeIndex\n\t\t) {\n\t\t\tswiper.slideToClickedSlide();\n\t\t}\n\t}\n\n\tvar update = {\n\t\tupdateSize: updateSize,\n\t\tupdateSlides: updateSlides,\n\t\tupdateAutoHeight: updateAutoHeight,\n\t\tupdateSlidesOffset: updateSlidesOffset,\n\t\tupdateSlidesProgress: updateSlidesProgress,\n\t\tupdateProgress: updateProgress,\n\t\tupdateSlidesClasses: updateSlidesClasses,\n\t\tupdateActiveIndex: updateActiveIndex,\n\t\tupdateClickedSlide: updateClickedSlide,\n\t};\n\n\tfunction getTranslate(axis) {\n\t\tif (axis === void 0) axis = this.isHorizontal() ? \"x\" : \"y\";\n\n\t\tvar swiper = this;\n\n\t\tvar params = swiper.params;\n\t\tvar rtl = swiper.rtlTranslate;\n\t\tvar translate = swiper.translate;\n\t\tvar $wrapperEl = swiper.$wrapperEl;\n\n\t\tif (params.virtualTranslate) {\n\t\t\treturn rtl ? -translate : translate;\n\t\t}\n\n\t\tvar currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n\t\tif (rtl) {\n\t\t\tcurrentTranslate = -currentTranslate;\n\t\t}\n\n\t\treturn currentTranslate || 0;\n\t}\n\n\tfunction setTranslate(translate, byController) {\n\t\tvar swiper = this;\n\t\tvar rtl = swiper.rtlTranslate;\n\t\tvar params = swiper.params;\n\t\tvar $wrapperEl = swiper.$wrapperEl;\n\t\tvar progress = swiper.progress;\n\t\tvar x = 0;\n\t\tvar y = 0;\n\t\tvar z = 0;\n\n\t\tif (swiper.isHorizontal()) {\n\t\t\tx = rtl ? -translate : translate;\n\t\t} else {\n\t\t\ty = translate;\n\t\t}\n\n\t\tif (params.roundLengths) {\n\t\t\tx = Math.floor(x);\n\t\t\ty = Math.floor(y);\n\t\t}\n\n\t\tif (!params.virtualTranslate) {\n\t\t\tif (Support.transforms3d) {\n\t\t\t\t$wrapperEl.transform(\n\t\t\t\t\t\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\"\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t$wrapperEl.transform(\"translate(\" + x + \"px, \" + y + \"px)\");\n\t\t\t}\n\t\t}\n\t\tswiper.previousTranslate = swiper.translate;\n\t\tswiper.translate = swiper.isHorizontal() ? x : y;\n\n\t\t// Check if we need to update progress\n\t\tvar newProgress;\n\t\tvar translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\t\tif (translatesDiff === 0) {\n\t\t\tnewProgress = 0;\n\t\t} else {\n\t\t\tnewProgress = (translate - swiper.minTranslate()) / translatesDiff;\n\t\t}\n\t\tif (newProgress !== progress) {\n\t\t\tswiper.updateProgress(translate);\n\t\t}\n\n\t\tswiper.emit(\"setTranslate\", swiper.translate, byController);\n\t}\n\n\tfunction minTranslate() {\n\t\treturn -this.snapGrid[0];\n\t}\n\n\tfunction maxTranslate() {\n\t\treturn -this.snapGrid[this.snapGrid.length - 1];\n\t}\n\n\tvar translate = {\n\t\tgetTranslate: getTranslate,\n\t\tsetTranslate: setTranslate,\n\t\tminTranslate: minTranslate,\n\t\tmaxTranslate: maxTranslate,\n\t};\n\n\tfunction setTransition(duration, byController) {\n\t\tvar swiper = this;\n\n\t\tswiper.$wrapperEl.transition(duration);\n\n\t\tswiper.emit(\"setTransition\", duration, byController);\n\t}\n\n\tfunction transitionStart(runCallbacks, direction) {\n\t\tif (runCallbacks === void 0) runCallbacks = true;\n\n\t\tvar swiper = this;\n\t\tvar activeIndex = swiper.activeIndex;\n\t\tvar params = swiper.params;\n\t\tvar previousIndex = swiper.previousIndex;\n\t\tif (params.autoHeight) {\n\t\t\tswiper.updateAutoHeight();\n\t\t}\n\n\t\tvar dir = direction;\n\t\tif (!dir) {\n\t\t\tif (activeIndex > previousIndex) {\n\t\t\t\tdir = \"next\";\n\t\t\t} else if (activeIndex < previousIndex) {\n\t\t\t\tdir = \"prev\";\n\t\t\t} else {\n\t\t\t\tdir = \"reset\";\n\t\t\t}\n\t\t}\n\n\t\tswiper.emit(\"transitionStart\");\n\n\t\tif (runCallbacks && activeIndex !== previousIndex) {\n\t\t\tif (dir === \"reset\") {\n\t\t\t\tswiper.emit(\"slideResetTransitionStart\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tswiper.emit(\"slideChangeTransitionStart\");\n\t\t\tif (dir === \"next\") {\n\t\t\t\tswiper.emit(\"slideNextTransitionStart\");\n\t\t\t} else {\n\t\t\t\tswiper.emit(\"slidePrevTransitionStart\");\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction transitionEnd$1(runCallbacks, direction) {\n\t\tif (runCallbacks === void 0) runCallbacks = true;\n\n\t\tvar swiper = this;\n\t\tvar activeIndex = swiper.activeIndex;\n\t\tvar previousIndex = swiper.previousIndex;\n\t\tswiper.animating = false;\n\t\tswiper.setTransition(0);\n\n\t\tvar dir = direction;\n\t\tif (!dir) {\n\t\t\tif (activeIndex > previousIndex) {\n\t\t\t\tdir = \"next\";\n\t\t\t} else if (activeIndex < previousIndex) {\n\t\t\t\tdir = \"prev\";\n\t\t\t} else {\n\t\t\t\tdir = \"reset\";\n\t\t\t}\n\t\t}\n\n\t\tswiper.emit(\"transitionEnd\");\n\n\t\tif (runCallbacks && activeIndex !== previousIndex) {\n\t\t\tif (dir === \"reset\") {\n\t\t\t\tswiper.emit(\"slideResetTransitionEnd\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tswiper.emit(\"slideChangeTransitionEnd\");\n\t\t\tif (dir === \"next\") {\n\t\t\t\tswiper.emit(\"slideNextTransitionEnd\");\n\t\t\t} else {\n\t\t\t\tswiper.emit(\"slidePrevTransitionEnd\");\n\t\t\t}\n\t\t}\n\t}\n\n\tvar transition$1 = {\n\t\tsetTransition: setTransition,\n\t\ttransitionStart: transitionStart,\n\t\ttransitionEnd: transitionEnd$1,\n\t};\n\n\tfunction slideTo(index, speed, runCallbacks, internal) {\n\t\tif (index === void 0) index = 0;\n\t\tif (speed === void 0) speed = this.params.speed;\n\t\tif (runCallbacks === void 0) runCallbacks = true;\n\n\t\tvar swiper = this;\n\t\tvar slideIndex = index;\n\t\tif (slideIndex < 0) {\n\t\t\tslideIndex = 0;\n\t\t}\n\n\t\tvar params = swiper.params;\n\t\tvar snapGrid = swiper.snapGrid;\n\t\tvar slidesGrid = swiper.slidesGrid;\n\t\tvar previousIndex = swiper.previousIndex;\n\t\tvar activeIndex = swiper.activeIndex;\n\t\tvar rtl = swiper.rtlTranslate;\n\t\tif (swiper.animating && params.preventInteractionOnTransition) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar snapIndex = Math.floor(slideIndex / params.slidesPerGroup);\n\t\tif (snapIndex >= snapGrid.length) {\n\t\t\tsnapIndex = snapGrid.length - 1;\n\t\t}\n\n\t\tif (\n\t\t\t(activeIndex || params.initialSlide || 0) ===\n\t\t\t\t(previousIndex || 0) &&\n\t\t\trunCallbacks\n\t\t) {\n\t\t\tswiper.emit(\"beforeSlideChangeStart\");\n\t\t}\n\n\t\tvar translate = -snapGrid[snapIndex];\n\n\t\t// Update progress\n\t\tswiper.updateProgress(translate);\n\n\t\t// Normalize slideIndex\n\t\tif (params.normalizeSlideIndex) {\n\t\t\tfor (var i = 0; i < slidesGrid.length; i += 1) {\n\t\t\t\tif (\n\t\t\t\t\t-Math.floor(translate * 100) >=\n\t\t\t\t\tMath.floor(slidesGrid[i] * 100)\n\t\t\t\t) {\n\t\t\t\t\tslideIndex = i;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Directions locks\n\t\tif (swiper.initialized && slideIndex !== activeIndex) {\n\t\t\tif (\n\t\t\t\t!swiper.allowSlideNext &&\n\t\t\t\ttranslate < swiper.translate &&\n\t\t\t\ttranslate < swiper.minTranslate()\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (\n\t\t\t\t!swiper.allowSlidePrev &&\n\t\t\t\ttranslate > swiper.translate &&\n\t\t\t\ttranslate > swiper.maxTranslate()\n\t\t\t) {\n\t\t\t\tif ((activeIndex || 0) !== slideIndex) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar direction;\n\t\tif (slideIndex > activeIndex) {\n\t\t\tdirection = \"next\";\n\t\t} else if (slideIndex < activeIndex) {\n\t\t\tdirection = \"prev\";\n\t\t} else {\n\t\t\tdirection = \"reset\";\n\t\t}\n\n\t\t// Update Index\n\t\tif (\n\t\t\t(rtl && -translate === swiper.translate) ||\n\t\t\t(!rtl && translate === swiper.translate)\n\t\t) {\n\t\t\tswiper.updateActiveIndex(slideIndex);\n\t\t\t// Update Height\n\t\t\tif (params.autoHeight) {\n\t\t\t\tswiper.updateAutoHeight();\n\t\t\t}\n\t\t\tswiper.updateSlidesClasses();\n\t\t\tif (params.effect !== \"slide\") {\n\t\t\t\tswiper.setTranslate(translate);\n\t\t\t}\n\t\t\tif (direction !== \"reset\") {\n\t\t\t\tswiper.transitionStart(runCallbacks, direction);\n\t\t\t\tswiper.transitionEnd(runCallbacks, direction);\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tif (speed === 0 || !Support.transition) {\n\t\t\tswiper.setTransition(0);\n\t\t\tswiper.setTranslate(translate);\n\t\t\tswiper.updateActiveIndex(slideIndex);\n\t\t\tswiper.updateSlidesClasses();\n\t\t\tswiper.emit(\"beforeTransitionStart\", speed, internal);\n\t\t\tswiper.transitionStart(runCallbacks, direction);\n\t\t\tswiper.transitionEnd(runCallbacks, direction);\n\t\t} else {\n\t\t\tswiper.setTransition(speed);\n\t\t\tswiper.setTranslate(translate);\n\t\t\tswiper.updateActiveIndex(slideIndex);\n\t\t\tswiper.updateSlidesClasses();\n\t\t\tswiper.emit(\"beforeTransitionStart\", speed, internal);\n\t\t\tswiper.transitionStart(runCallbacks, direction);\n\t\t\tif (!swiper.animating) {\n\t\t\t\tswiper.animating = true;\n\t\t\t\tif (!swiper.onSlideToWrapperTransitionEnd) {\n\t\t\t\t\tswiper.onSlideToWrapperTransitionEnd =\n\t\t\t\t\t\tfunction transitionEnd(e) {\n\t\t\t\t\t\t\tif (!swiper || swiper.destroyed) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (e.target !== this) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tswiper.$wrapperEl[0].removeEventListener(\n\t\t\t\t\t\t\t\t\"transitionend\",\n\t\t\t\t\t\t\t\tswiper.onSlideToWrapperTransitionEnd\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tswiper.$wrapperEl[0].removeEventListener(\n\t\t\t\t\t\t\t\t\"webkitTransitionEnd\",\n\t\t\t\t\t\t\t\tswiper.onSlideToWrapperTransitionEnd\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tswiper.onSlideToWrapperTransitionEnd = null;\n\t\t\t\t\t\t\tdelete swiper.onSlideToWrapperTransitionEnd;\n\t\t\t\t\t\t\tswiper.transitionEnd(runCallbacks, direction);\n\t\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tswiper.$wrapperEl[0].addEventListener(\n\t\t\t\t\t\"transitionend\",\n\t\t\t\t\tswiper.onSlideToWrapperTransitionEnd\n\t\t\t\t);\n\t\t\t\tswiper.$wrapperEl[0].addEventListener(\n\t\t\t\t\t\"webkitTransitionEnd\",\n\t\t\t\t\tswiper.onSlideToWrapperTransitionEnd\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tfunction slideToLoop(index, speed, runCallbacks, internal) {\n\t\tif (index === void 0) index = 0;\n\t\tif (speed === void 0) speed = this.params.speed;\n\t\tif (runCallbacks === void 0) runCallbacks = true;\n\n\t\tvar swiper = this;\n\t\tvar newIndex = index;\n\t\tif (swiper.params.loop) {\n\t\t\tnewIndex += swiper.loopedSlides;\n\t\t}\n\n\t\treturn swiper.slideTo(newIndex, speed, runCallbacks, internal);\n\t}\n\n\t/* eslint no-unused-vars: \"off\" */\n\tfunction slideNext(speed, runCallbacks, internal) {\n\t\tif (speed === void 0) speed = this.params.speed;\n\t\tif (runCallbacks === void 0) runCallbacks = true;\n\n\t\tvar swiper = this;\n\t\tvar params = swiper.params;\n\t\tvar animating = swiper.animating;\n\t\tif (params.loop) {\n\t\t\tif (animating) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tswiper.loopFix();\n\t\t\t// eslint-disable-next-line\n\t\t\tswiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n\t\t\treturn swiper.slideTo(\n\t\t\t\tswiper.activeIndex + params.slidesPerGroup,\n\t\t\t\tspeed,\n\t\t\t\trunCallbacks,\n\t\t\t\tinternal\n\t\t\t);\n\t\t}\n\t\treturn swiper.slideTo(\n\t\t\tswiper.activeIndex + params.slidesPerGroup,\n\t\t\tspeed,\n\t\t\trunCallbacks,\n\t\t\tinternal\n\t\t);\n\t}\n\n\t/* eslint no-unused-vars: \"off\" */\n\tfunction slidePrev(speed, runCallbacks, internal) {\n\t\tif (speed === void 0) speed = this.params.speed;\n\t\tif (runCallbacks === void 0) runCallbacks = true;\n\n\t\tvar swiper = this;\n\t\tvar params = swiper.params;\n\t\tvar animating = swiper.animating;\n\t\tvar snapGrid = swiper.snapGrid;\n\t\tvar slidesGrid = swiper.slidesGrid;\n\t\tvar rtlTranslate = swiper.rtlTranslate;\n\n\t\tif (params.loop) {\n\t\t\tif (animating) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tswiper.loopFix();\n\t\t\t// eslint-disable-next-line\n\t\t\tswiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n\t\t}\n\t\tvar translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\t\tfunction normalize(val) {\n\t\t\tif (val < 0) {\n\t\t\t\treturn -Math.floor(Math.abs(val));\n\t\t\t}\n\t\t\treturn Math.floor(val);\n\t\t}\n\t\tvar normalizedTranslate = normalize(translate);\n\t\tvar normalizedSnapGrid = snapGrid.map(function (val) {\n\t\t\treturn normalize(val);\n\t\t});\n\t\tvar normalizedSlidesGrid = slidesGrid.map(function (val) {\n\t\t\treturn normalize(val);\n\t\t});\n\n\t\tvar currentSnap =\n\t\t\tsnapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n\t\tvar prevSnap =\n\t\t\tsnapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\t\tvar prevIndex;\n\t\tif (typeof prevSnap !== \"undefined\") {\n\t\t\tprevIndex = slidesGrid.indexOf(prevSnap);\n\t\t\tif (prevIndex < 0) {\n\t\t\t\tprevIndex = swiper.activeIndex - 1;\n\t\t\t}\n\t\t}\n\t\treturn swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n\t}\n\n\t/* eslint no-unused-vars: \"off\" */\n\tfunction slideReset(speed, runCallbacks, internal) {\n\t\tif (speed === void 0) speed = this.params.speed;\n\t\tif (runCallbacks === void 0) runCallbacks = true;\n\n\t\tvar swiper = this;\n\t\treturn swiper.slideTo(\n\t\t\tswiper.activeIndex,\n\t\t\tspeed,\n\t\t\trunCallbacks,\n\t\t\tinternal\n\t\t);\n\t}\n\n\t/* eslint no-unused-vars: \"off\" */\n\tfunction slideToClosest(speed, runCallbacks, internal) {\n\t\tif (speed === void 0) speed = this.params.speed;\n\t\tif (runCallbacks === void 0) runCallbacks = true;\n\n\t\tvar swiper = this;\n\t\tvar index = swiper.activeIndex;\n\t\tvar snapIndex = Math.floor(index / swiper.params.slidesPerGroup);\n\n\t\tif (snapIndex < swiper.snapGrid.length - 1) {\n\t\t\tvar translate = swiper.rtlTranslate\n\t\t\t\t? swiper.translate\n\t\t\t\t: -swiper.translate;\n\n\t\t\tvar currentSnap = swiper.snapGrid[snapIndex];\n\t\t\tvar nextSnap = swiper.snapGrid[snapIndex + 1];\n\n\t\t\tif (translate - currentSnap > (nextSnap - currentSnap) / 2) {\n\t\t\t\tindex = swiper.params.slidesPerGroup;\n\t\t\t}\n\t\t}\n\n\t\treturn swiper.slideTo(index, speed, runCallbacks, internal);\n\t}\n\n\tfunction slideToClickedSlide() {\n\t\tvar swiper = this;\n\t\tvar params = swiper.params;\n\t\tvar $wrapperEl = swiper.$wrapperEl;\n\n\t\tvar slidesPerView =\n\t\t\tparams.slidesPerView === \"auto\"\n\t\t\t\t? swiper.slidesPerViewDynamic()\n\t\t\t\t: params.slidesPerView;\n\t\tvar slideToIndex = swiper.clickedIndex;\n\t\tvar realIndex;\n\t\tif (params.loop) {\n\t\t\tif (swiper.animating) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\trealIndex = parseInt(\n\t\t\t\t$(swiper.clickedSlide).attr(\"data-swiper-slide-index\"),\n\t\t\t\t10\n\t\t\t);\n\t\t\tif (params.centeredSlides) {\n\t\t\t\tif (\n\t\t\t\t\tslideToIndex < swiper.loopedSlides - slidesPerView / 2 ||\n\t\t\t\t\tslideToIndex >\n\t\t\t\t\t\tswiper.slides.length -\n\t\t\t\t\t\t\tswiper.loopedSlides +\n\t\t\t\t\t\t\tslidesPerView / 2\n\t\t\t\t) {\n\t\t\t\t\tswiper.loopFix();\n\t\t\t\t\tslideToIndex = $wrapperEl\n\t\t\t\t\t\t.children(\n\t\t\t\t\t\t\t\".\" +\n\t\t\t\t\t\t\t\tparams.slideClass +\n\t\t\t\t\t\t\t\t'[data-swiper-slide-index=\"' +\n\t\t\t\t\t\t\t\trealIndex +\n\t\t\t\t\t\t\t\t'\"]:not(.' +\n\t\t\t\t\t\t\t\tparams.slideDuplicateClass +\n\t\t\t\t\t\t\t\t\")\"\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.eq(0)\n\t\t\t\t\t\t.index();\n\n\t\t\t\t\tUtils.nextTick(function () {\n\t\t\t\t\t\tswiper.slideTo(slideToIndex);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tswiper.slideTo(slideToIndex);\n\t\t\t\t}\n\t\t\t} else if (slideToIndex > swiper.slides.length - slidesPerView) {\n\t\t\t\tswiper.loopFix();\n\t\t\t\tslideToIndex = $wrapperEl\n\t\t\t\t\t.children(\n\t\t\t\t\t\t\".\" +\n\t\t\t\t\t\t\tparams.slideClass +\n\t\t\t\t\t\t\t'[data-swiper-slide-index=\"' +\n\t\t\t\t\t\t\trealIndex +\n\t\t\t\t\t\t\t'\"]:not(.' +\n\t\t\t\t\t\t\tparams.slideDuplicateClass +\n\t\t\t\t\t\t\t\")\"\n\t\t\t\t\t)\n\t\t\t\t\t.eq(0)\n\t\t\t\t\t.index();\n\n\t\t\t\tUtils.nextTick(function () {\n\t\t\t\t\tswiper.slideTo(slideToIndex);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tswiper.slideTo(slideToIndex);\n\t\t\t}\n\t\t} else {\n\t\t\tswiper.slideTo(slideToIndex);\n\t\t}\n\t}\n\n\tvar slide = {\n\t\tslideTo: slideTo,\n\t\tslideToLoop: slideToLoop,\n\t\tslideNext: slideNext,\n\t\tslidePrev: slidePrev,\n\t\tslideReset: slideReset,\n\t\tslideToClosest: slideToClosest,\n\t\tslideToClickedSlide: slideToClickedSlide,\n\t};\n\n\tfunction loopCreate() {\n\t\tvar swiper = this;\n\t\tvar params = swiper.params;\n\t\tvar $wrapperEl = swiper.$wrapperEl;\n\t\t// Remove duplicated slides\n\t\t$wrapperEl\n\t\t\t.children(\n\t\t\t\t\".\" + params.slideClass + \".\" + params.slideDuplicateClass\n\t\t\t)\n\t\t\t.remove();\n\n\t\tvar slides = $wrapperEl.children(\".\" + params.slideClass);\n\n\t\tif (params.loopFillGroupWithBlank) {\n\t\t\tvar blankSlidesNum =\n\t\t\t\tparams.slidesPerGroup - (slides.length % params.slidesPerGroup);\n\t\t\tif (blankSlidesNum !== params.slidesPerGroup) {\n\t\t\t\tfor (var i = 0; i < blankSlidesNum; i += 1) {\n\t\t\t\t\tvar blankNode = $(doc.createElement(\"div\")).addClass(\n\t\t\t\t\t\tparams.slideClass + \" \" + params.slideBlankClass\n\t\t\t\t\t);\n\t\t\t\t\t$wrapperEl.append(blankNode);\n\t\t\t\t}\n\t\t\t\tslides = $wrapperEl.children(\".\" + params.slideClass);\n\t\t\t}\n\t\t}\n\n\t\tif (params.slidesPerView === \"auto\" && !params.loopedSlides) {\n\t\t\tparams.loopedSlides = slides.length;\n\t\t}\n\n\t\tswiper.loopedSlides = parseInt(\n\t\t\tparams.loopedSlides || params.slidesPerView,\n\t\t\t10\n\t\t);\n\t\tswiper.loopedSlides += params.loopAdditionalSlides;\n\t\tif (swiper.loopedSlides > slides.length) {\n\t\t\tswiper.loopedSlides = slides.length;\n\t\t}\n\n\t\tvar prependSlides = [];\n\t\tvar appendSlides = [];\n\t\tslides.each(function (index, el) {\n\t\t\tvar slide = $(el);\n\t\t\tif (index < swiper.loopedSlides) {\n\t\t\t\tappendSlides.push(el);\n\t\t\t}\n\t\t\tif (\n\t\t\t\tindex < slides.length &&\n\t\t\t\tindex >= slides.length - swiper.loopedSlides\n\t\t\t) {\n\t\t\t\tprependSlides.push(el);\n\t\t\t}\n\t\t\tslide.attr(\"data-swiper-slide-index\", index);\n\t\t});\n\t\tfor (var i$1 = 0; i$1 < appendSlides.length; i$1 += 1) {\n\t\t\t$wrapperEl.append(\n\t\t\t\t$(appendSlides[i$1].cloneNode(true)).addClass(\n\t\t\t\t\tparams.slideDuplicateClass\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tfor (var i$2 = prependSlides.length - 1; i$2 >= 0; i$2 -= 1) {\n\t\t\t$wrapperEl.prepend(\n\t\t\t\t$(prependSlides[i$2].cloneNode(true)).addClass(\n\t\t\t\t\tparams.slideDuplicateClass\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction loopFix() {\n\t\tvar swiper = this;\n\t\tvar params = swiper.params;\n\t\tvar activeIndex = swiper.activeIndex;\n\t\tvar slides = swiper.slides;\n\t\tvar loopedSlides = swiper.loopedSlides;\n\t\tvar allowSlidePrev = swiper.allowSlidePrev;\n\t\tvar allowSlideNext = swiper.allowSlideNext;\n\t\tvar snapGrid = swiper.snapGrid;\n\t\tvar rtl = swiper.rtlTranslate;\n\t\tvar newIndex;\n\t\tswiper.allowSlidePrev = true;\n\t\tswiper.allowSlideNext = true;\n\n\t\tvar snapTranslate = -snapGrid[activeIndex];\n\t\tvar diff = snapTranslate - swiper.getTranslate();\n\n\t\t// Fix For Negative Oversliding\n\t\tif (activeIndex < loopedSlides) {\n\t\t\tnewIndex = slides.length - loopedSlides * 3 + activeIndex;\n\t\t\tnewIndex += loopedSlides;\n\t\t\tvar slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\t\t\tif (slideChanged && diff !== 0) {\n\t\t\t\tswiper.setTranslate(\n\t\t\t\t\t(rtl ? -swiper.translate : swiper.translate) - diff\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (\n\t\t\t(params.slidesPerView === \"auto\" &&\n\t\t\t\tactiveIndex >= loopedSlides * 2) ||\n\t\t\tactiveIndex >= slides.length - loopedSlides\n\t\t) {\n\t\t\t// Fix For Positive Oversliding\n\t\t\tnewIndex = -slides.length + activeIndex + loopedSlides;\n\t\t\tnewIndex += loopedSlides;\n\t\t\tvar slideChanged$1 = swiper.slideTo(newIndex, 0, false, true);\n\t\t\tif (slideChanged$1 && diff !== 0) {\n\t\t\t\tswiper.setTranslate(\n\t\t\t\t\t(rtl ? -swiper.translate : swiper.translate) - diff\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tswiper.allowSlidePrev = allowSlidePrev;\n\t\tswiper.allowSlideNext = allowSlideNext;\n\t}\n\n\tfunction loopDestroy() {\n\t\tvar swiper = this;\n\t\tvar $wrapperEl = swiper.$wrapperEl;\n\t\tvar params = swiper.params;\n\t\tvar slides = swiper.slides;\n\t\t$wrapperEl\n\t\t\t.children(\n\t\t\t\t\".\" +\n\t\t\t\t\tparams.slideClass +\n\t\t\t\t\t\".\" +\n\t\t\t\t\tparams.slideDuplicateClass +\n\t\t\t\t\t\",.\" +\n\t\t\t\t\tparams.slideClass +\n\t\t\t\t\t\".\" +\n\t\t\t\t\tparams.slideBlankClass\n\t\t\t)\n\t\t\t.remove();\n\t\tslides.removeAttr(\"data-swiper-slide-index\");\n\t}\n\n\tvar loop = {\n\t\tloopCreate: loopCreate,\n\t\tloopFix: loopFix,\n\t\tloopDestroy: loopDestroy,\n\t};\n\n\tfunction setGrabCursor(moving) {\n\t\tvar swiper = this;\n\t\tif (\n\t\t\tSupport.touch ||\n\t\t\t!swiper.params.simulateTouch ||\n\t\t\t(swiper.params.watchOverflow && swiper.isLocked)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tvar el = swiper.el;\n\t\tel.style.cursor = \"move\";\n\t\tel.style.cursor = moving ? \"-webkit-grabbing\" : \"-webkit-grab\";\n\t\tel.style.cursor = moving ? \"-moz-grabbin\" : \"-moz-grab\";\n\t\tel.style.cursor = moving ? \"grabbing\" : \"grab\";\n\t}\n\n\tfunction unsetGrabCursor() {\n\t\tvar swiper = this;\n\t\tif (Support.touch || (swiper.params.watchOverflow && swiper.isLocked)) {\n\t\t\treturn;\n\t\t}\n\t\tswiper.el.style.cursor = \"\";\n\t}\n\n\tvar grabCursor = {\n\t\tsetGrabCursor: setGrabCursor,\n\t\tunsetGrabCursor: unsetGrabCursor,\n\t};\n\n\tfunction appendSlide(slides) {\n\t\tvar swiper = this;\n\t\tvar $wrapperEl = swiper.$wrapperEl;\n\t\tvar params = swiper.params;\n\t\tif (params.loop) {\n\t\t\tswiper.loopDestroy();\n\t\t}\n\t\tif (typeof slides === \"object\" && \"length\" in slides) {\n\t\t\tfor (var i = 0; i < slides.length; i += 1) {\n\t\t\t\tif (slides[i]) {\n\t\t\t\t\t$wrapperEl.append(slides[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t$wrapperEl.append(slides);\n\t\t}\n\t\tif (params.loop) {\n\t\t\tswiper.loopCreate();\n\t\t}\n\t\tif (!(params.observer && Support.observer)) {\n\t\t\tswiper.update();\n\t\t}\n\t}\n\n\tfunction prependSlide(slides) {\n\t\tvar swiper = this;\n\t\tvar params = swiper.params;\n\t\tvar $wrapperEl = swiper.$wrapperEl;\n\t\tvar activeIndex = swiper.activeIndex;\n\n\t\tif (params.loop) {\n\t\t\tswiper.loopDestroy();\n\t\t}\n\t\tvar newActiveIndex = activeIndex + 1;\n\t\tif (typeof slides === \"object\" && \"length\" in slides) {\n\t\t\tfor (var i = 0; i < slides.length; i += 1) {\n\t\t\t\tif (slides[i]) {\n\t\t\t\t\t$wrapperEl.prepend(slides[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tnewActiveIndex = activeIndex + slides.length;\n\t\t} else {\n\t\t\t$wrapperEl.prepend(slides);\n\t\t}\n\t\tif (params.loop) {\n\t\t\tswiper.loopCreate();\n\t\t}\n\t\tif (!(params.observer && Support.observer)) {\n\t\t\tswiper.update();\n\t\t}\n\t\tswiper.slideTo(newActiveIndex, 0, false);\n\t}\n\n\tfunction addSlide(index, slides) {\n\t\tvar swiper = this;\n\t\tvar $wrapperEl = swiper.$wrapperEl;\n\t\tvar params = swiper.params;\n\t\tvar activeIndex = swiper.activeIndex;\n\t\tvar activeIndexBuffer = activeIndex;\n\t\tif (params.loop) {\n\t\t\tactiveIndexBuffer -= swiper.loopedSlides;\n\t\t\tswiper.loopDestroy();\n\t\t\tswiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n\t\t}\n\t\tvar baseLength = swiper.slides.length;\n\t\tif (index <= 0) {\n\t\t\tswiper.prependSlide(slides);\n\t\t\treturn;\n\t\t}\n\t\tif (index >= baseLength) {\n\t\t\tswiper.appendSlide(slides);\n\t\t\treturn;\n\t\t}\n\t\tvar newActiveIndex =\n\t\t\tactiveIndexBuffer > index\n\t\t\t\t? activeIndexBuffer + 1\n\t\t\t\t: activeIndexBuffer;\n\n\t\tvar slidesBuffer = [];\n\t\tfor (var i = baseLength - 1; i >= index; i -= 1) {\n\t\t\tvar currentSlide = swiper.slides.eq(i);\n\t\t\tcurrentSlide.remove();\n\t\t\tslidesBuffer.unshift(currentSlide);\n\t\t}\n\n\t\tif (typeof slides === \"object\" && \"length\" in slides) {\n\t\t\tfor (var i$1 = 0; i$1 < slides.length; i$1 += 1) {\n\t\t\t\tif (slides[i$1]) {\n\t\t\t\t\t$wrapperEl.append(slides[i$1]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tnewActiveIndex =\n\t\t\t\tactiveIndexBuffer > index\n\t\t\t\t\t? activeIndexBuffer + slides.length\n\t\t\t\t\t: activeIndexBuffer;\n\t\t} else {\n\t\t\t$wrapperEl.append(slides);\n\t\t}\n\n\t\tfor (var i$2 = 0; i$2 < slidesBuffer.length; i$2 += 1) {\n\t\t\t$wrapperEl.append(slidesBuffer[i$2]);\n\t\t}\n\n\t\tif (params.loop) {\n\t\t\tswiper.loopCreate();\n\t\t}\n\t\tif (!(params.observer && Support.observer)) {\n\t\t\tswiper.update();\n\t\t}\n\t\tif (params.loop) {\n\t\t\tswiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n\t\t} else {\n\t\t\tswiper.slideTo(newActiveIndex, 0, false);\n\t\t}\n\t}\n\n\tfunction removeSlide(slidesIndexes) {\n\t\tvar swiper = this;\n\t\tvar params = swiper.params;\n\t\tvar $wrapperEl = swiper.$wrapperEl;\n\t\tvar activeIndex = swiper.activeIndex;\n\n\t\tvar activeIndexBuffer = activeIndex;\n\t\tif (params.loop) {\n\t\t\tactiveIndexBuffer -= swiper.loopedSlides;\n\t\t\tswiper.loopDestroy();\n\t\t\tswiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n\t\t}\n\t\tvar newActiveIndex = activeIndexBuffer;\n\t\tvar indexToRemove;\n\n\t\tif (typeof slidesIndexes === \"object\" && \"length\" in slidesIndexes) {\n\t\t\tfor (var i = 0; i < slidesIndexes.length; i += 1) {\n\t\t\t\tindexToRemove = slidesIndexes[i];\n\t\t\t\tif (swiper.slides[indexToRemove]) {\n\t\t\t\t\tswiper.slides.eq(indexToRemove).remove();\n\t\t\t\t}\n\t\t\t\tif (indexToRemove < newActiveIndex) {\n\t\t\t\t\tnewActiveIndex -= 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tnewActiveIndex = Math.max(newActiveIndex, 0);\n\t\t} else {\n\t\t\tindexToRemove = slidesIndexes;\n\t\t\tif (swiper.slides[indexToRemove]) {\n\t\t\t\tswiper.slides.eq(indexToRemove).remove();\n\t\t\t}\n\t\t\tif (indexToRemove < newActiveIndex) {\n\t\t\t\tnewActiveIndex -= 1;\n\t\t\t}\n\t\t\tnewActiveIndex = Math.max(newActiveIndex, 0);\n\t\t}\n\n\t\tif (params.loop) {\n\t\t\tswiper.loopCreate();\n\t\t}\n\n\t\tif (!(params.observer && Support.observer)) {\n\t\t\tswiper.update();\n\t\t}\n\t\tif (params.loop) {\n\t\t\tswiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n\t\t} else {\n\t\t\tswiper.slideTo(newActiveIndex, 0, false);\n\t\t}\n\t}\n\n\tfunction removeAllSlides() {\n\t\tvar swiper = this;\n\n\t\tvar slidesIndexes = [];\n\t\tfor (var i = 0; i < swiper.slides.length; i += 1) {\n\t\t\tslidesIndexes.push(i);\n\t\t}\n\t\tswiper.removeSlide(slidesIndexes);\n\t}\n\n\tvar manipulation = {\n\t\tappendSlide: appendSlide,\n\t\tprependSlide: prependSlide,\n\t\taddSlide: addSlide,\n\t\tremoveSlide: removeSlide,\n\t\tremoveAllSlides: removeAllSlides,\n\t};\n\n\tvar Device = (function Device() {\n\t\tvar ua = win.navigator.userAgent;\n\n\t\tvar device = {\n\t\t\tios: false,\n\t\t\tandroid: false,\n\t\t\tandroidChrome: false,\n\t\t\tdesktop: false,\n\t\t\twindows: false,\n\t\t\tiphone: false,\n\t\t\tipod: false,\n\t\t\tipad: false,\n\t\t\tcordova: win.cordova || win.phonegap,\n\t\t\tphonegap: win.cordova || win.phonegap,\n\t\t};\n\n\t\tvar windows = ua.match(/(Windows Phone);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\t\tvar android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\t\tvar ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n\t\tvar ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n\t\tvar iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n\n\t\t// Windows\n\t\tif (windows) {\n\t\t\tdevice.os = \"windows\";\n\t\t\tdevice.osVersion = windows[2];\n\t\t\tdevice.windows = true;\n\t\t}\n\t\t// Android\n\t\tif (android && !windows) {\n\t\t\tdevice.os = \"android\";\n\t\t\tdevice.osVersion = android[2];\n\t\t\tdevice.android = true;\n\t\t\tdevice.androidChrome = ua.toLowerCase().indexOf(\"chrome\") >= 0;\n\t\t}\n\t\tif (ipad || iphone || ipod) {\n\t\t\tdevice.os = \"ios\";\n\t\t\tdevice.ios = true;\n\t\t}\n\t\t// iOS\n\t\tif (iphone && !ipod) {\n\t\t\tdevice.osVersion = iphone[2].replace(/_/g, \".\");\n\t\t\tdevice.iphone = true;\n\t\t}\n\t\tif (ipad) {\n\t\t\tdevice.osVersion = ipad[2].replace(/_/g, \".\");\n\t\t\tdevice.ipad = true;\n\t\t}\n\t\tif (ipod) {\n\t\t\tdevice.osVersion = ipod[3] ? ipod[3].replace(/_/g, \".\") : null;\n\t\t\tdevice.iphone = true;\n\t\t}\n\t\t// iOS 8+ changed UA\n\t\tif (device.ios && device.osVersion && ua.indexOf(\"Version/\") >= 0) {\n\t\t\tif (device.osVersion.split(\".\")[0] === \"10\") {\n\t\t\t\tdevice.osVersion = ua\n\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t.split(\"version/\")[1]\n\t\t\t\t\t.split(\" \")[0];\n\t\t\t}\n\t\t}\n\n\t\t// Desktop\n\t\tdevice.desktop = !(device.os || device.android || device.webView);\n\n\t\t// Webview\n\t\tdevice.webView =\n\t\t\t(iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i);\n\n\t\t// Minimal UI\n\t\tif (device.os && device.os === \"ios\") {\n\t\t\tvar osVersionArr = device.osVersion.split(\".\");\n\t\t\tvar metaViewport = doc.querySelector('meta[name=\"viewport\"]');\n\t\t\tdevice.minimalUi =\n\t\t\t\t!device.webView &&\n\t\t\t\t(ipod || iphone) &&\n\t\t\t\t(osVersionArr[0] * 1 === 7\n\t\t\t\t\t? osVersionArr[1] * 1 >= 1\n\t\t\t\t\t: osVersionArr[0] * 1 > 7) &&\n\t\t\t\tmetaViewport &&\n\t\t\t\tmetaViewport.getAttribute(\"content\").indexOf(\"minimal-ui\") >= 0;\n\t\t}\n\n\t\t// Pixel Ratio\n\t\tdevice.pixelRatio = win.devicePixelRatio || 1;\n\n\t\t// Export object\n\t\treturn device;\n\t})();\n\n\tfunction onTouchStart(event) {\n\t\tvar swiper = this;\n\t\tvar data = swiper.touchEventsData;\n\t\tvar params = swiper.params;\n\t\tvar touches = swiper.touches;\n\t\tif (swiper.animating && params.preventInteractionOnTransition) {\n\t\t\treturn;\n\t\t}\n\t\tvar e = event;\n\t\tif (e.originalEvent) {\n\t\t\te = e.originalEvent;\n\t\t}\n\t\tdata.isTouchEvent = e.type === \"touchstart\";\n\t\tif (!data.isTouchEvent && \"which\" in e && e.which === 3) {\n\t\t\treturn;\n\t\t}\n\t\tif (!data.isTouchEvent && \"button\" in e && e.button > 0) {\n\t\t\treturn;\n\t\t}\n\t\tif (data.isTouched && data.isMoved) {\n\t\t\treturn;\n\t\t}\n\t\tif (\n\t\t\tparams.noSwiping &&\n\t\t\t$(e.target).closest(\n\t\t\t\tparams.noSwipingSelector\n\t\t\t\t\t? params.noSwipingSelector\n\t\t\t\t\t: \".\" + params.noSwipingClass\n\t\t\t)[0]\n\t\t) {\n\t\t\tswiper.allowClick = true;\n\t\t\treturn;\n\t\t}\n\t\tif (params.swipeHandler) {\n\t\t\tif (!$(e).closest(params.swipeHandler)[0]) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\ttouches.currentX =\n\t\t\te.type === \"touchstart\" ? e.targetTouches[0].pageX : e.pageX;\n\t\ttouches.currentY =\n\t\t\te.type === \"touchstart\" ? e.targetTouches[0].pageY : e.pageY;\n\t\tvar startX = touches.currentX;\n\t\tvar startY = touches.currentY;\n\n\t\t// Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore\n\n\t\tvar edgeSwipeDetection =\n\t\t\tparams.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n\t\tvar edgeSwipeThreshold =\n\t\t\tparams.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\t\tif (\n\t\t\tedgeSwipeDetection &&\n\t\t\t(startX <= edgeSwipeThreshold ||\n\t\t\t\tstartX >= win.screen.width - edgeSwipeThreshold)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tUtils.extend(data, {\n\t\t\tisTouched: true,\n\t\t\tisMoved: false,\n\t\t\tallowTouchCallbacks: true,\n\t\t\tisScrolling: undefined,\n\t\t\tstartMoving: undefined,\n\t\t});\n\n\t\ttouches.startX = startX;\n\t\ttouches.startY = startY;\n\t\tdata.touchStartTime = Utils.now();\n\t\tswiper.allowClick = true;\n\t\tswiper.updateSize();\n\t\tswiper.swipeDirection = undefined;\n\t\tif (params.threshold > 0) {\n\t\t\tdata.allowThresholdMove = false;\n\t\t}\n\t\tif (e.type !== \"touchstart\") {\n\t\t\tvar preventDefault = true;\n\t\t\tif ($(e.target).is(data.formElements)) {\n\t\t\t\tpreventDefault = false;\n\t\t\t}\n\t\t\tif (\n\t\t\t\tdoc.activeElement &&\n\t\t\t\t$(doc.activeElement).is(data.formElements) &&\n\t\t\t\tdoc.activeElement !== e.target\n\t\t\t) {\n\t\t\t\tdoc.activeElement.blur();\n\t\t\t}\n\n\t\t\tvar shouldPreventDefault =\n\t\t\t\tpreventDefault &&\n\t\t\t\tswiper.allowTouchMove &&\n\t\t\t\tparams.touchStartPreventDefault;\n\t\t\tif (params.touchStartForcePreventDefault || shouldPreventDefault) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t\tswiper.emit(\"touchStart\", e);\n\t}\n\n\tfunction onTouchMove(event) {\n\t\tvar swiper = this;\n\t\tvar data = swiper.touchEventsData;\n\t\tvar params = swiper.params;\n\t\tvar touches = swiper.touches;\n\t\tvar rtl = swiper.rtlTranslate;\n\t\tvar e = event;\n\t\tif (e.originalEvent) {\n\t\t\te = e.originalEvent;\n\t\t}\n\t\tif (!data.isTouched) {\n\t\t\tif (data.startMoving && data.isScrolling) {\n\t\t\t\tswiper.emit(\"touchMoveOpposite\", e);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (data.isTouchEvent && e.type === \"mousemove\") {\n\t\t\treturn;\n\t\t}\n\t\tvar pageX = e.type === \"touchmove\" ? e.targetTouches[0].pageX : e.pageX;\n\t\tvar pageY = e.type === \"touchmove\" ? e.targetTouches[0].pageY : e.pageY;\n\t\tif (e.preventedByNestedSwiper) {\n\t\t\ttouches.startX = pageX;\n\t\t\ttouches.startY = pageY;\n\t\t\treturn;\n\t\t}\n\t\tif (!swiper.allowTouchMove) {\n\t\t\t// isMoved = true;\n\t\t\tswiper.allowClick = false;\n\t\t\tif (data.isTouched) {\n\t\t\t\tUtils.extend(touches, {\n\t\t\t\t\tstartX: pageX,\n\t\t\t\t\tstartY: pageY,\n\t\t\t\t\tcurrentX: pageX,\n\t\t\t\t\tcurrentY: pageY,\n\t\t\t\t});\n\t\t\t\tdata.touchStartTime = Utils.now();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n\t\t\tif (swiper.isVertical()) {\n\t\t\t\t// Vertical\n\t\t\t\tif (\n\t\t\t\t\t(pageY < touches.startY &&\n\t\t\t\t\t\tswiper.translate <= swiper.maxTranslate()) ||\n\t\t\t\t\t(pageY > touches.startY &&\n\t\t\t\t\t\tswiper.translate >= swiper.minTranslate())\n\t\t\t\t) {\n\t\t\t\t\tdata.isTouched = false;\n\t\t\t\t\tdata.isMoved = false;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\t(pageX < touches.startX &&\n\t\t\t\t\tswiper.translate <= swiper.maxTranslate()) ||\n\t\t\t\t(pageX > touches.startX &&\n\t\t\t\t\tswiper.translate >= swiper.minTranslate())\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (data.isTouchEvent && doc.activeElement) {\n\t\t\tif (\n\t\t\t\te.target === doc.activeElement &&\n\t\t\t\t$(e.target).is(data.formElements)\n\t\t\t) {\n\t\t\t\tdata.isMoved = true;\n\t\t\t\tswiper.allowClick = false;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (data.allowTouchCallbacks) {\n\t\t\tswiper.emit(\"touchMove\", e);\n\t\t}\n\t\tif (e.targetTouches && e.targetTouches.length > 1) {\n\t\t\treturn;\n\t\t}\n\n\t\ttouches.currentX = pageX;\n\t\ttouches.currentY = pageY;\n\n\t\tvar diffX = touches.currentX - touches.startX;\n\t\tvar diffY = touches.currentY - touches.startY;\n\t\tif (\n\t\t\tswiper.params.threshold &&\n\t\t\tMath.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) <\n\t\t\t\tswiper.params.threshold\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (typeof data.isScrolling === \"undefined\") {\n\t\t\tvar touchAngle;\n\t\t\tif (\n\t\t\t\t(swiper.isHorizontal() &&\n\t\t\t\t\ttouches.currentY === touches.startY) ||\n\t\t\t\t(swiper.isVertical() && touches.currentX === touches.startX)\n\t\t\t) {\n\t\t\t\tdata.isScrolling = false;\n\t\t\t} else {\n\t\t\t\t// eslint-disable-next-line\n\t\t\t\tif (diffX * diffX + diffY * diffY >= 25) {\n\t\t\t\t\ttouchAngle =\n\t\t\t\t\t\t(Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) /\n\t\t\t\t\t\tMath.PI;\n\t\t\t\t\tdata.isScrolling = swiper.isHorizontal()\n\t\t\t\t\t\t? touchAngle > params.touchAngle\n\t\t\t\t\t\t: 90 - touchAngle > params.touchAngle;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (data.isScrolling) {\n\t\t\tswiper.emit(\"touchMoveOpposite\", e);\n\t\t}\n\t\tif (typeof data.startMoving === \"undefined\") {\n\t\t\tif (\n\t\t\t\ttouches.currentX !== touches.startX ||\n\t\t\t\ttouches.currentY !== touches.startY\n\t\t\t) {\n\t\t\t\tdata.startMoving = true;\n\t\t\t}\n\t\t}\n\t\tif (data.isScrolling) {\n\t\t\tdata.isTouched = false;\n\t\t\treturn;\n\t\t}\n\t\tif (!data.startMoving) {\n\t\t\treturn;\n\t\t}\n\t\tswiper.allowClick = false;\n\t\te.preventDefault();\n\t\tif (params.touchMoveStopPropagation && !params.nested) {\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\tif (!data.isMoved) {\n\t\t\tif (params.loop) {\n\t\t\t\tswiper.loopFix();\n\t\t\t}\n\t\t\tdata.startTranslate = swiper.getTranslate();\n\t\t\tswiper.setTransition(0);\n\t\t\tif (swiper.animating) {\n\t\t\t\tswiper.$wrapperEl.trigger(\"webkitTransitionEnd transitionend\");\n\t\t\t}\n\t\t\tdata.allowMomentumBounce = false;\n\t\t\t// Grab Cursor\n\t\t\tif (\n\t\t\t\tparams.grabCursor &&\n\t\t\t\t(swiper.allowSlideNext === true ||\n\t\t\t\t\tswiper.allowSlidePrev === true)\n\t\t\t) {\n\t\t\t\tswiper.setGrabCursor(true);\n\t\t\t}\n\t\t\tswiper.emit(\"sliderFirstMove\", e);\n\t\t}\n\t\tswiper.emit(\"sliderMove\", e);\n\t\tdata.isMoved = true;\n\n\t\tvar diff = swiper.isHorizontal() ? diffX : diffY;\n\t\ttouches.diff = diff;\n\n\t\tdiff *= params.touchRatio;\n\t\tif (rtl) {\n\t\t\tdiff = -diff;\n\t\t}\n\n\t\tswiper.swipeDirection = diff > 0 ? \"prev\" : \"next\";\n\t\tdata.currentTranslate = diff + data.startTranslate;\n\n\t\tvar disableParentSwiper = true;\n\t\tvar resistanceRatio = params.resistanceRatio;\n\t\tif (params.touchReleaseOnEdges) {\n\t\t\tresistanceRatio = 0;\n\t\t}\n\t\tif (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n\t\t\tdisableParentSwiper = false;\n\t\t\tif (params.resistance) {\n\t\t\t\tdata.currentTranslate =\n\t\t\t\t\tswiper.minTranslate() -\n\t\t\t\t\t1 +\n\t\t\t\t\tMath.pow(\n\t\t\t\t\t\t-swiper.minTranslate() + data.startTranslate + diff,\n\t\t\t\t\t\tresistanceRatio\n\t\t\t\t\t);\n\t\t\t}\n\t\t} else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n\t\t\tdisableParentSwiper = false;\n\t\t\tif (params.resistance) {\n\t\t\t\tdata.currentTranslate =\n\t\t\t\t\tswiper.maxTranslate() +\n\t\t\t\t\t1 -\n\t\t\t\t\tMath.pow(\n\t\t\t\t\t\tswiper.maxTranslate() - data.startTranslate - diff,\n\t\t\t\t\t\tresistanceRatio\n\t\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (disableParentSwiper) {\n\t\t\te.preventedByNestedSwiper = true;\n\t\t}\n\n\t\t// Directions locks\n\t\tif (\n\t\t\t!swiper.allowSlideNext &&\n\t\t\tswiper.swipeDirection === \"next\" &&\n\t\t\tdata.currentTranslate < data.startTranslate\n\t\t) {\n\t\t\tdata.currentTranslate = data.startTranslate;\n\t\t}\n\t\tif (\n\t\t\t!swiper.allowSlidePrev &&\n\t\t\tswiper.swipeDirection === \"prev\" &&\n\t\t\tdata.currentTranslate > data.startTranslate\n\t\t) {\n\t\t\tdata.currentTranslate = data.startTranslate;\n\t\t}\n\n\t\t// Threshold\n\t\tif (params.threshold > 0) {\n\t\t\tif (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n\t\t\t\tif (!data.allowThresholdMove) {\n\t\t\t\t\tdata.allowThresholdMove = true;\n\t\t\t\t\ttouches.startX = touches.currentX;\n\t\t\t\t\ttouches.startY = touches.currentY;\n\t\t\t\t\tdata.currentTranslate = data.startTranslate;\n\t\t\t\t\ttouches.diff = swiper.isHorizontal()\n\t\t\t\t\t\t? touches.currentX - touches.startX\n\t\t\t\t\t\t: touches.currentY - touches.startY;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdata.currentTranslate = data.startTranslate;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (!params.followFinger) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Update active index in free mode\n\t\tif (\n\t\t\tparams.freeMode ||\n\t\t\tparams.watchSlidesProgress ||\n\t\t\tparams.watchSlidesVisibility\n\t\t) {\n\t\t\tswiper.updateActiveIndex();\n\t\t\tswiper.updateSlidesClasses();\n\t\t}\n\t\tif (params.freeMode) {\n\t\t\t// Velocity\n\t\t\tif (data.velocities.length === 0) {\n\t\t\t\tdata.velocities.push({\n\t\t\t\t\tposition:\n\t\t\t\t\t\ttouches[swiper.isHorizontal() ? \"startX\" : \"startY\"],\n\t\t\t\t\ttime: data.touchStartTime,\n\t\t\t\t});\n\t\t\t}\n\t\t\tdata.velocities.push({\n\t\t\t\tposition:\n\t\t\t\t\ttouches[swiper.isHorizontal() ? \"currentX\" : \"currentY\"],\n\t\t\t\ttime: Utils.now(),\n\t\t\t});\n\t\t}\n\t\t// Update progress\n\t\tswiper.updateProgress(data.currentTranslate);\n\t\t// Update translate\n\t\tswiper.setTranslate(data.currentTranslate);\n\t}\n\n\tfunction onTouchEnd(event) {\n\t\tvar swiper = this;\n\t\tvar data = swiper.touchEventsData;\n\n\t\tvar params = swiper.params;\n\t\tvar touches = swiper.touches;\n\t\tvar rtl = swiper.rtlTranslate;\n\t\tvar $wrapperEl = swiper.$wrapperEl;\n\t\tvar slidesGrid = swiper.slidesGrid;\n\t\tvar snapGrid = swiper.snapGrid;\n\t\tvar e = event;\n\t\tif (e.originalEvent) {\n\t\t\te = e.originalEvent;\n\t\t}\n\t\tif (data.allowTouchCallbacks) {\n\t\t\tswiper.emit(\"touchEnd\", e);\n\t\t}\n\t\tdata.allowTouchCallbacks = false;\n\t\tif (!data.isTouched) {\n\t\t\tif (data.isMoved && params.grabCursor) {\n\t\t\t\tswiper.setGrabCursor(false);\n\t\t\t}\n\t\t\tdata.isMoved = false;\n\t\t\tdata.startMoving = false;\n\t\t\treturn;\n\t\t}\n\t\t// Return Grab Cursor\n\t\tif (\n\t\t\tparams.grabCursor &&\n\t\t\tdata.isMoved &&\n\t\t\tdata.isTouched &&\n\t\t\t(swiper.allowSlideNext === true || swiper.allowSlidePrev === true)\n\t\t) {\n\t\t\tswiper.setGrabCursor(false);\n\t\t}\n\n\t\t// Time diff\n\t\tvar touchEndTime = Utils.now();\n\t\tvar timeDiff = touchEndTime - data.touchStartTime;\n\n\t\t// Tap, doubleTap, Click\n\t\tif (swiper.allowClick) {\n\t\t\tswiper.updateClickedSlide(e);\n\t\t\tswiper.emit(\"tap\", e);\n\t\t\tif (timeDiff < 300 && touchEndTime - data.lastClickTime > 300) {\n\t\t\t\tif (data.clickTimeout) {\n\t\t\t\t\tclearTimeout(data.clickTimeout);\n\t\t\t\t}\n\t\t\t\tdata.clickTimeout = Utils.nextTick(function () {\n\t\t\t\t\tif (!swiper || swiper.destroyed) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tswiper.emit(\"click\", e);\n\t\t\t\t}, 300);\n\t\t\t}\n\t\t\tif (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n\t\t\t\tif (data.clickTimeout) {\n\t\t\t\t\tclearTimeout(data.clickTimeout);\n\t\t\t\t}\n\t\t\t\tswiper.emit(\"doubleTap\", e);\n\t\t\t}\n\t\t}\n\n\t\tdata.lastClickTime = Utils.now();\n\t\tUtils.nextTick(function () {\n\t\t\tif (!swiper.destroyed) {\n\t\t\t\tswiper.allowClick = true;\n\t\t\t}\n\t\t});\n\n\t\tif (\n\t\t\t!data.isTouched ||\n\t\t\t!data.isMoved ||\n\t\t\t!swiper.swipeDirection ||\n\t\t\ttouches.diff === 0 ||\n\t\t\tdata.currentTranslate === data.startTranslate\n\t\t) {\n\t\t\tdata.isTouched = false;\n\t\t\tdata.isMoved = false;\n\t\t\tdata.startMoving = false;\n\t\t\treturn;\n\t\t}\n\t\tdata.isTouched = false;\n\t\tdata.isMoved = false;\n\t\tdata.startMoving = false;\n\n\t\tvar currentPos;\n\t\tif (params.followFinger) {\n\t\t\tcurrentPos = rtl ? swiper.translate : -swiper.translate;\n\t\t} else {\n\t\t\tcurrentPos = -data.currentTranslate;\n\t\t}\n\n\t\tif (params.freeMode) {\n\t\t\tif (currentPos < -swiper.minTranslate()) {\n\t\t\t\tswiper.slideTo(swiper.activeIndex);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (currentPos > -swiper.maxTranslate()) {\n\t\t\t\tif (swiper.slides.length < snapGrid.length) {\n\t\t\t\t\tswiper.slideTo(snapGrid.length - 1);\n\t\t\t\t} else {\n\t\t\t\t\tswiper.slideTo(swiper.slides.length - 1);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (params.freeModeMomentum) {\n\t\t\t\tif (data.velocities.length > 1) {\n\t\t\t\t\tvar lastMoveEvent = data.velocities.pop();\n\t\t\t\t\tvar velocityEvent = data.velocities.pop();\n\n\t\t\t\t\tvar distance =\n\t\t\t\t\t\tlastMoveEvent.position - velocityEvent.position;\n\t\t\t\t\tvar time = lastMoveEvent.time - velocityEvent.time;\n\t\t\t\t\tswiper.velocity = distance / time;\n\t\t\t\t\tswiper.velocity /= 2;\n\t\t\t\t\tif (\n\t\t\t\t\t\tMath.abs(swiper.velocity) <\n\t\t\t\t\t\tparams.freeModeMinimumVelocity\n\t\t\t\t\t) {\n\t\t\t\t\t\tswiper.velocity = 0;\n\t\t\t\t\t}\n\t\t\t\t\t// this implies that the user stopped moving a finger then released.\n\t\t\t\t\t// There would be no events with distance zero, so the last event is stale.\n\t\t\t\t\tif (time > 150 || Utils.now() - lastMoveEvent.time > 300) {\n\t\t\t\t\t\tswiper.velocity = 0;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tswiper.velocity = 0;\n\t\t\t\t}\n\t\t\t\tswiper.velocity *= params.freeModeMomentumVelocityRatio;\n\n\t\t\t\tdata.velocities.length = 0;\n\t\t\t\tvar momentumDuration = 1000 * params.freeModeMomentumRatio;\n\t\t\t\tvar momentumDistance = swiper.velocity * momentumDuration;\n\n\t\t\t\tvar newPosition = swiper.translate + momentumDistance;\n\t\t\t\tif (rtl) {\n\t\t\t\t\tnewPosition = -newPosition;\n\t\t\t\t}\n\n\t\t\t\tvar doBounce = false;\n\t\t\t\tvar afterBouncePosition;\n\t\t\t\tvar bounceAmount =\n\t\t\t\t\tMath.abs(swiper.velocity) *\n\t\t\t\t\t20 *\n\t\t\t\t\tparams.freeModeMomentumBounceRatio;\n\t\t\t\tvar needsLoopFix;\n\t\t\t\tif (newPosition < swiper.maxTranslate()) {\n\t\t\t\t\tif (params.freeModeMomentumBounce) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tnewPosition + swiper.maxTranslate() <\n\t\t\t\t\t\t\t-bounceAmount\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tnewPosition = swiper.maxTranslate() - bounceAmount;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tafterBouncePosition = swiper.maxTranslate();\n\t\t\t\t\t\tdoBounce = true;\n\t\t\t\t\t\tdata.allowMomentumBounce = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewPosition = swiper.maxTranslate();\n\t\t\t\t\t}\n\t\t\t\t\tif (params.loop && params.centeredSlides) {\n\t\t\t\t\t\tneedsLoopFix = true;\n\t\t\t\t\t}\n\t\t\t\t} else if (newPosition > swiper.minTranslate()) {\n\t\t\t\t\tif (params.freeModeMomentumBounce) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tnewPosition - swiper.minTranslate() >\n\t\t\t\t\t\t\tbounceAmount\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tnewPosition = swiper.minTranslate() + bounceAmount;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tafterBouncePosition = swiper.minTranslate();\n\t\t\t\t\t\tdoBounce = true;\n\t\t\t\t\t\tdata.allowMomentumBounce = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewPosition = swiper.minTranslate();\n\t\t\t\t\t}\n\t\t\t\t\tif (params.loop && params.centeredSlides) {\n\t\t\t\t\t\tneedsLoopFix = true;\n\t\t\t\t\t}\n\t\t\t\t} else if (params.freeModeSticky) {\n\t\t\t\t\tvar nextSlide;\n\t\t\t\t\tfor (var j = 0; j < snapGrid.length; j += 1) {\n\t\t\t\t\t\tif (snapGrid[j] > -newPosition) {\n\t\t\t\t\t\t\tnextSlide = j;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tMath.abs(snapGrid[nextSlide] - newPosition) <\n\t\t\t\t\t\t\tMath.abs(snapGrid[nextSlide - 1] - newPosition) ||\n\t\t\t\t\t\tswiper.swipeDirection === \"next\"\n\t\t\t\t\t) {\n\t\t\t\t\t\tnewPosition = snapGrid[nextSlide];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewPosition = snapGrid[nextSlide - 1];\n\t\t\t\t\t}\n\t\t\t\t\tnewPosition = -newPosition;\n\t\t\t\t}\n\t\t\t\tif (needsLoopFix) {\n\t\t\t\t\tswiper.once(\"transitionEnd\", function () {\n\t\t\t\t\t\tswiper.loopFix();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t// Fix duration\n\t\t\t\tif (swiper.velocity !== 0) {\n\t\t\t\t\tif (rtl) {\n\t\t\t\t\t\tmomentumDuration = Math.abs(\n\t\t\t\t\t\t\t(-newPosition - swiper.translate) / swiper.velocity\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmomentumDuration = Math.abs(\n\t\t\t\t\t\t\t(newPosition - swiper.translate) / swiper.velocity\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else if (params.freeModeSticky) {\n\t\t\t\t\tswiper.slideToClosest();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (params.freeModeMomentumBounce && doBounce) {\n\t\t\t\t\tswiper.updateProgress(afterBouncePosition);\n\t\t\t\t\tswiper.setTransition(momentumDuration);\n\t\t\t\t\tswiper.setTranslate(newPosition);\n\t\t\t\t\tswiper.transitionStart(true, swiper.swipeDirection);\n\t\t\t\t\tswiper.animating = true;\n\t\t\t\t\t$wrapperEl.transitionEnd(function () {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!swiper ||\n\t\t\t\t\t\t\tswiper.destroyed ||\n\t\t\t\t\t\t\t!data.allowMomentumBounce\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tswiper.emit(\"momentumBounce\");\n\n\t\t\t\t\t\tswiper.setTransition(params.speed);\n\t\t\t\t\t\tswiper.setTranslate(afterBouncePosition);\n\t\t\t\t\t\t$wrapperEl.transitionEnd(function () {\n\t\t\t\t\t\t\tif (!swiper || swiper.destroyed) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tswiper.transitionEnd();\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t} else if (swiper.velocity) {\n\t\t\t\t\tswiper.updateProgress(newPosition);\n\t\t\t\t\tswiper.setTransition(momentumDuration);\n\t\t\t\t\tswiper.setTranslate(newPosition);\n\t\t\t\t\tswiper.transitionStart(true, swiper.swipeDirection);\n\t\t\t\t\tif (!swiper.animating) {\n\t\t\t\t\t\tswiper.animating = true;\n\t\t\t\t\t\t$wrapperEl.transitionEnd(function () {\n\t\t\t\t\t\t\tif (!swiper || swiper.destroyed) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tswiper.transitionEnd();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tswiper.updateProgress(newPosition);\n\t\t\t\t}\n\n\t\t\t\tswiper.updateActiveIndex();\n\t\t\t\tswiper.updateSlidesClasses();\n\t\t\t} else if (params.freeModeSticky) {\n\t\t\t\tswiper.slideToClosest();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n\t\t\t\tswiper.updateProgress();\n\t\t\t\tswiper.updateActiveIndex();\n\t\t\t\tswiper.updateSlidesClasses();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Find current slide\n\t\tvar stopIndex = 0;\n\t\tvar groupSize = swiper.slidesSizesGrid[0];\n\t\tfor (var i = 0; i < slidesGrid.length; i += params.slidesPerGroup) {\n\t\t\tif (typeof slidesGrid[i + params.slidesPerGroup] !== \"undefined\") {\n\t\t\t\tif (\n\t\t\t\t\tcurrentPos >= slidesGrid[i] &&\n\t\t\t\t\tcurrentPos < slidesGrid[i + params.slidesPerGroup]\n\t\t\t\t) {\n\t\t\t\t\tstopIndex = i;\n\t\t\t\t\tgroupSize =\n\t\t\t\t\t\tslidesGrid[i + params.slidesPerGroup] - slidesGrid[i];\n\t\t\t\t}\n\t\t\t} else if (currentPos >= slidesGrid[i]) {\n\t\t\t\tstopIndex = i;\n\t\t\t\tgroupSize =\n\t\t\t\t\tslidesGrid[slidesGrid.length - 1] -\n\t\t\t\t\tslidesGrid[slidesGrid.length - 2];\n\t\t\t}\n\t\t}\n\n\t\t// Find current slide size\n\t\tvar ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n\n\t\tif (timeDiff > params.longSwipesMs) {\n\t\t\t// Long touches\n\t\t\tif (!params.longSwipes) {\n\t\t\t\tswiper.slideTo(swiper.activeIndex);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (swiper.swipeDirection === \"next\") {\n\t\t\t\tif (ratio >= params.longSwipesRatio) {\n\t\t\t\t\tswiper.slideTo(stopIndex + params.slidesPerGroup);\n\t\t\t\t} else {\n\t\t\t\t\tswiper.slideTo(stopIndex);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (swiper.swipeDirection === \"prev\") {\n\t\t\t\tif (ratio > 1 - params.longSwipesRatio) {\n\t\t\t\t\tswiper.slideTo(stopIndex + params.slidesPerGroup);\n\t\t\t\t} else {\n\t\t\t\t\tswiper.slideTo(stopIndex);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// Short swipes\n\t\t\tif (!params.shortSwipes) {\n\t\t\t\tswiper.slideTo(swiper.activeIndex);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (swiper.swipeDirection === \"next\") {\n\t\t\t\tswiper.slideTo(stopIndex + params.slidesPerGroup);\n\t\t\t}\n\t\t\tif (swiper.swipeDirection === \"prev\") {\n\t\t\t\tswiper.slideTo(stopIndex);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onResize() {\n\t\tvar swiper = this;\n\n\t\tvar params = swiper.params;\n\t\tvar el = swiper.el;\n\n\t\tif (el && el.offsetWidth === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Breakpoints\n\t\tif (params.breakpoints) {\n\t\t\tswiper.setBreakpoint();\n\t\t}\n\n\t\t// Save locks\n\t\tvar allowSlideNext = swiper.allowSlideNext;\n\t\tvar allowSlidePrev = swiper.allowSlidePrev;\n\t\tvar snapGrid = swiper.snapGrid;\n\n\t\t// Disable locks on resize\n\t\tswiper.allowSlideNext = true;\n\t\tswiper.allowSlidePrev = true;\n\n\t\tswiper.updateSize();\n\t\tswiper.updateSlides();\n\n\t\tif (params.freeMode) {\n\t\t\tvar newTranslate = Math.min(\n\t\t\t\tMath.max(swiper.translate, swiper.maxTranslate()),\n\t\t\t\tswiper.minTranslate()\n\t\t\t);\n\t\t\tswiper.setTranslate(newTranslate);\n\t\t\tswiper.updateActiveIndex();\n\t\t\tswiper.updateSlidesClasses();\n\n\t\t\tif (params.autoHeight) {\n\t\t\t\tswiper.updateAutoHeight();\n\t\t\t}\n\t\t} else {\n\t\t\tswiper.updateSlidesClasses();\n\t\t\tif (\n\t\t\t\t(params.slidesPerView === \"auto\" || params.slidesPerView > 1) &&\n\t\t\t\tswiper.isEnd &&\n\t\t\t\t!swiper.params.centeredSlides\n\t\t\t) {\n\t\t\t\tswiper.slideTo(swiper.slides.length - 1, 0, false, true);\n\t\t\t} else {\n\t\t\t\tswiper.slideTo(swiper.activeIndex, 0, false, true);\n\t\t\t}\n\t\t}\n\t\t// Return locks after resize\n\t\tswiper.allowSlidePrev = allowSlidePrev;\n\t\tswiper.allowSlideNext = allowSlideNext;\n\n\t\tif (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n\t\t\tswiper.checkOverflow();\n\t\t}\n\t}\n\n\tfunction onClick(e) {\n\t\tvar swiper = this;\n\t\tif (!swiper.allowClick) {\n\t\t\tif (swiper.params.preventClicks) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t\tif (swiper.params.preventClicksPropagation && swiper.animating) {\n\t\t\t\te.stopPropagation();\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction attachEvents() {\n\t\tvar swiper = this;\n\t\tvar params = swiper.params;\n\t\tvar touchEvents = swiper.touchEvents;\n\t\tvar el = swiper.el;\n\t\tvar wrapperEl = swiper.wrapperEl;\n\n\t\t{\n\t\t\tswiper.onTouchStart = onTouchStart.bind(swiper);\n\t\t\tswiper.onTouchMove = onTouchMove.bind(swiper);\n\t\t\tswiper.onTouchEnd = onTouchEnd.bind(swiper);\n\t\t}\n\n\t\tswiper.onClick = onClick.bind(swiper);\n\n\t\tvar target = params.touchEventsTarget === \"container\" ? el : wrapperEl;\n\t\tvar capture = !!params.nested;\n\n\t\t// Touch Events\n\t\t{\n\t\t\tif (\n\t\t\t\t!Support.touch &&\n\t\t\t\t(Support.pointerEvents || Support.prefixedPointerEvents)\n\t\t\t) {\n\t\t\t\ttarget.addEventListener(\n\t\t\t\t\ttouchEvents.start,\n\t\t\t\t\tswiper.onTouchStart,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tdoc.addEventListener(\n\t\t\t\t\ttouchEvents.move,\n\t\t\t\t\tswiper.onTouchMove,\n\t\t\t\t\tcapture\n\t\t\t\t);\n\t\t\t\tdoc.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n\t\t\t} else {\n\t\t\t\tif (Support.touch) {\n\t\t\t\t\tvar passiveListener =\n\t\t\t\t\t\ttouchEvents.start === \"touchstart\" &&\n\t\t\t\t\t\tSupport.passiveListener &&\n\t\t\t\t\t\tparams.passiveListeners\n\t\t\t\t\t\t\t? { passive: true, capture: false }\n\t\t\t\t\t\t\t: false;\n\t\t\t\t\ttarget.addEventListener(\n\t\t\t\t\t\ttouchEvents.start,\n\t\t\t\t\t\tswiper.onTouchStart,\n\t\t\t\t\t\tpassiveListener\n\t\t\t\t\t);\n\t\t\t\t\ttarget.addEventListener(\n\t\t\t\t\t\ttouchEvents.move,\n\t\t\t\t\t\tswiper.onTouchMove,\n\t\t\t\t\t\tSupport.passiveListener\n\t\t\t\t\t\t\t? { passive: false, capture: capture }\n\t\t\t\t\t\t\t: capture\n\t\t\t\t\t);\n\t\t\t\t\ttarget.addEventListener(\n\t\t\t\t\t\ttouchEvents.end,\n\t\t\t\t\t\tswiper.onTouchEnd,\n\t\t\t\t\t\tpassiveListener\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\t(params.simulateTouch && !Device.ios && !Device.android) ||\n\t\t\t\t\t(params.simulateTouch && !Support.touch && Device.ios)\n\t\t\t\t) {\n\t\t\t\t\ttarget.addEventListener(\n\t\t\t\t\t\t\"mousedown\",\n\t\t\t\t\t\tswiper.onTouchStart,\n\t\t\t\t\t\tfalse\n\t\t\t\t\t);\n\t\t\t\t\tdoc.addEventListener(\n\t\t\t\t\t\t\"mousemove\",\n\t\t\t\t\t\tswiper.onTouchMove,\n\t\t\t\t\t\tcapture\n\t\t\t\t\t);\n\t\t\t\t\tdoc.addEventListener(\"mouseup\", swiper.onTouchEnd, false);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Prevent Links Clicks\n\t\t\tif (params.preventClicks || params.preventClicksPropagation) {\n\t\t\t\ttarget.addEventListener(\"click\", swiper.onClick, true);\n\t\t\t}\n\t\t}\n\n\t\t// Resize handler\n\t\tswiper.on(\n\t\t\tDevice.ios || Device.android\n\t\t\t\t? \"resize orientationchange observerUpdate\"\n\t\t\t\t: \"resize observerUpdate\",\n\t\t\tonResize,\n\t\t\ttrue\n\t\t);\n\t}\n\n\tfunction detachEvents() {\n\t\tvar swiper = this;\n\n\t\tvar params = swiper.params;\n\t\tvar touchEvents = swiper.touchEvents;\n\t\tvar el = swiper.el;\n\t\tvar wrapperEl = swiper.wrapperEl;\n\n\t\tvar target = params.touchEventsTarget === \"container\" ? el : wrapperEl;\n\t\tvar capture = !!params.nested;\n\n\t\t// Touch Events\n\t\t{\n\t\t\tif (\n\t\t\t\t!Support.touch &&\n\t\t\t\t(Support.pointerEvents || Support.prefixedPointerEvents)\n\t\t\t) {\n\t\t\t\ttarget.removeEventListener(\n\t\t\t\t\ttouchEvents.start,\n\t\t\t\t\tswiper.onTouchStart,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tdoc.removeEventListener(\n\t\t\t\t\ttouchEvents.move,\n\t\t\t\t\tswiper.onTouchMove,\n\t\t\t\t\tcapture\n\t\t\t\t);\n\t\t\t\tdoc.removeEventListener(\n\t\t\t\t\ttouchEvents.end,\n\t\t\t\t\tswiper.onTouchEnd,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tif (Support.touch) {\n\t\t\t\t\tvar passiveListener =\n\t\t\t\t\t\ttouchEvents.start === \"onTouchStart\" &&\n\t\t\t\t\t\tSupport.passiveListener &&\n\t\t\t\t\t\tparams.passiveListeners\n\t\t\t\t\t\t\t? { passive: true, capture: false }\n\t\t\t\t\t\t\t: false;\n\t\t\t\t\ttarget.removeEventListener(\n\t\t\t\t\t\ttouchEvents.start,\n\t\t\t\t\t\tswiper.onTouchStart,\n\t\t\t\t\t\tpassiveListener\n\t\t\t\t\t);\n\t\t\t\t\ttarget.removeEventListener(\n\t\t\t\t\t\ttouchEvents.move,\n\t\t\t\t\t\tswiper.onTouchMove,\n\t\t\t\t\t\tcapture\n\t\t\t\t\t);\n\t\t\t\t\ttarget.removeEventListener(\n\t\t\t\t\t\ttouchEvents.end,\n\t\t\t\t\t\tswiper.onTouchEnd,\n\t\t\t\t\t\tpassiveListener\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\t(params.simulateTouch && !Device.ios && !Device.android) ||\n\t\t\t\t\t(params.simulateTouch && !Support.touch && Device.ios)\n\t\t\t\t) {\n\t\t\t\t\ttarget.removeEventListener(\n\t\t\t\t\t\t\"mousedown\",\n\t\t\t\t\t\tswiper.onTouchStart,\n\t\t\t\t\t\tfalse\n\t\t\t\t\t);\n\t\t\t\t\tdoc.removeEventListener(\n\t\t\t\t\t\t\"mousemove\",\n\t\t\t\t\t\tswiper.onTouchMove,\n\t\t\t\t\t\tcapture\n\t\t\t\t\t);\n\t\t\t\t\tdoc.removeEventListener(\n\t\t\t\t\t\t\"mouseup\",\n\t\t\t\t\t\tswiper.onTouchEnd,\n\t\t\t\t\t\tfalse\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Prevent Links Clicks\n\t\t\tif (params.preventClicks || params.preventClicksPropagation) {\n\t\t\t\ttarget.removeEventListener(\"click\", swiper.onClick, true);\n\t\t\t}\n\t\t}\n\n\t\t// Resize handler\n\t\tswiper.off(\n\t\t\tDevice.ios || Device.android\n\t\t\t\t? \"resize orientationchange observerUpdate\"\n\t\t\t\t: \"resize observerUpdate\",\n\t\t\tonResize\n\t\t);\n\t}\n\n\tvar events = {\n\t\tattachEvents: attachEvents,\n\t\tdetachEvents: detachEvents,\n\t};\n\n\tfunction setBreakpoint() {\n\t\tvar swiper = this;\n\t\tvar activeIndex = swiper.activeIndex;\n\t\tvar initialized = swiper.initialized;\n\t\tvar loopedSlides = swiper.loopedSlides;\n\t\tif (loopedSlides === void 0) loopedSlides = 0;\n\t\tvar params = swiper.params;\n\t\tvar breakpoints = params.breakpoints;\n\t\tif (\n\t\t\t!breakpoints ||\n\t\t\t(breakpoints && Object.keys(breakpoints).length === 0)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Set breakpoint for window width and update parameters\n\t\tvar breakpoint = swiper.getBreakpoint(breakpoints);\n\n\t\tif (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n\t\t\tvar breakpointOnlyParams =\n\t\t\t\tbreakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\t\t\tif (breakpointOnlyParams) {\n\t\t\t\t[\"slidesPerView\", \"spaceBetween\", \"slidesPerGroup\"].forEach(\n\t\t\t\t\tfunction (param) {\n\t\t\t\t\t\tvar paramValue = breakpointOnlyParams[param];\n\t\t\t\t\t\tif (typeof paramValue === \"undefined\") {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tparam === \"slidesPerView\" &&\n\t\t\t\t\t\t\t(paramValue === \"AUTO\" || paramValue === \"auto\")\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tbreakpointOnlyParams[param] = \"auto\";\n\t\t\t\t\t\t} else if (param === \"slidesPerView\") {\n\t\t\t\t\t\t\tbreakpointOnlyParams[param] =\n\t\t\t\t\t\t\t\tparseFloat(paramValue);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreakpointOnlyParams[param] = parseInt(\n\t\t\t\t\t\t\t\tparamValue,\n\t\t\t\t\t\t\t\t10\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tvar breakpointParams =\n\t\t\t\tbreakpointOnlyParams || swiper.originalParams;\n\t\t\tvar directionChanged =\n\t\t\t\tbreakpointParams.direction &&\n\t\t\t\tbreakpointParams.direction !== params.direction;\n\t\t\tvar needsReLoop =\n\t\t\t\tparams.loop &&\n\t\t\t\t(breakpointParams.slidesPerView !== params.slidesPerView ||\n\t\t\t\t\tdirectionChanged);\n\n\t\t\tif (directionChanged && initialized) {\n\t\t\t\tswiper.changeDirection();\n\t\t\t}\n\n\t\t\tUtils.extend(swiper.params, breakpointParams);\n\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tallowTouchMove: swiper.params.allowTouchMove,\n\t\t\t\tallowSlideNext: swiper.params.allowSlideNext,\n\t\t\t\tallowSlidePrev: swiper.params.allowSlidePrev,\n\t\t\t});\n\n\t\t\tswiper.currentBreakpoint = breakpoint;\n\n\t\t\tif (needsReLoop && initialized) {\n\t\t\t\tswiper.loopDestroy();\n\t\t\t\tswiper.loopCreate();\n\t\t\t\tswiper.updateSlides();\n\t\t\t\tswiper.slideTo(\n\t\t\t\t\tactiveIndex - loopedSlides + swiper.loopedSlides,\n\t\t\t\t\t0,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tswiper.emit(\"breakpoint\", breakpointParams);\n\t\t}\n\t}\n\n\tfunction getBreakpoint(breakpoints) {\n\t\tvar swiper = this;\n\t\t// Get breakpoint for window width\n\t\tif (!breakpoints) {\n\t\t\treturn undefined;\n\t\t}\n\t\tvar breakpoint = false;\n\t\tvar points = [];\n\t\tObject.keys(breakpoints).forEach(function (point) {\n\t\t\tpoints.push(point);\n\t\t});\n\t\tpoints.sort(function (a, b) {\n\t\t\treturn parseInt(a, 10) - parseInt(b, 10);\n\t\t});\n\t\tfor (var i = 0; i < points.length; i += 1) {\n\t\t\tvar point = points[i];\n\t\t\tif (swiper.params.breakpointsInverse) {\n\t\t\t\tif (point <= win.innerWidth) {\n\t\t\t\t\tbreakpoint = point;\n\t\t\t\t}\n\t\t\t} else if (point >= win.innerWidth && !breakpoint) {\n\t\t\t\tbreakpoint = point;\n\t\t\t}\n\t\t}\n\t\treturn breakpoint || \"max\";\n\t}\n\n\tvar breakpoints = {\n\t\tsetBreakpoint: setBreakpoint,\n\t\tgetBreakpoint: getBreakpoint,\n\t};\n\n\tfunction addClasses() {\n\t\tvar swiper = this;\n\t\tvar classNames = swiper.classNames;\n\t\tvar params = swiper.params;\n\t\tvar rtl = swiper.rtl;\n\t\tvar $el = swiper.$el;\n\t\tvar suffixes = [];\n\n\t\tsuffixes.push(\"initialized\");\n\t\tsuffixes.push(params.direction);\n\n\t\tif (params.freeMode) {\n\t\t\tsuffixes.push(\"free-mode\");\n\t\t}\n\t\tif (!Support.flexbox) {\n\t\t\tsuffixes.push(\"no-flexbox\");\n\t\t}\n\t\tif (params.autoHeight) {\n\t\t\tsuffixes.push(\"autoheight\");\n\t\t}\n\t\tif (rtl) {\n\t\t\tsuffixes.push(\"rtl\");\n\t\t}\n\t\tif (params.slidesPerColumn > 1) {\n\t\t\tsuffixes.push(\"multirow\");\n\t\t}\n\t\tif (Device.android) {\n\t\t\tsuffixes.push(\"android\");\n\t\t}\n\t\tif (Device.ios) {\n\t\t\tsuffixes.push(\"ios\");\n\t\t}\n\t\t// WP8 Touch Events Fix\n\t\tif (\n\t\t\t(Browser.isIE || Browser.isEdge) &&\n\t\t\t(Support.pointerEvents || Support.prefixedPointerEvents)\n\t\t) {\n\t\t\tsuffixes.push(\"wp8-\" + params.direction);\n\t\t}\n\n\t\tsuffixes.forEach(function (suffix) {\n\t\t\tclassNames.push(params.containerModifierClass + suffix);\n\t\t});\n\n\t\t$el.addClass(classNames.join(\" \"));\n\t}\n\n\tfunction removeClasses() {\n\t\tvar swiper = this;\n\t\tvar $el = swiper.$el;\n\t\tvar classNames = swiper.classNames;\n\n\t\t$el.removeClass(classNames.join(\" \"));\n\t}\n\n\tvar classes = { addClasses: addClasses, removeClasses: removeClasses };\n\n\tfunction loadImage(\n\t\timageEl,\n\t\tsrc,\n\t\tsrcset,\n\t\tsizes,\n\t\tcheckForComplete,\n\t\tcallback\n\t) {\n\t\tvar image;\n\t\tfunction onReady() {\n\t\t\tif (callback) {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\t\tif (!imageEl.complete || !checkForComplete) {\n\t\t\tif (src) {\n\t\t\t\timage = new win.Image();\n\t\t\t\timage.onload = onReady;\n\t\t\t\timage.onerror = onReady;\n\t\t\t\tif (sizes) {\n\t\t\t\t\timage.sizes = sizes;\n\t\t\t\t}\n\t\t\t\tif (srcset) {\n\t\t\t\t\timage.srcset = srcset;\n\t\t\t\t}\n\t\t\t\tif (src) {\n\t\t\t\t\timage.src = src;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tonReady();\n\t\t\t}\n\t\t} else {\n\t\t\t// image already loaded...\n\t\t\tonReady();\n\t\t}\n\t}\n\n\tfunction preloadImages() {\n\t\tvar swiper = this;\n\t\tswiper.imagesToLoad = swiper.$el.find(\"img\");\n\t\tfunction onReady() {\n\t\t\tif (\n\t\t\t\ttypeof swiper === \"undefined\" ||\n\t\t\t\tswiper === null ||\n\t\t\t\t!swiper ||\n\t\t\t\tswiper.destroyed\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (swiper.imagesLoaded !== undefined) {\n\t\t\t\tswiper.imagesLoaded += 1;\n\t\t\t}\n\t\t\tif (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n\t\t\t\tif (swiper.params.updateOnImagesReady) {\n\t\t\t\t\tswiper.update();\n\t\t\t\t}\n\t\t\t\tswiper.emit(\"imagesReady\");\n\t\t\t}\n\t\t}\n\t\tfor (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n\t\t\tvar imageEl = swiper.imagesToLoad[i];\n\t\t\tswiper.loadImage(\n\t\t\t\timageEl,\n\t\t\t\timageEl.currentSrc || imageEl.getAttribute(\"src\"),\n\t\t\t\timageEl.srcset || imageEl.getAttribute(\"srcset\"),\n\t\t\t\timageEl.sizes || imageEl.getAttribute(\"sizes\"),\n\t\t\t\ttrue,\n\t\t\t\tonReady\n\t\t\t);\n\t\t}\n\t}\n\n\tvar images = {\n\t\tloadImage: loadImage,\n\t\tpreloadImages: preloadImages,\n\t};\n\n\tfunction checkOverflow() {\n\t\tvar swiper = this;\n\t\tvar wasLocked = swiper.isLocked;\n\n\t\tswiper.isLocked = swiper.snapGrid.length === 1;\n\t\tswiper.allowSlideNext = !swiper.isLocked;\n\t\tswiper.allowSlidePrev = !swiper.isLocked;\n\n\t\t// events\n\t\tif (wasLocked !== swiper.isLocked) {\n\t\t\tswiper.emit(swiper.isLocked ? \"lock\" : \"unlock\");\n\t\t}\n\n\t\tif (wasLocked && wasLocked !== swiper.isLocked) {\n\t\t\tswiper.isEnd = false;\n\t\t\tswiper.navigation.update();\n\t\t}\n\t}\n\n\tvar checkOverflow$1 = { checkOverflow: checkOverflow };\n\n\tvar defaults = {\n\t\tinit: true,\n\t\tdirection: \"horizontal\",\n\t\ttouchEventsTarget: \"container\",\n\t\tinitialSlide: 0,\n\t\tspeed: 300,\n\t\t//\n\t\tpreventInteractionOnTransition: false,\n\n\t\t// To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView).\n\t\tedgeSwipeDetection: false,\n\t\tedgeSwipeThreshold: 20,\n\n\t\t// Free mode\n\t\tfreeMode: false,\n\t\tfreeModeMomentum: true,\n\t\tfreeModeMomentumRatio: 1,\n\t\tfreeModeMomentumBounce: true,\n\t\tfreeModeMomentumBounceRatio: 1,\n\t\tfreeModeMomentumVelocityRatio: 1,\n\t\tfreeModeSticky: false,\n\t\tfreeModeMinimumVelocity: 0.02,\n\n\t\t// Autoheight\n\t\tautoHeight: false,\n\n\t\t// Set wrapper width\n\t\tsetWrapperSize: false,\n\n\t\t// Virtual Translate\n\t\tvirtualTranslate: false,\n\n\t\t// Effects\n\t\teffect: \"slide\", // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n\t\t// Breakpoints\n\t\tbreakpoints: undefined,\n\t\tbreakpointsInverse: false,\n\n\t\t// Slides grid\n\t\tspaceBetween: 0,\n\t\tslidesPerView: 1,\n\t\tslidesPerColumn: 1,\n\t\tslidesPerColumnFill: \"column\",\n\t\tslidesPerGroup: 1,\n\t\tcenteredSlides: false,\n\t\tslidesOffsetBefore: 0, // in px\n\t\tslidesOffsetAfter: 0, // in px\n\t\tnormalizeSlideIndex: true,\n\t\tcenterInsufficientSlides: false,\n\n\t\t// Disable swiper and hide navigation when container not overflow\n\t\twatchOverflow: false,\n\n\t\t// Round length\n\t\troundLengths: false,\n\n\t\t// Touches\n\t\ttouchRatio: 1,\n\t\ttouchAngle: 45,\n\t\tsimulateTouch: true,\n\t\tshortSwipes: true,\n\t\tlongSwipes: true,\n\t\tlongSwipesRatio: 0.5,\n\t\tlongSwipesMs: 300,\n\t\tfollowFinger: true,\n\t\tallowTouchMove: true,\n\t\tthreshold: 0,\n\t\ttouchMoveStopPropagation: true,\n\t\ttouchStartPreventDefault: true,\n\t\ttouchStartForcePreventDefault: false,\n\t\ttouchReleaseOnEdges: false,\n\n\t\t// Unique Navigation Elements\n\t\tuniqueNavElements: true,\n\n\t\t// Resistance\n\t\tresistance: true,\n\t\tresistanceRatio: 0.85,\n\n\t\t// Progress\n\t\twatchSlidesProgress: false,\n\t\twatchSlidesVisibility: false,\n\n\t\t// Cursor\n\t\tgrabCursor: false,\n\n\t\t// Clicks\n\t\tpreventClicks: true,\n\t\tpreventClicksPropagation: true,\n\t\tslideToClickedSlide: false,\n\n\t\t// Images\n\t\tpreloadImages: true,\n\t\tupdateOnImagesReady: true,\n\n\t\t// loop\n\t\tloop: false,\n\t\tloopAdditionalSlides: 0,\n\t\tloopedSlides: null,\n\t\tloopFillGroupWithBlank: false,\n\n\t\t// Swiping/no swiping\n\t\tallowSlidePrev: true,\n\t\tallowSlideNext: true,\n\t\tswipeHandler: null, // '.swipe-handler',\n\t\tnoSwiping: true,\n\t\tnoSwipingClass: \"swiper-no-swiping\",\n\t\tnoSwipingSelector: null,\n\n\t\t// Passive Listeners\n\t\tpassiveListeners: true,\n\n\t\t// NS\n\t\tcontainerModifierClass: \"swiper-container-\", // NEW\n\t\tslideClass: \"swiper-slide\",\n\t\tslideBlankClass: \"swiper-slide-invisible-blank\",\n\t\tslideActiveClass: \"swiper-slide-active\",\n\t\tslideDuplicateActiveClass: \"swiper-slide-duplicate-active\",\n\t\tslideVisibleClass: \"swiper-slide-visible\",\n\t\tslideDuplicateClass: \"swiper-slide-duplicate\",\n\t\tslideNextClass: \"swiper-slide-next\",\n\t\tslideDuplicateNextClass: \"swiper-slide-duplicate-next\",\n\t\tslidePrevClass: \"swiper-slide-prev\",\n\t\tslideDuplicatePrevClass: \"swiper-slide-duplicate-prev\",\n\t\twrapperClass: \"swiper-wrapper\",\n\n\t\t// Callbacks\n\t\trunCallbacksOnInit: true,\n\t};\n\n\t/* eslint no-param-reassign: \"off\" */\n\n\tvar prototypes = {\n\t\tupdate: update,\n\t\ttranslate: translate,\n\t\ttransition: transition$1,\n\t\tslide: slide,\n\t\tloop: loop,\n\t\tgrabCursor: grabCursor,\n\t\tmanipulation: manipulation,\n\t\tevents: events,\n\t\tbreakpoints: breakpoints,\n\t\tcheckOverflow: checkOverflow$1,\n\t\tclasses: classes,\n\t\timages: images,\n\t};\n\n\tvar extendedDefaults = {};\n\n\tvar Swiper = /*@__PURE__*/ (function (SwiperClass) {\n\t\tfunction Swiper() {\n\t\t\tvar assign;\n\n\t\t\tvar args = [],\n\t\t\t\tlen = arguments.length;\n\t\t\twhile (len--) args[len] = arguments[len];\n\t\t\tvar el;\n\t\t\tvar params;\n\t\t\tif (\n\t\t\t\targs.length === 1 &&\n\t\t\t\targs[0].constructor &&\n\t\t\t\targs[0].constructor === Object\n\t\t\t) {\n\t\t\t\tparams = args[0];\n\t\t\t} else {\n\t\t\t\t(assign = args), (el = assign[0]), (params = assign[1]);\n\t\t\t}\n\t\t\tif (!params) {\n\t\t\t\tparams = {};\n\t\t\t}\n\n\t\t\tparams = Utils.extend({}, params);\n\t\t\tif (el && !params.el) {\n\t\t\t\tparams.el = el;\n\t\t\t}\n\n\t\t\tSwiperClass.call(this, params);\n\n\t\t\tObject.keys(prototypes).forEach(function (prototypeGroup) {\n\t\t\t\tObject.keys(prototypes[prototypeGroup]).forEach(function (\n\t\t\t\t\tprotoMethod\n\t\t\t\t) {\n\t\t\t\t\tif (!Swiper.prototype[protoMethod]) {\n\t\t\t\t\t\tSwiper.prototype[protoMethod] =\n\t\t\t\t\t\t\tprototypes[prototypeGroup][protoMethod];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// Swiper Instance\n\t\t\tvar swiper = this;\n\t\t\tif (typeof swiper.modules === \"undefined\") {\n\t\t\t\tswiper.modules = {};\n\t\t\t}\n\t\t\tObject.keys(swiper.modules).forEach(function (moduleName) {\n\t\t\t\tvar module = swiper.modules[moduleName];\n\t\t\t\tif (module.params) {\n\t\t\t\t\tvar moduleParamName = Object.keys(module.params)[0];\n\t\t\t\t\tvar moduleParams = module.params[moduleParamName];\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof moduleParams !== \"object\" ||\n\t\t\t\t\t\tmoduleParams === null\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (\n\t\t\t\t\t\t!(\n\t\t\t\t\t\t\tmoduleParamName in params &&\n\t\t\t\t\t\t\t\"enabled\" in moduleParams\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (params[moduleParamName] === true) {\n\t\t\t\t\t\tparams[moduleParamName] = { enabled: true };\n\t\t\t\t\t}\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof params[moduleParamName] === \"object\" &&\n\t\t\t\t\t\t!(\"enabled\" in params[moduleParamName])\n\t\t\t\t\t) {\n\t\t\t\t\t\tparams[moduleParamName].enabled = true;\n\t\t\t\t\t}\n\t\t\t\t\tif (!params[moduleParamName]) {\n\t\t\t\t\t\tparams[moduleParamName] = { enabled: false };\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Extend defaults with modules params\n\t\t\tvar swiperParams = Utils.extend({}, defaults);\n\t\t\tswiper.useModulesParams(swiperParams);\n\n\t\t\t// Extend defaults with passed params\n\t\t\tswiper.params = Utils.extend(\n\t\t\t\t{},\n\t\t\t\tswiperParams,\n\t\t\t\textendedDefaults,\n\t\t\t\tparams\n\t\t\t);\n\t\t\tswiper.originalParams = Utils.extend({}, swiper.params);\n\t\t\tswiper.passedParams = Utils.extend({}, params);\n\n\t\t\t// Save Dom lib\n\t\t\tswiper.$ = $;\n\n\t\t\t// Find el\n\t\t\tvar $el = $(swiper.params.el);\n\t\t\tel = $el[0];\n\n\t\t\tif (!el) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tif ($el.length > 1) {\n\t\t\t\tvar swipers = [];\n\t\t\t\t$el.each(function (index, containerEl) {\n\t\t\t\t\tvar newParams = Utils.extend({}, params, {\n\t\t\t\t\t\tel: containerEl,\n\t\t\t\t\t});\n\t\t\t\t\tswipers.push(new Swiper(newParams));\n\t\t\t\t});\n\t\t\t\treturn swipers;\n\t\t\t}\n\n\t\t\tel.swiper = swiper;\n\t\t\t$el.data(\"swiper\", swiper);\n\n\t\t\t// Find Wrapper\n\t\t\tvar $wrapperEl = $el.children(\".\" + swiper.params.wrapperClass);\n\n\t\t\t// Extend Swiper\n\t\t\tUtils.extend(swiper, {\n\t\t\t\t$el: $el,\n\t\t\t\tel: el,\n\t\t\t\t$wrapperEl: $wrapperEl,\n\t\t\t\twrapperEl: $wrapperEl[0],\n\n\t\t\t\t// Classes\n\t\t\t\tclassNames: [],\n\n\t\t\t\t// Slides\n\t\t\t\tslides: $(),\n\t\t\t\tslidesGrid: [],\n\t\t\t\tsnapGrid: [],\n\t\t\t\tslidesSizesGrid: [],\n\n\t\t\t\t// isDirection\n\t\t\t\tisHorizontal: function isHorizontal() {\n\t\t\t\t\treturn swiper.params.direction === \"horizontal\";\n\t\t\t\t},\n\t\t\t\tisVertical: function isVertical() {\n\t\t\t\t\treturn swiper.params.direction === \"vertical\";\n\t\t\t\t},\n\t\t\t\t// RTL\n\t\t\t\trtl:\n\t\t\t\t\tel.dir.toLowerCase() === \"rtl\" ||\n\t\t\t\t\t$el.css(\"direction\") === \"rtl\",\n\t\t\t\trtlTranslate:\n\t\t\t\t\tswiper.params.direction === \"horizontal\" &&\n\t\t\t\t\t(el.dir.toLowerCase() === \"rtl\" ||\n\t\t\t\t\t\t$el.css(\"direction\") === \"rtl\"),\n\t\t\t\twrongRTL: $wrapperEl.css(\"display\") === \"-webkit-box\",\n\n\t\t\t\t// Indexes\n\t\t\t\tactiveIndex: 0,\n\t\t\t\trealIndex: 0,\n\n\t\t\t\t//\n\t\t\t\tisBeginning: true,\n\t\t\t\tisEnd: false,\n\n\t\t\t\t// Props\n\t\t\t\ttranslate: 0,\n\t\t\t\tpreviousTranslate: 0,\n\t\t\t\tprogress: 0,\n\t\t\t\tvelocity: 0,\n\t\t\t\tanimating: false,\n\n\t\t\t\t// Locks\n\t\t\t\tallowSlideNext: swiper.params.allowSlideNext,\n\t\t\t\tallowSlidePrev: swiper.params.allowSlidePrev,\n\n\t\t\t\t// Touch Events\n\t\t\t\ttouchEvents: (function touchEvents() {\n\t\t\t\t\tvar touch = [\"touchstart\", \"touchmove\", \"touchend\"];\n\t\t\t\t\tvar desktop = [\"mousedown\", \"mousemove\", \"mouseup\"];\n\t\t\t\t\tif (Support.pointerEvents) {\n\t\t\t\t\t\tdesktop = [\"pointerdown\", \"pointermove\", \"pointerup\"];\n\t\t\t\t\t} else if (Support.prefixedPointerEvents) {\n\t\t\t\t\t\tdesktop = [\n\t\t\t\t\t\t\t\"MSPointerDown\",\n\t\t\t\t\t\t\t\"MSPointerMove\",\n\t\t\t\t\t\t\t\"MSPointerUp\",\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t\tswiper.touchEventsTouch = {\n\t\t\t\t\t\tstart: touch[0],\n\t\t\t\t\t\tmove: touch[1],\n\t\t\t\t\t\tend: touch[2],\n\t\t\t\t\t};\n\t\t\t\t\tswiper.touchEventsDesktop = {\n\t\t\t\t\t\tstart: desktop[0],\n\t\t\t\t\t\tmove: desktop[1],\n\t\t\t\t\t\tend: desktop[2],\n\t\t\t\t\t};\n\t\t\t\t\treturn Support.touch || !swiper.params.simulateTouch\n\t\t\t\t\t\t? swiper.touchEventsTouch\n\t\t\t\t\t\t: swiper.touchEventsDesktop;\n\t\t\t\t})(),\n\t\t\t\ttouchEventsData: {\n\t\t\t\t\tisTouched: undefined,\n\t\t\t\t\tisMoved: undefined,\n\t\t\t\t\tallowTouchCallbacks: undefined,\n\t\t\t\t\ttouchStartTime: undefined,\n\t\t\t\t\tisScrolling: undefined,\n\t\t\t\t\tcurrentTranslate: undefined,\n\t\t\t\t\tstartTranslate: undefined,\n\t\t\t\t\tallowThresholdMove: undefined,\n\t\t\t\t\t// Form elements to match\n\t\t\t\t\tformElements:\n\t\t\t\t\t\t\"input, select, option, textarea, button, video\",\n\t\t\t\t\t// Last click time\n\t\t\t\t\tlastClickTime: Utils.now(),\n\t\t\t\t\tclickTimeout: undefined,\n\t\t\t\t\t// Velocities\n\t\t\t\t\tvelocities: [],\n\t\t\t\t\tallowMomentumBounce: undefined,\n\t\t\t\t\tisTouchEvent: undefined,\n\t\t\t\t\tstartMoving: undefined,\n\t\t\t\t},\n\n\t\t\t\t// Clicks\n\t\t\t\tallowClick: true,\n\n\t\t\t\t// Touches\n\t\t\t\tallowTouchMove: swiper.params.allowTouchMove,\n\n\t\t\t\ttouches: {\n\t\t\t\t\tstartX: 0,\n\t\t\t\t\tstartY: 0,\n\t\t\t\t\tcurrentX: 0,\n\t\t\t\t\tcurrentY: 0,\n\t\t\t\t\tdiff: 0,\n\t\t\t\t},\n\n\t\t\t\t// Images\n\t\t\t\timagesToLoad: [],\n\t\t\t\timagesLoaded: 0,\n\t\t\t});\n\n\t\t\t// Install Modules\n\t\t\tswiper.useModules();\n\n\t\t\t// Init\n\t\t\tif (swiper.params.init) {\n\t\t\t\tswiper.init();\n\t\t\t}\n\n\t\t\t// Return app instance\n\t\t\treturn swiper;\n\t\t}\n\n\t\tif (SwiperClass) Swiper.__proto__ = SwiperClass;\n\t\tSwiper.prototype = Object.create(SwiperClass && SwiperClass.prototype);\n\t\tSwiper.prototype.constructor = Swiper;\n\n\t\tvar staticAccessors = {\n\t\t\textendedDefaults: { configurable: true },\n\t\t\tdefaults: { configurable: true },\n\t\t\tClass: { configurable: true },\n\t\t\t$: { configurable: true },\n\t\t};\n\n\t\tSwiper.prototype.slidesPerViewDynamic =\n\t\t\tfunction slidesPerViewDynamic() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tvar params = swiper.params;\n\t\t\t\tvar slides = swiper.slides;\n\t\t\t\tvar slidesGrid = swiper.slidesGrid;\n\t\t\t\tvar swiperSize = swiper.size;\n\t\t\t\tvar activeIndex = swiper.activeIndex;\n\t\t\t\tvar spv = 1;\n\t\t\t\tif (params.centeredSlides) {\n\t\t\t\t\tvar slideSize = slides[activeIndex].swiperSlideSize;\n\t\t\t\t\tvar breakLoop;\n\t\t\t\t\tfor (var i = activeIndex + 1; i < slides.length; i += 1) {\n\t\t\t\t\t\tif (slides[i] && !breakLoop) {\n\t\t\t\t\t\t\tslideSize += slides[i].swiperSlideSize;\n\t\t\t\t\t\t\tspv += 1;\n\t\t\t\t\t\t\tif (slideSize > swiperSize) {\n\t\t\t\t\t\t\t\tbreakLoop = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfor (var i$1 = activeIndex - 1; i$1 >= 0; i$1 -= 1) {\n\t\t\t\t\t\tif (slides[i$1] && !breakLoop) {\n\t\t\t\t\t\t\tslideSize += slides[i$1].swiperSlideSize;\n\t\t\t\t\t\t\tspv += 1;\n\t\t\t\t\t\t\tif (slideSize > swiperSize) {\n\t\t\t\t\t\t\t\tbreakLoop = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor (\n\t\t\t\t\t\tvar i$2 = activeIndex + 1;\n\t\t\t\t\t\ti$2 < slides.length;\n\t\t\t\t\t\ti$2 += 1\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tslidesGrid[i$2] - slidesGrid[activeIndex] <\n\t\t\t\t\t\t\tswiperSize\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tspv += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn spv;\n\t\t\t};\n\n\t\tSwiper.prototype.update = function update() {\n\t\t\tvar swiper = this;\n\t\t\tif (!swiper || swiper.destroyed) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar snapGrid = swiper.snapGrid;\n\t\t\tvar params = swiper.params;\n\t\t\t// Breakpoints\n\t\t\tif (params.breakpoints) {\n\t\t\t\tswiper.setBreakpoint();\n\t\t\t}\n\t\t\tswiper.updateSize();\n\t\t\tswiper.updateSlides();\n\t\t\tswiper.updateProgress();\n\t\t\tswiper.updateSlidesClasses();\n\n\t\t\tfunction setTranslate() {\n\t\t\t\tvar translateValue = swiper.rtlTranslate\n\t\t\t\t\t? swiper.translate * -1\n\t\t\t\t\t: swiper.translate;\n\t\t\t\tvar newTranslate = Math.min(\n\t\t\t\t\tMath.max(translateValue, swiper.maxTranslate()),\n\t\t\t\t\tswiper.minTranslate()\n\t\t\t\t);\n\t\t\t\tswiper.setTranslate(newTranslate);\n\t\t\t\tswiper.updateActiveIndex();\n\t\t\t\tswiper.updateSlidesClasses();\n\t\t\t}\n\t\t\tvar translated;\n\t\t\tif (swiper.params.freeMode) {\n\t\t\t\tsetTranslate();\n\t\t\t\tif (swiper.params.autoHeight) {\n\t\t\t\t\tswiper.updateAutoHeight();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\t(swiper.params.slidesPerView === \"auto\" ||\n\t\t\t\t\t\tswiper.params.slidesPerView > 1) &&\n\t\t\t\t\tswiper.isEnd &&\n\t\t\t\t\t!swiper.params.centeredSlides\n\t\t\t\t) {\n\t\t\t\t\ttranslated = swiper.slideTo(\n\t\t\t\t\t\tswiper.slides.length - 1,\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\ttranslated = swiper.slideTo(\n\t\t\t\t\t\tswiper.activeIndex,\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (!translated) {\n\t\t\t\t\tsetTranslate();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n\t\t\t\tswiper.checkOverflow();\n\t\t\t}\n\t\t\tswiper.emit(\"update\");\n\t\t};\n\n\t\tSwiper.prototype.changeDirection = function changeDirection(\n\t\t\tnewDirection,\n\t\t\tneedUpdate\n\t\t) {\n\t\t\tif (needUpdate === void 0) needUpdate = true;\n\n\t\t\tvar swiper = this;\n\t\t\tvar currentDirection = swiper.params.direction;\n\t\t\tif (!newDirection) {\n\t\t\t\t// eslint-disable-next-line\n\t\t\t\tnewDirection =\n\t\t\t\t\tcurrentDirection === \"horizontal\"\n\t\t\t\t\t\t? \"vertical\"\n\t\t\t\t\t\t: \"horizontal\";\n\t\t\t}\n\t\t\tif (\n\t\t\t\tnewDirection === currentDirection ||\n\t\t\t\t(newDirection !== \"horizontal\" && newDirection !== \"vertical\")\n\t\t\t) {\n\t\t\t\treturn swiper;\n\t\t\t}\n\n\t\t\tif (currentDirection === \"vertical\") {\n\t\t\t\tswiper.$el\n\t\t\t\t\t.removeClass(\n\t\t\t\t\t\tswiper.params.containerModifierClass +\n\t\t\t\t\t\t\t\"vertical wp8-vertical\"\n\t\t\t\t\t)\n\t\t\t\t\t.addClass(\n\t\t\t\t\t\t\"\" + swiper.params.containerModifierClass + newDirection\n\t\t\t\t\t);\n\n\t\t\t\tif (\n\t\t\t\t\t(Browser.isIE || Browser.isEdge) &&\n\t\t\t\t\t(Support.pointerEvents || Support.prefixedPointerEvents)\n\t\t\t\t) {\n\t\t\t\t\tswiper.$el.addClass(\n\t\t\t\t\t\tswiper.params.containerModifierClass +\n\t\t\t\t\t\t\t\"wp8-\" +\n\t\t\t\t\t\t\tnewDirection\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (currentDirection === \"horizontal\") {\n\t\t\t\tswiper.$el\n\t\t\t\t\t.removeClass(\n\t\t\t\t\t\tswiper.params.containerModifierClass +\n\t\t\t\t\t\t\t\"horizontal wp8-horizontal\"\n\t\t\t\t\t)\n\t\t\t\t\t.addClass(\n\t\t\t\t\t\t\"\" + swiper.params.containerModifierClass + newDirection\n\t\t\t\t\t);\n\n\t\t\t\tif (\n\t\t\t\t\t(Browser.isIE || Browser.isEdge) &&\n\t\t\t\t\t(Support.pointerEvents || Support.prefixedPointerEvents)\n\t\t\t\t) {\n\t\t\t\t\tswiper.$el.addClass(\n\t\t\t\t\t\tswiper.params.containerModifierClass +\n\t\t\t\t\t\t\t\"wp8-\" +\n\t\t\t\t\t\t\tnewDirection\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tswiper.params.direction = newDirection;\n\n\t\t\tswiper.slides.each(function (slideIndex, slideEl) {\n\t\t\t\tif (newDirection === \"vertical\") {\n\t\t\t\t\tslideEl.style.width = \"\";\n\t\t\t\t} else {\n\t\t\t\t\tslideEl.style.height = \"\";\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tswiper.emit(\"changeDirection\");\n\t\t\tif (needUpdate) {\n\t\t\t\tswiper.update();\n\t\t\t}\n\n\t\t\treturn swiper;\n\t\t};\n\n\t\tSwiper.prototype.init = function init() {\n\t\t\tvar swiper = this;\n\t\t\tif (swiper.initialized) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tswiper.emit(\"beforeInit\");\n\n\t\t\t// Set breakpoint\n\t\t\tif (swiper.params.breakpoints) {\n\t\t\t\tswiper.setBreakpoint();\n\t\t\t}\n\n\t\t\t// Add Classes\n\t\t\tswiper.addClasses();\n\n\t\t\t// Create loop\n\t\t\tif (swiper.params.loop) {\n\t\t\t\tswiper.loopCreate();\n\t\t\t}\n\n\t\t\t// Update size\n\t\t\tswiper.updateSize();\n\n\t\t\t// Update slides\n\t\t\tswiper.updateSlides();\n\n\t\t\tif (swiper.params.watchOverflow) {\n\t\t\t\tswiper.checkOverflow();\n\t\t\t}\n\n\t\t\t// Set Grab Cursor\n\t\t\tif (swiper.params.grabCursor) {\n\t\t\t\tswiper.setGrabCursor();\n\t\t\t}\n\n\t\t\tif (swiper.params.preloadImages) {\n\t\t\t\tswiper.preloadImages();\n\t\t\t}\n\n\t\t\t// Slide To Initial Slide\n\t\t\tif (swiper.params.loop) {\n\t\t\t\tswiper.slideTo(\n\t\t\t\t\tswiper.params.initialSlide + swiper.loopedSlides,\n\t\t\t\t\t0,\n\t\t\t\t\tswiper.params.runCallbacksOnInit\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tswiper.slideTo(\n\t\t\t\t\tswiper.params.initialSlide,\n\t\t\t\t\t0,\n\t\t\t\t\tswiper.params.runCallbacksOnInit\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Attach events\n\t\t\tswiper.attachEvents();\n\n\t\t\t// Init Flag\n\t\t\tswiper.initialized = true;\n\n\t\t\t// Emit\n\t\t\tswiper.emit(\"init\");\n\t\t};\n\n\t\tSwiper.prototype.destroy = function destroy(\n\t\t\tdeleteInstance,\n\t\t\tcleanStyles\n\t\t) {\n\t\t\tif (deleteInstance === void 0) deleteInstance = true;\n\t\t\tif (cleanStyles === void 0) cleanStyles = true;\n\n\t\t\tvar swiper = this;\n\t\t\tvar params = swiper.params;\n\t\t\tvar $el = swiper.$el;\n\t\t\tvar $wrapperEl = swiper.$wrapperEl;\n\t\t\tvar slides = swiper.slides;\n\n\t\t\tif (typeof swiper.params === \"undefined\" || swiper.destroyed) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tswiper.emit(\"beforeDestroy\");\n\n\t\t\t// Init Flag\n\t\t\tswiper.initialized = false;\n\n\t\t\t// Detach events\n\t\t\tswiper.detachEvents();\n\n\t\t\t// Destroy loop\n\t\t\tif (params.loop) {\n\t\t\t\tswiper.loopDestroy();\n\t\t\t}\n\n\t\t\t// Cleanup styles\n\t\t\tif (cleanStyles) {\n\t\t\t\tswiper.removeClasses();\n\t\t\t\t$el.removeAttr(\"style\");\n\t\t\t\t$wrapperEl.removeAttr(\"style\");\n\t\t\t\tif (slides && slides.length) {\n\t\t\t\t\tslides\n\t\t\t\t\t\t.removeClass(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tparams.slideVisibleClass,\n\t\t\t\t\t\t\t\tparams.slideActiveClass,\n\t\t\t\t\t\t\t\tparams.slideNextClass,\n\t\t\t\t\t\t\t\tparams.slidePrevClass,\n\t\t\t\t\t\t\t].join(\" \")\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.removeAttr(\"style\")\n\t\t\t\t\t\t.removeAttr(\"data-swiper-slide-index\")\n\t\t\t\t\t\t.removeAttr(\"data-swiper-column\")\n\t\t\t\t\t\t.removeAttr(\"data-swiper-row\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tswiper.emit(\"destroy\");\n\n\t\t\t// Detach emitter events\n\t\t\tObject.keys(swiper.eventsListeners).forEach(function (eventName) {\n\t\t\t\tswiper.off(eventName);\n\t\t\t});\n\n\t\t\tif (deleteInstance !== false) {\n\t\t\t\tswiper.$el[0].swiper = null;\n\t\t\t\tswiper.$el.data(\"swiper\", null);\n\t\t\t\tUtils.deleteProps(swiper);\n\t\t\t}\n\t\t\tswiper.destroyed = true;\n\n\t\t\treturn null;\n\t\t};\n\n\t\tSwiper.extendDefaults = function extendDefaults(newDefaults) {\n\t\t\tUtils.extend(extendedDefaults, newDefaults);\n\t\t};\n\n\t\tstaticAccessors.extendedDefaults.get = function () {\n\t\t\treturn extendedDefaults;\n\t\t};\n\n\t\tstaticAccessors.defaults.get = function () {\n\t\t\treturn defaults;\n\t\t};\n\n\t\tstaticAccessors.Class.get = function () {\n\t\t\treturn SwiperClass;\n\t\t};\n\n\t\tstaticAccessors.$.get = function () {\n\t\t\treturn $;\n\t\t};\n\n\t\tObject.defineProperties(Swiper, staticAccessors);\n\n\t\treturn Swiper;\n\t})(SwiperClass);\n\n\tvar Device$1 = {\n\t\tname: \"device\",\n\t\tproto: {\n\t\t\tdevice: Device,\n\t\t},\n\t\tstatic: {\n\t\t\tdevice: Device,\n\t\t},\n\t};\n\n\tvar Support$1 = {\n\t\tname: \"support\",\n\t\tproto: {\n\t\t\tsupport: Support,\n\t\t},\n\t\tstatic: {\n\t\t\tsupport: Support,\n\t\t},\n\t};\n\n\tvar Browser$1 = {\n\t\tname: \"browser\",\n\t\tproto: {\n\t\t\tbrowser: Browser,\n\t\t},\n\t\tstatic: {\n\t\t\tbrowser: Browser,\n\t\t},\n\t};\n\n\tvar Resize = {\n\t\tname: \"resize\",\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tresize: {\n\t\t\t\t\tresizeHandler: function resizeHandler() {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!swiper ||\n\t\t\t\t\t\t\tswiper.destroyed ||\n\t\t\t\t\t\t\t!swiper.initialized\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tswiper.emit(\"beforeResize\");\n\t\t\t\t\t\tswiper.emit(\"resize\");\n\t\t\t\t\t},\n\t\t\t\t\torientationChangeHandler:\n\t\t\t\t\t\tfunction orientationChangeHandler() {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!swiper ||\n\t\t\t\t\t\t\t\tswiper.destroyed ||\n\t\t\t\t\t\t\t\t!swiper.initialized\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tswiper.emit(\"orientationchange\");\n\t\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tinit: function init() {\n\t\t\t\tvar swiper = this;\n\t\t\t\t// Emit resize\n\t\t\t\twin.addEventListener(\"resize\", swiper.resize.resizeHandler);\n\n\t\t\t\t// Emit orientationchange\n\t\t\t\twin.addEventListener(\n\t\t\t\t\t\"orientationchange\",\n\t\t\t\t\tswiper.resize.orientationChangeHandler\n\t\t\t\t);\n\t\t\t},\n\t\t\tdestroy: function destroy() {\n\t\t\t\tvar swiper = this;\n\t\t\t\twin.removeEventListener(\"resize\", swiper.resize.resizeHandler);\n\t\t\t\twin.removeEventListener(\n\t\t\t\t\t\"orientationchange\",\n\t\t\t\t\tswiper.resize.orientationChangeHandler\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t};\n\n\tvar Observer = {\n\t\tfunc: win.MutationObserver || win.WebkitMutationObserver,\n\t\tattach: function attach(target, options) {\n\t\t\tif (options === void 0) options = {};\n\n\t\t\tvar swiper = this;\n\n\t\t\tvar ObserverFunc = Observer.func;\n\t\t\tvar observer = new ObserverFunc(function (mutations) {\n\t\t\t\t// The observerUpdate event should only be triggered\n\t\t\t\t// once despite the number of mutations. Additional\n\t\t\t\t// triggers are redundant and are very costly\n\t\t\t\tif (mutations.length === 1) {\n\t\t\t\t\tswiper.emit(\"observerUpdate\", mutations[0]);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar observerUpdate = function observerUpdate() {\n\t\t\t\t\tswiper.emit(\"observerUpdate\", mutations[0]);\n\t\t\t\t};\n\n\t\t\t\tif (win.requestAnimationFrame) {\n\t\t\t\t\twin.requestAnimationFrame(observerUpdate);\n\t\t\t\t} else {\n\t\t\t\t\twin.setTimeout(observerUpdate, 0);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tobserver.observe(target, {\n\t\t\t\tattributes:\n\t\t\t\t\ttypeof options.attributes === \"undefined\"\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: options.attributes,\n\t\t\t\tchildList:\n\t\t\t\t\ttypeof options.childList === \"undefined\"\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: options.childList,\n\t\t\t\tcharacterData:\n\t\t\t\t\ttypeof options.characterData === \"undefined\"\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: options.characterData,\n\t\t\t});\n\n\t\t\tswiper.observer.observers.push(observer);\n\t\t},\n\t\tinit: function init() {\n\t\t\tvar swiper = this;\n\t\t\tif (!Support.observer || !swiper.params.observer) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (swiper.params.observeParents) {\n\t\t\t\tvar containerParents = swiper.$el.parents();\n\t\t\t\tfor (var i = 0; i < containerParents.length; i += 1) {\n\t\t\t\t\tswiper.observer.attach(containerParents[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Observe container\n\t\t\tswiper.observer.attach(swiper.$el[0], {\n\t\t\t\tchildList: swiper.params.observeSlideChildren,\n\t\t\t});\n\n\t\t\t// Observe wrapper\n\t\t\tswiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\n\t\t},\n\t\tdestroy: function destroy() {\n\t\t\tvar swiper = this;\n\t\t\tswiper.observer.observers.forEach(function (observer) {\n\t\t\t\tobserver.disconnect();\n\t\t\t});\n\t\t\tswiper.observer.observers = [];\n\t\t},\n\t};\n\n\tvar Observer$1 = {\n\t\tname: \"observer\",\n\t\tparams: {\n\t\t\tobserver: false,\n\t\t\tobserveParents: false,\n\t\t\tobserveSlideChildren: false,\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tobserver: {\n\t\t\t\t\tinit: Observer.init.bind(swiper),\n\t\t\t\t\tattach: Observer.attach.bind(swiper),\n\t\t\t\t\tdestroy: Observer.destroy.bind(swiper),\n\t\t\t\t\tobservers: [],\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tinit: function init() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tswiper.observer.init();\n\t\t\t},\n\t\t\tdestroy: function destroy() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tswiper.observer.destroy();\n\t\t\t},\n\t\t},\n\t};\n\n\tvar Virtual = {\n\t\tupdate: function update(force) {\n\t\t\tvar swiper = this;\n\t\t\tvar ref = swiper.params;\n\t\t\tvar slidesPerView = ref.slidesPerView;\n\t\t\tvar slidesPerGroup = ref.slidesPerGroup;\n\t\t\tvar centeredSlides = ref.centeredSlides;\n\t\t\tvar ref$1 = swiper.params.virtual;\n\t\t\tvar addSlidesBefore = ref$1.addSlidesBefore;\n\t\t\tvar addSlidesAfter = ref$1.addSlidesAfter;\n\t\t\tvar ref$2 = swiper.virtual;\n\t\t\tvar previousFrom = ref$2.from;\n\t\t\tvar previousTo = ref$2.to;\n\t\t\tvar slides = ref$2.slides;\n\t\t\tvar previousSlidesGrid = ref$2.slidesGrid;\n\t\t\tvar renderSlide = ref$2.renderSlide;\n\t\t\tvar previousOffset = ref$2.offset;\n\t\t\tswiper.updateActiveIndex();\n\t\t\tvar activeIndex = swiper.activeIndex || 0;\n\n\t\t\tvar offsetProp;\n\t\t\tif (swiper.rtlTranslate) {\n\t\t\t\toffsetProp = \"right\";\n\t\t\t} else {\n\t\t\t\toffsetProp = swiper.isHorizontal() ? \"left\" : \"top\";\n\t\t\t}\n\n\t\t\tvar slidesAfter;\n\t\t\tvar slidesBefore;\n\t\t\tif (centeredSlides) {\n\t\t\t\tslidesAfter =\n\t\t\t\t\tMath.floor(slidesPerView / 2) +\n\t\t\t\t\tslidesPerGroup +\n\t\t\t\t\taddSlidesBefore;\n\t\t\t\tslidesBefore =\n\t\t\t\t\tMath.floor(slidesPerView / 2) +\n\t\t\t\t\tslidesPerGroup +\n\t\t\t\t\taddSlidesAfter;\n\t\t\t} else {\n\t\t\t\tslidesAfter =\n\t\t\t\t\tslidesPerView + (slidesPerGroup - 1) + addSlidesBefore;\n\t\t\t\tslidesBefore = slidesPerGroup + addSlidesAfter;\n\t\t\t}\n\t\t\tvar from = Math.max((activeIndex || 0) - slidesBefore, 0);\n\t\t\tvar to = Math.min(\n\t\t\t\t(activeIndex || 0) + slidesAfter,\n\t\t\t\tslides.length - 1\n\t\t\t);\n\t\t\tvar offset =\n\t\t\t\t(swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n\n\t\t\tUtils.extend(swiper.virtual, {\n\t\t\t\tfrom: from,\n\t\t\t\tto: to,\n\t\t\t\toffset: offset,\n\t\t\t\tslidesGrid: swiper.slidesGrid,\n\t\t\t});\n\n\t\t\tfunction onRendered() {\n\t\t\t\tswiper.updateSlides();\n\t\t\t\tswiper.updateProgress();\n\t\t\t\tswiper.updateSlidesClasses();\n\t\t\t\tif (swiper.lazy && swiper.params.lazy.enabled) {\n\t\t\t\t\tswiper.lazy.load();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (previousFrom === from && previousTo === to && !force) {\n\t\t\t\tif (\n\t\t\t\t\tswiper.slidesGrid !== previousSlidesGrid &&\n\t\t\t\t\toffset !== previousOffset\n\t\t\t\t) {\n\t\t\t\t\tswiper.slides.css(offsetProp, offset + \"px\");\n\t\t\t\t}\n\t\t\t\tswiper.updateProgress();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (swiper.params.virtual.renderExternal) {\n\t\t\t\tswiper.params.virtual.renderExternal.call(swiper, {\n\t\t\t\t\toffset: offset,\n\t\t\t\t\tfrom: from,\n\t\t\t\t\tto: to,\n\t\t\t\t\tslides: (function getSlides() {\n\t\t\t\t\t\tvar slidesToRender = [];\n\t\t\t\t\t\tfor (var i = from; i <= to; i += 1) {\n\t\t\t\t\t\t\tslidesToRender.push(slides[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn slidesToRender;\n\t\t\t\t\t})(),\n\t\t\t\t});\n\t\t\t\tonRendered();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar prependIndexes = [];\n\t\t\tvar appendIndexes = [];\n\t\t\tif (force) {\n\t\t\t\tswiper.$wrapperEl.find(\".\" + swiper.params.slideClass).remove();\n\t\t\t} else {\n\t\t\t\tfor (var i = previousFrom; i <= previousTo; i += 1) {\n\t\t\t\t\tif (i < from || i > to) {\n\t\t\t\t\t\tswiper.$wrapperEl\n\t\t\t\t\t\t\t.find(\n\t\t\t\t\t\t\t\t\".\" +\n\t\t\t\t\t\t\t\t\tswiper.params.slideClass +\n\t\t\t\t\t\t\t\t\t'[data-swiper-slide-index=\"' +\n\t\t\t\t\t\t\t\t\ti +\n\t\t\t\t\t\t\t\t\t'\"]'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.remove();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i$1 = 0; i$1 < slides.length; i$1 += 1) {\n\t\t\t\tif (i$1 >= from && i$1 <= to) {\n\t\t\t\t\tif (typeof previousTo === \"undefined\" || force) {\n\t\t\t\t\t\tappendIndexes.push(i$1);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (i$1 > previousTo) {\n\t\t\t\t\t\t\tappendIndexes.push(i$1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (i$1 < previousFrom) {\n\t\t\t\t\t\t\tprependIndexes.push(i$1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tappendIndexes.forEach(function (index) {\n\t\t\t\tswiper.$wrapperEl.append(renderSlide(slides[index], index));\n\t\t\t});\n\t\t\tprependIndexes\n\t\t\t\t.sort(function (a, b) {\n\t\t\t\t\treturn b - a;\n\t\t\t\t})\n\t\t\t\t.forEach(function (index) {\n\t\t\t\t\tswiper.$wrapperEl.prepend(\n\t\t\t\t\t\trenderSlide(slides[index], index)\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\tswiper.$wrapperEl\n\t\t\t\t.children(\".swiper-slide\")\n\t\t\t\t.css(offsetProp, offset + \"px\");\n\t\t\tonRendered();\n\t\t},\n\t\trenderSlide: function renderSlide(slide, index) {\n\t\t\tvar swiper = this;\n\t\t\tvar params = swiper.params.virtual;\n\t\t\tif (params.cache && swiper.virtual.cache[index]) {\n\t\t\t\treturn swiper.virtual.cache[index];\n\t\t\t}\n\t\t\tvar $slideEl = params.renderSlide\n\t\t\t\t? $(params.renderSlide.call(swiper, slide, index))\n\t\t\t\t: $(\n\t\t\t\t\t\t'<div class=\"' +\n\t\t\t\t\t\t\tswiper.params.slideClass +\n\t\t\t\t\t\t\t'\" data-swiper-slide-index=\"' +\n\t\t\t\t\t\t\tindex +\n\t\t\t\t\t\t\t'\">' +\n\t\t\t\t\t\t\tslide +\n\t\t\t\t\t\t\t\"</div>\"\n\t\t\t\t );\n\t\t\tif (!$slideEl.attr(\"data-swiper-slide-index\")) {\n\t\t\t\t$slideEl.attr(\"data-swiper-slide-index\", index);\n\t\t\t}\n\t\t\tif (params.cache) {\n\t\t\t\tswiper.virtual.cache[index] = $slideEl;\n\t\t\t}\n\t\t\treturn $slideEl;\n\t\t},\n\t\tappendSlide: function appendSlide(slides) {\n\t\t\tvar swiper = this;\n\t\t\tif (typeof slides === \"object\" && \"length\" in slides) {\n\t\t\t\tfor (var i = 0; i < slides.length; i += 1) {\n\t\t\t\t\tif (slides[i]) {\n\t\t\t\t\t\tswiper.virtual.slides.push(slides[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswiper.virtual.slides.push(slides);\n\t\t\t}\n\t\t\tswiper.virtual.update(true);\n\t\t},\n\t\tprependSlide: function prependSlide(slides) {\n\t\t\tvar swiper = this;\n\t\t\tvar activeIndex = swiper.activeIndex;\n\t\t\tvar newActiveIndex = activeIndex + 1;\n\t\t\tvar numberOfNewSlides = 1;\n\n\t\t\tif (Array.isArray(slides)) {\n\t\t\t\tfor (var i = 0; i < slides.length; i += 1) {\n\t\t\t\t\tif (slides[i]) {\n\t\t\t\t\t\tswiper.virtual.slides.unshift(slides[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tnewActiveIndex = activeIndex + slides.length;\n\t\t\t\tnumberOfNewSlides = slides.length;\n\t\t\t} else {\n\t\t\t\tswiper.virtual.slides.unshift(slides);\n\t\t\t}\n\t\t\tif (swiper.params.virtual.cache) {\n\t\t\t\tvar cache = swiper.virtual.cache;\n\t\t\t\tvar newCache = {};\n\t\t\t\tObject.keys(cache).forEach(function (cachedIndex) {\n\t\t\t\t\tnewCache[parseInt(cachedIndex, 10) + numberOfNewSlides] =\n\t\t\t\t\t\tcache[cachedIndex];\n\t\t\t\t});\n\t\t\t\tswiper.virtual.cache = newCache;\n\t\t\t}\n\t\t\tswiper.virtual.update(true);\n\t\t\tswiper.slideTo(newActiveIndex, 0);\n\t\t},\n\t\tremoveSlide: function removeSlide(slidesIndexes) {\n\t\t\tvar swiper = this;\n\t\t\tif (\n\t\t\t\ttypeof slidesIndexes === \"undefined\" ||\n\t\t\t\tslidesIndexes === null\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar activeIndex = swiper.activeIndex;\n\t\t\tif (Array.isArray(slidesIndexes)) {\n\t\t\t\tfor (var i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n\t\t\t\t\tswiper.virtual.slides.splice(slidesIndexes[i], 1);\n\t\t\t\t\tif (swiper.params.virtual.cache) {\n\t\t\t\t\t\tdelete swiper.virtual.cache[slidesIndexes[i]];\n\t\t\t\t\t}\n\t\t\t\t\tif (slidesIndexes[i] < activeIndex) {\n\t\t\t\t\t\tactiveIndex -= 1;\n\t\t\t\t\t}\n\t\t\t\t\tactiveIndex = Math.max(activeIndex, 0);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswiper.virtual.slides.splice(slidesIndexes, 1);\n\t\t\t\tif (swiper.params.virtual.cache) {\n\t\t\t\t\tdelete swiper.virtual.cache[slidesIndexes];\n\t\t\t\t}\n\t\t\t\tif (slidesIndexes < activeIndex) {\n\t\t\t\t\tactiveIndex -= 1;\n\t\t\t\t}\n\t\t\t\tactiveIndex = Math.max(activeIndex, 0);\n\t\t\t}\n\t\t\tswiper.virtual.update(true);\n\t\t\tswiper.slideTo(activeIndex, 0);\n\t\t},\n\t\tremoveAllSlides: function removeAllSlides() {\n\t\t\tvar swiper = this;\n\t\t\tswiper.virtual.slides = [];\n\t\t\tif (swiper.params.virtual.cache) {\n\t\t\t\tswiper.virtual.cache = {};\n\t\t\t}\n\t\t\tswiper.virtual.update(true);\n\t\t\tswiper.slideTo(0, 0);\n\t\t},\n\t};\n\n\tvar Virtual$1 = {\n\t\tname: \"virtual\",\n\t\tparams: {\n\t\t\tvirtual: {\n\t\t\t\tenabled: false,\n\t\t\t\tslides: [],\n\t\t\t\tcache: true,\n\t\t\t\trenderSlide: null,\n\t\t\t\trenderExternal: null,\n\t\t\t\taddSlidesBefore: 0,\n\t\t\t\taddSlidesAfter: 0,\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tvirtual: {\n\t\t\t\t\tupdate: Virtual.update.bind(swiper),\n\t\t\t\t\tappendSlide: Virtual.appendSlide.bind(swiper),\n\t\t\t\t\tprependSlide: Virtual.prependSlide.bind(swiper),\n\t\t\t\t\tremoveSlide: Virtual.removeSlide.bind(swiper),\n\t\t\t\t\tremoveAllSlides: Virtual.removeAllSlides.bind(swiper),\n\t\t\t\t\trenderSlide: Virtual.renderSlide.bind(swiper),\n\t\t\t\t\tslides: swiper.params.virtual.slides,\n\t\t\t\t\tcache: {},\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tbeforeInit: function beforeInit() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.params.virtual.enabled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.classNames.push(\n\t\t\t\t\tswiper.params.containerModifierClass + \"virtual\"\n\t\t\t\t);\n\t\t\t\tvar overwriteParams = {\n\t\t\t\t\twatchSlidesProgress: true,\n\t\t\t\t};\n\t\t\t\tUtils.extend(swiper.params, overwriteParams);\n\t\t\t\tUtils.extend(swiper.originalParams, overwriteParams);\n\n\t\t\t\tif (!swiper.params.initialSlide) {\n\t\t\t\t\tswiper.virtual.update();\n\t\t\t\t}\n\t\t\t},\n\t\t\tsetTranslate: function setTranslate() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.params.virtual.enabled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.virtual.update();\n\t\t\t},\n\t\t},\n\t};\n\n\tvar Keyboard = {\n\t\thandle: function handle(event) {\n\t\t\tvar swiper = this;\n\t\t\tvar rtl = swiper.rtlTranslate;\n\t\t\tvar e = event;\n\t\t\tif (e.originalEvent) {\n\t\t\t\te = e.originalEvent;\n\t\t\t} // jquery fix\n\t\t\tvar kc = e.keyCode || e.charCode;\n\t\t\t// Directions locks\n\t\t\tif (\n\t\t\t\t!swiper.allowSlideNext &&\n\t\t\t\t((swiper.isHorizontal() && kc === 39) ||\n\t\t\t\t\t(swiper.isVertical() && kc === 40))\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (\n\t\t\t\t!swiper.allowSlidePrev &&\n\t\t\t\t((swiper.isHorizontal() && kc === 37) ||\n\t\t\t\t\t(swiper.isVertical() && kc === 38))\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif (\n\t\t\t\tdoc.activeElement &&\n\t\t\t\tdoc.activeElement.nodeName &&\n\t\t\t\t(doc.activeElement.nodeName.toLowerCase() === \"input\" ||\n\t\t\t\t\tdoc.activeElement.nodeName.toLowerCase() === \"textarea\")\n\t\t\t) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif (\n\t\t\t\tswiper.params.keyboard.onlyInViewport &&\n\t\t\t\t(kc === 37 || kc === 39 || kc === 38 || kc === 40)\n\t\t\t) {\n\t\t\t\tvar inView = false;\n\t\t\t\t// Check that swiper should be inside of visible area of window\n\t\t\t\tif (\n\t\t\t\t\tswiper.$el.parents(\".\" + swiper.params.slideClass).length >\n\t\t\t\t\t\t0 &&\n\t\t\t\t\tswiper.$el.parents(\".\" + swiper.params.slideActiveClass)\n\t\t\t\t\t\t.length === 0\n\t\t\t\t) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\tvar windowWidth = win.innerWidth;\n\t\t\t\tvar windowHeight = win.innerHeight;\n\t\t\t\tvar swiperOffset = swiper.$el.offset();\n\t\t\t\tif (rtl) {\n\t\t\t\t\tswiperOffset.left -= swiper.$el[0].scrollLeft;\n\t\t\t\t}\n\t\t\t\tvar swiperCoord = [\n\t\t\t\t\t[swiperOffset.left, swiperOffset.top],\n\t\t\t\t\t[swiperOffset.left + swiper.width, swiperOffset.top],\n\t\t\t\t\t[swiperOffset.left, swiperOffset.top + swiper.height],\n\t\t\t\t\t[\n\t\t\t\t\t\tswiperOffset.left + swiper.width,\n\t\t\t\t\t\tswiperOffset.top + swiper.height,\n\t\t\t\t\t],\n\t\t\t\t];\n\t\t\t\tfor (var i = 0; i < swiperCoord.length; i += 1) {\n\t\t\t\t\tvar point = swiperCoord[i];\n\t\t\t\t\tif (\n\t\t\t\t\t\tpoint[0] >= 0 &&\n\t\t\t\t\t\tpoint[0] <= windowWidth &&\n\t\t\t\t\t\tpoint[1] >= 0 &&\n\t\t\t\t\t\tpoint[1] <= windowHeight\n\t\t\t\t\t) {\n\t\t\t\t\t\tinView = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!inView) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (swiper.isHorizontal()) {\n\t\t\t\tif (kc === 37 || kc === 39) {\n\t\t\t\t\tif (e.preventDefault) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t} else {\n\t\t\t\t\t\te.returnValue = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif ((kc === 39 && !rtl) || (kc === 37 && rtl)) {\n\t\t\t\t\tswiper.slideNext();\n\t\t\t\t}\n\t\t\t\tif ((kc === 37 && !rtl) || (kc === 39 && rtl)) {\n\t\t\t\t\tswiper.slidePrev();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (kc === 38 || kc === 40) {\n\t\t\t\t\tif (e.preventDefault) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t} else {\n\t\t\t\t\t\te.returnValue = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (kc === 40) {\n\t\t\t\t\tswiper.slideNext();\n\t\t\t\t}\n\t\t\t\tif (kc === 38) {\n\t\t\t\t\tswiper.slidePrev();\n\t\t\t\t}\n\t\t\t}\n\t\t\tswiper.emit(\"keyPress\", kc);\n\t\t\treturn undefined;\n\t\t},\n\t\tenable: function enable() {\n\t\t\tvar swiper = this;\n\t\t\tif (swiper.keyboard.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t$(doc).on(\"keydown\", swiper.keyboard.handle);\n\t\t\tswiper.keyboard.enabled = true;\n\t\t},\n\t\tdisable: function disable() {\n\t\t\tvar swiper = this;\n\t\t\tif (!swiper.keyboard.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t$(doc).off(\"keydown\", swiper.keyboard.handle);\n\t\t\tswiper.keyboard.enabled = false;\n\t\t},\n\t};\n\n\tvar Keyboard$1 = {\n\t\tname: \"keyboard\",\n\t\tparams: {\n\t\t\tkeyboard: {\n\t\t\t\tenabled: false,\n\t\t\t\tonlyInViewport: true,\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tkeyboard: {\n\t\t\t\t\tenabled: false,\n\t\t\t\t\tenable: Keyboard.enable.bind(swiper),\n\t\t\t\t\tdisable: Keyboard.disable.bind(swiper),\n\t\t\t\t\thandle: Keyboard.handle.bind(swiper),\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tinit: function init() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.keyboard.enabled) {\n\t\t\t\t\tswiper.keyboard.enable();\n\t\t\t\t}\n\t\t\t},\n\t\t\tdestroy: function destroy() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.keyboard.enabled) {\n\t\t\t\t\tswiper.keyboard.disable();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t};\n\n\tfunction isEventSupported() {\n\t\tvar eventName = \"onwheel\";\n\t\tvar isSupported = eventName in doc;\n\n\t\tif (!isSupported) {\n\t\t\tvar element = doc.createElement(\"div\");\n\t\t\telement.setAttribute(eventName, \"return;\");\n\t\t\tisSupported = typeof element[eventName] === \"function\";\n\t\t}\n\n\t\tif (\n\t\t\t!isSupported &&\n\t\t\tdoc.implementation &&\n\t\t\tdoc.implementation.hasFeature &&\n\t\t\t// always returns true in newer browsers as per the standard.\n\t\t\t// @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n\t\t\tdoc.implementation.hasFeature(\"\", \"\") !== true\n\t\t) {\n\t\t\t// This is the only way to test support for the `wheel` event in IE9+.\n\t\t\tisSupported = doc.implementation.hasFeature(\"Events.wheel\", \"3.0\");\n\t\t}\n\n\t\treturn isSupported;\n\t}\n\tvar Mousewheel = {\n\t\tlastScrollTime: Utils.now(),\n\t\tevent: (function getEvent() {\n\t\t\tif (win.navigator.userAgent.indexOf(\"firefox\") > -1) {\n\t\t\t\treturn \"DOMMouseScroll\";\n\t\t\t}\n\t\t\treturn isEventSupported() ? \"wheel\" : \"mousewheel\";\n\t\t})(),\n\t\tnormalize: function normalize(e) {\n\t\t\t// Reasonable defaults\n\t\t\tvar PIXEL_STEP = 10;\n\t\t\tvar LINE_HEIGHT = 40;\n\t\t\tvar PAGE_HEIGHT = 800;\n\n\t\t\tvar sX = 0;\n\t\t\tvar sY = 0; // spinX, spinY\n\t\t\tvar pX = 0;\n\t\t\tvar pY = 0; // pixelX, pixelY\n\n\t\t\t// Legacy\n\t\t\tif (\"detail\" in e) {\n\t\t\t\tsY = e.detail;\n\t\t\t}\n\t\t\tif (\"wheelDelta\" in e) {\n\t\t\t\tsY = -e.wheelDelta / 120;\n\t\t\t}\n\t\t\tif (\"wheelDeltaY\" in e) {\n\t\t\t\tsY = -e.wheelDeltaY / 120;\n\t\t\t}\n\t\t\tif (\"wheelDeltaX\" in e) {\n\t\t\t\tsX = -e.wheelDeltaX / 120;\n\t\t\t}\n\n\t\t\t// side scrolling on FF with DOMMouseScroll\n\t\t\tif (\"axis\" in e && e.axis === e.HORIZONTAL_AXIS) {\n\t\t\t\tsX = sY;\n\t\t\t\tsY = 0;\n\t\t\t}\n\n\t\t\tpX = sX * PIXEL_STEP;\n\t\t\tpY = sY * PIXEL_STEP;\n\n\t\t\tif (\"deltaY\" in e) {\n\t\t\t\tpY = e.deltaY;\n\t\t\t}\n\t\t\tif (\"deltaX\" in e) {\n\t\t\t\tpX = e.deltaX;\n\t\t\t}\n\n\t\t\tif ((pX || pY) && e.deltaMode) {\n\t\t\t\tif (e.deltaMode === 1) {\n\t\t\t\t\t// delta in LINE units\n\t\t\t\t\tpX *= LINE_HEIGHT;\n\t\t\t\t\tpY *= LINE_HEIGHT;\n\t\t\t\t} else {\n\t\t\t\t\t// delta in PAGE units\n\t\t\t\t\tpX *= PAGE_HEIGHT;\n\t\t\t\t\tpY *= PAGE_HEIGHT;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Fall-back if spin cannot be determined\n\t\t\tif (pX && !sX) {\n\t\t\t\tsX = pX < 1 ? -1 : 1;\n\t\t\t}\n\t\t\tif (pY && !sY) {\n\t\t\t\tsY = pY < 1 ? -1 : 1;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tspinX: sX,\n\t\t\t\tspinY: sY,\n\t\t\t\tpixelX: pX,\n\t\t\t\tpixelY: pY,\n\t\t\t};\n\t\t},\n\t\thandleMouseEnter: function handleMouseEnter() {\n\t\t\tvar swiper = this;\n\t\t\tswiper.mouseEntered = true;\n\t\t},\n\t\thandleMouseLeave: function handleMouseLeave() {\n\t\t\tvar swiper = this;\n\t\t\tswiper.mouseEntered = false;\n\t\t},\n\t\thandle: function handle(event) {\n\t\t\tvar e = event;\n\t\t\tvar swiper = this;\n\t\t\tvar params = swiper.params.mousewheel;\n\n\t\t\tif (!swiper.mouseEntered && !params.releaseOnEdges) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (e.originalEvent) {\n\t\t\t\te = e.originalEvent;\n\t\t\t} // jquery fix\n\t\t\tvar delta = 0;\n\t\t\tvar rtlFactor = swiper.rtlTranslate ? -1 : 1;\n\n\t\t\tvar data = Mousewheel.normalize(e);\n\n\t\t\tif (params.forceToAxis) {\n\t\t\t\tif (swiper.isHorizontal()) {\n\t\t\t\t\tif (Math.abs(data.pixelX) > Math.abs(data.pixelY)) {\n\t\t\t\t\t\tdelta = data.pixelX * rtlFactor;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t} else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) {\n\t\t\t\t\tdelta = data.pixelY;\n\t\t\t\t} else {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdelta =\n\t\t\t\t\tMath.abs(data.pixelX) > Math.abs(data.pixelY)\n\t\t\t\t\t\t? -data.pixelX * rtlFactor\n\t\t\t\t\t\t: -data.pixelY;\n\t\t\t}\n\n\t\t\tif (delta === 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (params.invert) {\n\t\t\t\tdelta = -delta;\n\t\t\t}\n\n\t\t\tif (!swiper.params.freeMode) {\n\t\t\t\tif (Utils.now() - swiper.mousewheel.lastScrollTime > 60) {\n\t\t\t\t\tif (delta < 0) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t(!swiper.isEnd || swiper.params.loop) &&\n\t\t\t\t\t\t\t!swiper.animating\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tswiper.slideNext();\n\t\t\t\t\t\t\tswiper.emit(\"scroll\", e);\n\t\t\t\t\t\t} else if (params.releaseOnEdges) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t(!swiper.isBeginning || swiper.params.loop) &&\n\t\t\t\t\t\t!swiper.animating\n\t\t\t\t\t) {\n\t\t\t\t\t\tswiper.slidePrev();\n\t\t\t\t\t\tswiper.emit(\"scroll\", e);\n\t\t\t\t\t} else if (params.releaseOnEdges) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tswiper.mousewheel.lastScrollTime = new win.Date().getTime();\n\t\t\t} else {\n\t\t\t\t// Freemode or scrollContainer:\n\t\t\t\tif (swiper.params.loop) {\n\t\t\t\t\tswiper.loopFix();\n\t\t\t\t}\n\t\t\t\tvar position =\n\t\t\t\t\tswiper.getTranslate() + delta * params.sensitivity;\n\t\t\t\tvar wasBeginning = swiper.isBeginning;\n\t\t\t\tvar wasEnd = swiper.isEnd;\n\n\t\t\t\tif (position >= swiper.minTranslate()) {\n\t\t\t\t\tposition = swiper.minTranslate();\n\t\t\t\t}\n\t\t\t\tif (position <= swiper.maxTranslate()) {\n\t\t\t\t\tposition = swiper.maxTranslate();\n\t\t\t\t}\n\n\t\t\t\tswiper.setTransition(0);\n\t\t\t\tswiper.setTranslate(position);\n\t\t\t\tswiper.updateProgress();\n\t\t\t\tswiper.updateActiveIndex();\n\t\t\t\tswiper.updateSlidesClasses();\n\n\t\t\t\tif (\n\t\t\t\t\t(!wasBeginning && swiper.isBeginning) ||\n\t\t\t\t\t(!wasEnd && swiper.isEnd)\n\t\t\t\t) {\n\t\t\t\t\tswiper.updateSlidesClasses();\n\t\t\t\t}\n\n\t\t\t\tif (swiper.params.freeModeSticky) {\n\t\t\t\t\tclearTimeout(swiper.mousewheel.timeout);\n\t\t\t\t\tswiper.mousewheel.timeout = Utils.nextTick(function () {\n\t\t\t\t\t\tswiper.slideToClosest();\n\t\t\t\t\t}, 300);\n\t\t\t\t}\n\t\t\t\t// Emit event\n\t\t\t\tswiper.emit(\"scroll\", e);\n\n\t\t\t\t// Stop autoplay\n\t\t\t\tif (\n\t\t\t\t\tswiper.params.autoplay &&\n\t\t\t\t\tswiper.params.autoplayDisableOnInteraction\n\t\t\t\t) {\n\t\t\t\t\tswiper.autoplay.stop();\n\t\t\t\t}\n\t\t\t\t// Return page scroll on edge positions\n\t\t\t\tif (\n\t\t\t\t\tposition === swiper.minTranslate() ||\n\t\t\t\t\tposition === swiper.maxTranslate()\n\t\t\t\t) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (e.preventDefault) {\n\t\t\t\te.preventDefault();\n\t\t\t} else {\n\t\t\t\te.returnValue = false;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tenable: function enable() {\n\t\t\tvar swiper = this;\n\t\t\tif (!Mousewheel.event) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (swiper.mousewheel.enabled) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar target = swiper.$el;\n\t\t\tif (swiper.params.mousewheel.eventsTarged !== \"container\") {\n\t\t\t\ttarget = $(swiper.params.mousewheel.eventsTarged);\n\t\t\t}\n\t\t\ttarget.on(\"mouseenter\", swiper.mousewheel.handleMouseEnter);\n\t\t\ttarget.on(\"mouseleave\", swiper.mousewheel.handleMouseLeave);\n\t\t\ttarget.on(Mousewheel.event, swiper.mousewheel.handle);\n\t\t\tswiper.mousewheel.enabled = true;\n\t\t\treturn true;\n\t\t},\n\t\tdisable: function disable() {\n\t\t\tvar swiper = this;\n\t\t\tif (!Mousewheel.event) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (!swiper.mousewheel.enabled) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar target = swiper.$el;\n\t\t\tif (swiper.params.mousewheel.eventsTarged !== \"container\") {\n\t\t\t\ttarget = $(swiper.params.mousewheel.eventsTarged);\n\t\t\t}\n\t\t\ttarget.off(Mousewheel.event, swiper.mousewheel.handle);\n\t\t\tswiper.mousewheel.enabled = false;\n\t\t\treturn true;\n\t\t},\n\t};\n\n\tvar Mousewheel$1 = {\n\t\tname: \"mousewheel\",\n\t\tparams: {\n\t\t\tmousewheel: {\n\t\t\t\tenabled: false,\n\t\t\t\treleaseOnEdges: false,\n\t\t\t\tinvert: false,\n\t\t\t\tforceToAxis: false,\n\t\t\t\tsensitivity: 1,\n\t\t\t\teventsTarged: \"container\",\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tmousewheel: {\n\t\t\t\t\tenabled: false,\n\t\t\t\t\tenable: Mousewheel.enable.bind(swiper),\n\t\t\t\t\tdisable: Mousewheel.disable.bind(swiper),\n\t\t\t\t\thandle: Mousewheel.handle.bind(swiper),\n\t\t\t\t\thandleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper),\n\t\t\t\t\thandleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper),\n\t\t\t\t\tlastScrollTime: Utils.now(),\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tinit: function init() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.mousewheel.enabled) {\n\t\t\t\t\tswiper.mousewheel.enable();\n\t\t\t\t}\n\t\t\t},\n\t\t\tdestroy: function destroy() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.mousewheel.enabled) {\n\t\t\t\t\tswiper.mousewheel.disable();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t};\n\n\tvar Navigation = {\n\t\tupdate: function update() {\n\t\t\t// Update Navigation Buttons\n\t\t\tvar swiper = this;\n\t\t\tvar params = swiper.params.navigation;\n\n\t\t\tif (swiper.params.loop) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar ref = swiper.navigation;\n\t\t\tvar $nextEl = ref.$nextEl;\n\t\t\tvar $prevEl = ref.$prevEl;\n\n\t\t\tif ($prevEl && $prevEl.length > 0) {\n\t\t\t\tif (swiper.isBeginning) {\n\t\t\t\t\t$prevEl.addClass(params.disabledClass);\n\t\t\t\t} else {\n\t\t\t\t\t$prevEl.removeClass(params.disabledClass);\n\t\t\t\t}\n\t\t\t\t$prevEl[\n\t\t\t\t\tswiper.params.watchOverflow && swiper.isLocked\n\t\t\t\t\t\t? \"addClass\"\n\t\t\t\t\t\t: \"removeClass\"\n\t\t\t\t](params.lockClass);\n\t\t\t}\n\t\t\tif ($nextEl && $nextEl.length > 0) {\n\t\t\t\tif (swiper.isEnd) {\n\t\t\t\t\t$nextEl.addClass(params.disabledClass);\n\t\t\t\t} else {\n\t\t\t\t\t$nextEl.removeClass(params.disabledClass);\n\t\t\t\t}\n\t\t\t\t$nextEl[\n\t\t\t\t\tswiper.params.watchOverflow && swiper.isLocked\n\t\t\t\t\t\t? \"addClass\"\n\t\t\t\t\t\t: \"removeClass\"\n\t\t\t\t](params.lockClass);\n\t\t\t}\n\t\t},\n\t\tonPrevClick: function onPrevClick(e) {\n\t\t\tvar swiper = this;\n\t\t\te.preventDefault();\n\t\t\tif (swiper.isBeginning && !swiper.params.loop) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tswiper.slidePrev();\n\t\t},\n\t\tonNextClick: function onNextClick(e) {\n\t\t\tvar swiper = this;\n\t\t\te.preventDefault();\n\t\t\tif (swiper.isEnd && !swiper.params.loop) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tswiper.slideNext();\n\t\t},\n\t\tinit: function init() {\n\t\t\tvar swiper = this;\n\t\t\tvar params = swiper.params.navigation;\n\t\t\tif (!(params.nextEl || params.prevEl)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar $nextEl;\n\t\t\tvar $prevEl;\n\t\t\tif (params.nextEl) {\n\t\t\t\t$nextEl = $(params.nextEl);\n\t\t\t\tif (\n\t\t\t\t\tswiper.params.uniqueNavElements &&\n\t\t\t\t\ttypeof params.nextEl === \"string\" &&\n\t\t\t\t\t$nextEl.length > 1 &&\n\t\t\t\t\tswiper.$el.find(params.nextEl).length === 1\n\t\t\t\t) {\n\t\t\t\t\t$nextEl = swiper.$el.find(params.nextEl);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (params.prevEl) {\n\t\t\t\t$prevEl = $(params.prevEl);\n\t\t\t\tif (\n\t\t\t\t\tswiper.params.uniqueNavElements &&\n\t\t\t\t\ttypeof params.prevEl === \"string\" &&\n\t\t\t\t\t$prevEl.length > 1 &&\n\t\t\t\t\tswiper.$el.find(params.prevEl).length === 1\n\t\t\t\t) {\n\t\t\t\t\t$prevEl = swiper.$el.find(params.prevEl);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($nextEl && $nextEl.length > 0) {\n\t\t\t\t$nextEl.on(\"click\", swiper.navigation.onNextClick);\n\t\t\t}\n\t\t\tif ($prevEl && $prevEl.length > 0) {\n\t\t\t\t$prevEl.on(\"click\", swiper.navigation.onPrevClick);\n\t\t\t}\n\n\t\t\tUtils.extend(swiper.navigation, {\n\t\t\t\t$nextEl: $nextEl,\n\t\t\t\tnextEl: $nextEl && $nextEl[0],\n\t\t\t\t$prevEl: $prevEl,\n\t\t\t\tprevEl: $prevEl && $prevEl[0],\n\t\t\t});\n\t\t},\n\t\tdestroy: function destroy() {\n\t\t\tvar swiper = this;\n\t\t\tvar ref = swiper.navigation;\n\t\t\tvar $nextEl = ref.$nextEl;\n\t\t\tvar $prevEl = ref.$prevEl;\n\t\t\tif ($nextEl && $nextEl.length) {\n\t\t\t\t$nextEl.off(\"click\", swiper.navigation.onNextClick);\n\t\t\t\t$nextEl.removeClass(swiper.params.navigation.disabledClass);\n\t\t\t}\n\t\t\tif ($prevEl && $prevEl.length) {\n\t\t\t\t$prevEl.off(\"click\", swiper.navigation.onPrevClick);\n\t\t\t\t$prevEl.removeClass(swiper.params.navigation.disabledClass);\n\t\t\t}\n\t\t},\n\t};\n\n\tvar Navigation$1 = {\n\t\tname: \"navigation\",\n\t\tparams: {\n\t\t\tnavigation: {\n\t\t\t\tnextEl: null,\n\t\t\t\tprevEl: null,\n\n\t\t\t\thideOnClick: false,\n\t\t\t\tdisabledClass: \"swiper-button-disabled\",\n\t\t\t\thiddenClass: \"swiper-button-hidden\",\n\t\t\t\tlockClass: \"swiper-button-lock\",\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tnavigation: {\n\t\t\t\t\tinit: Navigation.init.bind(swiper),\n\t\t\t\t\tupdate: Navigation.update.bind(swiper),\n\t\t\t\t\tdestroy: Navigation.destroy.bind(swiper),\n\t\t\t\t\tonNextClick: Navigation.onNextClick.bind(swiper),\n\t\t\t\t\tonPrevClick: Navigation.onPrevClick.bind(swiper),\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tinit: function init() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tswiper.navigation.init();\n\t\t\t\tswiper.navigation.update();\n\t\t\t},\n\t\t\ttoEdge: function toEdge() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tswiper.navigation.update();\n\t\t\t},\n\t\t\tfromEdge: function fromEdge() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tswiper.navigation.update();\n\t\t\t},\n\t\t\tdestroy: function destroy() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tswiper.navigation.destroy();\n\t\t\t},\n\t\t\tclick: function click(e) {\n\t\t\t\tvar swiper = this;\n\t\t\t\tvar ref = swiper.navigation;\n\t\t\t\tvar $nextEl = ref.$nextEl;\n\t\t\t\tvar $prevEl = ref.$prevEl;\n\t\t\t\tif (\n\t\t\t\t\tswiper.params.navigation.hideOnClick &&\n\t\t\t\t\t!$(e.target).is($prevEl) &&\n\t\t\t\t\t!$(e.target).is($nextEl)\n\t\t\t\t) {\n\t\t\t\t\tvar isHidden;\n\t\t\t\t\tif ($nextEl) {\n\t\t\t\t\t\tisHidden = $nextEl.hasClass(\n\t\t\t\t\t\t\tswiper.params.navigation.hiddenClass\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ($prevEl) {\n\t\t\t\t\t\tisHidden = $prevEl.hasClass(\n\t\t\t\t\t\t\tswiper.params.navigation.hiddenClass\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tif (isHidden === true) {\n\t\t\t\t\t\tswiper.emit(\"navigationShow\", swiper);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tswiper.emit(\"navigationHide\", swiper);\n\t\t\t\t\t}\n\t\t\t\t\tif ($nextEl) {\n\t\t\t\t\t\t$nextEl.toggleClass(\n\t\t\t\t\t\t\tswiper.params.navigation.hiddenClass\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tif ($prevEl) {\n\t\t\t\t\t\t$prevEl.toggleClass(\n\t\t\t\t\t\t\tswiper.params.navigation.hiddenClass\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t};\n\n\tvar Pagination = {\n\t\tupdate: function update() {\n\t\t\t// Render || Update Pagination bullets/items\n\t\t\tvar swiper = this;\n\t\t\tvar rtl = swiper.rtl;\n\t\t\tvar params = swiper.params.pagination;\n\t\t\tif (\n\t\t\t\t!params.el ||\n\t\t\t\t!swiper.pagination.el ||\n\t\t\t\t!swiper.pagination.$el ||\n\t\t\t\tswiper.pagination.$el.length === 0\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar slidesLength =\n\t\t\t\tswiper.virtual && swiper.params.virtual.enabled\n\t\t\t\t\t? swiper.virtual.slides.length\n\t\t\t\t\t: swiper.slides.length;\n\t\t\tvar $el = swiper.pagination.$el;\n\t\t\t// Current/Total\n\t\t\tvar current;\n\t\t\tvar total = swiper.params.loop\n\t\t\t\t? Math.ceil(\n\t\t\t\t\t\t(slidesLength - swiper.loopedSlides * 2) /\n\t\t\t\t\t\t\tswiper.params.slidesPerGroup\n\t\t\t\t )\n\t\t\t\t: swiper.snapGrid.length;\n\t\t\tif (swiper.params.loop) {\n\t\t\t\tcurrent = Math.ceil(\n\t\t\t\t\t(swiper.activeIndex - swiper.loopedSlides) /\n\t\t\t\t\t\tswiper.params.slidesPerGroup\n\t\t\t\t);\n\t\t\t\tif (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n\t\t\t\t\tcurrent -= slidesLength - swiper.loopedSlides * 2;\n\t\t\t\t}\n\t\t\t\tif (current > total - 1) {\n\t\t\t\t\tcurrent -= total;\n\t\t\t\t}\n\t\t\t\tif (current < 0 && swiper.params.paginationType !== \"bullets\") {\n\t\t\t\t\tcurrent = total + current;\n\t\t\t\t}\n\t\t\t} else if (typeof swiper.snapIndex !== \"undefined\") {\n\t\t\t\tcurrent = swiper.snapIndex;\n\t\t\t} else {\n\t\t\t\tcurrent = swiper.activeIndex || 0;\n\t\t\t}\n\t\t\t// Types\n\t\t\tif (\n\t\t\t\tparams.type === \"bullets\" &&\n\t\t\t\tswiper.pagination.bullets &&\n\t\t\t\tswiper.pagination.bullets.length > 0\n\t\t\t) {\n\t\t\t\tvar bullets = swiper.pagination.bullets;\n\t\t\t\tvar firstIndex;\n\t\t\t\tvar lastIndex;\n\t\t\t\tvar midIndex;\n\t\t\t\tif (params.dynamicBullets) {\n\t\t\t\t\tswiper.pagination.bulletSize = bullets\n\t\t\t\t\t\t.eq(0)\n\t\t\t\t\t\t[swiper.isHorizontal() ? \"outerWidth\" : \"outerHeight\"](\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t);\n\t\t\t\t\t$el.css(\n\t\t\t\t\t\tswiper.isHorizontal() ? \"width\" : \"height\",\n\t\t\t\t\t\tswiper.pagination.bulletSize *\n\t\t\t\t\t\t\t(params.dynamicMainBullets + 4) +\n\t\t\t\t\t\t\t\"px\"\n\t\t\t\t\t);\n\t\t\t\t\tif (\n\t\t\t\t\t\tparams.dynamicMainBullets > 1 &&\n\t\t\t\t\t\tswiper.previousIndex !== undefined\n\t\t\t\t\t) {\n\t\t\t\t\t\tswiper.pagination.dynamicBulletIndex +=\n\t\t\t\t\t\t\tcurrent - swiper.previousIndex;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tswiper.pagination.dynamicBulletIndex >\n\t\t\t\t\t\t\tparams.dynamicMainBullets - 1\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tswiper.pagination.dynamicBulletIndex =\n\t\t\t\t\t\t\t\tparams.dynamicMainBullets - 1;\n\t\t\t\t\t\t} else if (swiper.pagination.dynamicBulletIndex < 0) {\n\t\t\t\t\t\t\tswiper.pagination.dynamicBulletIndex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfirstIndex = current - swiper.pagination.dynamicBulletIndex;\n\t\t\t\t\tlastIndex =\n\t\t\t\t\t\tfirstIndex +\n\t\t\t\t\t\t(Math.min(bullets.length, params.dynamicMainBullets) -\n\t\t\t\t\t\t\t1);\n\t\t\t\t\tmidIndex = (lastIndex + firstIndex) / 2;\n\t\t\t\t}\n\t\t\t\tbullets.removeClass(\n\t\t\t\t\tparams.bulletActiveClass +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tparams.bulletActiveClass +\n\t\t\t\t\t\t\"-next \" +\n\t\t\t\t\t\tparams.bulletActiveClass +\n\t\t\t\t\t\t\"-next-next \" +\n\t\t\t\t\t\tparams.bulletActiveClass +\n\t\t\t\t\t\t\"-prev \" +\n\t\t\t\t\t\tparams.bulletActiveClass +\n\t\t\t\t\t\t\"-prev-prev \" +\n\t\t\t\t\t\tparams.bulletActiveClass +\n\t\t\t\t\t\t\"-main\"\n\t\t\t\t);\n\t\t\t\tif ($el.length > 1) {\n\t\t\t\t\tbullets.each(function (index, bullet) {\n\t\t\t\t\t\tvar $bullet = $(bullet);\n\t\t\t\t\t\tvar bulletIndex = $bullet.index();\n\t\t\t\t\t\tif (bulletIndex === current) {\n\t\t\t\t\t\t\t$bullet.addClass(params.bulletActiveClass);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (params.dynamicBullets) {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tbulletIndex >= firstIndex &&\n\t\t\t\t\t\t\t\tbulletIndex <= lastIndex\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t$bullet.addClass(\n\t\t\t\t\t\t\t\t\tparams.bulletActiveClass + \"-main\"\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (bulletIndex === firstIndex) {\n\t\t\t\t\t\t\t\t$bullet\n\t\t\t\t\t\t\t\t\t.prev()\n\t\t\t\t\t\t\t\t\t.addClass(\n\t\t\t\t\t\t\t\t\t\tparams.bulletActiveClass + \"-prev\"\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.prev()\n\t\t\t\t\t\t\t\t\t.addClass(\n\t\t\t\t\t\t\t\t\t\tparams.bulletActiveClass + \"-prev-prev\"\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (bulletIndex === lastIndex) {\n\t\t\t\t\t\t\t\t$bullet\n\t\t\t\t\t\t\t\t\t.next()\n\t\t\t\t\t\t\t\t\t.addClass(\n\t\t\t\t\t\t\t\t\t\tparams.bulletActiveClass + \"-next\"\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.next()\n\t\t\t\t\t\t\t\t\t.addClass(\n\t\t\t\t\t\t\t\t\t\tparams.bulletActiveClass + \"-next-next\"\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tvar $bullet = bullets.eq(current);\n\t\t\t\t\t$bullet.addClass(params.bulletActiveClass);\n\t\t\t\t\tif (params.dynamicBullets) {\n\t\t\t\t\t\tvar $firstDisplayedBullet = bullets.eq(firstIndex);\n\t\t\t\t\t\tvar $lastDisplayedBullet = bullets.eq(lastIndex);\n\t\t\t\t\t\tfor (var i = firstIndex; i <= lastIndex; i += 1) {\n\t\t\t\t\t\t\tbullets\n\t\t\t\t\t\t\t\t.eq(i)\n\t\t\t\t\t\t\t\t.addClass(params.bulletActiveClass + \"-main\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$firstDisplayedBullet\n\t\t\t\t\t\t\t.prev()\n\t\t\t\t\t\t\t.addClass(params.bulletActiveClass + \"-prev\")\n\t\t\t\t\t\t\t.prev()\n\t\t\t\t\t\t\t.addClass(params.bulletActiveClass + \"-prev-prev\");\n\t\t\t\t\t\t$lastDisplayedBullet\n\t\t\t\t\t\t\t.next()\n\t\t\t\t\t\t\t.addClass(params.bulletActiveClass + \"-next\")\n\t\t\t\t\t\t\t.next()\n\t\t\t\t\t\t\t.addClass(params.bulletActiveClass + \"-next-next\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (params.dynamicBullets) {\n\t\t\t\t\tvar dynamicBulletsLength = Math.min(\n\t\t\t\t\t\tbullets.length,\n\t\t\t\t\t\tparams.dynamicMainBullets + 4\n\t\t\t\t\t);\n\t\t\t\t\tvar bulletsOffset =\n\t\t\t\t\t\t(swiper.pagination.bulletSize * dynamicBulletsLength -\n\t\t\t\t\t\t\tswiper.pagination.bulletSize) /\n\t\t\t\t\t\t\t2 -\n\t\t\t\t\t\tmidIndex * swiper.pagination.bulletSize;\n\t\t\t\t\tvar offsetProp = rtl ? \"right\" : \"left\";\n\t\t\t\t\tbullets.css(\n\t\t\t\t\t\tswiper.isHorizontal() ? offsetProp : \"top\",\n\t\t\t\t\t\tbulletsOffset + \"px\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (params.type === \"fraction\") {\n\t\t\t\t$el.find(\".\" + params.currentClass).text(\n\t\t\t\t\tparams.formatFractionCurrent(current + 1)\n\t\t\t\t);\n\t\t\t\t$el.find(\".\" + params.totalClass).text(\n\t\t\t\t\tparams.formatFractionTotal(total)\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (params.type === \"progressbar\") {\n\t\t\t\tvar progressbarDirection;\n\t\t\t\tif (params.progressbarOpposite) {\n\t\t\t\t\tprogressbarDirection = swiper.isHorizontal()\n\t\t\t\t\t\t? \"vertical\"\n\t\t\t\t\t\t: \"horizontal\";\n\t\t\t\t} else {\n\t\t\t\t\tprogressbarDirection = swiper.isHorizontal()\n\t\t\t\t\t\t? \"horizontal\"\n\t\t\t\t\t\t: \"vertical\";\n\t\t\t\t}\n\t\t\t\tvar scale = (current + 1) / total;\n\t\t\t\tvar scaleX = 1;\n\t\t\t\tvar scaleY = 1;\n\t\t\t\tif (progressbarDirection === \"horizontal\") {\n\t\t\t\t\tscaleX = scale;\n\t\t\t\t} else {\n\t\t\t\t\tscaleY = scale;\n\t\t\t\t}\n\t\t\t\t$el.find(\".\" + params.progressbarFillClass)\n\t\t\t\t\t.transform(\n\t\t\t\t\t\t\"translate3d(0,0,0) scaleX(\" +\n\t\t\t\t\t\t\tscaleX +\n\t\t\t\t\t\t\t\") scaleY(\" +\n\t\t\t\t\t\t\tscaleY +\n\t\t\t\t\t\t\t\")\"\n\t\t\t\t\t)\n\t\t\t\t\t.transition(swiper.params.speed);\n\t\t\t}\n\t\t\tif (params.type === \"custom\" && params.renderCustom) {\n\t\t\t\t$el.html(params.renderCustom(swiper, current + 1, total));\n\t\t\t\tswiper.emit(\"paginationRender\", swiper, $el[0]);\n\t\t\t} else {\n\t\t\t\tswiper.emit(\"paginationUpdate\", swiper, $el[0]);\n\t\t\t}\n\t\t\t$el[\n\t\t\t\tswiper.params.watchOverflow && swiper.isLocked\n\t\t\t\t\t? \"addClass\"\n\t\t\t\t\t: \"removeClass\"\n\t\t\t](params.lockClass);\n\t\t},\n\t\trender: function render() {\n\t\t\t// Render Container\n\t\t\tvar swiper = this;\n\t\t\tvar params = swiper.params.pagination;\n\t\t\tif (\n\t\t\t\t!params.el ||\n\t\t\t\t!swiper.pagination.el ||\n\t\t\t\t!swiper.pagination.$el ||\n\t\t\t\tswiper.pagination.$el.length === 0\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar slidesLength =\n\t\t\t\tswiper.virtual && swiper.params.virtual.enabled\n\t\t\t\t\t? swiper.virtual.slides.length\n\t\t\t\t\t: swiper.slides.length;\n\n\t\t\tvar $el = swiper.pagination.$el;\n\t\t\tvar paginationHTML = \"\";\n\t\t\tif (params.type === \"bullets\") {\n\t\t\t\tvar numberOfBullets = swiper.params.loop\n\t\t\t\t\t? Math.ceil(\n\t\t\t\t\t\t\t(slidesLength - swiper.loopedSlides * 2) /\n\t\t\t\t\t\t\t\tswiper.params.slidesPerGroup\n\t\t\t\t\t )\n\t\t\t\t\t: swiper.snapGrid.length;\n\t\t\t\tfor (var i = 0; i < numberOfBullets; i += 1) {\n\t\t\t\t\tif (params.renderBullet) {\n\t\t\t\t\t\tpaginationHTML += params.renderBullet.call(\n\t\t\t\t\t\t\tswiper,\n\t\t\t\t\t\t\ti,\n\t\t\t\t\t\t\tparams.bulletClass\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpaginationHTML +=\n\t\t\t\t\t\t\t\"<\" +\n\t\t\t\t\t\t\tparams.bulletElement +\n\t\t\t\t\t\t\t' class=\"' +\n\t\t\t\t\t\t\tparams.bulletClass +\n\t\t\t\t\t\t\t'\"></' +\n\t\t\t\t\t\t\tparams.bulletElement +\n\t\t\t\t\t\t\t\">\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$el.html(paginationHTML);\n\t\t\t\tswiper.pagination.bullets = $el.find(\".\" + params.bulletClass);\n\t\t\t}\n\t\t\tif (params.type === \"fraction\") {\n\t\t\t\tif (params.renderFraction) {\n\t\t\t\t\tpaginationHTML = params.renderFraction.call(\n\t\t\t\t\t\tswiper,\n\t\t\t\t\t\tparams.currentClass,\n\t\t\t\t\t\tparams.totalClass\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tpaginationHTML =\n\t\t\t\t\t\t'<span class=\"' +\n\t\t\t\t\t\tparams.currentClass +\n\t\t\t\t\t\t'\"></span>' +\n\t\t\t\t\t\t\" / \" +\n\t\t\t\t\t\t'<span class=\"' +\n\t\t\t\t\t\tparams.totalClass +\n\t\t\t\t\t\t'\"></span>';\n\t\t\t\t}\n\t\t\t\t$el.html(paginationHTML);\n\t\t\t}\n\t\t\tif (params.type === \"progressbar\") {\n\t\t\t\tif (params.renderProgressbar) {\n\t\t\t\t\tpaginationHTML = params.renderProgressbar.call(\n\t\t\t\t\t\tswiper,\n\t\t\t\t\t\tparams.progressbarFillClass\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tpaginationHTML =\n\t\t\t\t\t\t'<span class=\"' +\n\t\t\t\t\t\tparams.progressbarFillClass +\n\t\t\t\t\t\t'\"></span>';\n\t\t\t\t}\n\t\t\t\t$el.html(paginationHTML);\n\t\t\t}\n\t\t\tif (params.type !== \"custom\") {\n\t\t\t\tswiper.emit(\"paginationRender\", swiper.pagination.$el[0]);\n\t\t\t}\n\t\t},\n\t\tinit: function init() {\n\t\t\tvar swiper = this;\n\t\t\tvar params = swiper.params.pagination;\n\t\t\tif (!params.el) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar $el = $(params.el);\n\t\t\tif ($el.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tswiper.params.uniqueNavElements &&\n\t\t\t\ttypeof params.el === \"string\" &&\n\t\t\t\t$el.length > 1 &&\n\t\t\t\tswiper.$el.find(params.el).length === 1\n\t\t\t) {\n\t\t\t\t$el = swiper.$el.find(params.el);\n\t\t\t}\n\n\t\t\tif (params.type === \"bullets\" && params.clickable) {\n\t\t\t\t$el.addClass(params.clickableClass);\n\t\t\t}\n\n\t\t\t$el.addClass(params.modifierClass + params.type);\n\n\t\t\tif (params.type === \"bullets\" && params.dynamicBullets) {\n\t\t\t\t$el.addClass(\n\t\t\t\t\t\"\" + params.modifierClass + params.type + \"-dynamic\"\n\t\t\t\t);\n\t\t\t\tswiper.pagination.dynamicBulletIndex = 0;\n\t\t\t\tif (params.dynamicMainBullets < 1) {\n\t\t\t\t\tparams.dynamicMainBullets = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (params.type === \"progressbar\" && params.progressbarOpposite) {\n\t\t\t\t$el.addClass(params.progressbarOppositeClass);\n\t\t\t}\n\n\t\t\tif (params.clickable) {\n\t\t\t\t$el.on(\"click\", \".\" + params.bulletClass, function onClick(e) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tvar index = $(this).index() * swiper.params.slidesPerGroup;\n\t\t\t\t\tif (swiper.params.loop) {\n\t\t\t\t\t\tindex += swiper.loopedSlides;\n\t\t\t\t\t}\n\t\t\t\t\tswiper.slideTo(index);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tUtils.extend(swiper.pagination, {\n\t\t\t\t$el: $el,\n\t\t\t\tel: $el[0],\n\t\t\t});\n\t\t},\n\t\tdestroy: function destroy() {\n\t\t\tvar swiper = this;\n\t\t\tvar params = swiper.params.pagination;\n\t\t\tif (\n\t\t\t\t!params.el ||\n\t\t\t\t!swiper.pagination.el ||\n\t\t\t\t!swiper.pagination.$el ||\n\t\t\t\tswiper.pagination.$el.length === 0\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar $el = swiper.pagination.$el;\n\n\t\t\t$el.removeClass(params.hiddenClass);\n\t\t\t$el.removeClass(params.modifierClass + params.type);\n\t\t\tif (swiper.pagination.bullets) {\n\t\t\t\tswiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\t\t\t}\n\t\t\tif (params.clickable) {\n\t\t\t\t$el.off(\"click\", \".\" + params.bulletClass);\n\t\t\t}\n\t\t},\n\t};\n\n\tvar Pagination$1 = {\n\t\tname: \"pagination\",\n\t\tparams: {\n\t\t\tpagination: {\n\t\t\t\tel: null,\n\t\t\t\tbulletElement: \"span\",\n\t\t\t\tclickable: false,\n\t\t\t\thideOnClick: false,\n\t\t\t\trenderBullet: null,\n\t\t\t\trenderProgressbar: null,\n\t\t\t\trenderFraction: null,\n\t\t\t\trenderCustom: null,\n\t\t\t\tprogressbarOpposite: false,\n\t\t\t\ttype: \"bullets\", // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n\t\t\t\tdynamicBullets: false,\n\t\t\t\tdynamicMainBullets: 1,\n\t\t\t\tformatFractionCurrent: function (number) {\n\t\t\t\t\treturn number;\n\t\t\t\t},\n\t\t\t\tformatFractionTotal: function (number) {\n\t\t\t\t\treturn number;\n\t\t\t\t},\n\t\t\t\tbulletClass: \"swiper-pagination-bullet\",\n\t\t\t\tbulletActiveClass: \"swiper-pagination-bullet-active\",\n\t\t\t\tmodifierClass: \"swiper-pagination-\", // NEW\n\t\t\t\tcurrentClass: \"swiper-pagination-current\",\n\t\t\t\ttotalClass: \"swiper-pagination-total\",\n\t\t\t\thiddenClass: \"swiper-pagination-hidden\",\n\t\t\t\tprogressbarFillClass: \"swiper-pagination-progressbar-fill\",\n\t\t\t\tprogressbarOppositeClass:\n\t\t\t\t\t\"swiper-pagination-progressbar-opposite\",\n\t\t\t\tclickableClass: \"swiper-pagination-clickable\", // NEW\n\t\t\t\tlockClass: \"swiper-pagination-lock\",\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tpagination: {\n\t\t\t\t\tinit: Pagination.init.bind(swiper),\n\t\t\t\t\trender: Pagination.render.bind(swiper),\n\t\t\t\t\tupdate: Pagination.update.bind(swiper),\n\t\t\t\t\tdestroy: Pagination.destroy.bind(swiper),\n\t\t\t\t\tdynamicBulletIndex: 0,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tinit: function init() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tswiper.pagination.init();\n\t\t\t\tswiper.pagination.render();\n\t\t\t\tswiper.pagination.update();\n\t\t\t},\n\t\t\tactiveIndexChange: function activeIndexChange() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.loop) {\n\t\t\t\t\tswiper.pagination.update();\n\t\t\t\t} else if (typeof swiper.snapIndex === \"undefined\") {\n\t\t\t\t\tswiper.pagination.update();\n\t\t\t\t}\n\t\t\t},\n\t\t\tsnapIndexChange: function snapIndexChange() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.params.loop) {\n\t\t\t\t\tswiper.pagination.update();\n\t\t\t\t}\n\t\t\t},\n\t\t\tslidesLengthChange: function slidesLengthChange() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.loop) {\n\t\t\t\t\tswiper.pagination.render();\n\t\t\t\t\tswiper.pagination.update();\n\t\t\t\t}\n\t\t\t},\n\t\t\tsnapGridLengthChange: function snapGridLengthChange() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.params.loop) {\n\t\t\t\t\tswiper.pagination.render();\n\t\t\t\t\tswiper.pagination.update();\n\t\t\t\t}\n\t\t\t},\n\t\t\tdestroy: function destroy() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tswiper.pagination.destroy();\n\t\t\t},\n\t\t\tclick: function click(e) {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (\n\t\t\t\t\tswiper.params.pagination.el &&\n\t\t\t\t\tswiper.params.pagination.hideOnClick &&\n\t\t\t\t\tswiper.pagination.$el.length > 0 &&\n\t\t\t\t\t!$(e.target).hasClass(swiper.params.pagination.bulletClass)\n\t\t\t\t) {\n\t\t\t\t\tvar isHidden = swiper.pagination.$el.hasClass(\n\t\t\t\t\t\tswiper.params.pagination.hiddenClass\n\t\t\t\t\t);\n\t\t\t\t\tif (isHidden === true) {\n\t\t\t\t\t\tswiper.emit(\"paginationShow\", swiper);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tswiper.emit(\"paginationHide\", swiper);\n\t\t\t\t\t}\n\t\t\t\t\tswiper.pagination.$el.toggleClass(\n\t\t\t\t\t\tswiper.params.pagination.hiddenClass\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t};\n\n\tvar Scrollbar = {\n\t\tsetTranslate: function setTranslate() {\n\t\t\tvar swiper = this;\n\t\t\tif (!swiper.params.scrollbar.el || !swiper.scrollbar.el) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar scrollbar = swiper.scrollbar;\n\t\t\tvar rtl = swiper.rtlTranslate;\n\t\t\tvar progress = swiper.progress;\n\t\t\tvar dragSize = scrollbar.dragSize;\n\t\t\tvar trackSize = scrollbar.trackSize;\n\t\t\tvar $dragEl = scrollbar.$dragEl;\n\t\t\tvar $el = scrollbar.$el;\n\t\t\tvar params = swiper.params.scrollbar;\n\n\t\t\tvar newSize = dragSize;\n\t\t\tvar newPos = (trackSize - dragSize) * progress;\n\t\t\tif (rtl) {\n\t\t\t\tnewPos = -newPos;\n\t\t\t\tif (newPos > 0) {\n\t\t\t\t\tnewSize = dragSize - newPos;\n\t\t\t\t\tnewPos = 0;\n\t\t\t\t} else if (-newPos + dragSize > trackSize) {\n\t\t\t\t\tnewSize = trackSize + newPos;\n\t\t\t\t}\n\t\t\t} else if (newPos < 0) {\n\t\t\t\tnewSize = dragSize + newPos;\n\t\t\t\tnewPos = 0;\n\t\t\t} else if (newPos + dragSize > trackSize) {\n\t\t\t\tnewSize = trackSize - newPos;\n\t\t\t}\n\t\t\tif (swiper.isHorizontal()) {\n\t\t\t\tif (Support.transforms3d) {\n\t\t\t\t\t$dragEl.transform(\"translate3d(\" + newPos + \"px, 0, 0)\");\n\t\t\t\t} else {\n\t\t\t\t\t$dragEl.transform(\"translateX(\" + newPos + \"px)\");\n\t\t\t\t}\n\t\t\t\t$dragEl[0].style.width = newSize + \"px\";\n\t\t\t} else {\n\t\t\t\tif (Support.transforms3d) {\n\t\t\t\t\t$dragEl.transform(\"translate3d(0px, \" + newPos + \"px, 0)\");\n\t\t\t\t} else {\n\t\t\t\t\t$dragEl.transform(\"translateY(\" + newPos + \"px)\");\n\t\t\t\t}\n\t\t\t\t$dragEl[0].style.height = newSize + \"px\";\n\t\t\t}\n\t\t\tif (params.hide) {\n\t\t\t\tclearTimeout(swiper.scrollbar.timeout);\n\t\t\t\t$el[0].style.opacity = 1;\n\t\t\t\tswiper.scrollbar.timeout = setTimeout(function () {\n\t\t\t\t\t$el[0].style.opacity = 0;\n\t\t\t\t\t$el.transition(400);\n\t\t\t\t}, 1000);\n\t\t\t}\n\t\t},\n\t\tsetTransition: function setTransition(duration) {\n\t\t\tvar swiper = this;\n\t\t\tif (!swiper.params.scrollbar.el || !swiper.scrollbar.el) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tswiper.scrollbar.$dragEl.transition(duration);\n\t\t},\n\t\tupdateSize: function updateSize() {\n\t\t\tvar swiper = this;\n\t\t\tif (!swiper.params.scrollbar.el || !swiper.scrollbar.el) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar scrollbar = swiper.scrollbar;\n\t\t\tvar $dragEl = scrollbar.$dragEl;\n\t\t\tvar $el = scrollbar.$el;\n\n\t\t\t$dragEl[0].style.width = \"\";\n\t\t\t$dragEl[0].style.height = \"\";\n\t\t\tvar trackSize = swiper.isHorizontal()\n\t\t\t\t? $el[0].offsetWidth\n\t\t\t\t: $el[0].offsetHeight;\n\n\t\t\tvar divider = swiper.size / swiper.virtualSize;\n\t\t\tvar moveDivider = divider * (trackSize / swiper.size);\n\t\t\tvar dragSize;\n\t\t\tif (swiper.params.scrollbar.dragSize === \"auto\") {\n\t\t\t\tdragSize = trackSize * divider;\n\t\t\t} else {\n\t\t\t\tdragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n\t\t\t}\n\n\t\t\tif (swiper.isHorizontal()) {\n\t\t\t\t$dragEl[0].style.width = dragSize + \"px\";\n\t\t\t} else {\n\t\t\t\t$dragEl[0].style.height = dragSize + \"px\";\n\t\t\t}\n\n\t\t\tif (divider >= 1) {\n\t\t\t\t$el[0].style.display = \"none\";\n\t\t\t} else {\n\t\t\t\t$el[0].style.display = \"\";\n\t\t\t}\n\t\t\tif (swiper.params.scrollbar.hide) {\n\t\t\t\t$el[0].style.opacity = 0;\n\t\t\t}\n\t\t\tUtils.extend(scrollbar, {\n\t\t\t\ttrackSize: trackSize,\n\t\t\t\tdivider: divider,\n\t\t\t\tmoveDivider: moveDivider,\n\t\t\t\tdragSize: dragSize,\n\t\t\t});\n\t\t\tscrollbar.$el[\n\t\t\t\tswiper.params.watchOverflow && swiper.isLocked\n\t\t\t\t\t? \"addClass\"\n\t\t\t\t\t: \"removeClass\"\n\t\t\t](swiper.params.scrollbar.lockClass);\n\t\t},\n\t\tsetDragPosition: function setDragPosition(e) {\n\t\t\tvar swiper = this;\n\t\t\tvar scrollbar = swiper.scrollbar;\n\t\t\tvar rtl = swiper.rtlTranslate;\n\t\t\tvar $el = scrollbar.$el;\n\t\t\tvar dragSize = scrollbar.dragSize;\n\t\t\tvar trackSize = scrollbar.trackSize;\n\n\t\t\tvar pointerPosition;\n\t\t\tif (swiper.isHorizontal()) {\n\t\t\t\tpointerPosition =\n\t\t\t\t\te.type === \"touchstart\" || e.type === \"touchmove\"\n\t\t\t\t\t\t? e.targetTouches[0].pageX\n\t\t\t\t\t\t: e.pageX || e.clientX;\n\t\t\t} else {\n\t\t\t\tpointerPosition =\n\t\t\t\t\te.type === \"touchstart\" || e.type === \"touchmove\"\n\t\t\t\t\t\t? e.targetTouches[0].pageY\n\t\t\t\t\t\t: e.pageY || e.clientY;\n\t\t\t}\n\t\t\tvar positionRatio;\n\t\t\tpositionRatio =\n\t\t\t\t(pointerPosition -\n\t\t\t\t\t$el.offset()[swiper.isHorizontal() ? \"left\" : \"top\"] -\n\t\t\t\t\tdragSize / 2) /\n\t\t\t\t(trackSize - dragSize);\n\t\t\tpositionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\t\t\tif (rtl) {\n\t\t\t\tpositionRatio = 1 - positionRatio;\n\t\t\t}\n\n\t\t\tvar position =\n\t\t\t\tswiper.minTranslate() +\n\t\t\t\t(swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n\n\t\t\tswiper.updateProgress(position);\n\t\t\tswiper.setTranslate(position);\n\t\t\tswiper.updateActiveIndex();\n\t\t\tswiper.updateSlidesClasses();\n\t\t},\n\t\tonDragStart: function onDragStart(e) {\n\t\t\tvar swiper = this;\n\t\t\tvar params = swiper.params.scrollbar;\n\t\t\tvar scrollbar = swiper.scrollbar;\n\t\t\tvar $wrapperEl = swiper.$wrapperEl;\n\t\t\tvar $el = scrollbar.$el;\n\t\t\tvar $dragEl = scrollbar.$dragEl;\n\t\t\tswiper.scrollbar.isTouched = true;\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\n\t\t\t$wrapperEl.transition(100);\n\t\t\t$dragEl.transition(100);\n\t\t\tscrollbar.setDragPosition(e);\n\n\t\t\tclearTimeout(swiper.scrollbar.dragTimeout);\n\n\t\t\t$el.transition(0);\n\t\t\tif (params.hide) {\n\t\t\t\t$el.css(\"opacity\", 1);\n\t\t\t}\n\t\t\tswiper.emit(\"scrollbarDragStart\", e);\n\t\t},\n\t\tonDragMove: function onDragMove(e) {\n\t\t\tvar swiper = this;\n\t\t\tvar scrollbar = swiper.scrollbar;\n\t\t\tvar $wrapperEl = swiper.$wrapperEl;\n\t\t\tvar $el = scrollbar.$el;\n\t\t\tvar $dragEl = scrollbar.$dragEl;\n\n\t\t\tif (!swiper.scrollbar.isTouched) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (e.preventDefault) {\n\t\t\t\te.preventDefault();\n\t\t\t} else {\n\t\t\t\te.returnValue = false;\n\t\t\t}\n\t\t\tscrollbar.setDragPosition(e);\n\t\t\t$wrapperEl.transition(0);\n\t\t\t$el.transition(0);\n\t\t\t$dragEl.transition(0);\n\t\t\tswiper.emit(\"scrollbarDragMove\", e);\n\t\t},\n\t\tonDragEnd: function onDragEnd(e) {\n\t\t\tvar swiper = this;\n\n\t\t\tvar params = swiper.params.scrollbar;\n\t\t\tvar scrollbar = swiper.scrollbar;\n\t\t\tvar $el = scrollbar.$el;\n\n\t\t\tif (!swiper.scrollbar.isTouched) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tswiper.scrollbar.isTouched = false;\n\t\t\tif (params.hide) {\n\t\t\t\tclearTimeout(swiper.scrollbar.dragTimeout);\n\t\t\t\tswiper.scrollbar.dragTimeout = Utils.nextTick(function () {\n\t\t\t\t\t$el.css(\"opacity\", 0);\n\t\t\t\t\t$el.transition(400);\n\t\t\t\t}, 1000);\n\t\t\t}\n\t\t\tswiper.emit(\"scrollbarDragEnd\", e);\n\t\t\tif (params.snapOnRelease) {\n\t\t\t\tswiper.slideToClosest();\n\t\t\t}\n\t\t},\n\t\tenableDraggable: function enableDraggable() {\n\t\t\tvar swiper = this;\n\t\t\tif (!swiper.params.scrollbar.el) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar scrollbar = swiper.scrollbar;\n\t\t\tvar touchEventsTouch = swiper.touchEventsTouch;\n\t\t\tvar touchEventsDesktop = swiper.touchEventsDesktop;\n\t\t\tvar params = swiper.params;\n\t\t\tvar $el = scrollbar.$el;\n\t\t\tvar target = $el[0];\n\t\t\tvar activeListener =\n\t\t\t\tSupport.passiveListener && params.passiveListeners\n\t\t\t\t\t? { passive: false, capture: false }\n\t\t\t\t\t: false;\n\t\t\tvar passiveListener =\n\t\t\t\tSupport.passiveListener && params.passiveListeners\n\t\t\t\t\t? { passive: true, capture: false }\n\t\t\t\t\t: false;\n\t\t\tif (!Support.touch) {\n\t\t\t\ttarget.addEventListener(\n\t\t\t\t\ttouchEventsDesktop.start,\n\t\t\t\t\tswiper.scrollbar.onDragStart,\n\t\t\t\t\tactiveListener\n\t\t\t\t);\n\t\t\t\tdoc.addEventListener(\n\t\t\t\t\ttouchEventsDesktop.move,\n\t\t\t\t\tswiper.scrollbar.onDragMove,\n\t\t\t\t\tactiveListener\n\t\t\t\t);\n\t\t\t\tdoc.addEventListener(\n\t\t\t\t\ttouchEventsDesktop.end,\n\t\t\t\t\tswiper.scrollbar.onDragEnd,\n\t\t\t\t\tpassiveListener\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\ttarget.addEventListener(\n\t\t\t\t\ttouchEventsTouch.start,\n\t\t\t\t\tswiper.scrollbar.onDragStart,\n\t\t\t\t\tactiveListener\n\t\t\t\t);\n\t\t\t\ttarget.addEventListener(\n\t\t\t\t\ttouchEventsTouch.move,\n\t\t\t\t\tswiper.scrollbar.onDragMove,\n\t\t\t\t\tactiveListener\n\t\t\t\t);\n\t\t\t\ttarget.addEventListener(\n\t\t\t\t\ttouchEventsTouch.end,\n\t\t\t\t\tswiper.scrollbar.onDragEnd,\n\t\t\t\t\tpassiveListener\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\tdisableDraggable: function disableDraggable() {\n\t\t\tvar swiper = this;\n\t\t\tif (!swiper.params.scrollbar.el) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar scrollbar = swiper.scrollbar;\n\t\t\tvar touchEventsTouch = swiper.touchEventsTouch;\n\t\t\tvar touchEventsDesktop = swiper.touchEventsDesktop;\n\t\t\tvar params = swiper.params;\n\t\t\tvar $el = scrollbar.$el;\n\t\t\tvar target = $el[0];\n\t\t\tvar activeListener =\n\t\t\t\tSupport.passiveListener && params.passiveListeners\n\t\t\t\t\t? { passive: false, capture: false }\n\t\t\t\t\t: false;\n\t\t\tvar passiveListener =\n\t\t\t\tSupport.passiveListener && params.passiveListeners\n\t\t\t\t\t? { passive: true, capture: false }\n\t\t\t\t\t: false;\n\t\t\tif (!Support.touch) {\n\t\t\t\ttarget.removeEventListener(\n\t\t\t\t\ttouchEventsDesktop.start,\n\t\t\t\t\tswiper.scrollbar.onDragStart,\n\t\t\t\t\tactiveListener\n\t\t\t\t);\n\t\t\t\tdoc.removeEventListener(\n\t\t\t\t\ttouchEventsDesktop.move,\n\t\t\t\t\tswiper.scrollbar.onDragMove,\n\t\t\t\t\tactiveListener\n\t\t\t\t);\n\t\t\t\tdoc.removeEventListener(\n\t\t\t\t\ttouchEventsDesktop.end,\n\t\t\t\t\tswiper.scrollbar.onDragEnd,\n\t\t\t\t\tpassiveListener\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\ttarget.removeEventListener(\n\t\t\t\t\ttouchEventsTouch.start,\n\t\t\t\t\tswiper.scrollbar.onDragStart,\n\t\t\t\t\tactiveListener\n\t\t\t\t);\n\t\t\t\ttarget.removeEventListener(\n\t\t\t\t\ttouchEventsTouch.move,\n\t\t\t\t\tswiper.scrollbar.onDragMove,\n\t\t\t\t\tactiveListener\n\t\t\t\t);\n\t\t\t\ttarget.removeEventListener(\n\t\t\t\t\ttouchEventsTouch.end,\n\t\t\t\t\tswiper.scrollbar.onDragEnd,\n\t\t\t\t\tpassiveListener\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\tinit: function init() {\n\t\t\tvar swiper = this;\n\t\t\tif (!swiper.params.scrollbar.el) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar scrollbar = swiper.scrollbar;\n\t\t\tvar $swiperEl = swiper.$el;\n\t\t\tvar params = swiper.params.scrollbar;\n\n\t\t\tvar $el = $(params.el);\n\t\t\tif (\n\t\t\t\tswiper.params.uniqueNavElements &&\n\t\t\t\ttypeof params.el === \"string\" &&\n\t\t\t\t$el.length > 1 &&\n\t\t\t\t$swiperEl.find(params.el).length === 1\n\t\t\t) {\n\t\t\t\t$el = $swiperEl.find(params.el);\n\t\t\t}\n\n\t\t\tvar $dragEl = $el.find(\".\" + swiper.params.scrollbar.dragClass);\n\t\t\tif ($dragEl.length === 0) {\n\t\t\t\t$dragEl = $(\n\t\t\t\t\t'<div class=\"' +\n\t\t\t\t\t\tswiper.params.scrollbar.dragClass +\n\t\t\t\t\t\t'\"></div>'\n\t\t\t\t);\n\t\t\t\t$el.append($dragEl);\n\t\t\t}\n\n\t\t\tUtils.extend(scrollbar, {\n\t\t\t\t$el: $el,\n\t\t\t\tel: $el[0],\n\t\t\t\t$dragEl: $dragEl,\n\t\t\t\tdragEl: $dragEl[0],\n\t\t\t});\n\n\t\t\tif (params.draggable) {\n\t\t\t\tscrollbar.enableDraggable();\n\t\t\t}\n\t\t},\n\t\tdestroy: function destroy() {\n\t\t\tvar swiper = this;\n\t\t\tswiper.scrollbar.disableDraggable();\n\t\t},\n\t};\n\n\tvar Scrollbar$1 = {\n\t\tname: \"scrollbar\",\n\t\tparams: {\n\t\t\tscrollbar: {\n\t\t\t\tel: null,\n\t\t\t\tdragSize: \"auto\",\n\t\t\t\thide: false,\n\t\t\t\tdraggable: false,\n\t\t\t\tsnapOnRelease: true,\n\t\t\t\tlockClass: \"swiper-scrollbar-lock\",\n\t\t\t\tdragClass: \"swiper-scrollbar-drag\",\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tscrollbar: {\n\t\t\t\t\tinit: Scrollbar.init.bind(swiper),\n\t\t\t\t\tdestroy: Scrollbar.destroy.bind(swiper),\n\t\t\t\t\tupdateSize: Scrollbar.updateSize.bind(swiper),\n\t\t\t\t\tsetTranslate: Scrollbar.setTranslate.bind(swiper),\n\t\t\t\t\tsetTransition: Scrollbar.setTransition.bind(swiper),\n\t\t\t\t\tenableDraggable: Scrollbar.enableDraggable.bind(swiper),\n\t\t\t\t\tdisableDraggable: Scrollbar.disableDraggable.bind(swiper),\n\t\t\t\t\tsetDragPosition: Scrollbar.setDragPosition.bind(swiper),\n\t\t\t\t\tonDragStart: Scrollbar.onDragStart.bind(swiper),\n\t\t\t\t\tonDragMove: Scrollbar.onDragMove.bind(swiper),\n\t\t\t\t\tonDragEnd: Scrollbar.onDragEnd.bind(swiper),\n\t\t\t\t\tisTouched: false,\n\t\t\t\t\ttimeout: null,\n\t\t\t\t\tdragTimeout: null,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tinit: function init() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tswiper.scrollbar.init();\n\t\t\t\tswiper.scrollbar.updateSize();\n\t\t\t\tswiper.scrollbar.setTranslate();\n\t\t\t},\n\t\t\tupdate: function update() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tswiper.scrollbar.updateSize();\n\t\t\t},\n\t\t\tresize: function resize() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tswiper.scrollbar.updateSize();\n\t\t\t},\n\t\t\tobserverUpdate: function observerUpdate() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tswiper.scrollbar.updateSize();\n\t\t\t},\n\t\t\tsetTranslate: function setTranslate() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tswiper.scrollbar.setTranslate();\n\t\t\t},\n\t\t\tsetTransition: function setTransition(duration) {\n\t\t\t\tvar swiper = this;\n\t\t\t\tswiper.scrollbar.setTransition(duration);\n\t\t\t},\n\t\t\tdestroy: function destroy() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tswiper.scrollbar.destroy();\n\t\t\t},\n\t\t},\n\t};\n\n\tvar Parallax = {\n\t\tsetTransform: function setTransform(el, progress) {\n\t\t\tvar swiper = this;\n\t\t\tvar rtl = swiper.rtl;\n\n\t\t\tvar $el = $(el);\n\t\t\tvar rtlFactor = rtl ? -1 : 1;\n\n\t\t\tvar p = $el.attr(\"data-swiper-parallax\") || \"0\";\n\t\t\tvar x = $el.attr(\"data-swiper-parallax-x\");\n\t\t\tvar y = $el.attr(\"data-swiper-parallax-y\");\n\t\t\tvar scale = $el.attr(\"data-swiper-parallax-scale\");\n\t\t\tvar opacity = $el.attr(\"data-swiper-parallax-opacity\");\n\n\t\t\tif (x || y) {\n\t\t\t\tx = x || \"0\";\n\t\t\t\ty = y || \"0\";\n\t\t\t} else if (swiper.isHorizontal()) {\n\t\t\t\tx = p;\n\t\t\t\ty = \"0\";\n\t\t\t} else {\n\t\t\t\ty = p;\n\t\t\t\tx = \"0\";\n\t\t\t}\n\n\t\t\tif (x.indexOf(\"%\") >= 0) {\n\t\t\t\tx = parseInt(x, 10) * progress * rtlFactor + \"%\";\n\t\t\t} else {\n\t\t\t\tx = x * progress * rtlFactor + \"px\";\n\t\t\t}\n\t\t\tif (y.indexOf(\"%\") >= 0) {\n\t\t\t\ty = parseInt(y, 10) * progress + \"%\";\n\t\t\t} else {\n\t\t\t\ty = y * progress + \"px\";\n\t\t\t}\n\n\t\t\tif (typeof opacity !== \"undefined\" && opacity !== null) {\n\t\t\t\tvar currentOpacity =\n\t\t\t\t\topacity - (opacity - 1) * (1 - Math.abs(progress));\n\t\t\t\t$el[0].style.opacity = currentOpacity;\n\t\t\t}\n\t\t\tif (typeof scale === \"undefined\" || scale === null) {\n\t\t\t\t$el.transform(\"translate3d(\" + x + \", \" + y + \", 0px)\");\n\t\t\t} else {\n\t\t\t\tvar currentScale =\n\t\t\t\t\tscale - (scale - 1) * (1 - Math.abs(progress));\n\t\t\t\t$el.transform(\n\t\t\t\t\t\"translate3d(\" +\n\t\t\t\t\t\tx +\n\t\t\t\t\t\t\", \" +\n\t\t\t\t\t\ty +\n\t\t\t\t\t\t\", 0px) scale(\" +\n\t\t\t\t\t\tcurrentScale +\n\t\t\t\t\t\t\")\"\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\tsetTranslate: function setTranslate() {\n\t\t\tvar swiper = this;\n\t\t\tvar $el = swiper.$el;\n\t\t\tvar slides = swiper.slides;\n\t\t\tvar progress = swiper.progress;\n\t\t\tvar snapGrid = swiper.snapGrid;\n\t\t\t$el.children(\n\t\t\t\t\"[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]\"\n\t\t\t).each(function (index, el) {\n\t\t\t\tswiper.parallax.setTransform(el, progress);\n\t\t\t});\n\t\t\tslides.each(function (slideIndex, slideEl) {\n\t\t\t\tvar slideProgress = slideEl.progress;\n\t\t\t\tif (\n\t\t\t\t\tswiper.params.slidesPerGroup > 1 &&\n\t\t\t\t\tswiper.params.slidesPerView !== \"auto\"\n\t\t\t\t) {\n\t\t\t\t\tslideProgress +=\n\t\t\t\t\t\tMath.ceil(slideIndex / 2) -\n\t\t\t\t\t\tprogress * (snapGrid.length - 1);\n\t\t\t\t}\n\t\t\t\tslideProgress = Math.min(Math.max(slideProgress, -1), 1);\n\t\t\t\t$(slideEl)\n\t\t\t\t\t.find(\n\t\t\t\t\t\t\"[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]\"\n\t\t\t\t\t)\n\t\t\t\t\t.each(function (index, el) {\n\t\t\t\t\t\tswiper.parallax.setTransform(el, slideProgress);\n\t\t\t\t\t});\n\t\t\t});\n\t\t},\n\t\tsetTransition: function setTransition(duration) {\n\t\t\tif (duration === void 0) duration = this.params.speed;\n\n\t\t\tvar swiper = this;\n\t\t\tvar $el = swiper.$el;\n\t\t\t$el.find(\n\t\t\t\t\"[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]\"\n\t\t\t).each(function (index, parallaxEl) {\n\t\t\t\tvar $parallaxEl = $(parallaxEl);\n\t\t\t\tvar parallaxDuration =\n\t\t\t\t\tparseInt(\n\t\t\t\t\t\t$parallaxEl.attr(\"data-swiper-parallax-duration\"),\n\t\t\t\t\t\t10\n\t\t\t\t\t) || duration;\n\t\t\t\tif (duration === 0) {\n\t\t\t\t\tparallaxDuration = 0;\n\t\t\t\t}\n\t\t\t\t$parallaxEl.transition(parallaxDuration);\n\t\t\t});\n\t\t},\n\t};\n\n\tvar Parallax$1 = {\n\t\tname: \"parallax\",\n\t\tparams: {\n\t\t\tparallax: {\n\t\t\t\tenabled: false,\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tparallax: {\n\t\t\t\t\tsetTransform: Parallax.setTransform.bind(swiper),\n\t\t\t\t\tsetTranslate: Parallax.setTranslate.bind(swiper),\n\t\t\t\t\tsetTransition: Parallax.setTransition.bind(swiper),\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tbeforeInit: function beforeInit() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.params.parallax.enabled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.params.watchSlidesProgress = true;\n\t\t\t\tswiper.originalParams.watchSlidesProgress = true;\n\t\t\t},\n\t\t\tinit: function init() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.params.parallax.enabled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.parallax.setTranslate();\n\t\t\t},\n\t\t\tsetTranslate: function setTranslate() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.params.parallax.enabled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.parallax.setTranslate();\n\t\t\t},\n\t\t\tsetTransition: function setTransition(duration) {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.params.parallax.enabled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.parallax.setTransition(duration);\n\t\t\t},\n\t\t},\n\t};\n\n\tvar Zoom = {\n\t\t// Calc Scale From Multi-touches\n\t\tgetDistanceBetweenTouches: function getDistanceBetweenTouches(e) {\n\t\t\tif (e.targetTouches.length < 2) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tvar x1 = e.targetTouches[0].pageX;\n\t\t\tvar y1 = e.targetTouches[0].pageY;\n\t\t\tvar x2 = e.targetTouches[1].pageX;\n\t\t\tvar y2 = e.targetTouches[1].pageY;\n\t\t\tvar distance = Math.sqrt(\n\t\t\t\tMath.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)\n\t\t\t);\n\t\t\treturn distance;\n\t\t},\n\t\t// Events\n\t\tonGestureStart: function onGestureStart(e) {\n\t\t\tvar swiper = this;\n\t\t\tvar params = swiper.params.zoom;\n\t\t\tvar zoom = swiper.zoom;\n\t\t\tvar gesture = zoom.gesture;\n\t\t\tzoom.fakeGestureTouched = false;\n\t\t\tzoom.fakeGestureMoved = false;\n\t\t\tif (!Support.gestures) {\n\t\t\t\tif (\n\t\t\t\t\te.type !== \"touchstart\" ||\n\t\t\t\t\t(e.type === \"touchstart\" && e.targetTouches.length < 2)\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tzoom.fakeGestureTouched = true;\n\t\t\t\tgesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n\t\t\t}\n\t\t\tif (!gesture.$slideEl || !gesture.$slideEl.length) {\n\t\t\t\tgesture.$slideEl = $(e.target).closest(\".swiper-slide\");\n\t\t\t\tif (gesture.$slideEl.length === 0) {\n\t\t\t\t\tgesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n\t\t\t\t}\n\t\t\t\tgesture.$imageEl = gesture.$slideEl.find(\"img, svg, canvas\");\n\t\t\t\tgesture.$imageWrapEl = gesture.$imageEl.parent(\n\t\t\t\t\t\".\" + params.containerClass\n\t\t\t\t);\n\t\t\t\tgesture.maxRatio =\n\t\t\t\t\tgesture.$imageWrapEl.attr(\"data-swiper-zoom\") ||\n\t\t\t\t\tparams.maxRatio;\n\t\t\t\tif (gesture.$imageWrapEl.length === 0) {\n\t\t\t\t\tgesture.$imageEl = undefined;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tgesture.$imageEl.transition(0);\n\t\t\tswiper.zoom.isScaling = true;\n\t\t},\n\t\tonGestureChange: function onGestureChange(e) {\n\t\t\tvar swiper = this;\n\t\t\tvar params = swiper.params.zoom;\n\t\t\tvar zoom = swiper.zoom;\n\t\t\tvar gesture = zoom.gesture;\n\t\t\tif (!Support.gestures) {\n\t\t\t\tif (\n\t\t\t\t\te.type !== \"touchmove\" ||\n\t\t\t\t\t(e.type === \"touchmove\" && e.targetTouches.length < 2)\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tzoom.fakeGestureMoved = true;\n\t\t\t\tgesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n\t\t\t}\n\t\t\tif (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (Support.gestures) {\n\t\t\t\tzoom.scale = e.scale * zoom.currentScale;\n\t\t\t} else {\n\t\t\t\tzoom.scale =\n\t\t\t\t\t(gesture.scaleMove / gesture.scaleStart) *\n\t\t\t\t\tzoom.currentScale;\n\t\t\t}\n\t\t\tif (zoom.scale > gesture.maxRatio) {\n\t\t\t\tzoom.scale =\n\t\t\t\t\tgesture.maxRatio -\n\t\t\t\t\t1 +\n\t\t\t\t\tMath.pow(zoom.scale - gesture.maxRatio + 1, 0.5);\n\t\t\t}\n\t\t\tif (zoom.scale < params.minRatio) {\n\t\t\t\tzoom.scale =\n\t\t\t\t\tparams.minRatio +\n\t\t\t\t\t1 -\n\t\t\t\t\tMath.pow(params.minRatio - zoom.scale + 1, 0.5);\n\t\t\t}\n\t\t\tgesture.$imageEl.transform(\n\t\t\t\t\"translate3d(0,0,0) scale(\" + zoom.scale + \")\"\n\t\t\t);\n\t\t},\n\t\tonGestureEnd: function onGestureEnd(e) {\n\t\t\tvar swiper = this;\n\t\t\tvar params = swiper.params.zoom;\n\t\t\tvar zoom = swiper.zoom;\n\t\t\tvar gesture = zoom.gesture;\n\t\t\tif (!Support.gestures) {\n\t\t\t\tif (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\te.type !== \"touchend\" ||\n\t\t\t\t\t(e.type === \"touchend\" &&\n\t\t\t\t\t\te.changedTouches.length < 2 &&\n\t\t\t\t\t\t!Device.android)\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tzoom.fakeGestureTouched = false;\n\t\t\t\tzoom.fakeGestureMoved = false;\n\t\t\t}\n\t\t\tif (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tzoom.scale = Math.max(\n\t\t\t\tMath.min(zoom.scale, gesture.maxRatio),\n\t\t\t\tparams.minRatio\n\t\t\t);\n\t\t\tgesture.$imageEl\n\t\t\t\t.transition(swiper.params.speed)\n\t\t\t\t.transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n\t\t\tzoom.currentScale = zoom.scale;\n\t\t\tzoom.isScaling = false;\n\t\t\tif (zoom.scale === 1) {\n\t\t\t\tgesture.$slideEl = undefined;\n\t\t\t}\n\t\t},\n\t\tonTouchStart: function onTouchStart(e) {\n\t\t\tvar swiper = this;\n\t\t\tvar zoom = swiper.zoom;\n\t\t\tvar gesture = zoom.gesture;\n\t\t\tvar image = zoom.image;\n\t\t\tif (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (image.isTouched) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (Device.android) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t\timage.isTouched = true;\n\t\t\timage.touchesStart.x =\n\t\t\t\te.type === \"touchstart\" ? e.targetTouches[0].pageX : e.pageX;\n\t\t\timage.touchesStart.y =\n\t\t\t\te.type === \"touchstart\" ? e.targetTouches[0].pageY : e.pageY;\n\t\t},\n\t\tonTouchMove: function onTouchMove(e) {\n\t\t\tvar swiper = this;\n\t\t\tvar zoom = swiper.zoom;\n\t\t\tvar gesture = zoom.gesture;\n\t\t\tvar image = zoom.image;\n\t\t\tvar velocity = zoom.velocity;\n\t\t\tif (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tswiper.allowClick = false;\n\t\t\tif (!image.isTouched || !gesture.$slideEl) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!image.isMoved) {\n\t\t\t\timage.width = gesture.$imageEl[0].offsetWidth;\n\t\t\t\timage.height = gesture.$imageEl[0].offsetHeight;\n\t\t\t\timage.startX =\n\t\t\t\t\tUtils.getTranslate(gesture.$imageWrapEl[0], \"x\") || 0;\n\t\t\t\timage.startY =\n\t\t\t\t\tUtils.getTranslate(gesture.$imageWrapEl[0], \"y\") || 0;\n\t\t\t\tgesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n\t\t\t\tgesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n\t\t\t\tgesture.$imageWrapEl.transition(0);\n\t\t\t\tif (swiper.rtl) {\n\t\t\t\t\timage.startX = -image.startX;\n\t\t\t\t\timage.startY = -image.startY;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Define if we need image drag\n\t\t\tvar scaledWidth = image.width * zoom.scale;\n\t\t\tvar scaledHeight = image.height * zoom.scale;\n\n\t\t\tif (\n\t\t\t\tscaledWidth < gesture.slideWidth &&\n\t\t\t\tscaledHeight < gesture.slideHeight\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\timage.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n\t\t\timage.maxX = -image.minX;\n\t\t\timage.minY = Math.min(\n\t\t\t\tgesture.slideHeight / 2 - scaledHeight / 2,\n\t\t\t\t0\n\t\t\t);\n\t\t\timage.maxY = -image.minY;\n\n\t\t\timage.touchesCurrent.x =\n\t\t\t\te.type === \"touchmove\" ? e.targetTouches[0].pageX : e.pageX;\n\t\t\timage.touchesCurrent.y =\n\t\t\t\te.type === \"touchmove\" ? e.targetTouches[0].pageY : e.pageY;\n\n\t\t\tif (!image.isMoved && !zoom.isScaling) {\n\t\t\t\tif (\n\t\t\t\t\tswiper.isHorizontal() &&\n\t\t\t\t\t((Math.floor(image.minX) === Math.floor(image.startX) &&\n\t\t\t\t\t\timage.touchesCurrent.x < image.touchesStart.x) ||\n\t\t\t\t\t\t(Math.floor(image.maxX) === Math.floor(image.startX) &&\n\t\t\t\t\t\t\timage.touchesCurrent.x > image.touchesStart.x))\n\t\t\t\t) {\n\t\t\t\t\timage.isTouched = false;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\t!swiper.isHorizontal() &&\n\t\t\t\t\t((Math.floor(image.minY) === Math.floor(image.startY) &&\n\t\t\t\t\t\timage.touchesCurrent.y < image.touchesStart.y) ||\n\t\t\t\t\t\t(Math.floor(image.maxY) === Math.floor(image.startY) &&\n\t\t\t\t\t\t\timage.touchesCurrent.y > image.touchesStart.y))\n\t\t\t\t) {\n\t\t\t\t\timage.isTouched = false;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\n\t\t\timage.isMoved = true;\n\t\t\timage.currentX =\n\t\t\t\timage.touchesCurrent.x - image.touchesStart.x + image.startX;\n\t\t\timage.currentY =\n\t\t\t\timage.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n\t\t\tif (image.currentX < image.minX) {\n\t\t\t\timage.currentX =\n\t\t\t\t\timage.minX +\n\t\t\t\t\t1 -\n\t\t\t\t\tMath.pow(image.minX - image.currentX + 1, 0.8);\n\t\t\t}\n\t\t\tif (image.currentX > image.maxX) {\n\t\t\t\timage.currentX =\n\t\t\t\t\timage.maxX -\n\t\t\t\t\t1 +\n\t\t\t\t\tMath.pow(image.currentX - image.maxX + 1, 0.8);\n\t\t\t}\n\n\t\t\tif (image.currentY < image.minY) {\n\t\t\t\timage.currentY =\n\t\t\t\t\timage.minY +\n\t\t\t\t\t1 -\n\t\t\t\t\tMath.pow(image.minY - image.currentY + 1, 0.8);\n\t\t\t}\n\t\t\tif (image.currentY > image.maxY) {\n\t\t\t\timage.currentY =\n\t\t\t\t\timage.maxY -\n\t\t\t\t\t1 +\n\t\t\t\t\tMath.pow(image.currentY - image.maxY + 1, 0.8);\n\t\t\t}\n\n\t\t\t// Velocity\n\t\t\tif (!velocity.prevPositionX) {\n\t\t\t\tvelocity.prevPositionX = image.touchesCurrent.x;\n\t\t\t}\n\t\t\tif (!velocity.prevPositionY) {\n\t\t\t\tvelocity.prevPositionY = image.touchesCurrent.y;\n\t\t\t}\n\t\t\tif (!velocity.prevTime) {\n\t\t\t\tvelocity.prevTime = Date.now();\n\t\t\t}\n\t\t\tvelocity.x =\n\t\t\t\t(image.touchesCurrent.x - velocity.prevPositionX) /\n\t\t\t\t(Date.now() - velocity.prevTime) /\n\t\t\t\t2;\n\t\t\tvelocity.y =\n\t\t\t\t(image.touchesCurrent.y - velocity.prevPositionY) /\n\t\t\t\t(Date.now() - velocity.prevTime) /\n\t\t\t\t2;\n\t\t\tif (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) {\n\t\t\t\tvelocity.x = 0;\n\t\t\t}\n\t\t\tif (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) {\n\t\t\t\tvelocity.y = 0;\n\t\t\t}\n\t\t\tvelocity.prevPositionX = image.touchesCurrent.x;\n\t\t\tvelocity.prevPositionY = image.touchesCurrent.y;\n\t\t\tvelocity.prevTime = Date.now();\n\n\t\t\tgesture.$imageWrapEl.transform(\n\t\t\t\t\"translate3d(\" +\n\t\t\t\t\timage.currentX +\n\t\t\t\t\t\"px, \" +\n\t\t\t\t\timage.currentY +\n\t\t\t\t\t\"px,0)\"\n\t\t\t);\n\t\t},\n\t\tonTouchEnd: function onTouchEnd() {\n\t\t\tvar swiper = this;\n\t\t\tvar zoom = swiper.zoom;\n\t\t\tvar gesture = zoom.gesture;\n\t\t\tvar image = zoom.image;\n\t\t\tvar velocity = zoom.velocity;\n\t\t\tif (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!image.isTouched || !image.isMoved) {\n\t\t\t\timage.isTouched = false;\n\t\t\t\timage.isMoved = false;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\timage.isTouched = false;\n\t\t\timage.isMoved = false;\n\t\t\tvar momentumDurationX = 300;\n\t\t\tvar momentumDurationY = 300;\n\t\t\tvar momentumDistanceX = velocity.x * momentumDurationX;\n\t\t\tvar newPositionX = image.currentX + momentumDistanceX;\n\t\t\tvar momentumDistanceY = velocity.y * momentumDurationY;\n\t\t\tvar newPositionY = image.currentY + momentumDistanceY;\n\n\t\t\t// Fix duration\n\t\t\tif (velocity.x !== 0) {\n\t\t\t\tmomentumDurationX = Math.abs(\n\t\t\t\t\t(newPositionX - image.currentX) / velocity.x\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (velocity.y !== 0) {\n\t\t\t\tmomentumDurationY = Math.abs(\n\t\t\t\t\t(newPositionY - image.currentY) / velocity.y\n\t\t\t\t);\n\t\t\t}\n\t\t\tvar momentumDuration = Math.max(\n\t\t\t\tmomentumDurationX,\n\t\t\t\tmomentumDurationY\n\t\t\t);\n\n\t\t\timage.currentX = newPositionX;\n\t\t\timage.currentY = newPositionY;\n\n\t\t\t// Define if we need image drag\n\t\t\tvar scaledWidth = image.width * zoom.scale;\n\t\t\tvar scaledHeight = image.height * zoom.scale;\n\t\t\timage.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n\t\t\timage.maxX = -image.minX;\n\t\t\timage.minY = Math.min(\n\t\t\t\tgesture.slideHeight / 2 - scaledHeight / 2,\n\t\t\t\t0\n\t\t\t);\n\t\t\timage.maxY = -image.minY;\n\t\t\timage.currentX = Math.max(\n\t\t\t\tMath.min(image.currentX, image.maxX),\n\t\t\t\timage.minX\n\t\t\t);\n\t\t\timage.currentY = Math.max(\n\t\t\t\tMath.min(image.currentY, image.maxY),\n\t\t\t\timage.minY\n\t\t\t);\n\n\t\t\tgesture.$imageWrapEl\n\t\t\t\t.transition(momentumDuration)\n\t\t\t\t.transform(\n\t\t\t\t\t\"translate3d(\" +\n\t\t\t\t\t\timage.currentX +\n\t\t\t\t\t\t\"px, \" +\n\t\t\t\t\t\timage.currentY +\n\t\t\t\t\t\t\"px,0)\"\n\t\t\t\t);\n\t\t},\n\t\tonTransitionEnd: function onTransitionEnd() {\n\t\t\tvar swiper = this;\n\t\t\tvar zoom = swiper.zoom;\n\t\t\tvar gesture = zoom.gesture;\n\t\t\tif (\n\t\t\t\tgesture.$slideEl &&\n\t\t\t\tswiper.previousIndex !== swiper.activeIndex\n\t\t\t) {\n\t\t\t\tgesture.$imageEl.transform(\"translate3d(0,0,0) scale(1)\");\n\t\t\t\tgesture.$imageWrapEl.transform(\"translate3d(0,0,0)\");\n\n\t\t\t\tzoom.scale = 1;\n\t\t\t\tzoom.currentScale = 1;\n\n\t\t\t\tgesture.$slideEl = undefined;\n\t\t\t\tgesture.$imageEl = undefined;\n\t\t\t\tgesture.$imageWrapEl = undefined;\n\t\t\t}\n\t\t},\n\t\t// Toggle Zoom\n\t\ttoggle: function toggle(e) {\n\t\t\tvar swiper = this;\n\t\t\tvar zoom = swiper.zoom;\n\n\t\t\tif (zoom.scale && zoom.scale !== 1) {\n\t\t\t\t// Zoom Out\n\t\t\t\tzoom.out();\n\t\t\t} else {\n\t\t\t\t// Zoom In\n\t\t\t\tzoom.in(e);\n\t\t\t}\n\t\t},\n\t\tin: function in$1(e) {\n\t\t\tvar swiper = this;\n\n\t\t\tvar zoom = swiper.zoom;\n\t\t\tvar params = swiper.params.zoom;\n\t\t\tvar gesture = zoom.gesture;\n\t\t\tvar image = zoom.image;\n\n\t\t\tif (!gesture.$slideEl) {\n\t\t\t\tgesture.$slideEl = swiper.clickedSlide\n\t\t\t\t\t? $(swiper.clickedSlide)\n\t\t\t\t\t: swiper.slides.eq(swiper.activeIndex);\n\t\t\t\tgesture.$imageEl = gesture.$slideEl.find(\"img, svg, canvas\");\n\t\t\t\tgesture.$imageWrapEl = gesture.$imageEl.parent(\n\t\t\t\t\t\".\" + params.containerClass\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tgesture.$slideEl.addClass(\"\" + params.zoomedSlideClass);\n\n\t\t\tvar touchX;\n\t\t\tvar touchY;\n\t\t\tvar offsetX;\n\t\t\tvar offsetY;\n\t\t\tvar diffX;\n\t\t\tvar diffY;\n\t\t\tvar translateX;\n\t\t\tvar translateY;\n\t\t\tvar imageWidth;\n\t\t\tvar imageHeight;\n\t\t\tvar scaledWidth;\n\t\t\tvar scaledHeight;\n\t\t\tvar translateMinX;\n\t\t\tvar translateMinY;\n\t\t\tvar translateMaxX;\n\t\t\tvar translateMaxY;\n\t\t\tvar slideWidth;\n\t\t\tvar slideHeight;\n\n\t\t\tif (typeof image.touchesStart.x === \"undefined\" && e) {\n\t\t\t\ttouchX =\n\t\t\t\t\te.type === \"touchend\" ? e.changedTouches[0].pageX : e.pageX;\n\t\t\t\ttouchY =\n\t\t\t\t\te.type === \"touchend\" ? e.changedTouches[0].pageY : e.pageY;\n\t\t\t} else {\n\t\t\t\ttouchX = image.touchesStart.x;\n\t\t\t\ttouchY = image.touchesStart.y;\n\t\t\t}\n\n\t\t\tzoom.scale =\n\t\t\t\tgesture.$imageWrapEl.attr(\"data-swiper-zoom\") ||\n\t\t\t\tparams.maxRatio;\n\t\t\tzoom.currentScale =\n\t\t\t\tgesture.$imageWrapEl.attr(\"data-swiper-zoom\") ||\n\t\t\t\tparams.maxRatio;\n\t\t\tif (e) {\n\t\t\t\tslideWidth = gesture.$slideEl[0].offsetWidth;\n\t\t\t\tslideHeight = gesture.$slideEl[0].offsetHeight;\n\t\t\t\toffsetX = gesture.$slideEl.offset().left;\n\t\t\t\toffsetY = gesture.$slideEl.offset().top;\n\t\t\t\tdiffX = offsetX + slideWidth / 2 - touchX;\n\t\t\t\tdiffY = offsetY + slideHeight / 2 - touchY;\n\n\t\t\t\timageWidth = gesture.$imageEl[0].offsetWidth;\n\t\t\t\timageHeight = gesture.$imageEl[0].offsetHeight;\n\t\t\t\tscaledWidth = imageWidth * zoom.scale;\n\t\t\t\tscaledHeight = imageHeight * zoom.scale;\n\n\t\t\t\ttranslateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n\t\t\t\ttranslateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n\t\t\t\ttranslateMaxX = -translateMinX;\n\t\t\t\ttranslateMaxY = -translateMinY;\n\n\t\t\t\ttranslateX = diffX * zoom.scale;\n\t\t\t\ttranslateY = diffY * zoom.scale;\n\n\t\t\t\tif (translateX < translateMinX) {\n\t\t\t\t\ttranslateX = translateMinX;\n\t\t\t\t}\n\t\t\t\tif (translateX > translateMaxX) {\n\t\t\t\t\ttranslateX = translateMaxX;\n\t\t\t\t}\n\n\t\t\t\tif (translateY < translateMinY) {\n\t\t\t\t\ttranslateY = translateMinY;\n\t\t\t\t}\n\t\t\t\tif (translateY > translateMaxY) {\n\t\t\t\t\ttranslateY = translateMaxY;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttranslateX = 0;\n\t\t\t\ttranslateY = 0;\n\t\t\t}\n\t\t\tgesture.$imageWrapEl\n\t\t\t\t.transition(300)\n\t\t\t\t.transform(\n\t\t\t\t\t\"translate3d(\" + translateX + \"px, \" + translateY + \"px,0)\"\n\t\t\t\t);\n\t\t\tgesture.$imageEl\n\t\t\t\t.transition(300)\n\t\t\t\t.transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n\t\t},\n\t\tout: function out() {\n\t\t\tvar swiper = this;\n\n\t\t\tvar zoom = swiper.zoom;\n\t\t\tvar params = swiper.params.zoom;\n\t\t\tvar gesture = zoom.gesture;\n\n\t\t\tif (!gesture.$slideEl) {\n\t\t\t\tgesture.$slideEl = swiper.clickedSlide\n\t\t\t\t\t? $(swiper.clickedSlide)\n\t\t\t\t\t: swiper.slides.eq(swiper.activeIndex);\n\t\t\t\tgesture.$imageEl = gesture.$slideEl.find(\"img, svg, canvas\");\n\t\t\t\tgesture.$imageWrapEl = gesture.$imageEl.parent(\n\t\t\t\t\t\".\" + params.containerClass\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tzoom.scale = 1;\n\t\t\tzoom.currentScale = 1;\n\t\t\tgesture.$imageWrapEl\n\t\t\t\t.transition(300)\n\t\t\t\t.transform(\"translate3d(0,0,0)\");\n\t\t\tgesture.$imageEl\n\t\t\t\t.transition(300)\n\t\t\t\t.transform(\"translate3d(0,0,0) scale(1)\");\n\t\t\tgesture.$slideEl.removeClass(\"\" + params.zoomedSlideClass);\n\t\t\tgesture.$slideEl = undefined;\n\t\t},\n\t\t// Attach/Detach Events\n\t\tenable: function enable() {\n\t\t\tvar swiper = this;\n\t\t\tvar zoom = swiper.zoom;\n\t\t\tif (zoom.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tzoom.enabled = true;\n\n\t\t\tvar passiveListener =\n\t\t\t\tswiper.touchEvents.start === \"touchstart\" &&\n\t\t\t\tSupport.passiveListener &&\n\t\t\t\tswiper.params.passiveListeners\n\t\t\t\t\t? { passive: true, capture: false }\n\t\t\t\t\t: false;\n\n\t\t\t// Scale image\n\t\t\tif (Support.gestures) {\n\t\t\t\tswiper.$wrapperEl.on(\n\t\t\t\t\t\"gesturestart\",\n\t\t\t\t\t\".swiper-slide\",\n\t\t\t\t\tzoom.onGestureStart,\n\t\t\t\t\tpassiveListener\n\t\t\t\t);\n\t\t\t\tswiper.$wrapperEl.on(\n\t\t\t\t\t\"gesturechange\",\n\t\t\t\t\t\".swiper-slide\",\n\t\t\t\t\tzoom.onGestureChange,\n\t\t\t\t\tpassiveListener\n\t\t\t\t);\n\t\t\t\tswiper.$wrapperEl.on(\n\t\t\t\t\t\"gestureend\",\n\t\t\t\t\t\".swiper-slide\",\n\t\t\t\t\tzoom.onGestureEnd,\n\t\t\t\t\tpassiveListener\n\t\t\t\t);\n\t\t\t} else if (swiper.touchEvents.start === \"touchstart\") {\n\t\t\t\tswiper.$wrapperEl.on(\n\t\t\t\t\tswiper.touchEvents.start,\n\t\t\t\t\t\".swiper-slide\",\n\t\t\t\t\tzoom.onGestureStart,\n\t\t\t\t\tpassiveListener\n\t\t\t\t);\n\t\t\t\tswiper.$wrapperEl.on(\n\t\t\t\t\tswiper.touchEvents.move,\n\t\t\t\t\t\".swiper-slide\",\n\t\t\t\t\tzoom.onGestureChange,\n\t\t\t\t\tpassiveListener\n\t\t\t\t);\n\t\t\t\tswiper.$wrapperEl.on(\n\t\t\t\t\tswiper.touchEvents.end,\n\t\t\t\t\t\".swiper-slide\",\n\t\t\t\t\tzoom.onGestureEnd,\n\t\t\t\t\tpassiveListener\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Move image\n\t\t\tswiper.$wrapperEl.on(\n\t\t\t\tswiper.touchEvents.move,\n\t\t\t\t\".\" + swiper.params.zoom.containerClass,\n\t\t\t\tzoom.onTouchMove\n\t\t\t);\n\t\t},\n\t\tdisable: function disable() {\n\t\t\tvar swiper = this;\n\t\t\tvar zoom = swiper.zoom;\n\t\t\tif (!zoom.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tswiper.zoom.enabled = false;\n\n\t\t\tvar passiveListener =\n\t\t\t\tswiper.touchEvents.start === \"touchstart\" &&\n\t\t\t\tSupport.passiveListener &&\n\t\t\t\tswiper.params.passiveListeners\n\t\t\t\t\t? { passive: true, capture: false }\n\t\t\t\t\t: false;\n\n\t\t\t// Scale image\n\t\t\tif (Support.gestures) {\n\t\t\t\tswiper.$wrapperEl.off(\n\t\t\t\t\t\"gesturestart\",\n\t\t\t\t\t\".swiper-slide\",\n\t\t\t\t\tzoom.onGestureStart,\n\t\t\t\t\tpassiveListener\n\t\t\t\t);\n\t\t\t\tswiper.$wrapperEl.off(\n\t\t\t\t\t\"gesturechange\",\n\t\t\t\t\t\".swiper-slide\",\n\t\t\t\t\tzoom.onGestureChange,\n\t\t\t\t\tpassiveListener\n\t\t\t\t);\n\t\t\t\tswiper.$wrapperEl.off(\n\t\t\t\t\t\"gestureend\",\n\t\t\t\t\t\".swiper-slide\",\n\t\t\t\t\tzoom.onGestureEnd,\n\t\t\t\t\tpassiveListener\n\t\t\t\t);\n\t\t\t} else if (swiper.touchEvents.start === \"touchstart\") {\n\t\t\t\tswiper.$wrapperEl.off(\n\t\t\t\t\tswiper.touchEvents.start,\n\t\t\t\t\t\".swiper-slide\",\n\t\t\t\t\tzoom.onGestureStart,\n\t\t\t\t\tpassiveListener\n\t\t\t\t);\n\t\t\t\tswiper.$wrapperEl.off(\n\t\t\t\t\tswiper.touchEvents.move,\n\t\t\t\t\t\".swiper-slide\",\n\t\t\t\t\tzoom.onGestureChange,\n\t\t\t\t\tpassiveListener\n\t\t\t\t);\n\t\t\t\tswiper.$wrapperEl.off(\n\t\t\t\t\tswiper.touchEvents.end,\n\t\t\t\t\t\".swiper-slide\",\n\t\t\t\t\tzoom.onGestureEnd,\n\t\t\t\t\tpassiveListener\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Move image\n\t\t\tswiper.$wrapperEl.off(\n\t\t\t\tswiper.touchEvents.move,\n\t\t\t\t\".\" + swiper.params.zoom.containerClass,\n\t\t\t\tzoom.onTouchMove\n\t\t\t);\n\t\t},\n\t};\n\n\tvar Zoom$1 = {\n\t\tname: \"zoom\",\n\t\tparams: {\n\t\t\tzoom: {\n\t\t\t\tenabled: false,\n\t\t\t\tmaxRatio: 3,\n\t\t\t\tminRatio: 1,\n\t\t\t\ttoggle: true,\n\t\t\t\tcontainerClass: \"swiper-zoom-container\",\n\t\t\t\tzoomedSlideClass: \"swiper-slide-zoomed\",\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tvar zoom = {\n\t\t\t\tenabled: false,\n\t\t\t\tscale: 1,\n\t\t\t\tcurrentScale: 1,\n\t\t\t\tisScaling: false,\n\t\t\t\tgesture: {\n\t\t\t\t\t$slideEl: undefined,\n\t\t\t\t\tslideWidth: undefined,\n\t\t\t\t\tslideHeight: undefined,\n\t\t\t\t\t$imageEl: undefined,\n\t\t\t\t\t$imageWrapEl: undefined,\n\t\t\t\t\tmaxRatio: 3,\n\t\t\t\t},\n\t\t\t\timage: {\n\t\t\t\t\tisTouched: undefined,\n\t\t\t\t\tisMoved: undefined,\n\t\t\t\t\tcurrentX: undefined,\n\t\t\t\t\tcurrentY: undefined,\n\t\t\t\t\tminX: undefined,\n\t\t\t\t\tminY: undefined,\n\t\t\t\t\tmaxX: undefined,\n\t\t\t\t\tmaxY: undefined,\n\t\t\t\t\twidth: undefined,\n\t\t\t\t\theight: undefined,\n\t\t\t\t\tstartX: undefined,\n\t\t\t\t\tstartY: undefined,\n\t\t\t\t\ttouchesStart: {},\n\t\t\t\t\ttouchesCurrent: {},\n\t\t\t\t},\n\t\t\t\tvelocity: {\n\t\t\t\t\tx: undefined,\n\t\t\t\t\ty: undefined,\n\t\t\t\t\tprevPositionX: undefined,\n\t\t\t\t\tprevPositionY: undefined,\n\t\t\t\t\tprevTime: undefined,\n\t\t\t\t},\n\t\t\t};\n\n\t\t\t\"onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out\"\n\t\t\t\t.split(\" \")\n\t\t\t\t.forEach(function (methodName) {\n\t\t\t\t\tzoom[methodName] = Zoom[methodName].bind(swiper);\n\t\t\t\t});\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tzoom: zoom,\n\t\t\t});\n\n\t\t\tvar scale = 1;\n\t\t\tObject.defineProperty(swiper.zoom, \"scale\", {\n\t\t\t\tget: function get() {\n\t\t\t\t\treturn scale;\n\t\t\t\t},\n\t\t\t\tset: function set(value) {\n\t\t\t\t\tif (scale !== value) {\n\t\t\t\t\t\tvar imageEl = swiper.zoom.gesture.$imageEl\n\t\t\t\t\t\t\t? swiper.zoom.gesture.$imageEl[0]\n\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\tvar slideEl = swiper.zoom.gesture.$slideEl\n\t\t\t\t\t\t\t? swiper.zoom.gesture.$slideEl[0]\n\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\tswiper.emit(\"zoomChange\", value, imageEl, slideEl);\n\t\t\t\t\t}\n\t\t\t\t\tscale = value;\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tinit: function init() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.zoom.enabled) {\n\t\t\t\t\tswiper.zoom.enable();\n\t\t\t\t}\n\t\t\t},\n\t\t\tdestroy: function destroy() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tswiper.zoom.disable();\n\t\t\t},\n\t\t\ttouchStart: function touchStart(e) {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.zoom.enabled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.zoom.onTouchStart(e);\n\t\t\t},\n\t\t\ttouchEnd: function touchEnd(e) {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.zoom.enabled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.zoom.onTouchEnd(e);\n\t\t\t},\n\t\t\tdoubleTap: function doubleTap(e) {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (\n\t\t\t\t\tswiper.params.zoom.enabled &&\n\t\t\t\t\tswiper.zoom.enabled &&\n\t\t\t\t\tswiper.params.zoom.toggle\n\t\t\t\t) {\n\t\t\t\t\tswiper.zoom.toggle(e);\n\t\t\t\t}\n\t\t\t},\n\t\t\ttransitionEnd: function transitionEnd() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n\t\t\t\t\tswiper.zoom.onTransitionEnd();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t};\n\n\tvar Lazy = {\n\t\tloadInSlide: function loadInSlide(index, loadInDuplicate) {\n\t\t\tif (loadInDuplicate === void 0) loadInDuplicate = true;\n\n\t\t\tvar swiper = this;\n\t\t\tvar params = swiper.params.lazy;\n\t\t\tif (typeof index === \"undefined\") {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (swiper.slides.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n\t\t\tvar $slideEl = isVirtual\n\t\t\t\t? swiper.$wrapperEl.children(\n\t\t\t\t\t\t\".\" +\n\t\t\t\t\t\t\tswiper.params.slideClass +\n\t\t\t\t\t\t\t'[data-swiper-slide-index=\"' +\n\t\t\t\t\t\t\tindex +\n\t\t\t\t\t\t\t'\"]'\n\t\t\t\t )\n\t\t\t\t: swiper.slides.eq(index);\n\n\t\t\tvar $images = $slideEl.find(\n\t\t\t\t\".\" +\n\t\t\t\t\tparams.elementClass +\n\t\t\t\t\t\":not(.\" +\n\t\t\t\t\tparams.loadedClass +\n\t\t\t\t\t\"):not(.\" +\n\t\t\t\t\tparams.loadingClass +\n\t\t\t\t\t\")\"\n\t\t\t);\n\t\t\tif (\n\t\t\t\t$slideEl.hasClass(params.elementClass) &&\n\t\t\t\t!$slideEl.hasClass(params.loadedClass) &&\n\t\t\t\t!$slideEl.hasClass(params.loadingClass)\n\t\t\t) {\n\t\t\t\t$images = $images.add($slideEl[0]);\n\t\t\t}\n\t\t\tif ($images.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$images.each(function (imageIndex, imageEl) {\n\t\t\t\tvar $imageEl = $(imageEl);\n\t\t\t\t$imageEl.addClass(params.loadingClass);\n\n\t\t\t\tvar background = $imageEl.attr(\"data-background\");\n\t\t\t\tvar src = $imageEl.attr(\"data-src\");\n\t\t\t\tvar srcset = $imageEl.attr(\"data-srcset\");\n\t\t\t\tvar sizes = $imageEl.attr(\"data-sizes\");\n\n\t\t\t\tswiper.loadImage(\n\t\t\t\t\t$imageEl[0],\n\t\t\t\t\tsrc || background,\n\t\t\t\t\tsrcset,\n\t\t\t\t\tsizes,\n\t\t\t\t\tfalse,\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttypeof swiper === \"undefined\" ||\n\t\t\t\t\t\t\tswiper === null ||\n\t\t\t\t\t\t\t!swiper ||\n\t\t\t\t\t\t\t(swiper && !swiper.params) ||\n\t\t\t\t\t\t\tswiper.destroyed\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (background) {\n\t\t\t\t\t\t\t$imageEl.css(\n\t\t\t\t\t\t\t\t\"background-image\",\n\t\t\t\t\t\t\t\t'url(\"' + background + '\")'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t$imageEl.removeAttr(\"data-background\");\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (srcset) {\n\t\t\t\t\t\t\t\t$imageEl.attr(\"srcset\", srcset);\n\t\t\t\t\t\t\t\t$imageEl.removeAttr(\"data-srcset\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (sizes) {\n\t\t\t\t\t\t\t\t$imageEl.attr(\"sizes\", sizes);\n\t\t\t\t\t\t\t\t$imageEl.removeAttr(\"data-sizes\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (src) {\n\t\t\t\t\t\t\t\t$imageEl.attr(\"src\", src);\n\t\t\t\t\t\t\t\t$imageEl.removeAttr(\"data-src\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$imageEl\n\t\t\t\t\t\t\t.addClass(params.loadedClass)\n\t\t\t\t\t\t\t.removeClass(params.loadingClass);\n\t\t\t\t\t\t$slideEl.find(\".\" + params.preloaderClass).remove();\n\t\t\t\t\t\tif (swiper.params.loop && loadInDuplicate) {\n\t\t\t\t\t\t\tvar slideOriginalIndex = $slideEl.attr(\n\t\t\t\t\t\t\t\t\"data-swiper-slide-index\"\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t$slideEl.hasClass(\n\t\t\t\t\t\t\t\t\tswiper.params.slideDuplicateClass\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tvar originalSlide = swiper.$wrapperEl.children(\n\t\t\t\t\t\t\t\t\t'[data-swiper-slide-index=\"' +\n\t\t\t\t\t\t\t\t\t\tslideOriginalIndex +\n\t\t\t\t\t\t\t\t\t\t'\"]:not(.' +\n\t\t\t\t\t\t\t\t\t\tswiper.params.slideDuplicateClass +\n\t\t\t\t\t\t\t\t\t\t\")\"\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tswiper.lazy.loadInSlide(\n\t\t\t\t\t\t\t\t\toriginalSlide.index(),\n\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar duplicatedSlide =\n\t\t\t\t\t\t\t\t\tswiper.$wrapperEl.children(\n\t\t\t\t\t\t\t\t\t\t\".\" +\n\t\t\t\t\t\t\t\t\t\t\tswiper.params.slideDuplicateClass +\n\t\t\t\t\t\t\t\t\t\t\t'[data-swiper-slide-index=\"' +\n\t\t\t\t\t\t\t\t\t\t\tslideOriginalIndex +\n\t\t\t\t\t\t\t\t\t\t\t'\"]'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tswiper.lazy.loadInSlide(\n\t\t\t\t\t\t\t\t\tduplicatedSlide.index(),\n\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tswiper.emit(\"lazyImageReady\", $slideEl[0], $imageEl[0]);\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tswiper.emit(\"lazyImageLoad\", $slideEl[0], $imageEl[0]);\n\t\t\t});\n\t\t},\n\t\tload: function load() {\n\t\t\tvar swiper = this;\n\t\t\tvar $wrapperEl = swiper.$wrapperEl;\n\t\t\tvar swiperParams = swiper.params;\n\t\t\tvar slides = swiper.slides;\n\t\t\tvar activeIndex = swiper.activeIndex;\n\t\t\tvar isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n\t\t\tvar params = swiperParams.lazy;\n\n\t\t\tvar slidesPerView = swiperParams.slidesPerView;\n\t\t\tif (slidesPerView === \"auto\") {\n\t\t\t\tslidesPerView = 0;\n\t\t\t}\n\n\t\t\tfunction slideExist(index) {\n\t\t\t\tif (isVirtual) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t$wrapperEl.children(\n\t\t\t\t\t\t\t\".\" +\n\t\t\t\t\t\t\t\tswiperParams.slideClass +\n\t\t\t\t\t\t\t\t'[data-swiper-slide-index=\"' +\n\t\t\t\t\t\t\t\tindex +\n\t\t\t\t\t\t\t\t'\"]'\n\t\t\t\t\t\t).length\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t} else if (slides[index]) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfunction slideIndex(slideEl) {\n\t\t\t\tif (isVirtual) {\n\t\t\t\t\treturn $(slideEl).attr(\"data-swiper-slide-index\");\n\t\t\t\t}\n\t\t\t\treturn $(slideEl).index();\n\t\t\t}\n\n\t\t\tif (!swiper.lazy.initialImageLoaded) {\n\t\t\t\tswiper.lazy.initialImageLoaded = true;\n\t\t\t}\n\t\t\tif (swiper.params.watchSlidesVisibility) {\n\t\t\t\t$wrapperEl\n\t\t\t\t\t.children(\".\" + swiperParams.slideVisibleClass)\n\t\t\t\t\t.each(function (elIndex, slideEl) {\n\t\t\t\t\t\tvar index = isVirtual\n\t\t\t\t\t\t\t? $(slideEl).attr(\"data-swiper-slide-index\")\n\t\t\t\t\t\t\t: $(slideEl).index();\n\t\t\t\t\t\tswiper.lazy.loadInSlide(index);\n\t\t\t\t\t});\n\t\t\t} else if (slidesPerView > 1) {\n\t\t\t\tfor (\n\t\t\t\t\tvar i = activeIndex;\n\t\t\t\t\ti < activeIndex + slidesPerView;\n\t\t\t\t\ti += 1\n\t\t\t\t) {\n\t\t\t\t\tif (slideExist(i)) {\n\t\t\t\t\t\tswiper.lazy.loadInSlide(i);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswiper.lazy.loadInSlide(activeIndex);\n\t\t\t}\n\t\t\tif (params.loadPrevNext) {\n\t\t\t\tif (\n\t\t\t\t\tslidesPerView > 1 ||\n\t\t\t\t\t(params.loadPrevNextAmount && params.loadPrevNextAmount > 1)\n\t\t\t\t) {\n\t\t\t\t\tvar amount = params.loadPrevNextAmount;\n\t\t\t\t\tvar spv = slidesPerView;\n\t\t\t\t\tvar maxIndex = Math.min(\n\t\t\t\t\t\tactiveIndex + spv + Math.max(amount, spv),\n\t\t\t\t\t\tslides.length\n\t\t\t\t\t);\n\t\t\t\t\tvar minIndex = Math.max(\n\t\t\t\t\t\tactiveIndex - Math.max(spv, amount),\n\t\t\t\t\t\t0\n\t\t\t\t\t);\n\t\t\t\t\t// Next Slides\n\t\t\t\t\tfor (\n\t\t\t\t\t\tvar i$1 = activeIndex + slidesPerView;\n\t\t\t\t\t\ti$1 < maxIndex;\n\t\t\t\t\t\ti$1 += 1\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (slideExist(i$1)) {\n\t\t\t\t\t\t\tswiper.lazy.loadInSlide(i$1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Prev Slides\n\t\t\t\t\tfor (var i$2 = minIndex; i$2 < activeIndex; i$2 += 1) {\n\t\t\t\t\t\tif (slideExist(i$2)) {\n\t\t\t\t\t\t\tswiper.lazy.loadInSlide(i$2);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar nextSlide = $wrapperEl.children(\n\t\t\t\t\t\t\".\" + swiperParams.slideNextClass\n\t\t\t\t\t);\n\t\t\t\t\tif (nextSlide.length > 0) {\n\t\t\t\t\t\tswiper.lazy.loadInSlide(slideIndex(nextSlide));\n\t\t\t\t\t}\n\n\t\t\t\t\tvar prevSlide = $wrapperEl.children(\n\t\t\t\t\t\t\".\" + swiperParams.slidePrevClass\n\t\t\t\t\t);\n\t\t\t\t\tif (prevSlide.length > 0) {\n\t\t\t\t\t\tswiper.lazy.loadInSlide(slideIndex(prevSlide));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t};\n\n\tvar Lazy$1 = {\n\t\tname: \"lazy\",\n\t\tparams: {\n\t\t\tlazy: {\n\t\t\t\tenabled: false,\n\t\t\t\tloadPrevNext: false,\n\t\t\t\tloadPrevNextAmount: 1,\n\t\t\t\tloadOnTransitionStart: false,\n\n\t\t\t\telementClass: \"swiper-lazy\",\n\t\t\t\tloadingClass: \"swiper-lazy-loading\",\n\t\t\t\tloadedClass: \"swiper-lazy-loaded\",\n\t\t\t\tpreloaderClass: \"swiper-lazy-preloader\",\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tlazy: {\n\t\t\t\t\tinitialImageLoaded: false,\n\t\t\t\t\tload: Lazy.load.bind(swiper),\n\t\t\t\t\tloadInSlide: Lazy.loadInSlide.bind(swiper),\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tbeforeInit: function beforeInit() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n\t\t\t\t\tswiper.params.preloadImages = false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tinit: function init() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (\n\t\t\t\t\tswiper.params.lazy.enabled &&\n\t\t\t\t\t!swiper.params.loop &&\n\t\t\t\t\tswiper.params.initialSlide === 0\n\t\t\t\t) {\n\t\t\t\t\tswiper.lazy.load();\n\t\t\t\t}\n\t\t\t},\n\t\t\tscroll: function scroll() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n\t\t\t\t\tswiper.lazy.load();\n\t\t\t\t}\n\t\t\t},\n\t\t\tresize: function resize() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.lazy.enabled) {\n\t\t\t\t\tswiper.lazy.load();\n\t\t\t\t}\n\t\t\t},\n\t\t\tscrollbarDragMove: function scrollbarDragMove() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.lazy.enabled) {\n\t\t\t\t\tswiper.lazy.load();\n\t\t\t\t}\n\t\t\t},\n\t\t\ttransitionStart: function transitionStart() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.lazy.enabled) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tswiper.params.lazy.loadOnTransitionStart ||\n\t\t\t\t\t\t(!swiper.params.lazy.loadOnTransitionStart &&\n\t\t\t\t\t\t\t!swiper.lazy.initialImageLoaded)\n\t\t\t\t\t) {\n\t\t\t\t\t\tswiper.lazy.load();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttransitionEnd: function transitionEnd() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (\n\t\t\t\t\tswiper.params.lazy.enabled &&\n\t\t\t\t\t!swiper.params.lazy.loadOnTransitionStart\n\t\t\t\t) {\n\t\t\t\t\tswiper.lazy.load();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t};\n\n\t/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\n\tvar Controller = {\n\t\tLinearSpline: function LinearSpline(x, y) {\n\t\t\tvar binarySearch = (function search() {\n\t\t\t\tvar maxIndex;\n\t\t\t\tvar minIndex;\n\t\t\t\tvar guess;\n\t\t\t\treturn function (array, val) {\n\t\t\t\t\tminIndex = -1;\n\t\t\t\t\tmaxIndex = array.length;\n\t\t\t\t\twhile (maxIndex - minIndex > 1) {\n\t\t\t\t\t\tguess = (maxIndex + minIndex) >> 1;\n\t\t\t\t\t\tif (array[guess] <= val) {\n\t\t\t\t\t\t\tminIndex = guess;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmaxIndex = guess;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn maxIndex;\n\t\t\t\t};\n\t\t\t})();\n\t\t\tthis.x = x;\n\t\t\tthis.y = y;\n\t\t\tthis.lastIndex = x.length - 1;\n\t\t\t// Given an x value (x2), return the expected y2 value:\n\t\t\t// (x1,y1) is the known point before given value,\n\t\t\t// (x3,y3) is the known point after given value.\n\t\t\tvar i1;\n\t\t\tvar i3;\n\n\t\t\tthis.interpolate = function interpolate(x2) {\n\t\t\t\tif (!x2) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\t// Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\t\t\t\ti3 = binarySearch(this.x, x2);\n\t\t\t\ti1 = i3 - 1;\n\n\t\t\t\t// We have our indexes i1 & i3, so we can calculate already:\n\t\t\t\t// y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\t\t\t\treturn (\n\t\t\t\t\t((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) /\n\t\t\t\t\t\t(this.x[i3] - this.x[i1]) +\n\t\t\t\t\tthis.y[i1]\n\t\t\t\t);\n\t\t\t};\n\t\t\treturn this;\n\t\t},\n\t\t// xxx: for now i will just save one spline function to to\n\t\tgetInterpolateFunction: function getInterpolateFunction(c) {\n\t\t\tvar swiper = this;\n\t\t\tif (!swiper.controller.spline) {\n\t\t\t\tswiper.controller.spline = swiper.params.loop\n\t\t\t\t\t? new Controller.LinearSpline(\n\t\t\t\t\t\t\tswiper.slidesGrid,\n\t\t\t\t\t\t\tc.slidesGrid\n\t\t\t\t\t )\n\t\t\t\t\t: new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n\t\t\t}\n\t\t},\n\t\tsetTranslate: function setTranslate(setTranslate$1, byController) {\n\t\t\tvar swiper = this;\n\t\t\tvar controlled = swiper.controller.control;\n\t\t\tvar multiplier;\n\t\t\tvar controlledTranslate;\n\t\t\tfunction setControlledTranslate(c) {\n\t\t\t\t// this will create an Interpolate function based on the snapGrids\n\t\t\t\t// x is the Grid of the scrolled scroller and y will be the controlled scroller\n\t\t\t\t// it makes sense to create this only once and recall it for the interpolation\n\t\t\t\t// the function does a lot of value caching for performance\n\t\t\t\tvar translate = swiper.rtlTranslate\n\t\t\t\t\t? -swiper.translate\n\t\t\t\t\t: swiper.translate;\n\t\t\t\tif (swiper.params.controller.by === \"slide\") {\n\t\t\t\t\tswiper.controller.getInterpolateFunction(c);\n\t\t\t\t\t// i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n\t\t\t\t\t// but it did not work out\n\t\t\t\t\tcontrolledTranslate = -swiper.controller.spline.interpolate(\n\t\t\t\t\t\t-translate\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!controlledTranslate ||\n\t\t\t\t\tswiper.params.controller.by === \"container\"\n\t\t\t\t) {\n\t\t\t\t\tmultiplier =\n\t\t\t\t\t\t(c.maxTranslate() - c.minTranslate()) /\n\t\t\t\t\t\t(swiper.maxTranslate() - swiper.minTranslate());\n\t\t\t\t\tcontrolledTranslate =\n\t\t\t\t\t\t(translate - swiper.minTranslate()) * multiplier +\n\t\t\t\t\t\tc.minTranslate();\n\t\t\t\t}\n\n\t\t\t\tif (swiper.params.controller.inverse) {\n\t\t\t\t\tcontrolledTranslate =\n\t\t\t\t\t\tc.maxTranslate() - controlledTranslate;\n\t\t\t\t}\n\t\t\t\tc.updateProgress(controlledTranslate);\n\t\t\t\tc.setTranslate(controlledTranslate, swiper);\n\t\t\t\tc.updateActiveIndex();\n\t\t\t\tc.updateSlidesClasses();\n\t\t\t}\n\t\t\tif (Array.isArray(controlled)) {\n\t\t\t\tfor (var i = 0; i < controlled.length; i += 1) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tcontrolled[i] !== byController &&\n\t\t\t\t\t\tcontrolled[i] instanceof Swiper\n\t\t\t\t\t) {\n\t\t\t\t\t\tsetControlledTranslate(controlled[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tcontrolled instanceof Swiper &&\n\t\t\t\tbyController !== controlled\n\t\t\t) {\n\t\t\t\tsetControlledTranslate(controlled);\n\t\t\t}\n\t\t},\n\t\tsetTransition: function setTransition(duration, byController) {\n\t\t\tvar swiper = this;\n\t\t\tvar controlled = swiper.controller.control;\n\t\t\tvar i;\n\t\t\tfunction setControlledTransition(c) {\n\t\t\t\tc.setTransition(duration, swiper);\n\t\t\t\tif (duration !== 0) {\n\t\t\t\t\tc.transitionStart();\n\t\t\t\t\tif (c.params.autoHeight) {\n\t\t\t\t\t\tUtils.nextTick(function () {\n\t\t\t\t\t\t\tc.updateAutoHeight();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tc.$wrapperEl.transitionEnd(function () {\n\t\t\t\t\t\tif (!controlled) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tc.params.loop &&\n\t\t\t\t\t\t\tswiper.params.controller.by === \"slide\"\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tc.loopFix();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tc.transitionEnd();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (Array.isArray(controlled)) {\n\t\t\t\tfor (i = 0; i < controlled.length; i += 1) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tcontrolled[i] !== byController &&\n\t\t\t\t\t\tcontrolled[i] instanceof Swiper\n\t\t\t\t\t) {\n\t\t\t\t\t\tsetControlledTransition(controlled[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tcontrolled instanceof Swiper &&\n\t\t\t\tbyController !== controlled\n\t\t\t) {\n\t\t\t\tsetControlledTransition(controlled);\n\t\t\t}\n\t\t},\n\t};\n\tvar Controller$1 = {\n\t\tname: \"controller\",\n\t\tparams: {\n\t\t\tcontroller: {\n\t\t\t\tcontrol: undefined,\n\t\t\t\tinverse: false,\n\t\t\t\tby: \"slide\", // or 'container'\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tcontroller: {\n\t\t\t\t\tcontrol: swiper.params.controller.control,\n\t\t\t\t\tgetInterpolateFunction:\n\t\t\t\t\t\tController.getInterpolateFunction.bind(swiper),\n\t\t\t\t\tsetTranslate: Controller.setTranslate.bind(swiper),\n\t\t\t\t\tsetTransition: Controller.setTransition.bind(swiper),\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tupdate: function update() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.controller.control) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (swiper.controller.spline) {\n\t\t\t\t\tswiper.controller.spline = undefined;\n\t\t\t\t\tdelete swiper.controller.spline;\n\t\t\t\t}\n\t\t\t},\n\t\t\tresize: function resize() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.controller.control) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (swiper.controller.spline) {\n\t\t\t\t\tswiper.controller.spline = undefined;\n\t\t\t\t\tdelete swiper.controller.spline;\n\t\t\t\t}\n\t\t\t},\n\t\t\tobserverUpdate: function observerUpdate() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.controller.control) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (swiper.controller.spline) {\n\t\t\t\t\tswiper.controller.spline = undefined;\n\t\t\t\t\tdelete swiper.controller.spline;\n\t\t\t\t}\n\t\t\t},\n\t\t\tsetTranslate: function setTranslate(translate, byController) {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.controller.control) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.controller.setTranslate(translate, byController);\n\t\t\t},\n\t\t\tsetTransition: function setTransition(duration, byController) {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.controller.control) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.controller.setTransition(duration, byController);\n\t\t\t},\n\t\t},\n\t};\n\n\tvar a11y = {\n\t\tmakeElFocusable: function makeElFocusable($el) {\n\t\t\t$el.attr(\"tabIndex\", \"0\");\n\t\t\treturn $el;\n\t\t},\n\t\taddElRole: function addElRole($el, role) {\n\t\t\t$el.attr(\"role\", role);\n\t\t\treturn $el;\n\t\t},\n\t\taddElLabel: function addElLabel($el, label) {\n\t\t\t$el.attr(\"aria-label\", label);\n\t\t\treturn $el;\n\t\t},\n\t\tdisableEl: function disableEl($el) {\n\t\t\t$el.attr(\"aria-disabled\", true);\n\t\t\treturn $el;\n\t\t},\n\t\tenableEl: function enableEl($el) {\n\t\t\t$el.attr(\"aria-disabled\", false);\n\t\t\treturn $el;\n\t\t},\n\t\tonEnterKey: function onEnterKey(e) {\n\t\t\tvar swiper = this;\n\t\t\tvar params = swiper.params.a11y;\n\t\t\tif (e.keyCode !== 13) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar $targetEl = $(e.target);\n\t\t\tif (\n\t\t\t\tswiper.navigation &&\n\t\t\t\tswiper.navigation.$nextEl &&\n\t\t\t\t$targetEl.is(swiper.navigation.$nextEl)\n\t\t\t) {\n\t\t\t\tif (!(swiper.isEnd && !swiper.params.loop)) {\n\t\t\t\t\tswiper.slideNext();\n\t\t\t\t}\n\t\t\t\tif (swiper.isEnd) {\n\t\t\t\t\tswiper.a11y.notify(params.lastSlideMessage);\n\t\t\t\t} else {\n\t\t\t\t\tswiper.a11y.notify(params.nextSlideMessage);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (\n\t\t\t\tswiper.navigation &&\n\t\t\t\tswiper.navigation.$prevEl &&\n\t\t\t\t$targetEl.is(swiper.navigation.$prevEl)\n\t\t\t) {\n\t\t\t\tif (!(swiper.isBeginning && !swiper.params.loop)) {\n\t\t\t\t\tswiper.slidePrev();\n\t\t\t\t}\n\t\t\t\tif (swiper.isBeginning) {\n\t\t\t\t\tswiper.a11y.notify(params.firstSlideMessage);\n\t\t\t\t} else {\n\t\t\t\t\tswiper.a11y.notify(params.prevSlideMessage);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (\n\t\t\t\tswiper.pagination &&\n\t\t\t\t$targetEl.is(\".\" + swiper.params.pagination.bulletClass)\n\t\t\t) {\n\t\t\t\t$targetEl[0].click();\n\t\t\t}\n\t\t},\n\t\tnotify: function notify(message) {\n\t\t\tvar swiper = this;\n\t\t\tvar notification = swiper.a11y.liveRegion;\n\t\t\tif (notification.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tnotification.html(\"\");\n\t\t\tnotification.html(message);\n\t\t},\n\t\tupdateNavigation: function updateNavigation() {\n\t\t\tvar swiper = this;\n\n\t\t\tif (swiper.params.loop) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar ref = swiper.navigation;\n\t\t\tvar $nextEl = ref.$nextEl;\n\t\t\tvar $prevEl = ref.$prevEl;\n\n\t\t\tif ($prevEl && $prevEl.length > 0) {\n\t\t\t\tif (swiper.isBeginning) {\n\t\t\t\t\tswiper.a11y.disableEl($prevEl);\n\t\t\t\t} else {\n\t\t\t\t\tswiper.a11y.enableEl($prevEl);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ($nextEl && $nextEl.length > 0) {\n\t\t\t\tif (swiper.isEnd) {\n\t\t\t\t\tswiper.a11y.disableEl($nextEl);\n\t\t\t\t} else {\n\t\t\t\t\tswiper.a11y.enableEl($nextEl);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tupdatePagination: function updatePagination() {\n\t\t\tvar swiper = this;\n\t\t\tvar params = swiper.params.a11y;\n\t\t\tif (\n\t\t\t\tswiper.pagination &&\n\t\t\t\tswiper.params.pagination.clickable &&\n\t\t\t\tswiper.pagination.bullets &&\n\t\t\t\tswiper.pagination.bullets.length\n\t\t\t) {\n\t\t\t\tswiper.pagination.bullets.each(function (\n\t\t\t\t\tbulletIndex,\n\t\t\t\t\tbulletEl\n\t\t\t\t) {\n\t\t\t\t\tvar $bulletEl = $(bulletEl);\n\t\t\t\t\tswiper.a11y.makeElFocusable($bulletEl);\n\t\t\t\t\tswiper.a11y.addElRole($bulletEl, \"button\");\n\t\t\t\t\tswiper.a11y.addElLabel(\n\t\t\t\t\t\t$bulletEl,\n\t\t\t\t\t\tparams.paginationBulletMessage.replace(\n\t\t\t\t\t\t\t/{{index}}/,\n\t\t\t\t\t\t\t$bulletEl.index() + 1\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tinit: function init() {\n\t\t\tvar swiper = this;\n\n\t\t\tswiper.$el.append(swiper.a11y.liveRegion);\n\n\t\t\t// Navigation\n\t\t\tvar params = swiper.params.a11y;\n\t\t\tvar $nextEl;\n\t\t\tvar $prevEl;\n\t\t\tif (swiper.navigation && swiper.navigation.$nextEl) {\n\t\t\t\t$nextEl = swiper.navigation.$nextEl;\n\t\t\t}\n\t\t\tif (swiper.navigation && swiper.navigation.$prevEl) {\n\t\t\t\t$prevEl = swiper.navigation.$prevEl;\n\t\t\t}\n\t\t\tif ($nextEl) {\n\t\t\t\tswiper.a11y.makeElFocusable($nextEl);\n\t\t\t\tswiper.a11y.addElRole($nextEl, \"button\");\n\t\t\t\tswiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n\t\t\t\t$nextEl.on(\"keydown\", swiper.a11y.onEnterKey);\n\t\t\t}\n\t\t\tif ($prevEl) {\n\t\t\t\tswiper.a11y.makeElFocusable($prevEl);\n\t\t\t\tswiper.a11y.addElRole($prevEl, \"button\");\n\t\t\t\tswiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n\t\t\t\t$prevEl.on(\"keydown\", swiper.a11y.onEnterKey);\n\t\t\t}\n\n\t\t\t// Pagination\n\t\t\tif (\n\t\t\t\tswiper.pagination &&\n\t\t\t\tswiper.params.pagination.clickable &&\n\t\t\t\tswiper.pagination.bullets &&\n\t\t\t\tswiper.pagination.bullets.length\n\t\t\t) {\n\t\t\t\tswiper.pagination.$el.on(\n\t\t\t\t\t\"keydown\",\n\t\t\t\t\t\".\" + swiper.params.pagination.bulletClass,\n\t\t\t\t\tswiper.a11y.onEnterKey\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\tdestroy: function destroy() {\n\t\t\tvar swiper = this;\n\t\t\tif (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) {\n\t\t\t\tswiper.a11y.liveRegion.remove();\n\t\t\t}\n\n\t\t\tvar $nextEl;\n\t\t\tvar $prevEl;\n\t\t\tif (swiper.navigation && swiper.navigation.$nextEl) {\n\t\t\t\t$nextEl = swiper.navigation.$nextEl;\n\t\t\t}\n\t\t\tif (swiper.navigation && swiper.navigation.$prevEl) {\n\t\t\t\t$prevEl = swiper.navigation.$prevEl;\n\t\t\t}\n\t\t\tif ($nextEl) {\n\t\t\t\t$nextEl.off(\"keydown\", swiper.a11y.onEnterKey);\n\t\t\t}\n\t\t\tif ($prevEl) {\n\t\t\t\t$prevEl.off(\"keydown\", swiper.a11y.onEnterKey);\n\t\t\t}\n\n\t\t\t// Pagination\n\t\t\tif (\n\t\t\t\tswiper.pagination &&\n\t\t\t\tswiper.params.pagination.clickable &&\n\t\t\t\tswiper.pagination.bullets &&\n\t\t\t\tswiper.pagination.bullets.length\n\t\t\t) {\n\t\t\t\tswiper.pagination.$el.off(\n\t\t\t\t\t\"keydown\",\n\t\t\t\t\t\".\" + swiper.params.pagination.bulletClass,\n\t\t\t\t\tswiper.a11y.onEnterKey\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t};\n\tvar A11y = {\n\t\tname: \"a11y\",\n\t\tparams: {\n\t\t\ta11y: {\n\t\t\t\tenabled: true,\n\t\t\t\tnotificationClass: \"swiper-notification\",\n\t\t\t\tprevSlideMessage: \"Previous slide\",\n\t\t\t\tnextSlideMessage: \"Next slide\",\n\t\t\t\tfirstSlideMessage: \"This is the first slide\",\n\t\t\t\tlastSlideMessage: \"This is the last slide\",\n\t\t\t\tpaginationBulletMessage: \"Go to slide {{index}}\",\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\ta11y: {\n\t\t\t\t\tliveRegion: $(\n\t\t\t\t\t\t'<span class=\"' +\n\t\t\t\t\t\t\tswiper.params.a11y.notificationClass +\n\t\t\t\t\t\t\t'\" aria-live=\"assertive\" aria-atomic=\"true\"></span>'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t});\n\t\t\tObject.keys(a11y).forEach(function (methodName) {\n\t\t\t\tswiper.a11y[methodName] = a11y[methodName].bind(swiper);\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tinit: function init() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.params.a11y.enabled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.a11y.init();\n\t\t\t\tswiper.a11y.updateNavigation();\n\t\t\t},\n\t\t\ttoEdge: function toEdge() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.params.a11y.enabled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.a11y.updateNavigation();\n\t\t\t},\n\t\t\tfromEdge: function fromEdge() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.params.a11y.enabled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.a11y.updateNavigation();\n\t\t\t},\n\t\t\tpaginationUpdate: function paginationUpdate() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.params.a11y.enabled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.a11y.updatePagination();\n\t\t\t},\n\t\t\tdestroy: function destroy() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.params.a11y.enabled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.a11y.destroy();\n\t\t\t},\n\t\t},\n\t};\n\n\tvar History = {\n\t\tinit: function init() {\n\t\t\tvar swiper = this;\n\t\t\tif (!swiper.params.history) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!win.history || !win.history.pushState) {\n\t\t\t\tswiper.params.history.enabled = false;\n\t\t\t\tswiper.params.hashNavigation.enabled = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar history = swiper.history;\n\t\t\thistory.initialized = true;\n\t\t\thistory.paths = History.getPathValues();\n\t\t\tif (!history.paths.key && !history.paths.value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\thistory.scrollToSlide(\n\t\t\t\t0,\n\t\t\t\thistory.paths.value,\n\t\t\t\tswiper.params.runCallbacksOnInit\n\t\t\t);\n\t\t\tif (!swiper.params.history.replaceState) {\n\t\t\t\twin.addEventListener(\n\t\t\t\t\t\"popstate\",\n\t\t\t\t\tswiper.history.setHistoryPopState\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\tdestroy: function destroy() {\n\t\t\tvar swiper = this;\n\t\t\tif (!swiper.params.history.replaceState) {\n\t\t\t\twin.removeEventListener(\n\t\t\t\t\t\"popstate\",\n\t\t\t\t\tswiper.history.setHistoryPopState\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\tsetHistoryPopState: function setHistoryPopState() {\n\t\t\tvar swiper = this;\n\t\t\tswiper.history.paths = History.getPathValues();\n\t\t\tswiper.history.scrollToSlide(\n\t\t\t\tswiper.params.speed,\n\t\t\t\tswiper.history.paths.value,\n\t\t\t\tfalse\n\t\t\t);\n\t\t},\n\t\tgetPathValues: function getPathValues() {\n\t\t\tvar pathArray = win.location.pathname\n\t\t\t\t.slice(1)\n\t\t\t\t.split(\"/\")\n\t\t\t\t.filter(function (part) {\n\t\t\t\t\treturn part !== \"\";\n\t\t\t\t});\n\t\t\tvar total = pathArray.length;\n\t\t\tvar key = pathArray[total - 2];\n\t\t\tvar value = pathArray[total - 1];\n\t\t\treturn { key: key, value: value };\n\t\t},\n\t\tsetHistory: function setHistory(key, index) {\n\t\t\tvar swiper = this;\n\t\t\tif (!swiper.history.initialized || !swiper.params.history.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar slide = swiper.slides.eq(index);\n\t\t\tvar value = History.slugify(slide.attr(\"data-history\"));\n\t\t\tif (!win.location.pathname.includes(key)) {\n\t\t\t\tvalue = key + \"/\" + value;\n\t\t\t}\n\t\t\tvar currentState = win.history.state;\n\t\t\tif (currentState && currentState.value === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (swiper.params.history.replaceState) {\n\t\t\t\twin.history.replaceState({ value: value }, null, value);\n\t\t\t} else {\n\t\t\t\twin.history.pushState({ value: value }, null, value);\n\t\t\t}\n\t\t},\n\t\tslugify: function slugify(text) {\n\t\t\treturn text\n\t\t\t\t.toString()\n\t\t\t\t.replace(/\\s+/g, \"-\")\n\t\t\t\t.replace(/[^\\w-]+/g, \"\")\n\t\t\t\t.replace(/--+/g, \"-\")\n\t\t\t\t.replace(/^-+/, \"\")\n\t\t\t\t.replace(/-+$/, \"\");\n\t\t},\n\t\tscrollToSlide: function scrollToSlide(speed, value, runCallbacks) {\n\t\t\tvar swiper = this;\n\t\t\tif (value) {\n\t\t\t\tfor (\n\t\t\t\t\tvar i = 0, length = swiper.slides.length;\n\t\t\t\t\ti < length;\n\t\t\t\t\ti += 1\n\t\t\t\t) {\n\t\t\t\t\tvar slide = swiper.slides.eq(i);\n\t\t\t\t\tvar slideHistory = History.slugify(\n\t\t\t\t\t\tslide.attr(\"data-history\")\n\t\t\t\t\t);\n\t\t\t\t\tif (\n\t\t\t\t\t\tslideHistory === value &&\n\t\t\t\t\t\t!slide.hasClass(swiper.params.slideDuplicateClass)\n\t\t\t\t\t) {\n\t\t\t\t\t\tvar index = slide.index();\n\t\t\t\t\t\tswiper.slideTo(index, speed, runCallbacks);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswiper.slideTo(0, speed, runCallbacks);\n\t\t\t}\n\t\t},\n\t};\n\n\tvar History$1 = {\n\t\tname: \"history\",\n\t\tparams: {\n\t\t\thistory: {\n\t\t\t\tenabled: false,\n\t\t\t\treplaceState: false,\n\t\t\t\tkey: \"slides\",\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\thistory: {\n\t\t\t\t\tinit: History.init.bind(swiper),\n\t\t\t\t\tsetHistory: History.setHistory.bind(swiper),\n\t\t\t\t\tsetHistoryPopState: History.setHistoryPopState.bind(swiper),\n\t\t\t\t\tscrollToSlide: History.scrollToSlide.bind(swiper),\n\t\t\t\t\tdestroy: History.destroy.bind(swiper),\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tinit: function init() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.history.enabled) {\n\t\t\t\t\tswiper.history.init();\n\t\t\t\t}\n\t\t\t},\n\t\t\tdestroy: function destroy() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.history.enabled) {\n\t\t\t\t\tswiper.history.destroy();\n\t\t\t\t}\n\t\t\t},\n\t\t\ttransitionEnd: function transitionEnd() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.history.initialized) {\n\t\t\t\t\tswiper.history.setHistory(\n\t\t\t\t\t\tswiper.params.history.key,\n\t\t\t\t\t\tswiper.activeIndex\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t};\n\n\tvar HashNavigation = {\n\t\tonHashCange: function onHashCange() {\n\t\t\tvar swiper = this;\n\t\t\tvar newHash = doc.location.hash.replace(\"#\", \"\");\n\t\t\tvar activeSlideHash = swiper.slides\n\t\t\t\t.eq(swiper.activeIndex)\n\t\t\t\t.attr(\"data-hash\");\n\t\t\tif (newHash !== activeSlideHash) {\n\t\t\t\tvar newIndex = swiper.$wrapperEl\n\t\t\t\t\t.children(\n\t\t\t\t\t\t\".\" +\n\t\t\t\t\t\t\tswiper.params.slideClass +\n\t\t\t\t\t\t\t'[data-hash=\"' +\n\t\t\t\t\t\t\tnewHash +\n\t\t\t\t\t\t\t'\"]'\n\t\t\t\t\t)\n\t\t\t\t\t.index();\n\t\t\t\tif (typeof newIndex === \"undefined\") {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.slideTo(newIndex);\n\t\t\t}\n\t\t},\n\t\tsetHash: function setHash() {\n\t\t\tvar swiper = this;\n\t\t\tif (\n\t\t\t\t!swiper.hashNavigation.initialized ||\n\t\t\t\t!swiper.params.hashNavigation.enabled\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (\n\t\t\t\tswiper.params.hashNavigation.replaceState &&\n\t\t\t\twin.history &&\n\t\t\t\twin.history.replaceState\n\t\t\t) {\n\t\t\t\twin.history.replaceState(\n\t\t\t\t\tnull,\n\t\t\t\t\tnull,\n\t\t\t\t\t\"#\" +\n\t\t\t\t\t\tswiper.slides\n\t\t\t\t\t\t\t.eq(swiper.activeIndex)\n\t\t\t\t\t\t\t.attr(\"data-hash\") || \"\"\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tvar slide = swiper.slides.eq(swiper.activeIndex);\n\t\t\t\tvar hash =\n\t\t\t\t\tslide.attr(\"data-hash\") || slide.attr(\"data-history\");\n\t\t\t\tdoc.location.hash = hash || \"\";\n\t\t\t}\n\t\t},\n\t\tinit: function init() {\n\t\t\tvar swiper = this;\n\t\t\tif (\n\t\t\t\t!swiper.params.hashNavigation.enabled ||\n\t\t\t\t(swiper.params.history && swiper.params.history.enabled)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tswiper.hashNavigation.initialized = true;\n\t\t\tvar hash = doc.location.hash.replace(\"#\", \"\");\n\t\t\tif (hash) {\n\t\t\t\tvar speed = 0;\n\t\t\t\tfor (\n\t\t\t\t\tvar i = 0, length = swiper.slides.length;\n\t\t\t\t\ti < length;\n\t\t\t\t\ti += 1\n\t\t\t\t) {\n\t\t\t\t\tvar slide = swiper.slides.eq(i);\n\t\t\t\t\tvar slideHash =\n\t\t\t\t\t\tslide.attr(\"data-hash\") || slide.attr(\"data-history\");\n\t\t\t\t\tif (\n\t\t\t\t\t\tslideHash === hash &&\n\t\t\t\t\t\t!slide.hasClass(swiper.params.slideDuplicateClass)\n\t\t\t\t\t) {\n\t\t\t\t\t\tvar index = slide.index();\n\t\t\t\t\t\tswiper.slideTo(\n\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\tspeed,\n\t\t\t\t\t\t\tswiper.params.runCallbacksOnInit,\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (swiper.params.hashNavigation.watchState) {\n\t\t\t\t$(win).on(\"hashchange\", swiper.hashNavigation.onHashCange);\n\t\t\t}\n\t\t},\n\t\tdestroy: function destroy() {\n\t\t\tvar swiper = this;\n\t\t\tif (swiper.params.hashNavigation.watchState) {\n\t\t\t\t$(win).off(\"hashchange\", swiper.hashNavigation.onHashCange);\n\t\t\t}\n\t\t},\n\t};\n\tvar HashNavigation$1 = {\n\t\tname: \"hash-navigation\",\n\t\tparams: {\n\t\t\thashNavigation: {\n\t\t\t\tenabled: false,\n\t\t\t\treplaceState: false,\n\t\t\t\twatchState: false,\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\thashNavigation: {\n\t\t\t\t\tinitialized: false,\n\t\t\t\t\tinit: HashNavigation.init.bind(swiper),\n\t\t\t\t\tdestroy: HashNavigation.destroy.bind(swiper),\n\t\t\t\t\tsetHash: HashNavigation.setHash.bind(swiper),\n\t\t\t\t\tonHashCange: HashNavigation.onHashCange.bind(swiper),\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tinit: function init() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.hashNavigation.enabled) {\n\t\t\t\t\tswiper.hashNavigation.init();\n\t\t\t\t}\n\t\t\t},\n\t\t\tdestroy: function destroy() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.hashNavigation.enabled) {\n\t\t\t\t\tswiper.hashNavigation.destroy();\n\t\t\t\t}\n\t\t\t},\n\t\t\ttransitionEnd: function transitionEnd() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.hashNavigation.initialized) {\n\t\t\t\t\tswiper.hashNavigation.setHash();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t};\n\n\t/* eslint no-underscore-dangle: \"off\" */\n\n\tvar Autoplay = {\n\t\trun: function run() {\n\t\t\tvar swiper = this;\n\t\t\tvar $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n\t\t\tvar delay = swiper.params.autoplay.delay;\n\t\t\tif ($activeSlideEl.attr(\"data-swiper-autoplay\")) {\n\t\t\t\tdelay =\n\t\t\t\t\t$activeSlideEl.attr(\"data-swiper-autoplay\") ||\n\t\t\t\t\tswiper.params.autoplay.delay;\n\t\t\t}\n\t\t\tswiper.autoplay.timeout = Utils.nextTick(function () {\n\t\t\t\tif (swiper.params.autoplay.reverseDirection) {\n\t\t\t\t\tif (swiper.params.loop) {\n\t\t\t\t\t\tswiper.loopFix();\n\t\t\t\t\t\tswiper.slidePrev(swiper.params.speed, true, true);\n\t\t\t\t\t\tswiper.emit(\"autoplay\");\n\t\t\t\t\t} else if (!swiper.isBeginning) {\n\t\t\t\t\t\tswiper.slidePrev(swiper.params.speed, true, true);\n\t\t\t\t\t\tswiper.emit(\"autoplay\");\n\t\t\t\t\t} else if (!swiper.params.autoplay.stopOnLastSlide) {\n\t\t\t\t\t\tswiper.slideTo(\n\t\t\t\t\t\t\tswiper.slides.length - 1,\n\t\t\t\t\t\t\tswiper.params.speed,\n\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t);\n\t\t\t\t\t\tswiper.emit(\"autoplay\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\tswiper.autoplay.stop();\n\t\t\t\t\t}\n\t\t\t\t} else if (swiper.params.loop) {\n\t\t\t\t\tswiper.loopFix();\n\t\t\t\t\tswiper.slideNext(swiper.params.speed, true, true);\n\t\t\t\t\tswiper.emit(\"autoplay\");\n\t\t\t\t} else if (!swiper.isEnd) {\n\t\t\t\t\tswiper.slideNext(swiper.params.speed, true, true);\n\t\t\t\t\tswiper.emit(\"autoplay\");\n\t\t\t\t} else if (!swiper.params.autoplay.stopOnLastSlide) {\n\t\t\t\t\tswiper.slideTo(0, swiper.params.speed, true, true);\n\t\t\t\t\tswiper.emit(\"autoplay\");\n\t\t\t\t} else {\n\t\t\t\t\tswiper.autoplay.stop();\n\t\t\t\t}\n\t\t\t}, delay);\n\t\t},\n\t\tstart: function start() {\n\t\t\tvar swiper = this;\n\t\t\tif (typeof swiper.autoplay.timeout !== \"undefined\") {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (swiper.autoplay.running) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tswiper.autoplay.running = true;\n\t\t\tswiper.emit(\"autoplayStart\");\n\t\t\tswiper.autoplay.run();\n\t\t\treturn true;\n\t\t},\n\t\tstop: function stop() {\n\t\t\tvar swiper = this;\n\t\t\tif (!swiper.autoplay.running) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (typeof swiper.autoplay.timeout === \"undefined\") {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (swiper.autoplay.timeout) {\n\t\t\t\tclearTimeout(swiper.autoplay.timeout);\n\t\t\t\tswiper.autoplay.timeout = undefined;\n\t\t\t}\n\t\t\tswiper.autoplay.running = false;\n\t\t\tswiper.emit(\"autoplayStop\");\n\t\t\treturn true;\n\t\t},\n\t\tpause: function pause(speed) {\n\t\t\tvar swiper = this;\n\t\t\tif (!swiper.autoplay.running) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (swiper.autoplay.paused) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (swiper.autoplay.timeout) {\n\t\t\t\tclearTimeout(swiper.autoplay.timeout);\n\t\t\t}\n\t\t\tswiper.autoplay.paused = true;\n\t\t\tif (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n\t\t\t\tswiper.autoplay.paused = false;\n\t\t\t\tswiper.autoplay.run();\n\t\t\t} else {\n\t\t\t\tswiper.$wrapperEl[0].addEventListener(\n\t\t\t\t\t\"transitionend\",\n\t\t\t\t\tswiper.autoplay.onTransitionEnd\n\t\t\t\t);\n\t\t\t\tswiper.$wrapperEl[0].addEventListener(\n\t\t\t\t\t\"webkitTransitionEnd\",\n\t\t\t\t\tswiper.autoplay.onTransitionEnd\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t};\n\n\tvar Autoplay$1 = {\n\t\tname: \"autoplay\",\n\t\tparams: {\n\t\t\tautoplay: {\n\t\t\t\tenabled: false,\n\t\t\t\tdelay: 3000,\n\t\t\t\twaitForTransition: true,\n\t\t\t\tdisableOnInteraction: true,\n\t\t\t\tstopOnLastSlide: false,\n\t\t\t\treverseDirection: false,\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tautoplay: {\n\t\t\t\t\trunning: false,\n\t\t\t\t\tpaused: false,\n\t\t\t\t\trun: Autoplay.run.bind(swiper),\n\t\t\t\t\tstart: Autoplay.start.bind(swiper),\n\t\t\t\t\tstop: Autoplay.stop.bind(swiper),\n\t\t\t\t\tpause: Autoplay.pause.bind(swiper),\n\t\t\t\t\tonTransitionEnd: function onTransitionEnd(e) {\n\t\t\t\t\t\tif (!swiper || swiper.destroyed || !swiper.$wrapperEl) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (e.target !== this) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tswiper.$wrapperEl[0].removeEventListener(\n\t\t\t\t\t\t\t\"transitionend\",\n\t\t\t\t\t\t\tswiper.autoplay.onTransitionEnd\n\t\t\t\t\t\t);\n\t\t\t\t\t\tswiper.$wrapperEl[0].removeEventListener(\n\t\t\t\t\t\t\t\"webkitTransitionEnd\",\n\t\t\t\t\t\t\tswiper.autoplay.onTransitionEnd\n\t\t\t\t\t\t);\n\t\t\t\t\t\tswiper.autoplay.paused = false;\n\t\t\t\t\t\tif (!swiper.autoplay.running) {\n\t\t\t\t\t\t\tswiper.autoplay.stop();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tswiper.autoplay.run();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tinit: function init() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.autoplay.enabled) {\n\t\t\t\t\tswiper.autoplay.start();\n\t\t\t\t}\n\t\t\t},\n\t\t\tbeforeTransitionStart: function beforeTransitionStart(\n\t\t\t\tspeed,\n\t\t\t\tinternal\n\t\t\t) {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.autoplay.running) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tinternal ||\n\t\t\t\t\t\t!swiper.params.autoplay.disableOnInteraction\n\t\t\t\t\t) {\n\t\t\t\t\t\tswiper.autoplay.pause(speed);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tswiper.autoplay.stop();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tsliderFirstMove: function sliderFirstMove() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.autoplay.running) {\n\t\t\t\t\tif (swiper.params.autoplay.disableOnInteraction) {\n\t\t\t\t\t\tswiper.autoplay.stop();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tswiper.autoplay.pause();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdestroy: function destroy() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.autoplay.running) {\n\t\t\t\t\tswiper.autoplay.stop();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t};\n\n\tvar Fade = {\n\t\tsetTranslate: function setTranslate() {\n\t\t\tvar swiper = this;\n\t\t\tvar slides = swiper.slides;\n\t\t\tfor (var i = 0; i < slides.length; i += 1) {\n\t\t\t\tvar $slideEl = swiper.slides.eq(i);\n\t\t\t\tvar offset = $slideEl[0].swiperSlideOffset;\n\t\t\t\tvar tx = -offset;\n\t\t\t\tif (!swiper.params.virtualTranslate) {\n\t\t\t\t\ttx -= swiper.translate;\n\t\t\t\t}\n\t\t\t\tvar ty = 0;\n\t\t\t\tif (!swiper.isHorizontal()) {\n\t\t\t\t\tty = tx;\n\t\t\t\t\ttx = 0;\n\t\t\t\t}\n\t\t\t\tvar slideOpacity = swiper.params.fadeEffect.crossFade\n\t\t\t\t\t? Math.max(1 - Math.abs($slideEl[0].progress), 0)\n\t\t\t\t\t: 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n\t\t\t\t$slideEl\n\t\t\t\t\t.css({\n\t\t\t\t\t\topacity: slideOpacity,\n\t\t\t\t\t})\n\t\t\t\t\t.transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px)\");\n\t\t\t}\n\t\t},\n\t\tsetTransition: function setTransition(duration) {\n\t\t\tvar swiper = this;\n\t\t\tvar slides = swiper.slides;\n\t\t\tvar $wrapperEl = swiper.$wrapperEl;\n\t\t\tslides.transition(duration);\n\t\t\tif (swiper.params.virtualTranslate && duration !== 0) {\n\t\t\t\tvar eventTriggered = false;\n\t\t\t\tslides.transitionEnd(function () {\n\t\t\t\t\tif (eventTriggered) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (!swiper || swiper.destroyed) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\teventTriggered = true;\n\t\t\t\t\tswiper.animating = false;\n\t\t\t\t\tvar triggerEvents = [\n\t\t\t\t\t\t\"webkitTransitionEnd\",\n\t\t\t\t\t\t\"transitionend\",\n\t\t\t\t\t];\n\t\t\t\t\tfor (var i = 0; i < triggerEvents.length; i += 1) {\n\t\t\t\t\t\t$wrapperEl.trigger(triggerEvents[i]);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t};\n\n\tvar EffectFade = {\n\t\tname: \"effect-fade\",\n\t\tparams: {\n\t\t\tfadeEffect: {\n\t\t\t\tcrossFade: false,\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tfadeEffect: {\n\t\t\t\t\tsetTranslate: Fade.setTranslate.bind(swiper),\n\t\t\t\t\tsetTransition: Fade.setTransition.bind(swiper),\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tbeforeInit: function beforeInit() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.effect !== \"fade\") {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.classNames.push(\n\t\t\t\t\tswiper.params.containerModifierClass + \"fade\"\n\t\t\t\t);\n\t\t\t\tvar overwriteParams = {\n\t\t\t\t\tslidesPerView: 1,\n\t\t\t\t\tslidesPerColumn: 1,\n\t\t\t\t\tslidesPerGroup: 1,\n\t\t\t\t\twatchSlidesProgress: true,\n\t\t\t\t\tspaceBetween: 0,\n\t\t\t\t\tvirtualTranslate: true,\n\t\t\t\t};\n\t\t\t\tUtils.extend(swiper.params, overwriteParams);\n\t\t\t\tUtils.extend(swiper.originalParams, overwriteParams);\n\t\t\t},\n\t\t\tsetTranslate: function setTranslate() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.effect !== \"fade\") {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.fadeEffect.setTranslate();\n\t\t\t},\n\t\t\tsetTransition: function setTransition(duration) {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.effect !== \"fade\") {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.fadeEffect.setTransition(duration);\n\t\t\t},\n\t\t},\n\t};\n\n\tvar Cube = {\n\t\tsetTranslate: function setTranslate() {\n\t\t\tvar swiper = this;\n\t\t\tvar $el = swiper.$el;\n\t\t\tvar $wrapperEl = swiper.$wrapperEl;\n\t\t\tvar slides = swiper.slides;\n\t\t\tvar swiperWidth = swiper.width;\n\t\t\tvar swiperHeight = swiper.height;\n\t\t\tvar rtl = swiper.rtlTranslate;\n\t\t\tvar swiperSize = swiper.size;\n\t\t\tvar params = swiper.params.cubeEffect;\n\t\t\tvar isHorizontal = swiper.isHorizontal();\n\t\t\tvar isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\t\t\tvar wrapperRotate = 0;\n\t\t\tvar $cubeShadowEl;\n\t\t\tif (params.shadow) {\n\t\t\t\tif (isHorizontal) {\n\t\t\t\t\t$cubeShadowEl = $wrapperEl.find(\".swiper-cube-shadow\");\n\t\t\t\t\tif ($cubeShadowEl.length === 0) {\n\t\t\t\t\t\t$cubeShadowEl = $(\n\t\t\t\t\t\t\t'<div class=\"swiper-cube-shadow\"></div>'\n\t\t\t\t\t\t);\n\t\t\t\t\t\t$wrapperEl.append($cubeShadowEl);\n\t\t\t\t\t}\n\t\t\t\t\t$cubeShadowEl.css({ height: swiperWidth + \"px\" });\n\t\t\t\t} else {\n\t\t\t\t\t$cubeShadowEl = $el.find(\".swiper-cube-shadow\");\n\t\t\t\t\tif ($cubeShadowEl.length === 0) {\n\t\t\t\t\t\t$cubeShadowEl = $(\n\t\t\t\t\t\t\t'<div class=\"swiper-cube-shadow\"></div>'\n\t\t\t\t\t\t);\n\t\t\t\t\t\t$el.append($cubeShadowEl);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i = 0; i < slides.length; i += 1) {\n\t\t\t\tvar $slideEl = slides.eq(i);\n\t\t\t\tvar slideIndex = i;\n\t\t\t\tif (isVirtual) {\n\t\t\t\t\tslideIndex = parseInt(\n\t\t\t\t\t\t$slideEl.attr(\"data-swiper-slide-index\"),\n\t\t\t\t\t\t10\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tvar slideAngle = slideIndex * 90;\n\t\t\t\tvar round = Math.floor(slideAngle / 360);\n\t\t\t\tif (rtl) {\n\t\t\t\t\tslideAngle = -slideAngle;\n\t\t\t\t\tround = Math.floor(-slideAngle / 360);\n\t\t\t\t}\n\t\t\t\tvar progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n\t\t\t\tvar tx = 0;\n\t\t\t\tvar ty = 0;\n\t\t\t\tvar tz = 0;\n\t\t\t\tif (slideIndex % 4 === 0) {\n\t\t\t\t\ttx = -round * 4 * swiperSize;\n\t\t\t\t\ttz = 0;\n\t\t\t\t} else if ((slideIndex - 1) % 4 === 0) {\n\t\t\t\t\ttx = 0;\n\t\t\t\t\ttz = -round * 4 * swiperSize;\n\t\t\t\t} else if ((slideIndex - 2) % 4 === 0) {\n\t\t\t\t\ttx = swiperSize + round * 4 * swiperSize;\n\t\t\t\t\ttz = swiperSize;\n\t\t\t\t} else if ((slideIndex - 3) % 4 === 0) {\n\t\t\t\t\ttx = -swiperSize;\n\t\t\t\t\ttz = 3 * swiperSize + swiperSize * 4 * round;\n\t\t\t\t}\n\t\t\t\tif (rtl) {\n\t\t\t\t\ttx = -tx;\n\t\t\t\t}\n\n\t\t\t\tif (!isHorizontal) {\n\t\t\t\t\tty = tx;\n\t\t\t\t\ttx = 0;\n\t\t\t\t}\n\n\t\t\t\tvar transform =\n\t\t\t\t\t\"rotateX(\" +\n\t\t\t\t\t(isHorizontal ? 0 : -slideAngle) +\n\t\t\t\t\t\"deg) rotateY(\" +\n\t\t\t\t\t(isHorizontal ? slideAngle : 0) +\n\t\t\t\t\t\"deg) translate3d(\" +\n\t\t\t\t\ttx +\n\t\t\t\t\t\"px, \" +\n\t\t\t\t\tty +\n\t\t\t\t\t\"px, \" +\n\t\t\t\t\ttz +\n\t\t\t\t\t\"px)\";\n\t\t\t\tif (progress <= 1 && progress > -1) {\n\t\t\t\t\twrapperRotate = slideIndex * 90 + progress * 90;\n\t\t\t\t\tif (rtl) {\n\t\t\t\t\t\twrapperRotate = -slideIndex * 90 - progress * 90;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$slideEl.transform(transform);\n\t\t\t\tif (params.slideShadows) {\n\t\t\t\t\t// Set shadows\n\t\t\t\t\tvar shadowBefore = isHorizontal\n\t\t\t\t\t\t? $slideEl.find(\".swiper-slide-shadow-left\")\n\t\t\t\t\t\t: $slideEl.find(\".swiper-slide-shadow-top\");\n\t\t\t\t\tvar shadowAfter = isHorizontal\n\t\t\t\t\t\t? $slideEl.find(\".swiper-slide-shadow-right\")\n\t\t\t\t\t\t: $slideEl.find(\".swiper-slide-shadow-bottom\");\n\t\t\t\t\tif (shadowBefore.length === 0) {\n\t\t\t\t\t\tshadowBefore = $(\n\t\t\t\t\t\t\t'<div class=\"swiper-slide-shadow-' +\n\t\t\t\t\t\t\t\t(isHorizontal ? \"left\" : \"top\") +\n\t\t\t\t\t\t\t\t'\"></div>'\n\t\t\t\t\t\t);\n\t\t\t\t\t\t$slideEl.append(shadowBefore);\n\t\t\t\t\t}\n\t\t\t\t\tif (shadowAfter.length === 0) {\n\t\t\t\t\t\tshadowAfter = $(\n\t\t\t\t\t\t\t'<div class=\"swiper-slide-shadow-' +\n\t\t\t\t\t\t\t\t(isHorizontal ? \"right\" : \"bottom\") +\n\t\t\t\t\t\t\t\t'\"></div>'\n\t\t\t\t\t\t);\n\t\t\t\t\t\t$slideEl.append(shadowAfter);\n\t\t\t\t\t}\n\t\t\t\t\tif (shadowBefore.length) {\n\t\t\t\t\t\tshadowBefore[0].style.opacity = Math.max(-progress, 0);\n\t\t\t\t\t}\n\t\t\t\t\tif (shadowAfter.length) {\n\t\t\t\t\t\tshadowAfter[0].style.opacity = Math.max(progress, 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t$wrapperEl.css({\n\t\t\t\t\"-webkit-transform-origin\": \"50% 50% -\" + swiperSize / 2 + \"px\",\n\t\t\t\t\"-moz-transform-origin\": \"50% 50% -\" + swiperSize / 2 + \"px\",\n\t\t\t\t\"-ms-transform-origin\": \"50% 50% -\" + swiperSize / 2 + \"px\",\n\t\t\t\t\"transform-origin\": \"50% 50% -\" + swiperSize / 2 + \"px\",\n\t\t\t});\n\n\t\t\tif (params.shadow) {\n\t\t\t\tif (isHorizontal) {\n\t\t\t\t\t$cubeShadowEl.transform(\n\t\t\t\t\t\t\"translate3d(0px, \" +\n\t\t\t\t\t\t\t(swiperWidth / 2 + params.shadowOffset) +\n\t\t\t\t\t\t\t\"px, \" +\n\t\t\t\t\t\t\t-swiperWidth / 2 +\n\t\t\t\t\t\t\t\"px) rotateX(90deg) rotateZ(0deg) scale(\" +\n\t\t\t\t\t\t\tparams.shadowScale +\n\t\t\t\t\t\t\t\")\"\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tvar shadowAngle =\n\t\t\t\t\t\tMath.abs(wrapperRotate) -\n\t\t\t\t\t\tMath.floor(Math.abs(wrapperRotate) / 90) * 90;\n\t\t\t\t\tvar multiplier =\n\t\t\t\t\t\t1.5 -\n\t\t\t\t\t\t(Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2 +\n\t\t\t\t\t\t\tMath.cos((shadowAngle * 2 * Math.PI) / 360) / 2);\n\t\t\t\t\tvar scale1 = params.shadowScale;\n\t\t\t\t\tvar scale2 = params.shadowScale / multiplier;\n\t\t\t\t\tvar offset = params.shadowOffset;\n\t\t\t\t\t$cubeShadowEl.transform(\n\t\t\t\t\t\t\"scale3d(\" +\n\t\t\t\t\t\t\tscale1 +\n\t\t\t\t\t\t\t\", 1, \" +\n\t\t\t\t\t\t\tscale2 +\n\t\t\t\t\t\t\t\") translate3d(0px, \" +\n\t\t\t\t\t\t\t(swiperHeight / 2 + offset) +\n\t\t\t\t\t\t\t\"px, \" +\n\t\t\t\t\t\t\t-swiperHeight / 2 / scale2 +\n\t\t\t\t\t\t\t\"px) rotateX(-90deg)\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar zFactor =\n\t\t\t\tBrowser.isSafari || Browser.isUiWebView ? -swiperSize / 2 : 0;\n\t\t\t$wrapperEl.transform(\n\t\t\t\t\"translate3d(0px,0,\" +\n\t\t\t\t\tzFactor +\n\t\t\t\t\t\"px) rotateX(\" +\n\t\t\t\t\t(swiper.isHorizontal() ? 0 : wrapperRotate) +\n\t\t\t\t\t\"deg) rotateY(\" +\n\t\t\t\t\t(swiper.isHorizontal() ? -wrapperRotate : 0) +\n\t\t\t\t\t\"deg)\"\n\t\t\t);\n\t\t},\n\t\tsetTransition: function setTransition(duration) {\n\t\t\tvar swiper = this;\n\t\t\tvar $el = swiper.$el;\n\t\t\tvar slides = swiper.slides;\n\t\t\tslides\n\t\t\t\t.transition(duration)\n\t\t\t\t.find(\n\t\t\t\t\t\".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left\"\n\t\t\t\t)\n\t\t\t\t.transition(duration);\n\t\t\tif (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n\t\t\t\t$el.find(\".swiper-cube-shadow\").transition(duration);\n\t\t\t}\n\t\t},\n\t};\n\n\tvar EffectCube = {\n\t\tname: \"effect-cube\",\n\t\tparams: {\n\t\t\tcubeEffect: {\n\t\t\t\tslideShadows: true,\n\t\t\t\tshadow: true,\n\t\t\t\tshadowOffset: 20,\n\t\t\t\tshadowScale: 0.94,\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tcubeEffect: {\n\t\t\t\t\tsetTranslate: Cube.setTranslate.bind(swiper),\n\t\t\t\t\tsetTransition: Cube.setTransition.bind(swiper),\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tbeforeInit: function beforeInit() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.effect !== \"cube\") {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.classNames.push(\n\t\t\t\t\tswiper.params.containerModifierClass + \"cube\"\n\t\t\t\t);\n\t\t\t\tswiper.classNames.push(\n\t\t\t\t\tswiper.params.containerModifierClass + \"3d\"\n\t\t\t\t);\n\t\t\t\tvar overwriteParams = {\n\t\t\t\t\tslidesPerView: 1,\n\t\t\t\t\tslidesPerColumn: 1,\n\t\t\t\t\tslidesPerGroup: 1,\n\t\t\t\t\twatchSlidesProgress: true,\n\t\t\t\t\tresistanceRatio: 0,\n\t\t\t\t\tspaceBetween: 0,\n\t\t\t\t\tcenteredSlides: false,\n\t\t\t\t\tvirtualTranslate: true,\n\t\t\t\t};\n\t\t\t\tUtils.extend(swiper.params, overwriteParams);\n\t\t\t\tUtils.extend(swiper.originalParams, overwriteParams);\n\t\t\t},\n\t\t\tsetTranslate: function setTranslate() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.effect !== \"cube\") {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.cubeEffect.setTranslate();\n\t\t\t},\n\t\t\tsetTransition: function setTransition(duration) {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.effect !== \"cube\") {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.cubeEffect.setTransition(duration);\n\t\t\t},\n\t\t},\n\t};\n\n\tvar Flip = {\n\t\tsetTranslate: function setTranslate() {\n\t\t\tvar swiper = this;\n\t\t\tvar slides = swiper.slides;\n\t\t\tvar rtl = swiper.rtlTranslate;\n\t\t\tfor (var i = 0; i < slides.length; i += 1) {\n\t\t\t\tvar $slideEl = slides.eq(i);\n\t\t\t\tvar progress = $slideEl[0].progress;\n\t\t\t\tif (swiper.params.flipEffect.limitRotation) {\n\t\t\t\t\tprogress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n\t\t\t\t}\n\t\t\t\tvar offset = $slideEl[0].swiperSlideOffset;\n\t\t\t\tvar rotate = -180 * progress;\n\t\t\t\tvar rotateY = rotate;\n\t\t\t\tvar rotateX = 0;\n\t\t\t\tvar tx = -offset;\n\t\t\t\tvar ty = 0;\n\t\t\t\tif (!swiper.isHorizontal()) {\n\t\t\t\t\tty = tx;\n\t\t\t\t\ttx = 0;\n\t\t\t\t\trotateX = -rotateY;\n\t\t\t\t\trotateY = 0;\n\t\t\t\t} else if (rtl) {\n\t\t\t\t\trotateY = -rotateY;\n\t\t\t\t}\n\n\t\t\t\t$slideEl[0].style.zIndex =\n\t\t\t\t\t-Math.abs(Math.round(progress)) + slides.length;\n\n\t\t\t\tif (swiper.params.flipEffect.slideShadows) {\n\t\t\t\t\t// Set shadows\n\t\t\t\t\tvar shadowBefore = swiper.isHorizontal()\n\t\t\t\t\t\t? $slideEl.find(\".swiper-slide-shadow-left\")\n\t\t\t\t\t\t: $slideEl.find(\".swiper-slide-shadow-top\");\n\t\t\t\t\tvar shadowAfter = swiper.isHorizontal()\n\t\t\t\t\t\t? $slideEl.find(\".swiper-slide-shadow-right\")\n\t\t\t\t\t\t: $slideEl.find(\".swiper-slide-shadow-bottom\");\n\t\t\t\t\tif (shadowBefore.length === 0) {\n\t\t\t\t\t\tshadowBefore = $(\n\t\t\t\t\t\t\t'<div class=\"swiper-slide-shadow-' +\n\t\t\t\t\t\t\t\t(swiper.isHorizontal() ? \"left\" : \"top\") +\n\t\t\t\t\t\t\t\t'\"></div>'\n\t\t\t\t\t\t);\n\t\t\t\t\t\t$slideEl.append(shadowBefore);\n\t\t\t\t\t}\n\t\t\t\t\tif (shadowAfter.length === 0) {\n\t\t\t\t\t\tshadowAfter = $(\n\t\t\t\t\t\t\t'<div class=\"swiper-slide-shadow-' +\n\t\t\t\t\t\t\t\t(swiper.isHorizontal() ? \"right\" : \"bottom\") +\n\t\t\t\t\t\t\t\t'\"></div>'\n\t\t\t\t\t\t);\n\t\t\t\t\t\t$slideEl.append(shadowAfter);\n\t\t\t\t\t}\n\t\t\t\t\tif (shadowBefore.length) {\n\t\t\t\t\t\tshadowBefore[0].style.opacity = Math.max(-progress, 0);\n\t\t\t\t\t}\n\t\t\t\t\tif (shadowAfter.length) {\n\t\t\t\t\t\tshadowAfter[0].style.opacity = Math.max(progress, 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$slideEl.transform(\n\t\t\t\t\t\"translate3d(\" +\n\t\t\t\t\t\ttx +\n\t\t\t\t\t\t\"px, \" +\n\t\t\t\t\t\tty +\n\t\t\t\t\t\t\"px, 0px) rotateX(\" +\n\t\t\t\t\t\trotateX +\n\t\t\t\t\t\t\"deg) rotateY(\" +\n\t\t\t\t\t\trotateY +\n\t\t\t\t\t\t\"deg)\"\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\tsetTransition: function setTransition(duration) {\n\t\t\tvar swiper = this;\n\t\t\tvar slides = swiper.slides;\n\t\t\tvar activeIndex = swiper.activeIndex;\n\t\t\tvar $wrapperEl = swiper.$wrapperEl;\n\t\t\tslides\n\t\t\t\t.transition(duration)\n\t\t\t\t.find(\n\t\t\t\t\t\".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left\"\n\t\t\t\t)\n\t\t\t\t.transition(duration);\n\t\t\tif (swiper.params.virtualTranslate && duration !== 0) {\n\t\t\t\tvar eventTriggered = false;\n\t\t\t\t// eslint-disable-next-line\n\t\t\t\tslides\n\t\t\t\t\t.eq(activeIndex)\n\t\t\t\t\t.transitionEnd(function onTransitionEnd() {\n\t\t\t\t\t\tif (eventTriggered) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!swiper || swiper.destroyed) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n\t\t\t\t\t\teventTriggered = true;\n\t\t\t\t\t\tswiper.animating = false;\n\t\t\t\t\t\tvar triggerEvents = [\n\t\t\t\t\t\t\t\"webkitTransitionEnd\",\n\t\t\t\t\t\t\t\"transitionend\",\n\t\t\t\t\t\t];\n\t\t\t\t\t\tfor (var i = 0; i < triggerEvents.length; i += 1) {\n\t\t\t\t\t\t\t$wrapperEl.trigger(triggerEvents[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\t\t},\n\t};\n\n\tvar EffectFlip = {\n\t\tname: \"effect-flip\",\n\t\tparams: {\n\t\t\tflipEffect: {\n\t\t\t\tslideShadows: true,\n\t\t\t\tlimitRotation: true,\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tflipEffect: {\n\t\t\t\t\tsetTranslate: Flip.setTranslate.bind(swiper),\n\t\t\t\t\tsetTransition: Flip.setTransition.bind(swiper),\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tbeforeInit: function beforeInit() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.effect !== \"flip\") {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.classNames.push(\n\t\t\t\t\tswiper.params.containerModifierClass + \"flip\"\n\t\t\t\t);\n\t\t\t\tswiper.classNames.push(\n\t\t\t\t\tswiper.params.containerModifierClass + \"3d\"\n\t\t\t\t);\n\t\t\t\tvar overwriteParams = {\n\t\t\t\t\tslidesPerView: 1,\n\t\t\t\t\tslidesPerColumn: 1,\n\t\t\t\t\tslidesPerGroup: 1,\n\t\t\t\t\twatchSlidesProgress: true,\n\t\t\t\t\tspaceBetween: 0,\n\t\t\t\t\tvirtualTranslate: true,\n\t\t\t\t};\n\t\t\t\tUtils.extend(swiper.params, overwriteParams);\n\t\t\t\tUtils.extend(swiper.originalParams, overwriteParams);\n\t\t\t},\n\t\t\tsetTranslate: function setTranslate() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.effect !== \"flip\") {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.flipEffect.setTranslate();\n\t\t\t},\n\t\t\tsetTransition: function setTransition(duration) {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.effect !== \"flip\") {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.flipEffect.setTransition(duration);\n\t\t\t},\n\t\t},\n\t};\n\n\tvar Coverflow = {\n\t\tsetTranslate: function setTranslate() {\n\t\t\tvar swiper = this;\n\t\t\tvar swiperWidth = swiper.width;\n\t\t\tvar swiperHeight = swiper.height;\n\t\t\tvar slides = swiper.slides;\n\t\t\tvar $wrapperEl = swiper.$wrapperEl;\n\t\t\tvar slidesSizesGrid = swiper.slidesSizesGrid;\n\t\t\tvar params = swiper.params.coverflowEffect;\n\t\t\tvar isHorizontal = swiper.isHorizontal();\n\t\t\tvar transform = swiper.translate;\n\t\t\tvar center = isHorizontal\n\t\t\t\t? -transform + swiperWidth / 2\n\t\t\t\t: -transform + swiperHeight / 2;\n\t\t\tvar rotate = isHorizontal ? params.rotate : -params.rotate;\n\t\t\tvar translate = params.depth;\n\t\t\t// Each slide offset from center\n\t\t\tfor (var i = 0, length = slides.length; i < length; i += 1) {\n\t\t\t\tvar $slideEl = slides.eq(i);\n\t\t\t\tvar slideSize = slidesSizesGrid[i];\n\t\t\t\tvar slideOffset = $slideEl[0].swiperSlideOffset;\n\t\t\t\tvar offsetMultiplier =\n\t\t\t\t\t((center - slideOffset - slideSize / 2) / slideSize) *\n\t\t\t\t\tparams.modifier;\n\n\t\t\t\tvar rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n\t\t\t\tvar rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n\t\t\t\t// var rotateZ = 0\n\t\t\t\tvar translateZ = -translate * Math.abs(offsetMultiplier);\n\n\t\t\t\tvar translateY = isHorizontal\n\t\t\t\t\t? 0\n\t\t\t\t\t: params.stretch * offsetMultiplier;\n\t\t\t\tvar translateX = isHorizontal\n\t\t\t\t\t? params.stretch * offsetMultiplier\n\t\t\t\t\t: 0;\n\n\t\t\t\t// Fix for ultra small values\n\t\t\t\tif (Math.abs(translateX) < 0.001) {\n\t\t\t\t\ttranslateX = 0;\n\t\t\t\t}\n\t\t\t\tif (Math.abs(translateY) < 0.001) {\n\t\t\t\t\ttranslateY = 0;\n\t\t\t\t}\n\t\t\t\tif (Math.abs(translateZ) < 0.001) {\n\t\t\t\t\ttranslateZ = 0;\n\t\t\t\t}\n\t\t\t\tif (Math.abs(rotateY) < 0.001) {\n\t\t\t\t\trotateY = 0;\n\t\t\t\t}\n\t\t\t\tif (Math.abs(rotateX) < 0.001) {\n\t\t\t\t\trotateX = 0;\n\t\t\t\t}\n\n\t\t\t\tvar slideTransform =\n\t\t\t\t\t\"translate3d(\" +\n\t\t\t\t\ttranslateX +\n\t\t\t\t\t\"px,\" +\n\t\t\t\t\ttranslateY +\n\t\t\t\t\t\"px,\" +\n\t\t\t\t\ttranslateZ +\n\t\t\t\t\t\"px) rotateX(\" +\n\t\t\t\t\trotateX +\n\t\t\t\t\t\"deg) rotateY(\" +\n\t\t\t\t\trotateY +\n\t\t\t\t\t\"deg)\";\n\n\t\t\t\t$slideEl.transform(slideTransform);\n\t\t\t\t$slideEl[0].style.zIndex =\n\t\t\t\t\t-Math.abs(Math.round(offsetMultiplier)) + 1;\n\t\t\t\tif (params.slideShadows) {\n\t\t\t\t\t// Set shadows\n\t\t\t\t\tvar $shadowBeforeEl = isHorizontal\n\t\t\t\t\t\t? $slideEl.find(\".swiper-slide-shadow-left\")\n\t\t\t\t\t\t: $slideEl.find(\".swiper-slide-shadow-top\");\n\t\t\t\t\tvar $shadowAfterEl = isHorizontal\n\t\t\t\t\t\t? $slideEl.find(\".swiper-slide-shadow-right\")\n\t\t\t\t\t\t: $slideEl.find(\".swiper-slide-shadow-bottom\");\n\t\t\t\t\tif ($shadowBeforeEl.length === 0) {\n\t\t\t\t\t\t$shadowBeforeEl = $(\n\t\t\t\t\t\t\t'<div class=\"swiper-slide-shadow-' +\n\t\t\t\t\t\t\t\t(isHorizontal ? \"left\" : \"top\") +\n\t\t\t\t\t\t\t\t'\"></div>'\n\t\t\t\t\t\t);\n\t\t\t\t\t\t$slideEl.append($shadowBeforeEl);\n\t\t\t\t\t}\n\t\t\t\t\tif ($shadowAfterEl.length === 0) {\n\t\t\t\t\t\t$shadowAfterEl = $(\n\t\t\t\t\t\t\t'<div class=\"swiper-slide-shadow-' +\n\t\t\t\t\t\t\t\t(isHorizontal ? \"right\" : \"bottom\") +\n\t\t\t\t\t\t\t\t'\"></div>'\n\t\t\t\t\t\t);\n\t\t\t\t\t\t$slideEl.append($shadowAfterEl);\n\t\t\t\t\t}\n\t\t\t\t\tif ($shadowBeforeEl.length) {\n\t\t\t\t\t\t$shadowBeforeEl[0].style.opacity =\n\t\t\t\t\t\t\toffsetMultiplier > 0 ? offsetMultiplier : 0;\n\t\t\t\t\t}\n\t\t\t\t\tif ($shadowAfterEl.length) {\n\t\t\t\t\t\t$shadowAfterEl[0].style.opacity =\n\t\t\t\t\t\t\t-offsetMultiplier > 0 ? -offsetMultiplier : 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set correct perspective for IE10\n\t\t\tif (Support.pointerEvents || Support.prefixedPointerEvents) {\n\t\t\t\tvar ws = $wrapperEl[0].style;\n\t\t\t\tws.perspectiveOrigin = center + \"px 50%\";\n\t\t\t}\n\t\t},\n\t\tsetTransition: function setTransition(duration) {\n\t\t\tvar swiper = this;\n\t\t\tswiper.slides\n\t\t\t\t.transition(duration)\n\t\t\t\t.find(\n\t\t\t\t\t\".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left\"\n\t\t\t\t)\n\t\t\t\t.transition(duration);\n\t\t},\n\t};\n\n\tvar EffectCoverflow = {\n\t\tname: \"effect-coverflow\",\n\t\tparams: {\n\t\t\tcoverflowEffect: {\n\t\t\t\trotate: 50,\n\t\t\t\tstretch: 0,\n\t\t\t\tdepth: 100,\n\t\t\t\tmodifier: 1,\n\t\t\t\tslideShadows: true,\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tcoverflowEffect: {\n\t\t\t\t\tsetTranslate: Coverflow.setTranslate.bind(swiper),\n\t\t\t\t\tsetTransition: Coverflow.setTransition.bind(swiper),\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tbeforeInit: function beforeInit() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.effect !== \"coverflow\") {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tswiper.classNames.push(\n\t\t\t\t\tswiper.params.containerModifierClass + \"coverflow\"\n\t\t\t\t);\n\t\t\t\tswiper.classNames.push(\n\t\t\t\t\tswiper.params.containerModifierClass + \"3d\"\n\t\t\t\t);\n\n\t\t\t\tswiper.params.watchSlidesProgress = true;\n\t\t\t\tswiper.originalParams.watchSlidesProgress = true;\n\t\t\t},\n\t\t\tsetTranslate: function setTranslate() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.effect !== \"coverflow\") {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.coverflowEffect.setTranslate();\n\t\t\t},\n\t\t\tsetTransition: function setTransition(duration) {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (swiper.params.effect !== \"coverflow\") {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.coverflowEffect.setTransition(duration);\n\t\t\t},\n\t\t},\n\t};\n\n\tvar Thumbs = {\n\t\tinit: function init() {\n\t\t\tvar swiper = this;\n\t\t\tvar ref = swiper.params;\n\t\t\tvar thumbsParams = ref.thumbs;\n\t\t\tvar SwiperClass = swiper.constructor;\n\t\t\tif (thumbsParams.swiper instanceof SwiperClass) {\n\t\t\t\tswiper.thumbs.swiper = thumbsParams.swiper;\n\t\t\t\tUtils.extend(swiper.thumbs.swiper.originalParams, {\n\t\t\t\t\twatchSlidesProgress: true,\n\t\t\t\t\tslideToClickedSlide: false,\n\t\t\t\t});\n\t\t\t\tUtils.extend(swiper.thumbs.swiper.params, {\n\t\t\t\t\twatchSlidesProgress: true,\n\t\t\t\t\tslideToClickedSlide: false,\n\t\t\t\t});\n\t\t\t} else if (Utils.isObject(thumbsParams.swiper)) {\n\t\t\t\tswiper.thumbs.swiper = new SwiperClass(\n\t\t\t\t\tUtils.extend({}, thumbsParams.swiper, {\n\t\t\t\t\t\twatchSlidesVisibility: true,\n\t\t\t\t\t\twatchSlidesProgress: true,\n\t\t\t\t\t\tslideToClickedSlide: false,\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t\tswiper.thumbs.swiperCreated = true;\n\t\t\t}\n\t\t\tswiper.thumbs.swiper.$el.addClass(\n\t\t\t\tswiper.params.thumbs.thumbsContainerClass\n\t\t\t);\n\t\t\tswiper.thumbs.swiper.on(\"tap\", swiper.thumbs.onThumbClick);\n\t\t},\n\t\tonThumbClick: function onThumbClick() {\n\t\t\tvar swiper = this;\n\t\t\tvar thumbsSwiper = swiper.thumbs.swiper;\n\t\t\tif (!thumbsSwiper) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar clickedIndex = thumbsSwiper.clickedIndex;\n\t\t\tvar clickedSlide = thumbsSwiper.clickedSlide;\n\t\t\tif (\n\t\t\t\tclickedSlide &&\n\t\t\t\t$(clickedSlide).hasClass(\n\t\t\t\t\tswiper.params.thumbs.slideThumbActiveClass\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (typeof clickedIndex === \"undefined\" || clickedIndex === null) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar slideToIndex;\n\t\t\tif (thumbsSwiper.params.loop) {\n\t\t\t\tslideToIndex = parseInt(\n\t\t\t\t\t$(thumbsSwiper.clickedSlide).attr(\n\t\t\t\t\t\t\"data-swiper-slide-index\"\n\t\t\t\t\t),\n\t\t\t\t\t10\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tslideToIndex = clickedIndex;\n\t\t\t}\n\t\t\tif (swiper.params.loop) {\n\t\t\t\tvar currentIndex = swiper.activeIndex;\n\t\t\t\tif (\n\t\t\t\t\tswiper.slides\n\t\t\t\t\t\t.eq(currentIndex)\n\t\t\t\t\t\t.hasClass(swiper.params.slideDuplicateClass)\n\t\t\t\t) {\n\t\t\t\t\tswiper.loopFix();\n\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\tswiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n\t\t\t\t\tcurrentIndex = swiper.activeIndex;\n\t\t\t\t}\n\t\t\t\tvar prevIndex = swiper.slides\n\t\t\t\t\t.eq(currentIndex)\n\t\t\t\t\t.prevAll('[data-swiper-slide-index=\"' + slideToIndex + '\"]')\n\t\t\t\t\t.eq(0)\n\t\t\t\t\t.index();\n\t\t\t\tvar nextIndex = swiper.slides\n\t\t\t\t\t.eq(currentIndex)\n\t\t\t\t\t.nextAll('[data-swiper-slide-index=\"' + slideToIndex + '\"]')\n\t\t\t\t\t.eq(0)\n\t\t\t\t\t.index();\n\t\t\t\tif (typeof prevIndex === \"undefined\") {\n\t\t\t\t\tslideToIndex = nextIndex;\n\t\t\t\t} else if (typeof nextIndex === \"undefined\") {\n\t\t\t\t\tslideToIndex = prevIndex;\n\t\t\t\t} else if (\n\t\t\t\t\tnextIndex - currentIndex <\n\t\t\t\t\tcurrentIndex - prevIndex\n\t\t\t\t) {\n\t\t\t\t\tslideToIndex = nextIndex;\n\t\t\t\t} else {\n\t\t\t\t\tslideToIndex = prevIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t\tswiper.slideTo(slideToIndex);\n\t\t},\n\t\tupdate: function update(initial) {\n\t\t\tvar swiper = this;\n\t\t\tvar thumbsSwiper = swiper.thumbs.swiper;\n\t\t\tif (!thumbsSwiper) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar slidesPerView =\n\t\t\t\tthumbsSwiper.params.slidesPerView === \"auto\"\n\t\t\t\t\t? thumbsSwiper.slidesPerViewDynamic()\n\t\t\t\t\t: thumbsSwiper.params.slidesPerView;\n\n\t\t\tif (swiper.realIndex !== thumbsSwiper.realIndex) {\n\t\t\t\tvar currentThumbsIndex = thumbsSwiper.activeIndex;\n\t\t\t\tvar newThumbsIndex;\n\t\t\t\tif (thumbsSwiper.params.loop) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthumbsSwiper.slides\n\t\t\t\t\t\t\t.eq(currentThumbsIndex)\n\t\t\t\t\t\t\t.hasClass(thumbsSwiper.params.slideDuplicateClass)\n\t\t\t\t\t) {\n\t\t\t\t\t\tthumbsSwiper.loopFix();\n\t\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\t\tthumbsSwiper._clientLeft =\n\t\t\t\t\t\t\tthumbsSwiper.$wrapperEl[0].clientLeft;\n\t\t\t\t\t\tcurrentThumbsIndex = thumbsSwiper.activeIndex;\n\t\t\t\t\t}\n\t\t\t\t\t// Find actual thumbs index to slide to\n\t\t\t\t\tvar prevThumbsIndex = thumbsSwiper.slides\n\t\t\t\t\t\t.eq(currentThumbsIndex)\n\t\t\t\t\t\t.prevAll(\n\t\t\t\t\t\t\t'[data-swiper-slide-index=\"' +\n\t\t\t\t\t\t\t\tswiper.realIndex +\n\t\t\t\t\t\t\t\t'\"]'\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.eq(0)\n\t\t\t\t\t\t.index();\n\t\t\t\t\tvar nextThumbsIndex = thumbsSwiper.slides\n\t\t\t\t\t\t.eq(currentThumbsIndex)\n\t\t\t\t\t\t.nextAll(\n\t\t\t\t\t\t\t'[data-swiper-slide-index=\"' +\n\t\t\t\t\t\t\t\tswiper.realIndex +\n\t\t\t\t\t\t\t\t'\"]'\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.eq(0)\n\t\t\t\t\t\t.index();\n\t\t\t\t\tif (typeof prevThumbsIndex === \"undefined\") {\n\t\t\t\t\t\tnewThumbsIndex = nextThumbsIndex;\n\t\t\t\t\t} else if (typeof nextThumbsIndex === \"undefined\") {\n\t\t\t\t\t\tnewThumbsIndex = prevThumbsIndex;\n\t\t\t\t\t} else if (\n\t\t\t\t\t\tnextThumbsIndex - currentThumbsIndex ===\n\t\t\t\t\t\tcurrentThumbsIndex - prevThumbsIndex\n\t\t\t\t\t) {\n\t\t\t\t\t\tnewThumbsIndex = currentThumbsIndex;\n\t\t\t\t\t} else if (\n\t\t\t\t\t\tnextThumbsIndex - currentThumbsIndex <\n\t\t\t\t\t\tcurrentThumbsIndex - prevThumbsIndex\n\t\t\t\t\t) {\n\t\t\t\t\t\tnewThumbsIndex = nextThumbsIndex;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewThumbsIndex = prevThumbsIndex;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tnewThumbsIndex = swiper.realIndex;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tthumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) <\n\t\t\t\t\t0\n\t\t\t\t) {\n\t\t\t\t\tif (thumbsSwiper.params.centeredSlides) {\n\t\t\t\t\t\tif (newThumbsIndex > currentThumbsIndex) {\n\t\t\t\t\t\t\tnewThumbsIndex =\n\t\t\t\t\t\t\t\tnewThumbsIndex -\n\t\t\t\t\t\t\t\tMath.floor(slidesPerView / 2) +\n\t\t\t\t\t\t\t\t1;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnewThumbsIndex =\n\t\t\t\t\t\t\t\tnewThumbsIndex +\n\t\t\t\t\t\t\t\tMath.floor(slidesPerView / 2) -\n\t\t\t\t\t\t\t\t1;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (newThumbsIndex > currentThumbsIndex) {\n\t\t\t\t\t\tnewThumbsIndex = newThumbsIndex - slidesPerView + 1;\n\t\t\t\t\t}\n\t\t\t\t\tthumbsSwiper.slideTo(\n\t\t\t\t\t\tnewThumbsIndex,\n\t\t\t\t\t\tinitial ? 0 : undefined\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Activate thumbs\n\t\t\tvar thumbsToActivate = 1;\n\t\t\tvar thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n\t\t\tif (\n\t\t\t\tswiper.params.slidesPerView > 1 &&\n\t\t\t\t!swiper.params.centeredSlides\n\t\t\t) {\n\t\t\t\tthumbsToActivate = swiper.params.slidesPerView;\n\t\t\t}\n\n\t\t\tthumbsSwiper.slides.removeClass(thumbActiveClass);\n\t\t\tif (thumbsSwiper.params.loop) {\n\t\t\t\tfor (var i = 0; i < thumbsToActivate; i += 1) {\n\t\t\t\t\tthumbsSwiper.$wrapperEl\n\t\t\t\t\t\t.children(\n\t\t\t\t\t\t\t'[data-swiper-slide-index=\"' +\n\t\t\t\t\t\t\t\t(swiper.realIndex + i) +\n\t\t\t\t\t\t\t\t'\"]'\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.addClass(thumbActiveClass);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (var i$1 = 0; i$1 < thumbsToActivate; i$1 += 1) {\n\t\t\t\t\tthumbsSwiper.slides\n\t\t\t\t\t\t.eq(swiper.realIndex + i$1)\n\t\t\t\t\t\t.addClass(thumbActiveClass);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t};\n\tvar Thumbs$1 = {\n\t\tname: \"thumbs\",\n\t\tparams: {\n\t\t\tthumbs: {\n\t\t\t\tswiper: null,\n\t\t\t\tslideThumbActiveClass: \"swiper-slide-thumb-active\",\n\t\t\t\tthumbsContainerClass: \"swiper-container-thumbs\",\n\t\t\t},\n\t\t},\n\t\tcreate: function create() {\n\t\t\tvar swiper = this;\n\t\t\tUtils.extend(swiper, {\n\t\t\t\tthumbs: {\n\t\t\t\t\tswiper: null,\n\t\t\t\t\tinit: Thumbs.init.bind(swiper),\n\t\t\t\t\tupdate: Thumbs.update.bind(swiper),\n\t\t\t\t\tonThumbClick: Thumbs.onThumbClick.bind(swiper),\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\ton: {\n\t\t\tbeforeInit: function beforeInit() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tvar ref = swiper.params;\n\t\t\t\tvar thumbs = ref.thumbs;\n\t\t\t\tif (!thumbs || !thumbs.swiper) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.thumbs.init();\n\t\t\t\tswiper.thumbs.update(true);\n\t\t\t},\n\t\t\tslideChange: function slideChange() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.thumbs.swiper) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.thumbs.update();\n\t\t\t},\n\t\t\tupdate: function update() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.thumbs.swiper) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.thumbs.update();\n\t\t\t},\n\t\t\tresize: function resize() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.thumbs.swiper) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.thumbs.update();\n\t\t\t},\n\t\t\tobserverUpdate: function observerUpdate() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tif (!swiper.thumbs.swiper) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswiper.thumbs.update();\n\t\t\t},\n\t\t\tsetTransition: function setTransition(duration) {\n\t\t\t\tvar swiper = this;\n\t\t\t\tvar thumbsSwiper = swiper.thumbs.swiper;\n\t\t\t\tif (!thumbsSwiper) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthumbsSwiper.setTransition(duration);\n\t\t\t},\n\t\t\tbeforeDestroy: function beforeDestroy() {\n\t\t\t\tvar swiper = this;\n\t\t\t\tvar thumbsSwiper = swiper.thumbs.swiper;\n\t\t\t\tif (!thumbsSwiper) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (swiper.thumbs.swiperCreated && thumbsSwiper) {\n\t\t\t\t\tthumbsSwiper.destroy();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t};\n\n\t// Swiper Class\n\n\tvar components = [\n\t\tDevice$1,\n\t\tSupport$1,\n\t\tBrowser$1,\n\t\tResize,\n\t\tObserver$1,\n\t\tVirtual$1,\n\t\tKeyboard$1,\n\t\tMousewheel$1,\n\t\tNavigation$1,\n\t\tPagination$1,\n\t\tScrollbar$1,\n\t\tParallax$1,\n\t\tZoom$1,\n\t\tLazy$1,\n\t\tController$1,\n\t\tA11y,\n\t\tHistory$1,\n\t\tHashNavigation$1,\n\t\tAutoplay$1,\n\t\tEffectFade,\n\t\tEffectCube,\n\t\tEffectFlip,\n\t\tEffectCoverflow,\n\t\tThumbs$1,\n\t];\n\n\tif (typeof Swiper.use === \"undefined\") {\n\t\tSwiper.use = Swiper.Class.use;\n\t\tSwiper.installModule = Swiper.Class.installModule;\n\t}\n\n\tSwiper.use(components);\n\n\treturn Swiper;\n});\n","/*!\n * clipboard.js v1.7.1\n * https://zenorocha.github.io/clipboard.js\n *\n * Licensed MIT © Zeno Rocha\n */\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Clipboard = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n},{}],2:[function(require,module,exports){\nvar closest = require('./closest');\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n},{\"./closest\":1}],3:[function(require,module,exports){\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n},{}],4:[function(require,module,exports){\nvar is = require('./is');\nvar delegate = require('delegate');\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n},{\"./is\":3,\"delegate\":2}],5:[function(require,module,exports){\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n},{}],6:[function(require,module,exports){\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n\n},{}],7:[function(require,module,exports){\n(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'select'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, require('select'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, global.select);\n global.clipboardAction = mod.exports;\n }\n})(this, function (module, _select) {\n 'use strict';\n\n var _select2 = _interopRequireDefault(_select);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var ClipboardAction = function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n\n this.selectedText = '';\n }\n }, {\n key: 'initSelection',\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n }, {\n key: 'selectFake',\n value: function selectFake() {\n var _this = this;\n\n var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n this.removeFake();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n this.fakeElem = document.createElement('textarea');\n // Prevent zooming on iOS\n this.fakeElem.style.fontSize = '12pt';\n // Reset box model\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0';\n // Move element out of screen horizontally\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = yPosition + 'px';\n\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n\n this.container.appendChild(this.fakeElem);\n\n this.selectedText = (0, _select2.default)(this.fakeElem);\n this.copyText();\n }\n }, {\n key: 'removeFake',\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n }, {\n key: 'selectTarget',\n value: function selectTarget() {\n this.selectedText = (0, _select2.default)(this.target);\n this.copyText();\n }\n }, {\n key: 'copyText',\n value: function copyText() {\n var succeeded = void 0;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n }, {\n key: 'handleResult',\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n }, {\n key: 'clearSelection',\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: 'action',\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n },\n get: function get() {\n return this._action;\n }\n }, {\n key: 'target',\n set: function set(target) {\n if (target !== undefined) {\n if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n },\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n }();\n\n module.exports = ClipboardAction;\n});\n\n},{\"select\":5}],8:[function(require,module,exports){\n(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', './clipboard-action', 'tiny-emitter', 'good-listener'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, require('./clipboard-action'), require('tiny-emitter'), require('good-listener'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, global.clipboardAction, global.tinyEmitter, global.goodListener);\n global.clipboard = mod.exports;\n }\n})(this, function (module, _clipboardAction, _tinyEmitter, _goodListener) {\n 'use strict';\n\n var _clipboardAction2 = _interopRequireDefault(_clipboardAction);\n\n var _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);\n\n var _goodListener2 = _interopRequireDefault(_goodListener);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = _typeof(options.container) === 'object' ? options.container : document.body;\n }\n }, {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n }, {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new _clipboardAction2.default({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n }, {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n }, {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n }, {\n key: 'defaultText',\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n\n return support;\n }\n }]);\n\n return Clipboard;\n }(_tinyEmitter2.default);\n\n /**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n function getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-' + suffix;\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n }\n\n module.exports = Clipboard;\n});\n\n},{\"./clipboard-action\":7,\"good-listener\":4,\"tiny-emitter\":6}]},{},[8])(8)\n});","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var idPrefix = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.tt) {\n layers[i - 1].td = layerData.tt;\n }\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n xhr.open('GET', path, true);\n } catch (error) {\n xhr.open('GET', fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i]\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n this.setParams(params);\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function () {\n this.renderer.updateContainerSize();\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.renderer = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n case 'drawnFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var PropertyFactory = function () {\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n function getProp(elem, data, type, mult, container) {\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.9.1';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString;\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src.replace(/^[^\\?]+\\??/, ''); // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n if (!this.a.k) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n var zeroWidthJoiner = [65039, 8205];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(def, fontData) {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n var fontProps = getFontProperties(fontData);\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n var tCanvasHelper = createTag('canvas').getContext('2d');\n tCanvasHelper.font = fontData.fWeight + ' ' + fontData.fStyle + ' 100px ' + fontData.fFamily; // tCanvasHelper.font = ' 100px '+ fontData.fFamily;\n\n return tHelper;\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(defs, fontArr[i]);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName);\n\n var index = _char2.charCodeAt(0);\n\n if (!fontData.cache[index + 1]) {\n var tHelper = fontData.helper; // Canvas version\n // fontData.cache[index] = tHelper.measureText(char).width / 100;\n // SVG version\n // console.log(tHelper.getBBox().width)\n\n if (_char2 === ' ') {\n tHelper.textContent = '|' + _char2 + '|';\n var doubleSize = tHelper.getComputedTextLength();\n tHelper.textContent = '||';\n var singleSize = tHelper.getComputedTextLength();\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n } else {\n tHelper.textContent = _char2;\n fontData.cache[index + 1] = tHelper.getComputedTextLength() / 100;\n }\n }\n\n return fontData.cache[index + 1] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\n if (!secondCharCode) {\n return firstCharCode === zeroWidthJoiner[1];\n }\n\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isCombinedCharacter = isCombinedCharacter;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _prevValue;\n\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (stringValue !== _prevValue) {\n elem.textProperty.currentData.t = _prevValue;\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this.audio.volume(volumeValue);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _opMdf: false,\n mat: new Matrix()\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n return ob;\n }();\n\n function SVGTintFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', 'f1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', 'f2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n\n if (filterManager.effectElements[2].p.v !== 100 || filterManager.effectElements[2].p.k) {\n var feMerge = createNS('feMerge');\n filter.appendChild(feMerge);\n var feMergeNode;\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', 'SourceGraphic');\n feMerge.appendChild(feMergeNode);\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', 'f2');\n feMerge.appendChild(feMergeNode);\n }\n }\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(elem, filterManager) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', 'f1');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB); // var opacity = this.filterManager.effectElements[2].p.v/100;\n // this.matrixFilter.setAttribute('values',(colorWhite[0]- colorBlack[0])+' 0 0 0 '+ colorBlack[0] +' '+ (colorWhite[1]- colorBlack[1]) +' 0 0 0 '+ colorBlack[1] +' '+ (colorWhite[2]- colorBlack[2]) +' 0 0 0 '+ colorBlack[2] +' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer');\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n }\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n }\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n }\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n feComponentTransfer = createNS('feComponentTransfer');\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager) {\n var filterSize = filterManager.container.globalData.renderConfig.filterSize;\n filter.setAttribute('x', filterSize.x);\n filter.setAttribute('y', filterSize.y);\n filter.setAttribute('width', filterSize.width);\n filter.setAttribute('height', filterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', 'drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', 'drop_shadow_1');\n feOffset.setAttribute('result', 'drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', 'drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', 'drop_shadow_3');\n feComposite.setAttribute('in2', 'drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', 'drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = createNS('feMerge');\n filter.appendChild(feMerge);\n var feMergeNode;\n feMergeNode = createNS('feMergeNode');\n feMerge.appendChild(feMergeNode);\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', 'SourceGraphic');\n this.feMergeNode = feMergeNode;\n this.feMerge = feMerge;\n this.originalNodeAdded = false;\n feMerge.appendChild(feMergeNode);\n }\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n /* if(forceRender || this.filterManager.effectElements[5].p._mdf){\r\n if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n this.feMerge.removeChild(this.feMergeNode);\r\n this.originalNodeAdded = false;\r\n } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n this.feMerge.appendChild(this.feMergeNode);\r\n this.originalNodeAdded = true;\r\n }\r\n } */\n\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n var registeredEffects = {};\n\n function SVGEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem);\n\n if (registeredEffects[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (elem.data.ef[i].ty === 20) {\n count += 1;\n filterManager = new SVGTintFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 21) {\n count += 1;\n filterManager = new SVGFillFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 22) {\n filterManager = new SVGStrokeEffect(elem, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 23) {\n count += 1;\n filterManager = new SVGTritoneFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 24) {\n count += 1;\n filterManager = new SVGProLevelsFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 25) {\n count += 1;\n filterManager = new SVGDropShadowEffect(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 28) {\n // count += 1;\n filterManager = new SVGMatte3Effect(fil, elem.effectsManager.effectElements[i], elem);\n } else if (elem.data.ef[i].ty === 29) {\n count += 1;\n filterManager = new SVGGaussianBlurEffect(fil, elem.effectsManager.effectElements[i]);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n function registerEffect(id, effect, countsAsEffect) {\n registeredEffects[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n var filId;\n var fil;\n var gg;\n\n if (this.data.td) {\n if (this.data.td == 3 || this.data.td == 1) {\n // eslint-disable-line eqeqeq\n var masker = createNS('mask');\n masker.setAttribute('id', this.layerId);\n masker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq\n\n masker.appendChild(this.layerElement);\n layerElementParent = masker;\n this.globalData.defs.appendChild(masker); // This is only for IE and Edge when mask if of type alpha\n\n if (!featureSupport.maskType && this.data.td == 1) {\n // eslint-disable-line eqeqeq\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (this.data.td == 2) {\n // eslint-disable-line eqeqeq\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', this.layerId);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n // This solution doesn't work on Android when meta tag with viewport attribute is set\n\n /* var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n fil.appendChild(feColorMatrix); */\n /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n maskGrouper.appendChild(this.layerElement);\n layerElementParent = maskGrouper;\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._matMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var props;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n props = itemData.transformers[k].mProps.v.props;\n mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n\n while (i < len) {\n charCode = text.charCodeAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n shouldCombine = false;\n } else {\n charactersArray.push(text.substr(i, 2));\n }\n\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\n shouldCombine = true;\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n shouldCombine = true;\n } else {\n charactersArray.push(text.charAt(i));\n }\n\n i += 1;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement;\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = charData.data;\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement);\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n if (!this.elements[pos - 1] || this.elements[pos - 1] === true) {\n this.buildItem(pos - 1);\n this.addPendingElement(element);\n } else {\n element.setMatte(elements[pos - 1].layerId);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n element.setMatte(this.elements[i - 1].layerId);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function CVContextData() {\n this.saved = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n this.cO = 1;\n var i;\n var len = 15;\n this.savedOp = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = len;\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var currentSavedOp = this.savedOp;\n this.savedOp = createTypedArray('float32', newLength);\n this.savedOp.set(currentSavedOp);\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.cO = 1;\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n var props;\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n props = sequence.transforms[i].transform.mProps.v.props;\n sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n function CVEffects() {}\n\n CVEffects.prototype.renderFrame = function () {};\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n this.canvasContext = this.globalData.canvasContext;\n this.renderableEffectsManager = new CVEffects(this);\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n ctx.lineWidth = currentStyle.wi;\n ctx.lineCap = currentStyle.lc;\n ctx.lineJoin = currentStyle.lj;\n ctx.miterLimit = currentStyle.ml || 0;\n } else {\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n ctx.stroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n ctx.fill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n this.globalData.renderer.save();\n this.globalData.renderer.ctxTransform(renderedLetter.p);\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n lastFill = renderedLetter.fc;\n ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.fillStyle = this.data.sc;\n ctx.fillRect(0, 0, this.data.sw, this.data.sh); //\n };\n\n function CanvasRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || ''\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n return;\n }\n\n this.transformMat.cloneFromProps(props);\n var cProps = this.contextData.cTr.props;\n this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\n\n this.contextData.cTr.cloneFromProps(this.transformMat.props);\n var trProps = this.contextData.cTr.props;\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n /* if(op === 1){\r\n return;\r\n } */\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n this.globalData.currentGlobalAlpha = this.contextData.cO;\n return;\n }\n\n this.contextData.cO *= op < 0 ? 0 : op;\n\n if (this.globalData.currentGlobalAlpha !== this.contextData.cO) {\n this.canvasContext.globalAlpha = this.contextData.cO;\n this.globalData.currentGlobalAlpha = this.contextData.cO;\n }\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.save();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.save();\n }\n\n var props = this.contextData.cTr.props;\n\n if (this.contextData._length <= this.contextData.cArrPos) {\n this.contextData.duplicate();\n }\n\n var i;\n var arr = this.contextData.saved[this.contextData.cArrPos];\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = props[i];\n }\n\n this.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;\n this.contextData.cArrPos += 1;\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.restore();\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.cArrPos -= 1;\n var popped = this.contextData.saved[this.contextData.cArrPos];\n var i;\n var arr = this.contextData.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = popped[i];\n }\n\n this.canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\n popped = this.contextData.savedOp[this.contextData.cArrPos];\n this.contextData.cO = popped;\n\n if (this.globalData.currentGlobalAlpha !== popped) {\n this.canvasContext.globalAlpha = popped;\n this.globalData.currentGlobalAlpha = popped;\n }\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function () {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n this.animationItem.container.setAttribute('width', elementWidth * this.renderConfig.dpr);\n this.animationItem.container.setAttribute('height', elementHeight * this.renderConfig.dpr);\n } else {\n elementWidth = this.canvasContext.canvas.width * this.renderConfig.dpr;\n elementHeight = this.canvasContext.canvas.height * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i<len;i+=1){\r\n if(this.elements[i] && this.elements[i].data.ty === 0){\r\n this.elements[i].resize(this.globalData.transformCanvas);\r\n }\r\n } */\n\n this.ctxTransform(this.transformCanvas.props);\n this.canvasContext.beginPath();\n this.canvasContext.rect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n this.canvasContext.closePath();\n this.canvasContext.clip();\n this.renderFrame(this.renderedFrame, true);\n };\n\n CanvasRendererBase.prototype.destroy = function () {\n if (this.renderConfig.clearCanvas && this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || ''\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n this.elements[i].destroy();\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$1(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n initialize$2(BMMath);\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof(a);\n\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n if (tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath];\n return ob;\n }();\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect(20, SVGTintFilter, true);\n registerEffect(21, SVGFillFilter, true);\n registerEffect(22, SVGStrokeEffect, false);\n registerEffect(23, SVGTritoneFilter, true);\n registerEffect(24, SVGProLevelsFilter, true);\n registerEffect(25, SVGDropShadowEffect, true);\n registerEffect(28, SVGMatte3Effect, false);\n registerEffect(29, SVGGaussianBlurEffect, true);\n\n return lottie;\n\n}));\n","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n(function() {\n'use strict';\n\n// Exit early if we're not running in a browser.\nif (typeof window !== 'object') {\n return;\n}\n\n// Exit early if all IntersectionObserver and IntersectionObserverEntry\n// features are natively supported.\nif ('IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype,\n 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n}\n\n/**\n * Returns the embedding frame element, if any.\n * @param {!Document} doc\n * @return {!Element}\n */\nfunction getFrameElement(doc) {\n try {\n return doc.defaultView && doc.defaultView.frameElement || null;\n } catch (e) {\n // Ignore the error.\n return null;\n }\n}\n\n/**\n * A local reference to the root document.\n */\nvar document = (function(startDoc) {\n var doc = startDoc;\n var frame = getFrameElement(doc);\n while (frame) {\n doc = frame.ownerDocument;\n frame = getFrameElement(doc);\n }\n return doc;\n})(window.document);\n\n/**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\nvar registry = [];\n\n/**\n * The signal updater for cross-origin intersection. When not null, it means\n * that the polyfill is configured to work in a cross-origin mode.\n * @type {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\nvar crossOriginUpdater = null;\n\n/**\n * The current cross-origin intersection. Only used in the cross-origin mode.\n * @type {DOMRect|ClientRect}\n */\nvar crossOriginRect = null;\n\n\n/**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\nfunction IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = ensureDOMRect(entry.rootBounds);\n this.boundingClientRect = ensureDOMRect(entry.boundingClientRect);\n this.intersectionRect = ensureDOMRect(entry.intersectionRect || getEmptyRect());\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n}\n\n\n/**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\nfunction IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (\n options.root &&\n options.root.nodeType != 1 &&\n options.root.nodeType != 9\n ) {\n throw new Error('root must be a Document or Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function(margin) {\n return margin.value + margin.unit;\n }).join(' ');\n\n /** @private @const {!Array<!Document>} */\n this._monitoringDocuments = [];\n /** @private @const {!Array<function()>} */\n this._monitoringUnsubscribes = [];\n}\n\n\n/**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\nIntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n\n/**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\nIntersectionObserver.prototype.POLL_INTERVAL = null;\n\n/**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\nIntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n\n\n/**\n * Sets up the polyfill in the cross-origin mode. The result is the\n * updater function that accepts two arguments: `boundingClientRect` and\n * `intersectionRect` - just as these fields would be available to the\n * parent via `IntersectionObserverEntry`. This function should be called\n * each time the iframe receives intersection information from the parent\n * window, e.g. via messaging.\n * @return {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\nIntersectionObserver._setupCrossOriginUpdater = function() {\n if (!crossOriginUpdater) {\n /**\n * @param {DOMRect|ClientRect} boundingClientRect\n * @param {DOMRect|ClientRect} intersectionRect\n */\n crossOriginUpdater = function(boundingClientRect, intersectionRect) {\n if (!boundingClientRect || !intersectionRect) {\n crossOriginRect = getEmptyRect();\n } else {\n crossOriginRect = convertFromParentRect(boundingClientRect, intersectionRect);\n }\n registry.forEach(function(observer) {\n observer._checkForIntersections();\n });\n };\n }\n return crossOriginUpdater;\n};\n\n\n/**\n * Resets the cross-origin mode.\n */\nIntersectionObserver._resetCrossOriginUpdater = function() {\n crossOriginUpdater = null;\n crossOriginRect = null;\n};\n\n\n/**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.observe = function(target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function(item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({element: target, entry: null});\n this._monitorIntersections(target.ownerDocument);\n this._checkForIntersections();\n};\n\n\n/**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.unobserve = function(target) {\n this._observationTargets =\n this._observationTargets.filter(function(item) {\n return item.element != target;\n });\n this._unmonitorIntersections(target.ownerDocument);\n if (this._observationTargets.length == 0) {\n this._unregisterInstance();\n }\n};\n\n\n/**\n * Stops observing all target elements for intersection changes.\n */\nIntersectionObserver.prototype.disconnect = function() {\n this._observationTargets = [];\n this._unmonitorAllIntersections();\n this._unregisterInstance();\n};\n\n\n/**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\n\n/**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function(t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n};\n\n\n/**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array<Object>} An array of margin objects with the keys\n * value and unit.\n */\nIntersectionObserver.prototype._parseRootMargin = function(opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function(margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n return {value: parseFloat(parts[1]), unit: parts[2]};\n });\n\n // Handles shorthand.\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n\n return margins;\n};\n\n\n/**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._monitorIntersections = function(doc) {\n var win = doc.defaultView;\n if (!win) {\n // Already destroyed.\n return;\n }\n if (this._monitoringDocuments.indexOf(doc) != -1) {\n // Already monitoring.\n return;\n }\n\n // Private state for monitoring.\n var callback = this._checkForIntersections;\n var monitoringInterval = null;\n var domObserver = null;\n\n // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n if (this.POLL_INTERVAL) {\n monitoringInterval = win.setInterval(callback, this.POLL_INTERVAL);\n } else {\n addEvent(win, 'resize', callback, true);\n addEvent(doc, 'scroll', callback, true);\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in win) {\n domObserver = new win.MutationObserver(callback);\n domObserver.observe(doc, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n\n this._monitoringDocuments.push(doc);\n this._monitoringUnsubscribes.push(function() {\n // Get the window object again. When a friendly iframe is destroyed, it\n // will be null.\n var win = doc.defaultView;\n\n if (win) {\n if (monitoringInterval) {\n win.clearInterval(monitoringInterval);\n }\n removeEvent(win, 'resize', callback, true);\n }\n\n removeEvent(doc, 'scroll', callback, true);\n if (domObserver) {\n domObserver.disconnect();\n }\n });\n\n // Also monitor the parent.\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n if (frame) {\n this._monitorIntersections(frame.ownerDocument);\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._unmonitorIntersections = function(doc) {\n var index = this._monitoringDocuments.indexOf(doc);\n if (index == -1) {\n return;\n }\n\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n\n // Check if any dependent targets are still remaining.\n var hasDependentTargets =\n this._observationTargets.some(function(item) {\n var itemDoc = item.element.ownerDocument;\n // Target is in this context.\n if (itemDoc == doc) {\n return true;\n }\n // Target is nested in this context.\n while (itemDoc && itemDoc != rootDoc) {\n var frame = getFrameElement(itemDoc);\n itemDoc = frame && frame.ownerDocument;\n if (itemDoc == doc) {\n return true;\n }\n }\n return false;\n });\n if (hasDependentTargets) {\n return;\n }\n\n // Unsubscribe.\n var unsubscribe = this._monitoringUnsubscribes[index];\n this._monitoringDocuments.splice(index, 1);\n this._monitoringUnsubscribes.splice(index, 1);\n unsubscribe();\n\n // Also unmonitor the parent.\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n if (frame) {\n this._unmonitorIntersections(frame.ownerDocument);\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._unmonitorAllIntersections = function() {\n var unsubscribes = this._monitoringUnsubscribes.slice(0);\n this._monitoringDocuments.length = 0;\n this._monitoringUnsubscribes.length = 0;\n for (var i = 0; i < unsubscribes.length; i++) {\n unsubscribes[i]();\n }\n};\n\n\n/**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\nIntersectionObserver.prototype._checkForIntersections = function() {\n if (!this.root && crossOriginUpdater && !crossOriginRect) {\n // Cross origin monitoring, but no initial data available yet.\n return;\n }\n\n var rootIsInDom = this._rootIsInDom();\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function(item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n var rootContainsTarget = this._rootContainsTarget(target);\n var oldEntry = item.entry;\n var intersectionRect = rootIsInDom && rootContainsTarget &&\n this._computeTargetAndRootIntersection(target, targetRect, rootRect);\n\n var rootBounds = null;\n if (!this._rootContainsTarget(target)) {\n rootBounds = getEmptyRect();\n } else if (!crossOriginUpdater || this.root) {\n rootBounds = rootRect;\n }\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootBounds,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n};\n\n\n/**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} targetRect The bounding rect of the target.\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\nIntersectionObserver.prototype._computeTargetAndRootIntersection =\n function(target, targetRect, rootRect) {\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot && parent) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ?\n window.getComputedStyle(parent) : {};\n\n // If the parent isn't displayed, an intersection can't happen.\n if (parentComputedStyle.display == 'none') return null;\n\n if (parent == this.root || parent.nodeType == /* DOCUMENT */ 9) {\n atRoot = true;\n if (parent == this.root || parent == document) {\n if (crossOriginUpdater && !this.root) {\n if (!crossOriginRect ||\n crossOriginRect.width == 0 && crossOriginRect.height == 0) {\n // A 0-size cross-origin intersection means no-intersection.\n parent = null;\n parentRect = null;\n intersectionRect = null;\n } else {\n parentRect = crossOriginRect;\n }\n } else {\n parentRect = rootRect;\n }\n } else {\n // Check if there's a frame that can be navigated to.\n var frame = getParentNode(parent);\n var frameRect = frame && getBoundingClientRect(frame);\n var frameIntersect =\n frame &&\n this._computeTargetAndRootIntersection(frame, frameRect, rootRect);\n if (frameRect && frameIntersect) {\n parent = frame;\n parentRect = convertFromParentRect(frameRect, frameIntersect);\n } else {\n parent = null;\n intersectionRect = null;\n }\n }\n } else {\n // If the element has a non-visible overflow, and it's not the <body>\n // or <html> element, update the intersection rect.\n // Note: <body> and <html> cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n var doc = parent.ownerDocument;\n if (parent != doc.body &&\n parent != doc.documentElement &&\n parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n }\n\n // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n }\n if (!intersectionRect) break;\n parent = parent && getParentNode(parent);\n }\n return intersectionRect;\n};\n\n\n/**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {ClientRect} The expanded root rect.\n * @private\n */\nIntersectionObserver.prototype._getRootRect = function() {\n var rootRect;\n if (this.root && !isDoc(this.root)) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use <html>/<body> instead of window since scroll bars affect size.\n var doc = isDoc(this.root) ? this.root : document;\n var html = doc.documentElement;\n var body = doc.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n return this._expandRectByRootMargin(rootRect);\n};\n\n\n/**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {DOMRect|ClientRect} rect The rect object to expand.\n * @return {ClientRect} The expanded rect.\n * @private\n */\nIntersectionObserver.prototype._expandRectByRootMargin = function(rect) {\n var margins = this._rootMarginValues.map(function(margin, i) {\n return margin.unit == 'px' ? margin.value :\n margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n\n return newRect;\n};\n\n\n/**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\nIntersectionObserver.prototype._hasCrossedThreshold =\n function(oldEntry, newEntry) {\n\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ?\n oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ?\n newEntry.intersectionRatio || 0 : -1;\n\n // Ignore unchanged ratios\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i];\n\n // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n if (threshold == oldRatio || threshold == newRatio ||\n threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n};\n\n\n/**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\nIntersectionObserver.prototype._rootIsInDom = function() {\n return !this.root || containsDeep(document, this.root);\n};\n\n\n/**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\nIntersectionObserver.prototype._rootContainsTarget = function(target) {\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n return (\n containsDeep(rootDoc, target) &&\n (!this.root || rootDoc == target.ownerDocument)\n );\n};\n\n\n/**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\nIntersectionObserver.prototype._registerInstance = function() {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n};\n\n\n/**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\nIntersectionObserver.prototype._unregisterInstance = function() {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n};\n\n\n/**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\nfunction now() {\n return window.performance && performance.now && performance.now();\n}\n\n\n/**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\nfunction throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function() {\n fn();\n timer = null;\n }, timeout);\n }\n };\n}\n\n\n/**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\nfunction addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\nfunction removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.detatchEvent == 'function') {\n node.detatchEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object|?ClientRect} The intersection rect or undefined if no\n * intersection is found.\n */\nfunction computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n\n return (width >= 0 && height >= 0) && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n } || null;\n}\n\n\n/**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {DOMRect|ClientRect} The (possibly shimmed) rect of the element.\n */\nfunction getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {\n // Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect();\n\n // Older IE\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n return rect;\n}\n\n\n/**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {ClientRect} The empty rect.\n */\nfunction getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n}\n\n\n/**\n * Ensure that the result has all of the necessary fields of the DOMRect.\n * Specifically this ensures that `x` and `y` fields are set.\n *\n * @param {?DOMRect|?ClientRect} rect\n * @return {?DOMRect}\n */\nfunction ensureDOMRect(rect) {\n // A `DOMRect` object has `x` and `y` fields.\n if (!rect || 'x' in rect) {\n return rect;\n }\n // A IE's `ClientRect` type does not have `x` and `y`. The same is the case\n // for internally calculated Rect objects. For the purposes of\n // `IntersectionObserver`, it's sufficient to simply mirror `left` and `top`\n // for these fields.\n return {\n top: rect.top,\n y: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n right: rect.right,\n width: rect.width,\n height: rect.height\n };\n}\n\n\n/**\n * Inverts the intersection and bounding rect from the parent (frame) BCR to\n * the local BCR space.\n * @param {DOMRect|ClientRect} parentBoundingRect The parent's bound client rect.\n * @param {DOMRect|ClientRect} parentIntersectionRect The parent's own intersection rect.\n * @return {ClientRect} The local root bounding rect for the parent's children.\n */\nfunction convertFromParentRect(parentBoundingRect, parentIntersectionRect) {\n var top = parentIntersectionRect.top - parentBoundingRect.top;\n var left = parentIntersectionRect.left - parentBoundingRect.left;\n return {\n top: top,\n left: left,\n height: parentIntersectionRect.height,\n width: parentIntersectionRect.width,\n bottom: top + parentIntersectionRect.height,\n right: left + parentIntersectionRect.width\n };\n}\n\n\n/**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\nfunction containsDeep(parent, child) {\n var node = child;\n while (node) {\n if (node == parent) return true;\n\n node = getParentNode(node);\n }\n return false;\n}\n\n\n/**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\nfunction getParentNode(node) {\n var parent = node.parentNode;\n\n if (node.nodeType == /* DOCUMENT */ 9 && node != document) {\n // If this node is a document node, look for the embedding frame.\n return getFrameElement(node);\n }\n\n // If the parent has element that is assigned through shadow root slot\n if (parent && parent.assignedSlot) {\n parent = parent.assignedSlot.parentNode\n }\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n\n return parent;\n}\n\n/**\n * Returns true if `node` is a Document.\n * @param {!Node} node\n * @returns {boolean}\n */\nfunction isDoc(node) {\n return node && node.nodeType === 9;\n}\n\n\n// Exposes the constructors globally.\nwindow.IntersectionObserver = IntersectionObserver;\nwindow.IntersectionObserverEntry = IntersectionObserverEntry;\n\n}());\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):e.vhCheck=n()}(this,function(){\"use strict\";var r=function(){return(r=Object.assign||function(e){for(var n,t=1,o=arguments.length;t<o;t++)for(var r in n=arguments[t])Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r]);return e}).apply(this,arguments)};function n(){var e,n,t=((e=document.createElement(\"div\")).style.cssText=\"position: fixed; top: 0; height: 100vh; pointer-events: none;\",document.documentElement.insertBefore(e,document.documentElement.firstChild),e),o=window.innerHeight,r=t.offsetHeight,i=r-o;return n=t,document.documentElement.removeChild(n),{vh:r,windowHeight:o,offset:i,isNeeded:0!==i,value:0}}function i(){}function e(){var e=n();return e.value=e.offset,e}var c=Object.freeze({noop:i,computeDifference:e,redefineVhUnit:function(){var e=n();return e.value=.01*e.windowHeight,e}});function u(e){return\"string\"==typeof e&&0<e.length}var a=Object.freeze({cssVarName:\"vh-offset\",redefineVh:!1,method:e,force:!1,bind:!0,updateOnTouch:!1,onUpdate:i});var t=!1,o=[];try{var f=Object.defineProperty({},\"passive\",{get:function(){t=!0}});window.addEventListener(\"test\",f,f),window.removeEventListener(\"test\",f,f)}catch(e){t=!1}function d(e,n){o.push({eventName:e,callback:n}),window.addEventListener(e,n,!!t&&{passive:!0})}function s(){o.forEach(function(e){window.removeEventListener(e.eventName,e.callback)}),o=[]}function m(e,n){document.documentElement.style.setProperty(\"--\"+e,n.value+\"px\")}function h(e,n){return r({},e,{unbind:s,recompute:n.method})}return function(e){var n=Object.freeze(function(e){if(u(e))return r({},a,{cssVarName:e});if(\"object\"!=typeof e)return a;var n,t={force:!0===e.force,bind:!1!==e.bind,updateOnTouch:!0===e.updateOnTouch,onUpdate:(n=e.onUpdate,\"function\"==typeof n?e.onUpdate:i)},o=!0===e.redefineVh;return t.method=c[o?\"redefineVhUnit\":\"computeDifference\"],t.cssVarName=u(e.cssVarName)?e.cssVarName:o?\"vh\":a.cssVarName,t}(e)),t=h(n.method(),n);if(!t.isNeeded&&!n.force)return t;if(m(n.cssVarName,t),n.onUpdate(t),!n.bind)return t;function o(){window.requestAnimationFrame(function(){var e=n.method();m(n.cssVarName,e),n.onUpdate(h(e,n))})}return t.unbind(),d(\"orientationchange\",o),n.updateOnTouch&&d(\"touchmove\",o),t}});\n","/*\n * jquery-filestyle\n * doc: http://markusslima.github.io/jquery-filestyle/\n * github: https://github.com/markusslima/jquery-filestyle\n *\n * Copyright (c) 2015 Markus Vinicius da Silva Lima\n * Version 1.5.1\n * Licensed under the MIT license.\n */\n(function ($) {\n \"use strict\";\n \n var nextId = 0;\n \n var JFilestyle = function (element, options) {\n this.options = options;\n this.$elementjFilestyle = [];\n this.$element = $(element);\n };\n\n JFilestyle.prototype = {\n clear: function () {\n this.$element.val('');\n this.$elementjFilestyle.find(':text').val('');\n },\n\n destroy: function () {\n this.$element\n .removeAttr('style')\n .removeData('jfilestyle')\n .val('');\n this.$elementjFilestyle.remove();\n },\n \n disabled : function(value) {\n\t\t\tif (value === true) {\n\t\t\t\tif (!this.options.disabled) {\n\t\t\t\t\tthis.$element.attr('disabled', 'true');\n\t\t\t\t\tthis.$elementjFilestyle.find('label').attr('disabled', 'true');\n\t\t\t\t\tthis.options.disabled = true;\n\t\t\t\t}\n\t\t\t} else if (value === false) {\n\t\t\t\tif (this.options.disabled) {\n\t\t\t\t\tthis.$element.removeAttr('disabled');\n\t\t\t\t\tthis.$elementjFilestyle.find('label').removeAttr('disabled');\n\t\t\t\t\tthis.options.disabled = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn this.options.disabled;\n\t\t\t}\n\t\t},\n\t\t\n\t\tbuttonBefore : function(value) {\n\t\t\tif (value === true) {\n\t\t\t\tif (!this.options.buttonBefore) {\n\t\t\t\t\tthis.options.buttonBefore = true;\n\t\t\t\t\tif (this.options.input) {\n\t\t\t\t\t\tthis.$elementjFilestyle.remove();\n\t\t\t\t\t\tthis.constructor();\n\t\t\t\t\t\tthis.pushNameFiles();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (value === false) {\n\t\t\t\tif (this.options.buttonBefore) {\n\t\t\t\t\tthis.options.buttonBefore = false;\n\t\t\t\t\tif (this.options.input) {\n\t\t\t\t\t\tthis.$elementjFilestyle.remove();\n\t\t\t\t\t\tthis.constructor();\n\t\t\t\t\t\tthis.pushNameFiles();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn this.options.buttonBefore;\n\t\t\t}\n\t\t},\n\n input: function (value) {\n if (value === true) {\n if (!this.options.input) {\n this.options.input = true;\n this.$elementjFilestyle.prepend(this.htmlInput());\n\n this.$elementjFilestyle.find('.count-jfilestyle').remove();\n\n\t\t\t\t\tthis.pushNameFiles();\n }\n } else if (value === false) {\n if (this.options.input) {\n this.options.input = false;\n this.$elementjFilestyle.find(':text').remove();\n var files = this.pushNameFiles();\n\t\t\t\t\tif (files.length > 0) {\n\t\t\t\t\t\tthis.$elementjFilestyle.find('label').append(' <span class=\"count-jfilestyle\">' + files.length + '</span>');\n\t\t\t\t\t}\n }\n } else {\n return this.options.input;\n }\n },\n\n buttonText: function (value) {\n if (value !== undefined) {\n this.options.buttonText = value;\n this.$elementjFilestyle.find('label span').html(this.options.buttonText);\n } else {\n return this.options.buttonText;\n }\n },\n \n inputSize: function (value) {\n if (value !== undefined) {\n this.options.inputSize = value;\n this.$elementjFilestyle.find(':text').css('width', this.options.inputSize);\n } else {\n return this.options.inputSize;\n }\n },\n \n\t\tplaceholder : function(value) {\n\t\t\tif (value !== undefined) {\n\t\t\t\tthis.options.placeholder = value;\n\t\t\t\tthis.$elementjFilestyle.find(':text').attr('placeholder', value);\n\t\t\t} else {\n\t\t\t\treturn this.options.placeholder;\n\t\t\t}\n\t\t},\n\n htmlInput: function () {\n if (this.options.input) {\n return '<input type=\"text\" style=\"width:'+this.options.inputSize+'\" placeholder=\"'+ this.options.placeholder +'\" disabled> ';\n } else {\n return '';\n }\n },\n \n // puts the name of the input files\n // return files\n\t\tpushNameFiles : function() {\n\t\t\tvar content = '', files = [];\n\t\t\tif (this.$element[0].files === undefined) {\n\t\t\t\tfiles[0] = {\n\t\t\t\t\t'name' : this.$element.value\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tfiles = this.$element[0].files;\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < files.length; i++) {\n\t\t\t\tcontent += files[i].name.split(\"\\\\\").pop() + ', ';\n\t\t\t}\n\n\t\t\tif (content !== '') {\n\t\t\t\tthis.$elementjFilestyle.find(':text').val(content.replace(/\\, $/g, ''));\n\t\t\t} else {\n\t\t\t\tthis.$elementjFilestyle.find(':text').val('');\n\t\t\t}\n\t\t\t\n\t\t\treturn files;\n\t\t},\n\n constructor: function () {\n var _self = this,\n html = '',\n id = _self.$element.attr('id'),\n $label,\n files = [];\n\n if (id === '' || !id) {\n id = 'jfilestyle-' + nextId;\n _self.$element.attr({'id': id});\n nextId++;\n }\n \n html = '<span class=\"focus-jfilestyle\">'+\n '<label for=\"'+id+'\" ' + (_self.options.disabled ? 'disabled=\"true\"' : '') + '>'+\n '<span>'+_self.options.buttonText+'</span>'+\n '</label>'+\n '</span>';\n \n if (_self.options.buttonBefore === true) {\n\t html = html + _self.htmlInput();\n } else {\n\t html = _self.htmlInput() + html;\n }\n\n _self.$elementjFilestyle = $('<div class=\"jfilestyle ' + (_self.options.input?'jfilestyle-corner':'') + ' ' + (this.options.buttonBefore ? ' jfilestyle-buttonbefore' : '') + '\">'+html+'</div>');\n _self.$elementjFilestyle.find('.focus-jfilestyle')\n .attr('tabindex', \"0\")\n .keypress(function (e) {\n if (e.keyCode === 13 || e.charCode === 32) {\n _self.$elementjFilestyle.find('label').click();\n return false;\n }\n });\n\n // hidding input file and add filestyle\n _self.$element\n .css({'position': 'absolute', 'clip': 'rect(0px 0px 0px 0px)'})\n .attr('tabindex', \"-1\")\n .after(_self.$elementjFilestyle);\n\t\t\t\n\t\t\tif (_self.options.disabled) {\n\t\t\t\t_self.$element.attr('disabled', 'true');\n\t\t\t}\n\t\t\t\n // Getting input file value\n _self.$element.change(function () {\n \tvar files = _self.pushNameFiles();\n \t\n \tif (_self.options.input == false) {\n\t\t\t\t\tif (_self.$elementjFilestyle.find('.count-jfilestyle').length == 0) {\n\t\t\t\t\t\t_self.$elementjFilestyle.find('label').append(' <span class=\"count-jfilestyle\">' + files.length + '</span>');\n\t\t\t\t\t} else if (files.length == 0) {\n\t\t\t\t\t\t_self.$elementjFilestyle.find('.count-jfilestyle').remove();\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_self.$elementjFilestyle.find('.count-jfilestyle').html(files.length);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t_self.$elementjFilestyle.find('.count-jfilestyle').remove();\n\t\t\t\t}\n });\n\n // Check if browser is Firefox\n if (window.navigator.userAgent.search(/firefox/i) > -1) {\n // Simulating choose file for firefox\n this.$elementjFilestyle.find('label').click(function () {\n _self.$element.click();\n return false;\n });\n }\n }\n };\n\n var old = $.fn.jfilestyle;\n\n $.fn.jfilestyle = function (option, value) {\n var get = '',\n element = this.each(function () {\n if ($(this).attr('type') === 'file') {\n var $this = $(this),\n data = $this.data('jfilestyle'),\n options = $.extend({}, $.fn.jfilestyle.defaults, option, typeof option === 'object' && option);\n\n if (!data) {\n $this.data('jfilestyle', (data = new JFilestyle(this, options)));\n data.constructor();\n }\n\n if (typeof option === 'string') {\n get = data[option](value);\n }\n }\n });\n\n if (typeof get !== undefined) {\n return get;\n } else {\n return element;\n }\n };\n\n $.fn.jfilestyle.defaults = {\n 'buttonText': 'Choose file',\n 'input': true,\n 'disabled': false,\n 'buttonBefore': false,\n 'inputSize': '200px',\n 'placeholder': ''\n };\n\n $.fn.jfilestyle.noConflict = function () {\n $.fn.jfilestyle = old;\n return this;\n };\n\n $(function() {\n // Data attributes register\n $('.jfilestyle').each(function () {\n var $this = $(this),\n options = {\n 'buttonText': $this.attr('data-buttonText'),\n 'input': $this.attr('data-input') === 'false' ? false : true,\n 'disabled': $this.attr('data-disabled') === 'true' ? true : false,\n 'buttonBefore': $this.attr('data-buttonBefore') === 'true' ? true : false,\n 'inputSize': $this.attr('data-inputSize'),\n 'placeholder': $this.attr('data-placeholder')\n };\n \n $this.jfilestyle(options);\n });\n });\n})(window.jQuery);","/*global jQuery, _ */\n\n/* DIS/PLAY Script\n Author's name: Anders Gissel\n Modified by:\n Client name: ...\n Date of creation: ...\n */\n\nvar dis = dis || {};\n\n(function ($, dis, underscore) {\n\t\"use strict\";\n\n\t/**\n\t * The base module we'll expand on.\n\t *\n\t * @class\n\t * @constructor\n\t */\n\tdis.BaseModule = function () {\n\t};\n\n\n\t/**\n\t * This will be SHARED across all instances, and populated in the IIFE that sets up\n\t * onReady(), a bit further down.\n\t *\n\t * @type {object}\n\t */\n\tdis.BaseModule.prototype.globalDOM = {};\n\n\n\t/**\n\t * This IIFE returns a function which performs actions once jQuery is prepared and ready.\n\t * You can use the resulting function like this:\n\t *\n\t * this.onReady(function() {});\n\t *\n\t * ... which will fire your function once the DOM is ready and jQuery is prepared.\n\t *\n\t * @type {function}\n\t */\n\tdis.BaseModule.prototype.onReady = (function () {\n\n\t\t// First, set up a temporary queue to hold our various callback functions.\n\t\tvar functionQueue = [],\n\t\t// Also, we'll need an internal indication of whether or not jQuery is ready.\n\t\t\tdomIsReady = false,\n\t\t\treturnFunction;\n\n\t\t// Once jQuery is ready, do this.\n\t\t$(function () {\n\t\t\t// Store references to body and window in variables that are globally available. This means we'll\n\t\t\t// only need to target them ONCE per page load.\n\t\t\tdis.BaseModule.prototype.globalDOM.html = $(\"html\");\n\t\t\tdis.BaseModule.prototype.globalDOM.body = $(\"body\");\n\t\t\tdis.BaseModule.prototype.globalDOM.window = $(window);\n\n\t\t\tdomIsReady = true;\n\n\t\t\t// Fire any and all functions that are queued up to this point.\n\t\t\tunderscore.each(functionQueue, function (funcRef) {\n\t\t\t\tfuncRef();\n\t\t\t});\n\t\t});\n\n\t\t/**\n\t\t * Store a function reference that will be fired as soon as the DOM and jQuery is ready.\n\t\t *\n\t\t * @param {function} functionReference\n\t\t */\n\t\treturnFunction = function (functionReference) {\n\t\t\tif (typeof functionReference === \"function\") {\n\t\t\t\tif (!domIsReady) {\n\t\t\t\t\tfunctionQueue.push(functionReference);\n\t\t\t\t} else {\n\t\t\t\t\tfunctionReference();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// Return a function that can store a function reference and queue it until the DOM is ready to fire.\n\t\treturn returnFunction;\n\t}());\n\n}(jQuery, dis, _));","/*jshint esnext: true */\n/*global jQuery, dis, Clipboard */\n\n\n(function ($, dis) {\n\t\"use strict\";\n\n\tdis.Accordion = function(objectConfiguration) {\n\n\t\t// Fire the basemodule-initiator on this module.\n\t\tdis.BaseModule.call(this);\n\n\t\tvar configuration = objectConfiguration,\n\t\t\tdom = {},\n\t\t\thash = parseInt(window.location.hash.replace('#', '')),\n\t\t\tselfScope = this;\n\n\t\tfunction hashAnimation() {\n\n\t\t\t// Jump to accordian if has hash in url.\n\t\t\tvar $allHashAccordion = $(document.querySelectorAll('.accordion'));\n\n\t\t\t$allHashAccordion.not(dom.container).removeClass('is-open');\n\t\t\tdom.container.addClass(\"is-open\");\n\n\t\t\tselfScope.globalDOM.html.animate({\n\t\t\t\tscrollTop: dom.container.offset().top\n\t\t\t}, 300);\n\t\t}\n\t\tfunction hasHash() {\n\t\t\thash = parseInt(window.location.hash.replace('#', ''));\n\n\t\t\tif (hash !== \"\" && hash === dom.container.data('id')) {\n\t\t\t\thashAnimation();\n\t\t\t}\n\t\t}\n\n\t\tfunction initPrint(w, html){\n\t\t\tw.document.write(html);\n\t\t\tsetTimeout(function(){\n\t\t\t\tw.document.close();\n\t\t\t\tw.focus();\n\t\t\t\tw.print();\n\t\t\t\tw.close();\n\t\t\t},100);\n\t\t}\n\n\t\tfunction init() {\n\n\t\t\tdom.container = $(configuration.container);\n\t\t\tdom.linktocopy = dom.container.find('.linktocopy');\n\t\t\tdom.copylink = dom.container.find('.copylink');\n\t\t\tdom.print = dom.container.find('.print');\n\t\t\tdom.trigger = dom.container.find(\".accordion__trigger\");\n\t\t\tdom.body = dom.container.find(\".accordion__body\");\n\n\t\t\tdom.trigger.on(\"click\", () => {\n\t\t\t\tif(dom.container.hasClass(\"is-open\")) {\n\t\t\t\t\tdom.container.removeClass(\"is-open\");\n\t\t\t\t} else {\n\t\t\t\t\tdom.container.addClass(\"is-open\");\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Copylink\n\t\t\tvar clipboard = new Clipboard('.accordion .copylink');\n\t\t\tclipboard.on('success', function() {\n\n\t\t\t\tdom.copylink.addClass('tooltipped');\n\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tdom.copylink.removeClass('tooltipped');\n\t\t\t\t}, 1500);\n\t\t\t});\n\n\t\t\t// Print\n\t\t\tdom.print.on(\"click\", function(e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tvar printUrl = dom.print.attr('href') + \"&print=true\",\n\t\t\t\t\tw = window.open();\n\n\t\t\t\tif(printUrl) {\n\n\t\t\t\t\tvar request = new XMLHttpRequest();\n\t\t\t\t\trequest.open('GET', printUrl, true);\n\n\t\t\t\t\trequest.onload = () => {\n\t\t\t\t\t\tif (request.status >= 200 && request.status < 400) {\n\n\t\t\t\t\t\t\tvar data = request.responseText;\n\t\t\t\t\t\t\tinitPrint(w, data);\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\trequest.onerror = function() {\n\t\t\t\t\t\tinitPrint(w, dom.container[0]);\n\t\t\t\t\t};\n\t\t\t\t\trequest.send();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (location.hash) {\n\t\t\t\twindow.scrollTo(0, 0);\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\thasHash();\n\t\t\t\t}, 1000);\n\t\t\t}\n\t\t\twindow.onhashchange = function() {\n\t\t\t\twindow.location.reload();\n\t\t\t};\n }\n\n\n\t\tselfScope.onReady(init);\n\n\t};\n\n\tdis.Accordion.prototype = new dis.BaseModule();\n\tdis.Accordion.constructor = dis.Accordion;\n\n}(jQuery, dis));\n\n\n","/*jshint esnext: true */\n/*global jQuery, dis, bodymovin */\n\n(function ($, dis) {\n\t\"use strict\";\n\n\tdis.Animations = function (objectConfiguration) {\n\t\t// Fire the basemodule-initiator on this module.\n\t\tdis.BaseModule.call(this);\n\n\t\tvar configuration = objectConfiguration,\n\t\t\tdom = {},\n\t\t\tselfScope = this;\n\n\t\tfunction buildLottiAnimation(\n\t\t\telement,\n\t\t\tjsonName,\n\t\t\tloop,\n\t\t\tautoplay,\n\t\t\tmouseevent\n\t\t) {\n\t\t\tvar animation = bodymovin.loadAnimation({\n\t\t\t\tcontainer: element[0],\n\t\t\t\trenderer: \"svg\",\n\t\t\t\tloop: loop,\n\t\t\t\tautoplay: autoplay,\n\t\t\t\tpath:\n\t\t\t\t\t\"/Files/Templates/Designs/3B/frontend/static/dist/js/3b-animations/\" +\n\t\t\t\t\tjsonName +\n\t\t\t\t\t\".json\",\n\t\t\t});\n\n\t\t\tif (mouseevent) {\n\t\t\t\telement[0].addEventListener(\"mouseenter\", function () {\n\t\t\t\t\tanimation.play();\n\t\t\t\t});\n\n\t\t\t\tanimation.addEventListener(\"complete\", function () {\n\t\t\t\t\tanimation.stop();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\telement.addClass(\"initialized\");\n\t\t}\n\n\t\tfunction bindLottieAnimation(\n\t\t\telement,\n\t\t\tjsonName,\n\t\t\tloop,\n\t\t\tautoplay,\n\t\t\tfullwidth,\n\t\t\tmouseevent,\n\t\t\tplayOnSwiperChange\n\t\t) {\n\t\t\tif (fullwidth) {\n\t\t\t\tvar count = 0;\n\t\t\t\tvar repeatCount = Math.ceil(element[0].clientWidth / fullwidth);\n\n\t\t\t\tfor (var i = 0; i < repeatCount; i++) {\n\t\t\t\t\tanimation = buildLottiAnimation(\n\t\t\t\t\t\telement,\n\t\t\t\t\t\tjsonName,\n\t\t\t\t\t\tloop,\n\t\t\t\t\t\tautoplay,\n\t\t\t\t\t\tmouseevent,\n\t\t\t\t\t\tplayOnSwiperChange\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tcount = repeatCount;\n\n\t\t\t\twindow.addEventListener(\"resize\", function () {\n\t\t\t\t\trepeatCount = Math.ceil(element[0].clientWidth / fullwidth);\n\t\t\t\t\tif (count < repeatCount) {\n\t\t\t\t\t\tfor (var i = 0; i < repeatCount; i++) {\n\t\t\t\t\t\t\tanimation = buildLottiAnimation(\n\t\t\t\t\t\t\t\telement,\n\t\t\t\t\t\t\t\tjsonName,\n\t\t\t\t\t\t\t\tloop,\n\t\t\t\t\t\t\t\tautoplay,\n\t\t\t\t\t\t\t\tmouseevent,\n\t\t\t\t\t\t\t\tplayOnSwiperChange\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcount = repeatCount;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tvar animation = buildLottiAnimation(\n\t\t\t\t\telement,\n\t\t\t\t\tjsonName,\n\t\t\t\t\tloop,\n\t\t\t\t\tautoplay,\n\t\t\t\t\tmouseevent,\n\t\t\t\t\tplayOnSwiperChange\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tfunction init() {\n\t\t\tdom.container = $(configuration.container);\n\n\t\t\tconst observer = new IntersectionObserver((entries) => {\n\t\t\t\tentries.forEach((entry) => {\n\t\t\t\t\tif (entry.intersectionRatio > 0) {\n\t\t\t\t\t\tvar $container = $(entry.target);\n\t\t\t\t\t\tbindLottieAnimation(\n\t\t\t\t\t\t\t$container,\n\t\t\t\t\t\t\t$container.data(\"animation-name\"),\n\t\t\t\t\t\t\t$container.data(\"animation-loop\") !== undefined,\n\t\t\t\t\t\t\t$container.data(\"animation-autoplay\") !== undefined,\n\t\t\t\t\t\t\t$container.data(\"animation-fullwidth\"),\n\t\t\t\t\t\t\t$container.data(\"animation-mouseevent\") !==\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t$container.data(\"animation-play-swiper-change\") !==\n\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t);\n\t\t\t\t\t\tobserver.unobserve(entry.target);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tobserver.observe(dom.container[0]);\n\t\t}\n\n\t\tselfScope.onReady(init);\n\t};\n\n\tdis.Animations.prototype = new dis.BaseModule();\n\tdis.Animations.constructor = dis.Animations;\n})(jQuery, dis);\n","/*jshint esnext: true */\n/*global jQuery, dis */\n\n(function ($, dis) {\n\t\"use strict\";\n\n\tdis.ContentBox = function (objectConfiguration) {\n\t\t// Fire the basemodule-initiator on this module.\n\t\tdis.BaseModule.call(this);\n\n\t\tvar configuration = objectConfiguration,\n\t\t\tdom = {},\n\t\t\teventHandlers,\n\t\t\tselfScope = this;\n\n\t\tselfScope.currentHeight = 0;\n\n\t\teventHandlers = {\n\t\t\ttoggleHiddenContent: function (e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif (dom.readmoreContainer.hasClass(\"active\")) {\n\t\t\t\t\tdom.readmoreContainer\n\t\t\t\t\t\t.add(dom.readmoreTrigger)\n\t\t\t\t\t\t.removeClass(\"active\");\n\t\t\t\t} else {\n\t\t\t\t\tdom.readmoreContainer\n\t\t\t\t\t\t.add(dom.readmoreTrigger)\n\t\t\t\t\t\t.addClass(\"active\");\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\n\t\tfunction init() {\n\t\t\tdom.container = $(configuration.container);\n\t\t\tdom.readmoreTrigger = dom.container.find(\".content-box__show-more\");\n\t\t\tdom.readmoreContainer = dom.container.find(\n\t\t\t\t\".content-box__hidden-more\"\n\t\t\t);\n\n\t\t\tdom.readmoreTrigger.on(\"click\", eventHandlers.toggleHiddenContent);\n\t\t}\n\n\t\tselfScope.onReady(init);\n\t};\n\n\tdis.ContentBox.prototype = new dis.BaseModule();\n\tdis.ContentBox.constructor = dis.ContentBox;\n})(jQuery, dis);\n","/*global jQuery, dis */\n\n/* DIS/PLAY Script\n Author's name: Casper Andersen\n Modified by:\n Client name: Dis/play\n Date of creation: 19-01-2016\n */\n\n\n// This closure is where you define which global variables you want. Your naming at THIS point should\n// reflect what you want to call your variables inside your closure; their actual name in the global\n// scope is referenced at the bottom (during call-time). So go look there as well!\n(function ($, dis) {\n \"use strict\";\n\n\n /**\n * This module is an example of how you might build a module for the site. Use code as needed, and then remove from\n * your development project!\n *\n *\n * Initialization example:\n *\n var cookiepolicy;\n $('.cookiepolicy').each(function() {\n cookiepolicy = new dis.Cookiepolicy({\n container: this\n });\n });\n\n $('.cookiepolicy-body a[data-target]').on('click', function(e) {\n e.preventDefault();\n console.log(cookiepolicy);\n cookiepolicy.removeCookie( $(this).data('target') );\n });\n *\n *\n *\n * @param objectConfiguration - The configuration for the object\n * @param {jQuery|HTMLElement|string|*} objectConfiguration.container - The DOM-container for this instantiation\n * @returns {dis.ExampleModule}\n * @constructor\n */\n dis.Cookiepolicy = function (objectConfiguration) {\n\n // Fire the basemodule-initiator on this module.\n dis.BaseModule.call(this);\n\n var defaults = {\n type: \"\",\n prefix: \"cookiepolicy_\",\n exdays: 365\n },\n configuration = $.extend(true, defaults, objectConfiguration),\n DOM = {},\n eventHandlers,\n selfScope = this;\n\n eventHandlers = {};\n\n\t\t// Delete cookie\n\t\tfunction deleteCookie(name) {\n\t\t\tdocument.cookie = name + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/\";\n\t\t}\n\n\t\t// Remove cookie\n this.removeCookie = function(name) {\n deleteCookie(configuration.prefix + name);\n };\n\n // Set cookie\n function setCookie(name, value, exdays) {\n var d = new Date();\n d.setTime(d.getTime() + (exdays*24*60*60*1000));\n var expires = \"expires=\"+d.toUTCString();\n document.cookie = name + \"=\" + value + \"; \" + expires + '; path=/';\n }\n\n // Get cookie\n function getCookie(name) {\n name = name + \"=\";\n var ca = document.cookie.split(';');\n for(var i=0; i<ca.length; i+=1) {\n var c = ca[i];\n while (c.charAt(0)===' ') {\n\t\t\t\t\tc = c.substring(1);\n\t\t\t\t}\n if (c.indexOf(name) === 0) {\n\t\t\t\t\treturn c.substring(name.length,c.length);\n\t\t\t\t}\n }\n return \"\";\n }\n\n function init() {\n\n DOM.container = $(configuration.container);\n DOM.ok = DOM.container.find('button.cookiepolicy__clear');\n\n configuration.type = DOM.container.data('type');\n\n if (DOM.container.length) {\n\n //console.log(configuration.type, getCookie(\"cookiepolicy_\" + configuration.type));\n if (getCookie(configuration.prefix + configuration.type) === \"\") {\n\n DOM.container.show();\n\n DOM.ok.on('click', function(e) {\n e.preventDefault();\n\n setCookie(configuration.prefix + configuration.type, \"true\", configuration.exdays);\n\n DOM.container.hide();\n });\n }\n }\n }\n\n // Once everything is ready, run the init-function to get the ball rolling. The \"onReady()\" function lives\n // in dis.base.js.\n selfScope.onReady(init);\n\n };\n\n dis.Cookiepolicy.prototype = new dis.BaseModule();\n dis.Cookiepolicy.constructor = dis.Cookiepolicy;\n\n\n}(jQuery, dis));","/*global jQuery, dis */\n\n// This closure is where you define which global variables you want. Your naming at THIS point should\n// reflect what you want to call your variables inside your closure; their actual name in the global\n// scope is referenced at the bottom (during call-time). So go look there as well!\n(function ($, dis) {\n\t\"use strict\";\n\n\tdis.DepartmentFinder = function (objectConfiguration) {\n\t\t// Fire the basemodule-initiator on this module.\n\t\tdis.BaseModule.call(this);\n\n\t\tvar configuration = objectConfiguration,\n\t\t\tDOM = {},\n\t\t\tselfScope = this;\n\n\t\tfunction init() {\n\t\t\tDOM.container = $(configuration.container);\n\t\t\tDOM.link = DOM.container.find(\".department-finder__search-link\");\n\t\t\tDOM.select = DOM.container.find(\".department-finder__select\");\n\n\t\t\tif (DOM.container.length) {\n\t\t\t\tDOM.select.on(\"change\", function urlChange() {\n\t\t\t\t\tvar initialUrl = $(this).val();\n\t\t\t\t\tvar splits = initialUrl.split(\"|\");\n\t\t\t\t\tvar departmentFinderUrl = splits[0];\n\t\t\t\t\twindow.location = departmentFinderUrl;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Once everything is ready, run the init-function to get the ball rolling. The \"onReady()\" function lives\n\t\t// in dis.base.js.\n\t\tselfScope.onReady(init);\n\t};\n\n\tdis.DepartmentFinder.prototype = new dis.BaseModule();\n\tdis.DepartmentFinder.constructor = dis.DepartmentFinder;\n})(jQuery, dis);\n","/*jshint esnext: true */\n/*global jQuery, dis */\n\n/* DIS/PLAY Script\n Author's name: ...\n Modified by:\n Client name: ...\n Date of creation: ...\n */\n\n (function ($, dis) {\n \t\"use strict\";\n\n\n \tdis.Equalizer = function (objectConfiguration) {\n\n\t\t// Fire the basemodule-initiator on this module.\n\t\tdis.BaseModule.call(this);\n\n\t\tvar configuration = objectConfiguration,\n\t\tdom = {},\n\t\tselfScope = this,\n\t\tmaxHeight = 0;\n\n\t\tfunction setHeight($elements) {\n\n\t\t\tif ($elements.length > 1) {\n\t\t\t\t$elements.css('height', 'auto');\n\t\t\t\t$elements.each(function() {\n\t\t\t\t\tif ($(this).outerHeight() > maxHeight) {\n\t\t\t\t\t\tmaxHeight = $(this).outerHeight();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$elements.outerHeight(maxHeight);\n\t\t\t}\n\t\t}\n\n\n\t\tfunction init() {\n\n\t\t\tdom.container = $(configuration.container);\n\n\t\t\tvar $elements = dom.container.find('[data-equalizer-watch=\"' + dom.container.data('equalizer') + '\"]');\n\n\t\t\tsetHeight($elements);\n\n\t\t\t$(window).resize(function() {\n\t\t\t\tmaxHeight = 0;\n\t\t\t\tsetHeight($elements);\n\t\t\t});\n\n\t\t}\n\n\n\t\tselfScope.onReady(init);\n\n\t};\n\n\tdis.Equalizer.prototype = new dis.BaseModule();\n\tdis.Equalizer.constructor = dis.Equalizer;\n\n}(jQuery, dis));\n\n\n","/*jshint esnext: true */\n/*global jQuery, dis */\n\n\n(function ($, dis) {\n\t\"use strict\";\n\n\n\tdis.FooterEffect = function (objectConfiguration) {\n\n\t\t// Fire the basemodule-initiator on this module.\n\t\tdis.BaseModule.call(this);\n\n\n\t\tvar configuration = objectConfiguration,\n\n\n\t\tdom = {},\n\n\t\teventHandlers,\n\n\t\tselfScope = this;\n\n\t\teventHandlers = {\n\t\t\tonFocus: function() {\n\t\t\t\tselfScope.globalDOM.window.scrollTop(selfScope.globalDOM.body.height());\n\t\t\t}\n\t\t};\n\n\t\tfunction footerMargin() {\n\t\t\tdom.footerOuterHeight = dom.container.outerHeight();\n\t\t\tif (selfScope.globalDOM.window.width() >= 1025) {\n\t\t\t\tdom.body.css('padding-bottom', dom.footerOuterHeight + 'px');\n\t\t\t} else {\n\t\t\t\tdom.body.removeAttr('style');\n\t\t\t\tdom.container.css('position', 'relative');\n\t\t\t\tdom.container.css('padding-top', '0px');\n\t\t\t}\n\t\t}\n\n\t\tfunction init() {\n\n\t\t\tdom.body = $(\"body\");\n\t\t\tdom.container = $(configuration.container);\n\t\t\tdom.link = dom.container.find('a, button');\n\n\t\t\tfooterMargin();\n\t\t\tselfScope.globalDOM.window.on('resize', function() {\n\t\t\t\tfooterMargin();\n\t\t\t});\n\n\t\t\t// Tab to links in footer\n\t\t\tdom.link.on('focus', eventHandlers.onFocus);\n\t\t}\n\n\n\t\tselfScope.onReady(init);\n\n\t};\n\n\tdis.FooterEffect.prototype = new dis.BaseModule();\n\tdis.FooterEffect.constructor = dis.FooterEffect;\n\n}(jQuery, dis));\n\n\n","/*jshint esnext: true */\n/*global jQuery, dis */\n\n/* DIS/PLAY Script\n Author's name: ...\n Modified by:\n Client name: ...\n Date of creation: ...\n */\n\n(function ($, dis) {\n\t\"use strict\";\n\n\tdis.Forms = function (objectConfiguration) {\n\n\t\t// Fire the basemodule-initiator on this module.\n\t\tdis.BaseModule.call(this);\n\n\t\tvar configuration = objectConfiguration,\n\t\t\tdom = {},\n\t\t\teventHandlers,\n\t\t\tselfScope = this;\n\n\t\teventHandlers = {};\n\n\t\tfunction autoResizeTextarea(e) {\n\t\t\tlet el = e.target;\n\n\t\t\tsetTimeout(function () {\n\t\t\t\tel.style.height = 'auto';\n\t\t\t\tel.style.height = (el.scrollHeight + 5) + 'px';\n\t\t\t}, 0);\n\t\t}\n\n\t\tfunction empty(e, $required) {\n\t\t\tvar input = e.target;\n\t\t\tif (e.target.value !== \"\") {\n\t\t\t\tinput.classList.add('hasValue');\n\t\t\t\tif ($(input).hasClass('required')) {\n\t\t\t\t\t$required.addClass('shown');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tinput.classList.remove('hasValue');\n\t\t\t\tif ($(input).hasClass('required')) {\n\t\t\t\t\t$required.removeClass('shown');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction init() {\n\n\t\t\tdom.container = $(configuration.container);\n\t\t\tdom.fields = dom.container.find(\".field\");\n\t\t\tdom.inputFields = dom.fields.find('input, select, textarea');\n\t\t\tdom.submit = dom.container.find('[type=\"submit\"]');\n\n\t\t\tdom.fields.each(function () {\n\t\t\t\tvar $this = $(this),\n\t\t\t\t\t$input = $this.find('input, select, textarea'),\n\t\t\t\t\trequired = $this.hasClass('required');\n\n\t\t\t\tif (required) {\n\t\t\t\t\t$this.prepend(\"<div class='requiredText'>Skal udfyldes!</div>\");\n\t\t\t\t\tvar $required = $this.children('.requiredText');\n\t\t\t\t}\n\n\t\t\t\tif ($this.hasClass('textarea')) {\n\t\t\t\t\t$input.on('keyup', function (e) {\n\t\t\t\t\t\tempty(e, $required);\n\t\t\t\t\t\tautoResizeTextarea(e);\n\t\t\t\t\t});\n\t\t\t\t} else if ($this.hasClass('checkbox') || $this.hasClass('radiobuttonlist') || $this.hasClass('checkboxlist')) {\n\n\t\t\t\t\t$input.on('change', function () {\n\t\t\t\t\t\tif (required) {\n\n\t\t\t\t\t\t\tconsole.log($input.filter('[required]:checked').length);\n\t\t\t\t\t\t\tif ($input.filter('[required]:checked').length > 0) {\n\n\t\t\t\t\t\t\t\t$input.removeClass('invalid');\n\t\t\t\t\t\t\t\t$required.removeClass('shown');\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t$input.addClass('invalid');\n\t\t\t\t\t\t\t\t$required.addClass('shown');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\n\t\t\t\t} else if ($this.hasClass('fileField')) {\n\n\t\t\t\t\t$input.on('change', function () {\n\n\t\t\t\t\t\tif ($input.is(':required')) {\n\t\t\t\t\t\t\tif ($input[0].files.length === 0) {\n\t\t\t\t\t\t\t\t$input.addClass('invalid');\n\t\t\t\t\t\t\t\tif (required) {\n\t\t\t\t\t\t\t\t\t$required.addClass('shown');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$input.removeClass('invalid');\n\t\t\t\t\t\t\t\tif (required) {\n\t\t\t\t\t\t\t\t\t$required.removeClass('shown');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t} else {\n\n\t\t\t\t\t$input.on('keyup', function (e) {\n\t\t\t\t\t\tempty(e, $required);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Is valid\n\t\t\t\t$input.on('keyup change', function (e) {\n\t\t\t\t\tif (e.target.validity.valid) {\n\t\t\t\t\t\te.target.classList.remove('invalid');\n\t\t\t\t\t\tif (required) {\n\t\t\t\t\t\t\t$required.removeClass('shown');\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\te.target.classList.add('invalid');\n\t\t\t\t\t\tif (required) {\n\t\t\t\t\t\t\t$required.addClass('shown');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tdom.submit.on('click', function (e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tdom.inputFields.trigger('change');\n\n\t\t\t\tvar $invalidInput = dom.inputFields.filter('.invalid');\n\n\t\t\t\tif ($invalidInput.length > 0) {\n\n\t\t\t\t\t$invalidInput.first().focus();\n\t\t\t\t} else {\n\n\t\t\t\t\tif (dom.container.is('form')) {\n\t\t\t\t\t\tdom.container.submit();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdom.container.find('form').submit();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tselfScope.onReady(init);\n\n\t};\n\n\tdis.Forms.prototype = new dis.BaseModule();\n\tdis.Forms.constructor = dis.Forms;\n\n}(jQuery, dis));\n\n","/*jshint esnext: true */\n/*global jQuery, dis */\n\n\n(function ($, dis) {\n\t\"use strict\";\n\n\n\tdis.ImgOverlay = function (objectConfiguration) {\n\n\t\t// Fire the basemodule-initiator on this module.\n\t\tdis.BaseModule.call(this);\n\n\t\tvar configuration = objectConfiguration,\n\t\t\tdom = {},\n\t\t\tselfScope = this;\n\n\t\tfunction init() {\n\n\t\t\tdom.container = $(configuration.container);\n\n\t\t\tdom.container.on('click', function(e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tvar $this = $(this);\n\t\t\t\tvar $overlay = $('<div class=\"imgoverlay\"><div class=\"imgoverlay__container\"><img src=\"'+$this.attr('href')+'\" alt=\"'+$this.attr('title')+'\" class=\"imgoverlay__img\" /><span class=\"imgoverlay__text\">'+$this.attr('title')+'</span></div></div>').appendTo($('body'));\n\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t$overlay.addClass('active');\n\t\t\t\t}, 1);\n\n\t\t\t\t$overlay.on('click', function(e) {\n\t\t\t\t\tif (e.target.className === \"imgoverlay active\") {\n\t\t\t\t\t\t$overlay.removeClass('active');\n\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t$overlay.off('click');\n\t\t\t\t\t\t\t$overlay.remove();\n\t\t\t\t\t\t}, 500);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\n\t\tselfScope.onReady(init);\n\n\t};\n\n\tdis.ImgOverlay.prototype = new dis.BaseModule();\n\tdis.ImgOverlay.constructor = dis.ImgOverlay;\n\n}(jQuery, dis));\n\n\n","/*jshint esnext: true */\n/*global jQuery, dis, vhCheck */\n\n/* DIS/PLAY Script\n Author's name: ...\n Modified by:\n Client name: ...\n Date of creation: ...\n */\n\n(function ($, dis) {\n\t\"use strict\";\n\n\tdis.Nav = function (objectConfiguration) {\n\t\t// Fire the basemodule-initiator on this module.\n\t\tdis.BaseModule.call(this);\n\n\t\tvar configuration = objectConfiguration,\n\t\t\tdom = {},\n\t\t\teventHandlers,\n\t\t\tselfScope = this;\n\n\t\teventHandlers = {\n\t\t\tfoldoutNav: function (e) {\n\t\t\t\tvar dropDown = $(this).closest(\"li\").find(dom.navContent);\n\t\t\t\tvar hasActive = $(this).closest(dom.navIcon).hasClass(\"active\");\n\t\t\t\tvar IconActive = $(\".mobileMenu .acc-icon.active\");\n\n\t\t\t\t$(this)\n\t\t\t\t\t.closest(dom.container)\n\t\t\t\t\t.find(dom.navContent)\n\t\t\t\t\t.not(dropDown)\n\t\t\t\t\t.slideUp();\n\n\t\t\t\tif (hasActive) {\n\t\t\t\t\tIconActive.removeClass(\"active\");\n\t\t\t\t} else {\n\t\t\t\t\tIconActive.removeClass(\"active\");\n\t\t\t\t\t$(this).closest(dom.navIcon).addClass(\"active\");\n\t\t\t\t}\n\n\t\t\t\tdropDown.stop(false, true).slideToggle();\n\n\t\t\t\te.preventDefault();\n\t\t\t},\n\n\t\t\tfoldoutSubNav: function (e) {\n\t\t\t\tvar dropDown = $(this).closest(\"li\").find(dom.subNavContent);\n\t\t\t\tvar hasActive = $(this)\n\t\t\t\t\t.closest(dom.subNavIcon)\n\t\t\t\t\t.hasClass(\"active\");\n\t\t\t\tvar IconActive = $(\".mobileMenu .sub-acc-icon.active\");\n\n\t\t\t\t$(this)\n\t\t\t\t\t.closest(dom.container)\n\t\t\t\t\t.find(dom.subNavContent)\n\t\t\t\t\t.not(dropDown)\n\t\t\t\t\t.slideUp();\n\n\t\t\t\tif (hasActive) {\n\t\t\t\t\tIconActive.removeClass(\"active\");\n\t\t\t\t} else {\n\t\t\t\t\tIconActive.removeClass(\"active\");\n\t\t\t\t\t$(this).closest(dom.subNavIcon).addClass(\"active\");\n\t\t\t\t}\n\n\t\t\t\tdropDown.stop(false, true).slideToggle();\n\t\t\t\te.preventDefault();\n\t\t\t},\n\t\t\tburger: function () {\n\t\t\t\tvar duration = 500;\n\n\t\t\t\tvar that = $(this);\n\t\t\t\tif (that.hasClass(\"is-open\")) {\n\t\t\t\t\t$(\"body\").removeClass(\"no-scroll\");\n\n\t\t\t\t\tthat.removeClass(\"is-open\").addClass(\"is-closed\");\n\t\t\t\t\tdom.burgerInner.animate(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tleft: \"-100%\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tduration\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthat.removeClass(\"is-closed\").addClass(\"is-open\");\n\n\t\t\t\t\tdom.burgerInner.animate(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tleft: \"0\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tduration\n\t\t\t\t\t);\n\n\t\t\t\t\t$(\"body\").addClass(\"no-scroll\");\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tfoldoutSearch: function () {\n\t\t\t\tdom.searchSite.slideToggle();\n\t\t\t},\n\t\t};\n\n\t\tfunction init() {\n\t\t\tvar vhCheckHeight = vhCheck();\n\n\t\t\tdom.container = $(configuration.container);\n\t\t\tdom.navHead = $(configuration.container).find(\n\t\t\t\t\".mobileMenu .nav-head\"\n\t\t\t);\n\t\t\tdom.navContent = $(configuration.container).find(\n\t\t\t\t\".mobileMenu .nav-content\"\n\t\t\t);\n\t\t\tdom.subNavHead = $(configuration.container).find(\n\t\t\t\t\".mobileMenu .sub-nav-head\"\n\t\t\t);\n\t\t\tdom.subNavContent = $(configuration.container).find(\n\t\t\t\t\".mobileMenu .sub-nav-content\"\n\t\t\t);\n\t\t\tdom.navIcon = $(configuration.container).find(\n\t\t\t\t\".mobileMenu .acc-icon\"\n\t\t\t);\n\t\t\tdom.subNavIcon = $(configuration.container).find(\n\t\t\t\t\".mobileMenu .sub-acc-icon\"\n\t\t\t);\n\t\t\tdom.burger = $(configuration.container).find(\".mobileMenu .burger\");\n\t\t\tdom.burgerInner = $(configuration.container).find(\n\t\t\t\t\".mobileMenu .burger-inner\"\n\t\t\t);\n\t\t\tdom.searchIcon = $(configuration.container).find(\n\t\t\t\t\".mobileMenu .icon-search\"\n\t\t\t);\n\t\t\tdom.searchSite = $(configuration.container).find(\n\t\t\t\t\".mobileMenu .site-search\"\n\t\t\t);\n\t\t\tdom.burgerInner.css(\"height\", vhCheckHeight.windowHeight - 98);\n\n\t\t\tdom.navIcon.click(eventHandlers.foldoutNav);\n\t\t\tdom.subNavIcon.click(eventHandlers.foldoutSubNav);\n\t\t\tdom.burger.click(eventHandlers.burger);\n\t\t\tdom.searchIcon.click(eventHandlers.foldoutSearch);\n\t\t}\n\n\t\tselfScope.onReady(init);\n\t};\n\n\tdis.Nav.prototype = new dis.BaseModule();\n\tdis.Nav.constructor = dis.Nav;\n})(jQuery, dis);\n","/*jshint esnext: true */\n/*global jQuery, dis */\n\n//Barni's kode fra KAB Boligjura\n\n(function ($, dis) {\n\t\"use strict\";\n\n\tdis.Search = function (objectConfiguration) {\n\t\t// Fire the basemodule-initiator on this module.\n\t\tdis.BaseModule.call(this);\n\n\t\tvar configuration = objectConfiguration,\n\t\t\tdom = {},\n\t\t\tselfScope = this,\n\t\t\tsiteUrl =\n\t\t\t\twindow.location.host.indexOf(\"local\") !== -1\n\t\t\t\t\t? \"www.3b.dk\"\n\t\t\t\t\t: window.location.hostname;\n\n\t\tselfScope.settings = {\n\t\t\tsearchType: false,\n\t\t\tchosen: \"\",\n\t\t\ttypeAheadRedirectUrl: \"/search\",\n\t\t\ttypeAheadUrl:\n\t\t\t\t\"//kab.ankiro.dk/Public/Rest/TypeAhead/\" + siteUrl + \"?q=\",\n\t\t\ttermUrl: \"//kab.ankiro.dk/Public/Rest/Search/\" + siteUrl,\n\t\t\tredirUrl: \"//kab.ankiro.dk/Public/Rest/Redir?\",\n\t\t\tcurrentSearchTerm: \"\",\n\t\t\tcurrentContentTypes: \"\",\n\t\t\tcontentTypeGroups: \"\",\n\t\t\tstartIndex: 1,\n\t\t\tmaxResults: 10,\n\t\t\ttempStartIndex: 0,\n\t\t\ttempMaxResults: 0,\n\t\t\tloadMore: false,\n\t\t};\n\n\t\tthis.isParameterByName = function (name) {\n\t\t\tvar match = new RegExp(\"[?&]\" + name + \"=([^&]*)\").exec(\n\t\t\t\twindow.location.search\n\t\t\t);\n\t\t\treturn match;\n\t\t};\n\n\t\tthis.getParameterByName = function (name) {\n\t\t\tvar match = new RegExp(\"[?&]\" + name + \"=([^&]*)\").exec(\n\t\t\t\twindow.location.search\n\t\t\t);\n\t\t\treturn match && decodeURIComponent(match[1].replace(/\\+/g, \" \"));\n\t\t};\n\n\t\t/**\n\t\t * Find and store references to the DOM-elements we need.\n\t\t *\n\t\t * @param {HTMLElement} container\n\t\t */\n\t\tthis.loadDOM = function (container) {\n\t\t\tthis.dom = {};\n\n\t\t\t// cache dom\n\t\t\tthis.dom.container = $(container);\n\t\t\tthis.dom.form = this.dom.container.find(\".site-search__form\");\n\t\t\tthis.dom.input = this.dom.form.find(\".site-search__input\");\n\t\t\tthis.dom.submit = this.dom.form.find(\".site-search__btn\");\n\t\t\tthis.dom.dropdown = $(\n\t\t\t\t'<div class=\"site-search__suggestions is-hidden\"/>'\n\t\t\t);\n\t\t\tthis.dom.dropdownList = $(\n\t\t\t\t'<ul class=\"site-search__suggestions-list\"/>'\n\t\t\t);\n\n\t\t\t// show banner\n\t\t\tthis.dom.searchBanner = $(\".site-search__searchbanner\");\n\n\t\t\t// show total search result\n\t\t\tthis.dom.totalResults = $(\".site-search__totalresults\");\n\n\t\t\t// show search alias\n\t\t\tthis.dom.searchAlias = $(\".site-search__searchalias\");\n\n\t\t\t// search content types\n\t\t\tthis.dom.searchContentTypes = $(\".search-contenttypes\");\n\t\t\tthis.dom.searchContentTypesList = this.dom.searchContentTypes.find(\n\t\t\t\t\".search-contenttypes__list\"\n\t\t\t);\n\n\t\t\t// search result\n\t\t\tthis.dom.searchResult = $(\".search-list\");\n\t\t\tthis.dom.searchList =\n\t\t\t\tthis.dom.searchResult.find(\".search-list__list\");\n\n\t\t\tthis.dom.searchList.on(\n\t\t\t\t\"click\",\n\t\t\t\t\"a.search-list__listlink\",\n\t\t\t\tselfScope.clickLink\n\t\t\t);\n\n\t\t\t// append dom\n\t\t\tthis.dom.dropdown.append(this.dom.dropdownList);\n\t\t\tthis.dom.form.after(this.dom.dropdown);\n\n\t\t\t// make dropdown the size of inpit field\n\t\t\tthis.dom.dropdown[0].style.width =\n\t\t\t\tthis.dom.input[0].offsetWidth + \"px\";\n\t\t};\n\n\t\tthis.showDropdown = function () {\n\t\t\tif (this.dom.dropdownList.children().length) {\n\t\t\t\tthis.dom.dropdown.removeClass(\"is-hidden\");\n\t\t\t}\n\t\t};\n\n\t\tthis.hideDropdown = function () {\n\t\t\tthis.dom.dropdown.addClass(\"is-hidden\");\n\t\t};\n\n\t\tthis.emptyDropdownList = function () {\n\t\t\tthis.dom.dropdownList.empty();\n\t\t};\n\n\t\tthis.emptySearchList = function () {\n\t\t\tthis.dom.searchList.empty();\n\t\t};\n\n\t\tthis.emptyContentTypeList = function () {\n\t\t\tthis.dom.searchContentTypesList.empty();\n\t\t};\n\n\t\tthis.clickLink = function (e) {\n\t\t\te.preventDefault();\n\t\t\tvar $this = $(e.currentTarget),\n\t\t\t\turl = $this.attr(\"href\");\n\t\t\tconsole.log(\n\t\t\t\tselfScope.settings.redirUrl +\n\t\t\t\t\t\"url=\" +\n\t\t\t\t\turl +\n\t\t\t\t\t\"&searchId=\" +\n\t\t\t\t\tselfScope.ankiroSearchID +\n\t\t\t\t\t\"&documentId=\" +\n\t\t\t\t\t$this.data(\"id\") +\n\t\t\t\t\t\"&documentOffset=\" +\n\t\t\t\t\tselfScope.ankiroDocumentOffset\n\t\t\t);\n\t\t\tfetch(\n\t\t\t\tselfScope.settings.redirUrl +\n\t\t\t\t\t\"url=\" +\n\t\t\t\t\turl +\n\t\t\t\t\t\"&searchId=\" +\n\t\t\t\t\tselfScope.ankiroSearchID +\n\t\t\t\t\t\"&documentId=\" +\n\t\t\t\t\t$this.data(\"id\") +\n\t\t\t\t\t\"&documentOffset=\" +\n\t\t\t\t\tselfScope.ankiroDocumentOffset,\n\t\t\t\t{\n\t\t\t\t\tmethod: \"get\",\n\t\t\t\t}\n\t\t\t)\n\t\t\t\t.then(function () {\n\t\t\t\t\twindow.location = url;\n\t\t\t\t})\n\t\t\t\t.catch(function () {\n\t\t\t\t\twindow.location = url;\n\t\t\t\t});\n\t\t};\n\n\t\tthis.createTypeAheadListitem = function (term, searchCount) {\n\t\t\t// http://wesbos.com/template-strings-html\n\t\t\tvar temp = document.createElement(\"div\"),\n\t\t\t\tlistitem,\n\t\t\t\ttempString = `<li class=\"site-search__suggestions-listitem\" data-term=\"${term}\">\n\t <a href=\"#\" class=\"site-search__suggestions-listlink icon--list\">\n\t <span class=\"site-search__suggestions-listtext\">${term}</span>\n\t <span class=\"site-search__suggestions-listcount\">${searchCount} resultater</span>\n\t </a>\n\t </li>\n\t `;\n\n\t\t\t// trick to change the string to a html element to return\n\t\t\ttemp.innerHTML = tempString;\n\t\t\tlistitem = temp.firstChild;\n\n\t\t\treturn listitem;\n\t\t};\n\n\t\tthis.createContentTypeListitem = function (contentType) {\n\t\t\t// first clean up contentType name from whitespace and æøå - cause we use it as an css class\n\t\t\tvar contentTypeCssClass = contentType\n\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t.replace(/\\s/g, \"\")\n\t\t\t\t\t.replace(\"æ\", \"ae\")\n\t\t\t\t\t.replace(\"ø\", \"oe\")\n\t\t\t\t\t.replace(\"Ã¥\", \"aa\")\n\t\t\t\t\t.replace(\"&\", \"_\"),\n\t\t\t\ttemp = document.createElement(\"div\"),\n\t\t\t\tlistitem,\n\t\t\t\ttempString = `<li class=\"search-contenttypes__listitem active\" data-contenttype=\"${contentType}\">\n\t <a href=\"#\" class=\"search-contenttypes__listlink ${contentTypeCssClass}\">${contentType}</a>\n\t </li>\n\t `;\n\n\t\t\t// trick to change the string to a html element to return\n\t\t\ttemp.innerHTML = tempString;\n\t\t\tlistitem = temp.firstChild;\n\n\t\t\treturn listitem;\n\t\t};\n\n\t\tthis.createSearchTermListitem = function (\n\t\t\turl,\n\t\t\ttitle,\n\t\t\tcontentType,\n\t\t\tcontent,\n\t\t\tid\n\t\t) {\n\t\t\t// first clean up contentType name from whitespace and æøå - cause we use it as an css class\n\t\t\tvar contentTypeCssClass = contentType\n\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t.replace(/\\s/g, \"\")\n\t\t\t\t\t.replace(\"æ\", \"ae\")\n\t\t\t\t\t.replace(\"ø\", \"oe\")\n\t\t\t\t\t.replace(\"Ã¥\", \"aa\")\n\t\t\t\t\t.replace(\"&\", \"_\"),\n\t\t\t\ttemp = document.createElement(\"div\"),\n\t\t\t\tlistitem,\n\t\t\t\ttempString = `<li class=\"search-list__listitem\">\n\t <a href=\"${url}\" class=\"search-list__listlink icon--list\" data-id=\"${id}\"><span class=\"search-list__listlink-text\">${title}</span><span class=\"search-list__listlink-contenttype ${contentTypeCssClass}\">${contentType}</span></a>\n\t <p class=\"search-list__listtext\">${content}</p>\n\t\t\t</li>`;\n\n\t\t\t// trick to change the string to a html element to return\n\t\t\ttemp.innerHTML = tempString;\n\t\t\tlistitem = temp.firstChild;\n\n\t\t\treturn listitem;\n\t\t};\n\n\t\tthis.createLoadMoreButton = function () {\n\t\t\tvar selfScope = this,\n\t\t\t\ttemp = document.createElement(\"div\"),\n\t\t\t\tbutton,\n\t\t\t\ttempString = `<button type=\"button\" class=\"search-list__button\">Vis flere</button>`;\n\n\t\t\t// trick to change the string to a html element to return\n\t\t\ttemp.innerHTML = tempString;\n\t\t\tbutton = temp.firstChild;\n\n\t\t\tselfScope.dom.loadMoreButton = $(button).on(\"click\", function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\t// increment startIndex\n\t\t\t\tselfScope.settings.startIndex =\n\t\t\t\t\tselfScope.settings.startIndex +\n\t\t\t\t\tselfScope.settings.maxResults;\n\t\t\t\t// increment the maxResult\n\t\t\t\t//selfScope.settings.tempMaxResults = selfScope.settings.startIndex + selfScope.settings.maxResults - 1;\n\n\t\t\t\tif (selfScope.settings.currentContentTypes.length > 0) {\n\t\t\t\t\t// TODO: use this to include contenttypes in url\n\t\t\t\t\tselfScope.searchTerm(\n\t\t\t\t\t\tselfScope.settings.currentSearchTerm,\n\t\t\t\t\t\tselfScope.settings.currentContentTypes.join(\"|\")\n\t\t\t\t\t);\n\n\t\t\t\t\t// add back startIndex old value\n\t\t\t\t\t//selfScope.settings.startIndex = selfScope.settings.tempStartIndex;\n\t\t\t\t} else {\n\t\t\t\t\t// perform a new search with the caches values and a bigger startIndex\n\t\t\t\t\tselfScope.searchTerm(\n\t\t\t\t\t\tselfScope.settings.currentSearchTerm,\n\t\t\t\t\t\t\"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconsole.log(selfScope.settings);\n\t\t\t});\n\n\t\t\treturn button;\n\t\t};\n\n\t\tthis.onFocus = function () {\n\t\t\tthis.dom.container.addClass(\"waiting\");\n\t\t\tthis.showDropdown();\n\t\t};\n\n\t\tthis.onBlur = function () {\n\t\t\tthis.dom.container.removeClass(\"waiting\");\n\t\t\tthis.hideDropdown();\n\t\t};\n\n\t\tthis.onKeyup = function (e) {\n\t\t\tvar selfScope = this,\n\t\t\t\tiKeyCode = e.keyCode,\n\t\t\t\tvalue = \"\";\n\n\t\t\t// iKeyCode 46 = devare\n\t\t\t// We need these to keep searching when devaring charactors\n\t\t\tif (\n\t\t\t\t(iKeyCode < 32 && iKeyCode !== 8 && iKeyCode !== 27) ||\n\t\t\t\t(iKeyCode >= 33 && iKeyCode <= 45) ||\n\t\t\t\t(iKeyCode >= 112 && iKeyCode <= 123)\n\t\t\t) {\n\t\t\t\t//ignore½\n\t\t\t\treturn;\n\t\t\t} else if (iKeyCode === 27) {\n\t\t\t\t// ESC\n\t\t\t\tselfScope.hideDropdown();\n\t\t\t} else {\n\t\t\t\t// reset chosen value so we step down the suggestions from top\n\t\t\t\tselfScope.settings.chosen = \"\";\n\t\t\t\tvalue = selfScope.dom.input[0].value;\n\n\t\t\t\tif (value.length > 0) {\n\t\t\t\t\tselfScope.dom.container.addClass(\"ready\");\n\t\t\t\t\tselfScope.dom.container.removeClass(\"waiting\");\n\t\t\t\t} else {\n\t\t\t\t\t// Disable submit button\n\t\t\t\t\t$(document).trigger(\"can.search\", false);\n\t\t\t\t\t// Hide dropdown\n\t\t\t\t\tselfScope.hideDropdown();\n\t\t\t\t\t// Empty dropdown\n\t\t\t\t\tselfScope.emptyDropdownList();\n\t\t\t\t}\n\t\t\t\t// don't seach until we have 2 chars\n\t\t\t\tif (value.length > 1) {\n\t\t\t\t\tselfScope.requestSuggestions(value);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tthis.onKeydown = function (e) {\n\t\t\tvar selfScope = this,\n\t\t\t\tiKeyCode = e.keyCode,\n\t\t\t\tvalue = selfScope.dom.input[0].value,\n\t\t\t\tlistitems,\n\t\t\t\tresult,\n\t\t\t\tactiveListItem = \"\";\n\n\t\t\tif (value.length > 0) {\n\t\t\t\tif (iKeyCode === 40 || iKeyCode === 38) {\n\t\t\t\t\tlistitems = selfScope.dom.dropdownList\n\t\t\t\t\t\t.find(\".site-search__suggestions-listitem\")\n\t\t\t\t\t\t.removeClass(\"is-active\");\n\n\t\t\t\t\tif (iKeyCode === 40) {\n\t\t\t\t\t\t// Down\n\t\t\t\t\t\tif (selfScope.settings.chosen === \"\") {\n\t\t\t\t\t\t\tselfScope.settings.chosen = 0;\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\tselfScope.settings.chosen + 1 <\n\t\t\t\t\t\t\tlistitems.length\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tselfScope.settings.chosen += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (iKeyCode === 38) {\n\t\t\t\t\t\t// Up\n\t\t\t\t\t\tif (selfScope.settings.chosen === \"\") {\n\t\t\t\t\t\t\tselfScope.settings.chosen = 0;\n\t\t\t\t\t\t} else if (selfScope.settings.chosen > 0) {\n\t\t\t\t\t\t\tselfScope.settings.chosen -= 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// find active item\n\t\t\t\t\tactiveListItem = $(listitems[selfScope.settings.chosen]);\n\t\t\t\t\t// and show it\n\t\t\t\t\tactiveListItem.addClass(\"is-active\");\n\t\t\t\t\t// get text from item\n\t\t\t\t\tresult = activeListItem.data(\"term\");\n\t\t\t\t\t// and show it in the input field\n\t\t\t\t\tselfScope.dom.input.val(result);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tthis.requestSuggestions = function (suggestion) {\n\t\t\tvar selfScope = this,\n\t\t\t\tsuggestions = [];\n\n\t\t\tif (suggestion) {\n\t\t\t\tfetch(\n\t\t\t\t\tselfScope.settings.typeAheadUrl +\n\t\t\t\t\t\tencodeURIComponent(suggestion),\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"get\",\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\tif (response.status !== 200) {\n\t\t\t\t\t\t\twindow.console.log(\n\t\t\t\t\t\t\t\t\"Looks like there was a problem. Status Code: \" +\n\t\t\t\t\t\t\t\t\tresponse.status\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t//Examine the text in the response\n\t\t\t\t\t\tresponse.json().then(function (data) {\n\t\t\t\t\t\t\tif (data) {\n\t\t\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\t\t\tvar i = 0, len = data.length;\n\t\t\t\t\t\t\t\t\ti < len;\n\t\t\t\t\t\t\t\t\ti += 1\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tsuggestions.push(data[i]);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t//Enable submit button...\n\t\t\t\t\t\t\t\t$(document).trigger(\"can.search\", true);\n\t\t\t\t\t\t\t\t//...Show dropdown...\n\t\t\t\t\t\t\t\tselfScope.showDropdown();\n\t\t\t\t\t\t\t\t//...and fill it with the result(s)\n\t\t\t\t\t\t\t\tselfScope.buildDropdown(suggestions);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t//No results on word so we hide the dropdown\n\t\t\t\t\t\t\t\tselfScope.hideDropdown();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function (err) {\n\t\t\t\t\t\twindow.console.log(\"Fetch Error :-S\", err);\n\t\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tfunction mouseEnterDropDown() {\n\t\t\t$(this).addClass(\"is-active\");\n\t\t\t// show term in the input field\n\t\t\tselfScope.dom.input.val($(this).data(\"term\"));\n\t\t}\n\n\t\tfunction mouseLeaveDropDown() {\n\t\t\t$(this).removeClass(\"is-active\");\n\t\t}\n\n\t\tfunction mouseClick(e) {\n\t\t\te.preventDefault();\n\t\t\t// show term in the input field\n\t\t\tselfScope.dom.input.val($(this).data(\"term\"));\n\t\t\t// reset maxResults\n\t\t\tselfScope.settings.maxResults = 10;\n\t\t\t// search for the term\n\t\t\tselfScope.searchTerm($(this).data(\"term\"), \"\");\n\t\t}\n\n\t\tthis.buildDropdown = function (suggestions) {\n\t\t\tvar selfScope = this,\n\t\t\t\tlistitems = [],\n\t\t\t\tsuggestionsLength = suggestions.length;\n\n\t\t\tselfScope.emptyDropdownList();\n\t\t\tselfScope.emptyContentTypeList();\n\t\t\tselfScope.settings.contentTypeGroups = \"\";\n\t\t\t// selfScope.emptySearchList();\n\t\t\t$(selfScope.dom.loadMoreButton).addClass(\"is-hidden\");\n\t\t\t// selfScope.dom.searchContentTypes.addClass(\"is-hidden\");\n\t\t\t// selfScope.dom.totalResults.addClass(\"is-hidden\");\n\n\t\t\tif (!suggestionsLength) {\n\t\t\t\tselfScope.hideDropdown();\n\t\t\t} else {\n\t\t\t\tfor (var i = 0; i < suggestionsLength; i += 1) {\n\t\t\t\t\tvar listitem = selfScope.createTypeAheadListitem(\n\t\t\t\t\t\tsuggestions[i].Term,\n\t\t\t\t\t\tsuggestions[i].AverageNumberOfResults\n\t\t\t\t\t);\n\n\t\t\t\t\t$(listitem).on({\n\t\t\t\t\t\tmouseenter: mouseEnterDropDown,\n\t\t\t\t\t\tmouseleave: mouseLeaveDropDown,\n\t\t\t\t\t\tclick: mouseClick,\n\t\t\t\t\t});\n\n\t\t\t\t\tlistitems.push(listitem);\n\t\t\t\t}\n\t\t\t\tselfScope.dom.dropdownList.append(listitems);\n\t\t\t}\n\t\t};\n\n\t\tfunction ContentTypeListClick(e) {\n\t\t\te.preventDefault();\n\t\t\tvar item = e.currentTarget,\n\t\t\t\t$item = $(this),\n\t\t\t\t$listItems = selfScope.dom.searchContentTypesList.find(\"li\"),\n\t\t\t\tlistItemsCount = $listItems.length,\n\t\t\t\tactiveListItemsCount =\n\t\t\t\t\tselfScope.dom.searchContentTypesList.find(\".active\").length,\n\t\t\t\ttemp = [];\n\n\t\t\tif (listItemsCount === activeListItemsCount) {\n\t\t\t\t// index is necessary even if jshint does not see this way\n\t\t\t\t$listItems.map(function (_index, element) {\n\t\t\t\t\tif (item !== element) {\n\t\t\t\t\t\t$(element).addClass(\"not-active\").removeClass(\"active\");\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif ($item.hasClass(\"not-active\")) {\n\t\t\t\t\t$item.removeClass(\"not-active\").addClass(\"active\");\n\t\t\t\t} else if (activeListItemsCount > 1) {\n\t\t\t\t\t$item.removeClass(\"active\").addClass(\"not-active\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// create new contenttype array from new active elements\n\t\t\ttemp = selfScope.dom.searchContentTypesList.find(\".active\");\n\n\t\t\tselfScope.settings.currentContentTypes = [];\n\n\t\t\t// add the new contenttype array to current array\n\t\t\tif (listItemsCount !== temp.length) {\n\t\t\t\t// index is necessary even if jshint does not see this way\n\t\t\t\ttemp.each(function (index, element) {\n\t\t\t\t\tselfScope.settings.currentContentTypes.push(\n\t\t\t\t\t\telement.dataset.contenttype\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tselfScope.settings.currentContentTypes = [];\n\t\t\t}\n\n\t\t\t// empty the serachlist or it will add up...\n\t\t\tselfScope.emptySearchList();\n\t\t\t// cache the old startIndex\n\t\t\tselfScope.settings.tempStartIndex = selfScope.settings.startIndex;\n\t\t\t// reset startIndex\n\t\t\tselfScope.settings.startIndex = 1;\n\n\t\t\t////window.console.log(selfScope.settings.currentContentTypes);\n\n\t\t\t// and search the current term again, but with the new contenttype array\n\t\t\t// we dont want to search if the array is empty = search for everyting\n\t\t\tif (selfScope.settings.currentContentTypes.length > 0) {\n\t\t\t\t// search\n\t\t\t\tselfScope.searchTerm(\n\t\t\t\t\tselfScope.settings.currentSearchTerm,\n\t\t\t\t\tselfScope.settings.currentContentTypes.join(\"|\")\n\t\t\t\t);\n\t\t\t\t// add back startIndex old value\n\t\t\t\tselfScope.settings.startIndex =\n\t\t\t\t\tselfScope.settings.tempStartIndex;\n\t\t\t} else {\n\t\t\t\t// if no contenttypes chosen, search with a blank term = empty the searchlist\n\t\t\t\tselfScope.searchTerm(selfScope.settings.currentSearchTerm, \"\");\n\t\t\t}\n\t\t}\n\n\t\tthis.buildContentTypeList = function (contentTypes) {\n\t\t\tvar selfScope = this,\n\t\t\t\tlistitems = [],\n\t\t\t\ttempContentTypes = [];\n\t\t\t// loop them and set up click events\n\t\t\tfor (var i = 0; i < contentTypes.length; i += 1) {\n\t\t\t\tvar listitem = selfScope.createContentTypeListitem(\n\t\t\t\t\tcontentTypes[i].Value\n\t\t\t\t);\n\n\t\t\t\ttempContentTypes.push(contentTypes[i].Value);\n\n\t\t\t\t$(listitem).on({\n\t\t\t\t\tclick: ContentTypeListClick,\n\t\t\t\t});\n\n\t\t\t\tlistitems.push(listitem);\n\t\t\t}\n\n\t\t\tselfScope.settings.currentContentTypes = tempContentTypes;\n\t\t\tselfScope.dom.searchContentTypesList.append(listitems);\n\t\t\tselfScope.dom.searchContentTypes.removeClass(\"is-hidden\");\n\t\t};\n\n\t\tthis.searchTerm = function (term, contentTypes, urlSearch) {\n\t\t\tvar selfScope = this,\n\t\t\t\ttempUrlMaxResult,\n\t\t\t\ttermUrlQueryString,\n\t\t\t\ttermUrl;\n\n\t\t\tif (term) {\n\t\t\t\t// if search come from section site (simple search) then do a redirect to search page\n\t\t\t\tif (selfScope.settings.searchType) {\n\t\t\t\t\twindow.location =\n\t\t\t\t\t\tselfScope.settings.typeAheadRedirectUrl + \"?q=\" + term;\n\t\t\t\t\treturn;\n\t\t\t\t} else {\n\t\t\t\t\tif (!urlSearch) {\n\t\t\t\t\t\t// cache searchterm\n\t\t\t\t\t\tselfScope.settings.currentSearchTerm = term;\n\t\t\t\t\t\t// build search url\n\t\t\t\t\t\ttermUrlQueryString =\n\t\t\t\t\t\t\t\"?q=\" +\n\t\t\t\t\t\t\tencodeURIComponent(\n\t\t\t\t\t\t\t\tselfScope.settings.currentSearchTerm\n\t\t\t\t\t\t\t) +\n\t\t\t\t\t\t\t(contentTypes\n\t\t\t\t\t\t\t\t? \"&contenttype=\" +\n\t\t\t\t\t\t\t\t encodeURIComponent(contentTypes)\n\t\t\t\t\t\t\t\t: \"\") +\n\t\t\t\t\t\t\t(selfScope.settings.startIndex > 1\n\t\t\t\t\t\t\t\t? \"&startIndex=\" + selfScope.settings.startIndex\n\t\t\t\t\t\t\t\t: \"\") +\n\t\t\t\t\t\t\t(selfScope.settings.tempMaxResults\n\t\t\t\t\t\t\t\t? \"&maxResults=\" +\n\t\t\t\t\t\t\t\t selfScope.settings.tempMaxResults\n\t\t\t\t\t\t\t\t: \"\");\n\n\t\t\t\t\t\ttermUrl =\n\t\t\t\t\t\t\tselfScope.settings.termUrl + termUrlQueryString;\n\n\t\t\t\t\t\t// add the current search string to the url\n\t\t\t\t\t\twindow.history.pushState(\n\t\t\t\t\t\t\t\"\",\n\t\t\t\t\t\t\t\"sidste søgning\",\n\t\t\t\t\t\t\ttermUrlQueryString\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// cache searchterm\n\t\t\t\t\t\tselfScope.settings.currentSearchTerm =\n\t\t\t\t\t\t\tselfScope.getParameterByName(\"q\");\n\t\t\t\t\t\t// cache maxResults\n\t\t\t\t\t\ttempUrlMaxResult =\n\t\t\t\t\t\t\tselfScope.getParameterByName(\"maxResults\");\n\t\t\t\t\t\t// and save it if its bigger - cause we want everything\n\t\t\t\t\t\tif (tempUrlMaxResult > selfScope.settings.maxResults) {\n\t\t\t\t\t\t\tselfScope.settings.maxResults = parseInt(\n\t\t\t\t\t\t\t\ttempUrlMaxResult,\n\t\t\t\t\t\t\t\t10\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// build search url\n\t\t\t\t\t\ttermUrl = selfScope.settings.termUrl + term;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// put serach term in search field\n\t\t\t\tselfScope.dom.input.val(selfScope.settings.currentSearchTerm);\n\n\t\t\t\t// empty searchlist\n\t\t\t\tif (!selfScope.settings.loadMore) {\n\t\t\t\t\tselfScope.emptySearchList();\n\t\t\t\t}\n\n\t\t\t\t// hide dropdown\n\t\t\t\tselfScope.hideDropdown();\n\n\t\t\t\t// serach the api\n\t\t\t\tfetch(termUrl, {\n\t\t\t\t\tmethod: \"get\",\n\t\t\t\t})\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\tif (response.status !== 200) {\n\t\t\t\t\t\t\twindow.console.log(\n\t\t\t\t\t\t\t\t\"Looks like there was a problem. Status Code: \" +\n\t\t\t\t\t\t\t\t\tresponse.status\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t//Examine the text in the response\n\t\t\t\t\t\tresponse.json().then(function (data) {\n\t\t\t\t\t\t\tselfScope.handleSearchData(data);\n\n\t\t\t\t\t\t\tselfScope.ankiroSearchID = data.SearchId;\n\t\t\t\t\t\t\tselfScope.ankiroDocumentOffset = data.Offset;\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function (err) {\n\t\t\t\t\t\twindow.console.log(\"Fetch Error :-S\", err);\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// if the search term is empty (all contenttypes is removed)\n\t\t\t\t// empty searchlist\n\t\t\t\tselfScope.emptySearchList();\n\t\t\t}\n\t\t};\n\n\t\tthis.handleSearchData = function (data) {\n\t\t\tvar selfScope = this,\n\t\t\t\tlistitems = [];\n\n\t\t\tif (data.Documents.length) {\n\t\t\t\t// build contentType list, but only the first time,\n\t\t\t\t// cause we have our search term\n\t\t\t\tif (\n\t\t\t\t\t!selfScope.settings.contentTypeGroups.length &&\n\t\t\t\t\tdata.Decorations.FacetDefinitions.length\n\t\t\t\t) {\n\t\t\t\t\tselfScope.settings.contentTypeGroups =\n\t\t\t\t\t\tdata.Decorations.FacetDefinitions[0].Properties[0].Buckets;\n\t\t\t\t\tselfScope.buildContentTypeList(\n\t\t\t\t\t\tselfScope.settings.contentTypeGroups\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0; i < data.Documents.length; i += 1) {\n\t\t\t\t\tvar result = {};\n\n\t\t\t\t\tfor (\n\t\t\t\t\t\tvar j = 0;\n\t\t\t\t\t\tj < data.Documents[i].Properties.length;\n\t\t\t\t\t\tj += 1\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdata.Documents[i].Properties[j].Name === \"Title\" &&\n\t\t\t\t\t\t\tresult.title === undefined\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tresult.title =\n\t\t\t\t\t\t\t\tdata.Documents[i].Properties[j].Value;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdata.Documents[i].Properties[j].Name ===\n\t\t\t\t\t\t\t\t\"AltTitle\" &&\n\t\t\t\t\t\t\tdata.Documents[i].Properties[j].Value !== \"\"\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tresult.title =\n\t\t\t\t\t\t\t\tdata.Documents[i].Properties[j].Value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdata.Documents[i].Properties[j].Name === \"Uri\" &&\n\t\t\t\t\t\t\tresult.url === undefined\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tresult.url = data.Documents[i].Properties[j].Value;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdata.Documents[i].Properties[j].Name === \"AltUri\" &&\n\t\t\t\t\t\t\tdata.Documents[i].Properties[j].Value !== \"\"\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tresult.url = data.Documents[i].Properties[j].Value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdata.Documents[i].Properties[j].Name === \"Content\"\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tresult.content =\n\t\t\t\t\t\t\t\tdata.Documents[i].Properties[j].ValueMarkup;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.content = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdata.Documents[i].Properties[j].Name ===\n\t\t\t\t\t\t\t\"ContentType\"\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tresult.contentType =\n\t\t\t\t\t\t\t\tdata.Documents[i].Properties[j].Value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar listitem = selfScope.createSearchTermListitem(\n\t\t\t\t\t\tresult.url,\n\t\t\t\t\t\tresult.title,\n\t\t\t\t\t\tresult.contentType,\n\t\t\t\t\t\tresult.content,\n\t\t\t\t\t\tdata.Documents[i].Id\n\t\t\t\t\t);\n\t\t\t\t\tlistitems.push(listitem);\n\t\t\t\t}\n\n\t\t\t\t// Show searchbanner\n\t\t\t\tif (data.Decorations.Banners) {\n\t\t\t\t\tselfScope.dom.searchBanner\n\t\t\t\t\t\t.find(\".content\")\n\t\t\t\t\t\t.html(data.Decorations.Banners[0].BannerText);\n\t\t\t\t\tselfScope.dom.searchBanner.removeClass(\"is-hidden\");\n\t\t\t\t} else {\n\t\t\t\t\tselfScope.dom.searchBanner.remove();\n\t\t\t\t}\n\n\t\t\t\t// Show alias\n\t\t\t\tif (data.Decorations.ZeroSearchResult) {\n\t\t\t\t\tselfScope.dom.searchAlias\n\t\t\t\t\t\t.html(data.Decorations.ZeroSearchResult.ExplanationText)\n\t\t\t\t\t\t.removeClass(\"is-hidden\");\n\t\t\t\t} else {\n\t\t\t\t\tselfScope.dom.searchAlias.html(\"\").addClass(\"is-hidden\");\n\t\t\t\t}\n\n\t\t\t\tselfScope.dom.totalResults\n\t\t\t\t\t.removeClass(\"is-hidden\")\n\t\t\t\t\t.text(data.TotalResults + \" resultater\");\n\t\t\t\tselfScope.dom.searchList.append(listitems);\n\n\t\t\t\t// only show loadmore button if we have enough results\n\t\t\t\tif (!selfScope.settings.loadMore) {\n\t\t\t\t\tif (data.TotalResults > selfScope.settings.maxResults) {\n\t\t\t\t\t\tselfScope.dom.searchResult.append(\n\t\t\t\t\t\t\tselfScope.createLoadMoreButton()\n\t\t\t\t\t\t);\n\t\t\t\t\t\tselfScope.settings.loadMore = true;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (\n\t\t\t\t\t\tdata.TotalResults > selfScope.settings.tempMaxResults &&\n\t\t\t\t\t\tdata.TotalResults > selfScope.settings.maxResults\n\t\t\t\t\t) {\n\t\t\t\t\t\tselfScope.dom.loadMoreButton[0].disabled = false;\n\t\t\t\t\t\tselfScope.dom.loadMoreButton[0].innerText = \"Vis flere\";\n\t\t\t\t\t\t$(selfScope.dom.loadMoreButton).removeClass(\n\t\t\t\t\t\t\t\"is-hidden\"\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselfScope.dom.loadMoreButton[0].disabled = true;\n\t\t\t\t\t\tselfScope.dom.loadMoreButton[0].innerText =\n\t\t\t\t\t\t\t\"ikke flere resultater\";\n\t\t\t\t\t\tselfScope.settings.startIndex = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Maybe the loadMore button is not created yet - first search with no results\n\t\t\t\tif (selfScope.settings.loadMore) {\n\t\t\t\t\tselfScope.dom.loadMoreButton[0].disabled = true;\n\t\t\t\t\tselfScope.dom.loadMoreButton[0].innerText =\n\t\t\t\t\t\t\"ikke flere resultater\";\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tfunction init() {\n\t\t\tdom.container = $(configuration.container);\n\n\t\t\tselfScope.loadDOM(dom.container);\n\n\t\t\t// check if we are on another page than /search\n\t\t\t// if we are, add flag - used in searchTerm()\n\t\t\tselfScope.settings.searchType = selfScope.dom.container[0].dataset\n\t\t\t\t.searchtype\n\t\t\t\t? true\n\t\t\t\t: false;\n\n\t\t\tselfScope.dom.input.on({\n\t\t\t\tfocus: function () {\n\t\t\t\t\tselfScope.onFocus();\n\t\t\t\t},\n\t\t\t\tblur: function () {\n\t\t\t\t\tselfScope.onBlur();\n\t\t\t\t},\n\t\t\t\tkeyup: function (e) {\n\t\t\t\t\tselfScope.onKeyup(e);\n\t\t\t\t},\n\t\t\t\tkeydown: function (e) {\n\t\t\t\t\tselfScope.onKeydown(e);\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// prevent form submit\n\t\t\t// and serach for the term word\n\t\t\tselfScope.dom.form.on(\"submit\", function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\t// reset settings\n\t\t\t\tselfScope.settings.startIndex = 1;\n\t\t\t\tselfScope.settings.tempStartIndex = 0;\n\t\t\t\tselfScope.settings.maxResults = 10;\n\t\t\t\tselfScope.settings.tempMaxResults = 0;\n\t\t\t\tselfScope.settings.loadMore = false;\n\t\t\t\tselfScope.searchTerm(selfScope.dom.input.val(), \"\");\n\t\t\t\treturn false;\n\t\t\t});\n\n\t\t\tif (window.location.search) {\n\t\t\t\tselfScope.settings.startIndex = 1;\n\t\t\t\tif (selfScope.isParameterByName(\"q\")) {\n\t\t\t\t\tselfScope.searchTerm(window.location.search, \"\", true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tselfScope.onReady(init);\n\t};\n\n\tdis.Search.prototype = new dis.BaseModule();\n\tdis.Search.constructor = dis.Search;\n})(jQuery, dis);\n","/*jshint esnext: true */\n/*global jQuery, dis, Swiper, vhCheck */\n\n/* DIS/PLAY Script\n Author's name: ...\n Modified by:\n Client name: ...\n Date of creation: ...\n */\n\n(function ($, dis) {\n\t\"use strict\";\n\n\tfunction init() {\n\t\tvar modules = {};\n\n\t\tmodules.Forms = new dis.Forms({ container: $(\".formular\") });\n\n\t\tmodules.Nav = new dis.Nav({ container: $(\".navigation\") });\n\t\tmodules.Cookiepolicy = new dis.Cookiepolicy({\n\t\t\tcontainer: $(\".cookiepolicy\"),\n\t\t});\n\t\tmodules.DepartmentFinder = new dis.DepartmentFinder({\n\t\t\tcontainer: $(\".department-finder\"),\n\t\t});\n\n\t\tvar heroSwiper = new Swiper(\".hero-slider_swiper\", {\n\t\t\tslidesPerView: 1,\n\t\t\tspeed: 1200,\n\t\t\tloop: true,\n\t\t\tnavigation: {\n\t\t\t\tnextEl: \".swiper-button-next\",\n\t\t\t\tprevEl: \".swiper-button-prev\",\n\t\t\t},\n\t\t\tpagination: {\n\t\t\t\tel: \".swiper-pagination\",\n\t\t\t\tclickable: true,\n\t\t\t},\n\t\t});\n\n\t\tvar animation = bodymovin.loadAnimation({\n\t\t\tcontainer: document.querySelector(\".lottie-animation--hero\"),\n\t\t\trenderer: \"svg\",\n\t\t\tloop: false,\n\t\t\tautoplay: true,\n\t\t\tpath: \"/Files/Templates/Designs/3B/frontend/static/dist/js/3b-animations/carrousel.json\",\n\t\t});\n\n\t\tvar animationIsPlaused = false;\n\n\t\theroSwiper.on(\"slideChangeTransitionEnd\", function () {\n\t\t\tanimation.play();\n\t\t});\n\n\t\tanimation.addEventListener(\"complete\", function (event) {\n\t\t\tanimation.stop();\n\t\t\tanimationIsPlaused = false;\n\t\t});\n\n\t\tsetInterval(function () {\n\t\t\theroSwiper.slideNext();\n\t\t}, 10000);\n\n\t\tanimation.addEventListener(\"enterFrame\", function (event) {\n\t\t\tif (event.currentTime > 80 && !animationIsPlaused) {\n\t\t\t\tanimation.pause();\n\t\t\t\tanimationIsPlaused = true;\n\t\t\t}\n\t\t});\n\n\t\tmodules.Animations = {};\n\t\t$(\"[data-animation-name]\").each(function (index) {\n\t\t\tmodules.Animations[index] = new dis.Animations({ container: this });\n\t\t});\n\n\t\tmodules.Accordion = {};\n\t\t$('[data-module=\"accordion\"]').each(function (index) {\n\t\t\tmodules.Accordion[index] = new dis.Accordion({ container: this });\n\t\t});\n\n\t\tmodules.imgoverlay = {};\n\t\t$(\".imgoverlay__link\").each(function (index) {\n\t\t\tmodules.imgoverlay[index] = new dis.ImgOverlay({ container: this });\n\t\t});\n\n\t\tmodules.Search = {};\n\t\t$(\".site-search\").each(function (index) {\n\t\t\tmodules.Search[index] = new dis.Search({ container: this });\n\t\t});\n\n\t\tmodules.ContentBox = {};\n\t\t$(\".content-box--readmore\").each(function (index) {\n\t\t\tmodules.ContentBox[index] = new dis.ContentBox({ container: this });\n\t\t});\n\n\t\tvar newsSwiper = new Swiper(\".news-swiper\", {\n\t\t\tslidesPerView: 2.5,\n\t\t\tspeed: 1200,\n\t\t\tspaceBetween: 50,\n\t\t\tnavigation: {\n\t\t\t\tnextEl: \".news-swiper-button-next\",\n\t\t\t\tprevEl: \".news-swiper-button-prev\",\n\t\t\t},\n\t\t\tpagination: {\n\t\t\t\tel: \".news-swiper-pagination\",\n\t\t\t\tclickable: true,\n\t\t\t},\n\t\t\tobserver: true,\n\t\t\tresizeObserver: true,\n\t\t\tbreakpoints: {\n\t\t\t\t450: {\n\t\t\t\t\tslidesPerView: 1.2,\n\t\t\t\t\tspaceBetween: 20,\n\t\t\t\t},\n\t\t\t\t820: {\n\t\t\t\t\tslidesPerView: 1.7,\n\t\t\t\t\tspaceBetween: 20,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\t// $(window).on(\"orientationchange resize\", function () {\n\t\t// \tnewsSwiper.update();\n\t\t// });\n\n\t\t// dis.modules = modules;\n\n\t\t// Updating consent cookie used by DW when loading page or changing consent in CookieInformation\n\t\twindow.addEventListener(\n\t\t\t\"CookieInformationConsentGiven\",\n\t\t\tfunction (event) {\n\t\t\t\t// generate string of cookies enabled\n\t\t\t\tlet consent = [];\n\t\t\t\t// consent.push(\"N_dvendige\");\n\t\t\t\tif (\n\t\t\t\t\tCookieInformation.getConsentGivenFor(\n\t\t\t\t\t\t\"cookie_cat_functional\"\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tconsent.push(\"Funktionelle\");\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tCookieInformation.getConsentGivenFor(\"cookie_cat_statistic\")\n\t\t\t\t) {\n\t\t\t\t\tconsent.push(\"Statistik\");\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tCookieInformation.getConsentGivenFor(\"cookie_cat_marketing\")\n\t\t\t\t) {\n\t\t\t\t\tconsent.push(\"Marketing\");\n\t\t\t\t}\n\n\t\t\t\tlet d = new Date();\n\t\t\t\td.setTime(d.getTime() + 365 * 24 * 60 * 60 * 1000); // Exprires in 365 days\n\t\t\t\tlet expires = \"expires=\" + d.toUTCString();\n\t\t\t\tdocument.cookie =\n\t\t\t\t\t\"Dynamicweb.CookieOptInLevel=1&Categories=\" +\n\t\t\t\t\tconsent.join(\",\") +\n\t\t\t\t\t\";\" +\n\t\t\t\t\texpires +\n\t\t\t\t\t\";path=/\";\n\t\t\t}\n\t\t);\n\t}\n\n\t// Initialize the main script(s) once the DOM is ready. Not only does this mean that all your DOM-references will\n\t// work, but more importantly: Gulp is compiling all your scripts into one big file, but the closures are run as soon\n\t// as they're available. Meaning: if your \"main\" closure is run BEFORE your \"module\"-closure, it might try to instantiate\n\t// your modules before the browser actually knows them. Using jQuery's ready-function alleviates this problem.\n\tdis.BaseModule.prototype.onReady(init);\n})(jQuery, dis);\n"],"sourceRoot":"/source/"}