{"version":3,"sources":["webpack:///./node_modules/swiper/dist/js/swiper.esm.bundle.js","webpack:///./node_modules/ssr-window/dist/ssr-window.esm.js","webpack:///./node_modules/dom7/dist/dom7.modular.js"],"names":["_dom","__webpack_require__","_ssrWindow","Methods","addClass","removeClass","hasClass","toggleClass","attr","removeAttr","data","transform","transition","on","off","trigger","transitionEnd","outerWidth","outerHeight","offset","css","each","html","text","is","index","eq","append","prepend","next","nextAll","prev","prevAll","parent","parents","closest","find","children","remove","add","styles","Object","keys","forEach","methodName","$","fn","Utils","deleteProps","obj","object","key","e","nextTick","callback","delay","arguments","length","undefined","setTimeout","now","Date","getTranslate","el","axis","matrix","curTransform","transformMatrix","curStyle","window","getComputedStyle","WebKitCSSMatrix","webkitTransform","split","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","getPropertyValue","toString","m41","parseFloat","m42","parseUrlQuery","url","query","urlToParse","location","href","i","params","param","indexOf","filter","paramsPart","decodeURIComponent","isObject","o","_typeof","constructor","extend","to","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","Support","testDiv","document","createElement","touch","Modernizr","DocumentTouch","pointerEvents","navigator","pointerEnabled","PointerEvent","prefixedPointerEvents","msPointerEnabled","style","transforms3d","csstransforms3d","flexbox","styles$$1","observer","passiveListener","supportsPassive","opts","defineProperty","get","addEventListener","gestures","SwiperClass","_classCallCheck","this","self","eventsListeners","eventName","events","handler","priority","method","event","onceHandler","_len","args","Array","_key","apply","eventHandler","index$$1","splice","data$$1","context","_len2","_key2","isArray","slice","handlers","push","instanceParams","instance","modules","moduleName","module","modulesParams","moduleParams","modulePropName","moduleProp","bind","moduleEventName","create","Class","prototype","name","proto","static","install","_len3","_key3","m","installModule","_len4","_key4","concat","components","use","update","updateSize","width","height","$el","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","size","updateSlides","$wrapperEl","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","call","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","slidesNumberEvenToRows","slidesPerColumn","Math","floor","ceil","slidesPerView","slidesPerColumnFill","max","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","swiperSlideSize","centeredSlides","abs","slidesPerGroup","newSlidesGrid","effect","setWrapperSize","slidesGridItem","centerInsufficientSlides","allSlidesSize","slideSizeValue","allSlidesOffset","snap","snapIndex","emit","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","speed","activeSlides","newHeight","setTransition","activeIndex","offsetHeight","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","visibleSlides","slideProgress","minTranslate","slideBefore","slideAfter","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","target","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","x","y","previousTranslate","transition$1","duration","transitionStart","runCallbacks","direction","autoHeight","dir","animating","slideTo","internal","swiper","slideIndex","preventInteractionOnTransition","initialSlide","initialized","allowSlideNext","allowSlidePrev","onSlideToWrapperTransitionEnd","destroyed","removeEventListener","slideToLoop","newIndex","loopedSlides","slideNext","loopFix","_clientLeft","clientLeft","slidePrev","normalize","val","normalizedTranslate","normalizedSnapGrid","prevSnap","prevIndex","slideReset","slideToClosest","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","diff","loopDestroy","grabCursor","setGrabCursor","moving","simulateTouch","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","unshift","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","Device","ua","userAgent","device","ios","android","androidChrome","desktop","windows","iphone","ipod","ipad","cordova","phonegap","match","os","osVersion","toLowerCase","webView","osVersionArr","metaViewport","querySelector","minimalUi","getAttribute","pixelRatio","devicePixelRatio","onResize","offsetWidth","breakpoints","setBreakpoint","freeMode","newTranslate","min","attachEvents","touchEvents","wrapperEl","onTouchStart","touchEventsData","touches","originalEvent","isTouchEvent","type","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","pow","touchAngle","atan2","PI","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","velocities","position","time","onTouchEnd","touchEndTime","timeDiff","lastClickTime","clickTimeout","clearTimeout","currentPos","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","doBounce","afterBouncePosition","bounceAmount","freeModeMomentumBounceRatio","needsLoopFix","freeModeMomentumBounce","freeModeSticky","j","once","longSwipesMs","stopIndex","groupSize","ratio","longSwipes","longSwipesRatio","shortSwipes","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","touchEventsTarget","capture","start","passiveListeners","passive","move","end","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","needsReLoop","points","point","sort","b","breakpointsInverse","innerWidth","Browser","isIE","isEdge","isSafari","isUiWebView","test","defaults","init","uniqueNavElements","preloadImages","updateOnImagesReady","containerModifierClass","wrapperClass","runCallbacksOnInit","prototypes","wasLocked","navigation","classes","addClasses","classNames","suffixes","suffix","removeClasses","images","loadImage","imageEl","src","srcset","sizes","checkForComplete","image","onReady","complete","Image","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","_len5","_key5","_this","_possibleConstructorReturn","__proto__","getPrototypeOf","prototypeGroup","protoMethod","moduleParamName","swiperParams","useModulesParams","passedParams","swipers","containerEl","newParams","touchEventsTouch","touchEventsDesktop","useModules","spv","breakLoop","translateValue","deleteInstance","cleanStyles","newDefaults","Device$1","Support$1","support","Browser$1","browser","Resize","resize","resizeHandler","orientationChangeHandler","destroy","Observer","func","MutationObserver","WebkitMutationObserver","attach","options","ObserverFunc","mutations","observerUpdate","requestAnimationFrame","observe","attributes","childList","characterData","observers","observeParents","containerParents","disconnect","Observer$1","Virtual","force","_swiper$params","_swiper$params$virtua","addSlidesBefore","addSlidesAfter","_swiper$virtual","previousFrom","from","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","offset$$1","onRendered","lazy","load","renderExternal","slidesToRender","prependIndexes","appendIndexes","cache","$slideEl","newCache","cachedIndex","Virtual$1","beforeInit","overwriteParams","Keyboard","handle","kc","keyCode","charCode","shiftKey","altKey","ctrlKey","metaKey","nodeName","keyboard","onlyInViewport","inView","windowWidth","windowHeight","innerHeight","swiperOffset","left","scrollLeft","swiperCoord","top","returnValue","enable","disable","Keyboard$1","Mousewheel","lastScrollTime","isSupported","element","setAttribute","implementation","hasFeature","isEventSupported","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","mousewheel","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","sensitivity","timeout","autoplay","autoplayDisableOnInteraction","stop","getTime","eventsTarged","Navigation","_swiper$navigation","$nextEl","$prevEl","disabledClass","lockClass","onPrevClick","onNextClick","nextEl","prevEl","_swiper$navigation2","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","render","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","hiddenClass","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","hide","opacity","divider","moveDivider","display","scrollbarHide","setDragPosition","positionRatio","clientX","clientY","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","draggable","Parallax","setTransform","p","currentOpacity","currentScale","parallax","slideEl","parallaxEl","$parallaxEl","parallaxDuration","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","toggle","out","in","zoomedSlideClass","touchX","touchY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","imageIndex","background","preloaderClass","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","elIndex","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","Controller","LinearSpline","binarySearch","guess","array","i1","i3","interpolate","getInterpolateFunction","c","controller","spline","controlled","control","multiplier","controlledTranslate","setControlledTranslate","by","inverse","setControlledTransition","a11y","makeElFocusable","addElRole","role","addElLabel","label","disableEl","enableEl","onEnterKey","$targetEl","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","click","message","notification","liveRegion","updateNavigation","_swiper$navigation4","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","History","history","pushState","hashNavigation","paths","getPathValues","value","scrollToSlide","replaceState","setHistoryPopState","pathArray","pathname","part","setHistory","slugify","includes","currentState","state","text$$1","HashNavigation","onHashCange","newHash","hash","setHash","watchState","Autoplay","run","$activeSlideEl","reverseDirection","stopOnLastSlide","running","pause","paused","waitForTransition","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","Cube","swiperWidth","swiperHeight","cubeEffect","wrapperRotate","$cubeShadowEl","shadow","slideAngle","round","tz","transform$$1","slideShadows","shadowBefore","shadowAfter","-webkit-transform-origin","-moz-transform-origin","-ms-transform-origin","transform-origin","shadowOffset","shadowScale","shadowAngle","sin","cos","scale1","scale2","zFactor","Flip","flipEffect","limitRotation","rotateY","rotateX","zIndex","Coverflow","coverflowEffect","center","rotate","depth","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","perspectiveOrigin","Thumbs","thumbsParams","thumbs","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","initial","currentThumbsIndex","newThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","hideOnClick","toEdge","fromEdge","_swiper$navigation3","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","touchStart","touchEnd","doubleTap","loadOnTransitionStart","scroll","scrollbarDragMove","notificationClass","paginationUpdate","disableOnInteraction","beforeTransitionStart","sliderFirstMove","slideChange","beforeDestroy","doc","body","querySelectorAll","getElementById","createEvent","initEvent","childNodes","getElementsByTagName","win","CustomEvent","Dom7","arr","selector","els","tempParent","trim","toCreate","innerHTML","nodeType","unique","uniqueArray","toCamelCase","string","group1","toUpperCase","webkitRequestAnimationFrame","noTrigger","eventShortcut","_len10","_key10","className","classList","contains","attrs","attrName","removeAttribute","prop","props","propName","dom7ElementDataStorage","dataKey","removeData","dataset","multiple","selected","values","selectedOptions","elStyle","webkitTransitionDuration","transitionDuration","eventType","targetSelector","listener","handleLiveEvent","eventData","dom7EventData","k","handleEvent","dom7LiveListeners","proxyListener","dom7Listeners","dom","proxy","eventArgs","evt","bubbles","cancelable","dataIndex","dispatchEvent","fireCallBack","animationEnd","includeMargins","box","getBoundingClientRect","clientTop","scrollTop","scrollY","scrollX","show","toArray","matchedItems","modifiedItems","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","returnIndex","newChild","tempDiv","firstChild","appendChild","appendTo","insertBefore","prependTo","before","parentNode","insertAfter","after","nextSibling","nextElementSibling","nextEls","previousElementSibling","prevEls","siblings","foundElements","found","removeChild","detach","_len6","_key6","toAdd","empty","scrollTo","_len7","_key7","easing","currentTop","currentLeft","maxTop","maxLeft","newTop","newLeft","animateTop","animateLeft","scrollHeight","scrollWidth","startTime","easeProgress","done","_len8","_key8","_len9","_key9","animate","initialProps","initialParams","assign","elements","que","easingProgress","frameId","id","cancelAnimationFrame","webkitCancelAnimationFrame","dom7AnimateInstance","shift","initialFullValue","initialValue","unit","finalValue","finalFullValue","container","currentValue","elementsDone","propsDone","began","begin","_el$prop","animateInstance","_len11","_key11","_len12","_key12","focus","_len13","_key13","focusin","_len14","_key14","focusout","_len15","_key15","keyup","_len16","_key16","keydown","_len17","_key17","keypress","_len18","_key18","submit","_len19","_key19","change","_len20","_key20","mousedown","_len21","_key21","mousemove","_len22","_key22","mouseup","_len23","_key23","mouseenter","_len24","_key24","mouseleave","_len25","_key25","mouseout","_len26","_key26","mouseover","_len27","_key27","touchstart","_len28","_key28","touchend","_len29","_key29","touchmove","_len30","_key30","_len31","_key31","_len32","_key32"],"mappings":"glBAYAA,EAAAC,EAAA,KACAC,EAAAD,EAAA,sQAEA,IAAME,GACJC,oBACAC,0BACAC,oBACAC,0BACAC,YACAC,wBACAC,YACAC,sBACAC,wBACAC,QACAC,UACAC,kBACAC,8BACAC,wBACAC,0BACAC,gBACAC,UACAC,YACAC,YACAC,YACAC,QACAC,cACAC,QACAC,gBACAC,kBACAC,YACAC,kBACAC,YACAC,kBACAC,gBACAC,kBACAC,kBACAC,YACAC,oBACAC,gBACAC,UACAC,iBAGFC,OAAOC,KAAKvC,GAASwC,QAAQ,SAACC,GAC5BC,IAAEC,GAAGF,GAAczC,EAAQyC,KAG7B,IAAMG,GACJC,YADY,SACAC,GACV,IAAMC,EAASD,EACfR,OAAOC,KAAKQ,GAAQP,QAAQ,SAACQ,GAC3B,IACED,EAAOC,GAAO,KACd,MAAOC,IAGT,WACSF,EAAOC,GACd,MAAOC,QAKbC,SAhBY,SAgBHC,GAAqB,IAAXC,EAAWC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAH,EACzB,OAAOG,WAAWL,EAAUC,IAE9BK,IAnBY,WAoBV,OAAOC,KAAKD,OAEdE,aAtBY,SAsBCC,GAAgB,IAAZC,EAAYR,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAL,IAClBS,SACAC,SACAC,SAEEC,EAAWC,SAAOC,iBAAiBP,EAAI,MA+B7C,OA7BIM,SAAOE,kBACTL,EAAeE,EAASzD,WAAayD,EAASI,iBAC7BC,MAAM,KAAKhB,OAAS,IACnCS,EAAeA,EAAaO,MAAM,MAAMC,IAAI,SAAAC,GAAA,OAAKA,EAAEC,QAAQ,IAAK,OAAMC,KAAK,OAI7EV,EAAkB,IAAIE,SAAOE,gBAAiC,SAAjBL,EAA0B,GAAKA,IAG5ED,GADAE,EAAkBC,EAASU,cAAgBV,EAASW,YAAcX,EAASY,aAAeZ,EAASa,aAAeb,EAASzD,WAAayD,EAASc,iBAAiB,aAAaN,QAAQ,aAAc,uBAC5KO,WAAWV,MAAM,KAG/B,MAATT,IAE0BE,EAAxBG,SAAOE,gBAAgCJ,EAAgBiB,IAEhC,KAAlBnB,EAAOR,OAA8B4B,WAAWpB,EAAO,KAE5CoB,WAAWpB,EAAO,KAE3B,MAATD,IAE0BE,EAAxBG,SAAOE,gBAAgCJ,EAAgBmB,IAEhC,KAAlBrB,EAAOR,OAA8B4B,WAAWpB,EAAO,KAE5CoB,WAAWpB,EAAO,KAEjCC,GAAgB,GAEzBqB,cA5DY,SA4DEC,GACZ,IAAMC,KACFC,EAAaF,GAAOnB,SAAOsB,SAASC,KACpCC,SACAC,SACAC,SACAtC,SACJ,GAA0B,iBAAfiC,GAA2BA,EAAWjC,OAK/C,IAFAA,GADAqC,GADAJ,EAAaA,EAAWM,QAAQ,MAAQ,EAAIN,EAAWd,QAAQ,QAAS,IAAM,IAC1DH,MAAM,KAAKwB,OAAO,SAAAC,GAAA,MAA6B,KAAfA,KACpCzC,OAEXoC,EAAI,EAAGA,EAAIpC,EAAQoC,GAAK,EAC3BE,EAAQD,EAAOD,GAAGjB,QAAQ,QAAS,IAAIH,MAAM,KAC7CgB,EAAMU,mBAAmBJ,EAAM,UAA2B,IAAbA,EAAM,QAAqBrC,EAAYyC,mBAAmBJ,EAAM,KAAO,GAGxH,OAAON,GAETW,SA/EY,SA+EHC,GACP,MAAoB,iBAAb,IAAOA,EAAP,YAAAC,EAAOD,KAAwB,OAANA,GAAcA,EAAEE,aAAeF,EAAEE,cAAgB9D,QAEnF+D,OAlFY,WAoFV,IADA,IAAMC,EAAKhE,gDACFoD,EAAI,EAAGA,EAAIrC,UAAKC,OAAQoC,GAAK,EAAG,CACvC,IAAMa,oBAAkBb,OAAlBnC,EAAAF,UAAkBqC,GACxB,QAAmBnC,IAAfgD,GAA2C,OAAfA,EAE9B,IADA,IAAMC,EAAYlE,OAAOC,KAAKD,OAAOiE,IAC5BE,EAAY,EAAGC,EAAMF,EAAUlD,OAAQmD,EAAYC,EAAKD,GAAa,EAAG,CAC/E,IAAME,EAAUH,EAAUC,GACpBG,EAAOtE,OAAOuE,yBAAyBN,EAAYI,QAC5CpD,IAATqD,GAAsBA,EAAKE,aACzBlE,EAAMqD,SAASK,EAAGK,KAAa/D,EAAMqD,SAASM,EAAWI,IAC3D/D,EAAMyD,OAAOC,EAAGK,GAAUJ,EAAWI,KAC3B/D,EAAMqD,SAASK,EAAGK,KAAa/D,EAAMqD,SAASM,EAAWI,KACnEL,EAAGK,MACH/D,EAAMyD,OAAOC,EAAGK,GAAUJ,EAAWI,KAErCL,EAAGK,GAAWJ,EAAWI,KAMnC,OAAOL,IAILS,EAAW,WACf,IAAMC,EAAUC,WAASC,cAAc,OACvC,OACEC,MAAQjD,SAAOkD,YAAwC,IAA3BlD,SAAOkD,UAAUD,UAChC,iBAAkBjD,UAAYA,SAAOmD,eAAiBJ,sBAAoB/C,SAAOmD,eAG9FC,iBAAkBpD,SAAOqD,UAAUC,gBAAkBtD,SAAOuD,cAAiB,mBAAoBvD,SAAOqD,WACxGG,wBAAyBxD,SAAOqD,UAAUI,iBAE1ClH,WAAa,WACX,IAAMmH,EAAQZ,EAAQY,MACtB,MAAQ,eAAgBA,GAAS,qBAAsBA,GAAS,kBAAmBA,EAFxE,GAIbC,aAAe3D,SAAOkD,YAAkD,IAArClD,SAAOkD,UAAUU,iBAA8B,WAChF,IAAMF,EAAQZ,EAAQY,MACtB,MAAQ,sBAAuBA,GAAS,mBAAoBA,GAAS,iBAAkBA,GAAS,kBAAmBA,GAAS,gBAAiBA,EAF7D,GAKlFG,QAAU,WAGR,IAFA,IAAMH,EAAQZ,EAAQY,MAChBI,EAAa,yKAA0K1D,MAAM,KAC1LoB,EAAI,EAAGA,EAAIsC,EAAU1E,OAAQoC,GAAK,EACzC,GAAIsC,EAAUtC,KAAMkC,EAAO,OAAO,EAEpC,OAAO,EANC,GASVK,SACU,qBAAsB/D,UAAU,2BAA4BA,SAGtEgE,gBAAkB,WAChB,IAAIC,GAAkB,EACtB,IACE,IAAMC,EAAO9F,OAAO+F,kBAAmB,WAErCC,IAFgD,WAG9CH,GAAkB,KAGtBjE,SAAOqE,iBAAiB,sBAAuB,KAAMH,GACrD,MAAOnF,IAGT,OAAOkF,EAbS,GAgBlBK,SACS,mBAAoBtE,UAjDhB,GAsDXuE,aACJ,SAAAA,IAAyB,IAAb9C,EAAatC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,MAAAqF,EAAAC,KAAAF,GACvB,IAAMG,EAAOD,KACbC,EAAKjD,OAASA,EAGdiD,EAAKC,mBAEDD,EAAKjD,QAAUiD,EAAKjD,OAAOjF,IAC7B4B,OAAOC,KAAKqG,EAAKjD,OAAOjF,IAAI8B,QAAQ,SAACsG,GACnCF,EAAKlI,GAAGoI,EAAWF,EAAKjD,OAAOjF,GAAGoI,2CAKrCC,EAAQC,EAASC,GAClB,IAAML,EAAOD,KACb,GAAuB,mBAAZK,EAAwB,OAAOJ,EAC1C,IAAMM,EAASD,EAAW,UAAY,OAKtC,OAJAF,EAAOzE,MAAM,KAAK9B,QAAQ,SAAC2G,GACpBP,EAAKC,gBAAgBM,KAAQP,EAAKC,gBAAgBM,OACvDP,EAAKC,gBAAgBM,GAAOD,GAAQF,KAE/BJ,+BAGJG,EAAQC,EAASC,GACpB,IAAML,EAAOD,KACb,GAAuB,mBAAZK,EAAwB,OAAOJ,EAK1C,OAAOA,EAAKlI,GAAGqI,EAJf,SAASK,IAAqB,QAAAC,EAAAhG,UAAAC,OAANgG,EAAMC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAANF,EAAME,GAAAnG,UAAAmG,GAC5BR,EAAQS,MAAMb,EAAMU,GACpBV,EAAKjI,IAAIoI,EAAQK,IAEiBH,+BAGlCF,EAAQC,GACV,IAAMJ,EAAOD,KACb,OAAKC,EAAKC,iBACVE,EAAOzE,MAAM,KAAK9B,QAAQ,SAAC2G,QACF,IAAZH,EACTJ,EAAKC,gBAAgBM,MACZP,EAAKC,gBAAgBM,IAAUP,EAAKC,gBAAgBM,GAAO7F,QACpEsF,EAAKC,gBAAgBM,GAAO3G,QAAQ,SAACkH,EAAcC,GAC7CD,IAAiBV,GACnBJ,EAAKC,gBAAgBM,GAAOS,OAAOD,EAAU,OAK9Cf,GAZ2BA,iCAgBlC,IAAMA,EAAOD,KACb,IAAKC,EAAKC,gBAAiB,OAAOD,EAFtB,IAGZ,IAAIG,SACAc,SACAC,SALQC,EAAA1G,UAAAC,OAANgG,EAAMC,MAAAQ,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANV,EAAMU,GAAA3G,UAAA2G,GA2BZ,MArBuB,iBAAZV,EAAK,IAAmBC,MAAMU,QAAQX,EAAK,KACpDP,EAASO,EAAK,GACdO,EAAUP,EAAKY,MAAM,EAAGZ,EAAKhG,QAC7BwG,EAAUlB,IAEVG,EAASO,EAAK,GAAGP,OACjBc,EAAUP,EAAK,GAAG/I,KAClBuJ,EAAUR,EAAK,GAAGQ,SAAWlB,IAEXW,MAAMU,QAAQlB,GAAUA,EAASA,EAAOzE,MAAM,MACtD9B,QAAQ,SAAC2G,GACnB,GAAIP,EAAKC,iBAAmBD,EAAKC,gBAAgBM,GAAQ,CACvD,IAAMgB,KACNvB,EAAKC,gBAAgBM,GAAO3G,QAAQ,SAACkH,GACnCS,EAASC,KAAKV,KAEhBS,EAAS3H,QAAQ,SAACkH,GAChBA,EAAaD,MAAMK,EAASD,QAI3BjB,2CAGQyB,GACf,IAAMC,EAAW3B,KACZ2B,EAASC,SACdjI,OAAOC,KAAK+H,EAASC,SAAS/H,QAAQ,SAACgI,GACrC,IAAMC,EAASH,EAASC,QAAQC,GAE5BC,EAAO9E,QACT/C,EAAMyD,OAAOgE,EAAgBI,EAAO9E,+CAKX,IAApB+E,EAAoBrH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,MACvBiH,EAAW3B,KACZ2B,EAASC,SACdjI,OAAOC,KAAK+H,EAASC,SAAS/H,QAAQ,SAACgI,GACrC,IAAMC,EAASH,EAASC,QAAQC,GAC1BG,EAAeD,EAAcF,OAE/BC,EAAOH,UACThI,OAAOC,KAAKkI,EAAOH,UAAU9H,QAAQ,SAACoI,GACpC,IAAMC,EAAaJ,EAAOH,SAASM,GAEjCN,EAASM,GADe,mBAAfC,EACkBA,EAAWC,KAAKR,GAEhBO,IAK7BJ,EAAO/J,IAAM4J,EAAS5J,IACxB4B,OAAOC,KAAKkI,EAAO/J,IAAI8B,QAAQ,SAACuI,GAC9BT,EAAS5J,GAAGqK,EAAiBN,EAAO/J,GAAGqK,MAKvCN,EAAOO,QACTP,EAAOO,OAAOF,KAAKR,EAAnBG,CAA6BE,6CAWdF,GACnB,IAAMQ,EAAQtC,KACTsC,EAAMC,UAAUX,UAASU,EAAMC,UAAUX,YAC9C,IAAMY,EAAOV,EAAOU,MAAY7I,OAAOC,KAAK0I,EAAMC,UAAUX,SAASjH,OAAxD,IAAkEV,EAAMa,MAerF,GAdAwH,EAAMC,UAAUX,QAAQY,GAAQV,EAE5BA,EAAOW,OACT9I,OAAOC,KAAKkI,EAAOW,OAAO5I,QAAQ,SAACQ,GACjCiI,EAAMC,UAAUlI,GAAOyH,EAAOW,MAAMpI,KAIpCyH,EAAOY,QACT/I,OAAOC,KAAKkI,EAAOY,QAAQ7I,QAAQ,SAACQ,GAClCiI,EAAMjI,GAAOyH,EAAOY,OAAOrI,KAI3ByH,EAAOa,QAAS,SAAAC,EAAAlI,UAAAC,OAlBUqC,EAkBV4D,MAAAgC,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAlBU7F,EAkBV6F,EAAA,GAAAnI,UAAAmI,GAClBf,EAAOa,QAAQ7B,MAAMwB,EAAOtF,GAE9B,OAAOsF,8BAGER,GACT,IAAMQ,EAAQtC,KACd,GAAIY,MAAMU,QAAQQ,GAEhB,OADAA,EAAOjI,QAAQ,SAAAiJ,GAAA,OAAKR,EAAMS,cAAcD,KACjCR,EAJmB,QAAAU,EAAAtI,UAAAC,OAARqC,EAAQ4D,MAAAoC,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAARjG,EAAQiG,EAAA,GAAAvI,UAAAuI,GAM5B,OAAOX,EAAMS,cAANjC,MAAAwB,GAAoBR,GAApBoB,OAA+BlG,qCApClBmG,GACNnD,KACHoD,KADGpD,KAERoD,IAAID,YA4lBd,IAAIE,GACFC,WAxjBF,WACE,IACIC,SACAC,SACEC,EAHSzD,KAGIyD,IAEjBF,OADiC,IAJpBvD,KAIGhD,OAAOuG,MAJVvD,KAKEhD,OAAOuG,MAEdE,EAAI,GAAGC,YAGfF,OADkC,IATrBxD,KASGhD,OAAOwG,OATVxD,KAUGhD,OAAOwG,OAEdC,EAAI,GAAGE,aAEH,IAAVJ,GAdUvD,KAcY4D,gBAA+B,IAAXJ,GAdhCxD,KAcuD6D,eAKtEN,EAAQA,EAAQO,SAASL,EAAInL,IAAI,gBAAiB,IAAMwL,SAASL,EAAInL,IAAI,iBAAkB,IAC3FkL,EAASA,EAASM,SAASL,EAAInL,IAAI,eAAgB,IAAMwL,SAASL,EAAInL,IAAI,kBAAmB,IAE7F2B,EAAMyD,OAtBSsC,MAuBbuD,QACAC,SACAO,KAzBa/D,KAyBA4D,eAAiBL,EAAQC,MA+hBxCQ,aA3hBF,WACE,IACMhH,EADSgD,KACOhD,OAGpBiH,EAJajE,KAIbiE,WAAkBC,EAJLlE,KAID+D,KAAgCI,EAJ/BnE,KAIiBoE,aAAmBC,EAJpCrE,KAIoCqE,SAE7CC,EANStE,KAMUuE,SAAWvH,EAAOuH,QAAQC,QAC7CC,EAAuBH,EAPdtE,KAOiCuE,QAAQG,OAAO/J,OAPhDqF,KAOgE0E,OAAO/J,OAChF+J,EAAST,EAAW1K,SAAX,IARAyG,KAQ+BhD,OAAO2H,YAC/CC,EAAeN,EATNtE,KASyBuE,QAAQG,OAAO/J,OAAS+J,EAAO/J,OACnEkK,KACEC,KACAC,KAEFC,EAAehI,EAAOiI,mBACE,mBAAjBD,IACTA,EAAehI,EAAOiI,mBAAmBC,KAhB5BlF,OAmBf,IAAImF,EAAcnI,EAAOoI,kBACE,mBAAhBD,IACTA,EAAcnI,EAAOoI,kBAAkBF,KArB1BlF,OAwBf,IAAMqF,EAxBSrF,KAwBuB6E,SAASlK,OACzC2K,EAzBStF,KAyByB6E,SAASlK,OAE7C4K,EAAevI,EAAOuI,aACtBC,GAAiBR,EACjBS,EAAgB,EAChBzE,EAAW,EACf,QAA0B,IAAfkD,EAAX,CAG4B,iBAAjBqB,GAA6BA,EAAarI,QAAQ,MAAQ,IACnEqI,EAAgBhJ,WAAWgJ,EAAazJ,QAAQ,IAAK,KAAO,IAAOoI,GAnCtDlE,KAsCR0F,aAAeH,EAGlBpB,EAAKO,EAAOpM,KAAMqN,WAAY,GAAIC,UAAW,KAC5ClB,EAAOpM,KAAMuN,YAAa,GAAIC,aAAc,KAEjD,IAAIC,SACA/I,EAAOgJ,gBAAkB,IAEzBD,EADEE,KAAKC,MAAMtB,EAAe5H,EAAOgJ,mBAAqBpB,EA9C7C5E,KA8CmEhD,OAAOgJ,gBAC5DpB,EAEAqB,KAAKE,KAAKvB,EAAe5H,EAAOgJ,iBAAmBhJ,EAAOgJ,gBAExD,SAAzBhJ,EAAOoJ,eAA2D,QAA/BpJ,EAAOqJ,sBAC5CN,EAAyBE,KAAKK,IAAIP,EAAwB/I,EAAOoJ,cAAgBpJ,EAAOgJ,mBAS5F,IAJA,IAAIO,SACEP,EAAkBhJ,EAAOgJ,gBACzBQ,EAAeT,EAAyBC,EACxCS,EAAiBD,GAAiBxJ,EAAOgJ,gBAAkBQ,EAAgB5B,GACxE7H,EAAI,EAAGA,EAAI6H,EAAc7H,GAAK,EAAG,CACxCwJ,EAAY,EACZ,IAAMG,EAAQhC,EAAO9L,GAAGmE,GACxB,GAAIC,EAAOgJ,gBAAkB,EAAG,CAE9B,IAAIW,SACAC,SACAC,SAC+B,WAA/B7J,EAAOqJ,qBAETQ,EAAM9J,GADN6J,EAASX,KAAKC,MAAMnJ,EAAIiJ,IACJA,GAChBY,EAASH,GAAmBG,IAAWH,GAAkBI,IAAQb,EAAkB,KACrFa,GAAO,IACIb,IACTa,EAAM,EACND,GAAU,GAGdD,EAAqBC,EAAWC,EAAMd,EAA0BC,EAChEU,EACGpO,KACCwO,4BAA6BH,EAC7BI,yBAA0BJ,EAC1BK,iBAAkBL,EAClBM,gBAAiBN,EACjBO,MAAOP,KAIXC,EAAS7J,GADT8J,EAAMZ,KAAKC,MAAMnJ,EAAIyJ,IACDA,EAEtBE,EACGpO,IADH,WA5FW0H,KA8FU4D,eAAiB,MAAQ,QACjC,IAARiD,GAAa7J,EAAOuI,cAAqBvI,EAAOuI,aAAjD,MAED7N,KAAK,qBAAsBkP,GAC3BlP,KAAK,kBAAmBmP,GAE7B,GAA6B,SAAzBH,EAAMpO,IAAI,WAAd,CAEA,GAA6B,SAAzB0E,EAAOoJ,cAA0B,CACnC,IAAMe,EAAc5L,SAAOC,iBAAiBkL,EAAM,GAAI,MAChDU,EAAmBV,EAAM,GAAGzH,MAAMpH,UAClCwP,EAAyBX,EAAM,GAAGzH,MAAMvD,gBAC1C0L,IACFV,EAAM,GAAGzH,MAAMpH,UAAY,QAEzBwP,IACFX,EAAM,GAAGzH,MAAMvD,gBAAkB,QAGjC6K,EADEvJ,EAAOsK,aAhHAtH,KAiHU4D,eACf8C,EAAMvO,YAAW,GACjBuO,EAAMtO,aAAY,GAnHb4H,KAsHE4D,eACGrH,WAAW4K,EAAY/K,iBAAiB,UAChDG,WAAW4K,EAAY/K,iBAAiB,gBACxCG,WAAW4K,EAAY/K,iBAAiB,iBAEhCG,WAAW4K,EAAY/K,iBAAiB,WAChDG,WAAW4K,EAAY/K,iBAAiB,eACxCG,WAAW4K,EAAY/K,iBAAiB,kBAG5CgL,IACFV,EAAM,GAAGzH,MAAMpH,UAAYuP,GAEzBC,IACFX,EAAM,GAAGzH,MAAMvD,gBAAkB2L,GAE/BrK,EAAOsK,eAAcf,EAAYN,KAAKC,MAAMK,SAEhDA,GAAarC,GAAelH,EAAOoJ,cAAgB,GAAKb,GAAiBvI,EAAOoJ,cAC5EpJ,EAAOsK,eAAcf,EAAYN,KAAKC,MAAMK,IAE5C7B,EAAO3H,KA3IAiD,KA4IE4D,eACTc,EAAO3H,GAAGkC,MAAMsE,MAAWgD,EAA3B,KAEA7B,EAAO3H,GAAGkC,MAAMuE,OAAY+C,EAA5B,MAIF7B,EAAO3H,KACT2H,EAAO3H,GAAGwK,gBAAkBhB,GAE9BxB,EAAgBtD,KAAK8E,GAGjBvJ,EAAOwK,gBACThC,EAAgBA,EAAiBe,EAAY,EAAMd,EAAgB,EAAKF,EAClD,IAAlBE,GAA6B,IAAN1I,IAASyI,EAAgBA,EAAiBtB,EAAa,EAAKqB,GAC7E,IAANxI,IAASyI,EAAgBA,EAAiBtB,EAAa,EAAKqB,GAC5DU,KAAKwB,IAAIjC,GAAiB,OAAUA,EAAgB,GACpDxI,EAAOsK,eAAc9B,EAAgBS,KAAKC,MAAMV,IAC/CxE,EAAYhE,EAAO0K,gBAAmB,GAAG7C,EAASpD,KAAK+D,GAC5DV,EAAWrD,KAAK+D,KAEZxI,EAAOsK,eAAc9B,EAAgBS,KAAKC,MAAMV,IAC/CxE,EAAYhE,EAAO0K,gBAAmB,GAAG7C,EAASpD,KAAK+D,GAC5DV,EAAWrD,KAAK+D,GAChBA,EAAgBA,EAAgBe,EAAYhB,GArKjCvF,KAwKN0F,aAAea,EAAYhB,EAElCE,EAAgBc,EAEhBvF,GAAY,GA5KChB,KA8KR0F,YAAcO,KAAKK,IA9KXtG,KA8KsB0F,YAAaxB,GAAciB,EAChE,IAAIwC,SAWJ,GARExD,GAAOE,IAA+B,UAAlBrH,EAAO4K,QAAwC,cAAlB5K,EAAO4K,SACxD3D,EAAW3L,KAAMiL,MAnLJvD,KAmLqB0F,YAAc1I,EAAOuI,aAAtC,OAEdnH,EAAQgB,UAAWpC,EAAO6K,iBArLhB7H,KAsLF4D,eAAgBK,EAAW3L,KAAMiL,MAtL/BvD,KAsLgD0F,YAAc1I,EAAOuI,aAAtC,OACvCtB,EAAW3L,KAAMkL,OAvLTxD,KAuL2B0F,YAAc1I,EAAOuI,aAAvC,QAGpBvI,EAAOgJ,gBAAkB,IA1LdhG,KA2LN0F,aAAea,EAAYvJ,EAAOuI,cAAgBQ,EA3L5C/F,KA4LN0F,YAAcO,KAAKE,KA5LbnG,KA4LyB0F,YAAc1I,EAAOgJ,iBAAmBhJ,EAAOuI,aA5LxEvF,KA6LF4D,eAAgBK,EAAW3L,KAAMiL,MA7L/BvD,KA6LgD0F,YAAc1I,EAAOuI,aAAtC,OACvCtB,EAAW3L,KAAMkL,OA9LTxD,KA8L2B0F,YAAc1I,EAAOuI,aAAvC,OAClBvI,EAAOwK,gBAAgB,CACzBG,KACA,IAAK,IAAI5K,EAAI,EAAGA,EAAI8H,EAASlK,OAAQoC,GAAK,EAAG,CAC3C,IAAI+K,EAAiBjD,EAAS9H,GAC1BC,EAAOsK,eAAcQ,EAAiB7B,KAAKC,MAAM4B,IACjDjD,EAAS9H,GApMJiD,KAoMgB0F,YAAcb,EAAS,IAAI8C,EAAclG,KAAKqG,GAEzEjD,EAAW8C,EAKf,IAAK3K,EAAOwK,eAAgB,CAC1BG,KACA,IAAK,IAAI5K,EAAI,EAAGA,EAAI8H,EAASlK,OAAQoC,GAAK,EAAG,CAC3C,IAAI+K,EAAiBjD,EAAS9H,GAC1BC,EAAOsK,eAAcQ,EAAiB7B,KAAKC,MAAM4B,IACjDjD,EAAS9H,IAhNFiD,KAgNe0F,YAAcxB,GACtCyD,EAAclG,KAAKqG,GAGvBjD,EAAW8C,EACP1B,KAAKC,MArNIlG,KAqNS0F,YAAcxB,GAAc+B,KAAKC,MAAMrB,EAASA,EAASlK,OAAS,IAAM,GAC5FkK,EAASpD,KAtNEzB,KAsNU0F,YAAcxB,GAYvC,GATwB,IAApBW,EAASlK,SAAckK,GAAY,IAEX,IAAxB7H,EAAOuI,eA3NIvF,KA4NF4D,eACLO,EAAKO,EAAOpM,KAAMqN,WAAeJ,EAAf,OACjBb,EAAOpM,KAAMuN,YAAgBN,EAAhB,OACbb,EAAOpM,KAAMwN,aAAiBP,EAAjB,QAGlBvI,EAAO+K,yBAA0B,CACnC,IAAIC,EAAgB,EAKpB,GAJAjD,EAAgBlL,QAAQ,SAACoO,GACvBD,GAAiBC,GAAkBjL,EAAOuI,aAAevI,EAAOuI,aAAe,MAEjFyC,GAAiBhL,EAAOuI,cACJrB,EAAY,CAC9B,IAAMgE,GAAmBhE,EAAa8D,GAAiB,EACvDnD,EAAShL,QAAQ,SAACsO,EAAMC,GACtBvD,EAASuD,GAAaD,EAAOD,IAE/BpD,EAAWjL,QAAQ,SAACsO,EAAMC,GACxBtD,EAAWsD,GAAaD,EAAOD,KAKrCjO,EAAMyD,OAnPSsC,MAoPb0E,SACAG,WACAC,aACAC,oBAGEH,IAAiBH,GA1PNzE,KA2PNqI,KAAK,sBAEVxD,EAASlK,SAAW0K,IA7PTrF,KA8PFhD,OAAOsL,eA9PLtI,KA8P2BuI,gBA9P3BvI,KA+PNqI,KAAK,yBAEVvD,EAAWnK,SAAW2K,GAjQXtF,KAkQNqI,KAAK,2BAGVrL,EAAOwL,qBAAuBxL,EAAOyL,wBArQ1BzI,KAsQN0I,uBAqRTC,iBAjRF,SAA2BC,GACzB,IACMC,KACFC,EAAY,EACZ/L,SAOJ,GANqB,iBAAV6L,EAJI5I,KAKN+I,cAAcH,IACF,IAAVA,GANI5I,KAON+I,cAPM/I,KAOehD,OAAO4L,OAGD,SAVrB5I,KAUJhD,OAAOoJ,eAVHpG,KAUsChD,OAAOoJ,cAAgB,EAC1E,IAAKrJ,EAAI,EAAGA,EAAIkJ,KAAKE,KAXRnG,KAWoBhD,OAAOoJ,eAAgBrJ,GAAK,EAAG,CAC9D,IAAMiE,EAZKhB,KAYagJ,YAAcjM,EACtC,GAAIiE,EAbOhB,KAaW0E,OAAO/J,OAAQ,MACrCkO,EAAapH,KAdFzB,KAcc0E,OAAO9L,GAAGoI,GAAU,SAG/C6H,EAAapH,KAjBAzB,KAiBY0E,OAAO9L,GAjBnBoH,KAiB6BgJ,aAAa,IAIzD,IAAKjM,EAAI,EAAGA,EAAI8L,EAAalO,OAAQoC,GAAK,EACxC,QAA+B,IAApB8L,EAAa9L,GAAoB,CAC1C,IAAMyG,EAASqF,EAAa9L,GAAGkM,aAC/BH,EAAYtF,EAASsF,EAAYtF,EAASsF,EAK1CA,GA7BW9I,KA6BOiE,WAAW3L,IAAI,SAAawQ,EAAnC,OAoPfJ,mBAjPF,WAGE,IAFA,IACMhE,EADS1E,KACO0E,OACb3H,EAAI,EAAGA,EAAI2H,EAAO/J,OAAQoC,GAAK,EACtC2H,EAAO3H,GAAGmM,kBAHGlJ,KAGwB4D,eAAiBc,EAAO3H,GAAGoM,WAAazE,EAAO3H,GAAGqM,WA8OzFC,qBA1OF,WAA0E,IAA3CC,EAA2C5O,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAA9BsF,MAAQA,KAAKsJ,WAAc,EAE/DtM,EADSgD,KACOhD,OAEd0H,EAHO1E,KAGP0E,OAAsBP,EAHfnE,KAGCoE,aAEhB,GAAsB,IAAlBM,EAAO/J,OAAX,MAC2C,IAAhC+J,EAAO,GAAGwE,mBANNlJ,KAMgD0I,qBAE/D,IAAIa,GAAgBD,EAChBnF,IAAKoF,EAAeD,GAGxB5E,EAAOnN,YAAYyF,EAAOwM,mBAZXxJ,KAcRyJ,wBAdQzJ,KAeR0J,iBAEP,IAAK,IAAI3M,EAAI,EAAGA,EAAI2H,EAAO/J,OAAQoC,GAAK,EAAG,CACzC,IAAM2J,EAAQhC,EAAO3H,GACf4M,GACHJ,GAAgBvM,EAAOwK,eApBbxH,KAoBqC4J,eAAiB,GAAMlD,EAAMwC,oBAC1ExC,EAAMa,gBAAkBvK,EAAOuI,cACpC,GAAIvI,EAAOyL,sBAAuB,CAChC,IAAMoB,IAAgBN,EAAe7C,EAAMwC,mBACrCY,EAAaD,EAxBR7J,KAwB6B+E,gBAAgBhI,IACrC8M,GAAe,GAAKA,EAzB5B7J,KAyBiD+D,MAC9C+F,EAAa,GAAKA,GA1BrB9J,KA0B0C+D,MACvC8F,GAAe,GAAKC,GA3BvB9J,KA2B4C+D,QA3B5C/D,KA6BF0J,cAAcjI,KAAKiF,GA7BjB1G,KA8BFyJ,qBAAqBhI,KAAK1E,GACjC2H,EAAO9L,GAAGmE,GAAGzF,SAAS0F,EAAOwM,oBAGjC9C,EAAMqD,SAAW5F,GAAOwF,EAAgBA,EAlC3B3J,KAoCR0J,eAAgB,EAAAxS,EAAA6C,GApCRiG,KAoCiB0J,iBAsMhCM,eAnMF,WAAoE,IAA3CV,EAA2C5O,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAA9BsF,MAAQA,KAAKsJ,WAAc,EAEzDtM,EADSgD,KACOhD,OAEhBiN,EAHSjK,KAGekK,eAHflK,KAGuC4J,eAChDG,EAJS/J,KAIT+J,SAAUI,EAJDnK,KAICmK,YAAaC,EAJdpK,KAIcoK,MACvBC,EAAeF,EACfG,EAASF,EACQ,IAAnBH,GACFF,EAAW,EACXI,GAAc,EACdC,GAAQ,IAGRD,GADAJ,GAAYT,EAZCtJ,KAYkB4J,gBAAmBK,IACxB,EAC1BG,EAAQL,GAAY,GAEtB9P,EAAMyD,OAhBSsC,MAiBb+J,WACAI,cACAC,WAGEpN,EAAOwL,qBAAuBxL,EAAOyL,wBAtB1BzI,KAsBwDqJ,qBAAqBC,GAExFa,IAAgBE,GAxBLrK,KAyBNqI,KAAK,yBAEV+B,IAAUE,GA3BCtK,KA4BNqI,KAAK,oBAETgC,IAAiBF,GAAiBG,IAAWF,IA9BnCpK,KA+BNqI,KAAK,YA/BCrI,KAkCRqI,KAAK,WAAY0B,IAiKxBQ,oBA9JF,WACE,IAGE7F,EAHa1E,KAGb0E,OAAQ1H,EAHKgD,KAGLhD,OAAQiH,EAHHjE,KAGGiE,WAAY+E,EAHfhJ,KAGegJ,YAAawB,EAH5BxK,KAG4BwK,UAErClG,EALStE,KAKUuE,SAAWvH,EAAOuH,QAAQC,QAEnDE,EAAOnN,YAAeyF,EAAOyN,iBAA7B,IAAiDzN,EAAO0N,eAAxD,IAA0E1N,EAAO2N,eAAjF,IAAmG3N,EAAO4N,0BAA1G,IAAuI5N,EAAO6N,wBAA9I,IAAyK7N,EAAO8N,yBAEhL,IAAIC,UAEFA,EADEzG,EAVWtE,KAWQiE,WAAW3K,KAAlB,IAA2B0D,EAAO2H,WAAlC,6BAAyEqE,EAAzE,MAEAtE,EAAO9L,GAAGoQ,IAId1R,SAAS0F,EAAOyN,kBAExBzN,EAAOgO,OAELD,EAAYvT,SAASwF,EAAOiO,qBAC9BhH,EACG1K,SADH,IACgByD,EAAO2H,WADvB,SAC0C3H,EAAOiO,oBADjD,8BACkGT,EADlG,MAEGlT,SAAS0F,EAAO4N,2BAEnB3G,EACG1K,SADH,IACgByD,EAAO2H,WADvB,IACqC3H,EAAOiO,oBAD5C,6BAC4FT,EAD5F,MAEGlT,SAAS0F,EAAO4N,4BAIvB,IAAIM,EAAYH,EAAY/R,QAAZ,IAAwBgE,EAAO2H,YAAc/L,GAAG,GAAGtB,SAAS0F,EAAO0N,gBAC/E1N,EAAOgO,MAA6B,IAArBE,EAAUvQ,SAC3BuQ,EAAYxG,EAAO9L,GAAG,IACZtB,SAAS0F,EAAO0N,gBAG5B,IAAIS,EAAYJ,EAAY7R,QAAZ,IAAwB8D,EAAO2H,YAAc/L,GAAG,GAAGtB,SAAS0F,EAAO2N,gBAC/E3N,EAAOgO,MAA6B,IAArBG,EAAUxQ,SAC3BwQ,EAAYzG,EAAO9L,IAAI,IACbtB,SAAS0F,EAAO2N,gBAExB3N,EAAOgO,OAELE,EAAU1T,SAASwF,EAAOiO,qBAC5BhH,EACG1K,SADH,IACgByD,EAAO2H,WADvB,SAC0C3H,EAAOiO,oBADjD,8BACkGC,EAAUxT,KAAK,2BADjH,MAEGJ,SAAS0F,EAAO6N,yBAEnB5G,EACG1K,SADH,IACgByD,EAAO2H,WADvB,IACqC3H,EAAOiO,oBAD5C,6BAC4FC,EAAUxT,KAAK,2BAD3G,MAEGJ,SAAS0F,EAAO6N,yBAEjBM,EAAU3T,SAASwF,EAAOiO,qBAC5BhH,EACG1K,SADH,IACgByD,EAAO2H,WADvB,SAC0C3H,EAAOiO,oBADjD,8BACkGE,EAAUzT,KAAK,2BADjH,MAEGJ,SAAS0F,EAAO8N,yBAEnB7G,EACG1K,SADH,IACgByD,EAAO2H,WADvB,IACqC3H,EAAOiO,oBAD5C,6BAC4FE,EAAUzT,KAAK,2BAD3G,MAEGJ,SAAS0F,EAAO8N,2BAiGvBM,kBA5FF,SAA4BC,GAC1B,IACM/B,EADStJ,KACUoE,aADVpE,KACgCsJ,WADhCtJ,KACoDsJ,UAEjExE,EAHa9E,KAGb8E,WAAYD,EAHC7E,KAGD6E,SAAU7H,EAHTgD,KAGShD,OAAqBsO,EAH9BtL,KAGiBgJ,YAAuCuC,EAHxDvL,KAG6CwK,UAAyCgB,EAHtFxL,KAG2EoI,UAEtFY,EAAcqC,EACdjD,SACJ,QAA2B,IAAhBY,EAA6B,CACtC,IAAK,IAAIjM,EAAI,EAAGA,EAAI+H,EAAWnK,OAAQoC,GAAK,OACT,IAAtB+H,EAAW/H,EAAI,GACpBuM,GAAaxE,EAAW/H,IAAMuM,EAAYxE,EAAW/H,EAAI,IAAO+H,EAAW/H,EAAI,GAAK+H,EAAW/H,IAAM,EACvGiM,EAAcjM,EACLuM,GAAaxE,EAAW/H,IAAMuM,EAAYxE,EAAW/H,EAAI,KAClEiM,EAAcjM,EAAI,GAEXuM,GAAaxE,EAAW/H,KACjCiM,EAAcjM,GAIdC,EAAOyO,sBACLzC,EAAc,QAA4B,IAAhBA,KAA6BA,EAAc,GAS7E,IALEZ,EADEvD,EAAS3H,QAAQoM,IAAc,EACrBzE,EAAS3H,QAAQoM,GAEjBrD,KAAKC,MAAM8C,EAAchM,EAAO0K,kBAE7B7C,EAASlK,SAAQyN,EAAYvD,EAASlK,OAAS,GAC5DqO,IAAgBsC,EAApB,CASA,IAAMd,EAAY1G,SAvCH9D,KAuCmB0E,OAAO9L,GAAGoQ,GAAatR,KAAK,4BAA8BsR,EAAa,IAEzG/O,EAAMyD,OAzCSsC,MA0CboI,YACAoC,YACAc,gBACAtC,gBA7CahJ,KA+CRqI,KAAK,qBA/CGrI,KAgDRqI,KAAK,mBACRkD,IAAsBf,GAjDXxK,KAkDNqI,KAAK,mBAlDCrI,KAoDRqI,KAAK,oBArBND,IAAcoD,IA/BLxL,KAgCJoI,UAAYA,EAhCRpI,KAiCJqI,KAAK,qBA2DhBqD,mBArCF,SAA6BpR,GAC3B,IACM0C,EADSgD,KACOhD,OAChB0J,GAAQ,EAAAxP,EAAA6C,GAAEO,EAAEqR,QAAQtS,QAAZ,IAAwB2D,EAAO2H,YAAc,GACvDiH,GAAa,EACjB,GAAIlF,EACF,IAAK,IAAI3J,EAAI,EAAGA,EALHiD,KAKc0E,OAAO/J,OAAQoC,GAAK,EALlCiD,KAMA0E,OAAO3H,KAAO2J,IAAOkF,GAAa,GAIjD,IAAIlF,IAASkF,EAUX,OApBa5L,KAkBN6L,kBAAejR,OAlBToF,KAmBN8L,kBAAelR,GAnBToF,KAWN6L,aAAenF,EAXT1G,KAYFuE,SAZEvE,KAYgBhD,OAAOuH,QAAQC,QAZ/BxE,KAaJ8L,aAAehI,UAAS,EAAA5M,EAAA6C,GAAE2M,GAAOhP,KAAK,2BAA4B,IAb9DsI,KAeJ8L,cAAe,EAAA5U,EAAA6C,GAAE2M,GAAO/N,QAO/BqE,EAAO+O,0BAA+CnR,IAtB3CoF,KAsB0B8L,cAtB1B9L,KAsB+D8L,eAtB/D9L,KAsBuFgJ,aAtBvFhJ,KAuBN+L,wBAmFX,IAAIzC,GACFtO,aApEF,WAA+D,IAAxCE,EAAwCR,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAjCsF,KAAK4D,eAAiB,IAAM,IAItD5G,EAHagD,KAGbhD,OAAsBmH,EAHTnE,KAGLoE,aAAmBkF,EAHdtJ,KAGcsJ,UAAWrF,EAHzBjE,KAGyBiE,WAGxC,GAAIjH,EAAOgP,iBACT,OAAO7H,GAAOmF,EAAYA,EAG5B,IAAI2C,EAAmBhS,EAAMe,aAAaiJ,EAAW,GAAI/I,GAGzD,OAFIiJ,IAAK8H,GAAoBA,GAEtBA,GAAoB,GAuD3BC,aApDF,SAAuB5C,EAAW6C,GAChC,IAEgBhI,EAFDnE,KAEboE,aAAmBpH,EAFNgD,KAEMhD,OAAQiH,EAFdjE,KAEciE,WAAY8F,EAF1B/J,KAE0B+J,SAErCqC,EAAI,EACJC,EAAI,EALOrM,KAQJ4D,eACTwI,EAAIjI,GAAOmF,EAAYA,EAEvB+C,EAAI/C,EAGFtM,EAAOsK,eACT8E,EAAInG,KAAKC,MAAMkG,GACfC,EAAIpG,KAAKC,MAAMmG,IAGZrP,EAAOgP,mBACN5N,EAAQc,aAAc+E,EAAWpM,UAAX,eAAoCuU,EAApC,OAA4CC,EAA5C,YACrBpI,EAAWpM,UAAX,aAAkCuU,EAAlC,OAA0CC,EAA1C,QArBQrM,KAuBRsM,kBAvBQtM,KAuBmBsJ,UAvBnBtJ,KAwBRsJ,UAxBQtJ,KAwBW4D,eAAiBwI,EAAIC,EAG/C,IACMpC,EA5BSjK,KA4BekK,eA5BflK,KA4BuC4J,gBAC/B,IAAnBK,EACY,GAECX,EAhCFtJ,KAgCqB4J,gBAAmBK,KAEnCF,GAlCL/J,KAmCNgK,eAAeV,GAnCTtJ,KAsCRqI,KAAK,eAtCGrI,KAsCoBsJ,UAAW6C,IAc9CvC,aAXF,WACE,OAAS5J,KAAK6E,SAAS,IAWvBqF,aARF,WACE,OAASlK,KAAK6E,SAAS7E,KAAK6E,SAASlK,OAAS,KA6EhD,IAAI4R,GACFxD,cApEF,SAAwByD,EAAUL,GACjBnM,KAERiE,WAAWnM,WAAW0U,GAFdxM,KAIRqI,KAAK,gBAAiBmE,EAAUL,IAgEvCM,gBA7DF,WAA0D,IAAhCC,IAAgChS,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAAXiS,EAAWjS,UAAA,GAEhDsO,EADOhJ,KACPgJ,YAAahM,EADNgD,KACMhD,OAAQsO,EADdtL,KACcsL,cACzBtO,EAAO4P,YAFI5M,KAGN2I,mBAGT,IAAIkE,EAAMF,EASV,GARKE,IAC8BA,EAA7B7D,EAAcsC,EAAqB,OAC9BtC,EAAcsC,EAAqB,OACjC,SAVEtL,KAaRqI,KAAK,mBAERqE,GAAgB1D,IAAgBsC,EAAe,CACjD,GAAY,UAARuB,EAEF,YAlBW7M,KAiBJqI,KAAK,6BAjBDrI,KAoBNqI,KAAK,8BACA,SAARwE,EArBS7M,KAsBJqI,KAAK,4BAtBDrI,KAwBJqI,KAAK,8BAqChBnQ,cAhCF,WAA0D,IAAhCwU,IAAgChS,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAAXiS,EAAWjS,UAAA,GAEhDsO,EADOhJ,KACPgJ,YAAasC,EADNtL,KACMsL,cADNtL,KAER8M,WAAY,EAFJ9M,KAGR+I,cAAc,GAErB,IAAI8D,EAAMF,EASV,GARKE,IAC8BA,EAA7B7D,EAAcsC,EAAqB,OAC9BtC,EAAcsC,EAAqB,OACjC,SATEtL,KAYRqI,KAAK,iBAERqE,GAAgB1D,IAAgBsC,EAAe,CACjD,GAAY,UAARuB,EAEF,YAjBW7M,KAgBJqI,KAAK,2BAhBDrI,KAmBNqI,KAAK,4BACA,SAARwE,EApBS7M,KAqBJqI,KAAK,0BArBDrI,KAuBJqI,KAAK,6BAgPlB,IAAI3B,GACFqG,QAtOF,WAA0F,IAAxE/L,EAAwEtG,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAA7D,EAAGkO,EAA0DlO,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAlDsF,KAAKhD,OAAO4L,MAAO8D,IAA+BhS,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAAVsS,EAAUtS,UAAA,GAClFuS,EAASjN,KACXkN,EAAalM,EACbkM,EAAa,IAAGA,EAAa,GAHuD,IAMtFlQ,EACEiQ,EADFjQ,OAAQ6H,EACNoI,EADMpI,SAAUC,EAChBmI,EADgBnI,WAAYwG,EAC5B2B,EAD4B3B,cAAetC,EAC3CiE,EAD2CjE,YAA2B7E,EACtE8I,EADwD7I,aAE5D,GAAI6I,EAAOH,WAAa9P,EAAOmQ,+BAC7B,OAAO,EAGT,IAAI/E,EAAYnC,KAAKC,MAAMgH,EAAalQ,EAAO0K,gBAC3CU,GAAavD,EAASlK,SAAQyN,EAAYvD,EAASlK,OAAS,IAE3DqO,GAAehM,EAAOoQ,cAAgB,MAAQ9B,GAAiB,IAAMoB,GACxEO,EAAO5E,KAAK,0BAGd,IAAMiB,GAAazE,EAASuD,GAM5B,GAHA6E,EAAOjD,eAAeV,GAGlBtM,EAAOyO,oBACT,IAAK,IAAI1O,EAAI,EAAGA,EAAI+H,EAAWnK,OAAQoC,GAAK,GACrCkJ,KAAKC,MAAkB,IAAZoD,IAAoBrD,KAAKC,MAAsB,IAAhBpB,EAAW/H,MACxDmQ,EAAanQ,GAKnB,GAAIkQ,EAAOI,aAAeH,IAAelE,EAAa,CACpD,IAAKiE,EAAOK,gBAAkBhE,EAAY2D,EAAO3D,WAAaA,EAAY2D,EAAOrD,eAC/E,OAAO,EAET,IAAKqD,EAAOM,gBAAkBjE,EAAY2D,EAAO3D,WAAaA,EAAY2D,EAAO/C,iBAC1ElB,GAAe,KAAOkE,EAAY,OAAO,EAIlD,IAAIP,SAOJ,OAN8BA,EAA1BO,EAAalE,EAAyB,OACjCkE,EAAalE,EAAyB,OAC9B,QAIZ7E,IAAQmF,IAAc2D,EAAO3D,YAAgBnF,GAAOmF,IAAc2D,EAAO3D,WAC5E2D,EAAO7B,kBAAkB8B,GAErBlQ,EAAO4P,YACTK,EAAOtE,mBAETsE,EAAO1C,sBACe,UAAlBvN,EAAO4K,QACTqF,EAAOf,aAAa5C,GAEJ,UAAdqD,IACFM,EAAOR,gBAAgBC,EAAcC,GACrCM,EAAO/U,cAAcwU,EAAcC,KAE9B,IAGK,IAAV/D,GAAgBxK,EAAQtG,YAS1BmV,EAAOlE,cAAcH,GACrBqE,EAAOf,aAAa5C,GACpB2D,EAAO7B,kBAAkB8B,GACzBD,EAAO1C,sBACP0C,EAAO5E,KAAK,wBAAyBO,EAAOoE,GAC5CC,EAAOR,gBAAgBC,EAAcC,GAChCM,EAAOH,YACVG,EAAOH,WAAY,EACdG,EAAOO,gCACVP,EAAOO,8BAAgC,SAA0BlT,GAC1D2S,IAAUA,EAAOQ,WAClBnT,EAAEqR,SAAW3L,OACjBiN,EAAOhJ,WAAW,GAAGyJ,oBAAoB,gBAAiBT,EAAOO,+BACjEP,EAAOhJ,WAAW,GAAGyJ,oBAAoB,sBAAuBT,EAAOO,+BACvEP,EAAOO,8BAAgC,YAChCP,EAAOO,8BACdP,EAAO/U,cAAcwU,EAAcC,MAGvCM,EAAOhJ,WAAW,GAAGrE,iBAAiB,gBAAiBqN,EAAOO,+BAC9DP,EAAOhJ,WAAW,GAAGrE,iBAAiB,sBAAuBqN,EAAOO,kCA5BtEP,EAAOlE,cAAc,GACrBkE,EAAOf,aAAa5C,GACpB2D,EAAO7B,kBAAkB8B,GACzBD,EAAO1C,sBACP0C,EAAO5E,KAAK,wBAAyBO,EAAOoE,GAC5CC,EAAOR,gBAAgBC,EAAcC,GACrCM,EAAO/U,cAAcwU,EAAcC,KA0B9B,IAoIPgB,YAjIF,WAA8F,IAAxE3M,EAAwEtG,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAA7D,EAAGkO,EAA0DlO,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAlDsF,KAAKhD,OAAO4L,MAAO8D,IAA+BhS,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAAVsS,EAAUtS,UAAA,GAExFkT,EAAW5M,EAKf,OANehB,KAEJhD,OAAOgO,OAChB4C,GAHa5N,KAGM6N,cAHN7N,KAMD+M,QAAQa,EAAUhF,EAAO8D,EAAcM,IA2HrDc,UAvHF,WAA8E,IAA1DlF,EAA0DlO,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAlDsF,KAAKhD,OAAO4L,MAAO8D,IAA+BhS,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAAVsS,EAAUtS,UAAA,GAEpEsC,EADOgD,KACPhD,OAAQ8P,EADD9M,KACC8M,UAChB,OAAI9P,EAAOgO,MACL8B,IAHS9M,KAIN+N,UAJM/N,KAMNgO,YANMhO,KAMeiE,WAAW,GAAGgK,WAN7BjO,KAOC+M,QAPD/M,KAOgBgJ,YAAchM,EAAO0K,eAAgBkB,EAAO8D,EAAcM,IAP1EhN,KASD+M,QATC/M,KAScgJ,YAAchM,EAAO0K,eAAgBkB,EAAO8D,EAAcM,IA8GvFkB,UA1GF,WAA8E,IAA1DtF,EAA0DlO,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAlDsF,KAAKhD,OAAO4L,MAAO8D,IAA+BhS,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAAVsS,EAAUtS,UAAA,GAG1EsC,EAFagD,KAEbhD,OAAQ8P,EAFK9M,KAEL8M,UAAWjI,EAFN7E,KAEM6E,SAAUC,EAFhB9E,KAEgB8E,WAAYV,EAF5BpE,KAE4BoE,aAG3C,GAAIpH,EAAOgO,KAAM,CACf,GAAI8B,EAAW,OAAO,EANT9M,KAON+N,UAPM/N,KASNgO,YATMhO,KASeiE,WAAW,GAAGgK,WAG5C,SAASE,EAAUC,GACjB,OAAIA,EAAM,GAAWnI,KAAKC,MAAMD,KAAKwB,IAAI2G,IAClCnI,KAAKC,MAAMkI,GAEpB,IAAMC,EAAsBF,EALV/J,EAXHpE,KAWyBsJ,WAXzBtJ,KAW6CsJ,WAMtDgF,EAAqBzJ,EAASjJ,IAAI,SAAAwS,GAAA,OAAOD,EAAUC,KAInDG,GAHuBzJ,EAAWlJ,IAAI,SAAAwS,GAAA,OAAOD,EAAUC,KAEzCvJ,EAASyJ,EAAmBpR,QAAQmR,IACvCxJ,EAASyJ,EAAmBpR,QAAQmR,GAAuB,IACxEG,SAKJ,YAJwB,IAAbD,IACTC,EAAY1J,EAAW5H,QAAQqR,IACf,IAAGC,EAzBNxO,KAyByBgJ,YAAc,GAzBvChJ,KA2BD+M,QAAQyB,EAAW5F,EAAO8D,EAAcM,IA+EtDyB,WA3EF,WAA+E,IAA1D7F,EAA0DlO,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAlDsF,KAAKhD,OAAO4L,MAAO8D,IAA+BhS,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAAVsS,EAAUtS,UAAA,GAE7E,OADesF,KACD+M,QADC/M,KACcgJ,YAAaJ,EAAO8D,EAAcM,IA0E/D0B,eAtEF,WAAmF,IAA1D9F,EAA0DlO,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAlDsF,KAAKhD,OAAO4L,MAAO8D,IAA+BhS,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAAVsS,EAAUtS,UAAA,GAE7EsG,EADWhB,KACOgJ,YAChBZ,EAAYnC,KAAKC,MAAMlF,EAFdhB,KAEgChD,OAAO0K,gBAEtD,GAAIU,EAJWpI,KAIQ6E,SAASlK,OAAS,EAAG,CAC1C,IAAM2O,EALOtJ,KAKYoE,aALZpE,KAKkCsJ,WALlCtJ,KAKsDsJ,UAE7DqF,EAPO3O,KAOc6E,SAASuD,GAG/BkB,EAAYqF,GAVJ3O,KAQW6E,SAASuD,EAAY,GAEDuG,GAAe,IACzD3N,EAXWhB,KAWOhD,OAAO0K,gBAI7B,OAfe1H,KAeD+M,QAAQ/L,EAAU4H,EAAO8D,EAAcM,IAuDrDjB,oBApDF,WACE,IAAMkB,EAASjN,KACPhD,EAAuBiQ,EAAvBjQ,OAAQiH,EAAegJ,EAAfhJ,WAEVmC,EAAyC,SAAzBpJ,EAAOoJ,cAA2B6G,EAAO2B,uBAAyB5R,EAAOoJ,cAC3FyI,EAAe5B,EAAOnB,aACtBtB,SACJ,GAAIxN,EAAOgO,KAAM,CACf,GAAIiC,EAAOH,UAAW,OACtBtC,EAAY1G,UAAS,EAAA5M,EAAA6C,GAAEkT,EAAOpB,cAAcnU,KAAK,2BAA4B,IACzEsF,EAAOwK,eAENqH,EAAe5B,EAAOY,aAAgBzH,EAAgB,GACnDyI,EAAgB5B,EAAOvI,OAAO/J,OAASsS,EAAOY,aAAiBzH,EAAgB,GAEnF6G,EAAOc,UACPc,EAAe5K,EACZ1K,SADY,IACCyD,EAAO2H,WADR,6BAC+C6F,EAD/C,WACmExN,EAAOiO,oBAD1E,KAEZrS,GAAG,GACHD,QAEHsB,EAAMM,SAAS,WACb0S,EAAOF,QAAQ8B,MAGjB5B,EAAOF,QAAQ8B,GAERA,EAAe5B,EAAOvI,OAAO/J,OAASyL,GAC/C6G,EAAOc,UACPc,EAAe5K,EACZ1K,SADY,IACCyD,EAAO2H,WADR,6BAC+C6F,EAD/C,WACmExN,EAAOiO,oBAD1E,KAEZrS,GAAG,GACHD,QAEHsB,EAAMM,SAAS,WACb0S,EAAOF,QAAQ8B,MAGjB5B,EAAOF,QAAQ8B,QAGjB5B,EAAOF,QAAQ8B,KAkGnB,IAAI7D,GACF8D,WArFF,WACE,IAAM7B,EAASjN,KACPhD,EAAuBiQ,EAAvBjQ,OAAQiH,EAAegJ,EAAfhJ,WAEhBA,EAAW1K,SAAX,IAAwByD,EAAO2H,WAA/B,IAA6C3H,EAAOiO,qBAAuBzR,SAE3E,IAAIkL,EAAST,EAAW1K,SAAX,IAAwByD,EAAO2H,YAE5C,GAAI3H,EAAO+R,uBAAwB,CACjC,IAAMC,EAAiBhS,EAAO0K,eAAkBhD,EAAO/J,OAASqC,EAAO0K,eACvE,GAAIsH,IAAmBhS,EAAO0K,eAAgB,CAC5C,IAAK,IAAI3K,EAAI,EAAGA,EAAIiS,EAAgBjS,GAAK,EAAG,CAC1C,IAAMkS,GAAY,EAAA/X,EAAA6C,GAAEuE,WAASC,cAAc,QAAQjH,SAAY0F,EAAO2H,WAApD,IAAkE3H,EAAOkS,iBAC3FjL,EAAWpL,OAAOoW,GAEpBvK,EAAST,EAAW1K,SAAX,IAAwByD,EAAO2H,aAIf,SAAzB3H,EAAOoJ,eAA6BpJ,EAAO6Q,eAAc7Q,EAAO6Q,aAAenJ,EAAO/J,QAE1FsS,EAAOY,aAAe/J,SAAS9G,EAAO6Q,cAAgB7Q,EAAOoJ,cAAe,IAC5E6G,EAAOY,cAAgB7Q,EAAOmS,qBAC1BlC,EAAOY,aAAenJ,EAAO/J,SAC/BsS,EAAOY,aAAenJ,EAAO/J,QAG/B,IAAMyU,KACAC,KACN3K,EAAOnM,KAAK,SAACyI,EAAU/F,GACrB,IAAMyL,GAAQ,EAAAxP,EAAA6C,GAAEkB,GACZ+F,EAAWiM,EAAOY,cAAcwB,EAAa5N,KAAKxG,GAClD+F,EAAW0D,EAAO/J,QAAUqG,GAAY0D,EAAO/J,OAASsS,EAAOY,cAAcuB,EAAc3N,KAAKxG,GACpGyL,EAAMhP,KAAK,0BAA2BsJ,KAExC,IAAK,IAAIjE,EAAI,EAAGA,EAAIsS,EAAa1U,OAAQoC,GAAK,EAC5CkH,EAAWpL,QAAO,EAAA3B,EAAA6C,GAAEsV,EAAatS,GAAGuS,WAAU,IAAOhY,SAAS0F,EAAOiO,sBAEvE,IAAK,IAAIlO,EAAIqS,EAAczU,OAAS,EAAGoC,GAAK,EAAGA,GAAK,EAClDkH,EAAWnL,SAAQ,EAAA5B,EAAA6C,GAAEqV,EAAcrS,GAAGuS,WAAU,IAAOhY,SAAS0F,EAAOiO,uBA+CzE8C,QA3CF,WACE,IAEE/Q,EAFagD,KAEbhD,OAAQgM,EAFKhJ,KAELgJ,YAAatE,EAFR1E,KAEQ0E,OAAQmJ,EAFhB7N,KAEgB6N,aAAcN,EAF9BvN,KAE8BuN,eAAgBD,EAF9CtN,KAE8CsN,eAAgBzI,EAF9D7E,KAE8D6E,SAAwBV,EAFtFnE,KAEwEoE,aAEnFwJ,SAJW5N,KAKRuN,gBAAiB,EALTvN,KAMRsN,gBAAiB,EAExB,IACMiC,GADiB1K,EAASmE,GARjBhJ,KASqBhF,eAIhCgO,EAAc6E,GAChBD,EAAYlJ,EAAO/J,OAAyB,EAAfkT,EAAqB7E,EAClD4E,GAAYC,EAfC7N,KAgBe+M,QAAQa,EAAU,GAAG,GAAO,IAC3B,IAAT2B,GAjBPvP,KAkBJkM,cAAc/H,GAlBVnE,KAkBwBsJ,UAlBxBtJ,KAkB2CsJ,WAAaiG,KAElC,SAAzBvS,EAAOoJ,eAA4B4C,GAA8B,EAAf6E,GAAsB7E,GAAetE,EAAO/J,OAASkT,KAEjHD,GAAYlJ,EAAO/J,OAASqO,EAAc6E,EAC1CD,GAAYC,EAvBC7N,KAwBe+M,QAAQa,EAAU,GAAG,GAAO,IAC3B,IAAT2B,GAzBPvP,KA0BJkM,cAAc/H,GA1BVnE,KA0BwBsJ,UA1BxBtJ,KA0B2CsJ,WAAaiG,IA1BxDvP,KA6BRuN,eAAiBA,EA7BTvN,KA8BRsN,eAAiBA,GAaxBkC,YAVF,WACE,IACQvL,EADOjE,KACPiE,WAAYjH,EADLgD,KACKhD,OAAQ0H,EADb1E,KACa0E,OAC5BT,EAAW1K,SAAX,IAAwByD,EAAO2H,WAA/B,IAA6C3H,EAAOiO,qBAAuBzR,SAC3EkL,EAAO/M,WAAW,6BAyBpB,IAAI8X,GACFC,cAjBF,SAAwBC,GAEtB,KAAIvR,EAAQI,QADGwB,KACchD,OAAO4S,eADrB5P,KAC8ChD,OAAOsL,eADrDtI,KAC6E6P,UAA5F,CACA,IAAM5U,EAFS+E,KAEG/E,GAClBA,EAAGgE,MAAM6Q,OAAS,OAClB7U,EAAGgE,MAAM6Q,OAASH,EAAS,mBAAqB,eAChD1U,EAAGgE,MAAM6Q,OAASH,EAAS,eAAiB,YAC5C1U,EAAGgE,MAAM6Q,OAASH,EAAS,WAAa,SAWxCI,gBARF,WAEM3R,EAAQI,OADGwB,KACchD,OAAOsL,eADrBtI,KAC6C6P,WAD7C7P,KAER/E,GAAGgE,MAAM6Q,OAAS,MA8J3B,IAAIE,GACFC,YAvJF,SAAsBvL,GACpB,IACQT,EADOjE,KACPiE,WAAYjH,EADLgD,KACKhD,OAIpB,GAHIA,EAAOgO,MAFIhL,KAGNwP,cAEa,iBAAlB,IAAO9K,EAAP,YAAAlH,EAAOkH,KAAuB,WAAYA,EAC5C,IAAK,IAAI3H,EAAI,EAAGA,EAAI2H,EAAO/J,OAAQoC,GAAK,EAClC2H,EAAO3H,IAAIkH,EAAWpL,OAAO6L,EAAO3H,SAG1CkH,EAAWpL,OAAO6L,GAEhB1H,EAAOgO,MAZIhL,KAaN8O,aAEH9R,EAAOsC,UAAYlB,EAAQkB,UAflBU,KAgBNqD,UAuIT6M,aAnIF,SAAuBxL,GACrB,IACQ1H,EADOgD,KACPhD,OAAQiH,EADDjE,KACCiE,WAAY+E,EADbhJ,KACagJ,YAExBhM,EAAOgO,MAHIhL,KAINwP,cAET,IAAInE,EAAiBrC,EAAc,EACnC,GAAsB,iBAAlB,IAAOtE,EAAP,YAAAlH,EAAOkH,KAAuB,WAAYA,EAAQ,CACpD,IAAK,IAAI3H,EAAI,EAAGA,EAAI2H,EAAO/J,OAAQoC,GAAK,EAClC2H,EAAO3H,IAAIkH,EAAWnL,QAAQ4L,EAAO3H,IAE3CsO,EAAiBrC,EAActE,EAAO/J,YAEtCsJ,EAAWnL,QAAQ4L,GAEjB1H,EAAOgO,MAfIhL,KAgBN8O,aAEH9R,EAAOsC,UAAYlB,EAAQkB,UAlBlBU,KAmBNqD,SAnBMrD,KAqBR+M,QAAQ1B,EAAgB,GAAG,IA8GlC8E,SA3GF,SAAmBnP,EAAU0D,GAC3B,IACQT,EADOjE,KACPiE,WAAYjH,EADLgD,KACKhD,OAChBoT,EAFWpQ,KACagJ,YAExBhM,EAAOgO,OACToF,GAJapQ,KAIe6N,aAJf7N,KAKNwP,cALMxP,KAMN0E,OAAST,EAAW1K,SAAX,IAAwByD,EAAO2H,aAEjD,IAAM0L,EARSrQ,KAQW0E,OAAO/J,OACjC,GAAIqG,GAAY,EATDhB,KAUNkQ,aAAaxL,QAGtB,GAAI1D,GAAYqP,EAbDrQ,KAcNiQ,YAAYvL,OADrB,CAOA,IAHA,IAAI2G,EAAiB+E,EAAoBpP,EAAWoP,EAAoB,EAAIA,EAEtEE,KACGvT,EAAIsT,EAAa,EAAGtT,GAAKiE,EAAUjE,GAAK,EAAG,CAClD,IAAMwT,EArBOvQ,KAqBe0E,OAAO9L,GAAGmE,GACtCwT,EAAa/W,SACb8W,EAAaE,QAAQD,GAGvB,GAAsB,iBAAlB,IAAO7L,EAAP,YAAAlH,EAAOkH,KAAuB,WAAYA,EAAQ,CACpD,IAAK,IAAI3H,EAAI,EAAGA,EAAI2H,EAAO/J,OAAQoC,GAAK,EAClC2H,EAAO3H,IAAIkH,EAAWpL,OAAO6L,EAAO3H,IAE1CsO,EAAiB+E,EAAoBpP,EAAWoP,EAAoB1L,EAAO/J,OAASyV,OAEpFnM,EAAWpL,OAAO6L,GAGpB,IAAK,IAAI3H,EAAI,EAAGA,EAAIuT,EAAa3V,OAAQoC,GAAK,EAC5CkH,EAAWpL,OAAOyX,EAAavT,IAG7BC,EAAOgO,MAvCIhL,KAwCN8O,aAEH9R,EAAOsC,UAAYlB,EAAQkB,UA1ClBU,KA2CNqD,SAELrG,EAAOgO,KA7CIhL,KA8CN+M,QAAQ1B,EA9CFrL,KA8C0B6N,aAAc,GAAG,GA9C3C7N,KAgDN+M,QAAQ1B,EAAgB,GAAG,KA2DpCoF,YAvDF,SAAsBC,GACpB,IACQ1T,EADOgD,KACPhD,OAAQiH,EADDjE,KACCiE,WAEZmM,EAHWpQ,KACagJ,YAGxBhM,EAAOgO,OACToF,GALapQ,KAKe6N,aALf7N,KAMNwP,cANMxP,KAON0E,OAAST,EAAW1K,SAAX,IAAwByD,EAAO2H,aAEjD,IAAI0G,EAAiB+E,EACjBO,SAEJ,GAA6B,iBAAzB,IAAOD,EAAP,YAAAlT,EAAOkT,KAA8B,WAAYA,EAAe,CAClE,IAAK,IAAI3T,EAAI,EAAGA,EAAI2T,EAAc/V,OAAQoC,GAAK,EAC7C4T,EAAgBD,EAAc3T,GAdnBiD,KAeA0E,OAAOiM,IAfP3Q,KAe8B0E,OAAO9L,GAAG+X,GAAenX,SAC9DmX,EAAgBtF,IAAgBA,GAAkB,GAExDA,EAAiBpF,KAAKK,IAAI+E,EAAgB,QAE1CsF,EAAgBD,EApBH1Q,KAqBF0E,OAAOiM,IArBL3Q,KAqB4B0E,OAAO9L,GAAG+X,GAAenX,SAC9DmX,EAAgBtF,IAAgBA,GAAkB,GACtDA,EAAiBpF,KAAKK,IAAI+E,EAAgB,GAGxCrO,EAAOgO,MA1BIhL,KA2BN8O,aAGH9R,EAAOsC,UAAYlB,EAAQkB,UA9BlBU,KA+BNqD,SAELrG,EAAOgO,KAjCIhL,KAkCN+M,QAAQ1B,EAlCFrL,KAkC0B6N,aAAc,GAAG,GAlC3C7N,KAoCN+M,QAAQ1B,EAAgB,GAAG,IAmBpCuF,gBAfF,WAIE,IAHA,IAEMF,KACG3T,EAAI,EAAGA,EAHDiD,KAGY0E,OAAO/J,OAAQoC,GAAK,EAC7C2T,EAAcjP,KAAK1E,GAJNiD,KAMRyQ,YAAYC,KAWfG,EAAU,WACd,IAAMC,EAAKvV,SAAOqD,UAAUmS,UAEtBC,GACJC,KAAK,EACLC,SAAS,EACTC,eAAe,EACfC,SAAS,EACTC,SAAS,EACTC,QAAQ,EACRC,MAAM,EACNC,MAAM,EACNC,QAASlW,SAAOkW,SAAWlW,SAAOmW,SAClCA,SAAUnW,SAAOkW,SAAWlW,SAAOmW,UAG/BL,EAAUP,EAAGa,MAAM,qCACnBT,EAAUJ,EAAGa,MAAM,+BACnBH,EAAOV,EAAGa,MAAM,wBAChBJ,EAAOT,EAAGa,MAAM,2BAChBL,GAAUE,GAAQV,EAAGa,MAAM,8BA+CjC,GA3CIN,IACFL,EAAOY,GAAK,UACZZ,EAAOa,UAAYR,EAAQ,GAC3BL,EAAOK,SAAU,GAGfH,IAAYG,IACdL,EAAOY,GAAK,UACZZ,EAAOa,UAAYX,EAAQ,GAC3BF,EAAOE,SAAU,EACjBF,EAAOG,cAAgBL,EAAGgB,cAAc5U,QAAQ,WAAa,IAE3DsU,GAAQF,GAAUC,KACpBP,EAAOY,GAAK,MACZZ,EAAOC,KAAM,GAGXK,IAAWC,IACbP,EAAOa,UAAYP,EAAO,GAAGxV,QAAQ,KAAM,KAC3CkV,EAAOM,QAAS,GAEdE,IACFR,EAAOa,UAAYL,EAAK,GAAG1V,QAAQ,KAAM,KACzCkV,EAAOQ,MAAO,GAEZD,IACFP,EAAOa,UAAYN,EAAK,GAAKA,EAAK,GAAGzV,QAAQ,KAAM,KAAO,KAC1DkV,EAAOM,QAAS,GAGdN,EAAOC,KAAOD,EAAOa,WAAaf,EAAG5T,QAAQ,aAAe,GACvB,OAAnC8T,EAAOa,UAAUlW,MAAM,KAAK,KAC9BqV,EAAOa,UAAYf,EAAGgB,cAAcnW,MAAM,YAAY,GAAGA,MAAM,KAAK,IAKxEqV,EAAOI,UAAYJ,EAAOY,IAAMZ,EAAOE,SAAWF,EAAOe,SAGzDf,EAAOe,SAAWT,GAAUE,GAAQD,IAAST,EAAGa,MAAM,8BAGlDX,EAAOY,IAAoB,QAAdZ,EAAOY,GAAc,CACpC,IAAMI,EAAehB,EAAOa,UAAUlW,MAAM,KACtCsW,EAAe3T,WAAS4T,cAAc,yBAC5ClB,EAAOmB,WAAanB,EAAOe,UACrBR,GAAQD,KACU,EAAlBU,EAAa,IAAW,EAAsB,EAAlBA,EAAa,IAAU,EAAsB,EAAlBA,EAAa,GAAS,IAC9EC,GAAgBA,EAAaG,aAAa,WAAWlV,QAAQ,eAAiB,EAOrF,OAHA8T,EAAOqB,WAAa9W,SAAO+W,kBAAoB,EAGxCtB,EAhFO,GAgnBhB,SAASuB,IACP,IAEQvV,EAFOgD,KAEPhD,OAAQ/B,EAFD+E,KAEC/E,GAEhB,IAAIA,GAAyB,IAAnBA,EAAGuX,YAAb,CAGIxV,EAAOyV,aAPIzS,KAQN0S,gBATU,IAaXpF,EAZOtN,KAYPsN,eAAgBC,EAZTvN,KAYSuN,eAAgB1I,EAZzB7E,KAYyB6E,SASxC,GArBe7E,KAeRsN,gBAAiB,EAfTtN,KAgBRuN,gBAAiB,EAhBTvN,KAkBRsD,aAlBQtD,KAmBRgE,eAEHhH,EAAO2V,SAAU,CACnB,IAAMC,EAAe3M,KAAK4M,IAAI5M,KAAKK,IAtBtBtG,KAsBiCsJ,UAtBjCtJ,KAsBmDkK,gBAtBnDlK,KAsB2E4J,gBAtB3E5J,KAuBNkM,aAAa0G,GAvBP5S,KAwBNoL,oBAxBMpL,KAyBNuK,sBAEHvN,EAAO4P,YA3BE5M,KA4BJ2I,wBA5BI3I,KA+BNuK,uBACuB,SAAzBvN,EAAOoJ,eAA4BpJ,EAAOoJ,cAAgB,IAhClDpG,KAgC+DoK,QAhC/DpK,KAgCgFhD,OAAOwK,eAhCvFxH,KAiCJ+M,QAjCI/M,KAiCW0E,OAAO/J,OAAS,EAAG,GAAG,GAAO,GAjCxCqF,KAmCJ+M,QAnCI/M,KAmCWgJ,YAAa,GAAG,GAAO,GAnClChJ,KAuCRuN,eAAiBA,EAvCTvN,KAwCRsN,eAAiBA,EAxCTtN,KA0CJhD,OAAOsL,eAAiBzD,IA1CpB7E,KA0CwC6E,UA1CxC7E,KA2CNuI,iBAoGX,IAAInI,GACF0S,aAtFF,WACE,IAEE9V,EAFagD,KAEbhD,OAAQ+V,EAFK/S,KAEL+S,YAAa9X,EAFR+E,KAEQ/E,GAAI+X,EAFZhT,KAEYgT,UAFZhT,KAMNiT,aA/lBX,SAAuBzS,GACrB,IACMU,EADSlB,KACQkT,gBACflW,EAFOgD,KAEPhD,OAAQmW,EAFDnT,KAECmT,QAChB,IAHenT,KAGJ8M,YAAa9P,EAAOmQ,+BAA/B,CAGA,IAAI7S,EAAIkG,EAGR,GAFIlG,EAAE8Y,gBAAe9Y,EAAIA,EAAE8Y,eAC3BlS,EAAQmS,aAA0B,eAAX/Y,EAAEgZ,MACpBpS,EAAQmS,gBAAgB,UAAW/Y,IAAiB,IAAZA,EAAEiZ,WAC1CrS,EAAQmS,cAAgB,WAAY/Y,GAAKA,EAAEkZ,OAAS,GACrDtS,EAAQuS,WAAavS,EAAQwS,SACjC,GAAI1W,EAAO2W,YAAa,EAAAzc,EAAA6C,GAAEO,EAAEqR,QAAQtS,QAAQ2D,EAAO4W,kBAAoB5W,EAAO4W,kBAAlC,IAA0D5W,EAAO6W,gBAAkB,GAZhH7T,KAaN8T,YAAa,OAGtB,IAAI9W,EAAO+W,eACJ,EAAA7c,EAAA6C,GAAEO,GAAGjB,QAAQ2D,EAAO+W,cAAc,GADzC,CAIAZ,EAAQa,SAAsB,eAAX1Z,EAAEgZ,KAAwBhZ,EAAE2Z,cAAc,GAAGC,MAAQ5Z,EAAE4Z,MAC1Ef,EAAQgB,SAAsB,eAAX7Z,EAAEgZ,KAAwBhZ,EAAE2Z,cAAc,GAAGG,MAAQ9Z,EAAE8Z,MAC1E,IAAMC,EAASlB,EAAQa,SACjBM,EAASnB,EAAQgB,SAIjBI,EAAqBvX,EAAOuX,oBAAsBvX,EAAOwX,sBACzDC,EAAqBzX,EAAOyX,oBAAsBzX,EAAO0X,sBAC/D,IACEH,KACKF,GAAUI,GACXJ,GAAU9Y,SAAOoZ,OAAOpR,MAAQkR,GAHtC,CAuBA,GAfAxa,EAAMyD,OAAOwD,GACXuS,WAAW,EACXC,SAAS,EACTkB,qBAAqB,EACrBC,iBAAaja,EACbka,iBAAala,IAGfuY,EAAQkB,OAASA,EACjBlB,EAAQmB,OAASA,EACjBpT,EAAQ6T,eAAiB9a,EAAMa,MA/ChBkF,KAgDR8T,YAAa,EAhDL9T,KAiDRsD,aAjDQtD,KAkDRgV,oBAAiBpa,EACpBoC,EAAOiY,UAAY,IAAG/T,EAAQgU,oBAAqB,GACxC,eAAX5a,EAAEgZ,KAAuB,CAC3B,IAAI6B,GAAiB,GACjB,EAAAje,EAAA6C,GAAEO,EAAEqR,QAAQjT,GAAGwI,EAAQkU,gBAAeD,GAAiB,GAEzD7W,WAAS+W,gBACN,EAAAne,EAAA6C,GAAEuE,WAAS+W,eAAe3c,GAAGwI,EAAQkU,eACrC9W,WAAS+W,gBAAkB/a,EAAEqR,QAEhCrN,WAAS+W,cAAcC,OAGzB,IAAMC,EAAuBJ,GA/DhBnV,KA+DyCwV,gBAAkBxY,EAAOyY,0BAC3EzY,EAAO0Y,+BAAiCH,IAC1Cjb,EAAE6a,iBAjESnV,KAoERqI,KAAK,aAAc/N,OA0hBW6H,KANtBnC,WAON2V,YAxhBX,SAAsBnV,GACpB,IACMU,EADSlB,KACQkT,gBACflW,EAFOgD,KAEPhD,OAAQmW,EAFDnT,KAECmT,QAAuBhP,EAFxBnE,KAEUoE,aACrB9J,EAAIkG,EAER,GADIlG,EAAE8Y,gBAAe9Y,EAAIA,EAAE8Y,eACtBlS,EAAQuS,WAMb,IAAIvS,EAAQmS,cAA2B,cAAX/Y,EAAEgZ,KAA9B,CACA,IAAMY,EAAmB,cAAX5Z,EAAEgZ,KAAuBhZ,EAAE2Z,cAAc,GAAGC,MAAQ5Z,EAAE4Z,MAC9DE,EAAmB,cAAX9Z,EAAEgZ,KAAuBhZ,EAAE2Z,cAAc,GAAGG,MAAQ9Z,EAAE8Z,MACpE,GAAI9Z,EAAEsb,wBAGJ,OAFAzC,EAAQkB,OAASH,OACjBf,EAAQmB,OAASF,GAGnB,IAnBepU,KAmBHwV,eAYV,OA/BaxV,KAqBN8T,YAAa,OAChB5S,EAAQuS,YACVxZ,EAAMyD,OAAOyV,GACXkB,OAAQH,EACRI,OAAQF,EACRJ,SAAUE,EACVC,SAAUC,IAEZlT,EAAQ6T,eAAiB9a,EAAMa,QAInC,GAAIoG,EAAQmS,cAAgBrW,EAAO6Y,sBAAwB7Y,EAAOgO,KAChE,GAlCahL,KAkCF6D,cAET,GACGuQ,EAAQjB,EAAQmB,QArCRtU,KAqCyBsJ,WArCzBtJ,KAqC6CkK,gBAClDkK,EAAQjB,EAAQmB,QAtCXtU,KAsC4BsJ,WAtC5BtJ,KAsCgD4J,eAIzD,OAFA1I,EAAQuS,WAAY,OACpBvS,EAAQwS,SAAU,QAGf,GACJQ,EAAQf,EAAQkB,QA7CNrU,KA6CuBsJ,WA7CvBtJ,KA6C2CkK,gBAClDgK,EAAQf,EAAQkB,QA9CTrU,KA8C0BsJ,WA9C1BtJ,KA8C8C4J,eAEzD,OAGJ,GAAI1I,EAAQmS,cAAgB/U,WAAS+W,eAC/B/a,EAAEqR,SAAWrN,WAAS+W,gBAAiB,EAAAne,EAAA6C,GAAEO,EAAEqR,QAAQjT,GAAGwI,EAAQkU,cAGhE,OAFAlU,EAAQwS,SAAU,OArDP1T,KAsDJ8T,YAAa,GAOxB,GAHI5S,EAAQ0T,qBA1DG5U,KA2DNqI,KAAK,YAAa/N,KAEvBA,EAAE2Z,eAAiB3Z,EAAE2Z,cAActZ,OAAS,GAAhD,CAEAwY,EAAQa,SAAWE,EACnBf,EAAQgB,SAAWC,EAEnB,IAAM0B,EAAQ3C,EAAQa,SAAWb,EAAQkB,OACnC0B,EAAQ5C,EAAQgB,SAAWhB,EAAQmB,OACzC,KApEetU,KAoEJhD,OAAOiY,WAAahP,KAAK+P,KAAK/P,KAAAgQ,IAACH,EAAS,GAAV7P,KAAAgQ,IAAgBF,EAAS,IApEnD/V,KAoEgEhD,OAAOiY,WAAtF,CAEA,QAAmC,IAAxB/T,EAAQ2T,YAA6B,CAC9C,IAAIqB,SAvESlW,KAwED4D,gBAAkBuP,EAAQgB,WAAahB,EAAQmB,QAxE9CtU,KAwEiE6D,cAAgBsP,EAAQa,WAAab,EAAQkB,OACzHnT,EAAQ2T,aAAc,EAGjBiB,EAAQA,EAAUC,EAAQA,GAAU,KACvCG,EAA6D,IAA/CjQ,KAAKkQ,MAAMlQ,KAAKwB,IAAIsO,GAAQ9P,KAAKwB,IAAIqO,IAAiB7P,KAAKmQ,GACzElV,EAAQ2T,YA9EC7U,KA8EoB4D,eAAiBsS,EAAalZ,EAAOkZ,WAAc,GAAKA,EAAalZ,EAAOkZ,YAY/G,GARIhV,EAAQ2T,aAlFG7U,KAmFNqI,KAAK,oBAAqB/N,QAEA,IAAxB4G,EAAQ4T,cACb3B,EAAQa,WAAab,EAAQkB,QAAUlB,EAAQgB,WAAahB,EAAQmB,SACtEpT,EAAQ4T,aAAc,IAGtB5T,EAAQ2T,YACV3T,EAAQuS,WAAY,OAGtB,GAAKvS,EAAQ4T,YAAb,CA9Fe9U,KAiGR8T,YAAa,EACpBxZ,EAAE6a,iBACEnY,EAAOqZ,2BAA6BrZ,EAAOsZ,QAC7Chc,EAAEic,kBAGCrV,EAAQwS,UACP1W,EAAOgO,MAxGEhL,KAyGJ+N,UAET7M,EAAQsV,eA3GKxW,KA2GmBhF,eA3GnBgF,KA4GN+I,cAAc,GA5GR/I,KA6GF8M,WA7GE9M,KA8GJiE,WAAWhM,QAAQ,qCAE5BiJ,EAAQuV,qBAAsB,GAE1BzZ,EAAOyS,aAAyC,IAlHvCzP,KAkHoBsN,iBAAqD,IAlHzEtN,KAkHsDuN,gBAlHtDvN,KAmHJ0P,eAAc,GAnHV1P,KAqHNqI,KAAK,kBAAmB/N,IArHlB0F,KAuHRqI,KAAK,aAAc/N,GAC1B4G,EAAQwS,SAAU,EAElB,IAAInE,EA1HWvP,KA0HG4D,eAAiBkS,EAAQC,EAC3C5C,EAAQ5D,KAAOA,EAEfA,GAAQvS,EAAO0Z,WACXvS,IAAKoL,GAAQA,GA9HFvP,KAgIRgV,eAAiBzF,EAAO,EAAI,OAAS,OAC5CrO,EAAQ+K,iBAAmBsD,EAAOrO,EAAQsV,eAE1C,IAAIG,GAAsB,EACtBC,EAAkB5Z,EAAO4Z,gBA0B7B,GAzBI5Z,EAAO6Y,sBACTe,EAAkB,GAEfrH,EAAO,GAAKrO,EAAQ+K,iBAxIVjM,KAwIoC4J,gBACjD+M,GAAsB,EAClB3Z,EAAO6Z,aAAY3V,EAAQ+K,iBA1IlBjM,KA0I6C4J,eAAiB,EAAzB3D,KAAAgQ,KA1IrCjW,KA0I6E4J,eAAiB1I,EAAQsV,eAAiBjH,EAASqH,KACpIrH,EAAO,GAAKrO,EAAQ+K,iBA3IhBjM,KA2I0CkK,iBACvDyM,GAAsB,EAClB3Z,EAAO6Z,aAAY3V,EAAQ+K,iBA7IlBjM,KA6I6CkK,eAAiB,EAAzBjE,KAAAgQ,IA7IrCjW,KA6I4EkK,eAAiBhJ,EAAQsV,eAAiBjH,EAASqH,KAG1ID,IACFrc,EAAEsb,yBAA0B,IAjJf5V,KAqJHsN,gBAA4C,SArJzCtN,KAqJsBgV,gBAA6B9T,EAAQ+K,iBAAmB/K,EAAQsV,iBACnGtV,EAAQ+K,iBAAmB/K,EAAQsV,iBAtJtBxW,KAwJHuN,gBAA4C,SAxJzCvN,KAwJsBgV,gBAA6B9T,EAAQ+K,iBAAmB/K,EAAQsV,iBACnGtV,EAAQ+K,iBAAmB/K,EAAQsV,gBAKjCxZ,EAAOiY,UAAY,EAAG,CACxB,KAAIhP,KAAKwB,IAAI8H,GAAQvS,EAAOiY,WAAa/T,EAAQgU,oBAW/C,YADAhU,EAAQ+K,iBAAmB/K,EAAQsV,gBATnC,IAAKtV,EAAQgU,mBAMX,OALAhU,EAAQgU,oBAAqB,EAC7B/B,EAAQkB,OAASlB,EAAQa,SACzBb,EAAQmB,OAASnB,EAAQgB,SACzBjT,EAAQ+K,iBAAmB/K,EAAQsV,oBACnCrD,EAAQ5D,KArKCvP,KAqKa4D,eAAiBuP,EAAQa,SAAWb,EAAQkB,OAASlB,EAAQgB,SAAWhB,EAAQmB,QASvGtX,EAAO8Z,gBAGR9Z,EAAO2V,UAAY3V,EAAOwL,qBAAuBxL,EAAOyL,yBAjL7CzI,KAkLNoL,oBAlLMpL,KAmLNuK,uBAELvN,EAAO2V,WAEyB,IAA9BzR,EAAQ6V,WAAWpc,QACrBuG,EAAQ6V,WAAWtV,MACjBuV,SAAU7D,EAzLDnT,KAyLgB4D,eAAiB,SAAW,UACrDqT,KAAM/V,EAAQ6T,iBAGlB7T,EAAQ6V,WAAWtV,MACjBuV,SAAU7D,EA9LCnT,KA8Lc4D,eAAiB,WAAa,YACvDqT,KAAMhd,EAAMa,SA/LDkF,KAmMRgK,eAAe9I,EAAQ+K,kBAnMfjM,KAqMRkM,aAAahL,EAAQ+K,4BA/LtB/K,EAAQ4T,aAAe5T,EAAQ2T,aANtB7U,KAOJqI,KAAK,oBAAqB/N,IAghBF6H,KAPpBnC,WAQNkX,WAhVX,SAAqB1W,GACnB,IAAMyM,EAASjN,KACTkB,EAAU+L,EAAOiG,gBAGrBlW,EACEiQ,EADFjQ,OAAQmW,EACNlG,EADMkG,QAAuBhP,EAC7B8I,EADe7I,aAAmBH,EAClCgJ,EADkChJ,WAAYa,EAC9CmI,EAD8CnI,WAAYD,EAC1DoI,EAD0DpI,SAE1DvK,EAAIkG,EAMR,GALIlG,EAAE8Y,gBAAe9Y,EAAIA,EAAE8Y,eACvBlS,EAAQ0T,qBACV3H,EAAO5E,KAAK,WAAY/N,GAE1B4G,EAAQ0T,qBAAsB,GACzB1T,EAAQuS,UAMX,OALIvS,EAAQwS,SAAW1W,EAAOyS,YAC5BxC,EAAOyC,eAAc,GAEvBxO,EAAQwS,SAAU,OAClBxS,EAAQ4T,aAAc,GAIpB9X,EAAOyS,YAAcvO,EAAQwS,SAAWxS,EAAQuS,aAAwC,IAA1BxG,EAAOK,iBAAqD,IAA1BL,EAAOM,iBACzGN,EAAOyC,eAAc,GAIvB,IAAMyH,EAAeld,EAAMa,MACrBsc,EAAWD,EAAejW,EAAQ6T,eAwBxC,GArBI9H,EAAO6G,aACT7G,EAAOvB,mBAAmBpR,GAC1B2S,EAAO5E,KAAK,MAAO/N,GACf8c,EAAW,KAAQD,EAAejW,EAAQmW,cAAiB,MACzDnW,EAAQoW,cAAcC,aAAarW,EAAQoW,cAC/CpW,EAAQoW,aAAerd,EAAMM,SAAS,WAC/B0S,IAAUA,EAAOQ,WACtBR,EAAO5E,KAAK,QAAS/N,IACpB,MAED8c,EAAW,KAAQD,EAAejW,EAAQmW,cAAiB,MACzDnW,EAAQoW,cAAcC,aAAarW,EAAQoW,cAC/CrK,EAAO5E,KAAK,YAAa/N,KAI7B4G,EAAQmW,cAAgBpd,EAAMa,MAC9Bb,EAAMM,SAAS,WACR0S,EAAOQ,YAAWR,EAAO6G,YAAa,MAGxC5S,EAAQuS,YAAcvS,EAAQwS,UAAYzG,EAAO+H,gBAAmC,IAAjB7B,EAAQ5D,MAAcrO,EAAQ+K,mBAAqB/K,EAAQsV,eAIjI,OAHAtV,EAAQuS,WAAY,EACpBvS,EAAQwS,SAAU,OAClBxS,EAAQ4T,aAAc,GAGxB5T,EAAQuS,WAAY,EACpBvS,EAAQwS,SAAU,EAClBxS,EAAQ4T,aAAc,EAEtB,IAAI0C,SAOJ,GALEA,EADExa,EAAO8Z,aACI3S,EAAM8I,EAAO3D,WAAa2D,EAAO3D,WAEhCpI,EAAQ+K,iBAGpBjP,EAAO2V,SAAX,CACE,GAAI6E,GAAcvK,EAAOrD,eAEvB,YADAqD,EAAOF,QAAQE,EAAOjE,aAGxB,GAAIwO,GAAcvK,EAAO/C,eAMvB,YALI+C,EAAOvI,OAAO/J,OAASkK,EAASlK,OAClCsS,EAAOF,QAAQlI,EAASlK,OAAS,GAEjCsS,EAAOF,QAAQE,EAAOvI,OAAO/J,OAAS,IAK1C,GAAIqC,EAAOya,iBAAkB,CAC3B,GAAIvW,EAAQ6V,WAAWpc,OAAS,EAAG,CACjC,IAAM+c,EAAgBxW,EAAQ6V,WAAWY,MACnCC,EAAgB1W,EAAQ6V,WAAWY,MAEnCE,EAAWH,EAAcV,SAAWY,EAAcZ,SAClDC,EAAOS,EAAcT,KAAOW,EAAcX,KAChDhK,EAAO6K,SAAWD,EAAWZ,EAC7BhK,EAAO6K,UAAY,EACf7R,KAAKwB,IAAIwF,EAAO6K,UAAY9a,EAAO+a,0BACrC9K,EAAO6K,SAAW,IAIhBb,EAAO,KAAQhd,EAAMa,MAAQ4c,EAAcT,KAAQ,OACrDhK,EAAO6K,SAAW,QAGpB7K,EAAO6K,SAAW,EAEpB7K,EAAO6K,UAAY9a,EAAOgb,8BAE1B9W,EAAQ6V,WAAWpc,OAAS,EAC5B,IAAIsd,EAAmB,IAAOjb,EAAOkb,sBAC/BC,EAAmBlL,EAAO6K,SAAWG,EAEvCG,EAAcnL,EAAO3D,UAAY6O,EACjChU,IAAKiU,GAAeA,GAExB,IAAIC,GAAW,EACXC,SACEC,EAA2C,GAA5BtS,KAAKwB,IAAIwF,EAAO6K,UAAiB9a,EAAOwb,4BACzDC,SACJ,GAAIL,EAAcnL,EAAO/C,eACnBlN,EAAO0b,wBACLN,EAAcnL,EAAO/C,gBAAkBqO,IACzCH,EAAcnL,EAAO/C,eAAiBqO,GAExCD,EAAsBrL,EAAO/C,eAC7BmO,GAAW,EACXnX,EAAQuV,qBAAsB,GAE9B2B,EAAcnL,EAAO/C,eAEnBlN,EAAOgO,MAAQhO,EAAOwK,iBAAgBiR,GAAe,QACpD,GAAIL,EAAcnL,EAAOrD,eAC1B5M,EAAO0b,wBACLN,EAAcnL,EAAOrD,eAAiB2O,IACxCH,EAAcnL,EAAOrD,eAAiB2O,GAExCD,EAAsBrL,EAAOrD,eAC7ByO,GAAW,EACXnX,EAAQuV,qBAAsB,GAE9B2B,EAAcnL,EAAOrD,eAEnB5M,EAAOgO,MAAQhO,EAAOwK,iBAAgBiR,GAAe,QACpD,GAAIzb,EAAO2b,eAAgB,CAEhC,IADA,IAAIzN,SACK0N,EAAI,EAAGA,EAAI/T,EAASlK,OAAQie,GAAK,EACxC,GAAI/T,EAAS+T,IAAMR,EAAa,CAC9BlN,EAAY0N,EACZ,MASJR,IAJEA,EADEnS,KAAKwB,IAAI5C,EAASqG,GAAakN,GAAenS,KAAKwB,IAAI5C,EAASqG,EAAY,GAAKkN,IAA0C,SAA1BnL,EAAO+H,eAC5FnQ,EAASqG,GAETrG,EAASqG,EAAY,IAUvC,GANIuN,GACFxL,EAAO4L,KAAK,gBAAiB,WAC3B5L,EAAOc,YAIa,IAApBd,EAAO6K,SAEPG,EADE9T,EACiB8B,KAAKwB,MAAM2Q,EAAcnL,EAAO3D,WAAa2D,EAAO6K,UAEpD7R,KAAKwB,KAAK2Q,EAAcnL,EAAO3D,WAAa2D,EAAO6K,eAEnE,GAAI9a,EAAO2b,eAEhB,YADA1L,EAAOyB,iBAIL1R,EAAO0b,wBAA0BL,GACnCpL,EAAOjD,eAAesO,GACtBrL,EAAOlE,cAAckP,GACrBhL,EAAOf,aAAakM,GACpBnL,EAAOR,iBAAgB,EAAMQ,EAAO+H,gBACpC/H,EAAOH,WAAY,EACnB7I,EAAW/L,cAAc,WAClB+U,IAAUA,EAAOQ,WAAcvM,EAAQuV,sBAC5CxJ,EAAO5E,KAAK,kBAEZ4E,EAAOlE,cAAc/L,EAAO4L,OAC5BqE,EAAOf,aAAaoM,GACpBrU,EAAW/L,cAAc,WAClB+U,IAAUA,EAAOQ,WACtBR,EAAO/U,sBAGF+U,EAAO6K,UAChB7K,EAAOjD,eAAeoO,GACtBnL,EAAOlE,cAAckP,GACrBhL,EAAOf,aAAakM,GACpBnL,EAAOR,iBAAgB,EAAMQ,EAAO+H,gBAC/B/H,EAAOH,YACVG,EAAOH,WAAY,EACnB7I,EAAW/L,cAAc,WAClB+U,IAAUA,EAAOQ,WACtBR,EAAO/U,oBAIX+U,EAAOjD,eAAeoO,GAGxBnL,EAAO7B,oBACP6B,EAAO1C,2BACF,GAAIvN,EAAO2b,eAEhB,YADA1L,EAAOyB,mBAIJ1R,EAAOya,kBAAoBL,GAAYpa,EAAO8b,gBACjD7L,EAAOjD,iBACPiD,EAAO7B,oBACP6B,EAAO1C,2BAnJX,CA2JA,IAFA,IAAIwO,EAAY,EACZC,EAAY/L,EAAOlI,gBAAgB,GAC9BhI,EAAI,EAAGA,EAAI+H,EAAWnK,OAAQoC,GAAKC,EAAO0K,oBACI,IAA1C5C,EAAW/H,EAAIC,EAAO0K,gBAC3B8P,GAAc1S,EAAW/H,IAAMya,EAAa1S,EAAW/H,EAAIC,EAAO0K,kBACpEqR,EAAYhc,EACZic,EAAYlU,EAAW/H,EAAIC,EAAO0K,gBAAkB5C,EAAW/H,IAExDya,GAAc1S,EAAW/H,KAClCgc,EAAYhc,EACZic,EAAYlU,EAAWA,EAAWnK,OAAS,GAAKmK,EAAWA,EAAWnK,OAAS,IAKnF,IAAMse,GAASzB,EAAa1S,EAAWiU,IAAcC,EAErD,GAAI5B,EAAWpa,EAAO8b,aAAc,CAElC,IAAK9b,EAAOkc,WAEV,YADAjM,EAAOF,QAAQE,EAAOjE,aAGM,SAA1BiE,EAAO+H,iBACLiE,GAASjc,EAAOmc,gBAAiBlM,EAAOF,QAAQgM,EAAY/b,EAAO0K,gBAClEuF,EAAOF,QAAQgM,IAEQ,SAA1B9L,EAAO+H,iBACLiE,EAAS,EAAIjc,EAAOmc,gBAAkBlM,EAAOF,QAAQgM,EAAY/b,EAAO0K,gBACvEuF,EAAOF,QAAQgM,QAEjB,CAEL,IAAK/b,EAAOoc,YAEV,YADAnM,EAAOF,QAAQE,EAAOjE,aAGM,SAA1BiE,EAAO+H,gBACT/H,EAAOF,QAAQgM,EAAY/b,EAAO0K,gBAEN,SAA1BuF,EAAO+H,gBACT/H,EAAOF,QAAQgM,MAyEc5W,KARlBnC,WAWRqZ,QAvBT,SAAkB/e,GACD0F,KACH8T,aADG9T,KAEFhD,OAAOsc,eAAehf,EAAE6a,iBAFtBnV,KAGFhD,OAAOuc,0BAHLvZ,KAGwC8M,YACnDxS,EAAEic,kBACFjc,EAAEkf,8BAiBmBrX,KAXVnC,MAaf,IAAM2L,EAAsC,cAA7B3O,EAAOyc,kBAAoCxe,EAAK+X,EACzD0G,IAAY1c,EAAOsZ,OAIvB,GAAKlY,EAAQI,QAAUJ,EAAQO,gBAAiBP,EAAQW,sBAIjD,CACL,GAAIX,EAAQI,MAAO,CACjB,IAAMe,IAAwC,eAAtBwT,EAAY4G,QAA0Bvb,EAAQmB,kBAAmBvC,EAAO4c,oBAAqBC,SAAS,EAAMH,SAAS,GAC7I/N,EAAO/L,iBAAiBmT,EAAY4G,MAzB3B3Z,KAyByCiT,aAAc1T,GAChEoM,EAAO/L,iBAAiBmT,EAAY+G,KA1B3B9Z,KA0BwC2V,YAAavX,EAAQmB,iBAAoBsa,SAAS,EAAOH,WAAYA,GACtH/N,EAAO/L,iBAAiBmT,EAAYgH,IA3B3B/Z,KA2BuCkX,WAAY3X,IAEzDvC,EAAO4S,gBAAkBiB,EAAOI,MAAQJ,EAAOK,SAAalU,EAAO4S,gBAAkBxR,EAAQI,OAASqS,EAAOI,OAChHtF,EAAO/L,iBAAiB,YA9BfI,KA8BmCiT,cAAc,GAC1D3U,WAASsB,iBAAiB,YA/BjBI,KA+BqC2V,YAAa+D,GAC3Dpb,WAASsB,iBAAiB,UAhCjBI,KAgCmCkX,YAAY,SAb1DvL,EAAO/L,iBAAiBmT,EAAY4G,MAnBzB3Z,KAmBuCiT,cAAc,GAChE3U,WAASsB,iBAAiBmT,EAAY+G,KApB3B9Z,KAoBwC2V,YAAa+D,GAChEpb,WAASsB,iBAAiBmT,EAAYgH,IArB3B/Z,KAqBuCkX,YAAY,IAe5Dla,EAAOsc,eAAiBtc,EAAOuc,2BACjC5N,EAAO/L,iBAAiB,QArCbI,KAqC6BqZ,SAAS,GArCtCrZ,KA0CRjI,GAAI8Y,EAAOI,KAAOJ,EAAOK,QAAU,0CAA4C,wBAA0BqB,GAAU,IA4C1HyH,aAzCF,WACE,IAGEhd,EAHagD,KAGbhD,OAAQ+V,EAHK/S,KAGL+S,YAAa9X,EAHR+E,KAGQ/E,GAAI+X,EAHZhT,KAGYgT,UAGrBrH,EAAsC,cAA7B3O,EAAOyc,kBAAoCxe,EAAK+X,EACzD0G,IAAY1c,EAAOsZ,OAIvB,GAAKlY,EAAQI,QAAUJ,EAAQO,gBAAiBP,EAAQW,sBAIjD,CACL,GAAIX,EAAQI,MAAO,CACjB,IAAMe,IAAwC,iBAAtBwT,EAAY4G,QAA4Bvb,EAAQmB,kBAAmBvC,EAAO4c,oBAAqBC,SAAS,EAAMH,SAAS,GAC/I/N,EAAO+B,oBAAoBqF,EAAY4G,MAlB9B3Z,KAkB4CiT,aAAc1T,GACnEoM,EAAO+B,oBAAoBqF,EAAY+G,KAnB9B9Z,KAmB2C2V,YAAa+D,GACjE/N,EAAO+B,oBAAoBqF,EAAYgH,IApB9B/Z,KAoB0CkX,WAAY3X,IAE5DvC,EAAO4S,gBAAkBiB,EAAOI,MAAQJ,EAAOK,SAAalU,EAAO4S,gBAAkBxR,EAAQI,OAASqS,EAAOI,OAChHtF,EAAO+B,oBAAoB,YAvBlB1N,KAuBsCiT,cAAc,GAC7D3U,WAASoP,oBAAoB,YAxBpB1N,KAwBwC2V,YAAa+D,GAC9Dpb,WAASoP,oBAAoB,UAzBpB1N,KAyBsCkX,YAAY,SAb7DvL,EAAO+B,oBAAoBqF,EAAY4G,MAZ5B3Z,KAY0CiT,cAAc,GACnE3U,WAASoP,oBAAoBqF,EAAY+G,KAb9B9Z,KAa2C2V,YAAa+D,GACnEpb,WAASoP,oBAAoBqF,EAAYgH,IAd9B/Z,KAc0CkX,YAAY,IAe/Dla,EAAOsc,eAAiBtc,EAAOuc,2BACjC5N,EAAO+B,oBAAoB,QA9BhB1N,KA8BgCqZ,SAAS,GA9BzCrZ,KAmCRhI,IAAK6Y,EAAOI,KAAOJ,EAAOK,QAAU,0CAA4C,wBAA0BqB,KAiFnH,IAAIE,GAAgBC,cAzEpB,WACE,IAEE1J,EAFahJ,KAEbgJ,YAAaqE,EAFArN,KAEAqN,YAHS4M,EACTja,KAEa6N,oBAHJjT,IAAAqf,EAGmB,EAHnBA,EAGsBjd,EAF/BgD,KAE+BhD,OAExCyV,EAAczV,EAAOyV,YAC3B,GAAKA,KAAgBA,GAAmD,IAApC9Y,OAAOC,KAAK6Y,GAAa9X,QAA7D,CAGA,IAAMuf,EARSla,KAQWma,cAAc1H,GAExC,GAAIyH,GAVWla,KAUUoa,oBAAsBF,EAAY,CACzD,IAAMG,EAAuBH,KAAczH,EAAcA,EAAYyH,QAActf,EAC/Eyf,IACD,gBAAiB,eAAgB,kBAAkBxgB,QAAQ,SAACoD,GAC3D,IAAMqd,EAAaD,EAAqBpd,QACd,IAAfqd,IAITD,EAAqBpd,GAHT,kBAAVA,GAA6C,SAAfqd,GAAwC,SAAfA,EAEtC,kBAAVrd,EACqBV,WAAW+d,GAEXxW,SAASwW,EAAY,IAJrB,UASpC,IAAMC,EAAmBF,GA1BZra,KA0B2Cwa,eAClDC,EAAczd,EAAOgO,MAASuP,EAAiBnU,gBAAkBpJ,EAAOoJ,cAE9EnM,EAAMyD,OA7BOsC,KA6BOhD,OAAQud,GAE5BtgB,EAAMyD,OA/BOsC,MAgCXwV,eAhCWxV,KAgCYhD,OAAOwY,eAC9BlI,eAjCWtN,KAiCYhD,OAAOsQ,eAC9BC,eAlCWvN,KAkCYhD,OAAOuQ,iBAlCnBvN,KAqCNoa,kBAAoBF,EAEvBO,GAAepN,IAvCNrN,KAwCJwP,cAxCIxP,KAyCJ8O,aAzCI9O,KA0CJgE,eA1CIhE,KA2CJ+M,QAAS/D,EAAc6E,EA3CnB7N,KA2C0C6N,aAAc,GAAG,IA3C3D7N,KA6CNqI,KAAK,aAAckS,MA2BKJ,cAvBnC,SAAwB1H,GAGtB,GAAKA,EAAL,CACA,IAAIyH,GAAa,EACXQ,KACN/gB,OAAOC,KAAK6Y,GAAa5Y,QAAQ,SAAC8gB,GAChCD,EAAOjZ,KAAKkZ,KAEdD,EAAOE,KAAK,SAAC/e,EAAGgf,GAAJ,OAAU/W,SAASjI,EAAG,IAAMiI,SAAS+W,EAAG,MACpD,IAAK,IAAI9d,EAAI,EAAGA,EAAI2d,EAAO/f,OAAQoC,GAAK,EAAG,CACzC,IAAM4d,EAAQD,EAAO3d,GAVRiD,KAWFhD,OAAO8d,mBACZH,GAASpf,SAAOwf,aAClBb,EAAaS,GAENA,GAASpf,SAAOwf,aAAeb,IACxCA,EAAaS,GAGjB,OAAOT,GAAc,SAKjBc,EAAW,WAKf,OACEC,OAAQ1f,SAAOqD,UAAUmS,UAAUY,MAAM,eAAiBpW,SAAOqD,UAAUmS,UAAUY,MAAM,SAC3FuJ,SAAU3f,SAAOqD,UAAUmS,UAAUY,MAAM,SAC3CwJ,SAPF,WACE,IAAMrK,EAAKvV,SAAOqD,UAAUmS,UAAUe,cACtC,OAAQhB,EAAG5T,QAAQ,WAAa,GAAK4T,EAAG5T,QAAQ,UAAY,GAAK4T,EAAG5T,QAAQ,WAAa,EAK/Eie,GACVC,YAAa,+CAA+CC,KAAK9f,SAAOqD,UAAUmS,YATrE,GA0IjB,IAEIuK,GACFC,MAAM,EACN5O,UAAW,aACX8M,kBAAmB,YACnBrM,aAAc,EACdxE,MAAO,IAEPuE,gCAAgC,EAGhCoH,oBAAoB,EACpBE,mBAAoB,GAGpB9B,UAAU,EACV8E,kBAAkB,EAClBS,sBAAuB,EACvBQ,wBAAwB,EACxBF,4BAA6B,EAC7BR,8BAA+B,EAC/BW,gBAAgB,EAChBZ,wBAAyB,IAGzBnL,YAAY,EAGZ/E,gBAAgB,EAGhBmE,kBAAkB,EAGlBpE,OAAQ,QAGR6K,iBAAa7X,EACbkgB,oBAAoB,EAGpBvV,aAAc,EACda,cAAe,EACfJ,gBAAiB,EACjBK,oBAAqB,SACrBqB,eAAgB,EAChBF,gBAAgB,EAChBvC,mBAAoB,EACpBG,kBAAmB,EACnBqG,qBAAqB,EACrB1D,0BAA0B,EAG1BO,eAAe,EAGfhB,cAAc,EAGdoP,WAAY,EACZR,WAAY,GACZtG,eAAe,EACfwJ,aAAa,EACbF,YAAY,EACZC,gBAAiB,GACjBL,aAAc,IACdhC,cAAc,EACdtB,gBAAgB,EAChBP,UAAW,EACXoB,0BAA0B,EAC1BZ,0BAA0B,EAC1BC,+BAA+B,EAC/BG,qBAAqB,EAGrB2F,mBAAmB,EAGnB3E,YAAY,EACZD,gBAAiB,IAGjBpO,qBAAqB,EACrBC,uBAAuB,EAGvBgH,YAAY,EAGZ6J,eAAe,EACfC,0BAA0B,EAC1BxN,qBAAqB,EAGrB0P,eAAe,EACfC,qBAAqB,EAGrB1Q,MAAM,EACNmE,qBAAsB,EACtBtB,aAAc,KACdkB,wBAAwB,EAGxBxB,gBAAgB,EAChBD,gBAAgB,EAChByG,aAAc,KACdJ,WAAW,EACXE,eAAgB,oBAChBD,kBAAmB,KAGnBgG,kBAAkB,EAGlB+B,uBAAwB,oBACxBhX,WAAY,eACZuK,gBAAiB,+BACjBzE,iBAAkB,sBAClBG,0BAA2B,gCAC3BpB,kBAAmB,uBACnByB,oBAAqB,yBACrBP,eAAgB,oBAChBG,wBAAyB,8BACzBF,eAAgB,oBAChBG,wBAAyB,8BACzB8Q,aAAc,iBAGdC,oBAAoB,GAGhBC,GACJzY,SACAiG,YACAxR,WAAYyU,EACZ7F,QACAsE,OACAyE,aACAO,eACA5P,SACAqS,cACAlK,eA/IsBA,cAjBxB,WACE,IACMwT,EADS/b,KACU6P,SADV7P,KAGR6P,SAAsC,IAH9B7P,KAGU6E,SAASlK,OAHnBqF,KAIRsN,gBAJQtN,KAIiB6P,SAJjB7P,KAKRuN,gBALQvN,KAKiB6P,SAG5BkM,IARW/b,KAQU6P,UARV7P,KAQ2BqI,KAR3BrI,KAQuC6P,SAAW,OAAS,UAEtEkM,GAAaA,IAVF/b,KAUuB6P,WAVvB7P,KAWNoK,OAAQ,EAXFpK,KAYNgc,WAAW3Y,YAoJpB4Y,SA5NcC,WAjDhB,WACE,IAEEC,EAFanc,KAEbmc,WAAYnf,EAFCgD,KAEDhD,OAAQmH,EAFPnE,KAEOmE,IAAKV,EAFZzD,KAEYyD,IAErB2Y,KAENA,EAAS3a,KAAKzE,EAAO2P,WAEjB3P,EAAO2V,UACTyJ,EAAS3a,KAAK,aAEXrD,EAAQgB,SACXgd,EAAS3a,KAAK,cAEZzE,EAAO4P,YACTwP,EAAS3a,KAAK,cAEZ0C,GACFiY,EAAS3a,KAAK,OAEZzE,EAAOgJ,gBAAkB,GAC3BoW,EAAS3a,KAAK,YAEZoP,EAAOK,SACTkL,EAAS3a,KAAK,WAEZoP,EAAOI,KACTmL,EAAS3a,KAAK,QAGXuZ,EAAQC,MAAQD,EAAQE,UAAY9c,EAAQO,eAAiBP,EAAQW,wBACxEqd,EAAS3a,KAAT,OAAqBzE,EAAO2P,WAG9ByP,EAASviB,QAAQ,SAACwiB,GAChBF,EAAW1a,KAAKzE,EAAO2e,uBAAyBU,KAGlD5Y,EAAInM,SAAS6kB,EAAWpgB,KAAK,OAUHugB,cAP5B,WACE,IACQ7Y,EADOzD,KACPyD,IAAK0Y,EADEnc,KACFmc,WAEb1Y,EAAIlM,YAAY4kB,EAAWpgB,KAAK,QAgOhCwgB,QAtKAC,UArDF,SAAoBC,EAASC,EAAKC,EAAQC,EAAOC,EAAkBriB,GACjE,IAAIsiB,SACJ,SAASC,IACHviB,GAAUA,IAEXiiB,EAAQO,UAAaH,EAmBxBE,IAlBIL,IACFI,EAAQ,IAAIvhB,SAAO0hB,OACbC,OAASH,EACfD,EAAMK,QAAUJ,EACZH,IACFE,EAAMF,MAAQA,GAEZD,IACFG,EAAMH,OAASA,GAEbD,IACFI,EAAMJ,IAAMA,IAGdK,KAkCJtB,cA1BF,WACE,IAAMxO,EAASjN,KAEf,SAAS+c,SACe,IAAX9P,GAAqC,OAAXA,GAAoBA,IAAUA,EAAOQ,iBAC9C7S,IAAxBqS,EAAOmQ,eAA4BnQ,EAAOmQ,cAAgB,GAC1DnQ,EAAOmQ,eAAiBnQ,EAAOoQ,aAAa1iB,SAC1CsS,EAAOjQ,OAAO0e,qBAAqBzO,EAAO5J,SAC9C4J,EAAO5E,KAAK,iBANhB4E,EAAOoQ,aAAepQ,EAAOxJ,IAAInK,KAAK,OAStC,IAAK,IAAIyD,EAAI,EAAGA,EAAIkQ,EAAOoQ,aAAa1iB,OAAQoC,GAAK,EAAG,CACtD,IAAM0f,EAAUxP,EAAOoQ,aAAatgB,GACpCkQ,EAAOuP,UACLC,EACAA,EAAQa,YAAcb,EAAQrK,aAAa,OAC3CqK,EAAQE,QAAUF,EAAQrK,aAAa,UACvCqK,EAAQG,OAASH,EAAQrK,aAAa,UACtC,EACA2K,OA+KAQ,KAEAC,cACJ,SAAAA,IAAqBzd,EAAAC,KAAAwd,GAAA,IACnB,IAAIviB,SACA+B,SAFeygB,EAAA/iB,UAAAC,OAANgG,EAAMC,MAAA6c,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAN/c,EAAM+c,GAAAhjB,UAAAgjB,GAGC,IAAhB/c,EAAKhG,QAAgBgG,EAAK,GAAGlD,aAAekD,EAAK,GAAGlD,cAAgB9D,OACtEqD,EAAS2D,EAAK,IAEb1F,EAAc0F,EADV,GACA3D,EAAU2D,EADV,IAGF3D,IAAQA,MAEbA,EAAS/C,EAAMyD,UAAWV,GACtB/B,IAAO+B,EAAO/B,KAAI+B,EAAO/B,GAAKA,GAXf,IAAA0iB,EAAAC,EAAA5d,MAAAwd,EAAAK,WAAAlkB,OAAAmkB,eAAAN,IAAAtY,KAAAlF,KAabhD,IAENrD,OAAOC,KAAKkiB,GAAYjiB,QAAQ,SAACkkB,GAC/BpkB,OAAOC,KAAKkiB,EAAWiC,IAAiBlkB,QAAQ,SAACmkB,GAC1CR,EAAOjb,UAAUyb,KACpBR,EAAOjb,UAAUyb,GAAelC,EAAWiC,GAAgBC,QAMjE,IAAM/Q,SACwB,IAAnBA,EAAOrL,UAChBqL,EAAOrL,YAETjI,OAAOC,KAAKqT,EAAOrL,SAAS/H,QAAQ,SAACgI,GACnC,IAAMC,EAASmL,EAAOrL,QAAQC,GAC9B,GAAIC,EAAO9E,OAAQ,CACjB,IAAMihB,EAAkBtkB,OAAOC,KAAKkI,EAAO9E,QAAQ,GAC7CgF,EAAeF,EAAO9E,OAAOihB,GACnC,GAA4B,iBAAxB,IAAOjc,EAAP,YAAAxE,EAAOwE,KAA8C,OAAjBA,EAAuB,OAC/D,KAAMic,KAAmBjhB,GAAU,YAAagF,GAAe,QAC/B,IAA5BhF,EAAOihB,KACTjhB,EAAOihB,IAAqBzZ,SAAS,IAGF,WAAnChH,EAAOR,EAAOihB,KACT,YAAajhB,EAAOihB,KAEzBjhB,EAAOihB,GAAiBzZ,SAAU,GAE/BxH,EAAOihB,KAAkBjhB,EAAOihB,IAAqBzZ,SAAS,OAKvE,IAAM0Z,EAAejkB,EAAMyD,UAAW4d,GACtCrO,EAAOkR,iBAAiBD,GAGxBjR,EAAOjQ,OAAS/C,EAAMyD,UAAWwgB,EAAcX,EAAkBvgB,GACjEiQ,EAAOuN,eAAiBvgB,EAAMyD,UAAWuP,EAAOjQ,QAChDiQ,EAAOmR,aAAenkB,EAAMyD,UAAWV,GAGvCiQ,EAAOlT,EAAIA,IAGX,IAAM0J,GAAM,EAAAvM,EAAA6C,GAAEkT,EAAOjQ,OAAO/B,IAG5B,KAFAA,EAAKwI,EAAI,IAGP,YAAO7I,EAAPgjB,EAAAD,OAAO/iB,GAGT,GAAI6I,EAAI9I,OAAS,EAAG,KACZ0jB,KAKN,OAJA5a,EAAIlL,KAAK,SAACyI,EAAUsd,GAClB,IAAMC,EAAYtkB,EAAMyD,UAAWV,GAAU/B,GAAIqjB,IACjDD,EAAQ5c,KAAK,IAAI+b,EAAOe,MAE1BX,EAAAD,EAAOU,GAGTpjB,EAAGgS,OAASA,EACZxJ,EAAI7L,KAAK,SAAUqV,GAGnB,IAAMhJ,EAAaR,EAAIlK,SAAJ,IAAiB0T,EAAOjQ,OAAO4e,cAwHlD,OArHA3hB,EAAMyD,OAAOuP,GACXxJ,MACAxI,KACAgJ,aACA+O,UAAW/O,EAAW,GAGtBkY,cAGAzX,QAAQ,EAAAxN,EAAA6C,KACR+K,cACAD,YACAE,mBAGAnB,aAhBmB,WAiBjB,MAAmC,eAA5BqJ,EAAOjQ,OAAO2P,WAEvB9I,WAnBmB,WAoBjB,MAAmC,aAA5BoJ,EAAOjQ,OAAO2P,WAGvBxI,IAA+B,QAAzBlJ,EAAG4R,IAAIiF,eAAoD,QAAzBrO,EAAInL,IAAI,aAChD8L,aAA0C,eAA5B6I,EAAOjQ,OAAO2P,YAAwD,QAAzB1R,EAAG4R,IAAIiF,eAAoD,QAAzBrO,EAAInL,IAAI,cACrG+L,SAAwC,gBAA9BJ,EAAW3L,IAAI,WAGzB0Q,YAAa,EACbwB,UAAW,EAGXL,aAAa,EACbC,OAAO,EAGPd,UAAW,EACXgD,kBAAmB,EACnBvC,SAAU,EACV+N,SAAU,EACVhL,WAAW,EAGXQ,eAAgBL,EAAOjQ,OAAOsQ,eAC9BC,eAAgBN,EAAOjQ,OAAOuQ,eAG9BwF,YAAc,WACZ,IAAMvU,GAAS,aAAc,YAAa,YACtC4S,GAAW,YAAa,YAAa,WAgBzC,OAfIhT,EAAQO,cACVyS,GAAW,cAAe,cAAe,aAChChT,EAAQW,wBACjBqS,GAAW,gBAAiB,gBAAiB,gBAE/CnE,EAAOuR,kBACL7E,MAAOnb,EAAM,GACbsb,KAAMtb,EAAM,GACZub,IAAKvb,EAAM,IAEbyO,EAAOwR,oBACL9E,MAAOvI,EAAQ,GACf0I,KAAM1I,EAAQ,GACd2I,IAAK3I,EAAQ,IAERhT,EAAQI,QAAUyO,EAAOjQ,OAAO4S,cAAgB3C,EAAOuR,iBAAmBvR,EAAOwR,mBAlB5E,GAoBdvL,iBACEO,eAAW7Y,EACX8Y,aAAS9Y,EACTga,yBAAqBha,EACrBma,oBAAgBna,EAChBia,iBAAaja,EACbqR,sBAAkBrR,EAClB4b,oBAAgB5b,EAChBsa,wBAAoBta,EAEpBwa,aAAc,iDAEdiC,cAAepd,EAAMa,MACrBwc,kBAAc1c,EAEdmc,cACAN,yBAAqB7b,EACrByY,kBAAczY,EACdka,iBAAala,GAIfkZ,YAAY,EAGZ0B,eAAgBvI,EAAOjQ,OAAOwY,eAE9BrC,SACEkB,OAAQ,EACRC,OAAQ,EACRN,SAAU,EACVG,SAAU,EACV5E,KAAM,GAIR8N,gBACAD,aAAc,IAKhBnQ,EAAOyR,aAGHzR,EAAOjQ,OAAOue,MAChBtO,EAAOsO,OAITqC,EAAAD,EAAO1Q,sUA1MUnN,qDA8MjB,IAEE9C,EAFagD,KAEbhD,OAAQ0H,EAFK1E,KAEL0E,OAAQI,EAFH9E,KAEG8E,WAAkBZ,EAFrBlE,KAEe+D,KAAkBiF,EAFjChJ,KAEiCgJ,YAE5C2V,EAAM,EACV,GAAI3hB,EAAOwK,eAAgB,CAGzB,IAFA,IAAIjB,EAAY7B,EAAOsE,GAAazB,gBAChCqX,SACK7hB,EAAIiM,EAAc,EAAGjM,EAAI2H,EAAO/J,OAAQoC,GAAK,EAChD2H,EAAO3H,KAAO6hB,IAEhBD,GAAO,GADPpY,GAAa7B,EAAO3H,GAAGwK,iBAEPrD,IAAY0a,GAAY,IAG5C,IAAK,IAAI7hB,EAAIiM,EAAc,EAAGjM,GAAK,EAAGA,GAAK,EACrC2H,EAAO3H,KAAO6hB,IAEhBD,GAAO,GADPpY,GAAa7B,EAAO3H,GAAGwK,iBAEPrD,IAAY0a,GAAY,SAI5C,IAAK,IAAI7hB,EAAIiM,EAAc,EAAGjM,EAAI2H,EAAO/J,OAAQoC,GAAK,EAChD+H,EAAW/H,GAAK+H,EAAWkE,GAAe9E,IAC5Cya,GAAO,GAIb,OAAOA,mCAIP,IAAM1R,EAASjN,KACf,GAAKiN,IAAUA,EAAOQ,UAAtB,CAFO,IAGC5I,EAAqBoI,EAArBpI,SAAU7H,EAAWiQ,EAAXjQ,OAEdA,EAAOyV,aACTxF,EAAOyF,gBAETzF,EAAO3J,aACP2J,EAAOjJ,eACPiJ,EAAOjD,iBACPiD,EAAO1C,sBAUH0C,EAAOjQ,OAAO2V,UAChBzG,IACIe,EAAOjQ,OAAO4P,YAChBK,EAAOtE,sBAG4B,SAAhCsE,EAAOjQ,OAAOoJ,eAA4B6G,EAAOjQ,OAAOoJ,cAAgB,IAAM6G,EAAO7C,QAAU6C,EAAOjQ,OAAOwK,eACnGyF,EAAOF,QAAQE,EAAOvI,OAAO/J,OAAS,EAAG,GAAG,GAAO,GAEnDsS,EAAOF,QAAQE,EAAOjE,YAAa,GAAG,GAAO,KAG1DkD,IAGAlP,EAAOsL,eAAiBzD,IAAaoI,EAAOpI,UAC9CoI,EAAO1E,gBAET0E,EAAO5E,KAAK,UA1BZ,SAAS6D,IACP,IAAM2S,EAAiB5R,EAAO7I,cAAmC,EAApB6I,EAAO3D,UAAiB2D,EAAO3D,UACtEsJ,EAAe3M,KAAK4M,IAAI5M,KAAKK,IAAIuY,EAAgB5R,EAAO/C,gBAAiB+C,EAAOrD,gBACtFqD,EAAOf,aAAa0G,GACpB3F,EAAO7B,oBACP6B,EAAO1C,sDAyBMvK,KACJqN,cADIrN,KAGRqI,KAAK,cAHGrI,KAMJhD,OAAOyV,aANHzS,KAON0S,gBAPM1S,KAWRkc,aAXQlc,KAcJhD,OAAOgO,MAdHhL,KAeN8O,aAfM9O,KAmBRsD,aAnBQtD,KAsBRgE,eAtBQhE,KAwBJhD,OAAOsL,eAxBHtI,KAyBNuI,gBAzBMvI,KA6BJhD,OAAOyS,YA7BHzP,KA8BN0P,gBA9BM1P,KAiCJhD,OAAOye,eAjCHzb,KAkCNyb,gBAlCMzb,KAsCJhD,OAAOgO,KAtCHhL,KAuCN+M,QAvCM/M,KAuCShD,OAAOoQ,aAvChBpN,KAuCsC6N,aAAc,EAvCpD7N,KAuC8DhD,OAAO6e,oBAvCrE7b,KAyCN+M,QAzCM/M,KAyCShD,OAAOoQ,aAAc,EAzC9BpN,KAyCwChD,OAAO6e,oBAzC/C7b,KA6CR8S,eA7CQ9S,KAgDRqN,aAAc,EAhDNrN,KAmDRqI,KAAK,2CAGqC,IAA3CyW,IAA2CpkB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAApBqkB,IAAoBrkB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAC3CuS,EAASjN,KAEbhD,EACEiQ,EADFjQ,OAAQyG,EACNwJ,EADMxJ,IAAKQ,EACXgJ,EADWhJ,WAAYS,EACvBuI,EADuBvI,OAG3B,YAA6B,IAAlBuI,EAAOjQ,QAA0BiQ,EAAOQ,UAC1C,MAGTR,EAAO5E,KAAK,iBAGZ4E,EAAOI,aAAc,EAGrBJ,EAAO+M,eAGHhd,EAAOgO,MACTiC,EAAOuC,cAILuP,IACF9R,EAAOqP,gBACP7Y,EAAI9L,WAAW,SACfsM,EAAWtM,WAAW,SAClB+M,GAAUA,EAAO/J,QACnB+J,EACGnN,aACCyF,EAAOwM,kBACPxM,EAAOyN,iBACPzN,EAAO0N,eACP1N,EAAO2N,gBACP5O,KAAK,MACNpE,WAAW,SACXA,WAAW,2BACXA,WAAW,sBACXA,WAAW,oBAIlBsV,EAAO5E,KAAK,WAGZ1O,OAAOC,KAAKqT,EAAO/M,iBAAiBrG,QAAQ,SAACsG,GAC3C8M,EAAOjV,IAAImI,MAGU,IAAnB2e,IACF7R,EAAOxJ,IAAI,GAAGwJ,OAAS,KACvBA,EAAOxJ,IAAI7L,KAAK,SAAU,MAC1BqC,EAAMC,YAAY+S,IAEpBA,EAAOQ,WAAY,EAEZ,+CAGauR,GACpB/kB,EAAMyD,OAAO6f,EAAkByB,4CAI/B,OAAOzB,mCAIP,OAAOjC,gCAIP,OAAOxb,4BAIP,OAAO/F,aAIPklB,GACFzc,KAAM,SACNC,OACEuO,OAAQH,GAEVnO,QACEsO,OAAQH,IAIRqO,GACF1c,KAAM,UACNC,OACE0c,QAAS/gB,GAEXsE,QACEyc,QAAS/gB,IAITghB,GACF5c,KAAM,UACNC,OACE4c,QAASrE,GAEXtY,QACE2c,QAASrE,IAITsE,GACF9c,KAAM,SACNH,OAFW,WAGT,IAAM4K,EAASjN,KACf/F,EAAMyD,OAAOuP,GACXsS,QACEC,cADM,WAECvS,IAAUA,EAAOQ,WAAcR,EAAOI,cAC3CJ,EAAO5E,KAAK,gBACZ4E,EAAO5E,KAAK,YAEdoX,yBANM,WAOCxS,IAAUA,EAAOQ,WAAcR,EAAOI,aAC3CJ,EAAO5E,KAAK,0BAKpBtQ,IACEwjB,KADE,WAIAhgB,SAAOqE,iBAAiB,SAFTI,KAE0Buf,OAAOC,eAGhDjkB,SAAOqE,iBAAiB,oBALTI,KAKqCuf,OAAOE,2BAE7DC,QATE,WAWAnkB,SAAOmS,oBAAoB,SADZ1N,KAC6Buf,OAAOC,eACnDjkB,SAAOmS,oBAAoB,oBAFZ1N,KAEwCuf,OAAOE,6BAK9DE,GACJC,KAAMrkB,SAAOskB,kBAAoBtkB,SAAOukB,uBACxCC,OAFe,SAERpU,GAAsB,IAAdqU,EAActlB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,MACrBuS,EAASjN,KAGTV,EAAW,IAAI2gB,EADAN,EAASC,MACI,SAACM,GAIjC,GAAyB,IAArBA,EAAUvlB,OAAd,CAIA,IAAMwlB,EAAiB,WACrBlT,EAAO5E,KAAK,iBAAkB6X,EAAU,KAGtC3kB,SAAO6kB,sBACT7kB,SAAO6kB,sBAAsBD,GAE7B5kB,SAAOV,WAAWslB,EAAgB,QAVlClT,EAAO5E,KAAK,iBAAkB6X,EAAU,MAc5C5gB,EAAS+gB,QAAQ1U,GACf2U,gBAA0C,IAAvBN,EAAQM,YAAoCN,EAAQM,WACvEC,eAAwC,IAAtBP,EAAQO,WAAmCP,EAAQO,UACrEC,mBAAgD,IAA1BR,EAAQQ,eAAuCR,EAAQQ,gBAG/EvT,EAAO3N,SAASmhB,UAAUhf,KAAKnC,IAEjCic,KAjCe,WAmCb,GAAKnd,EAAQkB,UADEU,KACkBhD,OAAOsC,SAAxC,CACA,GAFeU,KAEJhD,OAAO0jB,eAEhB,IADA,IAAMC,EAHO3gB,KAGmByD,IAAIrK,UAC3B2D,EAAI,EAAGA,EAAI4jB,EAAiBhmB,OAAQoC,GAAK,EAJrCiD,KAKJV,SAASygB,OAAOY,EAAiB5jB,IAL7BiD,KASRV,SAASygB,OATD/f,KASeyD,IAAI,IAAM8c,WAAW,IATpCvgB,KAYRV,SAASygB,OAZD/f,KAYeiE,WAAW,IAAMqc,YAAY,MAE7DZ,QAhDe,WAiDE1f,KACRV,SAASmhB,UAAU5mB,QAAQ,SAACyF,GACjCA,EAASshB,eAFI5gB,KAIRV,SAASmhB,eAIhBI,GACFre,KAAM,WACNxF,QACEsC,UAAU,EACVohB,gBAAgB,GAElBre,OANe,WAQbpI,EAAMyD,OADSsC,MAEbV,UACEic,KAAMoE,EAASpE,KAAKpZ,KAHTnC,MAIX+f,OAAQJ,EAASI,OAAO5d,KAJbnC,MAKX0f,QAASC,EAASD,QAAQvd,KALfnC,MAMXygB,iBAIN1oB,IACEwjB,KADE,WAEevb,KACRV,SAASic,QAElBmE,QALE,WAMe1f,KACRV,SAASogB,aAKhBoB,GACJzd,OADc,SACP0d,GACL,IAAM9T,EAASjN,KADHghB,EAE8C/T,EAAOjQ,OAAzDoJ,EAFI4a,EAEJ5a,cAAesB,EAFXsZ,EAEWtZ,eAAgBF,EAF3BwZ,EAE2BxZ,eAF3ByZ,EAGgChU,EAAOjQ,OAAOuH,QAAlD2c,EAHID,EAGJC,gBAAiBC,EAHbF,EAGaE,eAHbC,EAWRnU,EAAO1I,QANH8c,EALID,EAKVE,KACIC,EANMH,EAMVzjB,GACA+G,EAPU0c,EAOV1c,OACY8c,EARFJ,EAQVtc,WACA2c,EATUL,EASVK,YACQC,EAVEN,EAUV/oB,OAEF4U,EAAO7B,oBACP,IAAMpC,EAAciE,EAAOjE,aAAe,EAEtC2Y,SACqBA,EAArB1U,EAAO7I,aAA2B,QACpB6I,EAAOrJ,eAAiB,OAAS,MAEnD,IAAIge,SACAC,SACAra,GACFoa,EAAc3b,KAAKC,MAAME,EAAgB,GAAKsB,EAAiBwZ,EAC/DW,EAAe5b,KAAKC,MAAME,EAAgB,GAAKsB,EAAiByZ,IAEhES,EAAcxb,GAAiBsB,EAAiB,GAAKwZ,EACrDW,EAAena,EAAiByZ,GAElC,IAAMG,EAAOrb,KAAKK,KAAK0C,GAAe,GAAK6Y,EAAc,GACnDlkB,EAAKsI,KAAK4M,KAAK7J,GAAe,GAAK4Y,EAAald,EAAO/J,OAAS,GAChEmnB,GAAa7U,EAAOnI,WAAWwc,IAAS,IAAMrU,EAAOnI,WAAW,IAAM,GAS5E,SAASid,IACP9U,EAAOjJ,eACPiJ,EAAOjD,iBACPiD,EAAO1C,sBACH0C,EAAO+U,MAAQ/U,EAAOjQ,OAAOglB,KAAKxd,SACpCyI,EAAO+U,KAAKC,OAIhB,GAhBAhoB,EAAMyD,OAAOuP,EAAO1I,SAClB+c,OACA3jB,KACAtF,OAAQypB,EACRhd,WAAYmI,EAAOnI,aAYjBuc,IAAiBC,GAAQC,IAAe5jB,IAAOojB,EAKjD,OAJI9T,EAAOnI,aAAe0c,GAAsBM,IAAcJ,GAC5DzU,EAAOvI,OAAOpM,IAAIqpB,EAAeG,EAAjC,WAEF7U,EAAOjD,iBAGT,GAAIiD,EAAOjQ,OAAOuH,QAAQ2d,eAcxB,OAbAjV,EAAOjQ,OAAOuH,QAAQ2d,eAAehd,KAAK+H,GACxC5U,OAAQypB,EACRR,OACA3jB,KACA+G,OAAS,WAEP,IADA,IAAMyd,KACGplB,EAAIukB,EAAMvkB,GAAKY,EAAIZ,GAAK,EAC/BolB,EAAe1gB,KAAKiD,EAAO3H,IAE7B,OAAOolB,EALA,UAQXJ,IAGF,IAAMK,KACAC,KACN,GAAItB,EACF9T,EAAOhJ,WAAW3K,KAAlB,IAA2B2T,EAAOjQ,OAAO2H,YAAcnL,cAEvD,IAAK,IAAIuD,EAAIskB,EAActkB,GAAKwkB,EAAYxkB,GAAK,GAC3CA,EAAIukB,GAAQvkB,EAAIY,IAClBsP,EAAOhJ,WAAW3K,KAAlB,IAA2B2T,EAAOjQ,OAAO2H,WAAzC,6BAAgF5H,EAAhF,MAAuFvD,SAI7F,IAAK,IAAIuD,EAAI,EAAGA,EAAI2H,EAAO/J,OAAQoC,GAAK,EAClCA,GAAKukB,GAAQvkB,GAAKY,SACM,IAAf4jB,GAA8BR,EACvCsB,EAAc5gB,KAAK1E,IAEfA,EAAIwkB,GAAYc,EAAc5gB,KAAK1E,GACnCA,EAAIskB,GAAce,EAAe3gB,KAAK1E,KAIhDslB,EAAcxoB,QAAQ,SAACmH,GACrBiM,EAAOhJ,WAAWpL,OAAO4oB,EAAY/c,EAAO1D,GAAWA,MAEzDohB,EAAexH,KAAK,SAAC/e,EAAGgf,GAAJ,OAAUA,EAAIhf,IAAGhC,QAAQ,SAACmH,GAC5CiM,EAAOhJ,WAAWnL,QAAQ2oB,EAAY/c,EAAO1D,GAAWA,MAE1DiM,EAAOhJ,WAAW1K,SAAS,iBAAiBjB,IAAIqpB,EAAeG,EAA/D,MACAC,KAEFN,YAtGc,SAsGF/a,EAAO1F,GACjB,IACMhE,EADSgD,KACOhD,OAAOuH,QAC7B,GAAIvH,EAAOslB,OAFItiB,KAEYuE,QAAQ+d,MAAMthB,GACvC,OAHahB,KAGCuE,QAAQ+d,MAAMthB,GAE9B,IAAMuhB,EAAWvlB,EAAOykB,aACpB,EAAAvqB,EAAA6C,GAAEiD,EAAOykB,YAAYvc,KANVlF,KAMuB0G,EAAO1F,KACzC,EAAA9J,EAAA6C,GAAA,eAPWiG,KAOahD,OAAO2H,WAA/B,8BAAuE3D,EAAvE,KAAoF0F,EAApF,UAGJ,OAFK6b,EAAS7qB,KAAK,4BAA4B6qB,EAAS7qB,KAAK,0BAA2BsJ,GACpFhE,EAAOslB,QATItiB,KASUuE,QAAQ+d,MAAMthB,GAAYuhB,GAC5CA,GAETtS,YAnHc,SAmHFvJ,GACK1G,KACRuE,QAAQG,OAAOjD,KAAKiF,GADZ1G,KAERuE,QAAQlB,QAAO,IAExB6M,aAxHc,SAwHDxJ,GAGX,GAFe1G,KACRuE,QAAQG,OAAO8L,QAAQ9J,GADf1G,KAEJhD,OAAOuH,QAAQ+d,MAAO,CAC/B,IAAMA,EAHOtiB,KAGQuE,QAAQ+d,MACvBE,KACN7oB,OAAOC,KAAK0oB,GAAOzoB,QAAQ,SAAC4oB,GAC1BD,EAASC,EAAc,GAAKH,EAAMG,KANvBziB,KAQNuE,QAAQ+d,MAAQE,EARVxiB,KAURuE,QAAQlB,QAAO,GAVPrD,KAWR8N,UAAU,KAIjB4U,GACFlgB,KAAM,UACNxF,QACEuH,SACEC,SAAS,EACTE,UACA4d,OAAO,EACPb,YAAa,KACbS,eAAgB,KAChBhB,gBAAiB,EACjBC,eAAgB,IAGpB9e,OAbc,WAeZpI,EAAMyD,OADSsC,MAEbuE,SACElB,OAAQyd,EAAQzd,OAAOlB,KAHZnC,MAIXiQ,YAAa6Q,EAAQ7Q,YAAY9N,KAJtBnC,MAKXkQ,aAAc4Q,EAAQ5Q,aAAa/N,KALxBnC,MAMXyhB,YAAaX,EAAQW,YAAYtf,KANtBnC,MAOX0E,OAPW1E,KAOIhD,OAAOuH,QAAQG,OAC9B4d,aAINvqB,IACE4qB,WADE,WAGA,GADe3iB,KACHhD,OAAOuH,QAAQC,QAA3B,CADexE,KAERmc,WAAW1a,KAFHzB,KAEkBhD,OAAO2e,uBAAxC,WACA,IAAMiH,GACJpa,qBAAqB,GAEvBvO,EAAMyD,OANSsC,KAMKhD,OAAQ4lB,GAC5B3oB,EAAMyD,OAPSsC,KAOKwa,eAAgBoI,GAPrB5iB,KASHhD,OAAOoQ,cATJpN,KAUNuE,QAAQlB,WAGnB6I,aAfE,WAgBelM,KACHhD,OAAOuH,QAAQC,SADZxE,KAERuE,QAAQlB,YAKfwf,GACJC,OADe,SACRtiB,GACL,IACsB2D,EADPnE,KACPoE,aACJ9J,EAAIkG,EACJlG,EAAE8Y,gBAAe9Y,EAAIA,EAAE8Y,eAC3B,IAAM2P,EAAKzoB,EAAE0oB,SAAW1oB,EAAE2oB,SAE1B,IANejjB,KAMHsN,iBANGtN,KAMwB4D,gBAAyB,KAAPmf,GAN1C/iB,KAMgE6D,cAAuB,KAAPkf,GAC7F,OAAO,EAET,IATe/iB,KASHuN,iBATGvN,KASwB4D,gBAAyB,KAAPmf,GAT1C/iB,KASgE6D,cAAuB,KAAPkf,GAC7F,OAAO,EAET,KAAIzoB,EAAE4oB,UAAY5oB,EAAE6oB,QAAU7oB,EAAE8oB,SAAW9oB,EAAE+oB,SAGzC/kB,WAAS+W,eAAiB/W,WAAS+W,cAAciO,WAA+D,UAAlDhlB,WAAS+W,cAAciO,SAASxR,eAA+E,aAAlDxT,WAAS+W,cAAciO,SAASxR,gBAA/J,CAGA,GAlBe9R,KAkBJhD,OAAOumB,SAASC,iBAA0B,KAAPT,GAAoB,KAAPA,GAAoB,KAAPA,GAAoB,KAAPA,GAAY,CAC/F,IAAIU,GAAS,EAEb,GArBazjB,KAqBFyD,IAAIrK,QAAX,IArBS4G,KAqBqBhD,OAAO2H,YAAchK,OAAS,GAAyE,IArB5HqF,KAqB+DyD,IAAIrK,QAAX,IArBxD4G,KAqBsFhD,OAAOyN,kBAAoB9P,OAC5H,OAEF,IAAM+oB,EAAcnoB,SAAOwf,WACrB4I,EAAepoB,SAAOqoB,YACtBC,EA1BO7jB,KA0BeyD,IAAIpL,SAC5B8L,IAAK0f,EAAaC,MA3BT9jB,KA2BwByD,IAAI,GAAGsgB,YAO5C,IANA,IAAMC,IACHH,EAAaC,KAAMD,EAAaI,MAChCJ,EAAaC,KA9BH9jB,KA8BiBuD,MAAOsgB,EAAaI,MAC/CJ,EAAaC,KAAMD,EAAaI,IA/BtBjkB,KA+BmCwD,SAC7CqgB,EAAaC,KAhCH9jB,KAgCiBuD,MAAOsgB,EAAaI,IAhCrCjkB,KAgCkDwD,SAEtDzG,EAAI,EAAGA,EAAIinB,EAAYrpB,OAAQoC,GAAK,EAAG,CAC9C,IAAM4d,EAAQqJ,EAAYjnB,GAExB4d,EAAM,IAAM,GAAKA,EAAM,IAAM+I,GAC1B/I,EAAM,IAAM,GAAKA,EAAM,IAAMgJ,IAEhCF,GAAS,GAGb,IAAKA,EAAQ,OA3CAzjB,KA6CJ4D,gBACE,KAAPmf,GAAoB,KAAPA,IACXzoB,EAAE6a,eAAgB7a,EAAE6a,iBACnB7a,EAAE4pB,aAAc,IAEX,KAAPnB,IAAc5e,GAAgB,KAAP4e,GAAa5e,IAlD5BnE,KAkDyC8N,aAC1C,KAAPiV,IAAc5e,GAAgB,KAAP4e,GAAa5e,IAnD5BnE,KAmDyCkO,cAE3C,KAAP6U,GAAoB,KAAPA,IACXzoB,EAAE6a,eAAgB7a,EAAE6a,iBACnB7a,EAAE4pB,aAAc,GAEZ,KAAPnB,GAzDS/iB,KAyDS8N,YACX,KAAPiV,GA1DS/iB,KA0DSkO,aA1DTlO,KA4DRqI,KAAK,WAAY0a,KAG1BoB,OAjEe,WAkEEnkB,KACJujB,SAAS/e,WACpB,EAAAtN,EAAA6C,GAAEuE,YAAUvG,GAAG,UAFAiI,KAEkBujB,SAAST,QAF3B9iB,KAGRujB,SAAS/e,SAAU,IAE5B4f,QAvEe,WAwEEpkB,KACHujB,SAAS/e,WACrB,EAAAtN,EAAA6C,GAAEuE,YAAUtG,IAAI,UAFDgI,KAEmBujB,SAAST,QAF5B9iB,KAGRujB,SAAS/e,SAAU,KAI1B6f,GACF7hB,KAAM,WACNxF,QACEumB,UACE/e,SAAS,EACTgf,gBAAgB,IAGpBnhB,OARe,WAUbpI,EAAMyD,OADSsC,MAEbujB,UACE/e,SAAS,EACT2f,OAAQtB,EAASsB,OAAOhiB,KAJbnC,MAKXokB,QAASvB,EAASuB,QAAQjiB,KALfnC,MAMX8iB,OAAQD,EAASC,OAAO3gB,KANbnC,UAUjBjI,IACEwjB,KADE,WAEevb,KACJhD,OAAOumB,SAAS/e,SADZxE,KAENujB,SAASY,UAGpBzE,QAPE,WAQe1f,KACJujB,SAAS/e,SADLxE,KAENujB,SAASa,aA6BxB,IAAME,GACJC,eAAgBtqB,EAAMa,MACtB0F,MACMjF,SAAOqD,UAAUmS,UAAU7T,QAAQ,YAAc,EAAU,iBA1BnE,WACE,IACIsnB,EADc,YACalmB,WAE/B,IAAKkmB,EAAa,CAChB,IAAMC,EAAUnmB,WAASC,cAAc,OACvCkmB,EAAQC,aALQ,UAKgB,WAChCF,EAA4C,mBAAvBC,EAAA,QAcvB,OAXKD,GACAlmB,WAASqmB,gBACTrmB,WAASqmB,eAAeC,aAGuB,IAA/CtmB,WAASqmB,eAAeC,WAAW,GAAI,MAG1CJ,EAAclmB,WAASqmB,eAAeC,WAAW,eAAgB,QAG5DJ,EAMEK,GAAqB,QAAU,aAExC1W,UANiB,SAMP7T,GAER,IAIIwqB,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EAkDT,MA/CI,WAAY3qB,IACdyqB,EAAKzqB,EAAE4qB,QAEL,eAAgB5qB,IAClByqB,GAAMzqB,EAAE6qB,WAAa,KAEnB,gBAAiB7qB,IACnByqB,GAAMzqB,EAAE8qB,YAAc,KAEpB,gBAAiB9qB,IACnBwqB,GAAMxqB,EAAE+qB,YAAc,KAIpB,SAAU/qB,GAAKA,EAAEY,OAASZ,EAAEgrB,kBAC9BR,EAAKC,EACLA,EAAK,GAGPC,EA7BmB,GA6BdF,EACLG,EA9BmB,GA8BdF,EAED,WAAYzqB,IACd2qB,EAAK3qB,EAAEirB,QAEL,WAAYjrB,IACd0qB,EAAK1qB,EAAEkrB,SAGJR,GAAMC,IAAO3qB,EAAEmrB,YACE,IAAhBnrB,EAAEmrB,WACJT,GAxCgB,GAyChBC,GAzCgB,KA2ChBD,GA1CgB,IA2ChBC,GA3CgB,MAgDhBD,IAAOF,IACTA,EAAME,EAAK,GAAM,EAAI,GAEnBC,IAAOF,IACTA,EAAME,EAAK,GAAM,EAAI,IAIrBS,MAAOZ,EACPa,MAAOZ,EACPa,OAAQZ,EACRa,OAAQZ,IAGZa,iBAxEiB,WAyEA9lB,KACR+lB,cAAe,GAExBC,iBA5EiB,WA6EAhmB,KACR+lB,cAAe,GAExBjD,OAhFiB,SAgFVtiB,GACL,IAAIlG,EAAIkG,EACFyM,EAASjN,KACThD,EAASiQ,EAAOjQ,OAAOipB,WAE7B,IAAKhZ,EAAO8Y,eAAiB/oB,EAAOkpB,eAAgB,OAAO,EAEvD5rB,EAAE8Y,gBAAe9Y,EAAIA,EAAE8Y,eAC3B,IAAI+S,EAAQ,EACNC,EAAYnZ,EAAO7I,cAAgB,EAAI,EAEvClD,EAAUojB,EAAWnW,UAAU7T,GAErC,GAAI0C,EAAOqpB,YACT,GAAIpZ,EAAOrJ,eAAgB,CACzB,KAAIqC,KAAKwB,IAAIvG,EAAQ0kB,QAAU3f,KAAKwB,IAAIvG,EAAQ2kB,SAC3C,OAAO,EAD6CM,EAAQjlB,EAAQ0kB,OAASQ,MAE7E,MAAIngB,KAAKwB,IAAIvG,EAAQ2kB,QAAU5f,KAAKwB,IAAIvG,EAAQ0kB,SAClD,OAAO,EADoDO,EAAQjlB,EAAQ2kB,YAGhFM,EAAQlgB,KAAKwB,IAAIvG,EAAQ0kB,QAAU3f,KAAKwB,IAAIvG,EAAQ2kB,SAAW3kB,EAAQ0kB,OAASQ,GAAallB,EAAQ2kB,OAGvG,GAAc,IAAVM,EAAa,OAAO,EAIxB,GAFInpB,EAAOspB,SAAQH,GAASA,GAEvBlZ,EAAOjQ,OAAO2V,SAaZ,CAED1F,EAAOjQ,OAAOgO,MAChBiC,EAAOc,UAET,IAAIiJ,EAAW/J,EAAOjS,eAAkBmrB,EAAQnpB,EAAOupB,YACjDlc,EAAe4C,EAAO9C,YACtBG,EAAS2C,EAAO7C,MA2BtB,GAzBI4M,GAAY/J,EAAOrD,iBAAgBoN,EAAW/J,EAAOrD,gBACrDoN,GAAY/J,EAAO/C,iBAAgB8M,EAAW/J,EAAO/C,gBAEzD+C,EAAOlE,cAAc,GACrBkE,EAAOf,aAAa8K,GACpB/J,EAAOjD,iBACPiD,EAAO7B,oBACP6B,EAAO1C,wBAEDF,GAAgB4C,EAAO9C,cAAkBG,GAAU2C,EAAO7C,QAC9D6C,EAAO1C,sBAGL0C,EAAOjQ,OAAO2b,iBAChBpB,aAAatK,EAAOgZ,WAAWO,SAC/BvZ,EAAOgZ,WAAWO,QAAUvsB,EAAMM,SAAS,WACzC0S,EAAOyB,kBACN,MAGLzB,EAAO5E,KAAK,SAAU/N,GAGlB2S,EAAOjQ,OAAOypB,UAAYxZ,EAAOjQ,OAAO0pB,8BAA8BzZ,EAAOwZ,SAASE,OAEtF3P,IAAa/J,EAAOrD,gBAAkBoN,IAAa/J,EAAO/C,eAAgB,OAAO,MA/C1D,CAC3B,GAAIjQ,EAAMa,MAAQmS,EAAOgZ,WAAW1B,eAAiB,GACnD,GAAI4B,EAAQ,EACV,GAAMlZ,EAAO7C,QAAS6C,EAAOjQ,OAAOgO,MAAUiC,EAAOH,WAG9C,GAAI9P,EAAOkpB,eAAgB,OAAO,OAFvCjZ,EAAOa,YACPb,EAAO5E,KAAK,SAAU/N,QAEnB,GAAM2S,EAAO9C,cAAe8C,EAAOjQ,OAAOgO,MAAUiC,EAAOH,WAG3D,GAAI9P,EAAOkpB,eAAgB,OAAO,OAFvCjZ,EAAOiB,YACPjB,EAAO5E,KAAK,SAAU/N,GAG1B2S,EAAOgZ,WAAW1B,gBAAkB,IAAIhpB,SAAOR,MAAQ6rB,UAwCzD,OAFItsB,EAAE6a,eAAgB7a,EAAE6a,iBACnB7a,EAAE4pB,aAAc,GACd,GAETC,OAjKiB,WAmKf,IAAKG,EAAW9jB,MAAO,OAAO,EAC9B,GAFeR,KAEJimB,WAAWzhB,QAAS,OAAO,EACtC,IAAImH,EAHW3L,KAGKyD,IAQpB,MAP8C,cAJ/BzD,KAIJhD,OAAOipB,WAAWY,eAC3Blb,GAAS,EAAAzU,EAAA6C,GALIiG,KAKKhD,OAAOipB,WAAWY,eAEtClb,EAAO5T,GAAG,aAPKiI,KAOgBimB,WAAWH,kBAC1Cna,EAAO5T,GAAG,aARKiI,KAQgBimB,WAAWD,kBAC1Cra,EAAO5T,GAAGusB,EAAW9jB,MATNR,KASoBimB,WAAWnD,QAT/B9iB,KAURimB,WAAWzhB,SAAU,GACrB,GAET4f,QA/KiB,WAiLf,IAAKE,EAAW9jB,MAAO,OAAO,EAC9B,IAFeR,KAEHimB,WAAWzhB,QAAS,OAAO,EACvC,IAAImH,EAHW3L,KAGKyD,IAMpB,MAL8C,cAJ/BzD,KAIJhD,OAAOipB,WAAWY,eAC3Blb,GAAS,EAAAzU,EAAA6C,GALIiG,KAKKhD,OAAOipB,WAAWY,eAEtClb,EAAO3T,IAAIssB,EAAW9jB,MAPPR,KAOqBimB,WAAWnD,QAPhC9iB,KAQRimB,WAAWzhB,SAAU,GACrB,IA0CLsiB,GACJzjB,OADiB,WAGf,IACMrG,EADSgD,KACOhD,OAAOgf,WAE7B,IAHehc,KAGJhD,OAAOgO,KAAlB,CALO,IAAA+b,EAEQ/mB,KAIqBgc,WAA5BgL,EANDD,EAMCC,QAASC,EANVF,EAMUE,QAEbA,GAAWA,EAAQtsB,OAAS,IANjBqF,KAOFmK,YACT8c,EAAQ3vB,SAAS0F,EAAOkqB,eAExBD,EAAQ1vB,YAAYyF,EAAOkqB,eAE7BD,EAZajnB,KAYEhD,OAAOsL,eAZTtI,KAYiC6P,SAAW,WAAa,eAAe7S,EAAOmqB,YAE1FH,GAAWA,EAAQrsB,OAAS,IAdjBqF,KAeFoK,MACT4c,EAAQ1vB,SAAS0F,EAAOkqB,eAExBF,EAAQzvB,YAAYyF,EAAOkqB,eAE7BF,EApBahnB,KAoBEhD,OAAOsL,eApBTtI,KAoBiC6P,SAAW,WAAa,eAAe7S,EAAOmqB,cAGhGC,YA1BiB,SA0BL9sB,GAEVA,EAAE6a,iBADanV,KAEJmK,cAFInK,KAEmBhD,OAAOgO,MAF1BhL,KAGRkO,aAETmZ,YAhCiB,SAgCL/sB,GAEVA,EAAE6a,iBADanV,KAEJoK,QAFIpK,KAEahD,OAAOgO,MAFpBhL,KAGR8N,aAETyN,KAtCiB,WAuCf,IACMve,EADSgD,KACOhD,OAAOgf,WAC7B,GAAMhf,EAAOsqB,QAAUtqB,EAAOuqB,OAA9B,CAEA,IAAIP,SACAC,SACAjqB,EAAOsqB,SACTN,GAAU,EAAA9vB,EAAA6C,GAAEiD,EAAOsqB,QAPNtnB,KASJhD,OAAOwe,mBACc,iBAAlBxe,EAAOsqB,QACdN,EAAQrsB,OAAS,GACyB,IAZlCqF,KAYDyD,IAAInK,KAAK0D,EAAOsqB,QAAQ3sB,SAElCqsB,EAdWhnB,KAcMyD,IAAInK,KAAK0D,EAAOsqB,UAGjCtqB,EAAOuqB,SACTN,GAAU,EAAA/vB,EAAA6C,GAAEiD,EAAOuqB,QAlBNvnB,KAoBJhD,OAAOwe,mBACc,iBAAlBxe,EAAOuqB,QACdN,EAAQtsB,OAAS,GACyB,IAvBlCqF,KAuBDyD,IAAInK,KAAK0D,EAAOuqB,QAAQ5sB,SAElCssB,EAzBWjnB,KAyBMyD,IAAInK,KAAK0D,EAAOuqB,UAIjCP,GAAWA,EAAQrsB,OAAS,GAC9BqsB,EAAQjvB,GAAG,QA9BEiI,KA8Bcgc,WAAWqL,aAEpCJ,GAAWA,EAAQtsB,OAAS,GAC9BssB,EAAQlvB,GAAG,QAjCEiI,KAiCcgc,WAAWoL,aAGxCntB,EAAMyD,OApCSsC,KAoCKgc,YAClBgL,UACAM,OAAQN,GAAWA,EAAQ,GAC3BC,UACAM,OAAQN,GAAWA,EAAQ,OAG/BvH,QAlFiB,WAmFf,IADQ8H,EACOxnB,KACqBgc,WAA5BgL,EAFAQ,EAEAR,QAASC,EAFTO,EAESP,QACbD,GAAWA,EAAQrsB,SACrBqsB,EAAQhvB,IAAI,QAHCgI,KAGegc,WAAWqL,aACvCL,EAAQzvB,YAJKyI,KAIchD,OAAOgf,WAAWkL,gBAE3CD,GAAWA,EAAQtsB,SACrBssB,EAAQjvB,IAAI,QAPCgI,KAOegc,WAAWoL,aACvCH,EAAQ1vB,YARKyI,KAQchD,OAAOgf,WAAWkL,kBA+D7CO,GACJpkB,OADiB,WAGf,IACMc,EADSnE,KACImE,IACbnH,EAFSgD,KAEOhD,OAAO0qB,WAC7B,GAAK1qB,EAAO/B,IAHG+E,KAGW0nB,WAAWzsB,IAHtB+E,KAGoC0nB,WAAWjkB,KAAwC,IAHvFzD,KAG6D0nB,WAAWjkB,IAAI9I,OAA3F,CACA,IAAMiK,EAJS5E,KAIauE,SAJbvE,KAI+BhD,OAAOuH,QAAQC,QAJ9CxE,KAI+DuE,QAAQG,OAAO/J,OAJ9EqF,KAI8F0E,OAAO/J,OAC9G8I,EALSzD,KAKI0nB,WAAWjkB,IAE1BkkB,SACEC,EARS5nB,KAQMhD,OAAOgO,KAAO/E,KAAKE,MAAMvB,EAAsC,EARrE5E,KAQsD6N,cARtD7N,KAQkFhD,OAAO0K,gBARzF1H,KAQkH6E,SAASlK,OAc1I,GAtBeqF,KASJhD,OAAOgO,OAChB2c,EAAU1hB,KAAKE,MAVFnG,KAUegJ,YAVfhJ,KAUoC6N,cAVpC7N,KAU2DhD,OAAO0K,iBACjE9C,EAAe,EAA2B,EAX3C5E,KAW4B6N,eACvC8Z,GAAY/iB,EAAsC,EAZvC5E,KAYwB6N,cAEjC8Z,EAAUC,EAAQ,IAAGD,GAAWC,GAChCD,EAAU,GAAsC,YAfvC3nB,KAeahD,OAAO6qB,iBAA8BF,EAAUC,EAAQD,IAEjFA,OADqC,IAhBxB3nB,KAgBUoI,UAhBVpI,KAiBIoI,UAjBJpI,KAmBIgJ,aAAe,EAGd,YAAhBhM,EAAOsW,MAtBItT,KAsByB0nB,WAAWI,SAtBpC9nB,KAsBsD0nB,WAAWI,QAAQntB,OAAS,EAAG,CAClG,IAAMmtB,EAvBO9nB,KAuBU0nB,WAAWI,QAC9BC,SACAC,SACAC,SAiBJ,GAhBIjrB,EAAOkrB,iBA3BEloB,KA4BJ0nB,WAAWS,WAAaL,EAAQlvB,GAAG,GA5B/BoH,KA4ByC4D,eAAiB,aAAe,gBAAe,GACnGH,EAAInL,IA7BO0H,KA6BI4D,eAAiB,QAAU,SA7B/B5D,KA6BmD0nB,WAAWS,YAAcnrB,EAAOorB,mBAAqB,GAAnH,MACIprB,EAAOorB,mBAAqB,QAA8BxtB,IA9BnDoF,KA8BiCsL,gBA9BjCtL,KA+BF0nB,WAAWW,oBAAuBV,EA/BhC3nB,KA+BiDsL,cA/BjDtL,KAgCE0nB,WAAWW,mBAAsBrrB,EAAOorB,mBAAqB,EAhC/DpoB,KAiCA0nB,WAAWW,mBAAqBrrB,EAAOorB,mBAAqB,EAjC5DpoB,KAkCS0nB,WAAWW,mBAAqB,IAlCzCroB,KAmCA0nB,WAAWW,mBAAqB,IAG3CN,EAAaJ,EAtCF3nB,KAsCmB0nB,WAAWW,mBAEzCJ,IADAD,EAAYD,GAAc9hB,KAAK4M,IAAIiV,EAAQntB,OAAQqC,EAAOorB,oBAAsB,IACxDL,GAAc,GAExCD,EAAQvwB,YAAeyF,EAAOsrB,kBAA9B,IAAmDtrB,EAAOsrB,kBAA1D,SAAoFtrB,EAAOsrB,kBAA3F,cAA0HtrB,EAAOsrB,kBAAjI,SAA2JtrB,EAAOsrB,kBAAlK,cAAiMtrB,EAAOsrB,kBAAxM,SACI7kB,EAAI9I,OAAS,EACfmtB,EAAQvvB,KAAK,SAACyI,EAAUunB,GACtB,IAAMC,GAAU,EAAAtxB,EAAA6C,GAAEwuB,GACZE,EAAcD,EAAQ7vB,QACxB8vB,IAAgBd,GAClBa,EAAQlxB,SAAS0F,EAAOsrB,mBAEtBtrB,EAAOkrB,iBACLO,GAAeV,GAAcU,GAAeT,GAC9CQ,EAAQlxB,SAAY0F,EAAOsrB,kBAA3B,SAEEG,IAAgBV,GAClBS,EACGvvB,OACA3B,SAAY0F,EAAOsrB,kBAFtB,SAGGrvB,OACA3B,SAAY0F,EAAOsrB,kBAJtB,cAMEG,IAAgBT,GAClBQ,EACGzvB,OACAzB,SAAY0F,EAAOsrB,kBAFtB,SAGGvvB,OACAzB,SAAY0F,EAAOsrB,kBAJtB,sBAWN,GAFgBR,EAAQlvB,GAAG+uB,GACnBrwB,SAAS0F,EAAOsrB,mBACpBtrB,EAAOkrB,eAAgB,CAGzB,IAFA,IAAMQ,EAAwBZ,EAAQlvB,GAAGmvB,GACnCY,EAAuBb,EAAQlvB,GAAGovB,GAC/BjrB,EAAIgrB,EAAYhrB,GAAKirB,EAAWjrB,GAAK,EAC5C+qB,EAAQlvB,GAAGmE,GAAGzF,SAAY0F,EAAOsrB,kBAAjC,SAEFI,EACGzvB,OACA3B,SAAY0F,EAAOsrB,kBAFtB,SAGGrvB,OACA3B,SAAY0F,EAAOsrB,kBAJtB,cAKAK,EACG5vB,OACAzB,SAAY0F,EAAOsrB,kBAFtB,SAGGvvB,OACAzB,SAAY0F,EAAOsrB,kBAJtB,cAOJ,GAAItrB,EAAOkrB,eAAgB,CACzB,IAAMU,EAAuB3iB,KAAK4M,IAAIiV,EAAQntB,OAAQqC,EAAOorB,mBAAqB,GAC5ES,GA7FK7oB,KA6FqB0nB,WAAWS,WAAaS,EA7F7C5oB,KA6F6E0nB,WAAWS,YAAe,EAAMF,EA7F7GjoB,KA6F+H0nB,WAAWS,WAC/IxG,EAAaxd,EAAM,QAAU,OACnC2jB,EAAQxvB,IA/FG0H,KA+FQ4D,eAAiB+d,EAAa,MAAUkH,EAA3D,OAOJ,GAJoB,aAAhB7rB,EAAOsW,OACT7P,EAAInK,KAAJ,IAAa0D,EAAO8rB,cAAgBrwB,KAAKuE,EAAO+rB,sBAAsBpB,EAAU,IAChFlkB,EAAInK,KAAJ,IAAa0D,EAAOgsB,YAAcvwB,KAAKuE,EAAOisB,oBAAoBrB,KAEhD,gBAAhB5qB,EAAOsW,KAAwB,CACjC,IAAI4V,SAEFA,EADElsB,EAAOmsB,oBAxGEnpB,KAyGmB4D,eAAiB,WAAa,aAzGjD5D,KA2GmB4D,eAAiB,aAAe,WAEhE,IAAMwlB,GAASzB,EAAU,GAAKC,EAC1ByB,EAAS,EACTC,EAAS,EACgB,eAAzBJ,EACFG,EAASD,EAETE,EAASF,EAEX3lB,EAAInK,KAAJ,IAAa0D,EAAOusB,sBAAwB1xB,UAA5C,6BAAmFwxB,EAAnF,YAAqGC,EAArG,KAAgHxxB,WArHnGkI,KAqHqHhD,OAAO4L,OAEvH,WAAhB5L,EAAOsW,MAAqBtW,EAAOwsB,cACrC/lB,EAAIjL,KAAKwE,EAAOwsB,aAxHHxpB,KAwHwB2nB,EAAU,EAAGC,IAxHrC5nB,KAyHNqI,KAAK,mBAzHCrI,KAyH2ByD,EAAI,KAzH/BzD,KA2HNqI,KAAK,mBA3HCrI,KA2H2ByD,EAAI,IAE9CA,EA7HezD,KA6HJhD,OAAOsL,eA7HHtI,KA6H2B6P,SAAW,WAAa,eAAe7S,EAAOmqB,aAE1FsC,OAlIiB,WAoIf,IACMzsB,EADSgD,KACOhD,OAAO0qB,WAC7B,GAAK1qB,EAAO/B,IAFG+E,KAEW0nB,WAAWzsB,IAFtB+E,KAEoC0nB,WAAWjkB,KAAwC,IAFvFzD,KAE6D0nB,WAAWjkB,IAAI9I,OAA3F,CACA,IAAMiK,EAHS5E,KAGauE,SAHbvE,KAG+BhD,OAAOuH,QAAQC,QAH9CxE,KAG+DuE,QAAQG,OAAO/J,OAH9EqF,KAG8F0E,OAAO/J,OAE9G8I,EALSzD,KAKI0nB,WAAWjkB,IAC1BimB,EAAiB,GACrB,GAAoB,YAAhB1sB,EAAOsW,KAAoB,CAE7B,IADA,IAAMqW,EARO3pB,KAQkBhD,OAAOgO,KAAO/E,KAAKE,MAAMvB,EAAsC,EARjF5E,KAQkE6N,cARlE7N,KAQ8FhD,OAAO0K,gBARrG1H,KAQ8H6E,SAASlK,OAC3IoC,EAAI,EAAGA,EAAI4sB,EAAiB5sB,GAAK,EACpCC,EAAO4sB,aACTF,GAAkB1sB,EAAO4sB,aAAa1kB,KAX7BlF,KAW0CjD,EAAGC,EAAO6sB,aAE7DH,OAAsB1sB,EAAO8sB,cAA7B,WAAqD9sB,EAAO6sB,YAA5D,OAA8E7sB,EAAO8sB,cAArF,IAGJrmB,EAAIjL,KAAKkxB,GAhBI1pB,KAiBN0nB,WAAWI,QAAUrkB,EAAInK,KAAJ,IAAa0D,EAAO6sB,aAE9B,aAAhB7sB,EAAOsW,OAEPoW,EADE1sB,EAAO+sB,eACQ/sB,EAAO+sB,eAAe7kB,KArB5BlF,KAqByChD,EAAO8rB,aAAc9rB,EAAOgsB,YAE/D,gBAAgBhsB,EAAO8rB,aAAvB,4BAEC9rB,EAAOgsB,WAFR,YAInBvlB,EAAIjL,KAAKkxB,IAES,gBAAhB1sB,EAAOsW,OAEPoW,EADE1sB,EAAOgtB,kBACQhtB,EAAOgtB,kBAAkB9kB,KA/B/BlF,KA+B4ChD,EAAOusB,sBAE9DG,gBAAiC1sB,EAAOusB,qBAAxC,YAEF9lB,EAAIjL,KAAKkxB,IAES,WAAhB1sB,EAAOsW,MArCItT,KAsCNqI,KAAK,mBAtCCrI,KAsC0B0nB,WAAWjkB,IAAI,MAG1D8X,KA7KiB,WA8Kf,IAAMtO,EAASjN,KACThD,EAASiQ,EAAOjQ,OAAO0qB,WAC7B,GAAK1qB,EAAO/B,GAAZ,CAEA,IAAIwI,GAAM,EAAAvM,EAAA6C,GAAEiD,EAAO/B,IACA,IAAfwI,EAAI9I,SAGNsS,EAAOjQ,OAAOwe,mBACU,iBAAdxe,EAAO/B,IACdwI,EAAI9I,OAAS,GACyB,IAAtCsS,EAAOxJ,IAAInK,KAAK0D,EAAO/B,IAAIN,SAE9B8I,EAAMwJ,EAAOxJ,IAAInK,KAAK0D,EAAO/B,KAGX,YAAhB+B,EAAOsW,MAAsBtW,EAAOitB,WACtCxmB,EAAInM,SAAS0F,EAAOktB,gBAGtBzmB,EAAInM,SAAS0F,EAAOmtB,cAAgBntB,EAAOsW,MAEvB,YAAhBtW,EAAOsW,MAAsBtW,EAAOkrB,iBACtCzkB,EAAInM,SAAJ,GAAgB0F,EAAOmtB,cAAgBntB,EAAOsW,KAA9C,YACArG,EAAOya,WAAWW,mBAAqB,EACnCrrB,EAAOorB,mBAAqB,IAC9BprB,EAAOorB,mBAAqB,IAGZ,gBAAhBprB,EAAOsW,MAA0BtW,EAAOmsB,qBAC1C1lB,EAAInM,SAAS0F,EAAOotB,0BAGlBptB,EAAOitB,WACTxmB,EAAI1L,GAAG,QAAP,IAAoBiF,EAAO6sB,YAAe,SAAiBvvB,GACzDA,EAAE6a,iBACF,IAAInU,GAAW,EAAA9J,EAAA6C,GAAEiG,MAAMrH,QAAUsU,EAAOjQ,OAAO0K,eAC3CuF,EAAOjQ,OAAOgO,OAAMhK,GAAYiM,EAAOY,cAC3CZ,EAAOF,QAAQ/L,KAInB/G,EAAMyD,OAAOuP,EAAOya,YAClBjkB,MACAxI,GAAIwI,EAAI,QAGZic,QA7NiB,WA8Nf,IACM1iB,EADSgD,KACOhD,OAAO0qB,WAC7B,GAAK1qB,EAAO/B,IAFG+E,KAEW0nB,WAAWzsB,IAFtB+E,KAEoC0nB,WAAWjkB,KAAwC,IAFvFzD,KAE6D0nB,WAAWjkB,IAAI9I,OAA3F,CACA,IAAM8I,EAHSzD,KAGI0nB,WAAWjkB,IAE9BA,EAAIlM,YAAYyF,EAAOqtB,aACvB5mB,EAAIlM,YAAYyF,EAAOmtB,cAAgBntB,EAAOsW,MAN/BtT,KAOJ0nB,WAAWI,SAPP9nB,KAOuB0nB,WAAWI,QAAQvwB,YAAYyF,EAAOsrB,mBACxEtrB,EAAOitB,WACTxmB,EAAIzL,IAAI,QAAR,IAAqBgF,EAAO6sB,gBAoG5BS,GACJpe,aADgB,WAGd,GADelM,KACHhD,OAAOutB,UAAUtvB,IADd+E,KAC4BuqB,UAAUtvB,GAArD,CAFa,IAGLsvB,EAFOvqB,KAEPuqB,UAAyBpmB,EAFlBnE,KAEIoE,aAAmB2F,EAFvB/J,KAEuB+J,SAEpCygB,EACED,EADFC,SAAUC,EACRF,EADQE,UAAWC,EACnBH,EADmBG,QAASjnB,EAC5B8mB,EAD4B9mB,IAE1BzG,EANSgD,KAMOhD,OAAOutB,UAEzBI,EAAUH,EACVI,GAAUH,EAAYD,GAAYzgB,EAClC5F,GACFymB,GAAUA,GACG,GACXD,EAAUH,EAAWI,EACrBA,EAAS,IACCA,EAASJ,EAAWC,IAC9BE,EAAUF,EAAYG,GAEfA,EAAS,GAClBD,EAAUH,EAAWI,EACrBA,EAAS,GACAA,EAASJ,EAAWC,IAC7BE,EAAUF,EAAYG,GAtBT5qB,KAwBJ4D,gBACLxF,EAAQc,aACVwrB,EAAQ7yB,UAAR,eAAiC+yB,EAAjC,aAEAF,EAAQ7yB,UAAR,cAAgC+yB,EAAhC,OAEFF,EAAQ,GAAGzrB,MAAMsE,MAAWonB,EAA5B,OAEIvsB,EAAQc,aACVwrB,EAAQ7yB,UAAR,oBAAsC+yB,EAAtC,UAEAF,EAAQ7yB,UAAR,cAAgC+yB,EAAhC,OAEFF,EAAQ,GAAGzrB,MAAMuE,OAAYmnB,EAA7B,MAEE3tB,EAAO6tB,OACTtT,aAxCavX,KAwCOuqB,UAAU/D,SAC9B/iB,EAAI,GAAGxE,MAAM6rB,QAAU,EAzCV9qB,KA0CNuqB,UAAU/D,QAAU3rB,WAAW,WACpC4I,EAAI,GAAGxE,MAAM6rB,QAAU,EACvBrnB,EAAI3L,WAAW,MACd,QAGPiR,cAlDgB,SAkDFyD,GACGxM,KACHhD,OAAOutB,UAAUtvB,IADd+E,KAC4BuqB,UAAUtvB,IADtC+E,KAERuqB,UAAUG,QAAQ5yB,WAAW0U,IAEtClJ,WAvDgB,WAyDd,GADetD,KACHhD,OAAOutB,UAAUtvB,IADd+E,KAC4BuqB,UAAUtvB,GAArD,CAFW,IAIHsvB,EAHOvqB,KAGPuqB,UACAG,EAAiBH,EAAjBG,QAASjnB,EAAQ8mB,EAAR9mB,IAEjBinB,EAAQ,GAAGzrB,MAAMsE,MAAQ,GACzBmnB,EAAQ,GAAGzrB,MAAMuE,OAAS,GAC1B,IAAMinB,EARSzqB,KAQU4D,eAAiBH,EAAI,GAAG+O,YAAc/O,EAAI,GAAGwF,aAEhE8hB,EAVS/qB,KAUQ+D,KAVR/D,KAUsB0F,YAC/BslB,EAAcD,GAAWN,EAXhBzqB,KAWmC+D,MAC9CymB,SAEFA,EADuC,SAb1BxqB,KAaJhD,OAAOutB,UAAUC,SACfC,EAAYM,EAEZjnB,SAhBE9D,KAgBchD,OAAOutB,UAAUC,SAAU,IAhBzCxqB,KAmBJ4D,eACT8mB,EAAQ,GAAGzrB,MAAMsE,MAAWinB,EAA5B,KAEAE,EAAQ,GAAGzrB,MAAMuE,OAAYgnB,EAA7B,KAIA/mB,EAAI,GAAGxE,MAAMgsB,QADXF,GAAW,EACU,OAEA,GA5BV/qB,KA8BJhD,OAAOkuB,gBAChBznB,EAAI,GAAGxE,MAAM6rB,QAAU,GAEzB7wB,EAAMyD,OAAO6sB,GACXE,YACAM,UACAC,cACAR,aAEFD,EAAU9mB,IAvCKzD,KAuCMhD,OAAOsL,eAvCbtI,KAuCqC6P,SAAW,WAAa,eAvC7D7P,KAuCmFhD,OAAOutB,UAAUpD,aAErHgE,gBAjGgB,SAiGA7wB,GACd,IACQiwB,EADOvqB,KACPuqB,UAAyBpmB,EADlBnE,KACIoE,aACXX,EAA6B8mB,EAA7B9mB,IAAK+mB,EAAwBD,EAAxBC,SAAUC,EAAcF,EAAdE,UAQnBW,SACJA,IAXeprB,KAKJ4D,eACsB,eAAXtJ,EAAEgZ,MAAoC,cAAXhZ,EAAEgZ,KAAwBhZ,EAAE2Z,cAAc,GAAGC,MAAQ5Z,EAAE4Z,OAAS5Z,EAAE+wB,QAElF,eAAX/wB,EAAEgZ,MAAoC,cAAXhZ,EAAEgZ,KAAwBhZ,EAAE2Z,cAAc,GAAGG,MAAQ9Z,EAAE8Z,OAAS9Z,EAAEgxB,SAG9E7nB,EAAIpL,SAX1B2H,KAW0C4D,eAAiB,OAAS,OAAU4mB,EAAW,IAAOC,EAAYD,GAC3HY,EAAgBnlB,KAAKK,IAAIL,KAAK4M,IAAIuY,EAAe,GAAI,GACjDjnB,IACFinB,EAAgB,EAAIA,GAGtB,IAAMpU,EAjBShX,KAiBS4J,gBAjBT5J,KAiBmCkK,eAjBnClK,KAiB2D4J,gBAAkBwhB,EAjB7EprB,KAmBRgK,eAAegN,GAnBPhX,KAoBRkM,aAAa8K,GApBLhX,KAqBRoL,oBArBQpL,KAsBRuK,uBAETghB,YA1HgB,SA0HJjxB,GACV,IACM0C,EADSgD,KACOhD,OAAOutB,UACrBA,EAFOvqB,KAEPuqB,UAAWtmB,EAFJjE,KAEIiE,WACXR,EAAiB8mB,EAAjB9mB,IAAKinB,EAAYH,EAAZG,QAHE1qB,KAIRuqB,UAAU9W,WAAY,EAC7BnZ,EAAE6a,iBACF7a,EAAEic,kBAEFtS,EAAWnM,WAAW,KACtB4yB,EAAQ5yB,WAAW,KACnByyB,EAAUY,gBAAgB7wB,GAE1Bid,aAZevX,KAYKuqB,UAAUiB,aAE9B/nB,EAAI3L,WAAW,GACXkF,EAAO6tB,MACTpnB,EAAInL,IAAI,UAAW,GAhBN0H,KAkBRqI,KAAK,qBAAsB/N,IAEpCmxB,WA/IgB,SA+ILnxB,GACT,IACQiwB,EADOvqB,KACPuqB,UAAWtmB,EADJjE,KACIiE,WACXR,EAAiB8mB,EAAjB9mB,IAAKinB,EAAYH,EAAZG,QAFE1qB,KAIHuqB,UAAU9W,YAClBnZ,EAAE6a,eAAgB7a,EAAE6a,iBACnB7a,EAAE4pB,aAAc,EACrBqG,EAAUY,gBAAgB7wB,GAC1B2J,EAAWnM,WAAW,GACtB2L,EAAI3L,WAAW,GACf4yB,EAAQ5yB,WAAW,GAVJkI,KAWRqI,KAAK,oBAAqB/N,KAEnCoxB,UA7JgB,SA6JNpxB,GACR,IAEM0C,EAFSgD,KAEOhD,OAAOutB,UAErB9mB,EAJOzD,KAGPuqB,UACA9mB,IAJOzD,KAMHuqB,UAAU9W,YANPzT,KAORuqB,UAAU9W,WAAY,EACzBzW,EAAO6tB,OACTtT,aATavX,KASOuqB,UAAUiB,aATjBxrB,KAUNuqB,UAAUiB,YAAcvxB,EAAMM,SAAS,WAC5CkJ,EAAInL,IAAI,UAAW,GACnBmL,EAAI3L,WAAW,MACd,MAbUkI,KAeRqI,KAAK,mBAAoB/N,GAC5B0C,EAAO2uB,eAhBI3rB,KAiBN0O,mBAGXkd,gBAlLgB,WAoLd,GADe5rB,KACHhD,OAAOutB,UAAUtvB,GAA7B,CAFgB,IAIdsvB,EAHavqB,KAGbuqB,UAAW/L,EAHExe,KAGFwe,iBAAkBC,EAHhBze,KAGgBye,mBAAoBzhB,EAHpCgD,KAGoChD,OAG7C2O,EADM4e,EAAU9mB,IACH,GACbooB,KAAiBztB,EAAQmB,kBAAmBvC,EAAO4c,oBAAqBC,SAAS,EAAOH,SAAS,GACjGna,KAAkBnB,EAAQmB,kBAAmBvC,EAAO4c,oBAAqBC,SAAS,EAAMH,SAAS,GAClGtb,EAAQI,OAKXmN,EAAO/L,iBAAiB4e,EAAiB7E,MAd5B3Z,KAc0CuqB,UAAUgB,YAAaM,GAC9ElgB,EAAO/L,iBAAiB4e,EAAiB1E,KAf5B9Z,KAeyCuqB,UAAUkB,WAAYI,GAC5ElgB,EAAO/L,iBAAiB4e,EAAiBzE,IAhB5B/Z,KAgBwCuqB,UAAUmB,UAAWnsB,KAN1EoM,EAAO/L,iBAAiB6e,EAAmB9E,MAV9B3Z,KAU4CuqB,UAAUgB,YAAaM,GAChFvtB,WAASsB,iBAAiB6e,EAAmB3E,KAXhC9Z,KAW6CuqB,UAAUkB,WAAYI,GAChFvtB,WAASsB,iBAAiB6e,EAAmB1E,IAZhC/Z,KAY4CuqB,UAAUmB,UAAWnsB,MAOlFusB,iBAtMgB,WAwMd,GADe9rB,KACHhD,OAAOutB,UAAUtvB,GAA7B,CAFiB,IAIfsvB,EAHavqB,KAGbuqB,UAAW/L,EAHExe,KAGFwe,iBAAkBC,EAHhBze,KAGgBye,mBAAoBzhB,EAHpCgD,KAGoChD,OAG7C2O,EADM4e,EAAU9mB,IACH,GACbooB,KAAiBztB,EAAQmB,kBAAmBvC,EAAO4c,oBAAqBC,SAAS,EAAOH,SAAS,GACjGna,KAAkBnB,EAAQmB,kBAAmBvC,EAAO4c,oBAAqBC,SAAS,EAAMH,SAAS,GAClGtb,EAAQI,OAKXmN,EAAO+B,oBAAoB8Q,EAAiB7E,MAd/B3Z,KAc6CuqB,UAAUgB,YAAaM,GACjFlgB,EAAO+B,oBAAoB8Q,EAAiB1E,KAf/B9Z,KAe4CuqB,UAAUkB,WAAYI,GAC/ElgB,EAAO+B,oBAAoB8Q,EAAiBzE,IAhB/B/Z,KAgB2CuqB,UAAUmB,UAAWnsB,KAN7EoM,EAAO+B,oBAAoB+Q,EAAmB9E,MAVjC3Z,KAU+CuqB,UAAUgB,YAAaM,GACnFvtB,WAASoP,oBAAoB+Q,EAAmB3E,KAXnC9Z,KAWgDuqB,UAAUkB,WAAYI,GACnFvtB,WAASoP,oBAAoB+Q,EAAmB1E,IAZnC/Z,KAY+CuqB,UAAUmB,UAAWnsB,MAOrFgc,KA1NgB,WA4Nd,GADevb,KACHhD,OAAOutB,UAAUtvB,GAA7B,CAFK,IAGGsvB,EAFOvqB,KAEPuqB,UAAgBwB,EAFT/rB,KAEIyD,IACbzG,EAHSgD,KAGOhD,OAAOutB,UAEzB9mB,GAAM,EAAAvM,EAAA6C,GAAEiD,EAAO/B,IALJ+E,KAMJhD,OAAOwe,mBAA0C,iBAAdxe,EAAO/B,IAAmBwI,EAAI9I,OAAS,GAA0C,IAArCoxB,EAAUzyB,KAAK0D,EAAO/B,IAAIN,SAClH8I,EAAMsoB,EAAUzyB,KAAK0D,EAAO/B,KAG9B,IAAIyvB,EAAUjnB,EAAInK,KAAJ,IAVC0G,KAUmBhD,OAAOutB,UAAUyB,WAC5B,IAAnBtB,EAAQ/vB,SACV+vB,GAAU,EAAAxzB,EAAA6C,GAAA,eAZGiG,KAYqBhD,OAAOutB,UAAUyB,UAAzC,YACVvoB,EAAI5K,OAAO6xB,IAGbzwB,EAAMyD,OAAO6sB,GACX9mB,MACAxI,GAAIwI,EAAI,GACRinB,UACAuB,OAAQvB,EAAQ,KAGd1tB,EAAOkvB,WACT3B,EAAUqB,oBAGdlM,QAtPgB,WAuPC1f,KACRuqB,UAAUuB,qBAwEfK,GACJC,aADe,SACFnxB,EAAI8O,GACf,IACQ5F,EADOnE,KACPmE,IAEFV,GAAM,EAAAvM,EAAA6C,GAAEkB,GACRmrB,EAAYjiB,GAAO,EAAI,EAEvBkoB,EAAI5oB,EAAI/L,KAAK,yBAA2B,IAC1C0U,EAAI3I,EAAI/L,KAAK,0BACb2U,EAAI5I,EAAI/L,KAAK,0BACX0xB,EAAQ3lB,EAAI/L,KAAK,8BACjBozB,EAAUrnB,EAAI/L,KAAK,gCAwBzB,GAtBI0U,GAAKC,GACPD,EAAIA,GAAK,IACTC,EAAIA,GAAK,KAdIrM,KAeG4D,gBAChBwI,EAAIigB,EACJhgB,EAAI,MAEJA,EAAIggB,EACJjgB,EAAI,KAIJA,EADGA,EAAGlP,QAAQ,MAAQ,EACf4G,SAASsI,EAAG,IAAMrC,EAAWqc,EAApC,IAEOha,EAAIrC,EAAWqc,EAAtB,KAGA/Z,EADGA,EAAGnP,QAAQ,MAAQ,EACf4G,SAASuI,EAAG,IAAMtC,EAAzB,IAEOsC,EAAItC,EAAX,UAGqB,IAAZ+gB,GAAuC,OAAZA,EAAkB,CACtD,IAAMwB,EAAiBxB,GAAYA,EAAU,IAAM,EAAI7kB,KAAKwB,IAAIsC,IAChEtG,EAAI,GAAGxE,MAAM6rB,QAAUwB,EAEzB,QAAqB,IAAVlD,GAAmC,OAAVA,EAClC3lB,EAAI5L,UAAJ,eAA6BuU,EAA7B,KAAmCC,EAAnC,cACK,CACL,IAAMkgB,EAAenD,GAAUA,EAAQ,IAAM,EAAInjB,KAAKwB,IAAIsC,IAC1DtG,EAAI5L,UAAJ,eAA6BuU,EAA7B,KAAmCC,EAAnC,gBAAoDkgB,EAApD,OAGJrgB,aA/Ce,WAgDb,IAAMe,EAASjN,KAEbyD,EACEwJ,EADFxJ,IAAKiB,EACHuI,EADGvI,OAAQqF,EACXkD,EADWlD,SAAUlF,EACrBoI,EADqBpI,SAEzBpB,EAAIlK,SAAS,8EACVhB,KAAK,SAACyI,EAAU/F,GACfgS,EAAOuf,SAASJ,aAAanxB,EAAI8O,KAErCrF,EAAOnM,KAAK,SAAC2U,EAAYuf,GACvB,IAAI9iB,EAAgB8iB,EAAQ1iB,SACxBkD,EAAOjQ,OAAO0K,eAAiB,GAAqC,SAAhCuF,EAAOjQ,OAAOoJ,gBACpDuD,GAAiB1D,KAAKE,KAAK+G,EAAa,GAAMnD,GAAYlF,EAASlK,OAAS,IAE9EgP,EAAgB1D,KAAK4M,IAAI5M,KAAKK,IAAIqD,GAAgB,GAAI,IACtD,EAAAzS,EAAA6C,GAAE0yB,GAASnzB,KAAK,8EACbf,KAAK,SAACyI,EAAU/F,GACfgS,EAAOuf,SAASJ,aAAanxB,EAAI0O,QAIzCZ,cApEe,WAoE6B,IAA9ByD,EAA8B9R,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAnBsF,KAAKhD,OAAO4L,MACpB5I,KACPyD,IACJnK,KAAK,8EACNf,KAAK,SAACyI,EAAU0rB,GACf,IAAMC,GAAc,EAAAz1B,EAAA6C,GAAE2yB,GAClBE,EAAmB9oB,SAAS6oB,EAAYj1B,KAAK,iCAAkC,KAAO8U,EACzE,IAAbA,IAAgBogB,EAAmB,GACvCD,EAAY70B,WAAW80B,OA+CzBC,GAEJC,0BAFW,SAEexyB,GACxB,GAAIA,EAAE2Z,cAActZ,OAAS,EAAG,OAAO,EACvC,IAAMoyB,EAAKzyB,EAAE2Z,cAAc,GAAGC,MACxB8Y,EAAK1yB,EAAE2Z,cAAc,GAAGG,MACxB6Y,EAAK3yB,EAAE2Z,cAAc,GAAGC,MACxBgZ,EAAK5yB,EAAE2Z,cAAc,GAAGG,MAE9B,OADiBnO,KAAK+P,KAAK/P,KAAAgQ,IAAEgX,EAAKF,EAAO,GAAd9mB,KAAAgQ,IAAqBiX,EAAKF,EAAO,KAI9DG,eAZW,SAYI7yB,GACb,IACM0C,EADSgD,KACOhD,OAAOowB,KACvBA,EAFSptB,KAEKotB,KACZC,EAAYD,EAAZC,QAGR,GAFAD,EAAKE,oBAAqB,EAC1BF,EAAKG,kBAAmB,GACnBnvB,EAAQyB,SAAU,CACrB,GAAe,eAAXvF,EAAEgZ,MAAqC,eAAXhZ,EAAEgZ,MAAyBhZ,EAAE2Z,cAActZ,OAAS,EAClF,OAEFyyB,EAAKE,oBAAqB,EAC1BD,EAAQG,WAAaX,EAAKC,0BAA0BxyB,GAEjD+yB,EAAQ9K,UAAa8K,EAAQ9K,SAAS5nB,SACzC0yB,EAAQ9K,UAAW,EAAArrB,EAAA6C,GAAEO,EAAEqR,QAAQtS,QAAQ,iBACP,IAA5Bg0B,EAAQ9K,SAAS5nB,SAAc0yB,EAAQ9K,SAf9BviB,KAegD0E,OAAO9L,GAfvDoH,KAeiEgJ,cAC9EqkB,EAAQI,SAAWJ,EAAQ9K,SAASjpB,KAAK,oBACzC+zB,EAAQK,aAAeL,EAAQI,SAASt0B,OAAjB,IAA4B6D,EAAO2wB,gBAC1DN,EAAQO,SAAWP,EAAQK,aAAah2B,KAAK,qBAAuBsF,EAAO4wB,SACvC,IAAhCP,EAAQK,aAAa/yB,SAK3B0yB,EAAQI,SAAS31B,WAAW,GAxBbkI,KAyBRotB,KAAKS,WAAY,GALpBR,EAAQI,cAAW7yB,GAOzBkzB,gBAxCW,SAwCKxzB,GACd,IACM0C,EADSgD,KACOhD,OAAOowB,KACvBA,EAFSptB,KAEKotB,KACZC,EAAYD,EAAZC,QACR,IAAKjvB,EAAQyB,SAAU,CACrB,GAAe,cAAXvF,EAAEgZ,MAAoC,cAAXhZ,EAAEgZ,MAAwBhZ,EAAE2Z,cAActZ,OAAS,EAChF,OAEFyyB,EAAKG,kBAAmB,EACxBF,EAAQU,UAAYlB,EAAKC,0BAA0BxyB,GAEhD+yB,EAAQI,UAAwC,IAA5BJ,EAAQI,SAAS9yB,SACtCyD,EAAQyB,SAZGG,KAaNotB,KAAKhE,MAAQ9uB,EAAE8uB,MAAQgE,EAAKb,aAEnCa,EAAKhE,MAASiE,EAAQU,UAAYV,EAAQG,WAAcJ,EAAKb,aAE3Da,EAAKhE,MAAQiE,EAAQO,WACvBR,EAAKhE,MAASiE,EAAQO,SAAW,EAApB3nB,KAAAgQ,IAA4BmX,EAAKhE,MAAQiE,EAAQO,SAAY,EAAM,KAE9ER,EAAKhE,MAAQpsB,EAAOgxB,WACtBZ,EAAKhE,MAASpsB,EAAOgxB,SAAW,EAAnB/nB,KAAAgQ,IAA2BjZ,EAAOgxB,SAAWZ,EAAKhE,MAAS,EAAM,KAEhFiE,EAAQI,SAAS51B,UAAjB,4BAAuDu1B,EAAKhE,MAA5D,OAEF6E,aAlEW,SAkEE3zB,GACX,IACM0C,EADSgD,KACOhD,OAAOowB,KACvBA,EAFSptB,KAEKotB,KACZC,EAAYD,EAAZC,QACR,IAAKjvB,EAAQyB,SAAU,CACrB,IAAKutB,EAAKE,qBAAuBF,EAAKG,iBACpC,OAEF,GAAe,aAAXjzB,EAAEgZ,MAAmC,aAAXhZ,EAAEgZ,MAAuBhZ,EAAE4zB,eAAevzB,OAAS,IAAMkW,EAAOK,QAC5F,OAEFkc,EAAKE,oBAAqB,EAC1BF,EAAKG,kBAAmB,EAErBF,EAAQI,UAAwC,IAA5BJ,EAAQI,SAAS9yB,SAC1CyyB,EAAKhE,MAAQnjB,KAAKK,IAAIL,KAAK4M,IAAIua,EAAKhE,MAAOiE,EAAQO,UAAW5wB,EAAOgxB,UACrEX,EAAQI,SAAS31B,WAhBFkI,KAgBoBhD,OAAO4L,OAAO/Q,UAAjD,4BAAuFu1B,EAAKhE,MAA5F,KACAgE,EAAKb,aAAea,EAAKhE,MACzBgE,EAAKS,WAAY,EACE,IAAfT,EAAKhE,QAAaiE,EAAQ9K,cAAW3nB,KAE3CqY,aAxFW,SAwFE3Y,GACX,IACM8yB,EADSptB,KACKotB,KACZC,EAAmBD,EAAnBC,QAASvQ,EAAUsQ,EAAVtQ,MACZuQ,EAAQI,UAAwC,IAA5BJ,EAAQI,SAAS9yB,SACtCmiB,EAAMrJ,YACN5C,EAAOK,SAAS5W,EAAE6a,iBACtB2H,EAAMrJ,WAAY,EAClBqJ,EAAMqR,aAAa/hB,EAAe,eAAX9R,EAAEgZ,KAAwBhZ,EAAE2Z,cAAc,GAAGC,MAAQ5Z,EAAE4Z,MAC9E4I,EAAMqR,aAAa9hB,EAAe,eAAX/R,EAAEgZ,KAAwBhZ,EAAE2Z,cAAc,GAAGG,MAAQ9Z,EAAE8Z,SAEhFuB,YAnGW,SAmGCrb,GACV,IACM8yB,EADSptB,KACKotB,KACZC,EAA6BD,EAA7BC,QAASvQ,EAAoBsQ,EAApBtQ,MAAOhF,EAAasV,EAAbtV,SACxB,GAAKuV,EAAQI,UAAwC,IAA5BJ,EAAQI,SAAS9yB,SAH3BqF,KAIR8T,YAAa,EACfgJ,EAAMrJ,WAAc4Z,EAAQ9K,UAAjC,CAEKzF,EAAMpJ,UACToJ,EAAMvZ,MAAQ8pB,EAAQI,SAAS,GAAGjb,YAClCsK,EAAMtZ,OAAS6pB,EAAQI,SAAS,GAAGxkB,aACnC6T,EAAMzI,OAASpa,EAAMe,aAAaqyB,EAAQK,aAAa,GAAI,MAAQ,EACnE5Q,EAAMxI,OAASra,EAAMe,aAAaqyB,EAAQK,aAAa,GAAI,MAAQ,EACnEL,EAAQe,WAAaf,EAAQ9K,SAAS,GAAG/P,YACzC6a,EAAQgB,YAAchB,EAAQ9K,SAAS,GAAGtZ,aAC1CokB,EAAQK,aAAa51B,WAAW,GAdnBkI,KAeFmE,MACT2Y,EAAMzI,QAAUyI,EAAMzI,OACtByI,EAAMxI,QAAUwI,EAAMxI,SAI1B,IAAMga,EAAcxR,EAAMvZ,MAAQ6pB,EAAKhE,MACjCmF,EAAezR,EAAMtZ,OAAS4pB,EAAKhE,MAEzC,KAAIkF,EAAcjB,EAAQe,YAAcG,EAAelB,EAAQgB,aAA/D,CAUA,GARAvR,EAAM0R,KAAOvoB,KAAK4M,IAAMwa,EAAQe,WAAa,EAAME,EAAc,EAAK,GACtExR,EAAM2R,MAAQ3R,EAAM0R,KACpB1R,EAAM4R,KAAOzoB,KAAK4M,IAAMwa,EAAQgB,YAAc,EAAME,EAAe,EAAK,GACxEzR,EAAM6R,MAAQ7R,EAAM4R,KAEpB5R,EAAM8R,eAAexiB,EAAe,cAAX9R,EAAEgZ,KAAuBhZ,EAAE2Z,cAAc,GAAGC,MAAQ5Z,EAAE4Z,MAC/E4I,EAAM8R,eAAeviB,EAAe,cAAX/R,EAAEgZ,KAAuBhZ,EAAE2Z,cAAc,GAAGG,MAAQ9Z,EAAE8Z,OAE1E0I,EAAMpJ,UAAY0Z,EAAKS,UAAW,CACrC,GAnCa7tB,KAoCJ4D,iBAEJqC,KAAKC,MAAM4W,EAAM0R,QAAUvoB,KAAKC,MAAM4W,EAAMzI,SAAWyI,EAAM8R,eAAexiB,EAAI0Q,EAAMqR,aAAa/hB,GAChGnG,KAAKC,MAAM4W,EAAM2R,QAAUxoB,KAAKC,MAAM4W,EAAMzI,SAAWyI,EAAM8R,eAAexiB,EAAI0Q,EAAMqR,aAAa/hB,GAIzG,YADA0Q,EAAMrJ,WAAY,GAElB,IA5CWzT,KA6CH4D,iBAELqC,KAAKC,MAAM4W,EAAM4R,QAAUzoB,KAAKC,MAAM4W,EAAMxI,SAAWwI,EAAM8R,eAAeviB,EAAIyQ,EAAMqR,aAAa9hB,GAChGpG,KAAKC,MAAM4W,EAAM6R,QAAU1oB,KAAKC,MAAM4W,EAAMxI,SAAWwI,EAAM8R,eAAeviB,EAAIyQ,EAAMqR,aAAa9hB,GAIzG,YADAyQ,EAAMrJ,WAAY,GAItBnZ,EAAE6a,iBACF7a,EAAEic,kBAEFuG,EAAMpJ,SAAU,EAChBoJ,EAAM9I,SAAY8I,EAAM8R,eAAexiB,EAAI0Q,EAAMqR,aAAa/hB,EAAK0Q,EAAMzI,OACzEyI,EAAM3I,SAAY2I,EAAM8R,eAAeviB,EAAIyQ,EAAMqR,aAAa9hB,EAAKyQ,EAAMxI,OAErEwI,EAAM9I,SAAW8I,EAAM0R,OACzB1R,EAAM9I,SAAY8I,EAAM0R,KAAO,EAAdvoB,KAAAgQ,IAAsB6G,EAAM0R,KAAO1R,EAAM9I,SAAY,EAAM,KAE1E8I,EAAM9I,SAAW8I,EAAM2R,OACzB3R,EAAM9I,SAAY8I,EAAM2R,KAAO,EAAdxoB,KAAAgQ,IAAsB6G,EAAM9I,SAAW8I,EAAM2R,KAAQ,EAAM,KAG1E3R,EAAM3I,SAAW2I,EAAM4R,OACzB5R,EAAM3I,SAAY2I,EAAM4R,KAAO,EAAdzoB,KAAAgQ,IAAsB6G,EAAM4R,KAAO5R,EAAM3I,SAAY,EAAM,KAE1E2I,EAAM3I,SAAW2I,EAAM6R,OACzB7R,EAAM3I,SAAY2I,EAAM6R,KAAO,EAAd1oB,KAAAgQ,IAAsB6G,EAAM3I,SAAW2I,EAAM6R,KAAQ,EAAM,KAIzE7W,EAAS+W,gBAAe/W,EAAS+W,cAAgB/R,EAAM8R,eAAexiB,GACtE0L,EAASgX,gBAAehX,EAASgX,cAAgBhS,EAAM8R,eAAeviB,GACtEyL,EAASiX,WAAUjX,EAASiX,SAAWh0B,KAAKD,OACjDgd,EAAS1L,GAAK0Q,EAAM8R,eAAexiB,EAAI0L,EAAS+W,gBAAkB9zB,KAAKD,MAAQgd,EAASiX,UAAY,EACpGjX,EAASzL,GAAKyQ,EAAM8R,eAAeviB,EAAIyL,EAASgX,gBAAkB/zB,KAAKD,MAAQgd,EAASiX,UAAY,EAChG9oB,KAAKwB,IAAIqV,EAAM8R,eAAexiB,EAAI0L,EAAS+W,eAAiB,IAAG/W,EAAS1L,EAAI,GAC5EnG,KAAKwB,IAAIqV,EAAM8R,eAAeviB,EAAIyL,EAASgX,eAAiB,IAAGhX,EAASzL,EAAI,GAChFyL,EAAS+W,cAAgB/R,EAAM8R,eAAexiB,EAC9C0L,EAASgX,cAAgBhS,EAAM8R,eAAeviB,EAC9CyL,EAASiX,SAAWh0B,KAAKD,MAEzBuyB,EAAQK,aAAa71B,UAArB,eAA8CilB,EAAM9I,SAApD,OAAmE8I,EAAM3I,SAAzE,YAEF+C,WA9LW,WA+LT,IACMkW,EADSptB,KACKotB,KACZC,EAA6BD,EAA7BC,QAASvQ,EAAoBsQ,EAApBtQ,MAAOhF,EAAasV,EAAbtV,SACxB,GAAKuV,EAAQI,UAAwC,IAA5BJ,EAAQI,SAAS9yB,OAA1C,CACA,IAAKmiB,EAAMrJ,YAAcqJ,EAAMpJ,QAG7B,OAFAoJ,EAAMrJ,WAAY,OAClBqJ,EAAMpJ,SAAU,GAGlBoJ,EAAMrJ,WAAY,EAClBqJ,EAAMpJ,SAAU,EAChB,IAAIsb,EAAoB,IACpBC,EAAoB,IAClBC,EAAoBpX,EAAS1L,EAAI4iB,EACjCG,EAAerS,EAAM9I,SAAWkb,EAChCE,EAAoBtX,EAASzL,EAAI4iB,EACjCI,EAAevS,EAAM3I,SAAWib,EAGnB,IAAftX,EAAS1L,IAAS4iB,EAAoB/oB,KAAKwB,KAAK0nB,EAAerS,EAAM9I,UAAY8D,EAAS1L,IAC3E,IAAf0L,EAASzL,IAAS4iB,EAAoBhpB,KAAKwB,KAAK4nB,EAAevS,EAAM3I,UAAY2D,EAASzL,IAC9F,IAAM4L,EAAmBhS,KAAKK,IAAI0oB,EAAmBC,GAErDnS,EAAM9I,SAAWmb,EACjBrS,EAAM3I,SAAWkb,EAGjB,IAAMf,EAAcxR,EAAMvZ,MAAQ6pB,EAAKhE,MACjCmF,EAAezR,EAAMtZ,OAAS4pB,EAAKhE,MACzCtM,EAAM0R,KAAOvoB,KAAK4M,IAAMwa,EAAQe,WAAa,EAAME,EAAc,EAAK,GACtExR,EAAM2R,MAAQ3R,EAAM0R,KACpB1R,EAAM4R,KAAOzoB,KAAK4M,IAAMwa,EAAQgB,YAAc,EAAME,EAAe,EAAK,GACxEzR,EAAM6R,MAAQ7R,EAAM4R,KACpB5R,EAAM9I,SAAW/N,KAAKK,IAAIL,KAAK4M,IAAIiK,EAAM9I,SAAU8I,EAAM2R,MAAO3R,EAAM0R,MACtE1R,EAAM3I,SAAWlO,KAAKK,IAAIL,KAAK4M,IAAIiK,EAAM3I,SAAU2I,EAAM6R,MAAO7R,EAAM4R,MAEtErB,EAAQK,aAAa51B,WAAWmgB,GAAkBpgB,UAAlD,eAA2EilB,EAAM9I,SAAjF,OAAgG8I,EAAM3I,SAAtG,WAEFmb,gBArOW,WAsOT,IACMlC,EADSptB,KACKotB,KACZC,EAAYD,EAAZC,QACJA,EAAQ9K,UAHGviB,KAGgBsL,gBAHhBtL,KAGyCgJ,cACtDqkB,EAAQI,SAAS51B,UAAU,+BAC3Bw1B,EAAQK,aAAa71B,UAAU,sBAC/Bw1B,EAAQ9K,cAAW3nB,EACnByyB,EAAQI,cAAW7yB,EACnByyB,EAAQK,kBAAe9yB,EAEvBwyB,EAAKhE,MAAQ,EACbgE,EAAKb,aAAe,IAIxBgD,OArPW,SAqPJj1B,GACL,IACM8yB,EADSptB,KACKotB,KAEhBA,EAAKhE,OAAwB,IAAfgE,EAAKhE,MAErBgE,EAAKoC,MAGLpC,EAAKqC,GAAGn1B,IAGZm1B,GAjQW,SAiQRn1B,GACD,IAEM8yB,EAFSptB,KAEKotB,KACdpwB,EAHSgD,KAGOhD,OAAOowB,KACrBC,EAAmBD,EAAnBC,QAASvQ,EAAUsQ,EAAVtQ,MAOjB,GALKuQ,EAAQ9K,WACX8K,EAAQ9K,SAPKviB,KAOa6L,cAAe,EAAA3U,EAAA6C,GAP5BiG,KAOqC6L,cAPrC7L,KAO4D0E,OAAO9L,GAPnEoH,KAO6EgJ,aAC1FqkB,EAAQI,SAAWJ,EAAQ9K,SAASjpB,KAAK,oBACzC+zB,EAAQK,aAAeL,EAAQI,SAASt0B,OAAjB,IAA4B6D,EAAO2wB,iBAEvDN,EAAQI,UAAwC,IAA5BJ,EAAQI,SAAS9yB,OAA1C,CAEA0yB,EAAQ9K,SAASjrB,SAAjB,GAA6B0F,EAAO0yB,kBAEpC,IAAIC,SACAC,SAGA9Z,SACAC,SACA8Z,SACAC,SACAC,SACAC,SACA1B,SACAC,SACA0B,SACAC,SACAC,SACAC,SACAhC,SACAC,cAEgC,IAAzBvR,EAAMqR,aAAa/hB,GAAqB9R,GACjDq1B,EAAoB,aAAXr1B,EAAEgZ,KAAsBhZ,EAAE4zB,eAAe,GAAGha,MAAQ5Z,EAAE4Z,MAC/D0b,EAAoB,aAAXt1B,EAAEgZ,KAAsBhZ,EAAE4zB,eAAe,GAAG9Z,MAAQ9Z,EAAE8Z,QAE/Dub,EAAS7S,EAAMqR,aAAa/hB,EAC5BwjB,EAAS9S,EAAMqR,aAAa9hB,GAG9B+gB,EAAKhE,MAAQiE,EAAQK,aAAah2B,KAAK,qBAAuBsF,EAAO4wB,SACrER,EAAKb,aAAec,EAAQK,aAAah2B,KAAK,qBAAuBsF,EAAO4wB,SACxEtzB,GACF8zB,EAAaf,EAAQ9K,SAAS,GAAG/P,YACjC6b,EAAchB,EAAQ9K,SAAS,GAAGtZ,aAGlC6M,EAFUuX,EAAQ9K,SAASlqB,SAASyrB,KAEhBsK,EAAa,EAAMuB,EACvC5Z,EAFUsX,EAAQ9K,SAASlqB,SAAS4rB,IAEhBoK,EAAc,EAAMuB,EAExCG,EAAa1C,EAAQI,SAAS,GAAGjb,YACjCwd,EAAc3C,EAAQI,SAAS,GAAGxkB,aAClCqlB,EAAcyB,EAAa3C,EAAKhE,MAChCmF,EAAeyB,EAAc5C,EAAKhE,MAIlC+G,IAFAF,EAAgBhqB,KAAK4M,IAAMub,EAAa,EAAME,EAAc,EAAK,IAGjE8B,IAFAF,EAAgBjqB,KAAK4M,IAAMwb,EAAc,EAAME,EAAe,EAAK,IAInEsB,EAAa/Z,EAAQsX,EAAKhE,MAC1B0G,EAAa/Z,EAAQqX,EAAKhE,MAEtByG,EAAaI,IACfJ,EAAaI,GAEXJ,EAAaM,IACfN,EAAaM,GAGXL,EAAaI,IACfJ,EAAaI,GAEXJ,EAAaM,IACfN,EAAaM,KAGfP,EAAa,EACbC,EAAa,GAEfzC,EAAQK,aAAa51B,WAAW,KAAKD,UAArC,eAA8Dg4B,EAA9D,OAA+EC,EAA/E,SACAzC,EAAQI,SAAS31B,WAAW,KAAKD,UAAjC,4BAAuEu1B,EAAKhE,MAA5E,OAEFoG,IAvVW,WAwVT,IAEMpC,EAFSptB,KAEKotB,KACdpwB,EAHSgD,KAGOhD,OAAOowB,KACrBC,EAAYD,EAAZC,QAEHA,EAAQ9K,WACX8K,EAAQ9K,SAPKviB,KAOa6L,cAAe,EAAA3U,EAAA6C,GAP5BiG,KAOqC6L,cAPrC7L,KAO4D0E,OAAO9L,GAPnEoH,KAO6EgJ,aAC1FqkB,EAAQI,SAAWJ,EAAQ9K,SAASjpB,KAAK,oBACzC+zB,EAAQK,aAAeL,EAAQI,SAASt0B,OAAjB,IAA4B6D,EAAO2wB,iBAEvDN,EAAQI,UAAwC,IAA5BJ,EAAQI,SAAS9yB,SAE1CyyB,EAAKhE,MAAQ,EACbgE,EAAKb,aAAe,EACpBc,EAAQK,aAAa51B,WAAW,KAAKD,UAAU,sBAC/Cw1B,EAAQI,SAAS31B,WAAW,KAAKD,UAAU,+BAC3Cw1B,EAAQ9K,SAAShrB,YAAjB,GAAgCyF,EAAO0yB,kBACvCrC,EAAQ9K,cAAW3nB,IAGrBupB,OA7WW,WA8WT,IACMiJ,EADSptB,KACKotB,KACpB,IAAIA,EAAK5oB,QAAT,CACA4oB,EAAK5oB,SAAU,EAEf,IAAMjF,IAA+C,eALtCS,KAKgB+S,YAAY4G,QAA0Bvb,EAAQmB,kBAL9DS,KAKwFhD,OAAO4c,oBAAqBC,SAAS,EAAMH,SAAS,GAGvJtb,EAAQyB,UARGG,KASNiE,WAAWlM,GAAG,eAAgB,gBAAiBq1B,EAAKD,eAAgB5tB,GAT9DS,KAUNiE,WAAWlM,GAAG,gBAAiB,gBAAiBq1B,EAAKU,gBAAiBvuB,GAVhES,KAWNiE,WAAWlM,GAAG,aAAc,gBAAiBq1B,EAAKa,aAAc1uB,IACjC,eAZzBS,KAYG+S,YAAY4G,QAZf3Z,KAaNiE,WAAWlM,GAbLiI,KAae+S,YAAY4G,MAAO,gBAAiByT,EAAKD,eAAgB5tB,GAbxES,KAcNiE,WAAWlM,GAdLiI,KAce+S,YAAY+G,KAAM,gBAAiBsT,EAAKU,gBAAiBvuB,GAdxES,KAeNiE,WAAWlM,GAfLiI,KAee+S,YAAYgH,IAAK,gBAAiBqT,EAAKa,aAAc1uB,IAfpES,KAmBRiE,WAAWlM,GAnBHiI,KAmBa+S,YAAY+G,KAAxC,IAnBe9Z,KAmB0ChD,OAAOowB,KAAKO,eAAkBP,EAAKzX,eAE9FyO,QAnYW,WAoYT,IACMgJ,EADSptB,KACKotB,KACpB,GAAKA,EAAK5oB,QAAV,CAFexE,KAIRotB,KAAK5oB,SAAU,EAEtB,IAAMjF,IAA+C,eANtCS,KAMgB+S,YAAY4G,QAA0Bvb,EAAQmB,kBAN9DS,KAMwFhD,OAAO4c,oBAAqBC,SAAS,EAAMH,SAAS,GAGvJtb,EAAQyB,UATGG,KAUNiE,WAAWjM,IAAI,eAAgB,gBAAiBo1B,EAAKD,eAAgB5tB,GAV/DS,KAWNiE,WAAWjM,IAAI,gBAAiB,gBAAiBo1B,EAAKU,gBAAiBvuB,GAXjES,KAYNiE,WAAWjM,IAAI,aAAc,gBAAiBo1B,EAAKa,aAAc1uB,IAClC,eAbzBS,KAaG+S,YAAY4G,QAbf3Z,KAcNiE,WAAWjM,IAdLgI,KAcgB+S,YAAY4G,MAAO,gBAAiByT,EAAKD,eAAgB5tB,GAdzES,KAeNiE,WAAWjM,IAfLgI,KAegB+S,YAAY+G,KAAM,gBAAiBsT,EAAKU,gBAAiBvuB,GAfzES,KAgBNiE,WAAWjM,IAhBLgI,KAgBgB+S,YAAYgH,IAAK,gBAAiBqT,EAAKa,aAAc1uB,IAhBrES,KAoBRiE,WAAWjM,IApBHgI,KAoBc+S,YAAY+G,KAAzC,IApBe9Z,KAoB2ChD,OAAOowB,KAAKO,eAAkBP,EAAKzX,gBAkG3F0a,GACJC,YADW,SACCtvB,GAAkC,IAAxBuvB,IAAwB71B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GACtCuS,EAASjN,KACThD,EAASiQ,EAAOjQ,OAAOglB,KAC7B,QAAwB,IAAbhhB,GACkB,IAAzBiM,EAAOvI,OAAO/J,OAAlB,CACA,IAEM4nB,EAFYtV,EAAO1I,SAAW0I,EAAOjQ,OAAOuH,QAAQC,QAGtDyI,EAAOhJ,WAAW1K,SAAlB,IAA+B0T,EAAOjQ,OAAO2H,WAA7C,6BAAoF3D,EAApF,MACAiM,EAAOvI,OAAO9L,GAAGoI,GAEjBwvB,EAAUjO,EAASjpB,KAAT,IAAkB0D,EAAOyzB,aAAzB,SAA8CzzB,EAAO0zB,YAArD,UAA0E1zB,EAAO2zB,aAAjF,MACVpO,EAAS/qB,SAASwF,EAAOyzB,eAAkBlO,EAAS/qB,SAASwF,EAAO0zB,cAAiBnO,EAAS/qB,SAASwF,EAAO2zB,gBAChHH,EAAUA,EAAQ/2B,IAAI8oB,EAAS,KAEV,IAAnBiO,EAAQ71B,QAEZ61B,EAAQj4B,KAAK,SAACq4B,EAAYnU,GACxB,IAAMgR,GAAW,EAAAv2B,EAAA6C,GAAE0iB,GACnBgR,EAASn2B,SAAS0F,EAAO2zB,cAEzB,IAAME,EAAapD,EAAS/1B,KAAK,mBAC3BglB,EAAM+Q,EAAS/1B,KAAK,YACpBilB,EAAS8Q,EAAS/1B,KAAK,eACvBklB,EAAQ6Q,EAAS/1B,KAAK,cAE5BuV,EAAOuP,UAAUiR,EAAS,GAAK/Q,GAAOmU,EAAalU,EAAQC,GAAO,EAAO,WACvE,QAAsB,IAAX3P,GAAqC,OAAXA,GAAoBA,KAAWA,GAAWA,EAAOjQ,UAAWiQ,EAAOQ,UAAxG,CAqBA,GApBIojB,GACFpD,EAASn1B,IAAI,mBAAb,QAAyCu4B,EAAzC,MACApD,EAAS91B,WAAW,qBAEhBglB,IACF8Q,EAAS/1B,KAAK,SAAUilB,GACxB8Q,EAAS91B,WAAW,gBAElBilB,IACF6Q,EAAS/1B,KAAK,QAASklB,GACvB6Q,EAAS91B,WAAW,eAElB+kB,IACF+Q,EAAS/1B,KAAK,MAAOglB,GACrB+Q,EAAS91B,WAAW,cAIxB81B,EAASn2B,SAAS0F,EAAO0zB,aAAan5B,YAAYyF,EAAO2zB,cACzDpO,EAASjpB,KAAT,IAAkB0D,EAAO8zB,gBAAkBt3B,SACvCyT,EAAOjQ,OAAOgO,MAAQulB,EAAiB,CACzC,IAAMQ,EAAqBxO,EAAS7qB,KAAK,2BACzC,GAAI6qB,EAAS/qB,SAASyV,EAAOjQ,OAAOiO,qBAAsB,CACxD,IAAM+lB,EAAgB/jB,EAAOhJ,WAAW1K,SAAlB,6BAAwDw3B,EAAxD,WAAqF9jB,EAAOjQ,OAAOiO,oBAAnG,KACtBgC,EAAO+U,KAAKsO,YAAYU,EAAcr4B,SAAS,OAC1C,CACL,IAAMs4B,EAAkBhkB,EAAOhJ,WAAW1K,SAAlB,IAA+B0T,EAAOjQ,OAAOiO,oBAA7C,6BAA6F8lB,EAA7F,MACxB9jB,EAAO+U,KAAKsO,YAAYW,EAAgBt4B,SAAS,IAGrDsU,EAAO5E,KAAK,iBAAkBka,EAAS,GAAIkL,EAAS,OAGtDxgB,EAAO5E,KAAK,gBAAiBka,EAAS,GAAIkL,EAAS,QAGvDxL,KAjEW,WAkET,IAAMhV,EAASjN,KAEbiE,EACEgJ,EADFhJ,WAAoBia,EAClBjR,EADUjQ,OAAsB0H,EAChCuI,EADgCvI,OAAQsE,EACxCiE,EADwCjE,YAEtC1E,EAAY2I,EAAO1I,SAAW2Z,EAAa3Z,QAAQC,QACnDxH,EAASkhB,EAAa8D,KAExB5b,EAAgB8X,EAAa9X,cAKjC,SAAS8qB,EAAWlwB,GAClB,GAAIsD,GACF,GAAIL,EAAW1K,SAAX,IAAwB2kB,EAAavZ,WAArC,6BAA4E3D,EAA5E,MAA0FrG,OAC5F,OAAO,OAEJ,GAAI+J,EAAO1D,GAAW,OAAO,EACpC,OAAO,EAET,SAASkM,EAAWuf,GAClB,OAAInoB,GACK,EAAApN,EAAA6C,GAAE0yB,GAAS/0B,KAAK,4BAElB,EAAAR,EAAA6C,GAAE0yB,GAAS9zB,QAIpB,GApBsB,SAAlByN,IACFA,EAAgB,GAkBb6G,EAAO+U,KAAKmP,qBAAoBlkB,EAAO+U,KAAKmP,oBAAqB,GAClElkB,EAAOjQ,OAAOyL,sBAChBxE,EAAW1K,SAAX,IAAwB2kB,EAAa1U,mBAAqBjR,KAAK,SAAC64B,EAAS3E,GACvE,IAAMzrB,EAAWsD,GAAY,EAAApN,EAAA6C,GAAE0yB,GAAS/0B,KAAK,4BAA6B,EAAAR,EAAA6C,GAAE0yB,GAAS9zB,QACrFsU,EAAO+U,KAAKsO,YAAYtvB,UAErB,GAAIoF,EAAgB,EACzB,IAAK,IAAIrJ,EAAIiM,EAAajM,EAAIiM,EAAc5C,EAAerJ,GAAK,EAC1Dm0B,EAAWn0B,IAAIkQ,EAAO+U,KAAKsO,YAAYvzB,QAG7CkQ,EAAO+U,KAAKsO,YAAYtnB,GAE1B,GAAIhM,EAAOq0B,aACT,GAAIjrB,EAAgB,GAAMpJ,EAAOs0B,oBAAsBt0B,EAAOs0B,mBAAqB,EAAI,CAMrF,IALA,IAAMC,EAASv0B,EAAOs0B,mBAChB3S,EAAMvY,EACNorB,EAAWvrB,KAAK4M,IAAI7J,EAAc2V,EAAM1Y,KAAKK,IAAIirB,EAAQ5S,GAAMja,EAAO/J,QACtE82B,EAAWxrB,KAAKK,IAAI0C,EAAc/C,KAAKK,IAAIqY,EAAK4S,GAAS,GAEtDx0B,EAAIiM,EAAc5C,EAAerJ,EAAIy0B,EAAUz0B,GAAK,EACvDm0B,EAAWn0B,IAAIkQ,EAAO+U,KAAKsO,YAAYvzB,GAG7C,IAAK,IAAIA,EAAI00B,EAAU10B,EAAIiM,EAAajM,GAAK,EACvCm0B,EAAWn0B,IAAIkQ,EAAO+U,KAAKsO,YAAYvzB,OAExC,CACL,IAAMmO,EAAYjH,EAAW1K,SAAX,IAAwB2kB,EAAaxT,gBACnDQ,EAAUvQ,OAAS,GAAGsS,EAAO+U,KAAKsO,YAAYpjB,EAAWhC,IAE7D,IAAMC,EAAYlH,EAAW1K,SAAX,IAAwB2kB,EAAavT,gBACnDQ,EAAUxQ,OAAS,GAAGsS,EAAO+U,KAAKsO,YAAYpjB,EAAW/B,OAiF/DumB,GACJC,aAAc,SAAsBvlB,EAAGC,GACrC,IAAMulB,EAAgB,WACpB,IAAIJ,SACAC,SACAI,SACJ,OAAO,SAACC,EAAO1jB,GAGb,IAFAqjB,GAAY,EACZD,EAAWM,EAAMn3B,OACV62B,EAAWC,EAAW,GAEvBK,EADJD,EAAQL,EAAWC,GAAY,IACXrjB,EAClBqjB,EAAWI,EAEXL,EAAWK,EAGf,OAAOL,GAfW,GAkBtBxxB,KAAKoM,EAAIA,EACTpM,KAAKqM,EAAIA,EACTrM,KAAKgoB,UAAY5b,EAAEzR,OAAS,EAI5B,IAAIo3B,SACAC,SAaJ,OAXAhyB,KAAKiyB,YAAc,SAAqBhF,GACtC,OAAKA,GAGL+E,EAAKJ,EAAa5xB,KAAKoM,EAAG6gB,GAC1B8E,EAAKC,EAAK,GAIA/E,EAAKjtB,KAAKoM,EAAE2lB,KAAQ/xB,KAAKqM,EAAE2lB,GAAMhyB,KAAKqM,EAAE0lB,KAAS/xB,KAAKoM,EAAE4lB,GAAMhyB,KAAKoM,EAAE2lB,IAAQ/xB,KAAKqM,EAAE0lB,IAR9E,GAUX/xB,MAGTkyB,uBA3CiB,SA2CMC,GACNnyB,KACHoyB,WAAWC,SADRryB,KAENoyB,WAAWC,OAFLryB,KAEqBhD,OAAOgO,KACrC,IAAI0mB,EAAWC,aAHN3xB,KAG0B8E,WAAYqtB,EAAErtB,YACjD,IAAI4sB,EAAWC,aAJN3xB,KAI0B6E,SAAUstB,EAAEttB,YAGvDqH,aAnDiB,SAmDJA,EAAcC,GACzB,IAAMc,EAASjN,KACTsyB,EAAarlB,EAAOmlB,WAAWG,QACjCC,SACAC,SACJ,SAASC,EAAuBP,GAK9B,IAAM7oB,EAAY2D,EAAO7I,cAAgB6I,EAAO3D,UAAY2D,EAAO3D,UAC/B,UAAhC2D,EAAOjQ,OAAOo1B,WAAWO,KAC3B1lB,EAAOmlB,WAAWF,uBAAuBC,GAGzCM,GAAuBxlB,EAAOmlB,WAAWC,OAAOJ,aAAa3oB,IAG1DmpB,GAAuD,cAAhCxlB,EAAOjQ,OAAOo1B,WAAWO,KACnDH,GAAcL,EAAEjoB,eAAiBioB,EAAEvoB,iBAAmBqD,EAAO/C,eAAiB+C,EAAOrD,gBACrF6oB,GAAwBnpB,EAAY2D,EAAOrD,gBAAkB4oB,EAAcL,EAAEvoB,gBAG3EqD,EAAOjQ,OAAOo1B,WAAWQ,UAC3BH,EAAsBN,EAAEjoB,eAAiBuoB,GAE3CN,EAAEnoB,eAAeyoB,GACjBN,EAAEjmB,aAAaumB,EAAqBxlB,GACpCklB,EAAE/mB,oBACF+mB,EAAE5nB,sBAEJ,GAAI3J,MAAMU,QAAQgxB,GAChB,IAAK,IAAIv1B,EAAI,EAAGA,EAAIu1B,EAAW33B,OAAQoC,GAAK,EACtCu1B,EAAWv1B,KAAOoP,GAAgBmmB,EAAWv1B,aAAcygB,GAC7DkV,EAAuBJ,EAAWv1B,SAG7Bu1B,aAAsB9U,GAAUrR,IAAiBmmB,GAC1DI,EAAuBJ,IAG3BvpB,cA5FiB,SA4FHyD,EAAUL,GACtB,IAAMc,EAASjN,KACTsyB,EAAarlB,EAAOmlB,WAAWG,QACjCx1B,SACJ,SAAS81B,EAAwBV,GAC/BA,EAAEppB,cAAcyD,EAAUS,GACT,IAAbT,IACF2lB,EAAE1lB,kBACE0lB,EAAEn1B,OAAO4P,YACX3S,EAAMM,SAAS,WACb43B,EAAExpB,qBAGNwpB,EAAEluB,WAAW/L,cAAc,WACpBo6B,IACDH,EAAEn1B,OAAOgO,MAAwC,UAAhCiC,EAAOjQ,OAAOo1B,WAAWO,IAC5CR,EAAEpkB,UAEJokB,EAAEj6B,oBAIR,GAAI0I,MAAMU,QAAQgxB,GAChB,IAAKv1B,EAAI,EAAGA,EAAIu1B,EAAW33B,OAAQoC,GAAK,EAClCu1B,EAAWv1B,KAAOoP,GAAgBmmB,EAAWv1B,aAAcygB,GAC7DqV,EAAwBP,EAAWv1B,SAG9Bu1B,aAAsB9U,GAAUrR,IAAiBmmB,GAC1DO,EAAwBP,KA8DxBQ,GACJC,gBADW,SACKtvB,GAEd,OADAA,EAAI/L,KAAK,WAAY,KACd+L,GAETuvB,UALW,SAKDvvB,EAAKwvB,GAEb,OADAxvB,EAAI/L,KAAK,OAAQu7B,GACVxvB,GAETyvB,WATW,SASAzvB,EAAK0vB,GAEd,OADA1vB,EAAI/L,KAAK,aAAcy7B,GAChB1vB,GAET2vB,UAbW,SAaD3vB,GAER,OADAA,EAAI/L,KAAK,iBAAiB,GACnB+L,GAET4vB,SAjBW,SAiBF5vB,GAEP,OADAA,EAAI/L,KAAK,iBAAiB,GACnB+L,GAET6vB,WArBW,SAqBAh5B,GACT,IACM0C,EADSgD,KACOhD,OAAO81B,KAC7B,GAAkB,KAAdx4B,EAAE0oB,QAAN,CACA,IAAMuQ,GAAY,EAAAr8B,EAAA6C,GAAEO,EAAEqR,QAHP3L,KAIJgc,YAJIhc,KAIiBgc,WAAWgL,SAAWuM,EAAU76B,GAJjDsH,KAI2Dgc,WAAWgL,WAJtEhnB,KAKAoK,QALApK,KAKiBhD,OAAOgO,MALxBhL,KAMJ8N,YANI9N,KAQFoK,MAREpK,KASJ8yB,KAAKU,OAAOx2B,EAAOy2B,kBATfzzB,KAWJ8yB,KAAKU,OAAOx2B,EAAO02B,mBAXf1zB,KAcJgc,YAdIhc,KAciBgc,WAAWiL,SAAWsM,EAAU76B,GAdjDsH,KAc2Dgc,WAAWiL,WAdtEjnB,KAeAmK,cAfAnK,KAeuBhD,OAAOgO,MAf9BhL,KAgBJkO,YAhBIlO,KAkBFmK,YAlBEnK,KAmBJ8yB,KAAKU,OAAOx2B,EAAO22B,mBAnBf3zB,KAqBJ8yB,KAAKU,OAAOx2B,EAAO42B,mBArBf5zB,KAwBJ0nB,YAAc6L,EAAU76B,GAAV,IAxBVsH,KAwBkChD,OAAO0qB,WAAWmC,cACjE0J,EAAU,GAAGM,UAGjBL,OAlDW,SAkDJM,GACL,IACMC,EADS/zB,KACa8yB,KAAKkB,WACL,IAAxBD,EAAap5B,SACjBo5B,EAAav7B,KAAK,IAClBu7B,EAAav7B,KAAKs7B,KAEpBG,iBAzDW,WA4DT,IAFej0B,KAEJhD,OAAOgO,KAAlB,CAHiB,IAAAkpB,EACFl0B,KAGqBgc,WAA5BgL,EAJSkN,EAITlN,QAASC,EAJAiN,EAIAjN,QAEbA,GAAWA,EAAQtsB,OAAS,IALjBqF,KAMFmK,YANEnK,KAOJ8yB,KAAKM,UAAUnM,GAPXjnB,KASJ8yB,KAAKO,SAASpM,IAGrBD,GAAWA,EAAQrsB,OAAS,IAZjBqF,KAaFoK,MAbEpK,KAcJ8yB,KAAKM,UAAUpM,GAdXhnB,KAgBJ8yB,KAAKO,SAASrM,MAI3BmN,iBA9EW,WA+ET,IAAMlnB,EAASjN,KACThD,EAASiQ,EAAOjQ,OAAO81B,KACzB7lB,EAAOya,YAAcza,EAAOjQ,OAAO0qB,WAAWuC,WAAahd,EAAOya,WAAWI,SAAW7a,EAAOya,WAAWI,QAAQntB,QACpHsS,EAAOya,WAAWI,QAAQvvB,KAAK,SAACkwB,EAAa2L,GAC3C,IAAMC,GAAY,EAAAn9B,EAAA6C,GAAEq6B,GACpBnnB,EAAO6lB,KAAKC,gBAAgBsB,GAC5BpnB,EAAO6lB,KAAKE,UAAUqB,EAAW,UACjCpnB,EAAO6lB,KAAKI,WAAWmB,EAAWr3B,EAAOs3B,wBAAwBx4B,QAAQ,YAAau4B,EAAU17B,QAAU,OAIhH4iB,KA1FW,WA2FMvb,KAERyD,IAAI5K,OAFImH,KAEU8yB,KAAKkB,YAG9B,IAAMh3B,EALSgD,KAKOhD,OAAO81B,KACzB9L,SACAC,SAPWjnB,KAQJgc,YARIhc,KAQiBgc,WAAWgL,UACzCA,EATahnB,KASIgc,WAAWgL,SATfhnB,KAWJgc,YAXIhc,KAWiBgc,WAAWiL,UACzCA,EAZajnB,KAYIgc,WAAWiL,SAE1BD,IAdWhnB,KAeN8yB,KAAKC,gBAAgB/L,GAffhnB,KAgBN8yB,KAAKE,UAAUhM,EAAS,UAhBlBhnB,KAiBN8yB,KAAKI,WAAWlM,EAAShqB,EAAO02B,kBACvC1M,EAAQjvB,GAAG,UAlBEiI,KAkBgB8yB,KAAKQ,aAEhCrM,IApBWjnB,KAqBN8yB,KAAKC,gBAAgB9L,GArBfjnB,KAsBN8yB,KAAKE,UAAU/L,EAAS,UAtBlBjnB,KAuBN8yB,KAAKI,WAAWjM,EAASjqB,EAAO42B,kBACvC3M,EAAQlvB,GAAG,UAxBEiI,KAwBgB8yB,KAAKQ,aAxBrBtzB,KA4BJ0nB,YA5BI1nB,KA4BiBhD,OAAO0qB,WAAWuC,WA5BnCjqB,KA4BuD0nB,WAAWI,SA5BlE9nB,KA4BoF0nB,WAAWI,QAAQntB,QA5BvGqF,KA6BN0nB,WAAWjkB,IAAI1L,GAAG,UAAzB,IA7BaiI,KA6BkChD,OAAO0qB,WAAWmC,YA7BpD7pB,KA6B0E8yB,KAAKQ,aAGhG5T,QA3HW,WA4HM1f,KACJ8yB,KAAKkB,YADDh0B,KACsB8yB,KAAKkB,WAAWr5B,OAAS,GAD/CqF,KACyD8yB,KAAKkB,WAAWx6B,SAExF,IAAIwtB,SACAC,SAJWjnB,KAKJgc,YALIhc,KAKiBgc,WAAWgL,UACzCA,EANahnB,KAMIgc,WAAWgL,SANfhnB,KAQJgc,YARIhc,KAQiBgc,WAAWiL,UACzCA,EATajnB,KASIgc,WAAWiL,SAE1BD,GACFA,EAAQhvB,IAAI,UAZCgI,KAYiB8yB,KAAKQ,YAEjCrM,GACFA,EAAQjvB,IAAI,UAfCgI,KAeiB8yB,KAAKQ,YAftBtzB,KAmBJ0nB,YAnBI1nB,KAmBiBhD,OAAO0qB,WAAWuC,WAnBnCjqB,KAmBuD0nB,WAAWI,SAnBlE9nB,KAmBoF0nB,WAAWI,QAAQntB,QAnBvGqF,KAoBN0nB,WAAWjkB,IAAIzL,IAAI,UAA1B,IApBagI,KAoBmChD,OAAO0qB,WAAWmC,YApBrD7pB,KAoB2E8yB,KAAKQ,cA0D7FiB,GACJhZ,KADc,WAGZ,GADevb,KACHhD,OAAOw3B,QAAnB,CACA,IAAKj5B,SAAOi5B,UAAYj5B,SAAOi5B,QAAQC,UAGrC,OALaz0B,KAGNhD,OAAOw3B,QAAQhwB,SAAU,OAHnBxE,KAINhD,OAAO03B,eAAelwB,SAAU,GAGzC,IAAMgwB,EAPSx0B,KAOQw0B,QACvBA,EAAQnnB,aAAc,EACtBmnB,EAAQG,MAAQJ,EAAQK,iBACnBJ,EAAQG,MAAMt6B,KAAQm6B,EAAQG,MAAME,SACzCL,EAAQM,cAAc,EAAGN,EAAQG,MAAME,MAXxB70B,KAWsChD,OAAO6e,oBAX7C7b,KAYHhD,OAAOw3B,QAAQO,cACzBx5B,SAAOqE,iBAAiB,WAbXI,KAa8Bw0B,QAAQQ,uBAGvDtV,QAlBc,WAmBG1f,KACHhD,OAAOw3B,QAAQO,cACzBx5B,SAAOmS,oBAAoB,WAFd1N,KAEiCw0B,QAAQQ,qBAG1DA,mBAxBc,WAyBGh1B,KACRw0B,QAAQG,MAAQJ,EAAQK,gBADhB50B,KAERw0B,QAAQM,cAFA90B,KAEqBhD,OAAO4L,MAF5B5I,KAE0Cw0B,QAAQG,MAAME,OAAO,IAEhFD,cA7Bc,WA8BZ,IAAMK,EAAY15B,SAAOsB,SAASq4B,SAAS3zB,MAAM,GAAG5F,MAAM,KAAKwB,OAAO,SAAAg4B,GAAA,MAAiB,KAATA,IACxEvN,EAAQqN,EAAUt6B,OAGxB,OAASN,IAFG46B,EAAUrN,EAAQ,GAEhBiN,MADAI,EAAUrN,EAAQ,KAGlCwN,WApCc,SAoCH/6B,EAAK2G,GAEd,GADehB,KACHw0B,QAAQnnB,aADLrN,KAC4BhD,OAAOw3B,QAAQhwB,QAA1D,CACA,IAAMkC,EAFS1G,KAEM0E,OAAO9L,GAAGoI,GAC3B6zB,EAAQN,EAAQc,QAAQ3uB,EAAMhP,KAAK,iBAClC6D,SAAOsB,SAASq4B,SAASI,SAASj7B,KACrCw6B,EAAWx6B,EAAX,IAAkBw6B,GAEpB,IAAMU,EAAeh6B,SAAOi5B,QAAQgB,MAChCD,GAAgBA,EAAaV,QAAUA,IAR5B70B,KAWJhD,OAAOw3B,QAAQO,aACxBx5B,SAAOi5B,QAAQO,cAAeF,SAAS,KAAMA,GAE7Ct5B,SAAOi5B,QAAQC,WAAYI,SAAS,KAAMA,MAG9CQ,QAtDc,SAsDNI,GACN,OAAOA,EAAQp5B,WAAWyV,cACvBhW,QAAQ,OAAQ,KAChBA,QAAQ,WAAY,IACpBA,QAAQ,OAAQ,KAChBA,QAAQ,MAAO,IACfA,QAAQ,MAAO,KAEpBg5B,cA9Dc,SA8DAlsB,EAAOisB,EAAOnoB,GAE1B,GAAImoB,EACF,IAAK,IAAI93B,EAAI,EAAGpC,EAFHqF,KAEmB0E,OAAO/J,OAAQoC,EAAIpC,EAAQoC,GAAK,EAAG,CACjE,IAAM2J,EAHK1G,KAGU0E,OAAO9L,GAAGmE,GAE/B,GADqBw3B,EAAQc,QAAQ3uB,EAAMhP,KAAK,mBAC3Bm9B,IAAUnuB,EAAMlP,SAL1BwI,KAK0ChD,OAAOiO,qBAAsB,CAChF,IAAMjK,EAAW0F,EAAM/N,QANdqH,KAOF+M,QAAQ/L,EAAU4H,EAAO8D,SAPvB1M,KAWN+M,QAAQ,EAAGnE,EAAO8D,KAgDzBgpB,GACJC,YADqB,WAEnB,IACMC,EAAUt3B,WAASzB,SAASg5B,KAAK/5B,QAAQ,IAAK,IAEpD,GAAI85B,IAHW51B,KAEgB0E,OAAO9L,GAFvBoH,KAEiCgJ,aAAatR,KAAK,aACjC,CAC/B,IAAMkW,EAJO5N,KAIWiE,WAAW1K,SAAlB,IAJJyG,KAI0ChD,OAAO2H,WAA7C,eAAsEixB,EAAtE,MAAmFj9B,QACpG,QAAwB,IAAbiV,EAA0B,OALxB5N,KAMN+M,QAAQa,KAGnBkoB,QAXqB,WAanB,GADe91B,KACH00B,eAAernB,aADZrN,KACmChD,OAAO03B,eAAelwB,QACxE,GAFexE,KAEJhD,OAAO03B,eAAeK,cAAgBx5B,SAAOi5B,SAAWj5B,SAAOi5B,QAAQO,aAChFx5B,SAAOi5B,QAAQO,aAAa,KAAM,KAAO,IAH5B/0B,KAGuC0E,OAAO9L,GAH9CoH,KAGwDgJ,aAAatR,KAAK,cAAkB,QACpG,CACL,IAAMgP,EALO1G,KAKQ0E,OAAO9L,GALfoH,KAKyBgJ,aAChC6sB,EAAOnvB,EAAMhP,KAAK,cAAgBgP,EAAMhP,KAAK,gBACnD4G,WAASzB,SAASg5B,KAAOA,GAAQ,KAGrCta,KAtBqB,WAwBnB,MADevb,KACHhD,OAAO03B,eAAelwB,SADnBxE,KACsChD,OAAOw3B,SAD7Cx0B,KAC+DhD,OAAOw3B,QAAQhwB,SAA7F,CADexE,KAER00B,eAAernB,aAAc,EACpC,IAAMwoB,EAAOv3B,WAASzB,SAASg5B,KAAK/5B,QAAQ,IAAK,IACjD,GAAI+5B,EAEF,IADA,IACS94B,EAAI,EAAGpC,EANHqF,KAMmB0E,OAAO/J,OAAQoC,EAAIpC,EAAQoC,GAAK,EAAG,CACjE,IAAM2J,EAPK1G,KAOU0E,OAAO9L,GAAGmE,GAE/B,IADkB2J,EAAMhP,KAAK,cAAgBgP,EAAMhP,KAAK,mBACtCm+B,IAASnvB,EAAMlP,SATtBwI,KASsChD,OAAOiO,qBAAsB,CAC5E,IAAMjK,EAAW0F,EAAM/N,QAVdqH,KAWF+M,QAAQ/L,EANL,EALDhB,KAW8BhD,OAAO6e,oBAAoB,IAXzD7b,KAeJhD,OAAO03B,eAAeqB,aAC/B,EAAA7+B,EAAA6C,GAAEwB,UAAQxD,GAAG,aAhBAiI,KAgBqB00B,eAAeiB,eAGrDjW,QA1CqB,WA2CJ1f,KACJhD,OAAO03B,eAAeqB,aAC/B,EAAA7+B,EAAA6C,GAAEwB,UAAQvD,IAAI,aAFDgI,KAEsB00B,eAAeiB,eAiDlDK,GACJC,IADe,WAEb,IAAMhpB,EAASjN,KACTk2B,EAAiBjpB,EAAOvI,OAAO9L,GAAGqU,EAAOjE,aAC3CvO,EAAQwS,EAAOjQ,OAAOypB,SAAShsB,MAC/By7B,EAAex+B,KAAK,0BACtB+C,EAAQy7B,EAAex+B,KAAK,yBAA2BuV,EAAOjQ,OAAOypB,SAAShsB,OAEhFwS,EAAOwZ,SAASD,QAAUvsB,EAAMM,SAAS,WACnC0S,EAAOjQ,OAAOypB,SAAS0P,iBACrBlpB,EAAOjQ,OAAOgO,MAChBiC,EAAOc,UACPd,EAAOiB,UAAUjB,EAAOjQ,OAAO4L,OAAO,GAAM,GAC5CqE,EAAO5E,KAAK,aACF4E,EAAO9C,YAGP8C,EAAOjQ,OAAOypB,SAAS2P,gBAIjCnpB,EAAOwZ,SAASE,QAHhB1Z,EAAOF,QAAQE,EAAOvI,OAAO/J,OAAS,EAAGsS,EAAOjQ,OAAO4L,OAAO,GAAM,GACpEqE,EAAO5E,KAAK,cAJZ4E,EAAOiB,UAAUjB,EAAOjQ,OAAO4L,OAAO,GAAM,GAC5CqE,EAAO5E,KAAK,aAOL4E,EAAOjQ,OAAOgO,MACvBiC,EAAOc,UACPd,EAAOa,UAAUb,EAAOjQ,OAAO4L,OAAO,GAAM,GAC5CqE,EAAO5E,KAAK,aACF4E,EAAO7C,MAGP6C,EAAOjQ,OAAOypB,SAAS2P,gBAIjCnpB,EAAOwZ,SAASE,QAHhB1Z,EAAOF,QAAQ,EAAGE,EAAOjQ,OAAO4L,OAAO,GAAM,GAC7CqE,EAAO5E,KAAK,cAJZ4E,EAAOa,UAAUb,EAAOjQ,OAAO4L,OAAO,GAAM,GAC5CqE,EAAO5E,KAAK,cAOb5N,IAELkf,MAtCe,WAwCb,YAAuC,IADxB3Z,KACGymB,SAASD,WADZxmB,KAEJymB,SAAS4P,UAFLr2B,KAGRymB,SAAS4P,SAAU,EAHXr2B,KAIRqI,KAAK,iBAJGrI,KAKRymB,SAASwP,OACT,KAETtP,KA/Ce,WAiDb,QADe3mB,KACHymB,SAAS4P,eACkB,IAFxBr2B,KAEGymB,SAASD,UAFZxmB,KAIJymB,SAASD,UAClBjP,aALavX,KAKOymB,SAASD,SALhBxmB,KAMNymB,SAASD,aAAU5rB,GANboF,KAQRymB,SAAS4P,SAAU,EARXr2B,KASRqI,KAAK,iBACL,KAETiuB,MA5De,SA4DT1tB,GACW5I,KACHymB,SAAS4P,UADNr2B,KAEJymB,SAAS8P,SAFLv2B,KAGJymB,SAASD,SAASjP,aAHdvX,KAGkCymB,SAASD,SAH3CxmB,KAIRymB,SAAS8P,QAAS,EACX,IAAV3tB,GALW5I,KAKYhD,OAAOypB,SAAS+P,mBAL5Bx2B,KASNiE,WAAW,GAAGrE,iBAAiB,gBATzBI,KASiDymB,SAAS6I,iBAT1DtvB,KAUNiE,WAAW,GAAGrE,iBAAiB,sBAVzBI,KAUuDymB,SAAS6I,mBAVhEtvB,KAMNymB,SAAS8P,QAAS,EANZv2B,KAONymB,SAASwP,WAiFhBQ,GACJvqB,aADW,WAIT,IAFA,IACQxH,EADO1E,KACP0E,OACC3H,EAAI,EAAGA,EAAI2H,EAAO/J,OAAQoC,GAAK,EAAG,CACzC,IAAMwlB,EAHOviB,KAGW0E,OAAO9L,GAAGmE,GAE9B25B,GADcnU,EAAS,GAAGrZ,kBAJjBlJ,KAMDhD,OAAOgP,mBAAkB0qB,GANxB12B,KAMqCsJ,WAClD,IAAIqtB,EAAK,EAPI32B,KAQD4D,iBACV+yB,EAAKD,EACLA,EAAK,GAEP,IAAME,EAZO52B,KAYehD,OAAO65B,WAAWC,UAC1C7wB,KAAKK,IAAI,EAAIL,KAAKwB,IAAI8a,EAAS,GAAGxY,UAAW,GAC7C,EAAI9D,KAAK4M,IAAI5M,KAAKK,IAAIic,EAAS,GAAGxY,UAAW,GAAI,GACrDwY,EACGjqB,KACCwyB,QAAS8L,IAEV/+B,UAJH,eAI4B6+B,EAJ5B,OAIqCC,EAJrC,cAOJ5tB,cAxBW,SAwBGyD,GACZ,IAAMS,EAASjN,KACP0E,EAAuBuI,EAAvBvI,OAAQT,EAAegJ,EAAfhJ,WAEhB,GADAS,EAAO5M,WAAW0U,GACdS,EAAOjQ,OAAOgP,kBAAiC,IAAbQ,EAAgB,CACpD,IAAIuqB,GAAiB,EACrBryB,EAAOxM,cAAc,WACnB,IAAI6+B,GACC9pB,IAAUA,EAAOQ,UAAtB,CACAspB,GAAiB,EACjB9pB,EAAOH,WAAY,EAEnB,IADA,IAAMkqB,GAAiB,sBAAuB,iBACrCj6B,EAAI,EAAGA,EAAIi6B,EAAcr8B,OAAQoC,GAAK,EAC7CkH,EAAWhM,QAAQ++B,EAAcj6B,UAoDrCk6B,GACJ/qB,aADW,WAET,IAEEzI,EAFazD,KAEbyD,IAAKQ,EAFQjE,KAERiE,WAAYS,EAFJ1E,KAEI0E,OAAewyB,EAFnBl3B,KAEYuD,MAA4B4zB,EAFxCn3B,KAEgCwD,OAAoCW,EAFpEnE,KAEsDoE,aAAyBF,EAF/ElE,KAEyE+D,KAElF/G,EAJSgD,KAIOhD,OAAOo6B,WACvBxzB,EALS5D,KAKa4D,eACtBU,EANStE,KAMUuE,SANVvE,KAM4BhD,OAAOuH,QAAQC,QACtD6yB,EAAgB,EAChBC,SACAt6B,EAAOu6B,SACL3zB,GAE2B,KAD7B0zB,EAAgBrzB,EAAW3K,KAAK,wBACdqB,SAChB28B,GAAgB,EAAApgC,EAAA6C,GAAE,0CAClBkK,EAAWpL,OAAOy+B,IAEpBA,EAAch/B,KAAMkL,OAAW0zB,EAAX,QAGS,KAD7BI,EAAgB7zB,EAAInK,KAAK,wBACPqB,SAChB28B,GAAgB,EAAApgC,EAAA6C,GAAE,0CAClB0J,EAAI5K,OAAOy+B,KAIjB,IAAK,IAAIv6B,EAAI,EAAGA,EAAI2H,EAAO/J,OAAQoC,GAAK,EAAG,CACzC,IAAMwlB,EAAW7d,EAAO9L,GAAGmE,GACvBmQ,EAAanQ,EACbuH,IACF4I,EAAapJ,SAASye,EAAS7qB,KAAK,2BAA4B,KAElE,IAAI8/B,EAA0B,GAAbtqB,EACbuqB,EAAQxxB,KAAKC,MAAMsxB,EAAa,KAChCrzB,IACFqzB,GAAcA,EACdC,EAAQxxB,KAAKC,OAAOsxB,EAAa,MAEnC,IAAMztB,EAAW9D,KAAKK,IAAIL,KAAK4M,IAAI0P,EAAS,GAAGxY,SAAU,IAAK,GAC1D2sB,EAAK,EACLC,EAAK,EACLe,EAAK,EACLxqB,EAAa,GAAM,GACrBwpB,EAAc,GAARe,EAAYvzB,EAClBwzB,EAAK,IACKxqB,EAAa,GAAK,GAAM,GAClCwpB,EAAK,EACLgB,EAAc,GAARD,EAAYvzB,IACRgJ,EAAa,GAAK,GAAM,GAClCwpB,EAAKxyB,EAAsB,EAARuzB,EAAYvzB,EAC/BwzB,EAAKxzB,IACKgJ,EAAa,GAAK,GAAM,IAClCwpB,GAAMxyB,EACNwzB,EAAM,EAAIxzB,EAA4B,EAAbA,EAAiBuzB,GAExCtzB,IACFuyB,GAAMA,GAGH9yB,IACH+yB,EAAKD,EACLA,EAAK,GAGP,IAAMiB,cAA0B/zB,EAAe,GAAK4zB,GAA9C,iBAAwE5zB,EAAe4zB,EAAa,GAApG,oBAAyHd,EAAzH,OAAkIC,EAAlI,OAA2Ie,EAA3I,MAMN,GALI3tB,GAAY,GAAKA,GAAY,IAC/BstB,EAA8B,GAAbnqB,EAA+B,GAAXnD,EACjC5F,IAAKkzB,EAA+B,IAAbnqB,EAA+B,GAAXnD,IAEjDwY,EAAS1qB,UAAU8/B,GACf36B,EAAO46B,aAAc,CAEvB,IAAIC,EAAej0B,EAAe2e,EAASjpB,KAAK,6BAA+BipB,EAASjpB,KAAK,4BACzFw+B,EAAcl0B,EAAe2e,EAASjpB,KAAK,8BAAgCipB,EAASjpB,KAAK,+BACjE,IAAxBu+B,EAAal9B,SACfk9B,GAAe,EAAA3gC,EAAA6C,GAAA,oCAAqC6J,EAAe,OAAS,OAA7D,YACf2e,EAAS1pB,OAAOg/B,IAES,IAAvBC,EAAYn9B,SACdm9B,GAAc,EAAA5gC,EAAA6C,GAAA,oCAAqC6J,EAAe,QAAU,UAA9D,YACd2e,EAAS1pB,OAAOi/B,IAEdD,EAAal9B,SAAQk9B,EAAa,GAAG54B,MAAM6rB,QAAU7kB,KAAKK,KAAKyD,EAAU,IACzE+tB,EAAYn9B,SAAQm9B,EAAY,GAAG74B,MAAM6rB,QAAU7kB,KAAKK,IAAIyD,EAAU,KAU9E,GAPA9F,EAAW3L,KACTy/B,2BAAA,YAAwC7zB,EAAa,EAArD,KACA8zB,wBAAA,YAAqC9zB,EAAa,EAAlD,KACA+zB,uBAAA,YAAoC/zB,EAAa,EAAjD,KACAg0B,mBAAA,YAAgCh0B,EAAa,EAA7C,OAGElH,EAAOu6B,OACT,GAAI3zB,EACF0zB,EAAcz/B,UAAd,qBAA6Cq/B,EAAc,EAAKl6B,EAAOm7B,cAAvE,QAA2FjB,EAAc,EAAzG,0CAAoJl6B,EAAOo7B,YAA3J,SACK,CACL,IAAMC,EAAcpyB,KAAKwB,IAAI4vB,GAA6D,GAA3CpxB,KAAKC,MAAMD,KAAKwB,IAAI4vB,GAAiB,IAC9E7E,EAAa,KAChBvsB,KAAKqyB,IAAmB,EAAdD,EAAkBpyB,KAAKmQ,GAAM,KAAO,EAC5CnQ,KAAKsyB,IAAmB,EAAdF,EAAkBpyB,KAAKmQ,GAAM,KAAO,GAE7CoiB,EAASx7B,EAAOo7B,YAChBK,EAASz7B,EAAOo7B,YAAc5F,EAC9B1Q,EAAY9kB,EAAOm7B,aACzBb,EAAcz/B,UAAd,WAAmC2gC,EAAnC,QAAiDC,EAAjD,uBAA8EtB,EAAe,EAAKrV,GAAlG,QAAmHqV,EAAe,EAAIsB,EAAtI,uBAGJ,IAAMC,EAAW1d,EAAQG,UAAYH,EAAQI,aAAiBlX,EAAa,EAAK,EAChFD,EACGpM,UADH,qBACkC6gC,EADlC,gBA5Ge14B,KA6GgD4D,eAAiB,EAAIyzB,GADpF,iBA5Ger3B,KA6GyG4D,gBAAkByzB,EAAgB,GAD1J,SAGFtuB,cAjHW,SAiHGyD,GACZ,IACQ/I,EADOzD,KACPyD,IADOzD,KACF0E,OAEV5M,WAAW0U,GACXlT,KAAK,gHACLxB,WAAW0U,GALCxM,KAMJhD,OAAOo6B,WAAWG,SANdv3B,KAMgC4D,gBAC7CH,EAAInK,KAAK,uBAAuBxB,WAAW0U,KAwD3CmsB,GACJzsB,aADW,WAIT,IAFA,IACQxH,EADO1E,KACP0E,OAAsBP,EADfnE,KACCoE,aACPrH,EAAI,EAAGA,EAAI2H,EAAO/J,OAAQoC,GAAK,EAAG,CACzC,IAAMwlB,EAAW7d,EAAO9L,GAAGmE,GACvBgN,EAAWwY,EAAS,GAAGxY,SAJd/J,KAKFhD,OAAO47B,WAAWC,gBAC3B9uB,EAAW9D,KAAKK,IAAIL,KAAK4M,IAAI0P,EAAS,GAAGxY,SAAU,IAAK,IAE1D,IAEI+uB,GADY,IAAM/uB,EAElBgvB,EAAU,EACVrC,GAJcnU,EAAS,GAAGrZ,kBAK1BytB,EAAK,EAYT,GAzBa32B,KAcD4D,eAKDO,IACT20B,GAAWA,IALXnC,EAAKD,EACLA,EAAK,EACLqC,GAAWD,EACXA,EAAU,GAKZvW,EAAS,GAAGtjB,MAAM+5B,QAAU/yB,KAAKwB,IAAIxB,KAAKwxB,MAAM1tB,IAAarF,EAAO/J,OAvBvDqF,KAyBFhD,OAAO47B,WAAWhB,aAAc,CAEzC,IAAIC,EA3BO73B,KA2Be4D,eAAiB2e,EAASjpB,KAAK,6BAA+BipB,EAASjpB,KAAK,4BAClGw+B,EA5BO93B,KA4Bc4D,eAAiB2e,EAASjpB,KAAK,8BAAgCipB,EAASjpB,KAAK,+BAC1E,IAAxBu+B,EAAal9B,SACfk9B,GAAe,EAAA3gC,EAAA6C,GAAA,oCA9BNiG,KA8BkD4D,eAAiB,OAAS,OAAtE,YACf2e,EAAS1pB,OAAOg/B,IAES,IAAvBC,EAAYn9B,SACdm9B,GAAc,EAAA5gC,EAAA6C,GAAA,oCAlCLiG,KAkCiD4D,eAAiB,QAAU,UAAvE,YACd2e,EAAS1pB,OAAOi/B,IAEdD,EAAal9B,SAAQk9B,EAAa,GAAG54B,MAAM6rB,QAAU7kB,KAAKK,KAAKyD,EAAU,IACzE+tB,EAAYn9B,SAAQm9B,EAAY,GAAG74B,MAAM6rB,QAAU7kB,KAAKK,IAAIyD,EAAU,IAE5EwY,EACG1qB,UADH,eAC4B6+B,EAD5B,OACqCC,EADrC,oBAC2DoC,EAD3D,gBACkFD,EADlF,UAIJ/vB,cA9CW,SA8CGyD,GACZ,IAAMS,EAASjN,KACP0E,EAAoCuI,EAApCvI,OAAQsE,EAA4BiE,EAA5BjE,YAAa/E,EAAegJ,EAAfhJ,WAK7B,GAJAS,EACG5M,WAAW0U,GACXlT,KAAK,gHACLxB,WAAW0U,GACVS,EAAOjQ,OAAOgP,kBAAiC,IAAbQ,EAAgB,CACpD,IAAIuqB,GAAiB,EAErBryB,EAAO9L,GAAGoQ,GAAa9Q,cAAc,WACnC,IAAI6+B,GACC9pB,IAAUA,EAAOQ,UAAtB,CAEAspB,GAAiB,EACjB9pB,EAAOH,WAAY,EAEnB,IADA,IAAMkqB,GAAiB,sBAAuB,iBACrCj6B,EAAI,EAAGA,EAAIi6B,EAAcr8B,OAAQoC,GAAK,EAC7CkH,EAAWhM,QAAQ++B,EAAcj6B,UAsDrCk8B,IACJ/sB,aADgB,WAad,IAXA,IAESgrB,EAFMl3B,KAEbuD,MAA4B4zB,EAFfn3B,KAEOwD,OAAsBkB,EAF7B1E,KAE6B0E,OAAQT,EAFrCjE,KAEqCiE,WAAYc,EAFjD/E,KAEiD+E,gBAE1D/H,EAJSgD,KAIOhD,OAAOk8B,gBACvBt1B,EALS5D,KAKa4D,eACtB+zB,EANS33B,KAMasJ,UACtB6vB,EAASv1B,EAAgCszB,EAAc,EAA9BS,EAAoDR,EAAe,EAA/BQ,EAC7DyB,EAASx1B,EAAe5G,EAAOo8B,QAAUp8B,EAAOo8B,OAChD9vB,EAAYtM,EAAOq8B,MAEhBt8B,EAAI,EAAGpC,EAAS+J,EAAO/J,OAAQoC,EAAIpC,EAAQoC,GAAK,EAAG,CAC1D,IAAMwlB,EAAW7d,EAAO9L,GAAGmE,GACrBwJ,EAAYxB,EAAgBhI,GAE5Bu8B,GAAqBH,EADP5W,EAAS,GAAGrZ,kBACmB3C,EAAY,GAAMA,EAAavJ,EAAOu8B,SAErFT,EAAUl1B,EAAew1B,EAASE,EAAmB,EACrDP,EAAUn1B,EAAe,EAAIw1B,EAASE,EAEtCE,GAAclwB,EAAYrD,KAAKwB,IAAI6xB,GAEnCxJ,EAAalsB,EAAe,EAAI5G,EAAOy8B,QAAWH,EAClDzJ,EAAajsB,EAAe5G,EAAOy8B,QAAWH,EAAoB,EAGlErzB,KAAKwB,IAAIooB,GAAc,OAAOA,EAAa,GAC3C5pB,KAAKwB,IAAIqoB,GAAc,OAAOA,EAAa,GAC3C7pB,KAAKwB,IAAI+xB,GAAc,OAAOA,EAAa,GAC3CvzB,KAAKwB,IAAIqxB,GAAW,OAAOA,EAAU,GACrC7yB,KAAKwB,IAAIsxB,GAAW,OAAOA,EAAU,GAEzC,IAAMW,iBAAgC7J,EAAhC,MAAgDC,EAAhD,MAAgE0J,EAAhE,gBAA0FT,EAA1F,gBAAiHD,EAAjH,OAIN,GAFAvW,EAAS1qB,UAAU6hC,GACnBnX,EAAS,GAAGtjB,MAAM+5B,OAAmD,EAAzC/yB,KAAKwB,IAAIxB,KAAKwxB,MAAM6B,IAC5Ct8B,EAAO46B,aAAc,CAEvB,IAAI+B,EAAkB/1B,EAAe2e,EAASjpB,KAAK,6BAA+BipB,EAASjpB,KAAK,4BAC5FsgC,EAAiBh2B,EAAe2e,EAASjpB,KAAK,8BAAgCipB,EAASjpB,KAAK,+BACjE,IAA3BqgC,EAAgBh/B,SAClBg/B,GAAkB,EAAAziC,EAAA6C,GAAA,oCAAqC6J,EAAe,OAAS,OAA7D,YAClB2e,EAAS1pB,OAAO8gC,IAEY,IAA1BC,EAAej/B,SACjBi/B,GAAiB,EAAA1iC,EAAA6C,GAAA,oCAAqC6J,EAAe,QAAU,UAA9D,YACjB2e,EAAS1pB,OAAO+gC,IAEdD,EAAgBh/B,SAAQg/B,EAAgB,GAAG16B,MAAM6rB,QAAUwO,EAAmB,EAAIA,EAAmB,GACrGM,EAAej/B,SAAQi/B,EAAe,GAAG36B,MAAM6rB,SAAYwO,EAAoB,GAAKA,EAAmB,KAK3Gl7B,EAAQO,eAAiBP,EAAQW,yBACxBkF,EAAW,GAAGhF,MACtB46B,kBAAuBV,EAA1B,WAGJpwB,cA7DgB,SA6DFyD,GACGxM,KACR0E,OACJ5M,WAAW0U,GACXlT,KAAK,gHACLxB,WAAW0U,KAgDZstB,IACJve,KADa,WAEX,IACgBwe,EADD/5B,KACyBhD,OAAhCg9B,OACFl6B,EAFSE,KAEYvC,YACvBs8B,EAAa9sB,kBAAkBnN,GAHpBE,KAINg6B,OAAO/sB,OAAS8sB,EAAa9sB,OACpChT,EAAMyD,OALOsC,KAKOg6B,OAAO/sB,OAAOuN,gBAChChS,qBAAqB,EACrBuD,qBAAqB,IAEvB9R,EAAMyD,OATOsC,KASOg6B,OAAO/sB,OAAOjQ,QAChCwL,qBAAqB,EACrBuD,qBAAqB,KAEd9R,EAAMqD,SAASy8B,EAAa9sB,UAbxBjN,KAcNg6B,OAAO/sB,OAAS,IAAInN,EAAY7F,EAAMyD,UAAWq8B,EAAa9sB,QACnExE,uBAAuB,EACvBD,qBAAqB,EACrBuD,qBAAqB,KAjBV/L,KAmBNg6B,OAAOC,eAAgB,GAnBjBj6B,KAqBRg6B,OAAO/sB,OAAOxJ,IAAInM,SArBV0I,KAqB0BhD,OAAOg9B,OAAOE,sBArBxCl6B,KAsBRg6B,OAAO/sB,OAAOlV,GAAG,MAtBTiI,KAsBuBg6B,OAAOG,eAE/CA,aA1Ba,WA2BX,IACMC,EADSp6B,KACag6B,OAAO/sB,OACnC,GAAKmtB,EAAL,CACA,IAAMtuB,EAAesuB,EAAatuB,aAC5BD,EAAeuuB,EAAavuB,aAClC,KAAIA,IAAgB,EAAA3U,EAAA6C,GAAE8R,GAAcrU,SALrBwI,KAKqChD,OAAOg9B,OAAOK,6BACtC,IAAjBvuB,GAAiD,OAAjBA,GAA3C,CACA,IAAI+C,SAMJ,GAJEA,EADEurB,EAAap9B,OAAOgO,KACPlH,UAAS,EAAA5M,EAAA6C,GAAEqgC,EAAavuB,cAAcnU,KAAK,2BAA4B,IAEvEoU,EAXF9L,KAaJhD,OAAOgO,KAAM,CACtB,IAAIsvB,EAdSt6B,KAcagJ,YAdbhJ,KAeF0E,OAAO9L,GAAG0hC,GAAc9iC,SAftBwI,KAesChD,OAAOiO,uBAf7CjL,KAgBJ+N,UAhBI/N,KAkBJgO,YAlBIhO,KAkBiBiE,WAAW,GAAGgK,WAC1CqsB,EAnBWt6B,KAmBWgJ,aAExB,IAAMwF,EArBOxO,KAqBY0E,OAAO9L,GAAG0hC,GAAcphC,QAA/B,6BAAoE2V,EAApE,MAAsFjW,GAAG,GAAGD,QACxGmF,EAtBOkC,KAsBY0E,OAAO9L,GAAG0hC,GAActhC,QAA/B,6BAAoE6V,EAApE,MAAsFjW,GAAG,GAAGD,QACxEkW,OAAb,IAAdL,EAA0C1Q,OACvB,IAAdA,EAA0C0Q,EACjD1Q,EAAYw8B,EAAeA,EAAe9rB,EAA0B1Q,EACzD0Q,EA1BPxO,KA4BR+M,QAAQ8B,MAEjBxL,OAzDa,SAyDNk3B,GACL,IACMH,EADSp6B,KACag6B,OAAO/sB,OACnC,GAAKmtB,EAAL,CAEA,IAAMh0B,EAAsD,SAAtCg0B,EAAap9B,OAAOoJ,cACtCg0B,EAAaxrB,uBACbwrB,EAAap9B,OAAOoJ,cAExB,GARepG,KAQJwK,YAAc4vB,EAAa5vB,UAAW,CAC/C,IAAIgwB,EAAqBJ,EAAapxB,YAClCyxB,SACJ,GAAIL,EAAap9B,OAAOgO,KAAM,CACxBovB,EAAa11B,OAAO9L,GAAG4hC,GAAoBhjC,SAAS4iC,EAAap9B,OAAOiO,uBAC1EmvB,EAAarsB,UAEbqsB,EAAapsB,YAAcosB,EAAan2B,WAAW,GAAGgK,WACtDusB,EAAqBJ,EAAapxB,aAGpC,IAAM0xB,EAAkBN,EAAa11B,OAAO9L,GAAG4hC,GAAoBthC,QAA3C,6BAnBb8G,KAmBoGwK,UAAvF,MAAsG5R,GAAG,GAAGD,QAC9HgiC,EAAkBP,EAAa11B,OAAO9L,GAAG4hC,GAAoBxhC,QAA3C,6BApBbgH,KAoBoGwK,UAAvF,MAAsG5R,GAAG,GAAGD,QACxF8hC,OAAb,IAApBC,EAAkDC,OACzB,IAApBA,EAAkDD,EACzDC,EAAkBH,GAAuBA,EAAqBE,EAAkCF,EAChGG,EAAkBH,EAAqBA,EAAqBE,EAAkCC,EACjFD,OAEtBD,EA3BWz6B,KA2BawK,UAEtB4vB,EAAa3wB,qBAAqBvM,QAAQu9B,GAAkB,IAC1DL,EAAap9B,OAAOwK,eAEpBizB,EADEA,EAAiBD,EACFC,EAAiBx0B,KAAKC,MAAME,EAAgB,GAAK,EAEjDq0B,EAAiBx0B,KAAKC,MAAME,EAAgB,GAAK,EAE3Dq0B,EAAiBD,IAC1BC,EAAiBA,EAAiBr0B,EAAgB,GAEpDg0B,EAAartB,QAAQ0tB,EAAgBF,EAAU,OAAI3/B,IAKvD,IAAIggC,EAAmB,EACjBC,EA7CS76B,KA6CiBhD,OAAOg9B,OAAOK,sBAO9C,GApDer6B,KA+CJhD,OAAOoJ,cAAgB,IA/CnBpG,KA+CgChD,OAAOwK,iBACpDozB,EAhDa56B,KAgDahD,OAAOoJ,eAGnCg0B,EAAa11B,OAAOnN,YAAYsjC,GAC5BT,EAAap9B,OAAOgO,KACtB,IAAK,IAAIjO,EAAI,EAAGA,EAAI69B,EAAkB79B,GAAK,EACzCq9B,EAAan2B,WAAW1K,SAAxB,8BAtDWyG,KAsD0DwK,UAAYzN,GAAjF,MAAwFzF,SAASujC,QAGnG,IAAK,IAAI99B,EAAI,EAAGA,EAAI69B,EAAkB79B,GAAK,EACzCq9B,EAAa11B,OAAO9L,GA1DToH,KA0DmBwK,UAAYzN,GAAGzF,SAASujC,MAwExD13B,IACJ8b,EACAC,EACAE,EACAE,EACAuB,EACA6B,EACA2B,GAhjGA7hB,KAAM,aACNxF,QACEipB,YACEzhB,SAAS,EACT0hB,gBAAgB,EAChBI,QAAQ,EACRD,aAAa,EACbE,YAAa,EACbM,aAAc,cAGlBxkB,OAZiB,WAcfpI,EAAMyD,OADSsC,MAEbimB,YACEzhB,SAAS,EACT2f,OAAQG,EAAWH,OAAOhiB,KAJfnC,MAKXokB,QAASE,EAAWF,QAAQjiB,KALjBnC,MAMX8iB,OAAQwB,EAAWxB,OAAO3gB,KANfnC,MAOX8lB,iBAAkBxB,EAAWwB,iBAAiB3jB,KAPnCnC,MAQXgmB,iBAAkB1B,EAAW0B,iBAAiB7jB,KARnCnC,MASXukB,eAAgBtqB,EAAMa,UAI5B/C,IACEwjB,KADE,WAEevb,KACJhD,OAAOipB,WAAWzhB,SADdxE,KAC8BimB,WAAW9B,UAE1DzE,QALE,WAMe1f,KACJimB,WAAWzhB,SADPxE,KACuBimB,WAAW7B,cAsGrD5hB,KAAM,aACNxF,QACEgf,YACEsL,OAAQ,KACRC,OAAQ,KAERuT,aAAa,EACb5T,cAAe,yBACfmD,YAAa,uBACblD,UAAW,uBAGf9kB,OAbiB,WAefpI,EAAMyD,OADSsC,MAEbgc,YACET,KAAMuL,EAAWvL,KAAKpZ,KAHXnC,MAIXqD,OAAQyjB,EAAWzjB,OAAOlB,KAJfnC,MAKX0f,QAASoH,EAAWpH,QAAQvd,KALjBnC,MAMXqnB,YAAaP,EAAWO,YAAYllB,KANzBnC,MAOXonB,YAAaN,EAAWM,YAAYjlB,KAPzBnC,UAWjBjI,IACEwjB,KADE,WAEevb,KACRgc,WAAWT,OADHvb,KAERgc,WAAW3Y,UAEpB03B,OANE,WAOe/6B,KACRgc,WAAW3Y,UAEpB23B,SAVE,WAWeh7B,KACRgc,WAAW3Y,UAEpBqc,QAdE,WAee1f,KACRgc,WAAW0D,WAEpBmU,MAlBE,SAkBIv5B,GACJ,IADO2gC,EACQj7B,KACqBgc,WAA5BgL,EAFDiU,EAECjU,QAASC,EAFVgU,EAEUhU,SADFjnB,KAGNhD,OAAOgf,WAAW8e,cACrB,EAAA5jC,EAAA6C,GAAEO,EAAEqR,QAAQjT,GAAGuuB,KACf,EAAA/vB,EAAA6C,GAAEO,EAAEqR,QAAQjT,GAAGsuB,KAEfA,GAASA,EAAQvvB,YAPRuI,KAO2BhD,OAAOgf,WAAWqO,aACtDpD,GAASA,EAAQxvB,YARRuI,KAQ2BhD,OAAOgf,WAAWqO,kBAmPhE7nB,KAAM,aACNxF,QACE0qB,YACEzsB,GAAI,KACJ6uB,cAAe,OACfG,WAAW,EACX6Q,aAAa,EACblR,aAAc,KACdI,kBAAmB,KACnBD,eAAgB,KAChBP,aAAc,KACdL,qBAAqB,EACrB7V,KAAM,UACN4U,gBAAgB,EAChBE,mBAAoB,EACpBW,sBAAuB,SAAAmS,GAAA,OAAUA,GACjCjS,oBAAqB,SAAAiS,GAAA,OAAUA,GAC/BrR,YAAa,2BACbvB,kBAAmB,kCACnB6B,cAAe,qBACfrB,aAAc,4BACdE,WAAY,0BACZqB,YAAa,2BACbd,qBAAsB,qCACtBa,yBAA0B,yCAC1BF,eAAgB,8BAChB/C,UAAW,2BAGf9kB,OA9BiB,WAgCfpI,EAAMyD,OADSsC,MAEb0nB,YACEnM,KAAMkM,EAAWlM,KAAKpZ,KAHXnC,MAIXypB,OAAQhC,EAAWgC,OAAOtnB,KAJfnC,MAKXqD,OAAQokB,EAAWpkB,OAAOlB,KALfnC,MAMX0f,QAAS+H,EAAW/H,QAAQvd,KANjBnC,MAOXqoB,mBAAoB,MAI1BtwB,IACEwjB,KADE,WAEevb,KACR0nB,WAAWnM,OADHvb,KAER0nB,WAAW+B,SAFHzpB,KAGR0nB,WAAWrkB,UAEpB83B,kBAPE,WAQen7B,KACJhD,OAAOgO,KADHhL,KAEN0nB,WAAWrkB,cACmB,IAHxBrD,KAGUoI,WAHVpI,KAIN0nB,WAAWrkB,UAGtB+3B,gBAfE,WAgBep7B,KACHhD,OAAOgO,MADJhL,KAEN0nB,WAAWrkB,UAGtBg4B,mBArBE,WAsBer7B,KACJhD,OAAOgO,OADHhL,KAEN0nB,WAAW+B,SAFLzpB,KAGN0nB,WAAWrkB,WAGtBi4B,qBA5BE,WA6Bet7B,KACHhD,OAAOgO,OADJhL,KAEN0nB,WAAW+B,SAFLzpB,KAGN0nB,WAAWrkB,WAGtBqc,QAnCE,WAoCe1f,KACR0nB,WAAWhI,WAEpBmU,MAvCE,SAuCIv5B,GACW0F,KAENhD,OAAO0qB,WAAWzsB,IAFZ+E,KAGHhD,OAAO0qB,WAAWoT,aAHf96B,KAIH0nB,WAAWjkB,IAAI9I,OAAS,KAC9B,EAAAzD,EAAA6C,GAAEO,EAAEqR,QAAQnU,SALHwI,KAKmBhD,OAAO0qB,WAAWmC,cALrC7pB,KAON0nB,WAAWjkB,IAAIhM,YAPTuI,KAO4BhD,OAAO0qB,WAAW2C,iBAmQjE7nB,KAAM,YACNxF,QACEutB,WACEtvB,GAAI,KACJuvB,SAAU,OACVK,MAAM,EACNqB,WAAW,EACXP,eAAe,EACfxE,UAAW,wBACX6E,UAAW,0BAGf3pB,OAbgB,WAedpI,EAAMyD,OADSsC,MAEbuqB,WACEhP,KAAM+O,EAAU/O,KAAKpZ,KAHVnC,MAIX0f,QAAS4K,EAAU5K,QAAQvd,KAJhBnC,MAKXsD,WAAYgnB,EAAUhnB,WAAWnB,KALtBnC,MAMXkM,aAAcoe,EAAUpe,aAAa/J,KAN1BnC,MAOX+I,cAAeuhB,EAAUvhB,cAAc5G,KAP5BnC,MAQX4rB,gBAAiBtB,EAAUsB,gBAAgBzpB,KARhCnC,MASX8rB,iBAAkBxB,EAAUwB,iBAAiB3pB,KATlCnC,MAUXmrB,gBAAiBb,EAAUa,gBAAgBhpB,KAVhCnC,MAWXurB,YAAajB,EAAUiB,YAAYppB,KAXxBnC,MAYXyrB,WAAYnB,EAAUmB,WAAWtpB,KAZtBnC,MAaX0rB,UAAWpB,EAAUoB,UAAUvpB,KAbpBnC,MAcXyT,WAAW,EACX+S,QAAS,KACTgF,YAAa,SAInBzzB,IACEwjB,KADE,WAEevb,KACRuqB,UAAUhP,OADFvb,KAERuqB,UAAUjnB,aAFFtD,KAGRuqB,UAAUre,gBAEnB7I,OAPE,WAQerD,KACRuqB,UAAUjnB,cAEnBic,OAXE,WAYevf,KACRuqB,UAAUjnB,cAEnB6c,eAfE,WAgBengB,KACRuqB,UAAUjnB,cAEnB4I,aAnBE,WAoBelM,KACRuqB,UAAUre,gBAEnBnD,cAvBE,SAuBYyD,GACGxM,KACRuqB,UAAUxhB,cAAcyD,IAEjCkT,QA3BE,WA4Be1f,KACRuqB,UAAU7K,cAuFrBld,KAAM,WACNxF,QACEwvB,UACEhoB,SAAS,IAGbnC,OAPe,WASbpI,EAAMyD,OADSsC,MAEbwsB,UACEJ,aAAcD,EAASC,aAAajqB,KAHzBnC,MAIXkM,aAAcigB,EAASjgB,aAAa/J,KAJzBnC,MAKX+I,cAAeojB,EAASpjB,cAAc5G,KAL3BnC,UASjBjI,IACE4qB,WADE,WAEe3iB,KACHhD,OAAOwvB,SAAShoB,UADbxE,KAERhD,OAAOwL,qBAAsB,EAFrBxI,KAGRwa,eAAehS,qBAAsB,IAE9C+S,KAPE,WAQevb,KACHhD,OAAOwvB,UADJxsB,KAERwsB,SAAStgB,gBAElBA,aAZE,WAaelM,KACHhD,OAAOwvB,UADJxsB,KAERwsB,SAAStgB,gBAElBnD,cAjBE,SAiBYyD,GACGxM,KACHhD,OAAOwvB,UADJxsB,KAERwsB,SAASzjB,cAAcyD,OAkalChK,KAAM,OACNxF,QACEowB,MACE5oB,SAAS,EACTopB,SAAU,EACVI,SAAU,EACVuB,QAAQ,EACR5B,eAAgB,wBAChB+B,iBAAkB,wBAGtBrtB,OAZW,WAaT,IAAM4K,EAASjN,KACTotB,GACJ5oB,SAAS,EACT4kB,MAAO,EACPmD,aAAc,EACdsB,WAAW,EACXR,SACE9K,cAAU3nB,EACVwzB,gBAAYxzB,EACZyzB,iBAAazzB,EACb6yB,cAAU7yB,EACV8yB,kBAAc9yB,EACdgzB,SAAU,GAEZ9Q,OACErJ,eAAW7Y,EACX8Y,aAAS9Y,EACToZ,cAAUpZ,EACVuZ,cAAUvZ,EACV4zB,UAAM5zB,EACN8zB,UAAM9zB,EACN6zB,UAAM7zB,EACN+zB,UAAM/zB,EACN2I,WAAO3I,EACP4I,YAAQ5I,EACRyZ,YAAQzZ,EACR0Z,YAAQ1Z,EACRuzB,gBACAS,mBAEF9W,UACE1L,OAAGxR,EACHyR,OAAGzR,EACHi0B,mBAAej0B,EACfk0B,mBAAel0B,EACfm0B,cAAUn0B,IAGb,+HAAgIe,MAAM,KAAK9B,QAAQ,SAACC,GACnJszB,EAAKtzB,GAAc+yB,EAAK/yB,GAAYqI,KAAK8K,KAE3ChT,EAAMyD,OAAOuP,GACXmgB,UAGJr1B,IACEwjB,KADE,WAEevb,KACJhD,OAAOowB,KAAK5oB,SADRxE,KAENotB,KAAKjJ,UAGhBzE,QAPE,WAQe1f,KACRotB,KAAKhJ,WAEdmX,WAXE,SAWSjhC,GACM0F,KACHotB,KAAK5oB,SADFxE,KAERotB,KAAKna,aAAa3Y,IAE3BkhC,SAhBE,SAgBOlhC,GACQ0F,KACHotB,KAAK5oB,SADFxE,KAERotB,KAAKlW,WAAW5c,IAEzBmhC,UArBE,SAqBQnhC,GACO0F,KACJhD,OAAOowB,KAAK5oB,SADRxE,KAC0BotB,KAAK5oB,SAD/BxE,KACiDhD,OAAOowB,KAAKmC,QAD7DvvB,KAENotB,KAAKmC,OAAOj1B,IAGvBpC,cA3BE,WA4Be8H,KACJotB,KAAK5oB,SADDxE,KACmBhD,OAAOowB,KAAK5oB,SAD/BxE,KAENotB,KAAKkC,sBA0IlB9sB,KAAM,OACNxF,QACEglB,MACExd,SAAS,EACT6sB,cAAc,EACdC,mBAAoB,EACpBoK,uBAAuB,EAEvBjL,aAAc,cACdE,aAAc,sBACdD,YAAa,qBACbI,eAAgB,0BAGpBzuB,OAfW,WAiBTpI,EAAMyD,OADSsC,MAEbgiB,MACEmP,oBAAoB,EACpBlP,KAAMoO,EAAKpO,KAAK9f,KAJLnC,MAKXswB,YAAaD,EAAKC,YAAYnuB,KALnBnC,UASjBjI,IACE4qB,WADE,WAEe3iB,KACJhD,OAAOglB,KAAKxd,SADRxE,KAC0BhD,OAAOye,gBADjCzb,KAENhD,OAAOye,eAAgB,IAGlCF,KAPE,WAQevb,KACJhD,OAAOglB,KAAKxd,UADRxE,KAC2BhD,OAAOgO,MAAuC,IADzEhL,KACiDhD,OAAOoQ,cADxDpN,KAENgiB,KAAKC,QAGhB0Z,OAbE,WAce37B,KACJhD,OAAO2V,WADH3S,KACuBhD,OAAO2b,gBAD9B3Y,KAENgiB,KAAKC,QAGhB1C,OAnBE,WAoBevf,KACJhD,OAAOglB,KAAKxd,SADRxE,KAENgiB,KAAKC,QAGhB2Z,kBAzBE,WA0Be57B,KACJhD,OAAOglB,KAAKxd,SADRxE,KAENgiB,KAAKC,QAGhBxV,gBA/BE,WAgCezM,KACJhD,OAAOglB,KAAKxd,UADRxE,KAEFhD,OAAOglB,KAAK0Z,wBAFV17B,KAE4ChD,OAAOglB,KAAK0Z,wBAFxD17B,KAEyFgiB,KAAKmP,qBAF9FnxB,KAGJgiB,KAAKC,QAIlB/pB,cAvCE,WAwCe8H,KACJhD,OAAOglB,KAAKxd,UADRxE,KAC2BhD,OAAOglB,KAAK0Z,uBADvC17B,KAENgiB,KAAKC,WAsIlBzf,KAAM,aACNxF,QACEo1B,YACEG,aAAS33B,EACTg4B,SAAS,EACTD,GAAI,UAGRtwB,OATiB,WAWfpI,EAAMyD,OADSsC,MAEboyB,YACEG,QAHWvyB,KAGKhD,OAAOo1B,WAAWG,QAClCL,uBAAwBR,EAAWQ,uBAAuB/vB,KAJ/CnC,MAKXkM,aAAcwlB,EAAWxlB,aAAa/J,KAL3BnC,MAMX+I,cAAe2oB,EAAW3oB,cAAc5G,KAN7BnC,UAUjBjI,IACEsL,OADE,WAEerD,KACHoyB,WAAWG,SADRvyB,KAEJoyB,WAAWC,SAFPryB,KAGNoyB,WAAWC,YAASz3B,SAHdoF,KAICoyB,WAAWC,SAG7B9S,OATE,WAUevf,KACHoyB,WAAWG,SADRvyB,KAEJoyB,WAAWC,SAFPryB,KAGNoyB,WAAWC,YAASz3B,SAHdoF,KAICoyB,WAAWC,SAG7BlS,eAjBE,WAkBengB,KACHoyB,WAAWG,SADRvyB,KAEJoyB,WAAWC,SAFPryB,KAGNoyB,WAAWC,YAASz3B,SAHdoF,KAICoyB,WAAWC,SAG7BnmB,aAzBE,SAyBW5C,EAAW6C,GACPnM,KACHoyB,WAAWG,SADRvyB,KAERoyB,WAAWlmB,aAAa5C,EAAW6C,IAE5CpD,cA9BE,SA8BYyD,EAAUL,GACPnM,KACHoyB,WAAWG,SADRvyB,KAERoyB,WAAWrpB,cAAcyD,EAAUL,OA0J9C3J,KAAM,OACNxF,QACE81B,MACEtuB,SAAS,EACTq3B,kBAAmB,sBACnBjI,iBAAkB,iBAClBF,iBAAkB,aAClBC,kBAAmB,0BACnBF,iBAAkB,yBAClBa,wBAAyB,0BAG7BjyB,OAbS,WAcP,IAAM4K,EAASjN,KACf/F,EAAMyD,OAAOuP,GACX6lB,MACEkB,YAAY,EAAA98B,EAAA6C,GAAA,gBAAkBkT,EAAOjQ,OAAO81B,KAAK+I,kBAArC,yDAGhBliC,OAAOC,KAAKk5B,GAAMj5B,QAAQ,SAACC,GACzBmT,EAAO6lB,KAAKh5B,GAAcg5B,EAAKh5B,GAAYqI,KAAK8K,MAGpDlV,IACEwjB,KADE,WAEevb,KACHhD,OAAO81B,KAAKtuB,UADTxE,KAER8yB,KAAKvX,OAFGvb,KAGR8yB,KAAKmB,qBAEd8G,OAPE,WAQe/6B,KACHhD,OAAO81B,KAAKtuB,SADTxE,KAER8yB,KAAKmB,oBAEd+G,SAZE,WAaeh7B,KACHhD,OAAO81B,KAAKtuB,SADTxE,KAER8yB,KAAKmB,oBAEd6H,iBAjBE,WAkBe97B,KACHhD,OAAO81B,KAAKtuB,SADTxE,KAER8yB,KAAKqB,oBAEdzU,QAtBE,WAuBe1f,KACHhD,OAAO81B,KAAKtuB,SADTxE,KAER8yB,KAAKpT,cAqFhBld,KAAM,UACNxF,QACEw3B,SACEhwB,SAAS,EACTuwB,cAAc,EACd16B,IAAK,WAGTgI,OATc,WAWZpI,EAAMyD,OADSsC,MAEbw0B,SACEjZ,KAAMgZ,EAAQhZ,KAAKpZ,KAHRnC,MAIXo1B,WAAYb,EAAQa,WAAWjzB,KAJpBnC,MAKXg1B,mBAAoBT,EAAQS,mBAAmB7yB,KALpCnC,MAMX80B,cAAeP,EAAQO,cAAc3yB,KAN1BnC,MAOX0f,QAAS6U,EAAQ7U,QAAQvd,KAPdnC,UAWjBjI,IACEwjB,KADE,WAEevb,KACJhD,OAAOw3B,QAAQhwB,SADXxE,KAENw0B,QAAQjZ,QAGnBmE,QAPE,WAQe1f,KACJhD,OAAOw3B,QAAQhwB,SADXxE,KAENw0B,QAAQ9U,WAGnBxnB,cAbE,WAce8H,KACJw0B,QAAQnnB,aADJrN,KAENw0B,QAAQY,WAFFp1B,KAEoBhD,OAAOw3B,QAAQn6B,IAFnC2F,KAE+CgJ,iBAwDlExG,KAAM,kBACNxF,QACE03B,gBACElwB,SAAS,EACTuwB,cAAc,EACdgB,YAAY,IAGhB1zB,OATqB,WAWnBpI,EAAMyD,OADSsC,MAEb00B,gBACErnB,aAAa,EACbkO,KAAMma,EAAena,KAAKpZ,KAJfnC,MAKX0f,QAASgW,EAAehW,QAAQvd,KALrBnC,MAMX81B,QAASJ,EAAeI,QAAQ3zB,KANrBnC,MAOX21B,YAAaD,EAAeC,YAAYxzB,KAP7BnC,UAWjBjI,IACEwjB,KADE,WAEevb,KACJhD,OAAO03B,eAAelwB,SADlBxE,KAEN00B,eAAenZ,QAG1BmE,QAPE,WAQe1f,KACJhD,OAAO03B,eAAelwB,SADlBxE,KAEN00B,eAAehV,WAG1BxnB,cAbE,WAce8H,KACJ00B,eAAernB,aADXrN,KAEN00B,eAAeoB,cAqF5BtzB,KAAM,WACNxF,QACEypB,UACEjiB,SAAS,EACT/J,MAAO,IACP+7B,mBAAmB,EACnBuF,sBAAsB,EACtB3F,iBAAiB,EACjBD,kBAAkB,IAGtB9zB,OAZe,WAab,IAAM4K,EAASjN,KACf/F,EAAMyD,OAAOuP,GACXwZ,UACE4P,SAAS,EACTE,QAAQ,EACRN,IAAKD,EAASC,IAAI9zB,KAAK8K,GACvB0M,MAAOqc,EAASrc,MAAMxX,KAAK8K,GAC3B0Z,KAAMqP,EAASrP,KAAKxkB,KAAK8K,GACzBqpB,MAAON,EAASM,MAAMn0B,KAAK8K,GAC3BqiB,gBAPQ,SAOQh1B,GACT2S,IAAUA,EAAOQ,WAAcR,EAAOhJ,YACvC3J,EAAEqR,SAAW3L,OACjBiN,EAAOhJ,WAAW,GAAGyJ,oBAAoB,gBAAiBT,EAAOwZ,SAAS6I,iBAC1EriB,EAAOhJ,WAAW,GAAGyJ,oBAAoB,sBAAuBT,EAAOwZ,SAAS6I,iBAChFriB,EAAOwZ,SAAS8P,QAAS,EACpBtpB,EAAOwZ,SAAS4P,QAGnBppB,EAAOwZ,SAASwP,MAFhBhpB,EAAOwZ,SAASE,aAQ1B5uB,IACEwjB,KADE,WAEevb,KACJhD,OAAOypB,SAASjiB,SADZxE,KAENymB,SAAS9M,SAGpBqiB,sBAPE,SAOoBpzB,EAAOoE,GACZhN,KACJymB,SAAS4P,UACdrpB,IAFShN,KAEWhD,OAAOypB,SAASsV,qBAF3B/7B,KAGJymB,SAAS6P,MAAM1tB,GAHX5I,KAKJymB,SAASE,SAItBsV,gBAjBE,WAkBej8B,KACJymB,SAAS4P,UADLr2B,KAEFhD,OAAOypB,SAASsV,qBAFd/7B,KAGJymB,SAASE,OAHL3mB,KAKJymB,SAAS6P,UAItB5W,QA3BE,WA4Be1f,KACJymB,SAAS4P,SADLr2B,KAENymB,SAASE,WAmDtBnkB,KAAM,cACNxF,QACE65B,YACEC,WAAW,IAGfz0B,OAPe,WASbpI,EAAMyD,OADSsC,MAEb62B,YACE3qB,aAAcuqB,EAAKvqB,aAAa/J,KAHrBnC,MAIX+I,cAAe0tB,EAAK1tB,cAAc5G,KAJvBnC,UAQjBjI,IACE4qB,WADE,WAGA,GAA6B,SADd3iB,KACJhD,OAAO4K,OAAlB,CADe5H,KAERmc,WAAW1a,KAFHzB,KAEkBhD,OAAO2e,uBAAxC,QACA,IAAMiH,GACJxc,cAAe,EACfJ,gBAAiB,EACjB0B,eAAgB,EAChBc,qBAAqB,EACrBjD,aAAc,EACdyG,kBAAkB,GAEpB/R,EAAMyD,OAXSsC,KAWKhD,OAAQ4lB,GAC5B3oB,EAAMyD,OAZSsC,KAYKwa,eAAgBoI,KAEtC1W,aAhBE,WAkB6B,SADdlM,KACJhD,OAAO4K,QADH5H,KAER62B,WAAW3qB,gBAEpBnD,cArBE,SAqBYyD,GAEiB,SADdxM,KACJhD,OAAO4K,QADH5H,KAER62B,WAAW9tB,cAAcyD,OAoIpChK,KAAM,cACNxF,QACEo6B,YACEQ,cAAc,EACdL,QAAQ,EACRY,aAAc,GACdC,YAAa,MAGjB/1B,OAVe,WAYbpI,EAAMyD,OADSsC,MAEbo3B,YACElrB,aAAc+qB,EAAK/qB,aAAa/J,KAHrBnC,MAIX+I,cAAekuB,EAAKluB,cAAc5G,KAJvBnC,UAQjBjI,IACE4qB,WADE,WAGA,GAA6B,SADd3iB,KACJhD,OAAO4K,OAAlB,CADe5H,KAERmc,WAAW1a,KAFHzB,KAEkBhD,OAAO2e,uBAAxC,QAFe3b,KAGRmc,WAAW1a,KAHHzB,KAGkBhD,OAAO2e,uBAAxC,MACA,IAAMiH,GACJxc,cAAe,EACfJ,gBAAiB,EACjB0B,eAAgB,EAChBc,qBAAqB,EACrBoO,gBAAiB,EACjBrR,aAAc,EACdiC,gBAAgB,EAChBwE,kBAAkB,GAEpB/R,EAAMyD,OAdSsC,KAcKhD,OAAQ4lB,GAC5B3oB,EAAMyD,OAfSsC,KAeKwa,eAAgBoI,KAEtC1W,aAnBE,WAqB6B,SADdlM,KACJhD,OAAO4K,QADH5H,KAERo3B,WAAWlrB,gBAEpBnD,cAxBE,SAwBYyD,GAEiB,SADdxM,KACJhD,OAAO4K,QADH5H,KAERo3B,WAAWruB,cAAcyD,OA6EpChK,KAAM,cACNxF,QACE47B,YACEhB,cAAc,EACdiB,eAAe,IAGnBx2B,OARe,WAUbpI,EAAMyD,OADSsC,MAEb44B,YACE1sB,aAAcysB,EAAKzsB,aAAa/J,KAHrBnC,MAIX+I,cAAe4vB,EAAK5vB,cAAc5G,KAJvBnC,UAQjBjI,IACE4qB,WADE,WAGA,GAA6B,SADd3iB,KACJhD,OAAO4K,OAAlB,CADe5H,KAERmc,WAAW1a,KAFHzB,KAEkBhD,OAAO2e,uBAAxC,QAFe3b,KAGRmc,WAAW1a,KAHHzB,KAGkBhD,OAAO2e,uBAAxC,MACA,IAAMiH,GACJxc,cAAe,EACfJ,gBAAiB,EACjB0B,eAAgB,EAChBc,qBAAqB,EACrBjD,aAAc,EACdyG,kBAAkB,GAEpB/R,EAAMyD,OAZSsC,KAYKhD,OAAQ4lB,GAC5B3oB,EAAMyD,OAbSsC,KAaKwa,eAAgBoI,KAEtC1W,aAjBE,WAmB6B,SADdlM,KACJhD,OAAO4K,QADH5H,KAER44B,WAAW1sB,gBAEpBnD,cAtBE,SAsBYyD,GAEiB,SADdxM,KACJhD,OAAO4K,QADH5H,KAER44B,WAAW7vB,cAAcyD,OA4EpChK,KAAM,mBACNxF,QACEk8B,iBACEE,OAAQ,GACRK,QAAS,EACTJ,MAAO,IACPE,SAAU,EACV3B,cAAc,IAGlBv1B,OAXoB,WAalBpI,EAAMyD,OADSsC,MAEbk5B,iBACEhtB,aAAc+sB,GAAU/sB,aAAa/J,KAH1BnC,MAIX+I,cAAekwB,GAAUlwB,cAAc5G,KAJ5BnC,UAQjBjI,IACE4qB,WADE,WAG6B,cADd3iB,KACJhD,OAAO4K,SADH5H,KAGRmc,WAAW1a,KAHHzB,KAGkBhD,OAAO2e,uBAAxC,aAHe3b,KAIRmc,WAAW1a,KAJHzB,KAIkBhD,OAAO2e,uBAAxC,MAJe3b,KAMRhD,OAAOwL,qBAAsB,EANrBxI,KAORwa,eAAehS,qBAAsB,IAE9C0D,aAXE,WAa6B,cADdlM,KACJhD,OAAO4K,QADH5H,KAERk5B,gBAAgBhtB,gBAEzBnD,cAhBE,SAgBYyD,GAEiB,cADdxM,KACJhD,OAAO4K,QADH5H,KAERk5B,gBAAgBnwB,cAAcyD,OA+HzChK,KAAM,SACNxF,QACEg9B,QACE/sB,OAAQ,KACRotB,sBAAuB,4BACvBH,qBAAsB,4BAG1B73B,OATa,WAWXpI,EAAMyD,OADSsC,MAEbg6B,QACE/sB,OAAQ,KACRsO,KAAMue,GAAOve,KAAKpZ,KAJPnC,MAKXqD,OAAQy2B,GAAOz2B,OAAOlB,KALXnC,MAMXm6B,aAAcL,GAAOK,aAAah4B,KANvBnC,UAUjBjI,IACE4qB,WADE,WAEA,IACQqX,EADOh6B,KACWhD,OAAlBg9B,OACHA,GAAWA,EAAO/sB,SAFRjN,KAGRg6B,OAAOze,OAHCvb,KAIRg6B,OAAO32B,QAAO,KAEvB64B,YARE,WASel8B,KACHg6B,OAAO/sB,QADJjN,KAERg6B,OAAO32B,UAEhBA,OAbE,WAcerD,KACHg6B,OAAO/sB,QADJjN,KAERg6B,OAAO32B,UAEhBkc,OAlBE,WAmBevf,KACHg6B,OAAO/sB,QADJjN,KAERg6B,OAAO32B,UAEhB8c,eAvBE,WAwBengB,KACHg6B,OAAO/sB,QADJjN,KAERg6B,OAAO32B,UAEhB0F,cA5BE,SA4BYyD,GACZ,IACM4tB,EADSp6B,KACag6B,OAAO/sB,OAC9BmtB,GACLA,EAAarxB,cAAcyD,IAE7B2vB,cAlCE,WAmCA,IACM/B,EADSp6B,KACag6B,OAAO/sB,OAC9BmtB,GAFUp6B,KAGJg6B,OAAOC,eAAiBG,GACjCA,EAAa1a,mBAmCK,IAAflC,EAAOpa,MAChBoa,EAAOpa,IAAMoa,EAAOlb,MAAMc,IAC1Boa,EAAOza,cAAgBya,EAAOlb,MAAMS,eAGtCya,EAAOpa,IAAID,cAEIqa,qFC5zNf,IAAI4e,EAA2B,oBAAb99B,UAChB+9B,QACAz8B,iBAAkB,aAClB8N,oBAAqB,aACrB2H,eACEC,KAAM,aACNgO,SAAU,IAEZpR,cAAe,WACb,OAAO,MAEToqB,iBAAkB,WAChB,UAEFC,eAAgB,WACd,OAAO,MAETC,YAAa,WACX,OACEC,UAAW,eAGfl+B,cAAe,WACb,OACEhF,YACAmjC,cACAz9B,SACAylB,aAAc,aACdiY,qBAAsB,WACpB,YAIN9/B,UAAYg5B,KAAM,KAChBv3B,SAEAs+B,EAAyB,oBAAXrhC,QAChB+C,SAAU89B,EACVx9B,WACEmS,UAAW,IAEblU,YACA23B,WACAqI,YAAa,WACX,OAAO78B,MAETJ,iBAAkB,aAClB8N,oBAAqB,aACrBlS,iBAAkB,WAChB,OACEY,iBAAkB,WAChB,MAAO,MAIb6gB,MAAO,aACPliB,KAAM,aACN4Z,UACA9Z,WAAY,aACZ0c,aAAc,cACZhc,SAEYA,OAAPqhC,IAAsBt+B,SAAP89B,u6BC5DxB,IAAAhlC,EAAAD,EAAA,SAEM2lC,EACJ,SAAAA,EAAYC,gGAAKh9B,CAAAC,KAAA88B,GAGf,IAFA,IAES//B,EAAI,EAAGA,EAAIggC,EAAIpiC,OAAQoC,GAAK,EAFxBiD,KAGNjD,GAAKggC,EAAIhgC,GAIhB,OAPaiD,KAKRrF,OAASoiC,EAAIpiC,OAEXqF,MAIX,SAASjG,EAAEijC,EAAU77B,GACnB,IAAM47B,KACFhgC,EAAI,EACR,GAAIigC,IAAa77B,GACX67B,aAAoBF,EACtB,OAAOE,EAGX,GAAIA,EAEF,GAAwB,iBAAbA,EAAuB,CAChC,IAAIC,SACAC,SACE1kC,EAAOwkC,EAASG,OACtB,GAAI3kC,EAAK0E,QAAQ,MAAQ,GAAK1E,EAAK0E,QAAQ,MAAQ,EAAG,CACpD,IAAIkgC,EAAW,MAQf,IAP4B,IAAxB5kC,EAAK0E,QAAQ,SAAckgC,EAAW,MACd,IAAxB5kC,EAAK0E,QAAQ,SAAckgC,EAAW,SACd,IAAxB5kC,EAAK0E,QAAQ,QAAwC,IAAxB1E,EAAK0E,QAAQ,SAAckgC,EAAW,MACxC,IAA3B5kC,EAAK0E,QAAQ,YAAiBkgC,EAAW,SACb,IAA5B5kC,EAAK0E,QAAQ,aAAkBkgC,EAAW,WAC9CF,EAAa5+B,WAASC,cAAc6+B,IACzBC,UAAY7kC,EAClBuE,EAAI,EAAGA,EAAImgC,EAAWR,WAAW/hC,OAAQoC,GAAK,EACjDggC,EAAIt7B,KAAKy7B,EAAWR,WAAW3/B,SAUjC,IAFEkgC,EALG97B,GAA2B,MAAhB67B,EAAS,IAAeA,EAASrrB,MAAM,aAK9CxQ,GAAW7C,YAAUg+B,iBAAiBU,EAASG,SAH/C7+B,WAASi+B,eAAeS,EAASG,OAAOxhC,MAAM,KAAK,KAKvDoB,EAAI,EAAGA,EAAIkgC,EAAItiC,OAAQoC,GAAK,EAC3BkgC,EAAIlgC,IAAIggC,EAAIt7B,KAAKw7B,EAAIlgC,SAGxB,GAAIigC,EAASM,UAAYN,IAAazhC,UAAUyhC,IAAa1+B,WAElEy+B,EAAIt7B,KAAKu7B,QACJ,GAAIA,EAASriC,OAAS,GAAKqiC,EAAS,GAAGM,SAE5C,IAAKvgC,EAAI,EAAGA,EAAIigC,EAASriC,OAAQoC,GAAK,EACpCggC,EAAIt7B,KAAKu7B,EAASjgC,IAIxB,OAAO,IAAI+/B,EAAKC,GAOlB,SAASQ,EAAOR,GAEd,IADA,IAAMS,KACGzgC,EAAI,EAAGA,EAAIggC,EAAIpiC,OAAQoC,GAAK,GACE,IAAjCygC,EAAYtgC,QAAQ6/B,EAAIhgC,KAAYygC,EAAY/7B,KAAKs7B,EAAIhgC,IAE/D,OAAOygC,EAET,SAASC,EAAYC,GACnB,OAAOA,EAAO5rB,cAAchW,QAAQ,QAAS,SAAC6V,EAAOgsB,GAAR,OAAmBA,EAAOC,gBAGzE,SAASxd,EAAsB5lB,GAC7B,OAAIe,SAAO6kB,sBAA8B7kB,SAAO6kB,sBAAsB5lB,GAC7De,SAAOsiC,4BAAoCtiC,SAAOsiC,4BAA4BrjC,GAChFe,SAAOV,WAAWL,EAAU,IAAO,IAlB5CT,EAAEC,GAAK8iC,EAAKv6B,UACZxI,EAAEuI,MAAQw6B,EACV/iC,EAAE+iC,KAAOA,EAwpCT,IAAMgB,EAAa,gBAAiBniC,MAAM,KAC1C,SAASoiC,EAAcv7B,GAAe,QAAAw7B,EAAAtjC,UAAAC,OAANgG,EAAMC,MAAAo9B,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANt9B,EAAMs9B,EAAA,GAAAvjC,UAAAujC,GACpC,QAAuB,IAAZt9B,EAAK,GAAoB,CAClC,IAAK,IAAI5D,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EAChC+gC,EAAU5gC,QAAQsF,GAAQ,IACxBA,KAAQxC,KAAKjD,GAAIiD,KAAKjD,GAAGyF,KAE3BzI,EAAEiG,KAAKjD,IAAI9E,QAAQuK,IAIzB,OAAOxC,KAET,OAAOA,KAAKjI,GAAL+I,MAAAd,MAAQwC,GAARU,OAAiBvC,MAsEjB5G,MAAGzC,SAltCZ,SAAkB4mC,GAChB,QAAyB,IAAdA,EACT,OAAOl+B,KAGT,IADA,IAAMic,EAAUiiB,EAAUviC,MAAM,KACvBoB,EAAI,EAAGA,EAAIkf,EAAQthB,OAAQoC,GAAK,EACvC,IAAK,IAAI6b,EAAI,EAAGA,EAAI5Y,KAAKrF,OAAQie,GAAK,OACb,IAAZ5Y,KAAK4Y,SAAmD,IAAtB5Y,KAAK4Y,GAAGulB,WAA2Bn+B,KAAK4Y,GAAGulB,UAAU1kC,IAAIwiB,EAAQlf,IAGlH,OAAOiD,QAwsCazI,YAtsCtB,SAAqB2mC,GAEnB,IADA,IAAMjiB,EAAUiiB,EAAUviC,MAAM,KACvBoB,EAAI,EAAGA,EAAIkf,EAAQthB,OAAQoC,GAAK,EACvC,IAAK,IAAI6b,EAAI,EAAGA,EAAI5Y,KAAKrF,OAAQie,GAAK,OACb,IAAZ5Y,KAAK4Y,SAAmD,IAAtB5Y,KAAK4Y,GAAGulB,WAA2Bn+B,KAAK4Y,GAAGulB,UAAU3kC,OAAOyiB,EAAQlf,IAGrH,OAAOiD,QA+rC0BxI,SA7rCnC,SAAkB0mC,GAChB,QAAKl+B,KAAK,IACHA,KAAK,GAAGm+B,UAAUC,SAASF,MA2rCSzmC,YAzrC7C,SAAqBymC,GAEnB,IADA,IAAMjiB,EAAUiiB,EAAUviC,MAAM,KACvBoB,EAAI,EAAGA,EAAIkf,EAAQthB,OAAQoC,GAAK,EACvC,IAAK,IAAI6b,EAAI,EAAGA,EAAI5Y,KAAKrF,OAAQie,GAAK,OACb,IAAZ5Y,KAAK4Y,SAAmD,IAAtB5Y,KAAK4Y,GAAGulB,WAA2Bn+B,KAAK4Y,GAAGulB,UAAU5O,OAAOtT,EAAQlf,IAGrH,OAAOiD,QAkrCiDtI,KAhrC1D,SAAc2mC,EAAOxJ,GACnB,GAAyB,IAArBn6B,UAAUC,QAAiC,iBAAV0jC,EAEnC,OAAIr+B,KAAK,GAAWA,KAAK,GAAGoS,aAAaisB,QACzC,EAIF,IAAK,IAAIthC,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EACpC,GAAyB,IAArBrC,UAAUC,OAEZqF,KAAKjD,GAAG2nB,aAAa2Z,EAAOxJ,QAI5B,IAAK,IAAMyJ,KAAYD,EACrBr+B,KAAKjD,GAAGuhC,GAAYD,EAAMC,GAC1Bt+B,KAAKjD,GAAG2nB,aAAa4Z,EAAUD,EAAMC,IAI3C,OAAOt+B,QA2pCuDrI,WAxpChE,SAAoBD,GAClB,IAAK,IAAIqF,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EACpCiD,KAAKjD,GAAGwhC,gBAAgB7mC,GAE1B,OAAOsI,QAopCmEw+B,KAjpC5E,SAAcC,EAAO5J,GACnB,GAAyB,IAArBn6B,UAAUC,QAAiC,iBAAV8jC,EAG9B,CAEL,IAAK,IAAI1hC,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EACpC,GAAyB,IAArBrC,UAAUC,OAEZqF,KAAKjD,GAAG0hC,GAAS5J,OAIjB,IAAK,IAAM6J,KAAYD,EACrBz+B,KAAKjD,GAAG2hC,GAAYD,EAAMC,GAIhC,OAAO1+B,KAfP,GAAIA,KAAK,GAAI,OAAOA,KAAK,GAAGy+B,MA8oCkD7mC,KA5nClF,SAAcyC,EAAKw6B,GACjB,IAAI55B,SACJ,QAAqB,IAAV45B,EAAX,CAkBA,IAAK,IAAI93B,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,GACpC9B,EAAK+E,KAAKjD,IACF4hC,yBAAwB1jC,EAAG0jC,2BACnC1jC,EAAG0jC,uBAAuBtkC,GAAOw6B,EAEnC,OAAO70B,KApBL,GAFA/E,EAAK+E,KAAK,GAEF,CACN,GAAI/E,EAAG0jC,wBAA2BtkC,KAAOY,EAAG0jC,uBAC1C,OAAO1jC,EAAG0jC,uBAAuBtkC,GAGnC,IAAMukC,EAAU3jC,EAAGmX,aAAH,QAAwB/X,GACxC,OAAIukC,QAGJ,MA8mCkFC,WAjmCxF,SAAoBxkC,GAClB,IAAK,IAAI0C,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EAAG,CACvC,IAAM9B,EAAK+E,KAAKjD,GACZ9B,EAAG0jC,wBAA0B1jC,EAAG0jC,uBAAuBtkC,KACzDY,EAAG0jC,uBAAuBtkC,GAAO,YAC1BY,EAAG0jC,uBAAuBtkC,QA4lC6DykC,QAxlCpG,WACE,IAAM7jC,EAAK+E,KAAK,GAChB,GAAK/E,EAAL,CACA,IAAM6jC,KACN,GAAI7jC,EAAG6jC,QAEL,IAAK,IAAMF,KAAW3jC,EAAG6jC,QACvBA,EAAQF,GAAW3jC,EAAG6jC,QAAQF,QAGhC,IAAK,IAAI7hC,EAAI,EAAGA,EAAI9B,EAAGqlB,WAAW3lB,OAAQoC,GAAK,EAAG,CAEhD,IAAMrF,EAAOuD,EAAGqlB,WAAWvjB,GACvBrF,EAAK8K,KAAKtF,QAAQ,UAAY,IAChC4hC,EAAQrB,EAAY/lC,EAAK8K,KAAK7G,MAAM,SAAS,KAAOjE,EAAKm9B,OAK/D,IAAK,IAAMx6B,KAAOykC,EACK,UAAjBA,EAAQzkC,GAAkBykC,EAAQzkC,IAAO,EACnB,SAAjBykC,EAAQzkC,GAAiBykC,EAAQzkC,IAAO,EACxCkC,WAAWuiC,EAAQzkC,MAAyB,EAAfykC,EAAQzkC,KAAUykC,EAAQzkC,IAAQ,GAE1E,OAAOykC,MAgkCoG1wB,IA9jC7G,SAAaymB,GAEX,QAAqB,IAAVA,EAAX,CAcA,IAAK,IAAI93B,EAAI,EAAGA,EAfJiD,KAeYrF,OAAQoC,GAAK,EAAG,CACtC,IAAM9B,EAhBI+E,KAgBKjD,GACf,GAAI6D,MAAMU,QAAQuzB,IAAU55B,EAAG8jC,UAA0C,WAA9B9jC,EAAGqoB,SAASxR,cACrD,IAAK,IAAI8G,EAAI,EAAGA,EAAI3d,EAAG+kB,QAAQrlB,OAAQie,GAAK,EAC1C3d,EAAG+kB,QAAQpH,GAAGomB,SAAWnK,EAAM33B,QAAQjC,EAAG+kB,QAAQpH,GAAGic,QAAU,OAGjE55B,EAAG45B,MAAQA,EAGf,OAzBY70B,KAEV,GAFUA,KAEF,GAAI,CACV,GAHQA,KAGA,GAAG++B,UAA8C,WAHjD/+B,KAGmB,GAAGsjB,SAASxR,cAA4B,CAEjE,IADA,IAAMmtB,KACGliC,EAAI,EAAGA,EALViD,KAKkB,GAAGk/B,gBAAgBvkC,OAAQoC,GAAK,EACtDkiC,EAAOx9B,KANHzB,KAMY,GAAGk/B,gBAAgBniC,GAAG83B,OAExC,OAAOoK,EAET,OAVQj/B,KAUG,GAAG60B,UAmjC8Fh9B,UAhiClH,SAAmBA,GACjB,IAAK,IAAIkF,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EAAG,CACvC,IAAMoiC,EAAUn/B,KAAKjD,GAAGkC,MACxBkgC,EAAQzjC,gBAAkB7D,EAC1BsnC,EAAQtnC,UAAYA,EAEtB,OAAOmI,QA0hCoHlI,WAxhC7H,SAAoB0U,GACM,iBAAbA,IACTA,GAAA,MAEF,IAAK,IAAIzP,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EAAG,CACvC,IAAMoiC,EAAUn/B,KAAKjD,GAAGkC,MACxBkgC,EAAQC,yBAA2B5yB,EACnC2yB,EAAQE,mBAAqB7yB,EAE/B,OAAOxM,QA+gCgIjI,GA5gCzI,WAAqB,QAAA2I,EAAAhG,UAAAC,OAANgG,EAAMC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAANF,EAAME,GAAAnG,UAAAmG,GAAA,IACdy+B,EAAgD3+B,EADlC,GACH4+B,EAAqC5+B,EADlC,GACa6+B,EAAqB7+B,EADlC,GACuB+Y,EAAW/Y,EADlC,GAQnB,SAAS8+B,EAAgBnlC,GACvB,IAAMqR,EAASrR,EAAEqR,OACjB,GAAKA,EAAL,CACA,IAAM+zB,EAAYplC,EAAEqR,OAAOg0B,kBAI3B,GAHID,EAAUxiC,QAAQ5C,GAAK,GACzBolC,EAAUlvB,QAAQlW,GAEhBP,EAAE4R,GAAQjT,GAAG6mC,GAAiBC,EAAS1+B,MAAM6K,EAAQ+zB,QAGvD,IADA,IAAMtmC,EAAUW,EAAE4R,GAAQvS,UACjBwmC,EAAI,EAAGA,EAAIxmC,EAAQuB,OAAQilC,GAAK,EACnC7lC,EAAEX,EAAQwmC,IAAIlnC,GAAG6mC,IAAiBC,EAAS1+B,MAAM1H,EAAQwmC,GAAIF,IAIvE,SAASG,EAAYvlC,GACnB,IAAMolC,EAAYplC,GAAKA,EAAEqR,QAASrR,EAAEqR,OAAOg0B,kBACvCD,EAAUxiC,QAAQ5C,GAAK,GACzBolC,EAAUlvB,QAAQlW,GAEpBklC,EAAS1+B,MAAMd,KAAM0/B,GA1BA,mBAAZ/+B,EAAK,KACb2+B,EAAgC3+B,EADA,GACrB6+B,EAAqB7+B,EADA,GACX+Y,EAAW/Y,EADA,GAEjC4+B,OAAiB3kC,GAEd8e,IAASA,GAAU,GA0BxB,IAFA,IAAMtZ,EAASk/B,EAAU3jC,MAAM,KAC3Bid,SACK7b,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EAAG,CACvC,IAAM9B,EAAK+E,KAAKjD,GAChB,GAAKwiC,EAaH,IAAK3mB,EAAI,EAAGA,EAAIxY,EAAOzF,OAAQie,GAAK,EAAG,CACrC,IAAMpY,EAAQJ,EAAOwY,GAChB3d,EAAG6kC,oBAAmB7kC,EAAG6kC,sBACzB7kC,EAAG6kC,kBAAkBt/B,KAAQvF,EAAG6kC,kBAAkBt/B,OACvDvF,EAAG6kC,kBAAkBt/B,GAAOiB,MAC1B+9B,WACAO,cAAeN,IAEjBxkC,EAAG2E,iBAAiBY,EAAOi/B,EAAiB/lB,QApB9C,IAAKd,EAAI,EAAGA,EAAIxY,EAAOzF,OAAQie,GAAK,EAAG,CACrC,IAAMpY,EAAQJ,EAAOwY,GAChB3d,EAAG+kC,gBAAe/kC,EAAG+kC,kBACrB/kC,EAAG+kC,cAAcx/B,KAAQvF,EAAG+kC,cAAcx/B,OAC/CvF,EAAG+kC,cAAcx/B,GAAOiB,MACtB+9B,WACAO,cAAeF,IAEjB5kC,EAAG2E,iBAAiBY,EAAOq/B,EAAanmB,IAgB9C,OAAO1Z,QAi9BoIhI,IA/8B7I,WAAsB,QAAAoJ,EAAA1G,UAAAC,OAANgG,EAAMC,MAAAQ,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANV,EAAMU,GAAA3G,UAAA2G,GAAA,IACfi+B,EAAgD3+B,EADjC,GACJ4+B,EAAqC5+B,EADjC,GACY6+B,EAAqB7+B,EADjC,GACsB+Y,EAAW/Y,EADjC,GAEG,mBAAZA,EAAK,KACb2+B,EAAgC3+B,EADA,GACrB6+B,EAAqB7+B,EADA,GACX+Y,EAAW/Y,EADA,GAEjC4+B,OAAiB3kC,GAEd8e,IAASA,GAAU,GAGxB,IADA,IAAMtZ,EAASk/B,EAAU3jC,MAAM,KACtBoB,EAAI,EAAGA,EAAIqD,EAAOzF,OAAQoC,GAAK,EAEtC,IADA,IAAMyD,EAAQJ,EAAOrD,GACZ6b,EAAI,EAAGA,EAAI5Y,KAAKrF,OAAQie,GAAK,EAAG,CACvC,IAAM3d,EAAK+E,KAAK4Y,GACZpX,SAMJ,IALK+9B,GAAkBtkC,EAAG+kC,cACxBx+B,EAAWvG,EAAG+kC,cAAcx/B,GACnB++B,GAAkBtkC,EAAG6kC,oBAC9Bt+B,EAAWvG,EAAG6kC,kBAAkBt/B,IAE9BgB,GAAYA,EAAS7G,OACvB,IAAK,IAAIilC,EAAIp+B,EAAS7G,OAAS,EAAGilC,GAAK,EAAGA,GAAK,EAAG,CAChD,IAAMv/B,EAAUmB,EAASo+B,GACrBJ,GAAYn/B,EAAQm/B,WAAaA,GACnCvkC,EAAGyS,oBAAoBlN,EAAOH,EAAQ0/B,cAAermB,GACrDlY,EAASP,OAAO2+B,EAAG,IACTJ,IACVvkC,EAAGyS,oBAAoBlN,EAAOH,EAAQ0/B,cAAermB,GACrDlY,EAASP,OAAO2+B,EAAG,KAM7B,OAAO5/B,QA86ByI6Y,KA56BlJ,WAAuB,IACrB,IAAMonB,EAAMjgC,KADS4C,EAAAlI,UAAAC,OAANgG,EAAMC,MAAAgC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANlC,EAAMkC,GAAAnI,UAAAmI,GAAA,IAEhB1C,EAAgDQ,EAFhC,GAEL4+B,EAAqC5+B,EAFhC,GAEW6+B,EAAqB7+B,EAFhC,GAEqB+Y,EAAW/Y,EAFhC,GAWrB,MARuB,mBAAZA,EAAK,KACbR,EAAgCQ,EADA,GACrB6+B,EAAqB7+B,EADA,GACX+Y,EAAW/Y,EADA,GAEjC4+B,OAAiB3kC,GAMZqlC,EAAIloC,GAAGoI,EAAWo/B,EAJzB,SAASW,IAAoB,QAAAl9B,EAAAtI,UAAAC,OAAXwlC,EAAWv/B,MAAAoC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAXk9B,EAAWl9B,GAAAvI,UAAAuI,GAC3Bu8B,EAAS1+B,MAAMd,KAAMmgC,GACrBF,EAAIjoC,IAAImI,EAAWo/B,EAAgBW,EAAOxmB,IAEIA,MAi6BsGzhB,QA/5BxJ,WAA0B,QAAAwlB,EAAA/iB,UAAAC,OAANgG,EAAMC,MAAA6c,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAN/c,EAAM+c,GAAAhjB,UAAAgjB,GAGxB,IAFA,IAAMtd,EAASO,EAAK,GAAGhF,MAAM,KACvB+jC,EAAY/+B,EAAK,GACd5D,EAAI,EAAGA,EAAIqD,EAAOzF,OAAQoC,GAAK,EAEtC,IADA,IAAMyD,EAAQJ,EAAOrD,GACZ6b,EAAI,EAAGA,EAAI5Y,KAAKrF,OAAQie,GAAK,EAAG,CACvC,IAAM3d,EAAK+E,KAAK4Y,GACZwnB,SACJ,IACEA,EAAM,IAAI7kC,SAAOshC,YAAYr8B,GAC3B0kB,OAAQwa,EACRW,SAAS,EACTC,YAAY,IAEd,MAAOhmC,IACP8lC,EAAM9hC,WAASk+B,YAAY,UACvBC,UAAUj8B,GAAO,GAAM,GAC3B4/B,EAAIlb,OAASwa,EAGfzkC,EAAG0kC,cAAgBh/B,EAAKxD,OAAO,SAACvF,EAAM2oC,GAAP,OAAqBA,EAAY,IAChEtlC,EAAGulC,cAAcJ,GACjBnlC,EAAG0kC,wBACI1kC,EAAG0kC,cAGd,OAAO3/B,QAq4BwJ9H,cAn4BjK,SAAuBsC,GACrB,IAAM4F,GAAU,sBAAuB,iBACjC6/B,EAAMjgC,KACRjD,SACJ,SAAS0jC,EAAanmC,GAEpB,GAAIA,EAAEqR,SAAW3L,KAEjB,IADAxF,EAAS0K,KAAKlF,KAAM1F,GACfyC,EAAI,EAAGA,EAAIqD,EAAOzF,OAAQoC,GAAK,EAClCkjC,EAAIjoC,IAAIoI,EAAOrD,GAAI0jC,GAGvB,GAAIjmC,EACF,IAAKuC,EAAI,EAAGA,EAAIqD,EAAOzF,OAAQoC,GAAK,EAClCkjC,EAAIloC,GAAGqI,EAAOrD,GAAI0jC,GAGtB,OAAOzgC,QAk3BuK0gC,aAh3BhL,SAAsBlmC,GACpB,IAAM4F,GAAU,qBAAsB,gBAChC6/B,EAAMjgC,KACRjD,SACJ,SAAS0jC,EAAanmC,GACpB,GAAIA,EAAEqR,SAAW3L,KAEjB,IADAxF,EAAS0K,KAAKlF,KAAM1F,GACfyC,EAAI,EAAGA,EAAIqD,EAAOzF,OAAQoC,GAAK,EAClCkjC,EAAIjoC,IAAIoI,EAAOrD,GAAI0jC,GAGvB,GAAIjmC,EACF,IAAKuC,EAAI,EAAGA,EAAIqD,EAAOzF,OAAQoC,GAAK,EAClCkjC,EAAIloC,GAAGqI,EAAOrD,GAAI0jC,GAGtB,OAAOzgC,QAg2BqLuD,MA71B9L,WACE,OAAIvD,KAAK,KAAOzE,SACPA,SAAOwf,WAGZ/a,KAAKrF,OAAS,EACT4B,WAAWyD,KAAK1H,IAAI,UAGtB,QAo1B4LH,WAl1BrM,SAAoBwoC,GAClB,GAAI3gC,KAAKrF,OAAS,EAAG,CACnB,GAAIgmC,EAAgB,CAElB,IAAMjnC,EAASsG,KAAKtG,SACpB,OAAOsG,KAAK,GAAGwS,YAAcjW,WAAW7C,EAAO0C,iBAAiB,iBAAmBG,WAAW7C,EAAO0C,iBAAiB,gBAExH,OAAO4D,KAAK,GAAGwS,YAEjB,OAAO,QAy0BwMhP,OAv0BjN,WACE,OAAIxD,KAAK,KAAOzE,SACPA,SAAOqoB,YAGZ5jB,KAAKrF,OAAS,EACT4B,WAAWyD,KAAK1H,IAAI,WAGtB,QA8zBgNF,YA5zBzN,SAAqBuoC,GACnB,GAAI3gC,KAAKrF,OAAS,EAAG,CACnB,GAAIgmC,EAAgB,CAElB,IAAMjnC,EAASsG,KAAKtG,SACpB,OAAOsG,KAAK,GAAGiJ,aAAe1M,WAAW7C,EAAO0C,iBAAiB,eAAiBG,WAAW7C,EAAO0C,iBAAiB,kBAEvH,OAAO4D,KAAK,GAAGiJ,aAEjB,OAAO,QAmzB6N5Q,OAjzBtO,WACE,GAAI2H,KAAKrF,OAAS,EAAG,CACnB,IAAMM,EAAK+E,KAAK,GACV4gC,EAAM3lC,EAAG4lC,wBACTxE,EAAO/9B,WAAS+9B,KAChByE,EAAY7lC,EAAG6lC,WAAazE,EAAKyE,WAAa,EAC9C7yB,EAAahT,EAAGgT,YAAcouB,EAAKpuB,YAAc,EACjD8yB,EAAY9lC,IAAOM,SAASA,SAAOylC,QAAU/lC,EAAG8lC,UAChDhd,EAAa9oB,IAAOM,SAASA,SAAO0lC,QAAUhmC,EAAG8oB,WACvD,OACEE,IAAM2c,EAAI3c,IAAM8c,EAAaD,EAC7Bhd,KAAO8c,EAAI9c,KAAOC,EAAc9V,GAIpC,OAAO,QAkyBqO4c,KAhyB9O,WACE,IAAK,IAAI9tB,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EACpCiD,KAAKjD,GAAGkC,MAAMgsB,QAAU,OAE1B,OAAOjrB,QA4xB2OkhC,KA1xBpP,WACE,IAAK,IAAInkC,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EAAG,CACvC,IAAM9B,EAAK+E,KAAKjD,GACS,SAArB9B,EAAGgE,MAAMgsB,UACXhwB,EAAGgE,MAAMgsB,QAAU,IAEiD,SAAlE1vB,SAAOC,iBAAiBP,EAAI,MAAMmB,iBAAiB,aAErDnB,EAAGgE,MAAMgsB,QAAU,SAGvB,OAAOjrB,QA+wBiPtG,OA7wB1P,WACE,OAAIsG,KAAK,GAAWzE,SAAOC,iBAAiBwE,KAAK,GAAI,YA4wB2M1H,IAzwBlQ,SAAammC,EAAO5J,GAClB,IAAI93B,SACJ,GAAyB,IAArBrC,UAAUC,OAAc,CAC1B,GAAqB,iBAAV8jC,EAEJ,CACL,IAAK1hC,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EAEhC,IAAK,IAAIyhC,KAAQC,EACfz+B,KAAKjD,GAAGkC,MAAMu/B,GAAQC,EAAMD,GAGhC,OAAOx+B,KARP,GAAIA,KAAK,GAAI,OAAOzE,SAAOC,iBAAiBwE,KAAK,GAAI,MAAM5D,iBAAiBqiC,GAWhF,GAAyB,IAArB/jC,UAAUC,QAAiC,iBAAV8jC,EAAoB,CACvD,IAAK1hC,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EAChCiD,KAAKjD,GAAGkC,MAAMw/B,GAAS5J,EAEzB,OAAO70B,KAET,OAAOA,QAovB8PmhC,QAhvBvQ,WAEE,IADA,IAAMpE,KACGhgC,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EACpCggC,EAAIt7B,KAAKzB,KAAKjD,IAEhB,OAAOggC,KA2uBuQxkC,KAxuBhR,SAAciC,GAEZ,IAAKA,EAAU,OAAOwF,KAEtB,IAAK,IAAIjD,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EAEpC,IAA2C,IAAvCvC,EAAS0K,KAAKlF,KAAKjD,GAAIA,EAAGiD,KAAKjD,IAEjC,OAAOiD,KAIX,OAAOA,QA4tB6QnG,QA1tBtR,SAAiBW,GAEf,IAAKA,EAAU,OAAOwF,KAEtB,IAAK,IAAIjD,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EAEpC,IAA2C,IAAvCvC,EAAS0K,KAAKlF,KAAKjD,GAAIiD,KAAKjD,GAAIA,GAElC,OAAOiD,KAIX,OAAOA,QA8sBsR7C,OA5sB/R,SAAgB3C,GAGd,IAFA,IAAM4mC,KAEGrkC,EAAI,EAAGA,EADJiD,KACYrF,OAAQoC,GAAK,EAC/BvC,EAAS0K,KAFHlF,KAEYjD,GAAIA,EAFhBiD,KAEuBjD,KAAKqkC,EAAa3/B,KAFzCzB,KAEkDjD,IAE9D,OAAO,IAAI+/B,EAAKsE,MAssBqRxlC,IApsBvS,SAAapB,GAGX,IAFA,IAAM6mC,KAEGtkC,EAAI,EAAGA,EADJiD,KACYrF,OAAQoC,GAAK,EACnCskC,EAAc5/B,KAAKjH,EAAS0K,KAFlBlF,KAE2BjD,GAAIA,EAF/BiD,KAEsCjD,KAElD,OAAO,IAAI+/B,EAAKuE,MA8rB0R7oC,KA3rB5S,SAAcA,GACZ,QAAoB,IAATA,EACT,OAAOwH,KAAK,GAAKA,KAAK,GAAGq9B,eAAYziC,EAGvC,IAAK,IAAImC,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EACpCiD,KAAKjD,GAAGsgC,UAAY7kC,EAEtB,OAAOwH,QAmrBySvH,KAhrBlT,SAAcA,GACZ,QAAoB,IAATA,EACT,OAAIuH,KAAK,GACAA,KAAK,GAAGshC,YAAYnE,OAEtB,KAGT,IAAK,IAAIpgC,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EACpCiD,KAAKjD,GAAGukC,YAAc7oC,EAExB,OAAOuH,QAqqB+StH,GAnqBxT,SAAYskC,GACV,IAAM/hC,EAAK+E,KAAK,GACZuhC,SACAxkC,SACJ,IAAK9B,QAA0B,IAAb+hC,EAA0B,OAAO,EACnD,GAAwB,iBAAbA,EAAuB,CAChC,GAAI/hC,EAAGumC,QAAS,OAAOvmC,EAAGumC,QAAQxE,GAC7B,GAAI/hC,EAAGwmC,sBAAuB,OAAOxmC,EAAGwmC,sBAAsBzE,GAC9D,GAAI/hC,EAAGymC,kBAAmB,OAAOzmC,EAAGymC,kBAAkB1E,GAG3D,IADAuE,EAAcxnC,EAAEijC,GACXjgC,EAAI,EAAGA,EAAIwkC,EAAY5mC,OAAQoC,GAAK,EACvC,GAAIwkC,EAAYxkC,KAAO9B,EAAI,OAAO,EAEpC,OAAO,EACF,GAAI+hC,IAAa1+B,WAAU,OAAOrD,IAAOqD,WAC3C,GAAI0+B,IAAazhC,SAAQ,OAAON,IAAOM,SAE5C,GAAIyhC,EAASM,UAAYN,aAAoBF,EAAM,CAEjD,IADAyE,EAAcvE,EAASM,UAAYN,GAAYA,EAC1CjgC,EAAI,EAAGA,EAAIwkC,EAAY5mC,OAAQoC,GAAK,EACvC,GAAIwkC,EAAYxkC,KAAO9B,EAAI,OAAO,EAEpC,OAAO,EAET,OAAO,KA0oBmTiC,QAxoB5T,SAAiBjC,GACf,IAAK,IAAI8B,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EACpC,GAAIiD,KAAKjD,KAAO9B,EAAI,OAAO8B,EAE7B,OAAQ,KAooB2TpE,MAloBrU,WACE,IAAIgpC,EAAQ3hC,KAAK,GACbjD,SACJ,GAAI4kC,EAAO,CAGT,IAFA5kC,EAAI,EAEuC,QAAnC4kC,EAAQA,EAAMC,kBACG,IAAnBD,EAAMrE,WAAgBvgC,GAAK,GAEjC,OAAOA,MAynBiUnE,GApnB5U,SAAYD,GACV,QAAqB,IAAVA,EAAuB,OAAOqH,KACzC,IAAMrF,EAASqF,KAAKrF,OAChBknC,SACJ,OACS,IAAI/E,EADTnkC,EAAQgC,EAAS,KAGjBhC,EAAQ,GACVkpC,EAAclnC,EAAShC,GACL,MACDqH,KAAK6hC,KAEP7hC,KAAKrH,QAwmBwTE,OAtmBhV,WAGE,IAFA,IAAIipC,SAEKlC,EAAI,EAAGA,EAAIllC,UAAKC,OAAQilC,GAAK,EAAG,CACvCkC,oBAAgBlC,OAAhBhlC,EAAAF,UAAgBklC,GAChB,IAAK,IAAI7iC,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EACpC,GAAwB,iBAAb+kC,EAAuB,CAChC,IAAMC,EAAUzjC,WAASC,cAAc,OAEvC,IADAwjC,EAAQ1E,UAAYyE,EACbC,EAAQC,YACbhiC,KAAKjD,GAAGklC,YAAYF,EAAQC,iBAEzB,GAAIF,aAAoBhF,EAC7B,IAAK,IAAIlkB,EAAI,EAAGA,EAAIkpB,EAASnnC,OAAQie,GAAK,EACxC5Y,KAAKjD,GAAGklC,YAAYH,EAASlpB,SAG/B5Y,KAAKjD,GAAGklC,YAAYH,GAK1B,OAAO9hC,QAglB+UkiC,SA7kBxV,SAAkB/oC,GAEhB,OADAY,EAAEZ,GAAQN,OAAOmH,MACVA,QA2kByVlH,QAzkBlW,SAAiBgpC,GACf,IAAI/kC,SACA6b,SACJ,IAAK7b,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EAChC,GAAwB,iBAAb+kC,EAAuB,CAChC,IAAMC,EAAUzjC,WAASC,cAAc,OAEvC,IADAwjC,EAAQ1E,UAAYyE,EACflpB,EAAImpB,EAAQrF,WAAW/hC,OAAS,EAAGie,GAAK,EAAGA,GAAK,EACnD5Y,KAAKjD,GAAGolC,aAAaJ,EAAQrF,WAAW9jB,GAAI5Y,KAAKjD,GAAG2/B,WAAW,SAE5D,GAAIoF,aAAoBhF,EAC7B,IAAKlkB,EAAI,EAAGA,EAAIkpB,EAASnnC,OAAQie,GAAK,EACpC5Y,KAAKjD,GAAGolC,aAAaL,EAASlpB,GAAI5Y,KAAKjD,GAAG2/B,WAAW,SAGvD18B,KAAKjD,GAAGolC,aAAaL,EAAU9hC,KAAKjD,GAAG2/B,WAAW,IAGtD,OAAO18B,QAujBkWoiC,UApjB3W,SAAmBjpC,GAEjB,OADAY,EAAEZ,GAAQL,QAAQkH,MACXA,QAkjB6WmiC,aAhjBtX,SAAsBnF,GAEpB,IADA,IAAMqF,EAAStoC,EAAEijC,GACRjgC,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EACpC,GAAsB,IAAlBslC,EAAO1nC,OACT0nC,EAAO,GAAGC,WAAWH,aAAaniC,KAAKjD,GAAIslC,EAAO,SAC7C,GAAIA,EAAO1nC,OAAS,EACzB,IAAK,IAAIie,EAAI,EAAGA,EAAIypB,EAAO1nC,OAAQie,GAAK,EACtCypB,EAAOzpB,GAAG0pB,WAAWH,aAAaniC,KAAKjD,GAAGuS,WAAU,GAAO+yB,EAAOzpB,OAyiB0T2pB,YApiBpY,SAAqBvF,GAEnB,IADA,IAAMwF,EAAQzoC,EAAEijC,GACPjgC,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EACpC,GAAqB,IAAjBylC,EAAM7nC,OACR6nC,EAAM,GAAGF,WAAWH,aAAaniC,KAAKjD,GAAIylC,EAAM,GAAGC,kBAC9C,GAAID,EAAM7nC,OAAS,EACxB,IAAK,IAAIie,EAAI,EAAGA,EAAI4pB,EAAM7nC,OAAQie,GAAK,EACrC4pB,EAAM5pB,GAAG0pB,WAAWH,aAAaniC,KAAKjD,GAAGuS,WAAU,GAAOkzB,EAAM5pB,GAAG6pB,gBA6hBsU1pC,KAxhBjZ,SAAcikC,GACZ,OAAIh9B,KAAKrF,OAAS,EACZqiC,EACEh9B,KAAK,GAAG0iC,oBAAsB3oC,EAAEiG,KAAK,GAAG0iC,oBAAoBhqC,GAAGskC,GAC1D,IAAIF,GAAM98B,KAAK,GAAG0iC,qBAEpB,IAAI5F,MAGT98B,KAAK,GAAG0iC,mBAA2B,IAAI5F,GAAM98B,KAAK,GAAG0iC,qBAClD,IAAI5F,MAEN,IAAIA,SA4gB0Y9jC,QA1gBvZ,SAAiBgkC,GACf,IAAM2F,KACF1nC,EAAK+E,KAAK,GACd,IAAK/E,EAAI,OAAO,IAAI6hC,MACpB,KAAO7hC,EAAGynC,oBAAoB,CAC5B,IAAM3pC,EAAOkC,EAAGynC,mBACZ1F,EACEjjC,EAAEhB,GAAML,GAAGskC,IAAW2F,EAAQlhC,KAAK1I,GAClC4pC,EAAQlhC,KAAK1I,GACpBkC,EAAKlC,EAEP,OAAO,IAAI+jC,EAAK6F,MA+f8Y1pC,KA7fha,SAAc+jC,GACZ,GAAIh9B,KAAKrF,OAAS,EAAG,CACnB,IAAMM,EAAK+E,KAAK,GAChB,OAAIg9B,EACE/hC,EAAG2nC,wBAA0B7oC,EAAEkB,EAAG2nC,wBAAwBlqC,GAAGskC,GACxD,IAAIF,GAAM7hC,EAAG2nC,yBAEf,IAAI9F,MAGT7hC,EAAG2nC,uBAA+B,IAAI9F,GAAM7hC,EAAG2nC,yBAC5C,IAAI9F,MAEb,OAAO,IAAIA,SAgfyZ5jC,QA9eta,SAAiB8jC,GACf,IAAM6F,KACF5nC,EAAK+E,KAAK,GACd,IAAK/E,EAAI,OAAO,IAAI6hC,MACpB,KAAO7hC,EAAG2nC,wBAAwB,CAChC,IAAM3pC,EAAOgC,EAAG2nC,uBACZ5F,EACEjjC,EAAEd,GAAMP,GAAGskC,IAAW6F,EAAQphC,KAAKxI,GAClC4pC,EAAQphC,KAAKxI,GACpBgC,EAAKhC,EAEP,OAAO,IAAI6jC,EAAK+F,MAme6ZC,SAje/a,SAAkB9F,GAChB,OAAOh9B,KAAKhH,QAAQgkC,GAAUvjC,IAAIuG,KAAK9G,QAAQ8jC,OAgewY7jC,OA9dzb,SAAgB6jC,GAEd,IADA,IAAM5jC,KACG2D,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EACT,OAAvBiD,KAAKjD,GAAGulC,aACNtF,EACEjjC,EAAEiG,KAAKjD,GAAGulC,YAAY5pC,GAAGskC,IAAW5jC,EAAQqI,KAAKzB,KAAKjD,GAAGulC,YAE7DlpC,EAAQqI,KAAKzB,KAAKjD,GAAGulC,aAI3B,OAAOvoC,EAAEwjC,EAAOnkC,OAmd+aA,QAjdjc,SAAiB4jC,GAEf,IADA,IAAM5jC,KACG2D,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EAEpC,IADA,IAAI5D,EAAS6G,KAAKjD,GAAGulC,WACdnpC,GACD6jC,EACEjjC,EAAEZ,GAAQT,GAAGskC,IAAW5jC,EAAQqI,KAAKtI,GAEzCC,EAAQqI,KAAKtI,GAEfA,EAASA,EAAOmpC,WAGpB,OAAOvoC,EAAEwjC,EAAOnkC,OAocwbC,QAlc1c,SAAiB2jC,GACf,IAAI3jC,EAAU2G,KACd,YAAwB,IAAbg9B,EACF,IAAIF,OAERzjC,EAAQX,GAAGskC,KACd3jC,EAAUA,EAAQD,QAAQ4jC,GAAUpkC,GAAG,IAElCS,MA0b0cC,KAxbnd,SAAc0jC,GAEZ,IADA,IAAM+F,KACGhmC,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EAEpC,IADA,IAAMimC,EAAQhjC,KAAKjD,GAAGu/B,iBAAiBU,GAC9BpkB,EAAI,EAAGA,EAAIoqB,EAAMroC,OAAQie,GAAK,EACrCmqB,EAActhC,KAAKuhC,EAAMpqB,IAG7B,OAAO,IAAIkkB,EAAKiG,MAgbucxpC,SA9azd,SAAkByjC,GAEhB,IADA,IAAMzjC,KACGwD,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EAGpC,IAFA,IAAM2/B,EAAa18B,KAAKjD,GAAG2/B,WAElB9jB,EAAI,EAAGA,EAAI8jB,EAAW/hC,OAAQie,GAAK,EACrCokB,EAEiC,IAA3BN,EAAW9jB,GAAG0kB,UAAkBvjC,EAAE2iC,EAAW9jB,IAAIlgB,GAAGskC,IAC7DzjC,EAASkI,KAAKi7B,EAAW9jB,IAFM,IAA3B8jB,EAAW9jB,GAAG0kB,UAAgB/jC,EAASkI,KAAKi7B,EAAW9jB,IAMjE,OAAO,IAAIkkB,EAAKS,EAAOhkC,OAia0cC,OA/Zne,WACE,IAAK,IAAIuD,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EAChCiD,KAAKjD,GAAGulC,YAAYtiC,KAAKjD,GAAGulC,WAAWW,YAAYjjC,KAAKjD,IAE9D,OAAOiD,QA2ZkekjC,OAzZ3e,WACE,OAAOljC,KAAKxG,YAwZqeC,IAtZnf,WAAsB,IACpB,IACIsD,SACA6b,SAHgBuqB,EAAAzoC,UAAAC,OAANgG,EAAMC,MAAAuiC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANziC,EAAMyiC,GAAA1oC,UAAA0oC,GAIpB,IAAKrmC,EAAI,EAAGA,EAAI4D,EAAKhG,OAAQoC,GAAK,EAAG,CACnC,IAAMsmC,EAAQtpC,EAAE4G,EAAK5D,IACrB,IAAK6b,EAAI,EAAGA,EAAIyqB,EAAM1oC,OAAQie,GAAK,EALzB5Y,UAMArF,QAAU0oC,EAAMzqB,GANhB5Y,KAOJrF,QAAU,EAGlB,OAVYqF,QAqZ0esjC,MAzYxf,WACE,IAAK,IAAIvmC,EAAI,EAAGA,EAAIiD,KAAKrF,OAAQoC,GAAK,EAAG,CACvC,IAAM9B,EAAK+E,KAAKjD,GAChB,GAAoB,IAAhB9B,EAAGqiC,SAAgB,CACrB,IAAK,IAAI1kB,EAAI,EAAGA,EAAI3d,EAAGyhC,WAAW/hC,OAAQie,GAAK,EACzC3d,EAAGyhC,WAAW9jB,GAAG0pB,YACnBrnC,EAAGyhC,WAAW9jB,GAAG0pB,WAAWW,YAAYhoC,EAAGyhC,WAAW9jB,IAG1D3d,EAAGqmC,YAAc,IAGrB,OAAOthC,QA6XsfujC,SA1X/f,WAA2B,QAAAC,EAAA9oC,UAAAC,OAANgG,EAAMC,MAAA4iC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAN9iC,EAAM8iC,GAAA/oC,UAAA+oC,GAAA,IACpB3f,EAAyCnjB,EADrB,GACdsjB,EAAmCtjB,EADrB,GACT6L,EAA8B7L,EADrB,GACC+iC,EAAoB/iC,EADrB,GACSnG,EAAYmG,EADrB,GAQzB,OANoB,IAAhBA,EAAKhG,QAAkC,mBAAX+oC,IAC9BlpC,EAAWkpC,EACV5f,EAAyCnjB,EAFW,GAE9CsjB,EAAmCtjB,EAFW,GAEzC6L,EAA8B7L,EAFW,GAE/BnG,EAAoBmG,EAFW,GAErB+iC,EAAU/iC,EAFW,SAIjC,IAAX+iC,IAAwBA,EAAS,SAErC1jC,KAAKzH,KAAK,WACf,IAAM0C,EAAK+E,KACP2jC,SACAC,SACAC,SACAC,SACAC,SACAC,SACAjD,SACAhd,SACAkgB,EAAahgB,EAAM,GAAa,IAARA,EACxBigB,EAAcpgB,EAAO,GAAc,IAATA,EAgB9B,QAfsB,IAAX4f,IACTA,EAAS,SAEPO,IACFN,EAAa1oC,EAAG8lC,UACXv0B,IACHvR,EAAG8lC,UAAY9c,IAGfigB,IACFN,EAAc3oC,EAAG8oB,WACZvX,IACHvR,EAAG8oB,WAAaD,IAGftX,EAAL,CACIy3B,IACFJ,EAAS5oC,EAAGkpC,aAAelpC,EAAGgO,aAC9B86B,EAAS99B,KAAKK,IAAIL,KAAK4M,IAAIoR,EAAK4f,GAAS,IAEvCK,IACFJ,EAAU7oC,EAAGmpC,YAAcnpC,EAAGuX,YAC9BwxB,EAAU/9B,KAAKK,IAAIL,KAAK4M,IAAIiR,EAAMggB,GAAU,IAE9C,IAAIO,EAAY,KACZJ,GAAcF,IAAWJ,IAAYM,GAAa,GAClDC,GAAeF,IAAYJ,IAAaM,GAAc,GAmC1D9jB,EAlCA,SAASqJ,IAAoC,IAA7BxS,EAA6Bvc,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,IAAtB,IAAIK,MAAO6rB,UACd,OAAdyd,IACFA,EAAYptB,GAEd,IAAMlN,EAAW9D,KAAKK,IAAIL,KAAK4M,KAAKoE,EAAOotB,GAAa73B,EAAU,GAAI,GAChE83B,EAA0B,WAAXZ,EAAsB35B,EAAY,GAAO9D,KAAKsyB,IAAIxuB,EAAW9D,KAAKmQ,IAAM,EACzFmuB,SACAN,IAAYlD,EAAY4C,EAAcW,GAAgBP,EAASJ,IAC/DO,IAAangB,EAAa6f,EAAeU,GAAgBN,EAAUJ,IACnEK,GAAcF,EAASJ,GAAc5C,GAAagD,IACpD9oC,EAAG8lC,UAAYgD,EACfQ,GAAO,GAELN,GAAcF,EAASJ,GAAc5C,GAAagD,IACpD9oC,EAAG8lC,UAAYgD,EACfQ,GAAO,GAELL,GAAeF,EAAUJ,GAAe7f,GAAcigB,IACxD/oC,EAAG8oB,WAAaigB,EAChBO,GAAO,GAELL,GAAeF,EAAUJ,GAAe7f,GAAcigB,IACxD/oC,EAAG8oB,WAAaigB,EAChBO,GAAO,GAGLA,EACE/pC,GAAUA,KAGZypC,IAAYhpC,EAAG8lC,UAAYA,GAC3BmD,IAAajpC,EAAG8oB,WAAaA,GACjC3D,EAAsBqJ,YA2S6esX,UArSzgB,WAA4B,QAAAyD,EAAA9pC,UAAAC,OAANgG,EAAMC,MAAA4jC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAN9jC,EAAM8jC,GAAA/pC,UAAA+pC,GAAA,IACrBxgB,EAAmCtjB,EADd,GAChB6L,EAA8B7L,EADd,GACN+iC,EAAoB/iC,EADd,GACEnG,EAAYmG,EADd,GAM1B,OAJoB,IAAhBA,EAAKhG,QAAkC,mBAAX+oC,IAC7Bzf,EAAmCtjB,EADiB,GAC/C6L,EAA8B7L,EADiB,GACrCnG,EAAoBmG,EADiB,GAC3B+iC,EAAU/iC,EADiB,SAIpC,IAARsjB,EADCjkB,KAEFrF,OAAS,EAFPqF,KAEqB,GAAG+gC,UAC3B,KAHG/gC,KAKDujC,cAAS3oC,EAAWqpB,EAAKzX,EAAUk3B,EAAQlpC,MA2R4dupB,WAzRphB,WAA6B,QAAA2gB,EAAAhqC,UAAAC,OAANgG,EAAMC,MAAA8jC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANhkC,EAAMgkC,GAAAjqC,UAAAiqC,GAAA,IACtB7gB,EAAoCnjB,EADd,GAChB6L,EAA8B7L,EADd,GACN+iC,EAAoB/iC,EADd,GACEnG,EAAYmG,EADd,GAM3B,OAJoB,IAAhBA,EAAKhG,QAAkC,mBAAX+oC,IAC7B5f,EAAoCnjB,EADgB,GAC9C6L,EAA8B7L,EADgB,GACpCnG,EAAoBmG,EADgB,GAC1B+iC,EAAU/iC,EADgB,SAInC,IAATmjB,EADC9jB,KAEFrF,OAAS,EAFPqF,KAEqB,GAAG+jB,WAC3B,KAHG/jB,KAKDujC,SAASzf,OAAMlpB,EAAW4R,EAAUk3B,EAAQlpC,MA+QueoqC,QA5QhiB,SAAiBC,EAAcC,GAC7B,IAAM7H,EAAMj9B,KACNnE,GACJ4iC,MAAO9kC,OAAOorC,UAAWF,GACzB7nC,OAAQrD,OAAOorC,QACbv4B,SAAU,IACVk3B,OAAQ,SAMPoB,GAEHE,SAAU/H,EACVnwB,WAAW,EACXm4B,OAEAC,eAhBQ,SAgBOxB,EAAQ35B,GACrB,MAAe,UAAX25B,EACK,GAAOz9B,KAAKsyB,IAAIxuB,EAAW9D,KAAKmQ,IAAM,EAEzB,mBAAXstB,EACFA,EAAO35B,GAETA,GAET4c,KAzBQ,WA0BF9qB,EAAEspC,SAz+BZ,SAA8BC,GACxB7pC,SAAO8pC,qBAA6B9pC,SAAO8pC,qBAAqBD,GAC3D7pC,SAAO+pC,2BAAmC/pC,SAAO+pC,2BAA2BF,GAC9E7pC,SAAOgc,aAAa6tB,GAu+BrBC,CAAqBxpC,EAAEspC,SAEzBtpC,EAAEiR,WAAY,EACdjR,EAAEmpC,SAASzsC,KAAK,SAACI,EAAOsC,UACNA,EACDsqC,sBAEjB1pC,EAAEopC,QAEJV,KApCQ,SAoCHvnB,GAOH,GANAnhB,EAAEiR,WAAY,EACdjR,EAAEmpC,SAASzsC,KAAK,SAACI,EAAOsC,UACNA,EACDsqC,sBAEbvoB,GAAUA,EAASigB,GACnBphC,EAAEopC,IAAItqC,OAAS,EAAG,CACpB,IAAMsqC,EAAMppC,EAAEopC,IAAIO,QAClB3pC,EAAE+oC,QAAQK,EAAI,GAAIA,EAAI,MAG1BL,QAhDQ,SAgDAnG,EAAOzhC,GACb,GAAInB,EAAEiR,UAEJ,OADAjR,EAAEopC,IAAIxjC,MAAMg9B,EAAOzhC,IACZnB,EAET,IAAMmpC,KAGNnpC,EAAEmpC,SAASzsC,KAAK,SAACI,EAAOsC,GACtB,IAAIwqC,SACAC,SACAC,SACAC,SACAC,SAEC5qC,EAAGsqC,sBAAqB1pC,EAAEmpC,SAASrsC,GAAO4sC,oBAAsB1pC,GAErEmpC,EAASrsC,IACPmtC,UAAW7qC,GAEbtB,OAAOC,KAAK6kC,GAAO5kC,QAAQ,SAAC2kC,GAC1BiH,EAAmBlqC,SAAOC,iBAAiBP,EAAI,MAAMmB,iBAAiBoiC,GAAM1iC,QAAQ,IAAK,KACzF4pC,EAAenpC,WAAWkpC,GAC1BE,EAAOF,EAAiB3pC,QAAQ4pC,EAAc,IAC9CE,EAAarpC,WAAWkiC,EAAMD,IAC9BqH,EAAiBpH,EAAMD,GAAQmH,EAC/BX,EAASrsC,GAAO6lC,IACdiH,mBACAC,eACAC,OACAC,aACAC,iBACAE,aAAcL,OAKpB,IAAIrB,EAAY,KACZptB,SACA+uB,EAAe,EACfC,EAAY,EACZ1B,SACA2B,GAAQ,EAyDZ,OAvDArqC,EAAEiR,WAAY,EAsDdjR,EAAEspC,QAAU/kB,EApDZ,SAASqJ,IACPxS,GAAO,IAAIlc,MAAO6rB,UAClB,IAAI7c,SACAu6B,SAEC4B,IACHA,GAAQ,EACJlpC,EAAOmpC,OAAOnpC,EAAOmpC,MAAMlJ,IAEf,OAAdoH,IACFA,EAAYptB,GAEVja,EAAO+M,UAET/M,EAAO+M,SAASkzB,EAAKh3B,KAAKK,IAAIL,KAAK4M,KAAKoE,EAAOotB,GAAarnC,EAAOwP,SAAU,GAAI,GAAM63B,EAAYrnC,EAAOwP,SAAYyK,EAAO,EAAI,EAAKotB,EAAYrnC,EAAOwP,SAAYyK,EAAOotB,GAG9KW,EAASnrC,QAAQ,SAAC4qB,GAChB,IAAMxpB,EAAKwpB,EACP8f,GAAQtpC,EAAGspC,MACf5qC,OAAOC,KAAK6kC,GAAO5kC,QAAQ,SAAC2kC,GAC1B,IAAI+F,IAAQtpC,EAAGspC,KAAf,CACAx6B,EAAW9D,KAAKK,IAAIL,KAAK4M,KAAKoE,EAAOotB,GAAarnC,EAAOwP,SAAU,GAAI,GACvE83B,EAAezoC,EAAEqpC,eAAeloC,EAAO0mC,OAAQ35B,GAHZ,IAAAq8B,EAIQnrC,EAAGujC,GAAtCkH,EAJ2BU,EAI3BV,aAAcE,EAJaQ,EAIbR,WAAYD,EAJCS,EAIDT,KAClC1qC,EAAGujC,GAAMuH,aAAeL,EAAgBpB,GAAgBsB,EAAaF,GACrE,IAAMK,EAAe9qC,EAAGujC,GAAMuH,cAG3BH,EAAaF,GAAgBK,GAAgBH,GAC7CA,EAAaF,GAAgBK,GAAgBH,KAC9C3qC,EAAG6qC,UAAU7mC,MAAMu/B,GAAQoH,EAAaD,GACxCM,GAAa,KACKtsC,OAAOC,KAAK6kC,GAAO9jC,SACnCM,EAAGspC,MAAO,EACVyB,GAAgB,GAEdA,IAAiBhB,EAASrqC,SAC5B4pC,GAAO,IAGPA,EACF1oC,EAAE0oC,KAAKvnC,EAAOggB,UAGhB/hB,EAAG6qC,UAAU7mC,MAAMu/B,GAAQuH,EAAeJ,OAG1CpB,IAEJ1oC,EAAEspC,QAAU/kB,EAAsBqJ,MAG7B5tB,IAIX,GAA0B,IAAtBA,EAAEmpC,SAASrqC,OACb,OAAOsiC,EAIT,IADA,IAAIoJ,SACKtpC,EAAI,EAAGA,EAAIlB,EAAEmpC,SAASrqC,OAAQoC,GAAK,EACtClB,EAAEmpC,SAASjoC,GAAGwoC,oBAChBc,EAAkBxqC,EAAEmpC,SAASjoC,GAAGwoC,oBAC3B1pC,EAAEmpC,SAASjoC,GAAGwoC,oBAAsB1pC,EAY7C,OAVKwqC,IACHA,EAAkBxqC,GAGC,SAAjBgpC,EACFwB,EAAgB1f,OAEhB0f,EAAgBzB,QAAQ/oC,EAAE4iC,MAAO5iC,EAAEmB,QAG9BigC,KA+FgiBtW,KA5FziB,WAEE,IADA,IACS5pB,EAAI,EAAGA,EADJiD,KACYrF,OAAQoC,GAAK,EADzBiD,KAEFjD,GAAGwoC,qBAFDvlC,KAGJjD,GAAGwoC,oBAAoB5e,UAwF8gBkN,MAnE/iB,WAAwB,QAAAyS,EAAA5rC,UAAAC,OAANgG,EAAMC,MAAA0lC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAN5lC,EAAM4lC,GAAA7rC,UAAA6rC,GACtB,OAAOxI,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,SAAzBsI,OAAqCvC,OAkEwgB2U,KAhEtjB,WAAuB,QAAAkxB,EAAA9rC,UAAAC,OAANgG,EAAMC,MAAA4lC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAN9lC,EAAM8lC,GAAA/rC,UAAA+rC,GACrB,OAAO1I,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,QAAzBsI,OAAoCvC,OA+D+gB+lC,MA7D5jB,WAAwB,QAAAC,EAAAjsC,UAAAC,OAANgG,EAAMC,MAAA+lC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANjmC,EAAMimC,GAAAlsC,UAAAksC,GACtB,OAAO7I,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,SAAzBsI,OAAqCvC,OA4DqhBkmC,QA1DnkB,WAA0B,QAAAC,EAAApsC,UAAAC,OAANgG,EAAMC,MAAAkmC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANpmC,EAAMomC,GAAArsC,UAAAqsC,GACxB,OAAOhJ,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,WAAzBsI,OAAuCvC,OAyD4hBqmC,SAvD5kB,WAA2B,QAAAC,EAAAvsC,UAAAC,OAANgG,EAAMC,MAAAqmC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANvmC,EAAMumC,GAAAxsC,UAAAwsC,GACzB,OAAOnJ,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,YAAzBsI,OAAwCvC,OAsDqiBwmC,MApDtlB,WAAwB,QAAAC,EAAA1sC,UAAAC,OAANgG,EAAMC,MAAAwmC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAN1mC,EAAM0mC,GAAA3sC,UAAA2sC,GACtB,OAAOtJ,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,SAAzBsI,OAAqCvC,OAmD+iB2mC,QAjD7lB,WAA0B,QAAAC,EAAA7sC,UAAAC,OAANgG,EAAMC,MAAA2mC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAN7mC,EAAM6mC,GAAA9sC,UAAA8sC,GACxB,OAAOzJ,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,WAAzBsI,OAAuCvC,OAgDsjB8mC,SA9CtmB,WAA2B,QAAAC,EAAAhtC,UAAAC,OAANgG,EAAMC,MAAA8mC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANhnC,EAAMgnC,GAAAjtC,UAAAitC,GACzB,OAAO5J,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,YAAzBsI,OAAwCvC,OA6C+jBinC,OA3ChnB,WAAyB,QAAAC,EAAAntC,UAAAC,OAANgG,EAAMC,MAAAinC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANnnC,EAAMmnC,GAAAptC,UAAAotC,GACvB,OAAO/J,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,UAAzBsI,OAAsCvC,OA0CykBonC,OAxCxnB,WAAyB,QAAAC,EAAAttC,UAAAC,OAANgG,EAAMC,MAAAonC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANtnC,EAAMsnC,GAAAvtC,UAAAutC,GACvB,OAAOlK,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,UAAzBsI,OAAsCvC,OAuCilBunC,UArChoB,WAA4B,QAAAC,EAAAztC,UAAAC,OAANgG,EAAMC,MAAAunC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANznC,EAAMynC,GAAA1tC,UAAA0tC,GAC1B,OAAOrK,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,aAAzBsI,OAAyCvC,OAoCylB0nC,UAlC3oB,WAA4B,QAAAC,EAAA5tC,UAAAC,OAANgG,EAAMC,MAAA0nC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAN5nC,EAAM4nC,GAAA7tC,UAAA6tC,GAC1B,OAAOxK,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,aAAzBsI,OAAyCvC,OAiComB6nC,QA/BtpB,WAA0B,QAAAC,EAAA/tC,UAAAC,OAANgG,EAAMC,MAAA6nC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAN/nC,EAAM+nC,GAAAhuC,UAAAguC,GACxB,OAAO3K,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,WAAzBsI,OAAuCvC,OA8B+mBgoC,WA5B/pB,WAA6B,QAAAC,EAAAluC,UAAAC,OAANgG,EAAMC,MAAAgoC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANloC,EAAMkoC,GAAAnuC,UAAAmuC,GAC3B,OAAO9K,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,cAAzBsI,OAA0CvC,OA2BwnBmoC,WAzB3qB,WAA6B,QAAAC,EAAAruC,UAAAC,OAANgG,EAAMC,MAAAmoC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANroC,EAAMqoC,GAAAtuC,UAAAsuC,GAC3B,OAAOjL,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,cAAzBsI,OAA0CvC,OAwBooBsoC,SAtBvrB,WAA2B,QAAAC,EAAAxuC,UAAAC,OAANgG,EAAMC,MAAAsoC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANxoC,EAAMwoC,GAAAzuC,UAAAyuC,GACzB,OAAOpL,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,YAAzBsI,OAAwCvC,OAqBgpByoC,UAnBjsB,WAA4B,QAAAC,EAAA3uC,UAAAC,OAANgG,EAAMC,MAAAyoC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAN3oC,EAAM2oC,GAAA5uC,UAAA4uC,GAC1B,OAAOvL,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,aAAzBsI,OAAyCvC,OAkB0pB4oC,WAhB5sB,WAA6B,QAAAC,EAAA9uC,UAAAC,OAANgG,EAAMC,MAAA4oC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAN9oC,EAAM8oC,GAAA/uC,UAAA+uC,GAC3B,OAAO1L,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,cAAzBsI,OAA0CvC,OAeqqB+oC,SAbxtB,WAA2B,QAAAC,EAAAjvC,UAAAC,OAANgG,EAAMC,MAAA+oC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANjpC,EAAMipC,GAAAlvC,UAAAkvC,GACzB,OAAO7L,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,YAAzBsI,OAAwCvC,OAYirBkpC,UAVluB,WAA4B,QAAAC,EAAApvC,UAAAC,OAANgG,EAAMC,MAAAkpC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANppC,EAAMopC,GAAArvC,UAAAqvC,GAC1B,OAAOhM,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,aAAzBsI,OAAyCvC,OAS2rB4e,OAP7uB,WAAyB,QAAAyqB,EAAAtvC,UAAAC,OAANgG,EAAMC,MAAAopC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANtpC,EAAMspC,GAAAvvC,UAAAuvC,GACvB,OAAOlM,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,UAAzBsI,OAAsCvC,OAMssBg7B,OAJrvB,WAAyB,QAAAuO,EAAAxvC,UAAAC,OAANgG,EAAMC,MAAAspC,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANxpC,EAAMwpC,GAAAzvC,UAAAyvC,GACvB,OAAOpM,EAAc57B,KAAKnC,MAAnBc,WAAAlG,GAAyB,UAAzBsI,OAAsCvC","file":"1.bd3926de19678c575e61.bundle.js","sourcesContent":["/**\n * Swiper 4.4.2\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * http://www.idangero.us/swiper/\n *\n * Copyright 2014-2018 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: November 1, 2018\n */\n\nimport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, data, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, remove, add, styles } from 'dom7/dist/dom7.modular';\nimport { window, document } from 'ssr-window';\n\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n data,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n remove,\n add,\n styles,\n};\n\nObject.keys(Methods).forEach((methodName) => {\n $.fn[methodName] = Methods[methodName];\n});\n\nconst Utils = {\n deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key) => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n },\n nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n },\n now() {\n return Date.now();\n },\n getTranslate(el, axis = 'x') {\n let matrix;\n let curTransform;\n let transformMatrix;\n\n const curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n },\n parseUrlQuery(url) {\n const query = {};\n let urlToParse = url || window.location.href;\n let i;\n let params;\n let param;\n let length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter(paramsPart => paramsPart !== '');\n length = params.length;\n\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\n }\n }\n return query;\n },\n isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n },\n extend(...args) {\n const to = Object(args[0]);\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n },\n};\n\nconst Support = (function Support() {\n const testDiv = document.createElement('div');\n return {\n touch: (window.Modernizr && window.Modernizr.touch === true) || (function checkTouch() {\n return !!(('ontouchstart' in window) || (window.DocumentTouch && document instanceof window.DocumentTouch));\n }()),\n\n pointerEvents: !!(window.navigator.pointerEnabled || window.PointerEvent || ('maxTouchPoints' in window.navigator)),\n prefixedPointerEvents: !!window.navigator.msPointerEnabled,\n\n transition: (function checkTransition() {\n const style = testDiv.style;\n return ('transition' in style || 'webkitTransition' in style || 'MozTransition' in style);\n }()),\n transforms3d: (window.Modernizr && window.Modernizr.csstransforms3d === true) || (function checkTransforms3d() {\n const style = testDiv.style;\n return ('webkitPerspective' in style || 'MozPerspective' in style || 'OPerspective' in style || 'MsPerspective' in style || 'perspective' in style);\n }()),\n\n flexbox: (function checkFlexbox() {\n const style = testDiv.style;\n const styles$$1 = ('alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient').split(' ');\n for (let i = 0; i < styles$$1.length; i += 1) {\n if (styles$$1[i] in style) return true;\n }\n return false;\n }()),\n\n observer: (function checkObserver() {\n return ('MutationObserver' in window || 'WebkitMutationObserver' in window);\n }()),\n\n passiveListener: (function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n },\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n }()),\n\n gestures: (function checkGestures() {\n return 'ongesturestart' in window;\n }()),\n };\n}());\n\nclass SwiperClass {\n constructor(params = {}) {\n const self = this;\n self.params = params;\n\n // Events\n self.eventsListeners = {};\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach((eventName) => {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n }\n\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach((event) => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n }\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n handler.apply(self, args);\n self.off(events, onceHandler);\n }\n return self.on(events, onceHandler, priority);\n }\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach((event) => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event] && self.eventsListeners[event].length) {\n self.eventsListeners[event].forEach((eventHandler, index$$1) => {\n if (eventHandler === handler) {\n self.eventsListeners[event].splice(index$$1, 1);\n }\n });\n }\n });\n return self;\n }\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data$$1;\n let context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data$$1 = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data$$1 = args[0].data;\n context = args[0].context || self;\n }\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach((event) => {\n if (self.eventsListeners && self.eventsListeners[event]) {\n const handlers = [];\n self.eventsListeners[event].forEach((eventHandler) => {\n handlers.push(eventHandler);\n });\n handlers.forEach((eventHandler) => {\n eventHandler.apply(context, data$$1);\n });\n }\n });\n return self;\n }\n\n useModulesParams(instanceParams) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n Utils.extend(instanceParams, module.params);\n }\n });\n }\n\n useModules(modulesParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n const moduleParams = modulesParams[moduleName] || {};\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach((modulePropName) => {\n const moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach((moduleEventName) => {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n\n static set components(components) {\n const Class = this;\n if (!Class.use) return;\n Class.use(components);\n }\n\n static installModule(module, ...params) {\n const Class = this;\n if (!Class.prototype.modules) Class.prototype.modules = {};\n const name = module.name || (`${Object.keys(Class.prototype.modules).length}_${Utils.now()}`);\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach((key) => {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach((key) => {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n }\n\n static use(module, ...params) {\n const Class = this;\n if (Array.isArray(module)) {\n module.forEach(m => Class.installModule(m));\n return Class;\n }\n return Class.installModule(module, ...params);\n }\n}\n\nfunction updateSize () {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined') {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined') {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\n height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\n\n Utils.extend(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height,\n });\n}\n\nfunction updateSlides () {\n const swiper = this;\n const params = swiper.params;\n\n const {\n $wrapperEl, size: swiperSize, rtlTranslate: rtl, wrongRTL,\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.snapGrid.length;\n\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index$$1 = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n if (rtl) slides.css({ marginLeft: '', marginTop: '' });\n else slides.css({ marginRight: '', marginBottom: '' });\n\n let slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n }\n\n // Calc slides\n let slideSize;\n const slidesPerColumn = params.slidesPerColumn;\n const slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n const numFullColumns = slidesPerRow - ((params.slidesPerColumn * slidesPerRow) - slidesLength);\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - (column * slidesPerColumn);\n if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn);\n slide\n .css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex,\n });\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - (row * slidesPerRow);\n }\n slide\n .css(\n `margin-${swiper.isHorizontal() ? 'top' : 'left'}`,\n (row !== 0 && params.spaceBetween) && (`${params.spaceBetween}px`)\n )\n .attr('data-swiper-column', column)\n .attr('data-swiper-row', row);\n }\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n const slideStyles = window.getComputedStyle(slide[0], null);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal()\n ? slide.outerWidth(true)\n : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n slideSize = parseFloat(slideStyles.getPropertyValue('width'))\n + parseFloat(slideStyles.getPropertyValue('margin-left'))\n + parseFloat(slideStyles.getPropertyValue('margin-right'));\n } else {\n slideSize = parseFloat(slideStyles.getPropertyValue('height'))\n + parseFloat(slideStyles.getPropertyValue('margin-top'))\n + parseFloat(slideStyles.getPropertyValue('margin-bottom'));\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = `${slideSize}px`;\n } else {\n slides[i].style.height = `${slideSize}px`;\n }\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\n if (i === 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index$$1) % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index$$1) % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n\n prevSlideSize = slideSize;\n\n index$$1 += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n let newSlidesGrid;\n\n if (\n rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n if (!Support.flexbox || params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid = newSlidesGrid;\n }\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.css({ marginLeft: `${spaceBetween}px` });\n else slides.css({ marginRight: `${spaceBetween}px` });\n } else slides.css({ marginBottom: `${spaceBetween}px` });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Utils.extend(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid,\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}\n\nfunction updateAutoHeight (speed) {\n const swiper = this;\n const activeSlides = [];\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index$$1 = swiper.activeIndex + i;\n if (index$$1 > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index$$1)[0]);\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}\n\nfunction updateSlidesOffset () {\n const swiper = this;\n const slides = swiper.slides;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}\n\nfunction updateSlidesProgress (translate = (this && this.translate) || 0) {\n const swiper = this;\n const params = swiper.params;\n\n const { slides, rtlTranslate: rtl } = swiper;\n\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.removeClass(params.slideVisibleClass);\n\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n const slideProgress = (\n (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset\n ) / (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility) {\n const slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = (slideBefore >= 0 && slideBefore < swiper.size)\n || (slideAfter > 0 && slideAfter <= swiper.size)\n || (slideBefore <= 0 && slideAfter >= swiper.size);\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n swiper.visibleSlides = $(swiper.visibleSlides);\n}\n\nfunction updateProgress (translate = (this && this.translate) || 0) {\n const swiper = this;\n const params = swiper.params;\n\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let { progress, isBeginning, isEnd } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / (translatesDiff);\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n Utils.extend(swiper, {\n progress,\n isBeginning,\n isEnd,\n });\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}\n\nfunction updateSlidesClasses () {\n const swiper = this;\n\n const {\n slides, params, $wrapperEl, activeIndex, realIndex,\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n\n let activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n }\n\n // Active classes\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n }\n }\n}\n\nfunction updateActiveIndex (newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid, snapGrid, params, activeIndex: previousIndex, realIndex: previousRealIndex, snapIndex: previousSnapIndex,\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n snapIndex = Math.floor(activeIndex / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n\n // Get real index\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n\n Utils.extend(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex,\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n}\n\nfunction updateClickedSlide (e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e.target).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide,\n};\n\nfunction getTranslate (axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n\n const {\n params, rtlTranslate: rtl, translate, $wrapperEl,\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n let currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n\n return currentTranslate || 0;\n}\n\nfunction setTranslate (translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl, params, $wrapperEl, progress,\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (!params.virtualTranslate) {\n if (Support.transforms3d) $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n else $wrapperEl.transform(`translate(${x}px, ${y}px)`);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate () {\n return (-this.snapGrid[0]);\n}\n\nfunction maxTranslate () {\n return (-this.snapGrid[this.snapGrid.length - 1]);\n}\n\nvar translate = {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n};\n\nfunction setTransition (duration, byController) {\n const swiper = this;\n\n swiper.$wrapperEl.transition(duration);\n\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionStart (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, params, previousIndex } = swiper;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}\n\nfunction transitionEnd$1 (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, previousIndex } = swiper;\n swiper.animating = false;\n swiper.setTransition(0);\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}\n\nvar transition$1 = {\n setTransition,\n transitionStart,\n transitionEnd: transitionEnd$1,\n};\n\nfunction slideTo (index$$1 = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let slideIndex = index$$1;\n if (slideIndex < 0) slideIndex = 0;\n\n const {\n params, snapGrid, slidesGrid, previousIndex, activeIndex, rtlTranslate: rtl,\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n let snapIndex = Math.floor(slideIndex / params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex];\n\n // Update progress\n swiper.updateProgress(translate);\n\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';\n else if (slideIndex < activeIndex) direction = 'prev';\n else direction = 'reset';\n\n\n // Update Index\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n\n if (speed === 0 || !Support.transition) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd$$1(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}\n\nfunction slideToLoop (index$$1 = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index$$1;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const { params, animating } = swiper;\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params, animating, snapGrid, slidesGrid, rtlTranslate,\n } = swiper;\n\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n const normalizedSlidesGrid = slidesGrid.map(val => normalize(val));\n\n const currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n const prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n let prevIndex;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let index$$1 = swiper.activeIndex;\n const snapIndex = Math.floor(index$$1 / swiper.params.slidesPerGroup);\n\n if (snapIndex < swiper.snapGrid.length - 1) {\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if ((translate - currentSnap) > (nextSnap - currentSnap) / 2) {\n index$$1 = swiper.params.slidesPerGroup;\n }\n }\n\n return swiper.slideTo(index$$1, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (\n (slideToIndex < swiper.loopedSlides - (slidesPerView / 2))\n || (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2))\n ) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide,\n};\n\nfunction loopCreate () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n // Remove duplicated slides\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n\n let slides = $wrapperEl.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n\n swiper.loopedSlides = parseInt(params.loopedSlides || params.slidesPerView, 10);\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((index$$1, el) => {\n const slide = $(el);\n if (index$$1 < swiper.loopedSlides) appendSlides.push(el);\n if (index$$1 < slides.length && index$$1 >= slides.length - swiper.loopedSlides) prependSlides.push(el);\n slide.attr('data-swiper-slide-index', index$$1);\n });\n for (let i = 0; i < appendSlides.length; i += 1) {\n $wrapperEl.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $wrapperEl.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}\n\nfunction loopFix () {\n const swiper = this;\n const {\n params, activeIndex, slides, loopedSlides, allowSlidePrev, allowSlideNext, snapGrid, rtlTranslate: rtl,\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate();\n\n\n // Fix For Negative Oversliding\n if (activeIndex < loopedSlides) {\n newIndex = (slides.length - (loopedSlides * 3)) + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if ((params.slidesPerView === 'auto' && activeIndex >= loopedSlides * 2) || (activeIndex >= slides.length - loopedSlides)) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n}\n\nfunction loopDestroy () {\n const swiper = this;\n const { $wrapperEl, params, slides } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy,\n};\n\nfunction setGrabCursor (moving) {\n const swiper = this;\n if (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked)) return;\n const el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}\n\nfunction unsetGrabCursor () {\n const swiper = this;\n if (Support.touch || (swiper.params.watchOverflow && swiper.isLocked)) return;\n swiper.el.style.cursor = '';\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor,\n};\n\nfunction appendSlide (slides) {\n const swiper = this;\n const { $wrapperEl, params } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n}\n\nfunction prependSlide (slides) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide (index$$1, slides) {\n const swiper = this;\n const { $wrapperEl, params, activeIndex } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n const baseLength = swiper.slides.length;\n if (index$$1 <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index$$1 >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index$$1 ? activeIndexBuffer + 1 : activeIndexBuffer;\n\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index$$1; i -= 1) {\n const currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index$$1 ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeSlide (slidesIndexes) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeAllSlides () {\n const swiper = this;\n\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n\nvar manipulation = {\n appendSlide,\n prependSlide,\n addSlide,\n removeSlide,\n removeAllSlides,\n};\n\nconst Device = (function Device() {\n const ua = window.navigator.userAgent;\n\n const device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n windows: false,\n iphone: false,\n ipod: false,\n ipad: false,\n cordova: window.cordova || window.phonegap,\n phonegap: window.cordova || window.phonegap,\n };\n\n const windows = ua.match(/(Windows Phone);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n const ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n\n\n // Windows\n if (windows) {\n device.os = 'windows';\n device.osVersion = windows[2];\n device.windows = true;\n }\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.iphone = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Desktop\n device.desktop = !(device.os || device.android || device.webView);\n\n // Webview\n device.webView = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i);\n\n // Minimal UI\n if (device.os && device.os === 'ios') {\n const osVersionArr = device.osVersion.split('.');\n const metaViewport = document.querySelector('meta[name=\"viewport\"]');\n device.minimalUi = !device.webView\n && (ipod || iphone)\n && (osVersionArr[0] * 1 === 7 ? osVersionArr[1] * 1 >= 1 : osVersionArr[0] * 1 > 7)\n && metaViewport && metaViewport.getAttribute('content').indexOf('minimal-ui') >= 0;\n }\n\n // Pixel Ratio\n device.pixelRatio = window.devicePixelRatio || 1;\n\n // Export object\n return device;\n}());\n\nfunction onTouchStart (event) {\n const swiper = this;\n const data$$1 = swiper.touchEventsData;\n const { params, touches } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n data$$1.isTouchEvent = e.type === 'touchstart';\n if (!data$$1.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data$$1.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data$$1.isTouched && data$$1.isMoved) return;\n if (params.noSwiping && $(e.target).closest(params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`)[0]) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$(e).closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (\n edgeSwipeDetection\n && ((startX <= edgeSwipeThreshold)\n || (startX >= window.screen.width - edgeSwipeThreshold))\n ) {\n return;\n }\n\n Utils.extend(data$$1, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined,\n });\n\n touches.startX = startX;\n touches.startY = startY;\n data$$1.touchStartTime = Utils.now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data$$1.allowThresholdMove = false;\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($(e.target).is(data$$1.formElements)) preventDefault = false;\n if (\n document.activeElement\n && $(document.activeElement).is(data$$1.formElements)\n && document.activeElement !== e.target\n ) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove (event) {\n const swiper = this;\n const data$$1 = swiper.touchEventsData;\n const { params, touches, rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data$$1.isTouched) {\n if (data$$1.startMoving && data$$1.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data$$1.isTouchEvent && e.type === 'mousemove') return;\n const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data$$1.isTouched) {\n Utils.extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n });\n data$$1.touchStartTime = Utils.now();\n }\n return;\n }\n if (data$$1.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate())\n || (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\n ) {\n data$$1.isTouched = false;\n data$$1.isMoved = false;\n return;\n }\n } else if (\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate())\n || (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\n ) {\n return;\n }\n }\n if (data$$1.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data$$1.formElements)) {\n data$$1.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data$$1.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n\n touches.currentX = pageX;\n touches.currentY = pageY;\n\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt((diffX ** 2) + (diffY ** 2)) < swiper.params.threshold) return;\n\n if (typeof data$$1.isScrolling === 'undefined') {\n let touchAngle;\n if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) {\n data$$1.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if ((diffX * diffX) + (diffY * diffY) >= 25) {\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\n data$$1.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle);\n }\n }\n }\n if (data$$1.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data$$1.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data$$1.startMoving = true;\n }\n }\n if (data$$1.isScrolling) {\n data$$1.isTouched = false;\n return;\n }\n if (!data$$1.startMoving) {\n return;\n }\n swiper.allowClick = false;\n e.preventDefault();\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data$$1.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data$$1.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data$$1.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data$$1.isMoved = true;\n\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data$$1.currentTranslate = diff + data$$1.startTranslate;\n\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if ((diff > 0 && data$$1.currentTranslate > swiper.minTranslate())) {\n disableParentSwiper = false;\n if (params.resistance) data$$1.currentTranslate = (swiper.minTranslate() - 1) + ((-swiper.minTranslate() + data$$1.startTranslate + diff) ** resistanceRatio);\n } else if (diff < 0 && data$$1.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data$$1.currentTranslate = (swiper.maxTranslate() + 1) - ((swiper.maxTranslate() - data$$1.startTranslate - diff) ** resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data$$1.currentTranslate < data$$1.startTranslate) {\n data$$1.currentTranslate = data$$1.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data$$1.currentTranslate > data$$1.startTranslate) {\n data$$1.currentTranslate = data$$1.startTranslate;\n }\n\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data$$1.allowThresholdMove) {\n if (!data$$1.allowThresholdMove) {\n data$$1.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data$$1.currentTranslate = data$$1.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data$$1.currentTranslate = data$$1.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger) return;\n\n // Update active index in free mode\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode) {\n // Velocity\n if (data$$1.velocities.length === 0) {\n data$$1.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data$$1.touchStartTime,\n });\n }\n data$$1.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: Utils.now(),\n });\n }\n // Update progress\n swiper.updateProgress(data$$1.currentTranslate);\n // Update translate\n swiper.setTranslate(data$$1.currentTranslate);\n}\n\nfunction onTouchEnd (event) {\n const swiper = this;\n const data$$1 = swiper.touchEventsData;\n\n const {\n params, touches, rtlTranslate: rtl, $wrapperEl, slidesGrid, snapGrid,\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data$$1.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data$$1.allowTouchCallbacks = false;\n if (!data$$1.isTouched) {\n if (data$$1.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data$$1.isMoved = false;\n data$$1.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data$$1.isMoved && data$$1.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = Utils.now();\n const timeDiff = touchEndTime - data$$1.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap', e);\n if (timeDiff < 300 && (touchEndTime - data$$1.lastClickTime) > 300) {\n if (data$$1.clickTimeout) clearTimeout(data$$1.clickTimeout);\n data$$1.clickTimeout = Utils.nextTick(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.emit('click', e);\n }, 300);\n }\n if (timeDiff < 300 && (touchEndTime - data$$1.lastClickTime) < 300) {\n if (data$$1.clickTimeout) clearTimeout(data$$1.clickTimeout);\n swiper.emit('doubleTap', e);\n }\n }\n\n data$$1.lastClickTime = Utils.now();\n Utils.nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data$$1.isTouched || !data$$1.isMoved || !swiper.swipeDirection || touches.diff === 0 || data$$1.currentTranslate === data$$1.startTranslate) {\n data$$1.isTouched = false;\n data$$1.isMoved = false;\n data$$1.startMoving = false;\n return;\n }\n data$$1.isTouched = false;\n data$$1.isMoved = false;\n data$$1.startMoving = false;\n\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data$$1.currentTranslate;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data$$1.velocities.length > 1) {\n const lastMoveEvent = data$$1.velocities.pop();\n const velocityEvent = data$$1.velocities.pop();\n\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n\n data$$1.velocities.length = 0;\n let momentumDuration = 1000 * params.freeModeMomentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data$$1.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data$$1.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed || !data$$1.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n\n swiper.setTransition(params.speed);\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += params.slidesPerGroup) {\n if (typeof slidesGrid[i + params.slidesPerGroup] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + params.slidesPerGroup]) {\n stopIndex = i;\n groupSize = slidesGrid[i + params.slidesPerGroup] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + params.slidesPerGroup);\n else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > (1 - params.longSwipesRatio)) swiper.slideTo(stopIndex + params.slidesPerGroup);\n else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + params.slidesPerGroup);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize () {\n const swiper = this;\n\n const { params, el } = swiper;\n\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const { allowSlideNext, allowSlidePrev, snapGrid } = swiper;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n\n swiper.updateSize();\n swiper.updateSlides();\n\n if (params.freeMode) {\n const newTranslate = Math.min(Math.max(swiper.translate, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n swiper.updateSlidesClasses();\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick (e) {\n const swiper = this;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction attachEvents() {\n const swiper = this;\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n {\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n const target = params.touchEventsTarget === 'container' ? el : wrapperEl;\n const capture = !!params.nested;\n\n // Touch Events\n {\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n target.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n target.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture } : capture);\n target.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n target.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n target.addEventListener('click', swiper.onClick, true);\n }\n }\n\n // Resize handler\n swiper.on((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize, true);\n}\n\nfunction detachEvents() {\n const swiper = this;\n\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n const target = params.touchEventsTarget === 'container' ? el : wrapperEl;\n const capture = !!params.nested;\n\n // Touch Events\n {\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n target.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n target.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n target.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n target.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n target.removeEventListener('click', swiper.onClick, true);\n }\n }\n\n // Resize handler\n swiper.off((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize);\n}\n\nvar events = {\n attachEvents,\n detachEvents,\n};\n\nfunction setBreakpoint () {\n const swiper = this;\n const {\n activeIndex, initialized, loopedSlides = 0, params,\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return;\n\n // Set breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup'].forEach((param) => {\n const paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView);\n\n Utils.extend(swiper.params, breakpointParams);\n\n Utils.extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n });\n\n swiper.currentBreakpoint = breakpoint;\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false);\n }\n swiper.emit('breakpoint', breakpointParams);\n }\n}\n\nfunction getBreakpoint (breakpoints) {\n const swiper = this;\n // Get breakpoint for window width\n if (!breakpoints) return undefined;\n let breakpoint = false;\n const points = [];\n Object.keys(breakpoints).forEach((point) => {\n points.push(point);\n });\n points.sort((a, b) => parseInt(a, 10) - parseInt(b, 10));\n for (let i = 0; i < points.length; i += 1) {\n const point = points[i];\n if (swiper.params.breakpointsInverse) {\n if (point <= window.innerWidth) {\n breakpoint = point;\n }\n } else if (point >= window.innerWidth && !breakpoint) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = { setBreakpoint, getBreakpoint };\n\nconst Browser = (function Browser() {\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\n }\n return {\n isIE: !!window.navigator.userAgent.match(/Trident/g) || !!window.navigator.userAgent.match(/MSIE/g),\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\n };\n}());\n\nfunction addClasses () {\n const swiper = this;\n const {\n classNames, params, rtl, $el,\n } = swiper;\n const suffixes = [];\n\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n if (!Support.flexbox) {\n suffixes.push('no-flexbox');\n }\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n if (rtl) {\n suffixes.push('rtl');\n }\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n }\n if (Device.android) {\n suffixes.push('android');\n }\n if (Device.ios) {\n suffixes.push('ios');\n }\n // WP8 Touch Events Fix\n if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n suffixes.push(`wp8-${params.direction}`);\n }\n\n suffixes.forEach((suffix) => {\n classNames.push(params.containerModifierClass + suffix);\n });\n\n $el.addClass(classNames.join(' '));\n}\n\nfunction removeClasses () {\n const swiper = this;\n const { $el, classNames } = swiper;\n\n $el.removeClass(classNames.join(' '));\n}\n\nvar classes = { addClasses, removeClasses };\n\nfunction loadImage (imageEl, src, srcset, sizes, checkForComplete, callback) {\n let image;\n function onReady() {\n if (callback) callback();\n }\n if (!imageEl.complete || !checkForComplete) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}\n\nfunction preloadImages () {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(\n imageEl,\n imageEl.currentSrc || imageEl.getAttribute('src'),\n imageEl.srcset || imageEl.getAttribute('srcset'),\n imageEl.sizes || imageEl.getAttribute('sizes'),\n true,\n onReady\n );\n }\n}\n\nvar images = {\n loadImage,\n preloadImages,\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const wasLocked = swiper.isLocked;\n\n swiper.isLocked = swiper.snapGrid.length === 1;\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked;\n\n // events\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n swiper.navigation.update();\n }\n}\n\nvar checkOverflow$1 = { checkOverflow };\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n //\n preventInteractionOnTransition: false,\n\n // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n\n // Autoheight\n autoHeight: false,\n\n // Set wrapper width\n setWrapperSize: false,\n\n // Virtual Translate\n virtualTranslate: false,\n\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsInverse: false,\n\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n centeredSlides: false,\n slidesOffsetBefore: 0, // in px\n slidesOffsetAfter: 0, // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n\n // Round length\n roundLengths: false,\n\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: true,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n\n // Unique Navigation Elements\n uniqueNavElements: true,\n\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n\n // Cursor\n grabCursor: false,\n\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null, // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n\n // Passive Listeners\n passiveListeners: true,\n\n // NS\n containerModifierClass: 'swiper-container-', // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n\n // Callbacks\n runCallbacksOnInit: true,\n};\n\nconst prototypes = {\n update,\n translate,\n transition: transition$1,\n slide,\n loop,\n grabCursor,\n manipulation,\n events,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes,\n images,\n};\n\nconst extendedDefaults = {};\n\nclass Swiper extends SwiperClass {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n\n params = Utils.extend({}, params);\n if (el && !params.el) params.el = el;\n\n super(params);\n\n Object.keys(prototypes).forEach((prototypeGroup) => {\n Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => {\n if (!Swiper.prototype[protoMethod]) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n }\n });\n });\n\n // Swiper Instance\n const swiper = this;\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach((moduleName) => {\n const module = swiper.modules[moduleName];\n if (module.params) {\n const moduleParamName = Object.keys(module.params)[0];\n const moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n if (params[moduleParamName] === true) {\n params[moduleParamName] = { enabled: true };\n }\n if (\n typeof params[moduleParamName] === 'object'\n && !('enabled' in params[moduleParamName])\n ) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = { enabled: false };\n }\n });\n\n // Extend defaults with modules params\n const swiperParams = Utils.extend({}, defaults);\n swiper.useModulesParams(swiperParams);\n\n // Extend defaults with passed params\n swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = Utils.extend({}, swiper.params);\n swiper.passedParams = Utils.extend({}, params);\n\n // Save Dom lib\n swiper.$ = $;\n\n // Find el\n const $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n const swipers = [];\n $el.each((index$$1, containerEl) => {\n const newParams = Utils.extend({}, params, { el: containerEl });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper;\n $el.data('swiper', swiper);\n\n // Find Wrapper\n const $wrapperEl = $el.children(`.${swiper.params.wrapperClass}`);\n\n // Extend Swiper\n Utils.extend(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n\n // Classes\n classNames: [],\n\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n\n //\n isBeginning: true,\n isEnd: false,\n\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n\n // Touch Events\n touchEvents: (function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend'];\n let desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (Support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n } else if (Support.prefixedPointerEvents) {\n desktop = ['MSPointerDown', 'MSPointerMove', 'MSPointerUp'];\n }\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2],\n };\n return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }()),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video',\n // Last click time\n lastClickTime: Utils.now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined,\n },\n\n // Clicks\n allowClick: true,\n\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0,\n },\n\n // Images\n imagesToLoad: [],\n imagesLoaded: 0,\n\n });\n\n // Install Modules\n swiper.useModules();\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n return swiper;\n }\n\n slidesPerViewDynamic() {\n const swiper = this;\n const {\n params, slides, slidesGrid, size: swiperSize, activeIndex,\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slidesGrid[i] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const { snapGrid, params } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (swiper.params.freeMode) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n\n init() {\n const swiper = this;\n if (swiper.initialized) return;\n\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n }\n\n // Attach events\n swiper.attachEvents();\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params, $el, $wrapperEl, slides,\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides\n .removeClass([\n params.slideVisibleClass,\n params.slideActiveClass,\n params.slideNextClass,\n params.slidePrevClass,\n ].join(' '))\n .removeAttr('style')\n .removeAttr('data-swiper-slide-index')\n .removeAttr('data-swiper-column')\n .removeAttr('data-swiper-row');\n }\n }\n\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach((eventName) => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n swiper.$el.data('swiper', null);\n Utils.deleteProps(swiper);\n }\n swiper.destroyed = true;\n\n return null;\n }\n\n static extendDefaults(newDefaults) {\n Utils.extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static get Class() {\n return SwiperClass;\n }\n\n static get $() {\n return $;\n }\n}\n\nvar Device$1 = {\n name: 'device',\n proto: {\n device: Device,\n },\n static: {\n device: Device,\n },\n};\n\nvar Support$1 = {\n name: 'support',\n proto: {\n support: Support,\n },\n static: {\n support: Support,\n },\n};\n\nvar Browser$1 = {\n name: 'browser',\n proto: {\n browser: Browser,\n },\n static: {\n browser: Browser,\n },\n};\n\nvar Resize = {\n name: 'resize',\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n resize: {\n resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n },\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n // Emit resize\n window.addEventListener('resize', swiper.resize.resizeHandler);\n\n // Emit orientationchange\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy() {\n const swiper = this;\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n },\n};\n\nconst Observer = {\n func: window.MutationObserver || window.WebkitMutationObserver,\n attach(target, options = {}) {\n const swiper = this;\n\n const ObserverFunc = Observer.func;\n const observer = new ObserverFunc((mutations) => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData,\n });\n\n swiper.observer.observers.push(observer);\n },\n init() {\n const swiper = this;\n if (!Support.observer || !swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n for (let i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n }\n // Observe container\n swiper.observer.attach(swiper.$el[0], { childList: false });\n\n // Observe wrapper\n swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\n },\n destroy() {\n const swiper = this;\n swiper.observer.observers.forEach((observer) => {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n },\n};\n\nvar Observer$1 = {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n observer: {\n init: Observer.init.bind(swiper),\n attach: Observer.attach.bind(swiper),\n destroy: Observer.destroy.bind(swiper),\n observers: [],\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.observer.init();\n },\n destroy() {\n const swiper = this;\n swiper.observer.destroy();\n },\n },\n};\n\nconst Virtual = {\n update(force) {\n const swiper = this;\n const { slidesPerView, slidesPerGroup, centeredSlides } = swiper.params;\n const { addSlidesBefore, addSlidesAfter } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n renderSlide,\n offset: previousOffset,\n } = swiper.virtual;\n swiper.updateActiveIndex();\n const activeIndex = swiper.activeIndex || 0;\n\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';\n else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore;\n slidesBefore = slidesPerGroup + addSlidesAfter;\n }\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset$$1 = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n\n Utils.extend(swiper.virtual, {\n from,\n to,\n offset: offset$$1,\n slidesGrid: swiper.slidesGrid,\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset$$1 !== previousOffset) {\n swiper.slides.css(offsetProp, `${offset$$1}px`);\n }\n swiper.updateProgress();\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset: offset$$1,\n from,\n to,\n slides: (function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()),\n });\n onRendered();\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`).remove();\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n if (i >= from && i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i);\n } else {\n if (i > previousTo) appendIndexes.push(i);\n if (i < previousFrom) prependIndexes.push(i);\n }\n }\n }\n appendIndexes.forEach((index$$1) => {\n swiper.$wrapperEl.append(renderSlide(slides[index$$1], index$$1));\n });\n prependIndexes.sort((a, b) => b - a).forEach((index$$1) => {\n swiper.$wrapperEl.prepend(renderSlide(slides[index$$1], index$$1));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset$$1}px`);\n onRendered();\n },\n renderSlide(slide, index$$1) {\n const swiper = this;\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index$$1]) {\n return swiper.virtual.cache[index$$1];\n }\n const $slideEl = params.renderSlide\n ? $(params.renderSlide.call(swiper, slide, index$$1))\n : $(`
`);\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index$$1);\n if (params.cache) swiper.virtual.cache[index$$1] = $slideEl;\n return $slideEl;\n },\n appendSlide(slide) {\n const swiper = this;\n swiper.virtual.slides.push(slide);\n swiper.virtual.update(true);\n },\n prependSlide(slide) {\n const swiper = this;\n swiper.virtual.slides.unshift(slide);\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach((cachedIndex) => {\n newCache[cachedIndex + 1] = cache[cachedIndex];\n });\n swiper.virtual.cache = newCache;\n }\n swiper.virtual.update(true);\n swiper.slideNext(0);\n },\n};\n\nvar Virtual$1 = {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n addSlidesBefore: 0,\n addSlidesAfter: 0,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n virtual: {\n update: Virtual.update.bind(swiper),\n appendSlide: Virtual.appendSlide.bind(swiper),\n prependSlide: Virtual.prependSlide.bind(swiper),\n renderSlide: Virtual.renderSlide.bind(swiper),\n slides: swiper.params.virtual.slides,\n cache: {},\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n const overwriteParams = {\n watchSlidesProgress: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n },\n },\n};\n\nconst Keyboard = {\n handle(event) {\n const swiper = this;\n const { rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n // Directions locks\n if (!swiper.allowSlideNext && ((swiper.isHorizontal() && kc === 39) || (swiper.isVertical() && kc === 40))) {\n return false;\n }\n if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && kc === 37) || (swiper.isVertical() && kc === 38))) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (kc === 37 || kc === 39 || kc === 38 || kc === 40)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [\n [swiperOffset.left, swiperOffset.top],\n [swiperOffset.left + swiper.width, swiperOffset.top],\n [swiperOffset.left, swiperOffset.top + swiper.height],\n [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height],\n ];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (\n point[0] >= 0 && point[0] <= windowWidth\n && point[1] >= 0 && point[1] <= windowHeight\n ) {\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (kc === 37 || kc === 39) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if ((kc === 39 && !rtl) || (kc === 37 && rtl)) swiper.slideNext();\n if ((kc === 37 && !rtl) || (kc === 39 && rtl)) swiper.slidePrev();\n } else {\n if (kc === 38 || kc === 40) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (kc === 40) swiper.slideNext();\n if (kc === 38) swiper.slidePrev();\n }\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable() {\n const swiper = this;\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable() {\n const swiper = this;\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n },\n};\n\nvar Keyboard$1 = {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n keyboard: {\n enabled: false,\n enable: Keyboard.enable.bind(swiper),\n disable: Keyboard.disable.bind(swiper),\n handle: Keyboard.handle.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n },\n },\n};\n\nfunction isEventSupported() {\n const eventName = 'onwheel';\n let isSupported = eventName in document;\n\n if (!isSupported) {\n const element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported\n && document.implementation\n && document.implementation.hasFeature\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n && document.implementation.hasFeature('', '') !== true\n ) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\nconst Mousewheel = {\n lastScrollTime: Utils.now(),\n event: (function getEvent() {\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n }()),\n normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = (pX < 1) ? -1 : 1;\n }\n if (pY && !sY) {\n sY = (pY < 1) ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY,\n };\n },\n handleMouseEnter() {\n const swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave() {\n const swiper = this;\n swiper.mouseEntered = false;\n },\n handle(event) {\n let e = event;\n const swiper = this;\n const params = swiper.params.mousewheel;\n\n if (!swiper.mouseEntered && !params.releaseOnEdges) return true;\n\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n\n const data$$1 = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data$$1.pixelX) > Math.abs(data$$1.pixelY)) delta = data$$1.pixelX * rtlFactor;\n else return true;\n } else if (Math.abs(data$$1.pixelY) > Math.abs(data$$1.pixelX)) delta = data$$1.pixelY;\n else return true;\n } else {\n delta = Math.abs(data$$1.pixelX) > Math.abs(data$$1.pixelY) ? -data$$1.pixelX * rtlFactor : -data$$1.pixelY;\n }\n\n if (delta === 0) return true;\n\n if (params.invert) delta = -delta;\n\n if (!swiper.params.freeMode) {\n if (Utils.now() - swiper.mousewheel.lastScrollTime > 60) {\n if (delta < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', e);\n } else if (params.releaseOnEdges) return true;\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', e);\n } else if (params.releaseOnEdges) return true;\n }\n swiper.mousewheel.lastScrollTime = (new window.Date()).getTime();\n } else {\n // Freemode or scrollContainer:\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n let position = swiper.getTranslate() + (delta * params.sensitivity);\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = Utils.nextTick(() => {\n swiper.slideToClosest();\n }, 300);\n }\n // Emit event\n swiper.emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n return false;\n },\n enable() {\n const swiper = this;\n if (!Mousewheel.event) return false;\n if (swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(Mousewheel.event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable() {\n const swiper = this;\n if (!Mousewheel.event) return false;\n if (!swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.off(Mousewheel.event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n },\n};\n\nvar Mousewheel$1 = {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarged: 'container',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n mousewheel: {\n enabled: false,\n enable: Mousewheel.enable.bind(swiper),\n disable: Mousewheel.disable.bind(swiper),\n handle: Mousewheel.handle.bind(swiper),\n handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper),\n handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper),\n lastScrollTime: Utils.now(),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy() {\n const swiper = this;\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n },\n },\n};\n\nconst Navigation = {\n update() {\n // Update Navigation Buttons\n const swiper = this;\n const params = swiper.params.navigation;\n\n if (swiper.params.loop) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init() {\n const swiper = this;\n const params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n\n let $nextEl;\n let $prevEl;\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.nextEl === 'string'\n && $nextEl.length > 1\n && swiper.$el.find(params.nextEl).length === 1\n ) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.prevEl === 'string'\n && $prevEl.length > 1\n && swiper.$el.find(params.prevEl).length === 1\n ) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n Utils.extend(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0],\n });\n },\n destroy() {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n },\n};\n\nvar Navigation$1 = {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n navigation: {\n init: Navigation.init.bind(swiper),\n update: Navigation.update.bind(swiper),\n destroy: Navigation.destroy.bind(swiper),\n onNextClick: Navigation.onNextClick.bind(swiper),\n onPrevClick: Navigation.onPrevClick.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n fromEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n destroy() {\n const swiper = this;\n swiper.navigation.destroy();\n },\n click(e) {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if (\n swiper.params.navigation.hideOnClick\n && !$(e.target).is($prevEl)\n && !$(e.target).is($nextEl)\n ) {\n if ($nextEl) $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n if ($prevEl) $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n },\n },\n};\n\nconst Pagination = {\n update() {\n // Render || Update Pagination bullets/items\n const swiper = this;\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n // Current/Total\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) {\n current -= (slidesLength - (swiper.loopedSlides * 2));\n }\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)}px`);\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += (current - swiper.previousIndex);\n if (swiper.pagination.dynamicBulletIndex > (params.dynamicMainBullets - 1)) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(`${params.bulletActiveClass} ${params.bulletActiveClass}-next ${params.bulletActiveClass}-next-next ${params.bulletActiveClass}-prev ${params.bulletActiveClass}-prev-prev ${params.bulletActiveClass}-main`);\n if ($el.length > 1) {\n bullets.each((index$$1, bullet) => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n if (bulletIndex === firstIndex) {\n $bullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n }\n if (bulletIndex === lastIndex) {\n $bullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize);\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n if (params.type === 'fraction') {\n $el.find(`.${params.currentClass}`).text(params.formatFractionCurrent(current + 1));\n $el.find(`.${params.totalClass}`).text(params.formatFractionTotal(total));\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el.find(`.${params.progressbarFillClass}`).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', swiper, $el[0]);\n } else {\n swiper.emit('paginationUpdate', swiper, $el[0]);\n }\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render() {\n // Render Container\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n if (params.type === 'bullets') {\n const numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">${params.bulletElement}>`;\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(`.${params.bulletClass}`);\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = ``\n + ' / '\n + ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el) return;\n\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (\n swiper.params.uniqueNavElements\n && typeof params.el === 'string'\n && $el.length > 1\n && swiper.$el.find(params.el).length === 1\n ) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', `.${params.bulletClass}`, function onClick(e) {\n e.preventDefault();\n let index$$1 = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index$$1 += swiper.loopedSlides;\n swiper.slideTo(index$$1);\n });\n }\n\n Utils.extend(swiper.pagination, {\n $el,\n el: $el[0],\n });\n },\n destroy() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const $el = swiper.pagination.$el;\n\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n if (params.clickable) {\n $el.off('click', `.${params.bulletClass}`);\n }\n },\n};\n\nvar Pagination$1 = {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-', // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable', // NEW\n lockClass: 'swiper-pagination-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n pagination: {\n init: Pagination.init.bind(swiper),\n render: Pagination.render.bind(swiper),\n update: Pagination.update.bind(swiper),\n destroy: Pagination.destroy.bind(swiper),\n dynamicBulletIndex: 0,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy() {\n const swiper = this;\n swiper.pagination.destroy();\n },\n click(e) {\n const swiper = this;\n if (\n swiper.params.pagination.el\n && swiper.params.pagination.hideOnClick\n && swiper.pagination.$el.length > 0\n && !$(e.target).hasClass(swiper.params.pagination.bulletClass)\n ) {\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n },\n },\n};\n\nconst Scrollbar = {\n setTranslate() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const { scrollbar, rtlTranslate: rtl, progress } = swiper;\n const {\n dragSize, trackSize, $dragEl, $el,\n } = scrollbar;\n const params = swiper.params.scrollbar;\n\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n if (Support.transforms3d) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n } else {\n $dragEl.transform(`translateX(${newPos}px)`);\n }\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n if (Support.transforms3d) {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n } else {\n $dragEl.transform(`translateY(${newPos}px)`);\n }\n $dragEl[0].style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n\n const { scrollbar } = swiper;\n const { $dragEl, $el } = scrollbar;\n\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n const trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n\n const divider = swiper.size / swiper.virtualSize;\n const moveDivider = divider * (trackSize / swiper.size);\n let dragSize;\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = `${dragSize}px`;\n } else {\n $dragEl[0].style.height = `${dragSize}px`;\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n if (swiper.params.scrollbarHide) {\n $el[0].style.opacity = 0;\n }\n Utils.extend(scrollbar, {\n trackSize,\n divider,\n moveDivider,\n dragSize,\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n },\n setDragPosition(e) {\n const swiper = this;\n const { scrollbar, rtlTranslate: rtl } = swiper;\n const { $el, dragSize, trackSize } = scrollbar;\n\n let pointerPosition;\n if (swiper.isHorizontal()) {\n pointerPosition = ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageX : e.pageX || e.clientX);\n } else {\n pointerPosition = ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageY : e.pageY || e.clientY);\n }\n let positionRatio;\n positionRatio = ((pointerPosition) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio);\n\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart(e) {\n const swiper = this;\n const params = swiper.params.scrollbar;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n swiper.scrollbar.isTouched = true;\n e.preventDefault();\n e.stopPropagation();\n\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n\n clearTimeout(swiper.scrollbar.dragTimeout);\n\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove(e) {\n const swiper = this;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd(e) {\n const swiper = this;\n\n const params = swiper.params.scrollbar;\n const { scrollbar } = swiper;\n const { $el } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = Utils.nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const {\n scrollbar, touchEventsTouch, touchEventsDesktop, params,\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n const passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const {\n scrollbar, touchEventsTouch, touchEventsDesktop, params,\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n const passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const { scrollbar, $el: $swiperEl } = swiper;\n const params = swiper.params.scrollbar;\n\n let $el = $(params.el);\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n if ($dragEl.length === 0) {\n $dragEl = $(``);\n $el.append($dragEl);\n }\n\n Utils.extend(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0],\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.disableDraggable();\n },\n};\n\nvar Scrollbar$1 = {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n scrollbar: {\n init: Scrollbar.init.bind(swiper),\n destroy: Scrollbar.destroy.bind(swiper),\n updateSize: Scrollbar.updateSize.bind(swiper),\n setTranslate: Scrollbar.setTranslate.bind(swiper),\n setTransition: Scrollbar.setTransition.bind(swiper),\n enableDraggable: Scrollbar.enableDraggable.bind(swiper),\n disableDraggable: Scrollbar.disableDraggable.bind(swiper),\n setDragPosition: Scrollbar.setDragPosition.bind(swiper),\n onDragStart: Scrollbar.onDragStart.bind(swiper),\n onDragMove: Scrollbar.onDragMove.bind(swiper),\n onDragEnd: Scrollbar.onDragEnd.bind(swiper),\n isTouched: false,\n timeout: null,\n dragTimeout: null,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n resize() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n observerUpdate() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n setTranslate() {\n const swiper = this;\n swiper.scrollbar.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n swiper.scrollbar.setTransition(duration);\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.destroy();\n },\n },\n};\n\nconst Parallax = {\n setTransform(el, progress) {\n const swiper = this;\n const { rtl } = swiper;\n\n const $el = $(el);\n const rtlFactor = rtl ? -1 : 1;\n\n const p = $el.attr('data-swiper-parallax') || '0';\n let x = $el.attr('data-swiper-parallax-x');\n let y = $el.attr('data-swiper-parallax-y');\n const scale = $el.attr('data-swiper-parallax-scale');\n const opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if ((x).indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if ((y).indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress)));\n $el[0].style.opacity = currentOpacity;\n }\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\n } else {\n const currentScale = scale - ((scale - 1) * (1 - Math.abs(progress)));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n },\n setTranslate() {\n const swiper = this;\n const {\n $el, slides, progress, snapGrid,\n } = swiper;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]')\n .each((index$$1, el) => {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each((slideIndex, slideEl) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1));\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]')\n .each((index$$1, el) => {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition(duration = this.params.speed) {\n const swiper = this;\n const { $el } = swiper;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]')\n .each((index$$1, parallaxEl) => {\n const $parallaxEl = $(parallaxEl);\n let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n },\n};\n\nvar Parallax$1 = {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n parallax: {\n setTransform: Parallax.setTransform.bind(swiper),\n setTranslate: Parallax.setTranslate.bind(swiper),\n setTransition: Parallax.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init() {\n const swiper = this;\n if (!swiper.params.parallax) return;\n swiper.parallax.setTranslate();\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.parallax) return;\n swiper.parallax.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.parallax) return;\n swiper.parallax.setTransition(duration);\n },\n },\n};\n\nconst Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt(((x2 - x1) ** 2) + ((y2 - y1) ** 2));\n return distance;\n },\n // Events\n onGestureStart(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n if (!Support.gestures) {\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest('.swiper-slide');\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n gesture.$imageEl.transition(0);\n swiper.zoom.isScaling = true;\n },\n onGestureChange(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!Support.gestures) {\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (Support.gestures) {\n swiper.zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = (gesture.maxRatio - 1) + (((zoom.scale - gesture.maxRatio) + 1) ** 0.5);\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = (params.minRatio + 1) - (((params.minRatio - zoom.scale) + 1) ** 0.5);\n }\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n onGestureEnd(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!Support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) {\n return;\n }\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (Device.android) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (\n swiper.isHorizontal()\n && (\n (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x)\n || (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)\n )\n ) {\n image.isTouched = false;\n return;\n } if (\n !swiper.isHorizontal()\n && (\n (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y)\n || (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)\n )\n ) {\n image.isTouched = false;\n return;\n }\n }\n e.preventDefault();\n e.stopPropagation();\n\n image.isMoved = true;\n image.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX;\n image.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = (image.minX + 1) - (((image.minX - image.currentX) + 1) ** 0.8);\n }\n if (image.currentX > image.maxX) {\n image.currentX = (image.maxX - 1) + (((image.currentX - image.maxX) + 1) ** 0.8);\n }\n\n if (image.currentY < image.minY) {\n image.currentY = (image.minY + 1) - (((image.minY - image.currentY) + 1) ** 0.8);\n }\n if (image.currentY > image.maxY) {\n image.currentY = (image.maxY - 1) + (((image.currentY - image.maxY) + 1) ** 0.8);\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTouchEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n\n gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTransitionEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n }\n },\n // Toggle Zoom\n toggle(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in(e) {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture, image } = zoom;\n\n if (!gesture.$slideEl) {\n gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left;\n offsetY = gesture.$slideEl.offset().top;\n diffX = (offsetX + (slideWidth / 2)) - touchX;\n diffY = (offsetY + (slideHeight / 2)) - touchY;\n\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n\n translateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)), 0);\n translateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)), 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n out() {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture } = zoom;\n\n if (!gesture.$slideEl) {\n gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n gesture.$slideEl = undefined;\n },\n // Attach/Detach Events\n enable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.on('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener);\n }\n\n // Move image\n swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove);\n },\n disable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n\n swiper.zoom.enabled = false;\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.off('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener);\n }\n\n // Move image\n swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove);\n },\n};\n\nvar Zoom$1 = {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed',\n },\n },\n create() {\n const swiper = this;\n const zoom = {\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3,\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {},\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined,\n },\n };\n ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach((methodName) => {\n zoom[methodName] = Zoom[methodName].bind(swiper);\n });\n Utils.extend(swiper, {\n zoom,\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.zoom.disable();\n },\n touchStart(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap(e) {\n const swiper = this;\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n },\n};\n\nconst Lazy = {\n loadInSlide(index$$1, loadInDuplicate = true) {\n const swiper = this;\n const params = swiper.params.lazy;\n if (typeof index$$1 === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n const $slideEl = isVirtual\n ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index$$1}\"]`)\n : swiper.slides.eq(index$$1);\n\n let $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images = $images.add($slideEl[0]);\n }\n if ($images.length === 0) return;\n\n $images.each((imageIndex, imageEl) => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n\n swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, () => {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) return;\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n });\n\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load() {\n const swiper = this;\n const {\n $wrapperEl, params: swiperParams, slides, activeIndex,\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n\n let slidesPerView = swiperParams.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index$$1) {\n if (isVirtual) {\n if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index$$1}\"]`).length) {\n return true;\n }\n } else if (slides[index$$1]) return true;\n return false;\n }\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((elIndex, slideEl) => {\n const index$$1 = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index$$1);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {\n const amount = params.loadPrevNextAmount;\n const spv = slidesPerView;\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\n // Next Slides\n for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n // Prev Slides\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n },\n};\n\nvar Lazy$1 = {\n name: 'lazy',\n params: {\n lazy: {\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n lazy: {\n initialImageLoaded: false,\n load: Lazy.load.bind(swiper),\n loadInSlide: Lazy.loadInSlide.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n swiper.lazy.load();\n }\n },\n scroll() {\n const swiper = this;\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n resize() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n },\n};\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\nconst Controller = {\n LinearSpline: function LinearSpline(x, y) {\n const binarySearch = (function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }());\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1];\n };\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction(c) {\n const swiper = this;\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop\n ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid)\n : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate(setTranslate, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = ((translate - swiper.minTranslate()) * multiplier) + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition(duration, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n Utils.nextTick(() => {\n c.updateAutoHeight();\n });\n }\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n },\n};\nvar Controller$1 = {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide', // or 'container'\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n controller: {\n control: swiper.params.controller.control,\n getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper),\n setTranslate: Controller.setTranslate.bind(swiper),\n setTransition: Controller.setTransition.bind(swiper),\n },\n });\n },\n on: {\n update() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate(translate, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n },\n },\n};\n\nconst a11y = {\n makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey(e) {\n const swiper = this;\n const params = swiper.params.a11y;\n if (e.keyCode !== 13) return;\n const $targetEl = $(e.target);\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && $targetEl.is(`.${swiper.params.pagination.bulletClass}`)) {\n $targetEl[0].click();\n }\n },\n notify(message) {\n const swiper = this;\n const notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation() {\n const swiper = this;\n\n if (swiper.params.loop) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n }\n }\n },\n updatePagination() {\n const swiper = this;\n const params = swiper.params.a11y;\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each((bulletIndex, bulletEl) => {\n const $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/{{index}}/, $bulletEl.index() + 1));\n });\n }\n },\n init() {\n const swiper = this;\n\n swiper.$el.append(swiper.a11y.liveRegion);\n\n // Navigation\n const params = swiper.params.a11y;\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n swiper.a11y.makeElFocusable($nextEl);\n swiper.a11y.addElRole($nextEl, 'button');\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n swiper.a11y.makeElFocusable($prevEl);\n swiper.a11y.addElRole($prevEl, 'button');\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n }\n },\n};\nvar A11y = {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n a11y: {\n liveRegion: $(``),\n },\n });\n Object.keys(a11y).forEach((methodName) => {\n swiper.a11y[methodName] = a11y[methodName].bind(swiper);\n });\n },\n on: {\n init() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n },\n },\n};\n\nconst History = {\n init() {\n const swiper = this;\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n const history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues();\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState() {\n const swiper = this;\n swiper.history.paths = History.getPathValues();\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues() {\n const pathArray = window.location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return { key, value };\n },\n setHistory(key, index$$1) {\n const swiper = this;\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n const slide = swiper.slides.eq(index$$1);\n let value = History.slugify(slide.attr('data-history'));\n if (!window.location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({ value }, null, value);\n } else {\n window.history.pushState({ value }, null, value);\n }\n },\n slugify(text$$1) {\n return text$$1.toString().toLowerCase()\n .replace(/\\s+/g, '-')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n },\n scrollToSlide(speed, value, runCallbacks) {\n const swiper = this;\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = History.slugify(slide.attr('data-history'));\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index$$1 = slide.index();\n swiper.slideTo(index$$1, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n },\n};\n\nvar History$1 = {\n name: 'history',\n params: {\n history: {\n enabled: false,\n replaceState: false,\n key: 'slides',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n history: {\n init: History.init.bind(swiper),\n setHistory: History.setHistory.bind(swiper),\n setHistoryPopState: History.setHistoryPopState.bind(swiper),\n scrollToSlide: History.scrollToSlide.bind(swiper),\n destroy: History.destroy.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n },\n};\n\nconst HashNavigation = {\n onHashCange() {\n const swiper = this;\n const newHash = document.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n },\n setHash() {\n const swiper = this;\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, (`#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || ''));\n } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) return;\n swiper.hashNavigation.initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index$$1 = slide.index();\n swiper.slideTo(index$$1, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n};\nvar HashNavigation$1 = {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n hashNavigation: {\n initialized: false,\n init: HashNavigation.init.bind(swiper),\n destroy: HashNavigation.destroy.bind(swiper),\n setHash: HashNavigation.setHash.bind(swiper),\n onHashCange: HashNavigation.onHashCange.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n },\n};\n\n/* eslint no-underscore-dangle: \"off\" */\n\nconst Autoplay = {\n run() {\n const swiper = this;\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n swiper.autoplay.timeout = Utils.nextTick(() => {\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n }, delay);\n },\n start() {\n const swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop() {\n const swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause(speed) {\n const swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n};\n\nvar Autoplay$1 = {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n autoplay: {\n running: false,\n paused: false,\n run: Autoplay.run.bind(swiper),\n start: Autoplay.start.bind(swiper),\n stop: Autoplay.stop.bind(swiper),\n pause: Autoplay.pause.bind(swiper),\n onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n }\n },\n beforeTransitionStart(speed, internal) {\n const swiper = this;\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove() {\n const swiper = this;\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n },\n },\n};\n\nconst Fade = {\n setTranslate() {\n const swiper = this;\n const { slides } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset$$1 = $slideEl[0].swiperSlideOffset;\n let tx = -offset$$1;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade\n ? Math.max(1 - Math.abs($slideEl[0].progress), 0)\n : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl\n .css({\n opacity: slideOpacity,\n })\n .transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, $wrapperEl } = swiper;\n slides.transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n slides.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nvar EffectFade = {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n fadeEffect: {\n setTranslate: Fade.setTranslate.bind(swiper),\n setTransition: Fade.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}fade`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n },\n },\n};\n\nconst Cube = {\n setTranslate() {\n const swiper = this;\n const {\n $el, $wrapperEl, slides, width: swiperWidth, height: swiperHeight, rtlTranslate: rtl, size: swiperSize,\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('');\n $wrapperEl.append($cubeShadowEl);\n }\n $cubeShadowEl.css({ height: `${swiperWidth}px` });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('');\n $el.append($cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + (round * 4 * swiperSize);\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = (3 * swiperSize) + (swiperSize * 4 * round);\n }\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n const transform$$1 = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = (slideIndex * 90) + (progress * 90);\n if (rtl) wrapperRotate = (-slideIndex * 90) - (progress * 90);\n }\n $slideEl.transform(transform$$1);\n if (params.slideShadows) {\n // Set shadows\n let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(``);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(``);\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n $wrapperEl.css({\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-moz-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-ms-transform-origin': `50% 50% -${swiperSize / 2}px`,\n 'transform-origin': `50% 50% -${swiperSize / 2}px`,\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(`translate3d(0px, ${(swiperWidth / 2) + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90);\n const multiplier = 1.5 - (\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2)\n + (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2)\n );\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset$$1 = params.shadowOffset;\n $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${(swiperHeight / 2) + offset$$1}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);\n }\n }\n const zFactor = (Browser.isSafari || Browser.isUiWebView) ? (-swiperSize / 2) : 0;\n $wrapperEl\n .transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n },\n setTransition(duration) {\n const swiper = this;\n const { $el, slides } = swiper;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n },\n};\n\nvar EffectCube = {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n cubeEffect: {\n setTranslate: Cube.setTranslate.bind(swiper),\n setTransition: Cube.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}cube`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n },\n },\n};\n\nconst Flip = {\n setTranslate() {\n const swiper = this;\n const { slides, rtlTranslate: rtl } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n const offset$$1 = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = -offset$$1;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(``);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(``);\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n $slideEl\n .transform(`translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, activeIndex, $wrapperEl } = swiper;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n // eslint-disable-next-line\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nvar EffectFlip = {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n flipEffect: {\n setTranslate: Flip.setTranslate.bind(swiper),\n setTransition: Flip.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}flip`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n },\n },\n};\n\nconst Coverflow = {\n setTranslate() {\n const swiper = this;\n const {\n width: swiperWidth, height: swiperHeight, slides, $wrapperEl, slidesSizesGrid,\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform$$1 = swiper.translate;\n const center = isHorizontal ? -transform$$1 + (swiperWidth / 2) : -transform$$1 + (swiperHeight / 2);\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier;\n\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n\n let translateY = isHorizontal ? 0 : params.stretch * (offsetMultiplier);\n let translateX = isHorizontal ? params.stretch * (offsetMultiplier) : 0;\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(``);\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(``);\n $slideEl.append($shadowAfterEl);\n }\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0;\n }\n }\n\n // Set correct perspective for IE10\n if (Support.pointerEvents || Support.prefixedPointerEvents) {\n const ws = $wrapperEl[0].style;\n ws.perspectiveOrigin = `${center}px 50%`;\n }\n },\n setTransition(duration) {\n const swiper = this;\n swiper.slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n },\n};\n\nvar EffectCoverflow = {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n modifier: 1,\n slideShadows: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n coverflowEffect: {\n setTranslate: Coverflow.setTranslate.bind(swiper),\n setTransition: Coverflow.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n\n swiper.classNames.push(`${swiper.params.containerModifierClass}coverflow`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n },\n },\n};\n\nconst Thumbs = {\n init() {\n const swiper = this;\n const { thumbs: thumbsParams } = swiper.params;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Utils.extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n Utils.extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n } else if (Utils.isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(Utils.extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n }));\n swiper.thumbs.swiperCreated = true;\n }\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n },\n onThumbClick() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;\n else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;\n else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;\n else slideToIndex = prevIndex;\n }\n swiper.slideTo(slideToIndex);\n },\n update(initial) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto'\n ? thumbsSwiper.slidesPerViewDynamic()\n : thumbsSwiper.params.slidesPerView;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix();\n // eslint-disable-next-line\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n }\n // Find actual thumbs index to slide to\n const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n const nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n if (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;\n else if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) newThumbsIndex = currentThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) newThumbsIndex = nextThumbsIndex;\n else newThumbsIndex = prevThumbsIndex;\n } else {\n newThumbsIndex = swiper.realIndex;\n }\n if (thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n if (thumbsSwiper.params.loop) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n },\n};\nvar Thumbs$1 = {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n thumbs: {\n swiper: null,\n init: Thumbs.init.bind(swiper),\n update: Thumbs.update.bind(swiper),\n onThumbClick: Thumbs.onThumbClick.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n const { thumbs } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition(duration) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n },\n },\n};\n\n// Swiper Class\n\nconst components = [\n Device$1,\n Support$1,\n Browser$1,\n Resize,\n Observer$1,\n Virtual$1,\n Keyboard$1,\n Mousewheel$1,\n Navigation$1,\n Pagination$1,\n Scrollbar$1,\n Parallax$1,\n Zoom$1,\n Lazy$1,\n Controller$1,\n A11y,\n History$1,\n HashNavigation$1,\n Autoplay$1,\n EffectFade,\n EffectCube,\n EffectFlip,\n EffectCoverflow,\n Thumbs$1\n];\n\nif (typeof Swiper.use === 'undefined') {\n Swiper.use = Swiper.Class.use;\n Swiper.installModule = Swiper.Class.installModule;\n}\n\nSwiper.use(components);\n\nexport default Swiper;\n","/**\n * SSR Window 1.0.1\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2018, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: July 18, 2018\n */\nvar doc = (typeof document === 'undefined') ? {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: '',\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {},\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n },\n };\n },\n location: { hash: '' },\n} : document; // eslint-disable-line\n\nvar win = (typeof window === 'undefined') ? {\n document: doc,\n navigator: {\n userAgent: '',\n },\n location: {},\n history: {},\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n },\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n} : window; // eslint-disable-line\n\nexport { win as window, doc as document };\n","/**\n * Dom7 2.1.2\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * http://framework7.io/docs/dom.html\n *\n * Copyright 2018, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: September 13, 2018\n */\nimport { window, document } from 'ssr-window';\n\nclass Dom7 {\n constructor(arr) {\n const self = this;\n // Create array-like object\n for (let i = 0; i < arr.length; i += 1) {\n self[i] = arr[i];\n }\n self.length = arr.length;\n // Return collection with methods\n return this;\n }\n}\n\nfunction $(selector, context) {\n const arr = [];\n let i = 0;\n if (selector && !context) {\n if (selector instanceof Dom7) {\n return selector;\n }\n }\n if (selector) {\n // String\n if (typeof selector === 'string') {\n let els;\n let tempParent;\n const html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf('