{"version":3,"sources":["webpack:///./node_modules/preact/dist/preact.module.js","webpack:///./node_modules/preact/hooks/dist/hooks.module.js","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/classnames/index.js","webpack:///./node_modules/dayjs/dayjs.min.js","webpack:///./node_modules/@uvocore-front/utils/dist/index.js","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///./node_modules/@splidejs/splide/dist/js/splide.esm.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js"],"names":["n","u","i","t","r","f","e","c","l","s","parentNode","removeChild","a","o","arguments","length","push","children","defaultProps","v","type","props","key","ref","__k","__","__b","__e","__d","__c","__h","constructor","__v","vnode","y","p","this","context","d","indexOf","_","base","k","b","__r","debounceRendering","sort","some","__P","I","__n","ownerSVGElement","T","m","h","w","A","P","Array","isArray","g","x","value","L","z","appendChild","nextSibling","insertBefore","setProperty","test","C","style","cssText","replace","toLowerCase","slice","addEventListener","H","$","removeEventListener","setAttribute","removeAttribute","event","contextType","__E","prototype","render","M","sub","state","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","j","diffed","call","localName","nodeType","document","createTextNode","createElementNS","createElement","is","data","childNodes","dangerouslySetInnerHTML","attributes","name","__html","innerHTML","firstChild","checked","current","unmount","componentWillUnmount","N","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Promise","then","bind","resolve","setTimeout","__H","requestAnimationFrame","clearTimeout","cancelAnimationFrame","filter","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","module","exports","arr","obj","Object","defineProperty","enumerable","configurable","writable","hasOwn","hasOwnProperty","classNames","classes","arg","argType","inner","apply","toString","join","default","weekdays","split","months","String","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","D","ms","Q","S","args","locale","$L","utc","$u","$x","$offset","parse","$d","Date","NaN","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","substr","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","HH","hh","mm","ss","SSS","Z","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","extend","$i","isDayjs","en","Ls","window","Symbol","toStringTag","__esModule","create","deployHash","getElementsByTagName","concat","querySelector","async","defer","readyState","onload","onreadystatechange","src","element","marginValue","thresholdValue","callback","querySelectorAll","rootMargin","threshold","IntersectionObserver","isIntersecting","unobserve","target","observe","widgetLink","loader","customLoader","insertLoaderTo","loaderPosition","fn","catch","Error","len","arr2","arrayLikeToArray","minLen","from","arrayWithoutHoles","iterableToArray","nonIterableSpread","factory","self","__webpack_modules__","311","__unused_webpack_module","__webpack_exports__","__webpack_require__","module_Splide","states_namespaceObject","_extends","assign","source","CREATED","DESTROYED","IDLE","MOUNTED","MOVING","keys","each","index","values","map","isObject","subject","merge","_ref","to","toArray","between","m1","m2","max","sprintf","replacements","unit","parseFloat","pad","number","toPixel","root","div","applyStyle","position","width","append","clientWidth","dom_remove","find","elm","selector","child","parent","tagOrClassName","hasClass","tagName","tag","attrs","domify","html","elms","parentElement","before","styles","prop","addOrRemoveClasses","remove","classList","addClass","removeClass","className","contains","getAttribute","names","getRect","getBoundingClientRect","LOOP","slide","Splide","Components","list","endCallback","mount","Elements","on","start","destIndex","newIndex","prevIndex","coord","done","options","edgeIndex","Controller","speed","rewindSpeed","transition","easing","transform","fade","slides","track","height","clientHeight","error","message","console","MESSAGE_PREFIX","exist","ROOT","STATUS_CLASSES","active","visible","loading","DEFAULTS","rewind","waitForTransition","fixedWidth","fixedHeight","heightRatio","autoWidth","autoHeight","perPage","perMove","clones","focus","gap","padding","arrows","arrowPath","pagination","autoplay","interval","pauseOnHover","pauseOnFocus","resetProgress","lazyLoad","preloadPages","keyboard","drag","dragAngleThreshold","swipeDistanceThreshold","flickVelocityThreshold","flickPower","flickMaxPages","direction","cover","accessibility","slideFocus","isNavigation","trimSpace","updateOnMove","throttle","destroy","breakpoints","slider","container","arrow","prev","next","page","progress","bar","play","pause","spinner","sr","i18n","first","last","slideX","pageX","_defineProperties","descriptor","curr","Element","Event","unsubscribe","item","handler","events","off","emit","_len","_key","core_event","State","STATES","_o","_i","_c","_e","_t","Constructor","protoProps","staticProps","_proto","Extensions","Transition","_this","components","Component","compose","component","required","undefined","mounted","visibility","sync","splide","sibling","_this$Event","go","control","wait","refresh","completely","_this2","reverse","parseInt","created","JSON","components_elements","Slides","id","uid","getClasses","Slide","findParts","collect","register","realIndex","SlideObject","STATUS_UPDATE_EVENTS","isClone","update","restoreStyles","_update","display","isActive","isVisible","trackRect","slideRect","top","bottom","left","right","isWithin","within","forVisibility","elements_slide","getSlide","getSlides","includeClones","getSlidesByPage","idx","toIndex","splice","images","count","img","onerror","loaded","rootClass","controller","isLoop","newOptions","silently","trim","Track","matches","indicator","sign","toPage","parsePage","hasFocus","pageLength","edge","isRtl","Layout","isVertical","isFade","isRTL","isLoopPending","jump","newPosition","getTrimmedPosition","toCoord","onTransitionEnd","translate","cancel","shift","toPosition","innerSize","totalSize","size","minDistance","Infinity","slideIndex","distance","slideSize","offset","cloneCount","Clones","getCloneCount","cloneDeeply","generateClones","baseCount","dimension","fixedSize","cloneNode","func","timeout","layout","resize","totalHeight","totalWidth","slideHeight","slideWidth","margin","paddingTop","paddingBottom","offsetHeight","vertical","paddingLeft","paddingRight","listRect","offsetWidth","horizontal","getOwnPropertyDescriptor","maxWidth","drag_abs","startCoord","startInfo","currentInfo","isDragging","axis","Drag","disabled","move","passive","end","preventDefault","analyze","cancelable","_start","_end","log","resist","angle","atan","PI","shouldMove","info","velocity","absV","destination","timeStamp","touches","_ref2","clientX","clientY","_ref3","_ref3$x","fromX","_ref3$y","duration","time","click","onClick","stopPropagation","stopImmediatePropagation","capture","PAUSE_FLAGS","updateDisabled","_Components$Controlle","nextIndex","isEnough","createArrow","wrapper","firstElementChild","appendArrows","Pagination","items","li","button","createPagination","updateAttributes","getItem","KEY_MAP","ltr","ArrowLeft","ArrowRight","Left","Right","rtl","ttb","ArrowUp","ArrowDown","Up","Down","a11y","allAttributes","updateSlide","initArrows","controls","updateArrows","prevLabel","nextLabel","initPagination","activeItem","label","updatePagination","initNavigation","main","isButton","mainSlide","updateNavigation","Arrows","TRIGGER_KEYS","COMPLETE","Options","Breakpoints","initialOptions","prevPoint","throttledCheck","check","point","mql","matchMedia","Click","Autoplay","flags","elapse","rate","_pause","step","timestamp","reset","createInterval","switchOn","flag","Cover","uncover","background","LazyLoad","isSequential","isNaN","image","load","loadNext","srcset","Keyboard","Sync","syncMain","syncSibling","moveSibling","A11y","_Core","subClass","superClass","__proto__","__webpack_module_cache__","moduleId","definition","instance","TypeError","iter","iterator","_arr","_n","_d","_s","err"],"mappings":"sFAAA,4IAAIA,EAAIC,EAAEC,EAAEC,EAAIC,EAAE,GAAGC,EAAE,GAAGC,EAAE,oEAAoE,SAASC,EAAEP,EAAEQ,GAAG,IAAI,IAAIP,KAAKO,EAAER,EAAEC,GAAGO,EAAEP,GAAG,OAAOD,EAAE,SAASS,EAAET,GAAG,IAAIQ,EAAER,EAAEU,WAAWF,GAAGA,EAAEG,YAAYX,GAAG,SAASY,EAAEZ,EAAEQ,EAAEP,GAAG,IAAIC,EAAEC,EAAEU,EAAET,EAAEU,UAAUT,EAAE,GAAG,IAAIQ,KAAKL,EAAE,OAAOK,EAAEX,EAAEM,EAAEK,GAAG,OAAOA,EAAEV,EAAEK,EAAEK,GAAGR,EAAEQ,GAAGL,EAAEK,GAAG,GAAGC,UAAUC,OAAO,EAAE,IAAId,EAAE,CAACA,GAAGY,EAAE,EAAEA,EAAEC,UAAUC,OAAOF,IAAIZ,EAAEe,KAAKZ,EAAES,IAAI,GAAG,MAAMZ,IAAII,EAAEY,SAAShB,GAAG,mBAAmBD,GAAG,MAAMA,EAAEkB,aAAa,IAAIL,KAAKb,EAAEkB,kBAAa,IAASb,EAAEQ,KAAKR,EAAEQ,GAAGb,EAAEkB,aAAaL,IAAI,OAAOM,EAAEnB,EAAEK,EAAEH,EAAEC,EAAE,MAAM,SAASgB,EAAEX,EAAEP,EAAEC,EAAEC,EAAEU,GAAG,IAAIT,EAAE,CAACgB,KAAKZ,EAAEa,MAAMpB,EAAEqB,IAAIpB,EAAEqB,IAAIpB,EAAEqB,IAAI,KAAKC,GAAG,KAAKC,IAAI,EAAEC,IAAI,KAAKC,SAAI,EAAOC,IAAI,KAAKC,IAAI,KAAKC,iBAAY,EAAOC,IAAI,MAAMnB,IAAIb,EAAEgC,IAAInB,GAAG,OAAO,MAAMb,EAAEiC,OAAOjC,EAAEiC,MAAM7B,GAAGA,EAAoC,SAAS8B,EAAElC,GAAG,OAAOA,EAAEiB,SAAS,SAASkB,EAAEnC,EAAEQ,GAAG4B,KAAKf,MAAMrB,EAAEoC,KAAKC,QAAQ7B,EAAE,SAAS8B,EAAEtC,EAAEQ,GAAG,GAAG,MAAMA,EAAE,OAAOR,EAAEyB,GAAGa,EAAEtC,EAAEyB,GAAGzB,EAAEyB,GAAGD,IAAIe,QAAQvC,GAAG,GAAG,KAAK,IAAI,IAAIC,EAAEO,EAAER,EAAEwB,IAAIT,OAAOP,IAAI,GAAG,OAAOP,EAAED,EAAEwB,IAAIhB,KAAK,MAAMP,EAAE0B,IAAI,OAAO1B,EAAE0B,IAAI,MAAM,mBAAmB3B,EAAEoB,KAAKkB,EAAEtC,GAAG,KAAK,SAASwC,EAAExC,GAAG,IAAIQ,EAAEP,EAAE,GAAG,OAAOD,EAAEA,EAAEyB,KAAK,MAAMzB,EAAE6B,IAAI,CAAC,IAAI7B,EAAE2B,IAAI3B,EAAE6B,IAAIY,KAAK,KAAKjC,EAAE,EAAEA,EAAER,EAAEwB,IAAIT,OAAOP,IAAI,GAAG,OAAOP,EAAED,EAAEwB,IAAIhB,KAAK,MAAMP,EAAE0B,IAAI,CAAC3B,EAAE2B,IAAI3B,EAAE6B,IAAIY,KAAKxC,EAAE0B,IAAI,MAAM,OAAOa,EAAExC,IAAI,SAAS0C,EAAElC,KAAKA,EAAEoB,MAAMpB,EAAEoB,KAAI,IAAK3B,EAAEe,KAAKR,KAAKmC,EAAEC,OAAOzC,IAAIH,EAAE6C,sBAAsB1C,EAAEH,EAAE6C,oBAAoB3C,GAAGyC,GAAG,SAASA,IAAI,IAAI,IAAI3C,EAAE2C,EAAEC,IAAI3C,EAAEc,QAAQf,EAAEC,EAAE6C,MAAK,SAAS9C,EAAEQ,GAAG,OAAOR,EAAEgC,IAAIN,IAAIlB,EAAEwB,IAAIN,OAAMzB,EAAE,GAAGD,EAAE+C,MAAK,SAAS/C,GAAG,IAAIQ,EAAEP,EAAEC,EAAEC,EAAEU,EAAET,EAAEJ,EAAE4B,MAAMf,GAAGV,GAAGK,EAAER,GAAGgC,KAAKL,KAAKvB,EAAEI,EAAEwC,OAAO/C,EAAE,IAAIC,EAAEK,EAAE,GAAGJ,IAAI6B,IAAI7B,EAAE6B,IAAI,EAAEiB,EAAE7C,EAAED,EAAED,EAAEM,EAAE0C,SAAI,IAAS9C,EAAE+C,gBAAgB,MAAMhD,EAAE2B,IAAI,CAACjB,GAAG,KAAKZ,EAAE,MAAMY,EAAEyB,EAAEnC,GAAGU,EAAEV,EAAE2B,KAAKsB,EAAEnD,EAAEE,GAAGA,EAAEwB,KAAKd,GAAG2B,EAAErC,QAAO,SAASkD,EAAErD,EAAEQ,EAAEP,EAAEC,EAAEC,EAAEU,EAAEP,EAAEC,EAAEE,EAAEG,GAAG,IAAI0C,EAAEnB,EAAEK,EAAEE,EAAEC,EAAEU,EAAEE,EAAEC,EAAEtD,GAAGA,EAAEsB,KAAKnB,EAAEoD,EAAED,EAAEzC,OAAO,IAAId,EAAEuB,IAAI,GAAG8B,EAAE,EAAEA,EAAE9C,EAAEO,OAAOuC,IAAI,GAAG,OAAOZ,EAAEzC,EAAEuB,IAAI8B,GAAG,OAAOZ,EAAElC,EAAE8C,KAAK,kBAAkBZ,EAAE,KAAK,iBAAiBA,GAAG,iBAAiBA,GAAG,iBAAiBA,EAAEvB,EAAE,KAAKuB,EAAE,KAAK,KAAKA,GAAGgB,MAAMC,QAAQjB,GAAGvB,EAAEe,EAAE,CAACjB,SAASyB,GAAG,KAAK,KAAK,MAAMA,EAAEhB,IAAI,EAAEP,EAAEuB,EAAEtB,KAAKsB,EAAErB,MAAMqB,EAAEpB,IAAI,KAAKoB,EAAEV,KAAKU,GAAG,CAAC,GAAGA,EAAEjB,GAAGxB,EAAEyC,EAAEhB,IAAIzB,EAAEyB,IAAI,EAAE,QAAQc,EAAEgB,EAAEF,KAAKd,GAAGE,EAAEpB,KAAKkB,EAAElB,KAAKoB,EAAEtB,OAAOoB,EAAEpB,KAAKoC,EAAEF,QAAG,OAAY,IAAInB,EAAE,EAAEA,EAAEsB,EAAEtB,IAAI,CAAC,IAAIK,EAAEgB,EAAErB,KAAKO,EAAEpB,KAAKkB,EAAElB,KAAKoB,EAAEtB,OAAOoB,EAAEpB,KAAK,CAACoC,EAAErB,QAAG,EAAO,MAAMK,EAAE,KAAKS,EAAEjD,EAAE0C,EAAEF,EAAEA,GAAGpC,EAAED,EAAEU,EAAEP,EAAEC,EAAEE,EAAEG,GAAG+B,EAAED,EAAEf,KAAKQ,EAAEO,EAAEnB,MAAMiB,EAAEjB,KAAKY,IAAIoB,IAAIA,EAAE,IAAIf,EAAEjB,KAAKgC,EAAEvC,KAAKwB,EAAEjB,IAAI,KAAKmB,GAAGa,EAAEvC,KAAKmB,EAAEO,EAAEb,KAAKc,EAAED,IAAI,MAAMC,GAAG,MAAMU,IAAIA,EAAEV,GAAG,mBAAmBD,EAAEtB,MAAM,MAAMsB,EAAElB,KAAKkB,EAAElB,MAAMgB,EAAEhB,IAAIkB,EAAEd,IAAInB,EAAEmD,EAAElB,EAAEjC,EAAET,GAAGS,EAAEoD,EAAE7D,EAAE0C,EAAEF,EAAEgB,EAAEb,EAAElC,GAAGG,GAAG,WAAWX,EAAEmB,KAAK,mBAAmBnB,EAAEmB,OAAOnB,EAAE2B,IAAInB,GAAGT,EAAE8D,MAAM,IAAIrD,GAAG+B,EAAEb,KAAKlB,GAAGA,EAAEC,YAAYV,IAAIS,EAAE6B,EAAEE,IAAI,IAAIvC,EAAE0B,IAAI0B,EAAEC,EAAEG,EAAEH,KAAK,MAAME,EAAEF,KAAK,mBAAmBrD,EAAEmB,MAAM,MAAMoC,EAAEF,GAAG3B,KAAK6B,EAAEF,GAAG3B,KAAK1B,EAAE2B,MAAM3B,EAAE2B,IAAIU,EAAEpC,EAAEoD,EAAE,IAAIS,EAAEP,EAAEF,GAAGE,EAAEF,KAAK,GAAGC,EAAE,IAAID,EAAE,EAAEA,EAAEC,EAAExC,OAAOuC,IAAIU,EAAET,EAAED,GAAGC,IAAID,GAAGC,IAAID,IAAI,SAASM,EAAE5D,EAAEQ,EAAEP,GAAG,IAAIC,EAAEC,EAAE,IAAID,EAAE,EAAEA,EAAEF,EAAEwB,IAAIT,OAAOb,KAAKC,EAAEH,EAAEwB,IAAItB,MAAMC,EAAEsB,GAAGzB,EAAEQ,EAAE,mBAAmBL,EAAEiB,KAAKwC,EAAEzD,EAAEK,EAAEP,GAAG4D,EAAE5D,EAAEE,EAAEA,EAAEH,EAAEwB,IAAIrB,EAAEwB,IAAInB,IAAI,OAAOA,EAA0H,SAASqD,EAAE7D,EAAEQ,EAAEP,EAAEC,EAAEC,EAAEU,GAAG,IAAIT,EAAEC,EAAEC,EAAE,QAAG,IAASE,EAAEoB,IAAIxB,EAAEI,EAAEoB,IAAIpB,EAAEoB,SAAI,OAAY,GAAG,MAAM3B,GAAGE,GAAGU,GAAG,MAAMV,EAAEO,WAAWV,EAAE,GAAG,MAAMa,GAAGA,EAAEH,aAAaV,EAAEA,EAAEiE,YAAY9D,GAAGC,EAAE,SAAS,CAAC,IAAIC,EAAEQ,EAAEP,EAAE,GAAGD,EAAEA,EAAE6D,cAAc5D,EAAEJ,EAAEa,OAAOT,GAAG,EAAE,GAAGD,GAAGF,EAAE,MAAMH,EAAEA,EAAEmE,aAAahE,EAAEU,GAAGT,EAAES,EAAE,YAAO,IAAST,EAAEA,EAAED,EAAE+D,YAAuO,SAAST,EAAEzD,EAAEQ,EAAEP,GAAG,MAAMO,EAAE,GAAGR,EAAEoE,YAAY5D,EAAEP,GAAGD,EAAEQ,GAAG,MAAMP,EAAE,GAAG,iBAAiBA,GAAGK,EAAE+D,KAAK7D,GAAGP,EAAEA,EAAE,KAAK,SAASqE,EAAEtE,EAAEQ,EAAEP,EAAEC,EAAEC,GAAG,IAAIU,EAAEb,EAAE,GAAG,UAAUQ,EAAE,GAAG,iBAAiBP,EAAED,EAAEuE,MAAMC,QAAQvE,MAAM,CAAC,GAAG,iBAAiBC,IAAIF,EAAEuE,MAAMC,QAAQtE,EAAE,IAAIA,EAAE,IAAIM,KAAKN,EAAED,GAAGO,KAAKP,GAAGwD,EAAEzD,EAAEuE,MAAM/D,EAAE,IAAI,GAAGP,EAAE,IAAIO,KAAKP,EAAEC,GAAGD,EAAEO,KAAKN,EAAEM,IAAIiD,EAAEzD,EAAEuE,MAAM/D,EAAEP,EAAEO,SAAS,GAAG,MAAMA,EAAE,IAAI,MAAMA,EAAE,GAAGK,EAAEL,KAAKA,EAAEA,EAAEiE,QAAQ,WAAW,KAAKjE,EAAEA,EAAEkE,gBAAgB1E,EAAEQ,EAAEkE,cAAcC,MAAM,GAAGnE,EAAEmE,MAAM,GAAG3E,EAAEQ,IAAIR,EAAEQ,EAAE,IAAIR,EAAEQ,EAAEA,EAAEK,GAAGZ,EAAEA,EAAEC,GAAGF,EAAE4E,iBAAiBpE,EAAEK,EAAEgE,EAAEC,EAAEjE,GAAGb,EAAE+E,oBAAoBvE,EAAEK,EAAEgE,EAAEC,EAAEjE,QAAQ,GAAG,4BAA4BL,EAAE,CAAC,GAAGL,EAAEK,EAAEA,EAAEiE,QAAQ,aAAa,KAAKA,QAAQ,SAAS,UAAU,GAAG,SAASjE,GAAG,SAASA,GAAG,SAASA,GAAG,aAAaA,GAAG,aAAaA,GAAGA,KAAKR,EAAE,IAAIA,EAAEQ,GAAG,MAAMP,EAAE,GAAGA,EAAE,MAAMD,EAAE,MAAMA,IAAI,mBAAmBC,IAAI,MAAMA,KAAI,IAAKA,GAAG,MAAMO,EAAE,IAAI,MAAMA,EAAE,IAAIR,EAAEgF,aAAaxE,EAAEP,GAAGD,EAAEiF,gBAAgBzE,KAAK,SAASsE,EAAEtE,GAAG4B,KAAK5B,EAAEA,EAAEY,MAAK,GAAIpB,EAAEkF,MAAMlF,EAAEkF,MAAM1E,GAAGA,GAAG,SAASqE,EAAErE,GAAG4B,KAAK5B,EAAEA,EAAEY,MAAK,GAAIpB,EAAEkF,MAAMlF,EAAEkF,MAAM1E,GAAGA,GAAG,SAASyC,EAAEzC,EAAEP,EAAEC,EAAEC,EAAEU,EAAET,EAAEC,EAAEC,EAAEG,GAAG,IAAIG,EAAEO,EAAEmC,EAAEhB,EAAEE,EAAEE,EAAEC,EAAEiB,EAAEL,EAAEM,EAAEL,EAAEC,EAAExD,EAAEmB,KAAK,QAAG,IAASnB,EAAE8B,YAAY,OAAO,KAAK,MAAM7B,EAAE4B,MAAMrB,EAAEP,EAAE4B,IAAIxB,EAAEL,EAAE0B,IAAIzB,EAAEyB,IAAI1B,EAAE6B,IAAI,KAAK1B,EAAE,CAACE,KAAKM,EAAEZ,EAAE0B,MAAMd,EAAEX,GAAG,IAAID,EAAE,GAAG,mBAAmByD,EAAE,CAAC,GAAGG,EAAE3D,EAAEoB,MAAMkC,GAAG3C,EAAE6C,EAAE0B,cAAchF,EAAES,EAAEiB,KAAKgC,EAAEjD,EAAE2C,EAAEA,EAAElC,MAAMyC,MAAMlD,EAAEa,GAAGtB,EAAED,EAAE2B,IAAIc,GAAGxB,EAAElB,EAAE4B,IAAI3B,EAAE2B,KAAKJ,GAAGN,EAAEiE,KAAK,cAAc3B,GAAGA,EAAE4B,UAAUC,OAAOrF,EAAE4B,IAAIV,EAAE,IAAIsC,EAAEG,EAAEC,IAAI5D,EAAE4B,IAAIV,EAAE,IAAIgB,EAAEyB,EAAEC,GAAG1C,EAAEY,YAAY0B,EAAEtC,EAAEmE,OAAOC,GAAGhC,GAAGA,EAAEiC,IAAIrE,GAAGA,EAAEE,MAAMuC,EAAEzC,EAAEsE,QAAQtE,EAAEsE,MAAM,IAAItE,EAAEkB,QAAQwB,EAAE1C,EAAE+B,IAAI/C,EAAEmD,EAAEnC,EAAES,KAAI,EAAGT,EAAEW,IAAI,IAAI,MAAMX,EAAEuE,MAAMvE,EAAEuE,IAAIvE,EAAEsE,OAAO,MAAMhC,EAAEkC,2BAA2BxE,EAAEuE,KAAKvE,EAAEsE,QAAQtE,EAAEuE,IAAInF,EAAE,GAAGY,EAAEuE,MAAMnF,EAAEY,EAAEuE,IAAIjC,EAAEkC,yBAAyB/B,EAAEzC,EAAEuE,OAAOpD,EAAEnB,EAAEE,MAAMmB,EAAErB,EAAEsE,MAAMnC,EAAE,MAAMG,EAAEkC,0BAA0B,MAAMxE,EAAEyE,oBAAoBzE,EAAEyE,qBAAqB,MAAMzE,EAAE0E,mBAAmB1E,EAAEW,IAAId,KAAKG,EAAE0E,uBAAuB,CAAC,GAAG,MAAMpC,EAAEkC,0BAA0B/B,IAAItB,GAAG,MAAMnB,EAAE2E,2BAA2B3E,EAAE2E,0BAA0BlC,EAAEC,IAAI1C,EAAEQ,KAAK,MAAMR,EAAE4E,wBAAuB,IAAK5E,EAAE4E,sBAAsBnC,EAAEzC,EAAEuE,IAAI7B,IAAI5D,EAAE+B,MAAM9B,EAAE8B,IAAI,CAACb,EAAEE,MAAMuC,EAAEzC,EAAEsE,MAAMtE,EAAEuE,IAAIzF,EAAE+B,MAAM9B,EAAE8B,MAAMb,EAAES,KAAI,GAAIT,EAAEa,IAAI/B,EAAEA,EAAE0B,IAAIzB,EAAEyB,IAAI1B,EAAEuB,IAAItB,EAAEsB,IAAIvB,EAAEuB,IAAIwE,SAAQ,SAAShG,GAAGA,IAAIA,EAAEyB,GAAGxB,MAAKkB,EAAEW,IAAIf,QAAQV,EAAEW,KAAKG,GAAG,MAAMnB,EAAE,MAAMmB,EAAE8E,qBAAqB9E,EAAE8E,oBAAoBrC,EAAEzC,EAAEuE,IAAI7B,GAAG,MAAM1C,EAAE+E,oBAAoB/E,EAAEW,IAAId,MAAK,WAAWG,EAAE+E,mBAAmB5D,EAAEE,EAAEE,MAAKvB,EAAEkB,QAAQwB,EAAE1C,EAAEE,MAAMuC,EAAEzC,EAAEsE,MAAMtE,EAAEuE,KAAK9E,EAAEZ,EAAE4C,MAAMhC,EAAEX,GAAGkB,EAAES,KAAI,EAAGT,EAAEa,IAAI/B,EAAEkB,EAAE6B,IAAIxC,EAAEI,EAAEO,EAAEmE,OAAOnE,EAAEE,MAAMF,EAAEsE,MAAMtE,EAAEkB,SAASlB,EAAEsE,MAAMtE,EAAEuE,IAAI,MAAMvE,EAAEgF,kBAAkBhG,EAAEI,EAAEA,EAAE,GAAGJ,GAAGgB,EAAEgF,oBAAoB7C,GAAG,MAAMnC,EAAEiF,0BAA0B1D,EAAEvB,EAAEiF,wBAAwB9D,EAAEE,IAAIgB,EAAE,MAAM5C,GAAGA,EAAEQ,OAAOc,GAAG,MAAMtB,EAAEU,IAAIV,EAAES,MAAMJ,SAASL,EAAEyC,EAAE7C,EAAEkD,MAAMC,QAAQH,GAAGA,EAAE,CAACA,GAAGvD,EAAEC,EAAEC,EAAEU,EAAET,EAAEC,EAAEC,EAAEG,GAAGU,EAAEsB,KAAKxC,EAAE0B,IAAI1B,EAAE6B,IAAI,KAAKX,EAAEW,IAAIf,QAAQV,EAAEW,KAAKG,GAAGwB,IAAIxB,EAAEiE,IAAIjE,EAAEM,GAAG,MAAMN,EAAEQ,KAAI,OAAQ,MAAMvB,GAAGH,EAAE+B,MAAM9B,EAAE8B,KAAK/B,EAAEuB,IAAItB,EAAEsB,IAAIvB,EAAE0B,IAAIzB,EAAEyB,KAAK1B,EAAE0B,IAAI0E,EAAEnG,EAAEyB,IAAI1B,EAAEC,EAAEC,EAAEU,EAAET,EAAEC,EAAEI,IAAIG,EAAEZ,EAAEsG,SAAS1F,EAAEX,GAAG,MAAMO,GAAGP,EAAE+B,IAAI,MAAMvB,GAAG,MAAML,KAAKH,EAAE0B,IAAIrB,EAAEL,EAAE6B,MAAMrB,EAAEL,EAAEA,EAAEmC,QAAQjC,IAAI,MAAMN,EAAE2B,IAAInB,EAAEP,EAAEC,IAAI,SAASkD,EAAE5C,EAAEP,GAAGD,EAAE6B,KAAK7B,EAAE6B,IAAI5B,EAAEO,GAAGA,EAAEuC,MAAK,SAAS9C,GAAG,IAAIO,EAAEP,EAAE6B,IAAI7B,EAAE6B,IAAI,GAAGtB,EAAEuC,MAAK,SAAS/C,GAAGA,EAAEuG,KAAKtG,MAAK,MAAMO,GAAGR,EAAE2B,IAAInB,EAAEP,EAAE+B,SAAQ,SAASqE,EAAErG,EAAEQ,EAAEP,EAAEC,EAAEC,EAAEU,EAAEP,EAAEC,GAAG,IAAIK,EAAEO,EAAEmC,EAAEpB,EAAEC,EAAElC,EAAEoB,MAAMiB,EAAE9B,EAAEa,MAAMmB,EAAEhC,EAAEY,KAAKsB,EAAE,EAAE,GAAG,QAAQF,IAAIrC,GAAE,GAAI,MAAMU,EAAE,KAAK6B,EAAE7B,EAAEE,OAAO2B,IAAI,IAAI9B,EAAEC,EAAE6B,MAAM9B,IAAIZ,IAAIwC,EAAE5B,EAAE4F,WAAWhE,EAAE,GAAG5B,EAAE6F,WAAW,CAACzG,EAAEY,EAAEC,EAAE6B,GAAG,KAAK,MAAM,GAAG,MAAM1C,EAAE,CAAC,GAAG,OAAOwC,EAAE,OAAOkE,SAASC,eAAerE,GAAGtC,EAAEG,EAAEuG,SAASE,gBAAgB,6BAA6BpE,GAAGkE,SAASG,cAAcrE,EAAEF,EAAEwE,IAAIxE,GAAGzB,EAAE,KAAKN,GAAE,EAAG,GAAG,OAAOiC,EAAEL,IAAIG,GAAG/B,GAAGP,EAAE+G,OAAOzE,IAAItC,EAAE+G,KAAKzE,OAAO,CAAC,GAAGzB,EAAEA,GAAGR,EAAEsE,MAAM4B,KAAKvG,EAAEgH,YAAY7F,GAAGgB,EAAElC,EAAEoB,OAAOjB,GAAG6G,wBAAwB3D,EAAEhB,EAAE2E,yBAAyB1G,EAAE,CAAC,GAAG,MAAMM,EAAE,IAAIsB,EAAE,GAAGD,EAAE,EAAEA,EAAElC,EAAEkH,WAAWnG,OAAOmB,IAAIC,EAAEnC,EAAEkH,WAAWhF,GAAGiF,MAAMnH,EAAEkH,WAAWhF,GAAG4B,OAAOR,GAAGnC,KAAKmC,IAAInC,GAAGmC,EAAE8D,QAAQjG,EAAEiG,QAAQ9D,EAAE8D,SAASpH,EAAEqH,aAAarH,EAAEqH,UAAU/D,GAAGA,EAAE8D,QAAQ,KAAK,GAAh5H,SAAWpH,EAAEQ,EAAEP,EAAEC,EAAEC,GAAG,IAAIU,EAAE,IAAIA,KAAKZ,EAAE,aAAaY,GAAG,QAAQA,GAAGA,KAAKL,GAAG8D,EAAEtE,EAAEa,EAAE,KAAKZ,EAAEY,GAAGX,GAAG,IAAIW,KAAKL,EAAEL,GAAG,mBAAmBK,EAAEK,IAAI,aAAaA,GAAG,QAAQA,GAAG,UAAUA,GAAG,YAAYA,GAAGZ,EAAEY,KAAKL,EAAEK,IAAIyD,EAAEtE,EAAEa,EAAEL,EAAEK,GAAGZ,EAAEY,GAAGX,GAA2rHsD,CAAExD,EAAEsC,EAAEH,EAAEhC,EAAEI,GAAG+C,EAAE9C,EAAEgB,IAAI,QAAQ,GAAGkB,EAAElC,EAAEa,MAAMJ,SAASoC,EAAErD,EAAE0D,MAAMC,QAAQjB,GAAGA,EAAE,CAACA,GAAGlC,EAAEP,EAAEC,EAAEC,GAAG,kBAAkBqC,EAAE3B,EAAEP,EAAEN,EAAEsH,WAAW/G,GAAG,MAAMM,EAAE,IAAI6B,EAAE7B,EAAEE,OAAO2B,KAAK,MAAM7B,EAAE6B,IAAIjC,EAAEI,EAAE6B,IAAInC,IAAI,UAAU+B,QAAG,KAAUI,EAAEJ,EAAEwB,SAASpB,IAAI1C,EAAE8D,OAAO,aAAatB,IAAIE,IAAI4B,EAAEtE,EAAE,QAAQ0C,EAAEP,EAAE2B,OAAM,GAAI,YAAYxB,QAAG,KAAUI,EAAEJ,EAAEiF,UAAU7E,IAAI1C,EAAEuH,SAASjD,EAAEtE,EAAE,UAAU0C,EAAEP,EAAEoF,SAAQ,IAAK,OAAOvH,EAAE,SAASgE,EAAExD,EAAEP,EAAEC,GAAG,IAAI,mBAAmBM,EAAEA,EAAEP,GAAGO,EAAEgH,QAAQvH,EAAE,MAAMO,GAAGR,EAAE2B,IAAInB,EAAEN,IAAI,SAAS6D,EAAEvD,EAAEP,EAAEC,GAAG,IAAIC,EAAEU,EAAET,EAAE,GAAGJ,EAAEyH,SAASzH,EAAEyH,QAAQjH,IAAIL,EAAEK,EAAEe,OAAOpB,EAAEqH,SAASrH,EAAEqH,UAAUhH,EAAEmB,KAAKqC,EAAE7D,EAAE,KAAKF,IAAIC,GAAG,mBAAmBM,EAAEY,OAAOlB,EAAE,OAAOW,EAAEL,EAAEmB,MAAMnB,EAAEmB,IAAInB,EAAEoB,SAAI,EAAO,OAAOzB,EAAEK,EAAEqB,KAAK,CAAC,GAAG1B,EAAEuH,qBAAqB,IAAIvH,EAAEuH,uBAAuB,MAAMlH,GAAGR,EAAE2B,IAAInB,EAAEP,GAAGE,EAAEsC,KAAKtC,EAAE6C,IAAI,KAAK,GAAG7C,EAAEK,EAAEgB,IAAI,IAAIpB,EAAE,EAAEA,EAAED,EAAEY,OAAOX,IAAID,EAAEC,IAAI2D,EAAE5D,EAAEC,GAAGH,EAAEC,GAAG,MAAMW,GAAGJ,EAAEI,GAAG,SAAS0E,EAAEvF,EAAEQ,EAAEP,GAAG,OAAOmC,KAAKL,YAAY/B,EAAEC,GAAG,SAAS0H,EAAEnH,EAAEP,EAAEC,GAAG,IAAIC,EAAEU,EAAEP,EAAEN,EAAEyB,IAAIzB,EAAEyB,GAAGjB,EAAEP,GAAGY,GAAGV,EAAE,mBAAmBD,GAAG,KAAKA,GAAGA,EAAEsB,KAAKvB,EAAEuB,IAAIlB,EAAE,GAAG2C,EAAEhD,EAAEO,IAAIL,GAAGD,GAAGD,GAAGuB,IAAIZ,EAAEsB,EAAE,KAAK,CAAC1B,IAAIK,GAAGT,EAAEA,OAAE,IAASH,EAAEkD,iBAAiBhD,GAAGD,EAAE,CAACA,GAAGW,EAAE,KAAKZ,EAAEqH,WAAWjH,EAAEsE,MAAM4B,KAAKtG,EAAE+G,YAAY,KAAK1G,GAAGH,GAAGD,EAAEA,EAAEW,EAAEA,EAAEc,IAAI1B,EAAEqH,WAAWnH,GAAGiD,EAAE9C,EAAEE,GAAsvBR,EAAE,CAAC2B,IAAI,SAAS3B,EAAEQ,GAAG,IAAI,IAAIP,EAAEC,EAAEC,EAAEK,EAAEA,EAAEiB,IAAI,IAAIxB,EAAEO,EAAEqB,OAAO5B,EAAEwB,GAAG,IAAI,IAAIvB,EAAED,EAAE8B,cAAc,MAAM7B,EAAE0H,2BAA2B3H,EAAE4H,SAAS3H,EAAE0H,yBAAyB5H,IAAIG,EAAEF,EAAE2B,KAAK,MAAM3B,EAAE6H,oBAAoB7H,EAAE6H,kBAAkB9H,GAAGG,EAAEF,EAAE2B,KAAKzB,EAAE,OAAOF,EAAEmF,IAAInF,EAAE,MAAMO,GAAGR,EAAEQ,EAAE,MAAMR,GAAGgC,IAAI,GAAyDG,EAAEkD,UAAUwC,SAAS,SAAS7H,EAAEQ,GAAG,IAAIP,EAAEA,EAAE,MAAMmC,KAAKsD,KAAKtD,KAAKsD,MAAMtD,KAAKqD,MAAMrD,KAAKsD,IAAItD,KAAKsD,IAAInF,EAAE,GAAG6B,KAAKqD,OAAO,mBAAmBzF,IAAIA,EAAEA,EAAEO,EAAE,GAAGN,GAAGmC,KAAKf,QAAQrB,GAAGO,EAAEN,EAAED,GAAG,MAAMA,GAAGoC,KAAKJ,MAAMxB,GAAG4B,KAAKN,IAAId,KAAKR,GAAGkC,EAAEN,QAAQD,EAAEkD,UAAU0C,YAAY,SAAS/H,GAAGoC,KAAKJ,MAAMI,KAAKT,KAAI,EAAG3B,GAAGoC,KAAKN,IAAId,KAAKhB,GAAG0C,EAAEN,QAAQD,EAAEkD,UAAUC,OAAOpD,EAAEjC,EAAE,GAAGC,EAAE,mBAAmB8H,QAAQA,QAAQ3C,UAAU4C,KAAKC,KAAKF,QAAQG,WAAWC,WAAWzF,EAAEC,IAAI,G,6BCAjoT,wEAAqCzC,EAAEF,EAAEG,EAAzC,OAA2CS,EAAE,EAAEX,EAAE,GAAGK,EAAE,IAAEmB,IAAIrB,EAAE,IAAEuC,IAAItC,EAAE,IAAEgG,OAAO1F,EAAE,IAAEiB,IAAIV,EAAE,IAAEsG,QAAQ,SAASpE,EAAElD,EAAEC,GAAG,IAAE0B,KAAK,IAAEA,IAAI7B,EAAEE,EAAEU,GAAGT,GAAGS,EAAE,EAAE,IAAIX,EAAED,EAAEoI,MAAMpI,EAAEoI,IAAI,CAAC5G,GAAG,GAAGK,IAAI,KAAK,OAAO3B,GAAGD,EAAEuB,GAAGV,QAAQb,EAAEuB,GAAGT,KAAK,IAAId,EAAEuB,GAAGtB,GAAG,SAASK,EAAER,GAAG,OAAOa,EAAE,EAAS,SAAWb,EAAEI,EAAES,GAAG,IAAIX,EAAEmD,EAAElD,IAAI,GAAG,OAAOD,EAAEC,EAAEH,EAAEE,EAAE2B,MAAM3B,EAAEuB,GAAG,CAACZ,EAAEA,EAAET,GAAGmD,OAAE,EAAOnD,GAAG,SAASJ,GAAG,IAAIG,EAAED,EAAEC,EAAED,EAAEuB,GAAG,GAAGzB,GAAGE,EAAEuB,GAAG,KAAKtB,IAAID,EAAEuB,GAAG,CAACtB,EAAED,EAAEuB,GAAG,IAAIvB,EAAE2B,IAAIgG,SAAS,OAAO3H,EAAE2B,IAAI5B,GAAGC,EAAEuB,GAAvLU,CAAEoB,EAAEvD,GAAsL,SAASkC,EAAE9B,EAAES,GAAG,IAAIX,EAAEmD,EAAElD,IAAI,IAAI,IAAEuF,KAAKhD,EAAExC,EAAEmI,IAAIxH,KAAKX,EAAEuB,GAAGrB,EAAEF,EAAEmI,IAAIxH,EAAEZ,EAAEoI,IAAIvG,IAAId,KAAKd,IAAotB,SAAS2D,IAAI3D,EAAE8F,SAAQ,SAAS7F,GAAG,GAAGA,EAAE6C,IAAI,IAAI7C,EAAEkI,IAAIvG,IAAIkE,QAAQpC,GAAGzD,EAAEkI,IAAIvG,IAAIkE,QAAQK,GAAGlG,EAAEkI,IAAIvG,IAAI,GAAG,MAAM7B,GAAGE,EAAEkI,IAAIvG,IAAI,GAAG,IAAEH,IAAI1B,EAAEE,EAAE6B,SAAQ9B,EAAE,GAAG,IAAEwB,IAAI,SAAS1B,GAAGC,EAAE,KAAKM,GAAGA,EAAEP,IAAI,IAAE4C,IAAI,SAAS5C,GAAGK,GAAGA,EAAEL,GAAGG,EAAE,EAAE,IAAIC,GAAGH,EAAED,EAAE6B,KAAKwG,IAAIjI,IAAIA,EAAE0B,IAAIkE,QAAQpC,GAAGxD,EAAE0B,IAAIkE,QAAQK,GAAGjG,EAAE0B,IAAI,KAAK,IAAEwE,OAAO,SAASnG,GAAGG,GAAGA,EAAEH,GAAG,IAAIU,EAAEV,EAAE0B,IAAIhB,GAAGA,EAAEwH,KAAKxH,EAAEwH,IAAIvG,IAAIf,SAAS,IAAIb,EAAEc,KAAKH,IAAIT,IAAI,IAAEkI,yBAAyBlI,EAAE,IAAEkI,wBAAwB,SAAStI,GAAG,IAAIG,EAAEF,EAAE,WAAWsI,aAAanI,GAAGuC,GAAG6F,qBAAqBrI,GAAGiI,WAAWpI,IAAII,EAAEgI,WAAWnI,EAAE,KAAK0C,IAAIxC,EAAEmI,sBAAsBrI,MAAM4D,IAAI5D,OAAE,GAAQ,IAAE4B,IAAI,SAAS1B,EAAEF,GAAGA,EAAE8C,MAAK,SAAS5C,GAAG,IAAIA,EAAE2B,IAAIkE,QAAQpC,GAAGzD,EAAE2B,IAAI3B,EAAE2B,IAAI2G,QAAO,SAASzI,GAAG,OAAOA,EAAEyB,IAAI4E,EAAErG,MAAK,MAAMI,GAAGH,EAAE8C,MAAK,SAAS/C,GAAGA,EAAE8B,MAAM9B,EAAE8B,IAAI,OAAM7B,EAAE,GAAG,IAAE0B,IAAIvB,EAAED,EAAE6B,SAAQpB,GAAGA,EAAET,EAAEF,IAAI,IAAEwH,QAAQ,SAAStH,GAAGgB,GAAGA,EAAEhB,GAAG,IAAIF,EAAEE,EAAE0B,IAAI,GAAG5B,GAAGA,EAAEoI,IAAI,IAAIpI,EAAEoI,IAAI5G,GAAGuE,QAAQpC,GAAG,MAAMzD,GAAG,IAAEwB,IAAIxB,EAAEF,EAAE+B,OAAO,IAAIW,EAAE,mBAAmB2F,sBAAsB,SAAS1E,EAAE5D,GAAG,IAAIG,EAAEF,EAAE,mBAAmBD,EAAE6B,KAAK7B,EAAE6B,MAAM5B,EAAEE,EAAE,SAASkG,EAAErG,GAAG,IAAIG,EAAEF,EAAED,EAAE6B,IAAI7B,EAAEyB,KAAKxB,EAAEE,EAAE,SAASuC,EAAE1C,EAAEG,GAAG,OAAOH,GAAGA,EAAEe,SAASZ,EAAEY,QAAQZ,EAAE4C,MAAK,SAAS5C,EAAEF,GAAG,OAAOE,IAAIH,EAAEC,MAAK,SAASsD,EAAEvD,EAAEG,GAAG,MAAM,mBAAmBA,EAAEA,EAAEH,GAAGG,I,gBCA/1E,IAAIuI,EAAiB,EAAQ,IAEzBC,EAAuB,EAAQ,IAE/BC,EAA6B,EAAQ,IAErCC,EAAkB,EAAQ,IAM9BC,EAAOC,QAJP,SAAwBC,EAAK9I,GAC3B,OAAOwI,EAAeM,IAAQL,EAAqBK,EAAK9I,IAAM0I,EAA2BI,EAAK9I,IAAM2I,M,cCMtGC,EAAOC,QAfP,SAAyBE,EAAK3H,EAAKwC,GAYjC,OAXIxC,KAAO2H,EACTC,OAAOC,eAAeF,EAAK3H,EAAK,CAC9BwC,MAAOA,EACPsF,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZL,EAAI3H,GAAOwC,EAGNmF,I,gBCZT,OAOC,WACA,aAEA,IAAIM,EAAS,GAAGC,eAEhB,SAASC,IAGR,IAFA,IAAIC,EAAU,GAELxJ,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,IAAK,CAC1C,IAAIyJ,EAAM7I,UAAUZ,GACpB,GAAKyJ,EAAL,CAEA,IAAIC,SAAiBD,EAErB,GAAgB,WAAZC,GAAoC,WAAZA,EAC3BF,EAAQ1I,KAAK2I,QACP,GAAIjG,MAAMC,QAAQgG,IACxB,GAAIA,EAAI5I,OAAQ,CACf,IAAI8I,EAAQJ,EAAWK,MAAM,KAAMH,GAC/BE,GACHH,EAAQ1I,KAAK6I,SAGT,GAAgB,WAAZD,EACV,GAAID,EAAII,WAAab,OAAO7D,UAAU0E,SACrC,IAAK,IAAIzI,KAAOqI,EACXJ,EAAOhD,KAAKoD,EAAKrI,IAAQqI,EAAIrI,IAChCoI,EAAQ1I,KAAKM,QAIfoI,EAAQ1I,KAAK2I,EAAII,aAKpB,OAAOL,EAAQM,KAAK,KAGgBlB,EAAOC,SAC3CU,EAAWQ,QAAUR,EACrBX,EAAOC,QAAUU,QAKhB,KAFwB,EAAF,WACtB,OAAOA,GACP,QAFoB,OAEpB,aA9CH,I,iBCPoEX,EAAOC,QAA8E,WAAW,aAAa,IAAI5I,EAAE,cAAcG,EAAE,SAASN,EAAE,SAASI,EAAE,OAAOF,EAAE,MAAMO,EAAE,OAAOR,EAAE,QAAQW,EAAE,UAAUC,EAAE,OAAOR,EAAE,OAAOiD,EAAE,0FAA0F/C,EAAE,sFAAsF+B,EAAE,CAAC6E,KAAK,KAAK+C,SAAS,2DAA2DC,MAAM,KAAKC,OAAO,wFAAwFD,MAAM,MAAMrF,EAAE,SAAS3E,EAAEG,EAAEN,GAAG,IAAII,EAAEiK,OAAOlK,GAAG,OAAOC,GAAGA,EAAEW,QAAQT,EAAEH,EAAE,GAAGuD,MAAMpD,EAAE,EAAEF,EAAEW,QAAQiJ,KAAKhK,GAAGG,GAAGK,EAAE,CAACC,EAAEqE,EAAEd,EAAE,SAAS7D,GAAG,IAAIG,GAAGH,EAAEmK,YAAYtK,EAAEuK,KAAKC,IAAIlK,GAAGF,EAAEmK,KAAKE,MAAMzK,EAAE,IAAIE,EAAEF,EAAE,GAAG,OAAOM,GAAG,EAAE,IAAI,KAAKwE,EAAE1E,EAAE,EAAE,KAAK,IAAI0E,EAAE5E,EAAE,EAAE,MAAMmD,EAAE,SAASlD,EAAEG,EAAEN,GAAG,GAAGM,EAAEoK,OAAO1K,EAAE0K,OAAO,OAAOvK,EAAEH,EAAEM,GAAG,IAAIF,EAAE,IAAIJ,EAAE2K,OAAOrK,EAAEqK,SAAS3K,EAAE4K,QAAQtK,EAAEsK,SAAS1K,EAAEI,EAAEuK,QAAQC,IAAI1K,EAAEH,GAAGQ,EAAET,EAAEE,EAAE,EAAEU,EAAEN,EAAEuK,QAAQC,IAAI1K,GAAGK,GAAG,EAAE,GAAGR,GAAG,UAAUG,GAAGJ,EAAEE,IAAIO,EAAEP,EAAEU,EAAEA,EAAEV,KAAK,IAAIU,EAAE,SAAST,GAAG,OAAOA,EAAE,EAAEoK,KAAKQ,KAAK5K,IAAI,EAAEoK,KAAKE,MAAMtK,IAAIgC,EAAE,SAASmB,GAAG,MAAM,CAACiC,EAAEtF,EAAEiC,EAAErB,EAAE0C,EAAE9C,EAAE6B,EAAEpC,EAAE8K,EAAE3K,EAAEiD,EAAElD,EAAEiD,EAAErD,EAAES,EAAEH,EAAE2K,GAAG9K,EAAE+K,EAAEtK,GAAG0C,IAAI+G,OAAO/G,GAAG,IAAIoB,cAAcD,QAAQ,KAAK,KAAKxE,EAAE,SAASE,GAAG,YAAO,IAASA,IAAI+B,EAAE,KAAKqD,EAAE,GAAGA,EAAErD,GAAGI,EAAE,IAAIe,EAAE,SAASlD,GAAG,OAAOA,aAAagL,GAAGH,EAAE,SAAS7K,EAAEG,EAAEN,GAAG,IAAII,EAAE,IAAID,EAAE,OAAO+B,EAAE,GAAG,iBAAiB/B,EAAEoF,EAAEpF,KAAKC,EAAED,GAAGG,IAAIiF,EAAEpF,GAAGG,EAAEF,EAAED,OAAO,CAAC,IAAID,EAAEC,EAAEgH,KAAK5B,EAAErF,GAAGC,EAAEC,EAAEF,EAAE,OAAOF,GAAGI,IAAI8B,EAAE9B,GAAGA,IAAIJ,GAAGkC,GAAGf,EAAE,SAAShB,EAAEG,GAAG,GAAG+C,EAAElD,GAAG,OAAOA,EAAE0K,QAAQ,IAAI7K,EAAE,iBAAiBM,EAAEA,EAAE,GAAG,OAAON,EAAE0K,KAAKvK,EAAEH,EAAEoL,KAAKtK,UAAU,IAAIqK,EAAEnL,IAAI4D,EAAEpD,EAAEoD,EAAEpD,EAAEwK,EAAEpH,EAAE1D,EAAEmD,EAAEO,EAAEL,EAAE,SAASpD,EAAEG,GAAG,OAAOa,EAAEhB,EAAE,CAACkL,OAAO/K,EAAEgL,GAAGC,IAAIjL,EAAEkL,GAAG3H,EAAEvD,EAAEmL,GAAGC,QAAQpL,EAAEoL,WAAW,IAAIP,EAAE,WAAW,SAAS7I,EAAEnC,GAAGiC,KAAKkJ,GAAGN,EAAE7K,EAAEkL,OAAO,MAAK,GAAIjJ,KAAKuJ,MAAMxL,GAAG,IAAI2E,EAAExC,EAAE+C,UAAU,OAAOP,EAAE6G,MAAM,SAASxL,GAAGiC,KAAKwJ,GAAG,SAASzL,GAAG,IAAIG,EAAEH,EAAEuK,KAAK1K,EAAEG,EAAEoL,IAAI,GAAG,OAAOjL,EAAE,OAAO,IAAIuL,KAAKC,KAAK,GAAGlI,EAAE3D,EAAEK,GAAG,OAAO,IAAIuL,KAAK,GAAGvL,aAAauL,KAAK,OAAO,IAAIA,KAAKvL,GAAG,GAAG,iBAAiBA,IAAI,MAAM+D,KAAK/D,GAAG,CAAC,IAAIF,EAAEE,EAAEyL,MAAMzI,GAAG,GAAGlD,EAAE,CAAC,IAAIF,EAAEE,EAAE,GAAG,GAAG,EAAEK,GAAGL,EAAE,IAAI,KAAK4L,UAAU,EAAE,GAAG,OAAOhM,EAAE,IAAI6L,KAAKA,KAAKI,IAAI7L,EAAE,GAAGF,EAAEE,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEK,IAAI,IAAIoL,KAAKzL,EAAE,GAAGF,EAAEE,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEK,IAAI,OAAO,IAAIoL,KAAKvL,GAAzX,CAA6XH,GAAGiC,KAAKqJ,GAAGtL,EAAE0D,GAAG,GAAGzB,KAAK8J,QAAQpH,EAAEoH,KAAK,WAAW,IAAI/L,EAAEiC,KAAKwJ,GAAGxJ,KAAK+J,GAAGhM,EAAEiM,cAAchK,KAAKiK,GAAGlM,EAAEmM,WAAWlK,KAAKmK,GAAGpM,EAAEqM,UAAUpK,KAAKqK,GAAGtM,EAAEuM,SAAStK,KAAKuK,GAAGxM,EAAEyM,WAAWxK,KAAKyK,GAAG1M,EAAE2M,aAAa1K,KAAK2K,GAAG5M,EAAE6M,aAAa5K,KAAK6K,IAAI9M,EAAE+M,mBAAmBpI,EAAEqI,OAAO,WAAW,OAAOvJ,GAAGkB,EAAEsI,QAAQ,WAAW,QAAQ,iBAAiBhL,KAAKwJ,GAAG7B,aAAajF,EAAEuI,OAAO,SAASlN,EAAEG,GAAG,IAAIN,EAAEmB,EAAEhB,GAAG,OAAOiC,KAAKkL,QAAQhN,IAAIN,GAAGA,GAAGoC,KAAKmL,MAAMjN,IAAIwE,EAAE0I,QAAQ,SAASrN,EAAEG,GAAG,OAAOa,EAAEhB,GAAGiC,KAAKkL,QAAQhN,IAAIwE,EAAE2I,SAAS,SAAStN,EAAEG,GAAG,OAAO8B,KAAKmL,MAAMjN,GAAGa,EAAEhB,IAAI2E,EAAE4I,GAAG,SAASvN,EAAEG,EAAEN,GAAG,OAAO4D,EAAE3D,EAAEE,GAAGiC,KAAK9B,GAAG8B,KAAKuL,IAAI3N,EAAEG,IAAI2E,EAAE8I,KAAK,WAAW,OAAOrD,KAAKE,MAAMrI,KAAKyL,UAAU,MAAM/I,EAAE+I,QAAQ,WAAW,OAAOzL,KAAKwJ,GAAGkC,WAAWhJ,EAAEwI,QAAQ,SAASnN,EAAES,GAAG,IAAI0C,EAAElB,KAAK7B,IAAIqD,EAAE3D,EAAEW,IAAIA,EAAE0B,EAAEsB,EAAEzB,EAAEhC,GAAG2E,EAAE,SAAS3E,EAAEG,GAAG,IAAIN,EAAE4D,EAAEL,EAAED,EAAEkI,GAAGK,KAAKI,IAAI3I,EAAE6I,GAAG7L,EAAEH,GAAG,IAAI0L,KAAKvI,EAAE6I,GAAG7L,EAAEH,GAAGmD,GAAG,OAAO/C,EAAEP,EAAEA,EAAEuN,MAAMrN,IAAIM,EAAE,SAASL,EAAEG,GAAG,OAAOsD,EAAEL,EAAED,EAAEyK,SAAS5N,GAAG2J,MAAMxG,EAAEyK,OAAO,MAAMxN,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,MAAMoE,MAAMrE,IAAIgD,IAAIpB,EAAEE,KAAKqK,GAAGlH,EAAEnD,KAAKiK,GAAGhJ,EAAEjB,KAAKmK,GAAGvB,EAAE,OAAO5I,KAAKoJ,GAAG,MAAM,IAAI,OAAOlJ,GAAG,KAAKzB,EAAE,OAAON,EAAEuE,EAAE,EAAE,GAAGA,EAAE,GAAG,IAAI,KAAK7E,EAAE,OAAOM,EAAEuE,EAAE,EAAES,GAAGT,EAAE,EAAES,EAAE,GAAG,KAAK9E,EAAE,IAAIU,EAAEiB,KAAK4L,UAAUC,WAAW,EAAE9C,GAAGjJ,EAAEf,EAAEe,EAAE,EAAEA,GAAGf,EAAE,OAAO2D,EAAEvE,EAAE8C,EAAE8H,EAAE9H,GAAG,EAAE8H,GAAG5F,GAAG,KAAKrF,EAAE,KAAKG,EAAE,OAAOG,EAAEwK,EAAE,QAAQ,GAAG,KAAK5K,EAAE,OAAOI,EAAEwK,EAAE,UAAU,GAAG,KAAKhL,EAAE,OAAOQ,EAAEwK,EAAE,UAAU,GAAG,KAAK1K,EAAE,OAAOE,EAAEwK,EAAE,eAAe,GAAG,QAAQ,OAAO5I,KAAKyI,UAAU/F,EAAEyI,MAAM,SAASpN,GAAG,OAAOiC,KAAKkL,QAAQnN,GAAE,IAAK2E,EAAEoJ,KAAK,SAASzN,EAAEG,GAAG,IAAI0C,EAAE/C,EAAEqD,EAAEzB,EAAE1B,GAAG6B,EAAE,OAAOF,KAAKoJ,GAAG,MAAM,IAAI1G,GAAGxB,EAAE,GAAGA,EAAEpD,GAAGoC,EAAE,OAAOgB,EAAEjD,GAAGiC,EAAE,OAAOgB,EAAErD,GAAGqC,EAAE,QAAQgB,EAAEzC,GAAGyB,EAAE,WAAWgB,EAAElD,GAAGkC,EAAE,QAAQgB,EAAEtD,GAAGsC,EAAE,UAAUgB,EAAEhD,GAAGgC,EAAE,UAAUgB,EAAEnD,GAAGmC,EAAE,eAAegB,GAAG/C,GAAGC,EAAED,IAAIL,EAAEkC,KAAKmK,IAAI3L,EAAEwB,KAAKqK,IAAI7L,EAAE,GAAGL,IAAIN,GAAGM,IAAIM,EAAE,CAAC,IAAIqB,EAAEE,KAAKyI,QAAQ8C,IAAItN,EAAE,GAAG6B,EAAE0J,GAAG9G,GAAGtE,GAAG0B,EAAEgK,OAAO9J,KAAKwJ,GAAG1J,EAAEyL,IAAItN,EAAEkK,KAAK4D,IAAI/L,KAAKmK,GAAGrK,EAAEkM,gBAAgBxC,QAAQ9G,GAAG1C,KAAKwJ,GAAG9G,GAAGtE,GAAG,OAAO4B,KAAK8J,OAAO9J,MAAM0C,EAAE6I,IAAI,SAASxN,EAAEG,GAAG,OAAO8B,KAAKyI,QAAQqD,KAAK/N,EAAEG,IAAIwE,EAAEuJ,IAAI,SAASlO,GAAG,OAAOiC,KAAKwB,EAAEzB,EAAEhC,OAAO2E,EAAEgG,IAAI,SAAS3K,EAAES,GAAG,IAAIP,EAAEiD,EAAElB,KAAKjC,EAAEmO,OAAOnO,GAAG,IAAII,EAAEqD,EAAEzB,EAAEvB,GAAG0B,EAAE,SAAShC,GAAG,IAAIN,EAAEmB,EAAEmC,GAAG,OAAOM,EAAEL,EAAEvD,EAAE0K,KAAK1K,EAAE0K,OAAOH,KAAKgE,MAAMjO,EAAEH,IAAImD,IAAI,GAAG/C,IAAIN,EAAE,OAAOmC,KAAKuL,IAAI1N,EAAEmC,KAAKiK,GAAGlM,GAAG,GAAGI,IAAIM,EAAE,OAAOuB,KAAKuL,IAAI9M,EAAEuB,KAAK+J,GAAGhM,GAAG,GAAGI,IAAIL,EAAE,OAAOoC,EAAE,GAAG,GAAG/B,IAAIE,EAAE,OAAO6B,EAAE,GAAG,IAAIwC,GAAGzE,EAAE,GAAGA,EAAEL,GAAG,IAAIK,EAAED,GAAG,KAAKC,EAAEC,GAAG,IAAID,GAAGE,IAAI,EAAEC,EAAE4B,KAAKwJ,GAAGkC,UAAU3N,EAAE2E,EAAE,OAAOlB,EAAEL,EAAE/C,EAAE4B,OAAO0C,EAAE0J,SAAS,SAASrO,EAAEG,GAAG,OAAO8B,KAAK0I,KAAK,EAAE3K,EAAEG,IAAIwE,EAAE2J,OAAO,SAAStO,GAAG,IAAIG,EAAE8B,KAAK,IAAIA,KAAKgL,UAAU,MAAM,eAAe,IAAIpN,EAAEG,GAAG,uBAAuBC,EAAEwD,EAAEI,EAAE5B,MAAMlC,EAAEkC,KAAK4L,UAAUvN,EAAE2B,KAAKuK,GAAG1M,EAAEmC,KAAKyK,GAAGjM,EAAEwB,KAAKiK,GAAGxL,EAAEX,EAAEgK,SAAS7J,EAAEH,EAAEkK,OAAO9G,EAAE,SAASnD,EAAEC,EAAEF,EAAEO,GAAG,OAAON,IAAIA,EAAEC,IAAID,EAAEG,EAAEN,KAAKE,EAAEE,GAAGsO,OAAO,EAAEjO,IAAI6B,EAAE,SAASnC,GAAG,OAAOyD,EAAEnD,EAAEA,EAAE,IAAI,GAAGN,EAAE,MAAM2E,EAAE5E,EAAEyO,UAAU,SAASxO,EAAEG,EAAEN,GAAG,IAAII,EAAED,EAAE,GAAG,KAAK,KAAK,OAAOH,EAAEI,EAAEsE,cAActE,GAAGI,EAAE,CAACoO,GAAGvE,OAAOjI,KAAK+J,IAAIxH,OAAO,GAAGkK,KAAKzM,KAAK+J,GAAG5G,EAAE3E,EAAE,EAAEkO,GAAGlL,EAAEnD,EAAEG,EAAE,EAAE,EAAE,KAAKmO,IAAIzL,EAAEpD,EAAE8O,YAAYpO,EAAEP,EAAE,GAAG4O,KAAK3L,EAAEjD,EAAEO,GAAGoK,EAAE5I,KAAKmK,GAAG2C,GAAGtL,EAAEnD,EAAE2B,KAAKmK,GAAG,EAAE,KAAKjK,EAAE+H,OAAOjI,KAAKqK,IAAI0C,GAAG7L,EAAEpD,EAAEkP,YAAYhN,KAAKqK,GAAG5L,EAAE,GAAGwO,IAAI/L,EAAEpD,EAAEoP,cAAclN,KAAKqK,GAAG5L,EAAE,GAAG0O,KAAK1O,EAAEuB,KAAKqK,IAAI5H,EAAEwF,OAAO5J,GAAG+O,GAAG5L,EAAEnD,EAAEA,EAAE,EAAE,KAAK6C,EAAEhB,EAAE,GAAGmN,GAAGnN,EAAE,GAAG1B,EAAEkE,EAAErE,EAAER,GAAE,GAAIuD,EAAEsB,EAAErE,EAAER,GAAE,GAAIoD,EAAEgH,OAAOpK,GAAGyP,GAAG9L,EAAEnD,EAAER,EAAE,EAAE,KAAKQ,EAAE4J,OAAOjI,KAAK2K,IAAI4C,GAAG/L,EAAEnD,EAAE2B,KAAK2K,GAAG,EAAE,KAAK6C,IAAIhM,EAAEnD,EAAE2B,KAAK6K,IAAI,EAAE,KAAK4C,EAAEzP,GAAG,OAAOJ,EAAEyE,QAAQlE,GAAE,SAASJ,EAAEG,GAAG,OAAOA,GAAGE,EAAEL,IAAIC,EAAEqE,QAAQ,IAAI,QAAOK,EAAEwF,UAAU,WAAW,OAAO,IAAIC,KAAKgE,MAAMnM,KAAKwJ,GAAGkE,oBAAoB,KAAKhL,EAAEiL,KAAK,SAAS5P,EAAEE,EAAEiD,GAAG,IAAI/C,EAAE+B,EAAEsB,EAAEzB,EAAE9B,GAAGyE,EAAE3D,EAAEhB,GAAGK,EAAE,KAAKsE,EAAEwF,YAAYlI,KAAKkI,aAAapI,EAAEE,KAAK0C,EAAES,EAAE3B,EAAEP,EAAEjB,KAAK0C,GAAG,OAAOS,GAAGhF,EAAE,GAAGA,EAAEM,GAAG0E,EAAE,GAAGhF,EAAEN,GAAGsF,EAAEhF,EAAEK,GAAG2E,EAAE,EAAEhF,EAAEE,IAAIyB,EAAE1B,GAAG,OAAOD,EAAEL,IAAIgC,EAAE1B,GAAG,MAAMD,EAAEH,GAAG8B,EAAE,KAAK3B,EAAEP,GAAGkC,EAAE,IAAI3B,EAAED,GAAG4B,EAAE,IAAI3B,GAAG+B,IAAIJ,EAAEoB,EAAEiC,EAAE3B,EAAEhD,EAAE2E,IAAIT,EAAEsJ,YAAY,WAAW,OAAOhM,KAAKmL,MAAMtN,GAAGsM,IAAIzH,EAAEkJ,QAAQ,WAAW,OAAOzI,EAAEnD,KAAKkJ,KAAKxG,EAAEuG,OAAO,SAASlL,EAAEG,GAAG,IAAIH,EAAE,OAAOiC,KAAKkJ,GAAG,IAAItL,EAAEoC,KAAKyI,QAAQzK,EAAE4K,EAAE7K,EAAEG,GAAE,GAAI,OAAOF,IAAIJ,EAAEsL,GAAGlL,GAAGJ,GAAG8E,EAAE+F,MAAM,WAAW,OAAOjH,EAAEL,EAAEnB,KAAKwJ,GAAGxJ,OAAO0C,EAAEiJ,OAAO,WAAW,OAAO,IAAIlC,KAAKzJ,KAAKyL,YAAY/I,EAAEkL,OAAO,WAAW,OAAO5N,KAAKgL,UAAUhL,KAAK6N,cAAc,MAAMnL,EAAEmL,YAAY,WAAW,OAAO7N,KAAKwJ,GAAGqE,eAAenL,EAAEiF,SAAS,WAAW,OAAO3H,KAAKwJ,GAAGsE,eAAe5N,EAA9xI,GAAmyIH,EAAEgJ,EAAE9F,UAAU,OAAOlE,EAAEkE,UAAUlD,EAAE,CAAC,CAAC,MAAMhC,GAAG,CAAC,KAAKG,GAAG,CAAC,KAAKN,GAAG,CAAC,KAAKI,GAAG,CAAC,KAAKF,GAAG,CAAC,KAAKD,GAAG,CAAC,KAAKY,GAAG,CAAC,KAAKR,IAAI2F,SAAQ,SAAS7F,GAAGgC,EAAEhC,EAAE,IAAI,SAASG,GAAG,OAAO8B,KAAKsL,GAAGpN,EAAEH,EAAE,GAAGA,EAAE,QAAOgB,EAAEgP,OAAO,SAAShQ,EAAEG,GAAG,OAAOH,EAAEiQ,KAAKjQ,EAAEG,EAAE6K,EAAEhK,GAAGhB,EAAEiQ,IAAG,GAAIjP,GAAGA,EAAEkK,OAAOL,EAAE7J,EAAEkP,QAAQhN,EAAElC,EAAEyM,KAAK,SAASzN,GAAG,OAAOgB,EAAE,IAAIhB,IAAIgB,EAAEmP,GAAG/K,EAAErD,GAAGf,EAAEoP,GAAGhL,EAAEpE,EAAEgB,EAAE,GAAGhB,EAAhsMb,I,iBCA4GkQ,OAA9H1H,EAAOC,QAAiJ,SAASzI,GAAG,IAAIN,EAAE,GAAG,SAASG,EAAEU,GAAG,GAAGb,EAAEa,GAAG,OAAOb,EAAEa,GAAGkI,QAAQ,IAAI3I,EAAEJ,EAAEa,GAAG,CAACX,EAAEW,EAAEL,GAAE,EAAGuI,QAAQ,IAAI,OAAOzI,EAAEO,GAAG0F,KAAKnG,EAAE2I,QAAQ3I,EAAEA,EAAE2I,QAAQ5I,GAAGC,EAAEI,GAAE,EAAGJ,EAAE2I,QAAQ,OAAO5I,EAAEkD,EAAE/C,EAAEH,EAAEI,EAAEP,EAAEG,EAAEmC,EAAE,SAAShC,EAAEN,EAAEa,GAAGV,EAAEU,EAAEP,EAAEN,IAAIkJ,OAAOC,eAAe7I,EAAEN,EAAE,CAACoJ,YAAW,EAAGiF,IAAIxN,KAAKV,EAAEC,EAAE,SAASE,GAAG,oBAAoBmQ,QAAQA,OAAOC,aAAaxH,OAAOC,eAAe7I,EAAEmQ,OAAOC,YAAY,CAAC5M,MAAM,WAAWoF,OAAOC,eAAe7I,EAAE,aAAa,CAACwD,OAAM,KAAM3D,EAAEA,EAAE,SAASG,EAAEN,GAAG,GAAG,EAAEA,IAAIM,EAAEH,EAAEG,IAAI,EAAEN,EAAE,OAAOM,EAAE,GAAG,EAAEN,GAAG,iBAAiBM,GAAGA,GAAGA,EAAEqQ,WAAW,OAAOrQ,EAAE,IAAIO,EAAEqI,OAAO0H,OAAO,MAAM,GAAGzQ,EAAEC,EAAES,GAAGqI,OAAOC,eAAetI,EAAE,UAAU,CAACuI,YAAW,EAAGtF,MAAMxD,IAAI,EAAEN,GAAG,iBAAiBM,EAAE,IAAI,IAAIF,KAAKE,EAAEH,EAAEmC,EAAEzB,EAAET,EAAE,SAASJ,GAAG,OAAOM,EAAEN,IAAIkI,KAAK,KAAK9H,IAAI,OAAOS,GAAGV,EAAEH,EAAE,SAASM,GAAG,IAAIN,EAAEM,GAAGA,EAAEqQ,WAAW,WAAW,OAAOrQ,EAAE2J,SAAS,WAAW,OAAO3J,GAAG,OAAOH,EAAEmC,EAAEtC,EAAE,IAAIA,GAAGA,GAAGG,EAAEU,EAAE,SAASP,EAAEN,GAAG,OAAOkJ,OAAO7D,UAAUmE,eAAejD,KAAKjG,EAAEN,IAAIG,EAAEgC,EAAE,GAAGhC,EAAEA,EAAEM,EAAE,GAAj5B,CAAq5B,CAAC,SAASH,EAAEN,EAAEG,GAAGG,EAAEyI,QAAQ5I,EAAE,IAAI,SAASG,EAAEN,EAAEG,KAAK,SAASG,EAAEN,EAAEG,GAAG,aAAa,IAAIU,EAAET,EAAEF,EAAEK,EAAEJ,EAAEC,EAAEJ,GAAGG,EAAEmC,EAAEtC,EAAE,eAAc,WAAY,OAAOC,KAAKE,EAAEmC,EAAEtC,EAAE,aAAY,WAAY,OAAOQ,KAAKL,EAAEmC,EAAEtC,EAAE,kBAAiB,WAAY,OAAOK,KAAKF,EAAEmC,EAAEtC,EAAE,aAAY,WAAY,OAAOS,KAAK,IAAI6B,EAAE,QAAQzB,EAAE2P,cAAS,IAAS3P,GAAGA,EAAEgQ,YAAY,iBAAiB,QAAQzQ,EAAEoQ,cAAS,IAASpQ,OAAE,EAAOA,EAAEyQ,aAAa,MAAM,QAAQ3Q,EAAEsQ,cAAS,IAAStQ,OAAE,EAAOA,EAAE2Q,YAAY,QAAQtQ,EAAEiQ,cAAS,IAASjQ,OAAE,EAAOA,EAAEsQ,WAAW,GAAG5Q,EAAE,SAASK,GAAG,IAAIN,EAAEc,UAAUC,OAAO,QAAG,IAASD,UAAU,GAAGA,UAAU,GAAG4F,SAASoK,qBAAqB,QAAQ,GAAG3Q,IAAIW,UAAUC,OAAO,QAAG,IAASD,UAAU,KAAKA,UAAU,GAAGD,IAAIC,UAAUC,OAAO,QAAG,IAASD,UAAU,KAAKA,UAAU,GAAG,OAAO,IAAIkH,SAAQ,SAAU5H,EAAEF,GAAG,GAAGI,GAAG,iBAAiBA,EAAE,CAAC,IAAIC,EAAE+B,EAAE,MAAMyO,OAAOzO,GAAG,GAAGrC,EAAEK,EAAEC,EAAE,GAAGmG,SAASsK,cAAc,eAAeD,OAAO9Q,EAAE,OAAOG,QAAQ,CAAC,IAAIQ,EAAE8F,SAASG,cAAc,UAAUjG,EAAEqQ,MAAM9Q,EAAES,EAAEsQ,MAAMrQ,EAAE,IAAIL,EAAE,SAASF,EAAEN,IAAIA,IAAIY,EAAEuQ,YAAY,kBAAkB9M,KAAKzD,EAAEuQ,eAAevQ,EAAEwQ,OAAO,KAAKxQ,EAAEyQ,mBAAmB,KAAKzQ,OAAE,EAAOZ,EAAEE,IAAIE,MAAMQ,EAAEwQ,OAAO5Q,EAAEI,EAAEyQ,mBAAmB7Q,EAAEI,EAAE0Q,IAAIrR,EAAED,EAAEiE,YAAYrD,SAA+RJ,GAAGL,EAAE,GAAzR,SAASG,GAAG,IAAIN,EAAEc,UAAUC,OAAO,QAAG,IAASD,UAAU,GAAGA,UAAU,GAAG,SAASR,GAAG,iBAAiBA,IAAIoG,SAASsK,cAAc,GAAGD,OAAOzQ,IAAI+G,UAAU,sCAAsC0J,OAAO/Q,EAAE,6EAAuFK,EAAE,SAASC,GAAG,IAAIN,EAAEM,EAAEiR,QAAQpR,EAAEG,EAAEkR,YAAY3Q,OAAE,IAASV,EAAE,IAAIA,EAAEC,EAAEE,EAAEmR,eAAevR,OAAE,IAASE,EAAE,EAAEA,EAAEG,EAAED,EAAEoR,SAASpP,OAAE,IAAS/B,EAAE,aAAaA,EAAE,GAAGP,GAAG,iBAAiBA,EAAE,CAAC,IAAIC,EAAEyG,SAASiL,iBAAiB3R,GAAGY,EAAE,CAACgR,WAAW,GAAGb,OAAOlQ,EAAE,WAAWkQ,OAAOlQ,EAAE,UAAUgR,UAAU3R,GAAGM,EAAE,IAAIsR,sBAAqB,SAAUxR,EAAEN,GAAGM,EAAE0F,SAAQ,SAAU1F,GAAGA,EAAEyR,iBAAiB/R,EAAEgS,UAAU1R,EAAE2R,QAAQ3P,EAAEhC,EAAE2R,cAAcrR,GAAGX,GAAG,GAAG0E,MAAM4B,KAAKtG,GAAG+F,SAAQ,SAAU1F,GAAGE,EAAE0R,QAAQ5R,QAAQG,EAAE,SAASH,GAAG,IAAIN,EAAEM,EAAE6R,WAAWhS,EAAEG,EAAE8R,OAAOvR,OAAE,IAASV,GAAGA,EAAEC,EAAEE,EAAE+R,aAAanS,OAAE,IAASE,OAAE,EAAOA,EAAEG,EAAED,EAAEgS,eAAehQ,OAAE,IAAS/B,OAAE,EAAOA,EAAEK,EAAEN,EAAEiS,eAAelS,OAAE,IAASO,EAAE,SAASA,EAAEH,EAAEH,EAAEkS,GAAGrR,OAAE,IAASV,EAAE,aAAaA,EAAET,GAAG,iBAAiBA,GAAGC,EAAED,GAAGiI,MAAK,WAAYpH,GAAGX,GAAG,mBAAmBA,EAAEA,EAAEoC,EAAEjC,GAAGQ,GAAGL,EAAE8B,EAAEjC,GAAGc,OAAOsR,OAAM,SAAUnS,GAAG,MAAM,IAAIoS,MAAMpS,W,gBCUn0GwI,EAAOC,QAVP,SAA2BC,EAAK2J,IACnB,MAAPA,GAAeA,EAAM3J,EAAIjI,UAAQ4R,EAAM3J,EAAIjI,QAE/C,IAAK,IAAIb,EAAI,EAAG0S,EAAO,IAAIlP,MAAMiP,GAAMzS,EAAIyS,EAAKzS,IAC9C0S,EAAK1S,GAAK8I,EAAI9I,GAGhB,OAAO0S,I,gBCPT,IAAIC,EAAmB,EAAQ,IAW/B/J,EAAOC,QATP,SAAqClI,EAAGiS,GACtC,GAAKjS,EAAL,CACA,GAAiB,iBAANA,EAAgB,OAAOgS,EAAiBhS,EAAGiS,GACtD,IAAI9S,EAAIkJ,OAAO7D,UAAU0E,SAASxD,KAAK1F,GAAG8D,MAAM,GAAI,GAEpD,MADU,WAAN3E,GAAkBa,EAAEkB,cAAa/B,EAAIa,EAAEkB,YAAYoF,MAC7C,QAANnH,GAAqB,QAANA,EAAoB0D,MAAMqP,KAAKlS,GACxC,cAANb,GAAqB,2CAA2CqE,KAAKrE,GAAW6S,EAAiBhS,EAAGiS,QAAxG,K,mBCRF,IAAIE,EAAoB,EAAQ,IAE5BC,EAAkB,EAAQ,IAE1BrK,EAA6B,EAAQ,IAErCsK,EAAoB,EAAQ,IAMhCpK,EAAOC,QAJP,SAA4BC,GAC1B,OAAOgK,EAAkBhK,IAAQiK,EAAgBjK,IAAQJ,EAA2BI,IAAQkK,M,gBCH9F,IAAiDC,EAS9CC,KAT8CD,EASxC,WACT,MAAgB,MACN,aACA,IAAIE,EAAsB,CAE9BC,IACA,CAAEC,EAAyBC,EAAqBC,KAGtDA,EAAoBrT,EAAEoT,GAGtBC,EAAoBnR,EAAEkR,EAAqB,CACzC,QAAW,IAAoBE,KAIjC,IAAIC,EAAyB,GAwK7B,SAASC,IAA2Q,OAA9PA,EAAW1K,OAAO2K,QAAU,SAAU5B,GAAU,IAAK,IAAI/R,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,IAAK,CAAE,IAAI4T,EAAShT,UAAUZ,GAAI,IAAK,IAAIoB,KAAOwS,EAAc5K,OAAO7D,UAAUmE,eAAejD,KAAKuN,EAAQxS,KAAQ2Q,EAAO3Q,GAAOwS,EAAOxS,IAAY,OAAO2Q,IAA2BnI,MAAM1H,KAAMtB,WAvKhT2S,EAAoBrT,EAAEuT,GACtBF,EAAoBnR,EAAEqR,EAAwB,CAC5C,QAAW,IAAMI,EACjB,UAAa,IAAMC,EACnB,KAAQ,IAAMC,EACd,QAAW,IAAMC,EACjB,OAAU,IAAMC,IAyKlB,IAAIC,EAAOlL,OAAOkL,KASlB,SAASC,EAAKpL,EAAKyI,GACjB0C,EAAKnL,GAAKlG,MAAK,SAAUzB,EAAKgT,GAC5B,OAAO5C,EAASzI,EAAI3H,GAAMA,EAAKgT,MAYnC,SAASC,EAAOtL,GACd,OAAOmL,EAAKnL,GAAKuL,KAAI,SAAUlT,GAC7B,OAAO2H,EAAI3H,MAWf,SAASmT,EAASC,GAChB,MAA0B,iBAAZA,EAWhB,SAASC,EAAMC,EAAM7B,GACnB,IAAI8B,EAAKjB,EAAS,GAAIgB,GAatB,OAXAP,EAAKtB,GAAM,SAAUjP,EAAOxC,GACtBmT,EAAS3Q,IACN2Q,EAASI,EAAGvT,MACfuT,EAAGvT,GAAO,IAGZuT,EAAGvT,GAAOqT,EAAME,EAAGvT,GAAMwC,IAEzB+Q,EAAGvT,GAAOwC,KAGP+Q,EAmCT,SAASC,EAAQhR,GACf,OAAOJ,MAAMC,QAAQG,GAASA,EAAQ,CAACA,GAazC,SAASiR,EAAQjR,EAAOkR,EAAIC,GAC1B,OAAO1K,KAAK4D,IAAI5D,KAAK2K,IAAIpR,EAAOkR,EAAKC,EAAKA,EAAKD,GAAKA,EAAKC,EAAKD,EAAKC,GAWrE,SAASE,EAAQ1G,EAAQ2G,GACvB,IAAIlV,EAAI,EACR,OAAOuO,EAAOhK,QAAQ,OAAO,WAC3B,OAAOqQ,EAAQM,GAAclV,QAYjC,SAASmV,EAAKvR,GACZ,IAAI1C,SAAc0C,EAElB,MAAa,WAAT1C,GAAqB0C,EAAQ,EACxBwR,WAAWxR,GAAS,KAGb,WAAT1C,EAAoB0C,EAAQ,GAUrC,SAASyR,EAAIC,GACX,OAAOA,EAAS,GAAK,IAAMA,EAASA,EAWtC,SAASC,EAAQC,EAAM5R,GACrB,GAAqB,iBAAVA,EAAoB,CAC7B,IAAI6R,EAAM/E,EAAO,MAAO,IACxBgF,EAAWD,EAAK,CACdE,SAAU,WACVC,MAAOhS,IAETiS,EAAOL,EAAMC,GACb7R,EAAQ6R,EAAIK,YACZC,EAAWN,GAGb,OAAQ7R,GAAS,EAqBnB,SAASoS,EAAKC,EAAKC,GACjB,OAAOD,EAAMA,EAAInF,cAAcoF,EAASjM,MAAM,KAAK,IAAM,KAW3D,SAASkM,EAAMC,EAAQC,GACrB,OAAOtV,EAASqV,EAAQC,GAAgB,GAW1C,SAAStV,EAASqV,EAAQC,GACxB,OAAID,EACK/B,EAAO+B,EAAOrV,UAAUwH,QAAO,SAAU4N,GAC9C,OAAOG,EAASH,EAAOE,EAAepM,MAAM,KAAK,KAAOkM,EAAMI,UAAYF,KAIvE,GAWT,SAAS3F,EAAO8F,EAAKC,GACnB,IAAIR,EAAMzP,SAASG,cAAc6P,GAIjC,OAHArC,EAAKsC,GAAO,SAAU7S,EAAOxC,GAC3B,OAAO0D,EAAamR,EAAK7U,EAAKwC,MAEzBqS,EAUT,SAASS,EAAOC,GACd,IAAIlB,EAAM/E,EAAO,MAAO,IAExB,OADA+E,EAAItO,UAAYwP,EACTlB,EAAIrO,WAQb,SAAS2O,EAAWa,GAClBhC,EAAQgC,GAAM9Q,SAAQ,SAAUmQ,GAC9B,GAAIA,EAAK,CACP,IAAIG,EAASH,EAAIY,cACjBT,GAAUA,EAAO3V,YAAYwV,OAWnC,SAASJ,EAAOO,EAAQD,GAClBC,GACFA,EAAOrS,YAAYoS,GAUvB,SAASW,EAAOb,EAAK5U,GACnB,GAAI4U,GAAO5U,EAAK,CACd,IAAI+U,EAAS/U,EAAIwV,cACjBT,GAAUA,EAAOnS,aAAagS,EAAK5U,IAUvC,SAASqU,EAAWO,EAAKc,GACnBd,GACF9B,EAAK4C,GAAQ,SAAUnT,EAAOoT,GACd,OAAVpT,IACFqS,EAAI5R,MAAM2S,GAAQpT,MAc1B,SAASqT,EAAmBhB,EAAKzM,EAAS0N,GACpCjB,GACFrB,EAAQpL,GAAS1D,SAAQ,SAAUmB,GAC7BA,GACFgP,EAAIkB,UAAUD,EAAS,SAAW,OAAOjQ,MAajD,SAASmQ,EAASnB,EAAKzM,GACrByN,EAAmBhB,EAAKzM,GAAS,GASnC,SAAS6N,EAAYpB,EAAKzM,GACxByN,EAAmBhB,EAAKzM,GAAS,GAWnC,SAAS8M,EAASL,EAAKqB,GACrB,QAASrB,GAAOA,EAAIkB,UAAUI,SAASD,GAUzC,SAASxS,EAAamR,EAAKhP,EAAMrD,GAC3BqS,GACFA,EAAInR,aAAamC,EAAMrD,GAY3B,SAAS4T,EAAavB,EAAKhP,GACzB,OAAOgP,EAAMA,EAAIuB,aAAavQ,GAAQ,GASxC,SAASlC,EAAgB6R,EAAMa,GAC7B7C,EAAQ6C,GAAO3R,SAAQ,SAAUmB,GAC/B2N,EAAQgC,GAAM9Q,SAAQ,SAAUmQ,GAC9B,OAAOA,GAAOA,EAAIlR,gBAAgBkC,SAYxC,SAASyQ,EAAQzB,GACf,OAAOA,EAAI0B,wBAwCb,IAOIC,EAAO,OA0BkB,MAAMC,EAAQ,SAAWC,EAAQC,GAM5D,IAAIC,EAOAC,EACJ,MAAO,CAILC,MAAO,WACLF,EAAOD,EAAWI,SAASH,KAC3BF,EAAOM,GAAG,iBAAiB,SAAUhY,GAC/BA,EAAE2R,SAAWiG,GAAQC,GACvBA,MAEDD,IAYLK,MAAO,SAAeC,EAAWC,EAAUC,EAAWC,EAAOC,GAC3D,IAAIC,EAAUb,EAAOa,QACjBC,EAAYb,EAAWc,WAAWD,UAClCE,EAAQH,EAAQG,MACpBb,EAAcS,EAEVZ,EAAOlR,GA3EL,WA4Ec,IAAd4R,GAAmBD,GAAYK,GAAaJ,GAAaI,GAA0B,IAAbL,KACxEO,EAAQH,EAAQI,aAAeD,GAInCpD,EAAWsC,EAAM,CACfgB,WAAY,aAAeF,EAAQ,MAAQH,EAAQM,OACnDC,UAAW,aAAeT,EAAM9U,EAAI,MAAQ8U,EAAMzW,EAAI,WAuB3BmX,EAAO,SAAWrB,EAAQC,GAuC3D,SAASnO,EAAMwK,GACb,IAAIuE,EAAUb,EAAOa,QACrBjD,EAAWqC,EAAWI,SAASiB,OAAOhF,GAAQ,CAC5C4E,WAAY,WAAaL,EAAQG,MAAQ,MAAQH,EAAQM,SAI7D,MA7CW,CAKTf,MAAO,WACLtO,EAAMkO,EAAO1D,QAYfiE,MAAO,SAAeC,EAAWC,EAAUC,EAAWC,EAAOC,GAC3D,IAAIW,EAAQtB,EAAWI,SAASkB,MAChC3D,EAAW2D,EAAO,CAChBC,OAAQnE,EAAKkE,EAAME,gBAErB3P,EAAM2O,GACNrQ,YAAW,WACTwQ,IACAhD,EAAW2D,EAAO,CAChBC,OAAQ,WAkFlB,SAASE,EAAMC,GACbC,QAAQF,MAAMG,YAAuBF,GAWvC,SAASG,EAAMpF,EAASiF,GACtB,IAAKjF,EACH,MAAM,IAAIhC,MAAMiH,GAgBpB,IAAII,EAAO,SAoCPC,EAAiB,CACnBC,OAAQ,YACRC,QAAS,aACTC,QAAS,cAkCPC,EAAW,CASbhZ,KAAM,QAQNiZ,QAAQ,EAORrB,MAAO,IAOPC,YAAa,EASbqB,mBAAmB,EAOnBxE,MAAO,EAOP0D,OAAQ,EAQRe,WAAY,EAQZC,YAAa,EAQbC,YAAa,EAQbC,WAAW,EAQXC,YAAY,EAOZC,QAAS,EAOTC,QAAS,EAQTC,OAAQ,EAORvC,MAAO,EAQPwC,OAAO,EAOPC,IAAK,EAgBLC,QAAS,EAOTC,QAAQ,EAORC,UAAW,GAOXC,YAAY,EAOZC,UAAU,EAOVC,SAAU,IAOVC,cAAc,EAQdC,cAAc,EAOdC,eAAe,EAYfC,UAAU,EAQVC,aAAc,EAOdxC,OAAQ,gCAURyC,SAAU,SAOVC,MAAM,EAQNC,mBAAoB,GAQpBC,uBAAwB,IAQxBC,uBAAwB,GAQxBC,WAAY,IAOZC,cAAe,EAUfC,UAAW,MASXC,OAAO,EAOPC,eAAe,EAOfC,YAAY,EAQZC,cAAc,EAOdC,WAAW,EAQXC,cAAc,EAOdC,SAAU,IAOVC,SAAS,EAmBTC,aAAa,EASblT,QAzcoB,CACpBgM,KAAMqE,EACN8C,OAAQ9C,EAAO,WACfR,MAAOQ,EAAO,UACd7B,KAAM6B,EAAO,SACbhC,MAAOgC,EAAO,UACd+C,UAAW/C,EAAO,qBAClBmB,OAAQnB,EAAO,WACfgD,MAAOhD,EAAO,UACdiD,KAAMjD,EAAO,gBACbkD,KAAMlD,EAAO,gBACbqB,WAAYrB,EAAO,eACnBmD,KAAMnD,EAAO,qBACblP,MAAOkP,EAAO,iBACdoD,SAAUpD,EAAO,aACjBqD,IAAKrD,EAAO,kBACZsB,SAAUtB,EAAO,aACjBsD,KAAMtD,EAAO,SACbuD,MAAOvD,EAAO,UACdwD,QAASxD,EAAO,YAChByD,GAAIzD,EAAO,QA8bX0D,KApaS,CACTT,KAAM,iBACNC,KAAM,aACNS,MAAO,oBACPC,KAAM,mBACNC,OAAQ,iBACRC,MAAO,gBACPR,KAAM,iBACNC,MAAO,mBA2aLvJ,EAAU,EAOVG,EAAU,EAOVD,EAAO,EAOPE,EAAS,EAOTH,EAAY,EAEhB,SAAS8J,EAAkB7L,EAAQ5Q,GAAS,IAAK,IAAInB,EAAI,EAAGA,EAAImB,EAAMN,OAAQb,IAAK,CAAE,IAAI6d,EAAa1c,EAAMnB,GAAI6d,EAAW3U,WAAa2U,EAAW3U,aAAc,EAAO2U,EAAW1U,cAAe,EAAU,UAAW0U,IAAYA,EAAWzU,UAAW,GAAMJ,OAAOC,eAAe8I,EAAQ8L,EAAWzc,IAAKyc,IAuB7S,IAAI/F,EAAsB,WAUxB,SAASA,EAAOtC,EAAMmD,EAASZ,GA5wCU,IAMrC+F,OAuwCc,IAAZnF,IACFA,EAAU,SAGO,IAAfZ,IACFA,EAAa,IAGf7V,KAAKsT,KAAOA,aAAgBuI,QAAUvI,EAAOhP,SAASsK,cAAc0E,GACpEoE,EAAM1X,KAAKsT,KAAM,0CACjBtT,KAAK6V,WAAa,KAClB7V,KAAK8b,MA74CuC,WAM9C,IAAInX,EAAO,GA0FX,SAASoX,EAAYC,GACfA,EAAKjI,KACPiI,EAAKjI,IAAIpR,oBAAoBqZ,EAAKlZ,MAAOkZ,EAAKC,QAASD,EAAKvF,SAIhE,MA/FY,CAUVP,GAAI,SAAYgG,EAAQD,EAASlI,EAAK0C,QACxB,IAAR1C,IACFA,EAAM,WAGQ,IAAZ0C,IACFA,EAAU,IAGZyF,EAAOnU,MAAM,KAAKnE,SAAQ,SAAUd,GAC9BiR,GACFA,EAAIvR,iBAAiBM,EAAOmZ,EAASxF,GAGvC9R,EAAK/F,KAAK,CACRkE,MAAOA,EACPmZ,QAASA,EACTlI,IAAKA,EACL0C,QAASA,QAWf0F,IAAK,SAAaD,EAAQnI,QACZ,IAARA,IACFA,EAAM,MAGRmI,EAAOnU,MAAM,KAAKnE,SAAQ,SAAUd,GAClC6B,EAAOA,EAAK0B,QAAO,SAAU2V,GAC3B,OAAIA,GAAQA,EAAKlZ,QAAUA,GAASkZ,EAAKjI,MAAQA,IAC/CgI,EAAYC,IACL,UAefI,KAAM,SAActZ,GAClB,IAAK,IAAIuZ,EAAO3d,UAAUC,OAAQqK,EAAO,IAAI1H,MAAM+a,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClGtT,EAAKsT,EAAO,GAAK5d,UAAU4d,GAG7B3X,EAAKf,SAAQ,SAAUoY,GAChBA,EAAKjI,KAAOiI,EAAKlZ,MAAMiF,MAAM,KAAK,KAAOjF,GAC5CkZ,EAAKC,QAAQvU,MAAMsU,EAAMhT,OAQ/BuR,QAAS,WACP5V,EAAKf,QAAQmY,GACbpX,EAAO,KAszCI4X,GACbvc,KAAKwc,OAnxCHZ,EAmxCiBjK,EAlxCd,CAMLpG,IAAK,SAAalI,GAChBuY,EAAOvY,GAUTqB,GAAI,SAAYrB,GACd,OAAOA,IAAUuY,KAiwCnB5b,KAAKyc,OAASlL,EACdvR,KAAK0c,GAAKnK,EAAMyF,EAAUvB,GAC1BzW,KAAK2c,GAAK,EACV3c,KAAK4c,GAAK/G,EACV7V,KAAK6c,GAAK,GAEV7c,KAAK8c,GAAK,KAYZ,IA/DoBC,EAAaC,EAAYC,EA+DzCC,EAAStH,EAAO3S,UA4TpB,OA1TAia,EAAOlH,MAAQ,SAAemH,EAAYC,GACxC,IAAIC,EAAQrd,UAEO,IAAfmd,IACFA,EAAand,KAAK6c,SAGD,IAAfO,IACFA,EAAapd,KAAK8c,IAIpB9c,KAAKwc,MAAMjR,IAAIoG,GACf3R,KAAK6c,GAAKM,EACVnd,KAAK8c,GAAKM,EACVpd,KAAK6V,WAxpBT,SAAiBD,EAAQC,EAAYuH,GACnC,IAAIE,EAAa,GAUjB,OATArL,EAAK4D,GAAY,SAAU0H,EAAWxY,GACpCuY,EAAWvY,GAAQwY,EAAU3H,EAAQ0H,EAAYvY,EAAKzC,kBAGnD8a,IACHA,EAAaxH,EAAOlR,GAhLb,QAgLwBuS,EAAOtB,GAGxC2H,EAAWF,WAAaA,EAAWxH,EAAQ0H,GACpCA,EA6oBaE,CAAQxd,KAAMuS,EAAMvS,KAAK4c,GAAIO,GAAaC,GAE5D,IACEnL,EAAKjS,KAAK6V,YAAY,SAAU4H,EAAWve,GACzC,IAAIwe,EAAWD,EAAUC,cAERC,IAAbD,GAA0BA,EAC5BD,EAAUzH,OAASyH,EAAUzH,eAEtBqH,EAAMxH,WAAW3W,MAG5B,MAAOhB,GAEP,YADAoZ,EAAMpZ,EAAEqZ,SAIV,IAAIiF,EAAQxc,KAAKwc,MAgBjB,OAfAA,EAAMjR,IAAIuG,GACVG,EAAKjS,KAAK6V,YAAY,SAAU4H,GAC9BA,EAAUG,SAAWH,EAAUG,aAEjC5d,KAAKoc,KAAK,WACVI,EAAMjR,IAAIsG,GACV7R,KAAKoc,KAAK,SACV5I,EAAWxT,KAAKsT,KAAM,CACpBuK,WAAY,YAEd7d,KAAKkW,GAAG,aAAa,WACnB,OAAOsG,EAAMjR,IAAIwG,MAChBmE,GAAG,iBAAiB,WACrB,OAAOsG,EAAMjR,IAAIsG,MAEZ7R,MAWTkd,EAAOY,KAAO,SAAcC,GAE1B,OADA/d,KAAKge,QAAUD,EACR/d,MAeTkd,EAAOhH,GAAK,SAAYgG,EAAQD,EAASlI,EAAK0C,GAU5C,YATY,IAAR1C,IACFA,EAAM,WAGQ,IAAZ0C,IACFA,EAAU,IAGZzW,KAAK8b,MAAM5F,GAAGgG,EAAQD,EAASlI,EAAK0C,GAC7BzW,MAYTkd,EAAOf,IAAM,SAAaD,EAAQnI,GAMhC,YALY,IAARA,IACFA,EAAM,MAGR/T,KAAK8b,MAAMK,IAAID,EAAQnI,GAChB/T,MAUTkd,EAAOd,KAAO,SAActZ,GAG1B,IAFA,IAAImb,EAEK5B,EAAO3d,UAAUC,OAAQqK,EAAO,IAAI1H,MAAM+a,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClGtT,EAAKsT,EAAO,GAAK5d,UAAU4d,GAK7B,OAFC2B,EAAcje,KAAK8b,OAAOM,KAAK1U,MAAMuW,EAAa,CAACnb,GAAO6L,OAAO3F,IAE3DhJ,MAUTkd,EAAOgB,GAAK,SAAYC,EAASC,GAS/B,YARa,IAATA,IACFA,EAAOpe,KAAKyW,QAAQyB,oBAGlBlY,KAAKwc,MAAM9X,GAAGmN,IAAS7R,KAAKwc,MAAM9X,GAAGqN,KAAYqM,IACnDpe,KAAK6V,WAAWc,WAAWuH,GAAGC,GAAS,GAGlCne,MAWTkd,EAAOxY,GAAK,SAAY1F,GACtB,OAAOA,IAASgB,KAAK0c,GAAG1d,MAU1Bke,EAAOxU,IAAM,SAAaiN,EAAOzD,GAM/B,YALc,IAAVA,IACFA,GAAS,GAGXlS,KAAK6V,WAAWI,SAASvN,IAAIiN,EAAOzD,EAAOlS,KAAKqe,QAAQvY,KAAK9F,OACtDA,MASTkd,EAAOlI,OAAS,SAAgB9C,GAG9B,OAFAlS,KAAK6V,WAAWI,SAASjB,OAAO9C,GAChClS,KAAKqe,UACEre,MAOTkd,EAAOmB,QAAU,WAEf,OADAre,KAAKoc,KAAK,kBAAkBA,KAAK,WAAWA,KAAK,UAC1Cpc,MAUTkd,EAAO3C,QAAU,SAAiB+D,GAChC,IAAIC,EAASve,KAOb,QALmB,IAAfse,IACFA,GAAa,IAIXte,KAAKwc,MAAM9X,GAAGiN,GAclB,OAPAQ,EAAOnS,KAAK6V,YAAY2I,UAAU5a,SAAQ,SAAU6Z,GAClDA,EAAUlD,SAAWkD,EAAUlD,QAAQ+D,MAEzCte,KAAKoc,KAAK,UAAWkC,GAErBte,KAAK8b,MAAMvB,UACXva,KAAKwc,MAAMjR,IAAIqG,GACR5R,KAbLA,KAAKkW,GAAG,SAAS,WACf,OAAOqI,EAAOhE,QAAQ+D,OApRRvB,EAySPnH,GAzSoBoH,EAySZ,CAAC,CACpB9d,IAAK,QACL+M,IAAK,WACH,OAAOjM,KAAK2c,IAQdpR,IAAK,SAAa2G,GAChBlS,KAAK2c,GAAK8B,SAASvM,KASpB,CACDhT,IAAK,SACL+M,IAAK,WACH,OAAOjM,KAAK6V,WAAWI,SAAStX,SAQjC,CACDO,IAAK,UACL+M,IAAK,WACH,OAAOjM,KAAK0c,IAQdnR,IAAK,SAAakL,GAChB,IAAIiI,EAAU1e,KAAKwc,MAAM9X,GAAGiN,GAEvB+M,GACH1e,KAAKoc,KAAK,UAGZpc,KAAK0c,GAAKnK,EAAMvS,KAAK0c,GAAIjG,GAEpBiI,GACH1e,KAAKoc,KAAK,UAAWpc,KAAK0c,MAU7B,CACDxd,IAAK,UACL+M,IAAK,WACH,OAAOjM,KAAK0c,GAAGpV,UAShB,CACDpI,IAAK,OACL+M,IAAK,WACH,OAAOjM,KAAK0c,GAAGrB,UAvXyDK,EAAkBqB,EAAY9Z,UAAW+Z,GAAiBC,GAAavB,EAAkBqB,EAAaE,GA2X3KrH,EAtWiB,GA4XG,MAAMa,EAAU,SAAWb,GAOtD,IAAIa,EAAUnB,EAAaM,EAAOtC,KAAM,eAExC,GAAImD,EACF,IACEb,EAAOa,QAAUkI,KAAKpV,MAAMkN,GAC5B,MAAOvY,GACPoZ,EAAMpZ,EAAEqZ,SAIZ,MAAO,CAILvB,MAAO,WACDJ,EAAO4G,MAAM9X,GAAGiN,KAClBiE,EAAO1D,MAAQ0D,EAAOa,QAAQN,UA+RHyI,EAAsB,SAAWhJ,EAAQC,GAM1E,IAAIvC,EAAOsC,EAAOtC,KAOdhM,EAAUsO,EAAOtO,QAOjBuX,EAAS,GAMb,IAAKvL,EAAKwL,GAAI,CACZ1Q,OAAO2P,OAAS3P,OAAO2P,QAAU,GACjC,IAAIgB,EAAM3Q,OAAO2P,OAAe,KAAK,EACrC3P,OAAO2P,OAAe,MAAMgB,EAC5BzL,EAAKwL,GAAK,SAAW3L,EAAI4L,GAS3B,IAAI9I,EAAW,CAKbD,MAAO,WACL,IAAIqH,EAAQrd,KAEZA,KAAK8J,OACL8L,EAAOM,GAAG,WAAW,WACnBmH,EAAM9C,UAEN8C,EAAMvT,UACLoM,GAAG,WAAW,WACff,EAAY7B,EAAM0L,KAClB9J,EAAS5B,EAAM0L,SAOnBzE,QAAS,WACPsE,EAAOjb,SAAQ,SAAUqb,GACvBA,EAAM1E,aAERsE,EAAS,GACT1J,EAAY7B,EAAM0L,MAMpBlV,KAAM,WACJ,IAAIyU,EAASve,MA4IjB,WACEiW,EAASwE,OAASxG,EAAMX,EAAMhM,EAAQmT,QACtCxE,EAASkB,MAAQrD,EAAKR,EAAM,IAAMhM,EAAQ6P,OAC1ClB,EAASH,KAAO7B,EAAMgC,EAASkB,MAAO7P,EAAQwO,MAC9C4B,EAAMzB,EAASkB,OAASlB,EAASH,KAAM,gCACvCG,EAASiB,OAASrY,EAASoX,EAASH,KAAMxO,EAAQqO,OAClD,IAAImD,EAASoG,EAAU5X,EAAQwR,QAC/B7C,EAAS6C,OAAS,CAChB8B,KAAM9G,EAAKgF,EAAQ,IAAMxR,EAAQsT,MACjCC,KAAM/G,EAAKgF,EAAQ,IAAMxR,EAAQuT,OAEnC,IAAI5B,EAAWiG,EAAU5X,EAAQ2R,UACjChD,EAAS+E,IAAMlH,EAAKoL,EAAU5X,EAAQyT,UAAW,IAAMzT,EAAQ0T,KAC/D/E,EAASgF,KAAOnH,EAAKmF,EAAU,IAAM3R,EAAQ2T,MAC7ChF,EAASiF,MAAQpH,EAAKmF,EAAU,IAAM3R,EAAQ4T,OAC9CjF,EAASkB,MAAM2H,GAAK7I,EAASkB,MAAM2H,IAAMxL,EAAKwL,GAAK,SACnD7I,EAASH,KAAKgJ,GAAK7I,EAASH,KAAKgJ,IAAMxL,EAAKwL,GAAK,QA1J/CK,GACAjK,EAAS5B,EAAM0L,KACfhf,KAAKkX,OAAOtT,SAAQ,SAAU+R,EAAOzD,GACnCqM,EAAOa,SAASzJ,EAAOzD,GAAQ,OAWnCkN,SAAU,SAAkBzJ,EAAOzD,EAAOmN,GACxC,IAAIC,EAzT0C,SAAW1J,EAAQ1D,EAAOmN,EAAW1J,GAMvF,IAAI0E,EAAezE,EAAOa,QAAQ4D,aAQ9BkF,EAAuB,uDAAyDlF,EAAe,cAAgB,IAO/G4E,EAAQ,CAMVtJ,MAAOA,EAOPzD,MAAOA,EAOPmN,UAAWA,EAOX3E,UAAWzG,EAAM0B,EAAOC,EAAOtO,QAAQoT,WAOvC8E,QAASH,GAAa,EAKtBrJ,MAAO,WACL,IAAIqH,EAAQrd,KAEPA,KAAKwf,UACR7J,EAAMmJ,GAAKlJ,EAAOtC,KAAKwL,GAAK,SAAW3L,EAAIjB,EAAQ,IAGrD0D,EAAOM,GAAGqJ,GAAsB,WAC9B,OAAOlC,EAAMoC,YACZvJ,GAjFkB,eAiFOwJ,GAAexJ,GAAG,SAAS,WACrD,OAAON,EAAOwG,KAAK,QAASiB,KAC3B1H,GAMC0E,GACFzE,EAAOM,GAAG,cAAc,SAAUG,GAC5BA,IAAagJ,GACfM,GAAQ,GAAM,MAMpBnM,EAAWmC,EAAO,CAChBiK,QAAS,KAGX5f,KAAK6U,OAASS,EAAaK,EAAO,UAAY,IAMhD4E,QAAS,WACP3E,EAAOuG,IAAIoD,GAAsBpD,IA7GZ,gBA6GsCA,IAAI,QAASxG,GACxER,EAAYQ,EAAOxD,EAAOyF,IAC1B8H,IACA7c,EAAgB7C,KAAK0a,UAAW,UAMlC+E,OAAQ,WACNE,EAAQ3f,KAAK6f,YAAY,GAEzBF,EAAQ3f,KAAK8f,aAAa,IAQ5BD,SAAU,WACR,OAAOjK,EAAO1D,QAAUA,GAQ1B4N,UAAW,WACT,IAAIjI,EAAS7X,KAAK6f,WAElB,GAAIjK,EAAOlR,GA11CN,SA01CkBmT,EACrB,OAAOA,EAGT,IAAIlP,EAAOR,KAAKQ,KACZoX,EAAYvK,EAAQI,EAAOC,WAAWI,SAASkB,OAC/C6I,EAAYxK,EAAQG,GAExB,MAzKI,QAyKAC,EAAOa,QAAQsD,UACVgG,EAAUE,KAAOD,EAAUC,KAAOD,EAAUE,QAAUvX,EAAKoX,EAAUG,QAGvEH,EAAUI,MAAQH,EAAUG,MAAQH,EAAUI,OAASzX,EAAKoX,EAAUK,QAY/EC,SAAU,SAAkB1P,EAAM2P,GAChC,IAAI3S,EAAOxF,KAAKC,IAAIuI,EAAOuB,GAM3B,OAJK0D,EAAOlR,GAn4CN,UAm4CoB1E,KAAKwf,UAC7B7R,EAAOxF,KAAK4D,IAAI4B,EAAMiI,EAAOjX,OAASgP,IAGjCA,EAAO2S,IAUlB,SAASX,EAAQ9H,EAAQ0I,GACvB,IAAIvhB,EAAOuhB,EAAgB,UAAY,SACnCnL,EAAYwC,EAAe5Y,GAE3B6Y,GACF3C,EAASS,EAAOP,GAChBQ,EAAOwG,KAAK,GAAKpd,EAAMigB,IAEnB7K,EAASuB,EAAOP,KAClBD,EAAYQ,EAAOP,GACnBQ,EAAOwG,KAAWmE,EAAgB,SAAW,WAAatB,IAShE,SAASS,IACP9c,EAAa+S,EAAO,QAASsJ,EAAMpK,QAGrC,OAAOoK,EAwHeuB,CAAe5K,EAAQ1D,EAAOmN,EAAW1J,GAC3D2J,EAAYtJ,QACZ6I,EAAOjgB,KAAK0gB,IASdmB,SAAU,SAAkBvO,GAC1B,OAAO2M,EAAOxY,QAAO,SAAU4Y,GAC7B,OAAOA,EAAM/M,QAAUA,KACtB,IAULwO,UAAW,SAAmBC,GAC5B,OAAOA,EAAgB9B,EAASA,EAAOxY,QAAO,SAAU4Y,GACtD,OAAQA,EAAMO,YAWlBoB,gBAAiB,SAAyB9F,GACxC,IAAI+F,EAAMhL,EAAWc,WAAWmK,QAAQhG,GACpCrE,EAAUb,EAAOa,QACjB3D,GAAwB,IAAlB2D,EAAQkC,MAAkB,EAAIlC,EAAQ+B,QAChD,OAAOqG,EAAOxY,QAAO,SAAUmM,GAC7B,IAAIN,EAAQM,EAAKN,MACjB,OAAO2O,GAAO3O,GAASA,EAAQ2O,EAAM/N,MAYzCpK,IAAK,SAAaiN,EAAOzD,EAAO5C,GAK9B,GAJqB,iBAAVqG,IACTA,EAAQnB,EAAOmB,IAGbA,aAAiBkG,QAAS,CAC5B,IAAI1c,EAAMa,KAAKkX,OAAOhF,GAEtBsB,EAAWmC,EAAO,CAChBiK,QAAS,SAGPzgB,GACFyV,EAAOe,EAAOxW,GACda,KAAKkX,OAAO6J,OAAO7O,EAAO,EAAGyD,KAE7BhC,EAAO3T,KAAK8V,KAAMH,GAClB3V,KAAKkX,OAAOtY,KAAK+W,IAvoD3B,SAAgB5B,EAAKzE,GACnB,IAAI0R,EAASjN,EAAIxE,iBAAiB,OAC9B5Q,EAASqiB,EAAOriB,OAEpB,GAAIA,EAAQ,CACV,IAAIsiB,EAAQ,EACZhP,EAAK+O,GAAQ,SAAUE,GACrBA,EAAIlS,OAASkS,EAAIC,QAAU,aACnBF,IAAUtiB,GACd2Q,aAMNA,IA2nDI8R,CAAOzL,GAAO,WACZrG,GAAYA,EAASqG,QAW3BX,OAAQ,SAAgB9C,GACtB2B,EAAW7T,KAAKkX,OAAO6J,OAAO7O,EAAO,GAAG,KAQ1CD,KAAM,SAAc3C,GAClBuP,EAAOjb,QAAQ0L,IAQjB,aACE,OAAOtP,KAAKkX,OAAOvY,QAQrB,YACE,OAAOkgB,EAAOlgB,SA+BlB,SAASqgB,IACP,IAAIqC,EAAY/Z,EAAQgM,KACpBmD,EAAUb,EAAOa,QACrB,MAAO,CAAC4K,EAAY,KAAO5K,EAAQzX,KAAMqiB,EAAY,KAAO5K,EAAQsD,UAAWtD,EAAQgD,KAAO4H,EAAY,cAAgB,GAAI5K,EAAQ0D,aAAekH,EAAY,QAAU,GAAIzJ,EAAeC,QAShM,SAASqH,EAAU9J,GACjB,OAAOnB,EAAMX,EAAM8B,IAAcnB,EAAMgC,EAASwE,OAAQrF,GAG1D,OAAOa,GAYT,IAAI5N,EAAQF,KAAKE,MAUY,MAAMiZ,EAAa,SAAW1L,EAAQC,GAMjE,IAAIY,EAOA8K,EAOA5K,EAAa,CAIfX,MAAO,WACLS,EAAUb,EAAOa,QACjB8K,EAAS3L,EAAOlR,GAAGgR,GA4NrBE,EAAOM,GAAG,QAAQ,SAAUG,GAC1BT,EAAO1D,MAAQmE,KACdH,GAAG,mBAAmB,SAAUsL,GACjC/K,EAAU+K,GAAc/K,EACxBb,EAAO1D,MAAQS,EAAQiD,EAAO1D,MAAO,EAAGyE,EAAWD,eAhNrDwH,GAAI,SAAYC,EAASsD,GACvB,IAAIrL,EAAYpW,KAAK0hB,KAAK1hB,KAAKuJ,MAAM4U,IACrCtI,EAAW8L,MAAMzD,GAAG9H,EAAWpW,KAAKiY,OAAO7B,GAAYqL,IAUzDlY,MAAO,SAAe4U,GACpB,IAAIjM,EAAQ0D,EAAO1D,MACf0P,EAAU3Z,OAAOkW,GAASxU,MAAM,oBAChCkY,EAAYD,EAAUA,EAAQ,GAAK,GACnCxO,EAASwO,EAAUnD,SAASmD,EAAQ,IAAM,EAE9C,OAAQC,GACN,IAAK,IACH3P,GAASkB,GAAU,EACnB,MAEF,IAAK,IACHlB,GAASkB,GAAU,EACnB,MAEF,IAAK,IACL,IAAK,IACHlB,EA2MR,SAAmBkB,EAAQlB,EAAO0I,GAChC,GAAIxH,GAAU,EACZ,OAAOuD,EAAWmK,QAAQ1N,GAG5B,IAAIqF,EAAUhC,EAAQgC,QAClBqJ,EAAOlH,GAAQ,EAAI,EAEvB,OAAInC,EACKvG,EAAQuG,EAAUqJ,EAGpBnL,EAAWmK,QAAQnK,EAAWoL,OAAO7P,GAAS4P,GAvNvCE,CAAU5O,EAAQlB,EAAqB,MAAd2P,GACjC,MAEF,QACE3P,EAAQuM,SAASN,GAGrB,OAAOjM,GAUT4O,QAAS,SAAiBhG,GACxB,GAAImH,IACF,OAAOnH,EAGT,IAAInc,EAASiX,EAAOjX,OAChB6Z,EAAU/B,EAAQ+B,QAClBtG,EAAQ4I,EAAOtC,EAOnB,OAJI7Z,EAAS6Z,IAFbtG,IAAiBlS,KAAKkiB,WAAa1J,EAAU7Z,GAAU0J,EAAM6J,EAAQvT,KAEpCuT,EAAQvT,IACvCuT,EAAQvT,EAAS6Z,GAGZtG,GAUT6P,OAAQ,SAAgB7P,GACtB,GAAI+P,IACF,OAAO/P,EAGT,IAAIvT,EAASiX,EAAOjX,OAChB6Z,EAAU/B,EAAQ+B,QAEtB,OACSnQ,EADL1J,EAAS6Z,GAAWtG,GAASA,EAAQvT,GACzBA,EAAS,GAAK6Z,EAGjBtG,EAAQsG,IAWvBkJ,KAAM,SAAcxP,GAKlB,OAJKqP,IACHrP,EAAQuE,EAAQwB,OAASjY,KAAKiY,OAAO/F,GAASS,EAAQT,EAAO,EAAGlS,KAAK0W,YAGhExE,GAUT+F,OAAQ,SAAgB/F,GACtB,IAAIiQ,EAAOniB,KAAK0W,UAEhB,GAAI6K,EAAQ,CACV,KAAOrP,EAAQiQ,GACbjQ,GAASiQ,EAAO,EAGlB,KAAOjQ,EAAQ,GACbA,GAASiQ,EAAO,OAGdjQ,EAAQiQ,EACVjQ,EAAQ,EACCA,EAAQ,IACjBA,EAAQiQ,GAIZ,OAAOjQ,GAQTkQ,MAAO,WACL,MA1sBI,QA0sBG3L,EAAQsD,WAQjB,iBACE,IAAIpb,EAASiX,EAAOjX,OACpB,OAAOsjB,IAAatjB,EAASwJ,KAAKQ,KAAKhK,EAAS8X,EAAQ+B,UAQ1D,gBACE,IAAI7Z,EAASiX,EAAOjX,OAEpB,OAAKA,EAIDsjB,KAAcxL,EAAQ0D,cAAgBoH,EACjC5iB,EAAS,EAGXA,EAAS8X,EAAQ+B,QAPf,GAeX,gBACE,IAAIoC,EAAOhF,EAAO1D,MAAQ,EAM1B,OAJIqP,GAAU9K,EAAQwB,UACpB2C,EAAO5a,KAAKiY,OAAO2C,IAGdA,GAAQ,EAAIA,GAAQ,GAQ7B,gBACE,IAAIC,EAAOjF,EAAO1D,MAAQ,EAM1B,OAJIqP,GAAU9K,EAAQwB,UACpB4C,EAAO7a,KAAKiY,OAAO4C,IAGdjF,EAAO1D,MAAQ2I,GAAQA,GAAQ7a,KAAK0W,WAAsB,IAATmE,EAAaA,GAAQ,IAuBjF,SAASoH,IACP,OAAyB,IAAlBxL,EAAQkC,MA4BjB,OAAOhC,GAcT,IAAIvO,EAAMD,KAAKC,IAUc,MAAM+O,EAAQ,SAAWvB,EAAQC,GAM5D,IAAIwM,EAOApM,EAOAH,EAOAwM,EAr2BI,QAq2BS1M,EAAOa,QAAQsD,UAO5BwI,EAAS3M,EAAOlR,GAriEX,QA4iEL8d,EA13BI,QA03BI5M,EAAOa,QAAQsD,UAOvB0I,GAAgB,EAOhBX,EAAOU,EAAQ,GAAK,EAOpBb,EAAQ,CAMVG,KAAMA,EAKN9L,MAAO,WACLC,EAAWJ,EAAWI,SACtBoM,EAASxM,EAAWwM,OACpBvM,EAAOG,EAASH,MAOlB8H,QAAS,WACP,IAAIP,EAAQrd,KAEPuiB,IACHviB,KAAK0iB,KAAK,GACV9M,EAAOM,GAAG,0BAA0B,WAClCmH,EAAMqF,KAAK9M,EAAO1D,YAcxBgM,GAAI,SAAY9H,EAAWC,EAAUoL,GACnC,IAAIkB,EAAcC,EAAmBxM,GACjCE,EAAYV,EAAO1D,MAEnB0D,EAAO4G,MAAM9X,GAAGqN,IAAW0Q,IAI/BA,EAAgBrM,IAAcC,EAEzBoL,GACH7L,EAAOwG,KAAK,OAAQ/F,EAAUC,EAAWF,GAGvCjO,KAAKC,IAAIua,EAAc3iB,KAAKyT,WAAa,GAAK8O,EAChD1M,EAAWuH,WAAWjH,MAAMC,EAAWC,EAAUC,EAAWtW,KAAK6iB,QAAQF,IAAc,WACrFG,EAAgB1M,EAAWC,EAAUC,EAAWmL,MAG9CrL,IAAcE,GAA0C,SAA7BV,EAAOa,QAAQ2D,UAC5CvE,EAAWc,WAAWuH,GAAG9H,EAAYA,EAAYE,EAAWmL,GAE5DqB,EAAgB1M,EAAWC,EAAUC,EAAWmL,KAUtDiB,KAAM,SAAcxQ,GAClBlS,KAAK+iB,UAAUH,EAAmB1Q,KAQpC6Q,UAAW,SAAmBtP,GAC5BD,EAAWsC,EAAM,CACfkB,UAAW,aAAesL,EAAa,IAAM,KAAO,IAAM7O,EAAW,SAQzEuP,OAAQ,WACFpN,EAAOlR,GAAGgR,GACZ1V,KAAKijB,QAGLjjB,KAAK+iB,UAAU/iB,KAAKyT,UAGtBD,EAAWsC,EAAM,CACfgB,WAAY,MAOhBmM,MAAO,WACL,IAAIxP,EAAWrL,EAAIpI,KAAKyT,UACpB0M,EAAO/X,EAAIpI,KAAKkjB,WAAW,IAC3B9C,EAAQhY,EAAIpI,KAAKkjB,WAAWtN,EAAOjX,SACnCwkB,EAAY/C,EAAQD,EAEpB1M,EAAW0M,EACb1M,GAAY0P,EACH1P,EAAW2M,IACpB3M,GAAY0P,GAGdnjB,KAAK+iB,UAAUjB,EAAOrO,IAUxBiO,KAAM,SAAcjO,GAClB,OAAKmC,EAAOa,QAAQ2D,WAAaxE,EAAOlR,GAAGgR,GAClCjC,EAIFd,EAAQc,EADJqO,GAAQO,EAAOe,YAAcf,EAAOgB,KAAOhB,EAAOzJ,KAC9B,IAUjCkI,QAAS,SAAiBrN,GACxB,IAAI8K,EAASve,KAETkS,EAAQ,EACRoR,EAAcC,IAUlB,OATAtN,EAASyK,WAAU,GAAM9c,SAAQ,SAAUqb,GACzC,IAAIuE,EAAavE,EAAM/M,MACnBuR,EAAWrb,EAAImW,EAAO2E,WAAWM,GAAc/P,GAE/CgQ,EAAWH,IACbA,EAAcG,EACdvR,EAAQsR,MAGLtR,GAUT2Q,QAAS,SAAiBpP,GACxB,MAAO,CACLhS,EAAG6gB,EAAa,EAAI7O,EACpB3T,EAAGwiB,EAAa7O,EAAW,IAW/ByP,WAAY,SAAoBhR,GAC9B,IAAIuB,EAAW4O,EAAOe,UAAUlR,GAASmQ,EAAOqB,UAAUxR,GAASmQ,EAAOzJ,IAC1E,OAAOkJ,GAAQrO,EAAWzT,KAAK2jB,OAAOzR,KAQxCyR,OAAQ,SAAgBzR,GACtB,IAAIyG,EAAQ/C,EAAOa,QAAQkC,MACvB+K,EAAYrB,EAAOqB,UAAUxR,GAEjC,MAAc,WAAVyG,IACO0J,EAAOgB,KAAOK,GAAa,IAG7BjF,SAAS9F,IAAU,IAAM+K,EAAYrB,EAAOzJ,MASvD,eACE,IAAI9D,EAAOwN,EAAa,MAAQE,EAAQ,QAAU,OAClD,OAAOhN,EAAQM,GAAMhB,IAASU,EAAQS,EAASkB,OAAOrC,GAAQuN,EAAOxJ,QAAQ/D,GAAQgN,KAazF,SAASgB,EAAgB1M,EAAWC,EAAUC,EAAWmL,GACvDjO,EAAWsC,EAAM,CACfgB,WAAY,KAEd2L,GAAgB,EAEXF,GACHZ,EAAMe,KAAKrM,GAGRoL,GACH7L,EAAOwG,KAAK,QAAS/F,EAAUC,EAAWF,GAU9C,SAASwM,EAAmB1Q,GAC1B,OAAOyP,EAAMD,KAAKC,EAAMuB,WAAWhR,IAGrC,OAAOyP,GAsB0BjJ,GAAS,SAAW9C,EAAQC,GAM7D,IAAI6C,EAAS,GAOTkL,EAAa,EAOb3N,EAAWJ,EAAWI,SAOtB4N,EAAS,CAIX7N,MAAO,WACL,IAAIqH,EAAQrd,KAER4V,EAAOlR,GAAGgR,KACZ5L,IACA8L,EAAOM,GAAG,kBAAkB,WAC1BmH,EAAM9C,aACLrE,GAAG,UAAWpM,GAAMoM,GAAG,UAAU,WAC9B0N,IAAeE,MAEjBzG,EAAM9C,UAEN3E,EAAOyI,gBASf9D,QAAS,WACP1G,EAAW6E,GACXA,EAAS,IAQX,aACE,OAAOA,GAQT,aACE,OAAOA,EAAO/Z,SAQlB,SAASmL,IACP+Z,EAAOtJ,UAWT,SAAwB0G,GACtB,IAAItiB,EAASsX,EAAStX,OAClBygB,EAAWnJ,EAASmJ,SAExB,GAAIzgB,EAAQ,CAGV,IAFA,IAAIuY,EAASjB,EAASiB,OAEfA,EAAOvY,OAASsiB,GACrB/J,EAASA,EAAOvI,OAAOuI,GAIzBA,EAAO3U,MAAM,EAAG0e,GAAOrd,SAAQ,SAAUmQ,EAAK7B,GAC5C,IAAIzJ,EAAQsb,EAAYhQ,GACxBJ,EAAOsC,EAASH,KAAMrN,GACtBiQ,EAAO9Z,KAAK6J,GACZ2W,EAAS3W,EAAOyJ,EAAQvT,EAAQuT,EAAQvT,MAG1CuY,EAAO3U,OAAO0e,GAAOrd,SAAQ,SAAUmQ,EAAK7B,GAC1C,IAAIzJ,EAAQsb,EAAYhQ,GACxBa,EAAOnM,EAAOyO,EAAO,IACrBwB,EAAO9Z,KAAK6J,GACZ2W,EAAS3W,EAAOyJ,EAAQ+O,GAAQtiB,EAASuT,EAAQ+O,EAAQtiB,GAAUA,OAhCvEqlB,CADAJ,EAAaE,KAiDf,SAASA,IACP,IAAIrN,EAAUb,EAAOa,QAErB,GAAIA,EAAQiC,OACV,OAAOjC,EAAQiC,OAIjB,IAAIuL,EAAYxN,EAAQ6B,WAAa7B,EAAQ8B,WAAatC,EAAStX,OAAS8X,EAAQ+B,QAChF0L,EAryCE,QAqyCUzN,EAAQsD,UAAoB,SAAW,QACnDoK,EAAY9Q,EAAQuC,EAAOtC,KAAMmD,EAAQ,QAAUyN,IAOvD,OALIC,IAEFF,EAAY9b,KAAKQ,KAAKsN,EAASkB,MAAM,SAAW+M,GAAaC,IAGxDF,GAAaxN,EAAQgD,KAAOhD,EAAQqD,cAAgB,EAAI,GAWjE,SAASiK,EAAYhQ,GACnB,IAAItL,EAAQsL,EAAIqQ,WAAU,GAI1B,OAHAlP,EAASzM,EAAOmN,EAAOtO,QAAQmB,OAE/B5F,EAAgB4F,EAAO,MAChBA,EAGT,OAAOob,GAyUT,SAASvJ,GAAS+J,EAAMjG,GACtB,IAAIkG,EAEJ,OAAO,WACAA,IACHA,EAAUte,YAAW,WACnBqe,IACAC,EAAU,OACTlG,KA2FoB,MAAMmG,GAAS,SAAW3O,EAAQC,GAM7D,IAxzGqBpD,EAAI9B,EAwzGrBsF,EAAWJ,EAAWI,SAOtBqM,EAzvDI,QAyvDS1M,EAAOa,QAAQsD,UAO5BsI,GAt0GiB5P,EAs0GM,CAIzBuD,MAAO,WA8CPJ,EAAOM,GAAG,cAAeoE,IAAS,WAChC1E,EAAOwG,KAAK,YACXxG,EAAOa,QAAQ6D,UAAWlM,QAAQ8H,GAAG,SAAUsO,GAAQtO,GAAG,kBAAmBpM,GA9C9EA,IAEA9J,KAAKojB,UAAYd,EAAatiB,KAAKykB,YAAczkB,KAAK0kB,WACtD1kB,KAAK0jB,UAAYpB,EAAatiB,KAAK2kB,YAAc3kB,KAAK4kB,YAMxDrK,QAAS,WACP1X,EAAgB,CAACoT,EAASH,KAAMG,EAASkB,OAAQ,UAQnD,WACE,OAAOmL,EAAatiB,KAAKoX,OAASpX,KAAK0T,QA/1GlB/C,EAk2GtB2R,EAxSyC,SAAW1M,EAAQC,GAM/D,IAcIsB,EAOAV,EArBAR,EAAWJ,EAAWI,SAOtB3C,EAAOsC,EAAOtC,KAelB,MAAO,CAMLuR,OAAQ,eAKR/a,KAAM,WACJ9J,KAAKwkB,UAOPA,OAAQ,WACN/N,EAAUb,EAAOa,QACjBU,EAAQlB,EAASkB,MACjBnX,KAAK4Y,IAAMvF,EAAQC,EAAMmD,EAAQmC,KACjC,IAAIC,EAAUpC,EAAQoC,QAClBoH,EAAM5M,EAAQC,EAAMuF,EAAQoH,KAAOpH,GACnCqH,EAAS7M,EAAQC,EAAMuF,EAAQqH,QAAUrH,GAC7C7Y,KAAK6Y,QAAU,CACboH,IAAKA,EACLC,OAAQA,GAEV1M,EAAW2D,EAAO,CAChB2N,WAAY7R,EAAKgN,GACjB8E,cAAe9R,EAAKiN,MAWxBuE,YAAa,SAAqBvS,QAClB,IAAVA,IACFA,EAAQ0D,EAAOjX,OAAS,GAG1B,IAAIsgB,EAAQhJ,EAASwK,SAASvO,GAE9B,OAAI+M,EACKzJ,EAAQyJ,EAAMtJ,OAAOuK,OAAS1K,EAAQS,EAASH,MAAMmK,IAAMjgB,KAAK4Y,IAGlE,GAQTgM,WAAY,WACV,OAAOvR,EAAQC,EAAMmD,EAAQ0B,YAAcnY,KAAK0T,QAUlDiR,YAAa,SAAqBzS,GAChC,GAAIuE,EAAQ8B,WAAY,CACtB,IAAI0G,EAAQhJ,EAASwK,SAASvO,GAC9B,OAAO+M,EAAQA,EAAMtJ,MAAMqP,aAAe,EAG5C,IAAI5N,EAASX,EAAQ2B,cAAgBpY,KAAKoX,OAASpX,KAAK4Y,KAAOnC,EAAQ+B,QAAUxY,KAAK4Y,IACtF,OAAOvF,EAAQC,EAAM8D,IAQvB,YACE,OAAOD,EAAMvD,aAQf,aACE,IAAIwD,EAASX,EAAQW,QAAUpX,KAAK0T,MAAQ+C,EAAQ4B,YAEpD,OADAX,EAAMN,EAAQ,yCACP/D,EAAQC,EAAM8D,GAAUpX,KAAK6Y,QAAQoH,IAAMjgB,KAAK6Y,QAAQqH,SAwKnD+E,CAASrP,EAAQC,GAvca,SAAWD,EAAQC,GAMjE,IAcIsB,EAdAlB,EAAWJ,EAAWI,SAOtB3C,EAAOsC,EAAOtC,KAcdmD,EAAUb,EAAOa,QACrB,MAAO,CAMLoO,OAAQ,UA93CF,QA83CcpO,EAAQsD,UAAoB,OAAS,SAOzD3C,OAAQ,EAKRtN,KAAM,WACJ9J,KAAKwkB,UAOPA,OAAQ,WACN/N,EAAUb,EAAOa,QACjBU,EAAQlB,EAASkB,MACjBnX,KAAK4Y,IAAMvF,EAAQC,EAAMmD,EAAQmC,KACjC,IAAIC,EAAUpC,EAAQoC,QAClBsH,EAAO9M,EAAQC,EAAMuF,EAAQsH,MAAQtH,GACrCuH,EAAQ/M,EAAQC,EAAMuF,EAAQuH,OAASvH,GAC3C7Y,KAAK6Y,QAAU,CACbsH,KAAMA,EACNC,MAAOA,GAET5M,EAAW2D,EAAO,CAChB+N,YAAajS,EAAKkN,GAClBgF,aAAclS,EAAKmN,MAWvBsE,WAAY,SAAoBxS,QAChB,IAAVA,IACFA,EAAQ0D,EAAOjX,OAAS,GAG1B,IAAIsgB,EAAQhJ,EAASwK,SAASvO,GAC1BwB,EAAQ,EAEZ,GAAIuL,EAAO,CACT,IAAIe,EAAYxK,EAAQyJ,EAAMtJ,OAC1ByP,EAAW5P,EAAQS,EAASH,MAG9BpC,EAv7CA,QAs7CE+C,EAAQsD,UACFqL,EAAShF,MAAQJ,EAAUG,KAE3BH,EAAUI,MAAQgF,EAASjF,KAGrCzM,GAAS1T,KAAK4Y,IAGhB,OAAOlF,GAUTkR,WAAY,SAAoB1S,GAC9B,GAAIuE,EAAQ6B,UAAW,CACrB,IAAI2G,EAAQhJ,EAASwK,SAASvO,GAC9B,OAAO+M,EAAQA,EAAMtJ,MAAM0P,YAAc,EAG3C,IAAI3R,EAAQ+C,EAAQ0B,aAAenY,KAAK0T,MAAQ1T,KAAK4Y,KAAOnC,EAAQ+B,QAAUxY,KAAK4Y,IACnF,OAAOvF,EAAQC,EAAMI,IAQvBiR,YAAa,WACX,IAAIvN,EAASX,EAAQW,QAAUX,EAAQ2B,aAAepY,KAAK0T,MAAQ+C,EAAQ4B,YAC3E,OAAOhF,EAAQC,EAAM8D,IAQvB,YACE,OAAOD,EAAMvD,YAAc5T,KAAK6Y,QAAQsH,KAAOngB,KAAK6Y,QAAQuH,QAgUjBkF,CAAW1P,EAAQC,GAj2GlE7D,EAAKrB,GAAM/M,SAAQ,SAAU1E,GACtBuT,EAAGvT,IACN4H,OAAOC,eAAe0L,EAAIvT,EAAK4H,OAAOye,yBAAyB5U,EAAMzR,OAGlEuT,GAi2GP,SAAS3I,IACPuY,EAAOvY,OACP0J,EAAWoC,EAAOtC,KAAM,CACtBkS,SAAUvS,EAAK2C,EAAOa,QAAQ/C,SAEhCuC,EAAShE,MAAK,SAAUgN,GACtBA,EAAMtJ,MAAMxT,MAAMkgB,EAAOwC,QAAU5R,EAAKoP,EAAOzJ,QAEjD4L,IAkBF,SAASA,IACP,IAAI/N,EAAUb,EAAOa,QACrB4L,EAAOmC,SACPhR,EAAWyC,EAASkB,MAAO,CACzBC,OAAQnE,EAAKoP,EAAOjL,UAEtB,IAAIuN,EAAclO,EAAQ8B,WAAa,KAAOtF,EAAKoP,EAAOsC,eAC1D1O,EAAShE,MAAK,SAAUgN,GACtBzL,EAAWyL,EAAMvE,UAAW,CAC1BtD,OAAQuN,IAEVnR,EAAWyL,EAAMtJ,MAAO,CACtBjC,MAAO+C,EAAQ6B,UAAY,KAAOrF,EAAKoP,EAAOuC,WAAW3F,EAAM/M,QAC/DkF,OAAQ6H,EAAMvE,UAAY,KAAOiK,OAGrC/O,EAAOwG,KAAK,WAGd,OAAOiG,GAcT,IAAIoD,GAAWtd,KAAKC,IAyBS,MAAMqR,GAAO,SAAW7D,EAAQC,GAM3D,IAcI6P,EAOAC,EAOAC,EAOAC,EAnCAlE,EAAQ9L,EAAW8L,MAOnBhL,EAAad,EAAWc,WAmCxB2L,EAr6DI,QAq6DS1M,EAAOa,QAAQsD,UAO5B+L,EAAOxD,EAAa,IAAM,IAO1ByD,EAAO,CAMTC,UAAU,EAKVhQ,MAAO,WACL,IAAIqH,EAAQrd,KAERiW,EAAWJ,EAAWI,SACtBkB,EAAQlB,EAASkB,MACrBvB,EAAOM,GAAG,uBAAwBC,EAAOgB,GAAOjB,GAAG,sBAAuB+P,EAAM9O,EAAO,CACrF+O,SAAS,IACRhQ,GAAG,kDAAmDiQ,EAAKhP,GAAOjB,GAAG,mBAAmB,WAEzFjE,EAAKgE,EAASH,KAAKvG,iBAAiB,WAAW,SAAUwE,GACvD6B,EAAOuG,IAAI,YAAapI,GAAKmC,GAAG,aAAa,SAAUhY,GACrDA,EAAEkoB,mBACDrS,EAAK,CACNmS,SAAS,UAGZhQ,GAAG,mBAAmB,WACvBmH,EAAM2I,UAAYpQ,EAAOa,QAAQgD,UAUvC,SAAStD,EAAMjY,GACR6nB,EAAKC,UAAaH,GAErB/b,EAAK5L,GAUT,SAAS4L,EAAK5L,GACZwnB,EAAa/D,EAAMkB,QAAQlB,EAAMlO,UACjCkS,EAAYU,EAAQnoB,EAAG,IACvB0nB,EAAcD,EAShB,SAASM,EAAK/nB,GACZ,GAAIynB,EAGF,GAFAC,EAAcS,EAAQnoB,EAAGynB,GAErBE,GAKF,GAJI3nB,EAAEooB,YACJpoB,EAAEkoB,kBAGCxQ,EAAOlR,GAprGT,QAorGmB,CACpB,IAAI+O,EAAWiS,EAAWI,GAAQF,EAAYjC,OAAOmC,GACrDnE,EAAMoB,UA8Cd,SAAgBtP,GACd,GAAImC,EAAOlR,GAnvGH,SAmvGc,CACpB,IAAIod,EAAOH,EAAMG,KAEbyE,EAASzE,EAAOH,EAAMD,KAAKC,EAAMuB,WAAW,IAE5CsD,EAAO1E,EAAOH,EAAMD,KAAKC,EAAMuB,WAAWvM,EAAWD,aAEzDjD,GAAYqO,GAEGyE,EACb9S,EAAW8S,EA3MI,EA2MwBpe,KAAKse,IAAIF,EAAS9S,GAChDA,EAAW+S,IACpB/S,EAAW+S,EA7MI,EA6MsBre,KAAKse,IAAIhT,EAAW+S,IAG3D/S,GAAYqO,EAGd,OAAOrO,EAjEeiT,CAAOjT,UAsB/B,SAAoBjB,GAClB,IAAImR,EAASnR,EAAKmR,OAElB,GAAI/N,EAAO4G,MAAM9X,GAAGqN,IAAW6D,EAAOa,QAAQyB,kBAC5C,OAAO,EAGT,IAAIyO,EAA6D,IAArDxe,KAAKye,KAAKnB,GAAS9B,EAAO7jB,GAAK2lB,GAAS9B,EAAOliB,IAAY0G,KAAK0e,GAM5E,OAJIvE,IACFqE,EAAQ,GAAKA,GAGRA,EAAQ/Q,EAAOa,QAAQiD,oBAhCtBoN,CAAWlB,KACbhQ,EAAOwG,KAAK,OAAQuJ,GACpBE,GAAa,EACblE,EAAMqB,SAENlZ,EAAK5L,IAgEb,SAASioB,IACPR,EAAY,KAERE,IACFjQ,EAAOwG,KAAK,UAAWwJ,GAY3B,SAAYmB,GACV,IAAIC,EAAWD,EAAKC,SAASlB,GACzBmB,EAAOxB,GAASuB,GAEpB,GAAIC,EAAO,EAAG,CACZ,IAAIxQ,EAAUb,EAAOa,QACjBvE,EAAQ0D,EAAO1D,MACf4P,EAAOkF,EAAW,GAAK,EAAI,EAC3B5Q,EAAYlE,EAEhB,IAAK0D,EAAOlR,GAxxGP,QAwxGiB,CACpB,IAAIwiB,EAAcvF,EAAMlO,SAEpBwT,EAAOxQ,EAAQmD,wBAA0B6L,GAASsB,EAAKpD,OAAOmC,IAASrP,EAAQkD,yBACjFuN,GAAepF,EAAO3Z,KAAK4D,IAAIkb,EAAOxQ,EAAQoD,WAAYhE,EAAWwM,OAAOgB,MAAQ5M,EAAQqD,eAAiB,KAG/G1D,EAAYuL,EAAMb,QAAQoG,GAQxB9Q,IAAclE,GAAS+U,EA5Qd,KA6QX7Q,EAAYlE,EAAQ4P,EAAOH,EAAMG,MAG/BlM,EAAOlR,GAzzGL,WA0zGJ0R,EAAYzD,EAAQyD,EAAW,EAAGO,EAAWD,YAG/CC,EAAWuH,GAAG9H,EAAWK,EAAQ0D,eA5CjC+D,CAAG0H,GACHC,GAAa,GAwDjB,SAASQ,EAAQnoB,EAAGynB,GAClB,IAAIwB,EAAYjpB,EAAEipB,UACdC,EAAUlpB,EAAEkpB,QAEZC,EAAQD,EAAUA,EAAQ,GAAKlpB,EAC/BopB,EAAUD,EAAMC,QAChBC,EAAUF,EAAME,QAEhBC,EAAQ7B,EAAUlT,IAAM,GACxBgV,EAAUD,EAAM/lB,EAChBimB,OAAoB,IAAZD,EAAqBH,EAAUG,EACvCE,EAAUH,EAAM1nB,EAIhB6jB,EAAS,CACXliB,EAAG6lB,EAAUI,EACb5nB,EAAGynB,QALmB,IAAZI,EAAqBJ,EAAUI,IAOvCC,EAAWT,GALCxB,EAAUkC,MAAQ,GAUlC,MAAO,CACLpV,GAAI,CACFhR,EAAG6lB,EACHxnB,EAAGynB,GAEL5D,OAAQA,EACRkE,KAAMV,EACNH,SAXa,CACbvlB,EAAGkiB,EAAOliB,EAAImmB,EACd9nB,EAAG6jB,EAAO7jB,EAAI8nB,IAalB,OAAO7B,GAmB0B+B,GAAQ,SAAWlS,EAAQC,GAM5D,IAAImQ,GAAW,EAqCf,SAAS+B,EAAQ7pB,GACX8nB,IACF9nB,EAAEkoB,iBACFloB,EAAE8pB,kBACF9pB,EAAE+pB,4BAIN,MAtCY,CAMVvK,SAAU9H,EAAOa,QAAQgD,KAKzBzD,MAAO,WACLJ,EAAOM,GAAG,QAAS6R,EAASlS,EAAWI,SAASkB,MAAO,CACrD+Q,SAAS,IACRhS,GAAG,QAAQ,WACZ8P,GAAW,KACV9P,GAAG,WAAW,WAEflQ,YAAW,WACTggB,GAAW,WAkCrB,IAAImC,GACK,EADLA,GAEK,EAFLA,GAGM,EAsTmB,MAAMrP,GAAS,SAAWlD,EAAQC,EAAY9Q,GAMzE,IAAI6V,EAOAC,EAqBA6D,EAdApX,EAAUsO,EAAOtO,QAOjBgM,EAAOsC,EAAOtC,KAcd2C,EAAWJ,EAAWI,SA0E1B,SAASmS,IACP,IAAIC,EAAwBxS,EAAWc,WACnCL,EAAY+R,EAAsB/R,UAClCgS,EAAYD,EAAsBC,UAClCC,EAAW3S,EAAOjX,OAASiX,EAAOa,QAAQ+B,SAAW5C,EAAOlR,GAAGgR,GACnEkF,EAAKoL,SAAW1P,EAAY,IAAMiS,EAClC1N,EAAKmL,SAAWsC,EAAY,IAAMC,EAClC3S,EAAOwG,KAAKrX,EAAO,WAAY6V,EAAMC,EAAMvE,EAAWgS,GA0BxD,SAASE,EAAY5N,GAEnB,OAAOpG,EADK,kBAAqBlN,EAAQqT,MAAQ,KAAOC,EAAOtT,EAAQsT,KAAOtT,EAAQuT,MAA1E,mHAAoQjF,EAAOa,QAAQsC,WAjLxR,yFAiL6S,QAItT,MAzGa,CAMX2E,SAAU9H,EAAOa,QAAQqC,OAKzB9C,MAAO,WAEL4E,EAAO3E,EAAS6C,OAAO8B,KACvBC,EAAO5E,EAAS6C,OAAO+B,KAEjBD,GAASC,IAASjF,EAAOa,QAAQqC,SACrC8B,EAAO4N,GAAY,GACnB3N,EAAO2N,GAAY,GACnB9J,GAAU,EA8DhB,WACE,IAAI+J,EAAUja,EAAO,MAAO,CAC1B,MAASlH,EAAQwR,SAEnBnF,EAAO8U,EAAS7N,GAChBjH,EAAO8U,EAAS5N,GAChB,IAAIJ,EAASxE,EAASwE,OAClBvG,EAAmC,WAA1B0B,EAAOa,QAAQqC,QAAuB2B,EAASA,EAASnH,EACrEsB,EAAO6T,EAASvU,EAAOwU,mBArEnBC,IAGE/N,GAAQC,GAiCdjF,EAAOM,GAAG,SAAS,WACjBN,EAAOsI,GAAG,OACTtD,GAAM1E,GAAG,SAAS,WACnBN,EAAOsI,GAAG,OACTrD,GAAM3E,GAAG,+BAAgCkS,GAjC1CpoB,KAAK8Y,OAAS,CACZ8B,KAAMA,EACNC,KAAMA,IAOV+C,QAAS,WACPhI,EAAOwG,KAAKrX,EAAO,WAAY6V,EAAMC,IAMvCN,QAAS,WACP1X,EAAgB,CAAC+X,EAAMC,GAAO,YAE1B6D,GACF7K,EAAW+G,EAAKjG,kBA6FWqE,GAAa,SAAWpD,EAAQC,EAAY9Q,GAQ7E,IAAIJ,EAAO,GAOPsR,EAAWJ,EAAWI,SAOtB2S,EAAa,CAIf5S,MAAO,WACL,IAAIgD,EAAapD,EAAOa,QAAQuC,WAEhC,GAAIA,EAAY,CACdrU,EAgGN,WACE,IAAI8R,EAAUb,EAAOa,QACjBnP,EAAUsO,EAAOtO,QACjBwO,EAAOtH,EAAO,KAAM,CACtB,MAASlH,EAAQ0R,aAEf6P,EAAQ5S,EAASyK,WAAU,GAAOra,QAAO,SAAU4Y,GACrD,OAAyB,IAAlBxI,EAAQkC,OAAmBsG,EAAM/M,MAAQuE,EAAQ+B,SAAY,KACnEpG,KAAI,SAAU6M,EAAOnE,GACtB,IAAIgO,EAAKta,EAAO,KAAM,IAClBua,EAASva,EAAO,SAAU,CAC5B,MAASlH,EAAQwT,KACjB9b,KAAM,WAOR,OALA2U,EAAOmV,EAAIC,GACXpV,EAAOmC,EAAMgT,GACblT,EAAOM,GAAG,SAAS,WACjBN,EAAOsI,GAAG,IAAMpD,KACfiO,GACI,CACLD,GAAIA,EACJC,OAAQA,EACRjO,KAAMA,EACN+D,OAAQ5I,EAAS2K,gBAAgB9F,OAGrC,MAAO,CACLhF,KAAMA,EACN+S,MAAOA,GA5HEG,GACP,IAAIvO,EAASxE,EAASwE,OAEtB9G,EAD4B,WAAfqF,GAA2ByB,EAASA,EAAS7E,EAAOtC,KAClD3O,EAAKmR,MACpBF,EAAOM,GApDe,YAoDa+S,GAGrCrT,EAAOuG,IAhDM,6BAgDYjG,GAhDZ,6BAgD6B,WACxC0S,EAAWrO,UAEP3E,EAAOa,QAAQuC,aACjB4P,EAAW5S,QACX4S,EAAWhL,eAQjBA,QAAS,WACP,GAAIhI,EAAOa,QAAQuC,WAAY,CAC7B,IAAI9G,EAAQ0D,EAAO1D,MACnB0D,EAAOwG,KAAKrX,EAAO,WAAYJ,EAAM3E,KAAKkpB,QAAQhX,IAClD+W,EAAiB/W,GAAQ,KAQ7BqI,QAAS,WACP1G,EAAWlP,EAAKmR,MAEZnR,EAAKkkB,OACPlkB,EAAKkkB,MAAMjlB,SAAQ,SAAUoY,GAC3BpG,EAAOuG,IAAI,QAASH,EAAK+M,WAK7BnT,EAAOuG,IA1FiB,aA2FxBxX,EAAO,IAUTukB,QAAS,SAAiBhX,GACxB,OAAOvN,EAAKkkB,MAAMhT,EAAWc,WAAWoL,OAAO7P,KAQjD,WACE,OAAOvN,IAWX,SAASskB,EAAiB/W,EAAOoE,GAC/B,IAAIsE,EAAOgO,EAAWM,QAAQ5S,GAC1BsF,EAAOgN,EAAWM,QAAQhX,GAC1B2F,EAASD,EAAeC,OAExB+C,GACFzF,EAAYyF,EAAKmO,OAAQlR,GAGvB+D,GACF1G,EAAS0G,EAAKmN,OAAQlR,GAGxBjC,EAAOwG,KAAKrX,EAAO,WAAYJ,EAAMiW,EAAMgB,GAyC7C,OAAOgN,GAkOT,IAmDIO,GAAU,CACZC,IAAK,CACHC,UAAW,IACXC,WAAY,IAEZC,KAAM,IACNC,MAAO,KAETC,IAAK,CACHJ,UAAW,IACXC,WAAY,IAEZC,KAAM,IACNC,MAAO,KAETE,IAAK,CACHC,QAAS,IACTC,UAAW,IAEXC,GAAI,IACJC,KAAM,MAWmB,MA4DMC,GAAO,SAAWnU,EAAQC,GAM3D,IAAIwF,EAAOzF,EAAOyF,KAOdpF,EAAWJ,EAAWI,SAOtB+T,EAAgB,CAtIJ,cAOF,WA5BI,gBAOH,aAdG,eAkKqE,QAsDvF,SAASC,EAAYtU,EAAOmC,GAC1BlV,EAAa+S,EA7LC,eA6LoBmC,GAE9BlC,EAAOa,QAAQyD,YACjBtX,EAAa+S,EAzLH,WAyLqBmC,EAAU,GAAK,GAYlD,SAASoS,EAAWtP,EAAMC,GACxB,IAAIsP,EAAWlU,EAASkB,MAAM2H,GAC9Blc,EAAagY,EAnOG,gBAmOkBuP,GAClCvnB,EAAaiY,EApOG,gBAoOkBsP,GAYpC,SAASC,EAAaxP,EAAMC,EAAMvE,EAAWgS,GAC3C,IAAIpW,EAAQ0D,EAAO1D,MACfmY,EAAY/T,GAAa,GAAKpE,EAAQoE,EAAY+E,EAAKE,KAAOF,EAAKT,KACnE0P,EAAYhC,GAAa,GAAKpW,EAAQoW,EAAYjN,EAAKC,MAAQD,EAAKR,KACxEjY,EAAagY,EA7OA,aA6OkByP,GAC/BznB,EAAaiY,EA9OA,aA8OkByP,GAWjC,SAASC,EAAe5lB,EAAM6lB,GACxBA,GACF5nB,EAAa4nB,EAAWzB,OAzQV,gBAyQiC,GAGjDpkB,EAAKkkB,MAAMjlB,SAAQ,SAAUoY,GAC3B,IAAIvF,EAAUb,EAAOa,QAEjBgU,EAAQ1X,GADiB,IAAlB0D,EAAQkC,OAAmBlC,EAAQ+B,QAAU,EAAI6C,EAAKI,MAAQJ,EAAKG,OACpDQ,EAAKlB,KAAO,GAClCiO,EAAS/M,EAAK+M,OAIlBnmB,EAAammB,EA7QC,gBA0QC/M,EAAK6C,OAAOzM,KAAI,SAAU6M,GACvC,OAAOA,EAAMtJ,MAAMmJ,MAEwBlX,KAAK,MAClDhF,EAAammB,EAvQF,aAuQsB0B,MAYrC,SAASC,EAAiB/lB,EAAMiW,EAAMgB,GAChChB,GACF/X,EAAgB+X,EAAKmO,OAnSP,gBAsSZnN,GACFhZ,EAAagZ,EAAKmN,OAvSJ,gBAuS2B,GA8B7C,SAAS4B,EAAeC,GACtB3U,EAAShE,MAAK,SAAUgN,GACtB,IAAItJ,EAAQsJ,EAAMtJ,MACd0J,EAAYJ,EAAMI,UAEjBwL,EAASlV,IACZ/S,EAAa+S,EAAO,OAAQ,UAG9B,IAAI6N,EAAanE,GAAa,EAAIA,EAAYJ,EAAM/M,MAChDuY,EAAQ1X,EAAQsI,EAAKG,OAAQgI,EAAa,GAC1CsH,EAAYF,EAAK/U,WAAWI,SAASwK,SAAS+C,GAClD5gB,EAAa+S,EAnUF,aAmUqB8U,GAE5BK,GACFloB,EAAa+S,EA7UD,gBA6UuBmV,EAAUnV,MAAMmJ,OAYzD,SAASiM,EAAiBvY,EAAMqF,GAC9B,IAAIlC,EAAQnD,EAAKmD,MAEbkC,EACFjV,EAAa+S,EApWC,gBAoWqB,GAEnC9S,EAAgB8S,EAtWF,gBAkXlB,SAASkV,EAAS9W,GAChB,MAAuB,WAAhBA,EAAIM,QAGb,MA7MW,CAMTqJ,SAAU9H,EAAOa,QAAQwD,cAKzBjE,MAAO,WACLJ,EAAOM,GAAG,WAAW,SAAU+I,GAC7BgL,EAAYhL,EAAMtJ,OAAO,MACxBO,GAAG,UAAU,SAAU+I,GACxBgL,EAAYhL,EAAMtJ,OAAO,MACxBO,GAAG,iBAAkBgU,GAAYhU,GAAG,iBAAkBkU,GAAclU,GAAG,qBAAsBqU,GAAgBrU,GAAG,qBAAsBwU,GAAkBxU,GAAG,WAAW,WACvKrT,EAAgBgT,EAAWgO,OAAOnL,OAAQsR,MAGxCpU,EAAOa,QAAQ0D,cACjBvE,EAAOM,GAAG,wCAAyCyU,GAAgBzU,GAAG,UAAU,SAAU+I,GACxF8L,EAAiB9L,GAAO,MACvB/I,GAAG,YAAY,SAAU+I,GAC1B8L,EAAiB9L,GAAO,MA+G9B,CAAC,OAAQ,SAASrb,SAAQ,SAAUmB,GAClC,IAAIgP,EAAMkC,EAASlR,GAEfgP,IACG8W,EAAS9W,IACZnR,EAAamR,EAAK,OAAQ,UAG5BnR,EAAamR,EAjTD,gBAiTqBkC,EAASkB,MAAM2H,IAChDlc,EAAamR,EA3SJ,aA2SqBsH,EAAKtW,SA9GvCwV,QAAS,WACP,IAAIyQ,EAASnV,EAAWmV,OACpBlS,EAASkS,EAASA,EAAOlS,OAAS,GACtCjW,EAAgBoT,EAASiB,OAAOvI,OAAO,CAACmK,EAAO8B,KAAM9B,EAAO+B,KAAM5E,EAASgF,KAAMhF,EAASiF,QAAS8O,MAyLzG,IAaIiB,GAAe,CAAC,IAAK,QAAS,YAuT9BC,GAAW,CACbC,QAAS1U,EACT2U,YAxJ+C,SAAWxV,GAM1D,IAcIyV,EAcAC,EA5BA9Q,EAAc5E,EAAOa,QAAQ+D,YAO7B+Q,EAAiBjR,GAASkR,EAtBjB,IAoCTpZ,EAAM,GA6DV,SAASoZ,IACP,IA6BIxP,EA7BAyP,GA6BAzP,EAAO5J,EAAI/L,QAAO,SAAU2V,GAC9B,OAAOA,EAAK0P,IAAI9J,WACf,IACW5F,EAAKyP,OAAS,EA9B5B,GAAIA,IAAUH,EAAW,CACvBA,EAAYG,EACZ,IAAIjP,EAAQ5G,EAAO4G,MACf/F,EAAU+D,EAAYiR,IAAUJ,EAChC9Q,EAAU9D,EAAQ8D,QAElBA,GACF3E,EAAOa,QAAU4U,EACjBzV,EAAO2E,QAAoB,eAAZA,KAEXiC,EAAM9X,GAAGkN,IACXgE,EAAOI,QAGTJ,EAAOa,QAAUA,IAmBvB,MAnFkB,CAMhBiH,SAAUlD,GAAemR,WAKzB3V,MAAO,WACL5D,EAAMtL,OAAOkL,KAAKwI,GAAa9Z,MAAK,SAAU9C,EAAGqD,GAC/C,OAAQrD,GAAKqD,KACZmR,KAAI,SAAUqZ,GACf,MAAO,CACLA,MAAOA,EACPC,IAAKC,WAAW,cAAgBF,EAAQ,WAQ5CzrB,KAAKua,SAAQ,GACb/X,iBAAiB,SAAU+oB,GAE3BF,EAAiBzV,EAAOa,QACxB+U,KAQFjR,QAAS,SAAiB+D,GACpBA,GACF3b,oBAAoB,SAAU4oB,MAyEpC5U,WAAY2K,EACZrL,SAAU2I,EACV+C,MAAOxK,EACP0M,OAAQnL,GACR2J,OAAQkC,GACRwB,KAAMtM,GACNmS,MAAO9D,GACP+D,SA3jD4C,SAAWjW,EAAQC,EAAY9Q,GAM3E,IAOImU,EAPA4S,EAAQ,GAcR7V,EAAWJ,EAAWI,SAOtB4V,EAAW,CAMbnO,SAAU9H,EAAOa,QAAQwC,SAMzBjD,MAAO,WACL,IAAIS,EAAUb,EAAOa,QAEjBR,EAASiB,OAAOvY,OAAS8X,EAAQ+B,UACnCU,EAtpBR,SAAwB5J,EAAU4J,EAAU6B,GAC1C,IAEI5E,EACA4V,EACAC,EAHA9lB,EADUkI,OACsBlI,sBAIhC+lB,GAAS,EAETC,EAAO,SAASA,EAAKC,GAClBF,IACE9V,IACHA,EAAQgW,EAEJH,GAAQA,EAAO,IACjB7V,GAAS6V,EAAO9S,IAKpB8S,GADAD,EAASI,EAAYhW,GACL+C,EAEZ6S,GAAU7S,IACZ/C,EAAQ,EACR6V,EAAO,EACP1c,KAGEyL,GACFA,EAASiR,GAGX9lB,EAAsBgmB,KAI1B,MAAO,CACLhR,MAAO,WACL+Q,GAAS,EACT9V,EAAQ,GAEV8E,KAAM,SAAcmR,GAClBjW,EAAQ,EAEJiW,IACFJ,EAAO,GAGLC,IACFA,GAAS,EACT/lB,EAAsBgmB,MAqmBXG,EAAe,WACxBzW,EAAOsI,GAAG,OACTzH,EAAQyC,UAAU,SAAU8S,GAC7BpW,EAAOwG,KAAKrX,EAAO,WAAYinB,GAE3B/V,EAAS+E,KACXxH,EAAWyC,EAAS+E,IAAK,CACvBtH,MAAc,IAAPsY,EAAa,SAuDhC,WACE,IAAIvV,EAAUb,EAAOa,QACjBuH,EAAUpI,EAAOoI,QACjBtJ,EAAO,CAACkB,EAAOtC,KAAM0K,EAAUA,EAAQ1K,KAAO,MAE9CmD,EAAQ0C,eACVmT,EAAS5X,EAAM,aAAcyT,IAAmB,GAChDmE,EAAS5X,EAAM,aAAcyT,IAAmB,IAG9C1R,EAAQ2C,eACVkT,EAAS5X,EAAM,WAAYyT,IAAmB,GAC9CmE,EAAS5X,EAAM,UAAWyT,IAAmB,IAG3ClS,EAASgF,MACXrF,EAAOM,GAAG,SAAS,WAEjB2V,EAAS5Q,KAAKkN,IACd0D,EAAS5Q,KAAKkN,MACblS,EAASgF,MAGVhF,EAASiF,OACXoR,EAAS,CAACrW,EAASiF,OAAQ,QAASiN,IAAoB,GAG1DvS,EAAOM,GAAG,gBAAgB,WACxB2V,EAAS5Q,UAEV/E,GAAG,WAAW,WACb2V,EAAS3Q,WAlFPpV,GACA9F,KAAKib,SASTA,KAAM,SAAcsR,QACL,IAATA,IACFA,EAAO,IAGTT,EAAQA,EAAMzlB,QAAO,SAAUpI,GAC7B,OAAOA,IAAMsuB,MAGJ5tB,SACTiX,EAAOwG,KAAKrX,EAAO,SACnBmU,EAAS+B,KAAKrF,EAAOa,QAAQ4C,iBAUjC6B,MAAO,SAAeqR,QACP,IAATA,IACFA,EAAO,GAGTrT,EAASgC,SAEoB,IAAzB4Q,EAAM3rB,QAAQosB,IAChBT,EAAMltB,KAAK2tB,GAGQ,IAAjBT,EAAMntB,QACRiX,EAAOwG,KAAKrX,EAAO,YAoDzB,SAASunB,EAAS5X,EAAM5R,EAAOypB,EAAMtR,GACnCvG,EAAK9Q,SAAQ,SAAUmQ,GACrB6B,EAAOM,GAAGpT,GAAO,WACf+oB,EAAS5Q,EAAO,OAAS,SAASsR,KACjCxY,MAIP,OAAO8X,GA+5CPW,MA54CyC,SAAW5W,EAAQC,GA8C5D,SAASnO,EAAM+kB,GACb5W,EAAWI,SAAShE,MAAK,SAAUgN,GACjC,IAAIiC,EAAMjN,EAAMgL,EAAMtJ,MAAO,QAAU1B,EAAMgL,EAAMvE,UAAW,OAE1DwG,GAAOA,EAAIhS,KACb8K,EAAMkH,EAAKuL,MAYjB,SAASzS,EAAMkH,EAAKuL,GAClBjZ,EAAW0N,EAAIvM,cAAe,CAC5B+X,WAAYD,EAAU,GAAK,+BAAkCvL,EAAIhS,IAAM,OAEzEsE,EAAW0N,EAAK,CACdtB,QAAS6M,EAAU,GAAK,SAI5B,MA3DY,CAMV/O,SAbY9H,EAAOa,QAaDuD,MAKlBhE,MAAO,WACLJ,EAAOM,GAAG,mBAAmB,SAAUgL,GACrClH,EAAMkH,GAAK,MAEbtL,EAAOM,GAAG,2BAA2B,WACnC,OAAOxO,GAAM,OAOjB6S,QAAS,WACP7S,GAAM,MAw2CVsjB,OAAQlS,GACR8P,WAAY5P,GACZ2T,SAv5B4C,SAAW/W,EAAQC,EAAY9Q,GAM3E,IAAIujB,EAOAtH,EAOAvK,EAAUb,EAAOa,QAOjBmW,EAAoC,eAArBnW,EAAQ6C,SAsD3B,SAASxP,IACPkX,EAAS,GACTsH,EAAY,EAUd,SAASkD,EAAMtZ,GACbA,EAAQ2a,MAAM3a,GAAS0D,EAAO1D,MAAQA,GACtC8O,EAASA,EAAO3a,QAAO,SAAUymB,GAC/B,OAAIA,EAAM7N,MAAMoB,SAASnO,EAAOuE,EAAQ+B,SAAW/B,EAAQ8C,aAAe,MACxEwT,EAAKD,EAAM5L,IAAK4L,EAAM7N,QACf,OAMC,IACVrJ,EAAOuG,IAAI,SAAWpX,GAa1B,SAASgoB,EAAK7L,EAAKjC,GACjB/J,EAAS+J,EAAMtJ,MAAOiC,EAAeG,SACrC,IAAIoD,EAAU3M,EAAO,OAAQ,CAC3B,MAASoH,EAAOtO,QAAQ6T,UAE1BxH,EAAOuN,EAAIvM,cAAewG,GAE1B+F,EAAIlS,OAAS,WACXoS,EAAOF,EAAK/F,EAAS8D,GAAO,IAG9BiC,EAAIC,QAAU,WACZC,EAAOF,EAAK/F,EAAS8D,GAAO,IAG9Brc,EAAase,EAAK,SAAU5L,EAAa4L,EAhJtB,4BAgJgD,IACnEte,EAAase,EAAK,MAAO5L,EAAa4L,EAxJtB,qBAwJ6C,IAO/D,SAAS8L,IACP,GAAI1E,EAAYtH,EAAOriB,OAAQ,CAC7B,IAAImuB,EAAQ9L,EAAOsH,GACnByE,EAAKD,EAAM5L,IAAK4L,EAAM7N,OAGxBqJ,IAYF,SAASlH,EAAOF,EAAK/F,EAAS8D,EAAO3H,GACnCnC,EAAY8J,EAAMtJ,MAAOiC,EAAeG,SAEnCT,IACHzD,EAAWsH,GACX3H,EAAW0N,EAAK,CACdtB,QAAS,KAEXhK,EAAOwG,KAAKrX,EAAO,UAAWmc,GAAK9E,KAAK,WAGtCwQ,GACFI,IAIJ,MA7Ie,CAMbtP,SAAUjH,EAAQ6C,SAKlBtD,MAAO,WACLJ,EAAOM,GAAG,mBAAmB,WAC3BpM,IACA+L,EAAWI,SAAShE,MAAK,SAAUgN,GACjChN,EAAKgN,EAAMtJ,MAAMpG,iBAAiB,kDAAwD,SAAU2R,GAC7FA,EAAIhS,KAAQgS,EAAI+L,SACnBjM,EAAOpiB,KAAK,CACVsiB,IAAKA,EACLjC,MAAOA,IAETzL,EAAW0N,EAAK,CACdtB,QAAS,gBAMbgN,GACFI,OAICJ,GACHhX,EAAOM,GAAG,yBAA2BnR,EAAMymB,IAO/CjR,QAASzQ,IA60BXojB,SAxoB4C,SAAWtX,GAMvD,IAAI/F,EACJ,MAAO,CAILmG,MAAO,WACLJ,EAAOM,GAAG,mBAAmB,WAC3B,IAAIO,EAAUb,EAAOa,QACjBnD,EAAOsC,EAAOtC,KACdlB,EAAM+W,GAAQ1S,EAAQsD,WACtBP,EAAW/C,EAAQ+C,SAEnB3J,IACF+F,EAAOuG,IAAI,UAAWtM,GACtBhN,EAAgByQ,EAnEV,aAsEJkG,IACe,YAAbA,GACF3J,EAASyD,EACT1Q,EAAa0Q,EAzET,WAyE0B,IAE9BzD,EAASvL,SAGXsR,EAAOM,GAAG,WAAW,SAAUhY,GACzBkU,EAAIlU,EAAEgB,MACR0W,EAAOsI,GAAG9L,EAAIlU,EAAEgB,QAEjB2Q,UAsmBXsd,KA9TwC,SAAWvX,GAMnD,IAAIoI,EAAUpI,EAAOoI,QAOjB7D,EAAe6D,GAAWA,EAAQvH,QAAQ0D,aA+C9C,SAASiT,IACPxX,EAAOM,GAnFM,aAmFS,SAAUG,EAAUC,EAAWF,GACnD4H,EAAQ7B,IApFG,aAoFa+B,GAAGF,EAAQtZ,GAAGgR,GAAQU,EAAYC,GAAU,GACpEgX,OASJ,SAASA,IACPrP,EAAQ9H,GA/FK,aA+FU,SAAUG,EAAUC,EAAWF,GACpDR,EAAOuG,IAhGI,aAgGY+B,GAAGtI,EAAOlR,GAAGgR,GAAQU,EAAYC,GAAU,GAClE+W,OAQJ,SAAStnB,IACPkY,EAAQnI,WAAWI,SAAShE,MAAK,SAAUO,GACzC,IAAImD,EAAQnD,EAAKmD,MACbzD,EAAQM,EAAKN,MAKjB0D,EAAOuG,IA3GM,mBA2GYxG,GAAOO,GA3GnB,oBA2GoC,SAAUhY,GAEpDA,EAAE6qB,QAAuB,IAAb7qB,EAAE6qB,QACjBuE,EAAYpb,KAEbyD,GAMHC,EAAOuG,IAAI,QAASxG,GAAOO,GAAG,SAAS,SAAUhY,GAC3C+sB,GAAa9qB,QAAQjC,EAAEgB,MAAQ,IACjChB,EAAEkoB,iBACFkH,EAAYpb,MAEbyD,EAAO,CACRuQ,SAAS,OAYf,SAASoH,EAAYpb,GACf0D,EAAO4G,MAAM9X,GAAGmN,IAClBmM,EAAQE,GAAGhM,GAIf,MA1GW,CAMTwL,WAAYM,EAKZhI,MAAO,WACLoX,IACAC,IAEIlT,IACFrU,IACA8P,EAAOM,GAAG,WAAW,WACnBlQ,YAAW,WACTF,IACAkY,EAAQ5B,KAAK,qBAAsBxG,WAS3CgI,QAAS,WACHzD,GACF6D,EAAQ5B,KAAK,qBAAsBxG,MA4QzC2X,KAAMxD,IA8BJzY,GAA6B,SAAUkc,GAd3C,IAAwBC,EAAUC,EAiBhC,SAAS9X,EAAOtC,EAAMmD,GACpB,OAAO+W,EAAMrpB,KAAKnE,KAAMsT,EAAMmD,EAASyU,KAAalrB,KAGtD,OArBgC0tB,EAeTF,GAfDC,EAeP7X,GAfwC3S,UAAY6D,OAAO0H,OAAOkf,EAAWzqB,WAAYwqB,EAASxqB,UAAUtD,YAAc8tB,EAAUA,EAASE,UAAYD,EAqBjK9X,EAPwB,CAQ/BA,KASYgY,EAA2B,GAG/B,SAASvc,EAAoBwc,GAE5B,GAAGD,EAAyBC,GAC3B,OAAOD,EAAyBC,GAAUlnB,QAG3C,IAAID,EAASknB,EAAyBC,GAAY,CAGjDlnB,QAAS,IAOV,OAHAsK,EAAoB4c,GAAUnnB,EAAQA,EAAOC,QAAS0K,GAG/C3K,EAAOC,QAoCf,OA7BC0K,EAAoBnR,EAAI,CAACyG,EAASmnB,KACjC,IAAI,IAAI5uB,KAAO4uB,EACXzc,EAAoB5S,EAAEqvB,EAAY5uB,KAASmS,EAAoB5S,EAAEkI,EAASzH,IAC5E4H,OAAOC,eAAeJ,EAASzH,EAAK,CAAE8H,YAAY,EAAMiF,IAAK6hB,EAAW5uB,MAQ3EmS,EAAoB5S,EAAI,CAACoI,EAAKiO,IAAShO,OAAO7D,UAAUmE,eAAejD,KAAK0C,EAAKiO,GAMjFzD,EAAoBrT,EAAK2I,IACH,oBAAX0H,QAA0BA,OAAOC,aAC1CxH,OAAOC,eAAeJ,EAAS0H,OAAOC,YAAa,CAAE5M,MAAO,WAE7DoF,OAAOC,eAAeJ,EAAS,aAAc,CAAEjF,OAAO,KAQjD2P,EAAoB,MAjwLrB,IARd3K,EAAOC,QAAUoK,K,cCFnBrK,EAAOC,QANP,SAAyBonB,EAAUhR,GACjC,KAAMgR,aAAoBhR,GACxB,MAAM,IAAIiR,UAAU,uC,cCFxB,SAAStS,EAAkB7L,EAAQ5Q,GACjC,IAAK,IAAInB,EAAI,EAAGA,EAAImB,EAAMN,OAAQb,IAAK,CACrC,IAAI6d,EAAa1c,EAAMnB,GACvB6d,EAAW3U,WAAa2U,EAAW3U,aAAc,EACjD2U,EAAW1U,cAAe,EACtB,UAAW0U,IAAYA,EAAWzU,UAAW,GACjDJ,OAAOC,eAAe8I,EAAQ8L,EAAWzc,IAAKyc,IAUlDjV,EAAOC,QANP,SAAsBoW,EAAaC,EAAYC,GAG7C,OAFID,GAAYtB,EAAkBqB,EAAY9Z,UAAW+Z,GACrDC,GAAavB,EAAkBqB,EAAaE,GACzCF,I,kBCbT,IAAItM,EAAmB,EAAQ,IAM/B/J,EAAOC,QAJP,SAA4BC,GAC1B,GAAItF,MAAMC,QAAQqF,GAAM,OAAO6J,EAAiB7J,K,cCClDF,EAAOC,QAJP,SAA0BsnB,GACxB,GAAsB,oBAAX5f,QAA0BA,OAAO6f,YAAYpnB,OAAOmnB,GAAO,OAAO3sB,MAAMqP,KAAKsd,K,cCG1FvnB,EAAOC,QAJP,WACE,MAAM,IAAIqnB,UAAU,0I,oBCGtBtnB,EAAOC,QAJP,SAAyBC,GACvB,GAAItF,MAAMC,QAAQqF,GAAM,OAAOA,I,cC0BjCF,EAAOC,QA3BP,SAA+BC,EAAK9I,GAClC,GAAsB,oBAAXuQ,QAA4BA,OAAO6f,YAAYpnB,OAAOF,GAAjE,CACA,IAAIunB,EAAO,GACPC,GAAK,EACLC,GAAK,EACLxR,OAAKc,EAET,IACE,IAAK,IAAiC2Q,EAA7B3R,EAAK/V,EAAIyH,OAAO6f,cAAmBE,GAAME,EAAK3R,EAAG9B,QAAQrE,QAChE2X,EAAKvvB,KAAK0vB,EAAG5sB,QAET5D,GAAKqwB,EAAKxvB,SAAWb,GAH8CswB,GAAK,IAK9E,MAAOG,GACPF,GAAK,EACLxR,EAAK0R,EACL,QACA,IACOH,GAAsB,MAAhBzR,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAI0R,EAAI,MAAMxR,GAIlB,OAAOsR,K,cCpBTznB,EAAOC,QAJP,WACE,MAAM,IAAIqnB,UAAU","file":"js/modules.min.js","sourcesContent":["var n,l,u,i,t,o,r={},f=[],e=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function c(n,l){for(var u in l)n[u]=l[u];return n}function s(n){var l=n.parentNode;l&&l.removeChild(n)}function a(n,l,u){var i,t,o,r=arguments,f={};for(o in l)\"key\"==o?i=l[o]:\"ref\"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o0?v(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(_=A[h])||_&&k.key==_.key&&k.type===_.type)A[h]=void 0;else for(p=0;p3)for(u=[u],o=3;o=i.__.length&&i.__.push({}),i.__[t]}function l(n){return o=1,p(w,n)}function p(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=m(t++,3);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return o=5,d(function(){return{current:n}},[])}function _(n,t,u){o=6,h(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function d(n,u){var r=m(t++,7);return k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,d(function(){return n},t)}function F(n){var r=u.context[n.__c],o=m(t++,9);return o.__c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function q(n){var r=m(t++,10),o=l();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function x(){i.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}),i=[]}n.__b=function(n){u=null,c&&c(n)},n.__r=function(n){f&&f(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j),r.__h=[])},n.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u))})(x)),u=void 0},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),a&&a(t,u)},n.unmount=function(t){v&&v(t);var u=t.__c;if(u&&u.__H)try{u.__H.__.forEach(g)}catch(t){n.__e(t,u.__v)}};var b=\"function\"==typeof requestAnimationFrame;function g(n){var t=u;\"function\"==typeof n.__c&&n.__c(),u=t}function j(n){var t=u;n.__c=n.__(),u=t}function k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w(n,t){return\"function\"==typeof t?t(n):t}export{l as useState,p as useReducer,y as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,d as useMemo,A as useCallback,F as useContext,T as useDebugValue,q as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):t.dayjs=e()}(this,function(){\"use strict\";var t=\"millisecond\",e=\"second\",n=\"minute\",r=\"hour\",i=\"day\",s=\"week\",u=\"month\",a=\"quarter\",o=\"year\",f=\"date\",h=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[^0-9]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?.?(\\d+)?$/,c=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,d={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},$=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},l={s:$,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+$(r,2,\"0\")+\":\"+$(i,2,\"0\")},m:function t(e,n){if(e.date()1&&void 0!==arguments[1]?arguments[1]:document.getElementsByTagName(\"head\")[0],t=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return new Promise((function(r,i){if(e&&\"string\"==typeof e){var c=d?\"?v=\".concat(d):\"\",u=e+c;if(document.querySelector('script[src=\"'.concat(u,'\"]')))r();else{var a=document.createElement(\"script\");a.async=t,a.defer=o;var l=function(e,n){(n||!a.readyState||/loaded|complete/.test(a.readyState))&&(a.onload=null,a.onreadystatechange=null,a=void 0,n?i():r())};a.onload=l,a.onreadystatechange=l,a.src=u,n.appendChild(a)}}}))},a=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"center\";e&&\"string\"==typeof e&&(document.querySelector(\"\".concat(e)).innerHTML='\\n
\\n
\\n
\\n '))},l=(t(1),a),f=function(e){var n=e.element,t=e.marginValue,o=void 0===t?400:t,r=e.thresholdValue,i=void 0===r?0:r,c=e.callback,d=void 0===c?function(){}:c;if(n&&\"string\"==typeof n){var u=document.querySelectorAll(n),a={rootMargin:\"\".concat(o,\"px 0px \").concat(o,\"px 0px\"),threshold:i},l=new IntersectionObserver((function(e,n){e.forEach((function(e){e.isIntersecting&&(n.unobserve(e.target),d(e.target))}))}),a);u&&[].slice.call(u).forEach((function(e){l.observe(e)}))}},s=function(e){var n=e.widgetLink,t=e.loader,o=void 0===t||t,r=e.customLoader,i=void 0===r?void 0:r,c=e.insertLoaderTo,d=void 0===c?void 0:c,a=e.loaderPosition,f=void 0===a?\"center\":a,s=e.fn,v=void 0===s?function(){}:s;n&&\"string\"==typeof n&&u(n).then((function(){o&&i&&\"function\"==typeof i?i(d,f):o&&l(d,f),v()})).catch((function(e){throw new Error(e)}))}}])}));\n//# sourceMappingURL=index.js.map","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","/*!\n * Splide.js\n * Version : 2.4.20\n * License : MIT\n * Copyright: 2020 Naotoshi Fujita\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Splide\"] = factory();\n\telse\n\t\troot[\"Splide\"] = factory();\n})(self, function() {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 311:\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": () => /* binding */ module_Splide\n});\n\n// NAMESPACE OBJECT: ./src/js/constants/states.js\nvar states_namespaceObject = {};\n__webpack_require__.r(states_namespaceObject);\n__webpack_require__.d(states_namespaceObject, {\n \"CREATED\": () => CREATED,\n \"DESTROYED\": () => DESTROYED,\n \"IDLE\": () => IDLE,\n \"MOUNTED\": () => MOUNTED,\n \"MOVING\": () => MOVING\n});\n\n;// CONCATENATED MODULE: ./src/js/core/event.js\n/**\r\n * The function for providing an Event object simply managing events.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n/**\r\n * The function for providing an Event object simply managing events.\r\n */\n/* harmony default export */ const core_event = (function () {\n /**\r\n * Store all event data.\r\n *\r\n * @type {Array}\r\n */\n var data = [];\n var Event = {\n /**\r\n * Subscribe the given event(s).\r\n *\r\n * @param {string} events - An event name. Use space to separate multiple events.\r\n * Also, namespace is accepted by dot, such as 'resize.{namespace}'.\r\n * @param {function} handler - A callback function.\r\n * @param {Element} elm - Optional. Native event will be listened to when this arg is provided.\r\n * @param {Object} options - Optional. Options for addEventListener.\r\n */\n on: function on(events, handler, elm, options) {\n if (elm === void 0) {\n elm = null;\n }\n\n if (options === void 0) {\n options = {};\n }\n\n events.split(' ').forEach(function (event) {\n if (elm) {\n elm.addEventListener(event, handler, options);\n }\n\n data.push({\n event: event,\n handler: handler,\n elm: elm,\n options: options\n });\n });\n },\n\n /**\r\n * Unsubscribe the given event(s).\r\n *\r\n * @param {string} events - A event name or names split by space.\r\n * @param {Element} elm - Optional. removeEventListener() will be called when this arg is provided.\r\n */\n off: function off(events, elm) {\n if (elm === void 0) {\n elm = null;\n }\n\n events.split(' ').forEach(function (event) {\n data = data.filter(function (item) {\n if (item && item.event === event && item.elm === elm) {\n unsubscribe(item);\n return false;\n }\n\n return true;\n });\n });\n },\n\n /**\r\n * Emit an event.\r\n * This method is only for custom events.\r\n *\r\n * @param {string} event - An event name.\r\n * @param {*} args - Any number of arguments passed to handlers.\r\n */\n emit: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n data.forEach(function (item) {\n if (!item.elm && item.event.split('.')[0] === event) {\n item.handler.apply(item, args);\n }\n });\n },\n\n /**\r\n * Clear event data.\r\n */\n destroy: function destroy() {\n data.forEach(unsubscribe);\n data = [];\n }\n };\n /**\r\n * Remove the registered event listener.\r\n *\r\n * @param {Object} item - An object containing event data.\r\n */\n\n function unsubscribe(item) {\n if (item.elm) {\n item.elm.removeEventListener(item.event, item.handler, item.options);\n }\n }\n\n return Event;\n});\n;// CONCATENATED MODULE: ./src/js/core/state.js\n/**\r\n * The function providing a super simple state system.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n/**\r\n * The function providing a super simple state system.\r\n *\r\n * @param {string|number} initialState - Provide the initial state value.\r\n */\n/* harmony default export */ const state = (function (initialState) {\n /**\r\n * Store the current state.\r\n *\r\n * @type {string|number}\r\n */\n var curr = initialState;\n return {\n /**\r\n * Change state.\r\n *\r\n * @param {string|number} state - A new state.\r\n */\n set: function set(state) {\n curr = state;\n },\n\n /**\r\n * Verify if the current state is given one or not.\r\n *\r\n * @param {string|number} state - A state name to be verified.\r\n *\r\n * @return {boolean} - True if the current state is the given one.\r\n */\n is: function is(state) {\n return state === curr;\n }\n };\n});\n;// CONCATENATED MODULE: ./src/js/utils/object.js\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\r\n * Some utility functions related with Object, supporting IE.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\nvar keys = Object.keys;\n/**\r\n * Iterate an object like Array.forEach.\r\n * IE doesn't support forEach of HTMLCollection.\r\n *\r\n * @param {Object} obj - An object.\r\n * @param {function} callback - A function handling each value. Arguments are value, property and index.\r\n */\n\nfunction each(obj, callback) {\n keys(obj).some(function (key, index) {\n return callback(obj[key], key, index);\n });\n}\n/**\r\n * Return values of the given object as an array.\r\n * IE doesn't support Object.values.\r\n *\r\n * @param {Object} obj - An object.\r\n *\r\n * @return {Array} - An array containing all values of the given object.\r\n */\n\nfunction values(obj) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n}\n/**\r\n * Check if the given subject is object or not.\r\n *\r\n * @param {*} subject - A subject to be verified.\r\n *\r\n * @return {boolean} - True if object, false otherwise.\r\n */\n\nfunction isObject(subject) {\n return typeof subject === 'object';\n}\n/**\r\n * Merge two objects deeply.\r\n *\r\n * @param {Object} to - An object where \"from\" is merged.\r\n * @param {Object} from - An object merged to \"to\".\r\n *\r\n * @return {Object} - A merged object.\r\n */\n\nfunction merge(_ref, from) {\n var to = _extends({}, _ref);\n\n each(from, function (value, key) {\n if (isObject(value)) {\n if (!isObject(to[key])) {\n to[key] = {};\n }\n\n to[key] = merge(to[key], value);\n } else {\n to[key] = value;\n }\n });\n return to;\n}\n/**\r\n * Assign all properties \"from\" to \"to\" object.\r\n *\r\n * @param {Object} to - An object where properties are assigned.\r\n * @param {Object} from - An object whose properties are assigned to \"to\".\r\n *\r\n * @return {Object} - An assigned object.\r\n */\n\nfunction object_assign(to, from) {\n keys(from).forEach(function (key) {\n if (!to[key]) {\n Object.defineProperty(to, key, Object.getOwnPropertyDescriptor(from, key));\n }\n });\n return to;\n}\n;// CONCATENATED MODULE: ./src/js/utils/utils.js\n/**\r\n * A package of some miscellaneous utility functions.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n/**\r\n * Convert the given value to array.\r\n *\r\n * @param {*} value - Any value.\r\n *\r\n * @return {*[]} - Array containing the given value.\r\n */\n\nfunction toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n/**\r\n * Check if the given value is between min and max.\r\n * Min will be returned when the value is less than min or max will do when greater than max.\r\n *\r\n * @param {number} value - A number to be checked.\r\n * @param {number} m1 - Minimum or maximum number.\r\n * @param {number} m2 - Maximum or minimum number.\r\n *\r\n * @return {number} - A value itself, min or max.\r\n */\n\nfunction between(value, m1, m2) {\n return Math.min(Math.max(value, m1 > m2 ? m2 : m1), m1 > m2 ? m1 : m2);\n}\n/**\r\n * The sprintf method with minimum functionality.\r\n *\r\n * @param {string} format - The string format.\r\n * @param {string|Array} replacements - Replacements accepting multiple arguments.\r\n *\r\n * @returns {string} - Converted string.\r\n */\n\nfunction sprintf(format, replacements) {\n var i = 0;\n return format.replace(/%s/g, function () {\n return toArray(replacements)[i++];\n });\n}\n/**\r\n * Append px unit to the given subject if necessary.\r\n *\r\n * @param {number|string} value - A value that may not include an unit.\r\n *\r\n * @return {string} - If the value is string, return itself.\r\n * If number, do value + \"px\". An empty string, otherwise.\r\n */\n\nfunction unit(value) {\n var type = typeof value;\n\n if (type === 'number' && value > 0) {\n return parseFloat(value) + 'px';\n }\n\n return type === 'string' ? value : '';\n}\n/**\r\n * Pad start with 0.\r\n *\r\n * @param {number} number - A number to be filled with 0.\r\n *\r\n * @return {string|number} - Padded number.\r\n */\n\nfunction pad(number) {\n return number < 10 ? '0' + number : number;\n}\n/**\r\n * Convert the given value to pixel.\r\n *\r\n * @param {Element} root - Root element where a dummy div is appended.\r\n * @param {string|number} value - CSS value to be converted, such as 10rem.\r\n *\r\n * @return {number} - Pixel.\r\n */\n\nfunction toPixel(root, value) {\n if (typeof value === 'string') {\n var div = create('div', {});\n applyStyle(div, {\n position: 'absolute',\n width: value\n });\n append(root, div);\n value = div.clientWidth;\n dom_remove(div);\n }\n\n return +value || 0;\n}\n;// CONCATENATED MODULE: ./src/js/utils/dom.js\n/**\r\n * Some utility functions related with DOM.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\n/**\r\n * Find the first element matching the given selector.\r\n * Be aware that all selectors after a space are ignored.\r\n *\r\n * @param {Element|Node} elm - An ancestor element.\r\n * @param {string} selector - DOMString.\r\n *\r\n * @return {Element|null} - A found element or null.\r\n */\n\nfunction find(elm, selector) {\n return elm ? elm.querySelector(selector.split(' ')[0]) : null;\n}\n/**\r\n * Find a first child having the given tag or class name.\r\n *\r\n * @param {Element} parent - A parent element.\r\n * @param {string} tagOrClassName - A tag or class name.\r\n *\r\n * @return {Element|undefined} - A found element on success or undefined on failure.\r\n */\n\nfunction child(parent, tagOrClassName) {\n return children(parent, tagOrClassName)[0];\n}\n/**\r\n * Return chile elements that matches the provided tag or class name.\r\n *\r\n * @param {Element} parent - A parent element.\r\n * @param {string} tagOrClassName - A tag or class name.\r\n *\r\n * @return {Element[]} - Found elements.\r\n */\n\nfunction children(parent, tagOrClassName) {\n if (parent) {\n return values(parent.children).filter(function (child) {\n return hasClass(child, tagOrClassName.split(' ')[0]) || child.tagName === tagOrClassName;\n });\n }\n\n return [];\n}\n/**\r\n * Create an element with some optional attributes.\r\n *\r\n * @param {string} tag - A tag name.\r\n * @param {Object} attrs - An object any attribute pairs of name and value.\r\n *\r\n * @return {Element} - A created element.\r\n */\n\nfunction create(tag, attrs) {\n var elm = document.createElement(tag);\n each(attrs, function (value, key) {\n return setAttribute(elm, key, value);\n });\n return elm;\n}\n/**\r\n * Convert HTML string to DOM node.\r\n *\r\n * @param {string} html - HTML string.\r\n *\r\n * @return {Node} - A created node.\r\n */\n\nfunction domify(html) {\n var div = create('div', {});\n div.innerHTML = html;\n return div.firstChild;\n}\n/**\r\n * Remove a given element from a DOM tree.\r\n *\r\n * @param {Element|Element[]} elms - Element(s) to be removed.\r\n */\n\nfunction dom_remove(elms) {\n toArray(elms).forEach(function (elm) {\n if (elm) {\n var parent = elm.parentElement;\n parent && parent.removeChild(elm);\n }\n });\n}\n/**\r\n * Append a child to a given element.\r\n *\r\n * @param {Element} parent - A parent element.\r\n * @param {Element} child - An element to be appended.\r\n */\n\nfunction append(parent, child) {\n if (parent) {\n parent.appendChild(child);\n }\n}\n/**\r\n * Insert an element before the reference element.\r\n *\r\n * @param {Element|Node} ref - A reference element.\r\n * @param {Element} elm - An element to be inserted.\r\n */\n\nfunction before(elm, ref) {\n if (elm && ref) {\n var parent = ref.parentElement;\n parent && parent.insertBefore(elm, ref);\n }\n}\n/**\r\n * Apply styles to the given element.\r\n *\r\n * @param {Element} elm - An element where styles are applied.\r\n * @param {Object} styles - Object containing styles.\r\n */\n\nfunction applyStyle(elm, styles) {\n if (elm) {\n each(styles, function (value, prop) {\n if (value !== null) {\n elm.style[prop] = value;\n }\n });\n }\n}\n/**\r\n * Add or remove classes to/from the element.\r\n * This function is for internal usage.\r\n *\r\n * @param {Element} elm - An element where classes are added.\r\n * @param {string|string[]} classes - Class names being added.\r\n * @param {boolean} remove - Whether to remove or add classes.\r\n */\n\nfunction addOrRemoveClasses(elm, classes, remove) {\n if (elm) {\n toArray(classes).forEach(function (name) {\n if (name) {\n elm.classList[remove ? 'remove' : 'add'](name);\n }\n });\n }\n}\n/**\r\n * Add classes to the element.\r\n *\r\n * @param {Element} elm - An element where classes are added.\r\n * @param {string|string[]} classes - Class names being added.\r\n */\n\n\nfunction addClass(elm, classes) {\n addOrRemoveClasses(elm, classes, false);\n}\n/**\r\n * Remove a class from the element.\r\n *\r\n * @param {Element} elm - An element where classes are removed.\r\n * @param {string|string[]} classes - A class name being removed.\r\n */\n\nfunction removeClass(elm, classes) {\n addOrRemoveClasses(elm, classes, true);\n}\n/**\r\n * Verify if the provided element has the class or not.\r\n *\r\n * @param {Element} elm - An element.\r\n * @param {string} className - A class name.\r\n *\r\n * @return {boolean} - True if the element has the class or false if not.\r\n */\n\nfunction hasClass(elm, className) {\n return !!elm && elm.classList.contains(className);\n}\n/**\r\n * Set attribute to the given element.\r\n *\r\n * @param {Element} elm - An element where an attribute is assigned.\r\n * @param {string} name - Attribute name.\r\n * @param {string|number|boolean} value - Attribute value.\r\n */\n\nfunction setAttribute(elm, name, value) {\n if (elm) {\n elm.setAttribute(name, value);\n }\n}\n/**\r\n * Get attribute from the given element.\r\n *\r\n * @param {Element} elm - An element where an attribute is assigned.\r\n * @param {string} name - Attribute name.\r\n *\r\n * @return {string} - The value of the given attribute if available. An empty string if not.\r\n */\n\nfunction getAttribute(elm, name) {\n return elm ? elm.getAttribute(name) : '';\n}\n/**\r\n * Remove attribute from the given element.\r\n *\r\n * @param {Element|Element[]} elms - An element where an attribute is removed.\r\n * @param {string|string[]} names - Attribute name.\r\n */\n\nfunction removeAttribute(elms, names) {\n toArray(names).forEach(function (name) {\n toArray(elms).forEach(function (elm) {\n return elm && elm.removeAttribute(name);\n });\n });\n}\n/**\r\n * Return the Rect object of the provided object.\r\n *\r\n * @param {Element} elm - An element.\r\n *\r\n * @return {ClientRect|DOMRect} - A rect object.\r\n */\n\nfunction getRect(elm) {\n return elm.getBoundingClientRect();\n}\n/**\r\n * Trigger the given callback after all images contained by the element are loaded.\r\n *\r\n * @param {Element} elm - Element that may contain images.\r\n * @param {Function} callback - Callback function fired right after all images are loaded.\r\n */\n\nfunction loaded(elm, callback) {\n var images = elm.querySelectorAll('img');\n var length = images.length;\n\n if (length) {\n var count = 0;\n each(images, function (img) {\n img.onload = img.onerror = function () {\n if (++count === length) {\n callback();\n }\n };\n });\n } else {\n // Trigger the callback immediately if there is no image.\n callback();\n }\n}\n;// CONCATENATED MODULE: ./src/js/constants/types.js\n/**\r\n * Export slider types.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n/**\r\n * Normal slider.\r\n *\r\n * @type {string}\r\n */\nvar SLIDE = 'slide';\n/**\r\n * Loop after the last slide and before the first one.\r\n *\r\n * @type {string}\r\n */\n\nvar LOOP = 'loop';\n/**\r\n * The track doesn't move.\r\n *\r\n * @type {string}\r\n */\n\nvar FADE = 'fade';\n;// CONCATENATED MODULE: ./src/js/transitions/slide/index.js\n/**\r\n * The component for general slide effect transition.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\n/**\r\n * The component for general slide effect transition.\r\n *\r\n * @param {Splide} Splide - A Splide instance.\r\n * @param {Object} Components - An object containing components.\r\n *\r\n * @return {Object} - The component object.\r\n */\n\n/* harmony default export */ const slide = (function (Splide, Components) {\n /**\r\n * Hold the list element.\r\n *\r\n * @type {Element}\r\n */\n var list;\n /**\r\n * Hold the onEnd callback function.\r\n *\r\n * @type {function}\r\n */\n\n var endCallback;\n return {\n /**\r\n * Called when the component is mounted.\r\n */\n mount: function mount() {\n list = Components.Elements.list;\n Splide.on('transitionend', function (e) {\n if (e.target === list && endCallback) {\n endCallback();\n }\n }, list);\n },\n\n /**\r\n * Start transition.\r\n *\r\n * @param {number} destIndex - Destination slide index that might be clone's.\r\n * @param {number} newIndex - New index.\r\n * @param {number} prevIndex - Previous index.\r\n * @param {Object} coord - Destination coordinates.\r\n * @param {function} done - Callback function must be invoked when transition is completed.\r\n */\n start: function start(destIndex, newIndex, prevIndex, coord, done) {\n var options = Splide.options;\n var edgeIndex = Components.Controller.edgeIndex;\n var speed = options.speed;\n endCallback = done;\n\n if (Splide.is(SLIDE)) {\n if (prevIndex === 0 && newIndex >= edgeIndex || prevIndex >= edgeIndex && newIndex === 0) {\n speed = options.rewindSpeed || speed;\n }\n }\n\n applyStyle(list, {\n transition: \"transform \" + speed + \"ms \" + options.easing,\n transform: \"translate(\" + coord.x + \"px,\" + coord.y + \"px)\"\n });\n }\n };\n});\n;// CONCATENATED MODULE: ./src/js/transitions/fade/index.js\n/**\r\n * The component for fade transition.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\n/**\r\n * The component for fade transition.\r\n *\r\n * @param {Splide} Splide - A Splide instance.\r\n * @param {Object} Components - An object containing components.\r\n *\r\n * @return {Object} - The component object.\r\n */\n\n/* harmony default export */ const fade = (function (Splide, Components) {\n var Fade = {\n /**\r\n * Called when the component is mounted.\r\n * Apply transition style to the first slide.\r\n */\n mount: function mount() {\n apply(Splide.index);\n },\n\n /**\r\n * Start transition.\r\n *\r\n * @param {number} destIndex - Destination slide index that might be clone's.\r\n * @param {number} newIndex - New index.\r\n * @param {number} prevIndex - Previous index.\r\n * @param {Object} coord - Destination coordinates.\r\n * @param {function} done - Callback function must be invoked when transition is completed.\r\n */\n start: function start(destIndex, newIndex, prevIndex, coord, done) {\n var track = Components.Elements.track;\n applyStyle(track, {\n height: unit(track.clientHeight)\n });\n apply(newIndex);\n setTimeout(function () {\n done();\n applyStyle(track, {\n height: ''\n });\n });\n }\n };\n /**\r\n * Apply transition style to the slide specified by the given index.\r\n *\r\n * @param {number} index - A slide index.\r\n */\n\n function apply(index) {\n var options = Splide.options;\n applyStyle(Components.Elements.slides[index], {\n transition: \"opacity \" + options.speed + \"ms \" + options.easing\n });\n }\n\n return Fade;\n});\n;// CONCATENATED MODULE: ./src/js/transitions/index.js\n/**\r\n * Export transition components.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\n;// CONCATENATED MODULE: ./src/js/core/composer.js\n/**\r\n * Provide a function for composing components.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\n\n/**\r\n * Compose components.\r\n *\r\n * @param {Splide} Splide - Splide instance.\r\n * @param {Object} Components - Additional components.\r\n * @param {function} Transition - Change component for transition.\r\n *\r\n * @return {Object} - An object containing all components.\r\n */\n\nfunction compose(Splide, Components, Transition) {\n var components = {};\n each(Components, function (Component, name) {\n components[name] = Component(Splide, components, name.toLowerCase());\n });\n\n if (!Transition) {\n Transition = Splide.is(FADE) ? fade : slide;\n }\n\n components.Transition = Transition(Splide, components);\n return components;\n}\n;// CONCATENATED MODULE: ./src/js/utils/error.js\n/**\r\n * Utility functions for outputting logs.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n/**\r\n * Prefix of an error massage.\r\n *\r\n * @type {string}\r\n */\nvar MESSAGE_PREFIX = '[SPLIDE]';\n/**\r\n * Display an error message on the browser console.\r\n *\r\n * @param {string} message - An error message.\r\n */\n\nfunction error(message) {\n console.error(MESSAGE_PREFIX + \" \" + message);\n}\n/**\r\n * Check existence of the given object and throw an error if it doesn't.\r\n *\r\n * @throws {Error}\r\n *\r\n * @param {*} subject - A subject to be confirmed.\r\n * @param {string} message - An error message.\r\n */\n\nfunction exist(subject, message) {\n if (!subject) {\n throw new Error(message);\n }\n}\n;// CONCATENATED MODULE: ./src/js/constants/classes.js\n/**\r\n * Export class names.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n/**\r\n * A root class name.\r\n *\r\n * @type {string}\r\n */\nvar ROOT = 'splide';\n/**\r\n * The definition table of all classes for elements.\r\n * They might be modified by options.\r\n *\r\n * @type {Object}\r\n */\n\nvar ELEMENT_CLASSES = {\n root: ROOT,\n slider: ROOT + \"__slider\",\n track: ROOT + \"__track\",\n list: ROOT + \"__list\",\n slide: ROOT + \"__slide\",\n container: ROOT + \"__slide__container\",\n arrows: ROOT + \"__arrows\",\n arrow: ROOT + \"__arrow\",\n prev: ROOT + \"__arrow--prev\",\n next: ROOT + \"__arrow--next\",\n pagination: ROOT + \"__pagination\",\n page: ROOT + \"__pagination__page\",\n clone: ROOT + \"__slide--clone\",\n progress: ROOT + \"__progress\",\n bar: ROOT + \"__progress__bar\",\n autoplay: ROOT + \"__autoplay\",\n play: ROOT + \"__play\",\n pause: ROOT + \"__pause\",\n spinner: ROOT + \"__spinner\",\n sr: ROOT + \"__sr\"\n};\n/**\r\n * Definitions of status classes.\r\n *\r\n * @type {Object}\r\n */\n\nvar STATUS_CLASSES = {\n active: 'is-active',\n visible: 'is-visible',\n loading: 'is-loading'\n};\n;// CONCATENATED MODULE: ./src/js/constants/i18n.js\n/**\r\n * Export i18n texts as object.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n/**\r\n * Texts for i18n.\r\n *\r\n * @type {Object}\r\n */\nvar I18N = {\n prev: 'Previous slide',\n next: 'Next slide',\n first: 'Go to first slide',\n last: 'Go to last slide',\n slideX: 'Go to slide %s',\n pageX: 'Go to page %s',\n play: 'Start autoplay',\n pause: 'Pause autoplay'\n};\n;// CONCATENATED MODULE: ./src/js/constants/defaults.js\n/**\r\n * Export default options.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\nvar DEFAULTS = {\n /**\r\n * Determine a slider type.\r\n * - 'slide': Regular slider.\r\n * - 'loop' : Carousel slider.\r\n * - 'fade' : Change slides with fade transition. perPage, drag options are ignored.\r\n *\r\n * @type {string}\r\n */\n type: 'slide',\n\n /**\r\n * Whether to rewind a slider before the first slide or after the last one.\r\n * In \"loop\" mode, this option is ignored.\r\n *\r\n * @type {boolean}\r\n */\n rewind: false,\n\n /**\r\n * Transition speed in milliseconds.\r\n *\r\n * @type {number}\r\n */\n speed: 400,\n\n /**\r\n * Transition speed on rewind in milliseconds.\r\n *\r\n * @type {number}\r\n */\n rewindSpeed: 0,\n\n /**\r\n * Whether to prevent any actions while a slider is transitioning.\r\n * If false, navigation, drag and swipe work while the slider is running.\r\n * Even so, it will be forced to wait for transition in some cases in the loop mode to shift a slider.\r\n *\r\n * @type {boolean}\r\n */\n waitForTransition: true,\n\n /**\r\n * Define slider max width.\r\n *\r\n * @type {number}\r\n */\n width: 0,\n\n /**\r\n * Define slider height.\r\n *\r\n * @type {number}\r\n */\n height: 0,\n\n /**\r\n * Fix width of slides. CSS format is allowed such as 10em, 80% or 80vw.\r\n * perPage number will be ignored when this option is falsy.\r\n *\r\n * @type {number|string}\r\n */\n fixedWidth: 0,\n\n /**\r\n * Fix height of slides. CSS format is allowed such as 10em, 80vh but % unit is not accepted.\r\n * heightRatio option will be ignored when this option is falsy.\r\n *\r\n * @type {number|string}\r\n */\n fixedHeight: 0,\n\n /**\r\n * Determine height of slides by ratio to a slider width.\r\n * This will be ignored when the fixedHeight is provided.\r\n *\r\n * @type {number}\r\n */\n heightRatio: 0,\n\n /**\r\n * If true, slide width will be determined by the element width itself.\r\n * - perPage/perMove should be 1.\r\n *\r\n * @type {boolean}\r\n */\n autoWidth: false,\n\n /**\r\n * If true, slide height will be determined by the element width itself.\r\n * - perPage/perMove should be 1.\r\n *\r\n * @type {boolean}\r\n */\n autoHeight: false,\n\n /**\r\n * Determine how many slides should be displayed per page.\r\n *\r\n * @type {number}\r\n */\n perPage: 1,\n\n /**\r\n * Determine how many slides should be moved when a slider goes to next or perv.\r\n *\r\n * @type {number}\r\n */\n perMove: 0,\n\n /**\r\n * Determine manually how many clones should be generated on the left and right side.\r\n * The total number of clones will be twice of this number.\r\n *\r\n * @type {number}\r\n */\n clones: 0,\n\n /**\r\n * Start index.\r\n *\r\n * @type {number}\r\n */\n start: 0,\n\n /**\r\n * Determine which slide should be focused if there are multiple slides in a page.\r\n * A string \"center\" is acceptable for centering slides.\r\n *\r\n * @type {boolean|number|string}\r\n */\n focus: false,\n\n /**\r\n * Gap between slides. CSS format is allowed such as 1em.\r\n *\r\n * @type {number|string}\r\n */\n gap: 0,\n\n /**\r\n * Set padding-left/right in horizontal mode or padding-top/bottom in vertical one.\r\n * Give a single value to set a same size for both sides or\r\n * do an object for different sizes.\r\n * Also, CSS format is allowed such as 1em.\r\n *\r\n * @example\r\n * - 10: Number\r\n * - '1em': CSS format.\r\n * - { left: 0, right: 20 }: Object for different sizes in horizontal mode.\r\n * - { top: 0, bottom: 20 }: Object for different sizes in vertical mode.\r\n *\r\n * @type {number|string|Object}\r\n */\n padding: 0,\n\n /**\r\n * Whether to append arrows.\r\n *\r\n * @type {boolean}\r\n */\n arrows: true,\n\n /**\r\n * Change the arrow SVG path like 'm7.61 0.807-2.12...'.\r\n *\r\n * @type {string}\r\n */\n arrowPath: '',\n\n /**\r\n * Whether to append pagination(indicator dots) or not.\r\n *\r\n * @type {boolean}\r\n */\n pagination: true,\n\n /**\r\n * Activate autoplay.\r\n *\r\n * @type {boolean}\r\n */\n autoplay: false,\n\n /**\r\n * Autoplay interval in milliseconds.\r\n *\r\n * @type {number}\r\n */\n interval: 5000,\n\n /**\r\n * Whether to stop autoplay when a slider is hovered.\r\n *\r\n * @type {boolean}\r\n */\n pauseOnHover: true,\n\n /**\r\n * Whether to stop autoplay when a slider elements are focused.\r\n * True is recommended for accessibility.\r\n *\r\n * @type {boolean}\r\n */\n pauseOnFocus: true,\n\n /**\r\n * Whether to reset progress of the autoplay timer when resumed.\r\n *\r\n * @type {boolean}\r\n */\n resetProgress: true,\n\n /**\r\n * Loading images lazily.\r\n * Image src must be provided by a data-splide-lazy attribute.\r\n *\r\n * - false: Do nothing.\r\n * - 'nearby': Only images around an active slide will be loaded.\r\n * - 'sequential': All images will be sequentially loaded.\r\n *\r\n * @type {boolean|string}\r\n */\n lazyLoad: false,\n\n /**\r\n * This option works only when a lazyLoad option is \"nearby\".\r\n * Determine how many pages(not slides) around an active slide should be loaded beforehand.\r\n *\r\n * @type {number}\r\n */\n preloadPages: 1,\n\n /**\r\n * Easing for CSS transition. For example, linear, ease or cubic-bezier().\r\n *\r\n * @type {string}\r\n */\n easing: 'cubic-bezier(.42,.65,.27,.99)',\n\n /**\r\n * Whether to enable keyboard shortcuts\r\n * - true or 'global': Listen to keydown event of the document.\r\n * - 'focused': Listen to the keydown event of the slider root element. tabindex=\"0\" will be added to the element.\r\n * - false: Disable keyboard shortcuts.\r\n *\r\n * @type {boolean|string}\r\n */\n keyboard: 'global',\n\n /**\r\n * Whether to allow mouse drag and touch swipe.\r\n *\r\n * @type {boolean}\r\n */\n drag: true,\n\n /**\r\n * The angle threshold for drag.\r\n * The slider starts moving only when the drag angle is less than this threshold.\r\n *\r\n * @type {number}\r\n */\n dragAngleThreshold: 30,\n\n /**\r\n * Distance threshold for determining if the action is \"flick\" or \"swipe\".\r\n * When a drag distance is over this value, the action will be treated as \"swipe\", not \"flick\".\r\n *\r\n * @type {number}\r\n */\n swipeDistanceThreshold: 150,\n\n /**\r\n * Velocity threshold for determining if the action is \"flick\" or \"swipe\".\r\n * Around 0.5 is recommended.\r\n *\r\n * @type {number}\r\n */\n flickVelocityThreshold: .6,\n\n /**\r\n * Determine power of flick. The larger number this is, the farther a slider runs by flick.\r\n * Around 500 is recommended.\r\n *\r\n * @type {number}\r\n */\n flickPower: 600,\n\n /**\r\n * Limit a number of pages to move by flick.\r\n *\r\n * @type {number}\r\n */\n flickMaxPages: 1,\n\n /**\r\n * Slider direction.\r\n * - 'ltr': Left to right.\r\n * - 'rtl': Right to left.\r\n * - 'ttb': Top to bottom.\r\n *\r\n * @type {string}\r\n */\n direction: 'ltr',\n\n /**\r\n * Set img src to background-image of its parent element.\r\n * Images with various sizes can be displayed as same dimension without cropping work.\r\n * fixedHeight or heightRatio is required.\r\n *\r\n * @type {boolean}\r\n */\n cover: false,\n\n /**\r\n * Whether to enable accessibility(aria and screen reader texts) or not.\r\n *\r\n * @type {boolean}\r\n */\n accessibility: true,\n\n /**\r\n * Whether to add tabindex=\"0\" to visible slides or not.\r\n *\r\n * @type {boolean}\r\n */\n slideFocus: true,\n\n /**\r\n * Determine if a slider is navigation for another.\r\n * Use \"sync\" API to synchronize two sliders.\r\n *\r\n * @type {boolean}\r\n */\n isNavigation: false,\n\n /**\r\n * Whether to trim spaces before the fist slide or after the last one when \"focus\" is not 0.\r\n *\r\n * @type {boolean}\r\n */\n trimSpace: true,\n\n /**\r\n * The \"is-active\" class is added after transition as default.\r\n * If true, it will be added before move.\r\n *\r\n * @type {boolean}\r\n */\n updateOnMove: false,\n\n /**\r\n * Throttle duration in milliseconds for the resize event.\r\n *\r\n * @type {number}\r\n */\n throttle: 100,\n\n /**\r\n * Whether to destroy a slider or not.\r\n *\r\n * @type {boolean}\r\n */\n destroy: false,\n\n /**\r\n * Options for specific breakpoints.\r\n *\r\n * @example\r\n * {\r\n * 1000: {\r\n * perPage: 3,\r\n * gap: 20\r\n * },\r\n * 600: {\r\n * perPage: 1,\r\n * gap: 5,\r\n * }\r\n * }\r\n *\r\n * @type {boolean|Object}\r\n */\n breakpoints: false,\n\n /**\r\n * Collection of class names.\r\n *\r\n * @see ./classes.js\r\n *\r\n * @type {Object}\r\n */\n classes: ELEMENT_CLASSES,\n\n /**\r\n * Collection of i18n texts.\r\n *\r\n * @see ./i18n.js\r\n *\r\n * @type {Object}\r\n */\n i18n: I18N\n};\n;// CONCATENATED MODULE: ./src/js/constants/states.js\n/**\r\n * Export state constants.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n/**\r\n * Splide has been just created.\r\n *\r\n * @type {number}\r\n */\nvar CREATED = 1;\n/**\r\n * All components have been mounted and initialized.\r\n *\r\n * @type {number}\r\n */\n\nvar MOUNTED = 2;\n/**\r\n * Splide is ready for transition.\r\n *\r\n * @type {number}\r\n */\n\nvar IDLE = 3;\n/**\r\n * Splide is moving.\r\n *\r\n * @type {number}\r\n */\n\nvar MOVING = 4;\n/**\r\n * Splide is moving.\r\n *\r\n * @type {number}\r\n */\n\nvar DESTROYED = 5;\n;// CONCATENATED MODULE: ./src/js/splide.js\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\r\n * The main class for applying Splide to an element.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\n\n\n\n\n\n\n/**\r\n * The main class for applying Splide to an element,\r\n * providing some APIs to control the behavior.\r\n */\n\nvar Splide = /*#__PURE__*/function () {\n /**\r\n * Splide constructor.\r\n *\r\n * @throws {Error} When the given root element or selector is invalid.\r\n *\r\n * @param {Element|string} root - A selector for a root element or an element itself.\r\n * @param {Object} options - Optional. Options to change default behaviour.\r\n * @param {Object} Components - Optional. Components.\r\n */\n function Splide(root, options, Components) {\n if (options === void 0) {\n options = {};\n }\n\n if (Components === void 0) {\n Components = {};\n }\n\n this.root = root instanceof Element ? root : document.querySelector(root);\n exist(this.root, 'An invalid element/selector was given.');\n this.Components = null;\n this.Event = core_event();\n this.State = state(CREATED);\n this.STATES = states_namespaceObject;\n this._o = merge(DEFAULTS, options);\n this._i = 0;\n this._c = Components;\n this._e = {}; // Extensions\n\n this._t = null; // Transition\n }\n /**\r\n * Compose and mount components.\r\n *\r\n * @param {Object} Extensions - Optional. Additional components.\r\n * @param {function} Transition - Optional. Set a custom transition component.\r\n *\r\n * @return {Splide|undefined} - This instance or undefined if an exception occurred.\r\n */\n\n\n var _proto = Splide.prototype;\n\n _proto.mount = function mount(Extensions, Transition) {\n var _this = this;\n\n if (Extensions === void 0) {\n Extensions = this._e;\n }\n\n if (Transition === void 0) {\n Transition = this._t;\n }\n\n // Reset the state.\n this.State.set(CREATED);\n this._e = Extensions;\n this._t = Transition;\n this.Components = compose(this, merge(this._c, Extensions), Transition);\n\n try {\n each(this.Components, function (component, key) {\n var required = component.required;\n\n if (required === undefined || required) {\n component.mount && component.mount();\n } else {\n delete _this.Components[key];\n }\n });\n } catch (e) {\n error(e.message);\n return;\n }\n\n var State = this.State;\n State.set(MOUNTED);\n each(this.Components, function (component) {\n component.mounted && component.mounted();\n });\n this.emit('mounted');\n State.set(IDLE);\n this.emit('ready');\n applyStyle(this.root, {\n visibility: 'visible'\n });\n this.on('move drag', function () {\n return State.set(MOVING);\n }).on('moved dragged', function () {\n return State.set(IDLE);\n });\n return this;\n }\n /**\r\n * Set sync target.\r\n *\r\n * @param {Splide} splide - A Splide instance.\r\n *\r\n * @return {Splide} - This instance.\r\n */\n ;\n\n _proto.sync = function sync(splide) {\n this.sibling = splide;\n return this;\n }\n /**\r\n * Register callback fired on the given event(s).\r\n *\r\n * @param {string} events - An event name. Use space to separate multiple events.\r\n * Also, namespace is accepted by dot, such as 'resize.{namespace}'.\r\n * @param {function} handler - A callback function.\r\n * @param {Element} elm - Optional. Native event will be listened to when this arg is provided.\r\n * @param {Object} options - Optional. Options for addEventListener.\r\n *\r\n * @return {Splide} - This instance.\r\n */\n ;\n\n _proto.on = function on(events, handler, elm, options) {\n if (elm === void 0) {\n elm = null;\n }\n\n if (options === void 0) {\n options = {};\n }\n\n this.Event.on(events, handler, elm, options);\n return this;\n }\n /**\r\n * Unsubscribe the given event.\r\n *\r\n * @param {string} events - A event name.\r\n * @param {Element} elm - Optional. removeEventListener() will be called when this arg is provided.\r\n *\r\n * @return {Splide} - This instance.\r\n */\n ;\n\n _proto.off = function off(events, elm) {\n if (elm === void 0) {\n elm = null;\n }\n\n this.Event.off(events, elm);\n return this;\n }\n /**\r\n * Emit an event.\r\n *\r\n * @param {string} event - An event name.\r\n * @param {*} args - Any number of arguments passed to handlers.\r\n */\n ;\n\n _proto.emit = function emit(event) {\n var _this$Event;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_this$Event = this.Event).emit.apply(_this$Event, [event].concat(args));\n\n return this;\n }\n /**\r\n * Go to the slide specified by the given control.\r\n *\r\n * @param {string|number} control - A control pattern.\r\n * @param {boolean} wait - Optional. Whether to wait for transition.\r\n */\n ;\n\n _proto.go = function go(control, wait) {\n if (wait === void 0) {\n wait = this.options.waitForTransition;\n }\n\n if (this.State.is(IDLE) || this.State.is(MOVING) && !wait) {\n this.Components.Controller.go(control, false);\n }\n\n return this;\n }\n /**\r\n * Verify whether the slider type is the given one or not.\r\n *\r\n * @param {string} type - A slider type.\r\n *\r\n * @return {boolean} - True if the slider type is the provided type or false if not.\r\n */\n ;\n\n _proto.is = function is(type) {\n return type === this._o.type;\n }\n /**\r\n * Insert a slide.\r\n *\r\n * @param {Element|string} slide - A slide element to be added.\r\n * @param {number} index - A slide will be added at the position.\r\n */\n ;\n\n _proto.add = function add(slide, index) {\n if (index === void 0) {\n index = -1;\n }\n\n this.Components.Elements.add(slide, index, this.refresh.bind(this));\n return this;\n }\n /**\r\n * Remove the slide designated by the index.\r\n *\r\n * @param {number} index - A slide index.\r\n */\n ;\n\n _proto.remove = function remove(index) {\n this.Components.Elements.remove(index);\n this.refresh();\n return this;\n }\n /**\r\n * Destroy all Slide objects and clones and recreate them again.\r\n */\n ;\n\n _proto.refresh = function refresh() {\n this.emit('refresh:before').emit('refresh').emit('resize');\n return this;\n }\n /**\r\n * Destroy the Splide.\r\n * \"Completely\" boolean is mainly for breakpoints.\r\n *\r\n * @param {boolean} completely - Destroy completely.\r\n */\n ;\n\n _proto.destroy = function destroy(completely) {\n var _this2 = this;\n\n if (completely === void 0) {\n completely = true;\n }\n\n // Postpone destroy because it should be done after mount.\n if (this.State.is(CREATED)) {\n this.on('ready', function () {\n return _this2.destroy(completely);\n });\n return;\n }\n\n values(this.Components).reverse().forEach(function (component) {\n component.destroy && component.destroy(completely);\n });\n this.emit('destroy', completely); // Destroy all event handlers, including ones for native events.\n\n this.Event.destroy();\n this.State.set(DESTROYED);\n return this;\n }\n /**\r\n * Return the current slide index.\r\n *\r\n * @return {number} - The current slide index.\r\n // */\n ;\n\n _createClass(Splide, [{\n key: \"index\",\n get: function get() {\n return this._i;\n }\n /**\r\n * Set the current slide index.\r\n *\r\n * @param {number|string} index - A new index.\r\n */\n ,\n set: function set(index) {\n this._i = parseInt(index);\n }\n /**\r\n * Return length of slides.\r\n * This is an alias of Elements.length.\r\n *\r\n * @return {number} - A number of slides.\r\n */\n\n }, {\n key: \"length\",\n get: function get() {\n return this.Components.Elements.length;\n }\n /**\r\n * Return options.\r\n *\r\n * @return {Object} - Options object.\r\n */\n\n }, {\n key: \"options\",\n get: function get() {\n return this._o;\n }\n /**\r\n * Set options with merging the given object to the current one.\r\n *\r\n * @param {Object} options - New options.\r\n */\n ,\n set: function set(options) {\n var created = this.State.is(CREATED);\n\n if (!created) {\n this.emit('update');\n }\n\n this._o = merge(this._o, options);\n\n if (!created) {\n this.emit('updated', this._o);\n }\n }\n /**\r\n * Return the class list.\r\n * This is an alias of Splide.options.classList.\r\n *\r\n * @return {Object} - An object containing all class list.\r\n */\n\n }, {\n key: \"classes\",\n get: function get() {\n return this._o.classes;\n }\n /**\r\n * Return the i18n strings.\r\n * This is an alias of Splide.options.i18n.\r\n *\r\n * @return {Object} - An object containing all i18n strings.\r\n */\n\n }, {\n key: \"i18n\",\n get: function get() {\n return this._o.i18n;\n }\n }]);\n\n return Splide;\n}();\n\n\n;// CONCATENATED MODULE: ./src/js/components/options/index.js\n/**\r\n * The component for initializing options.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\n\n/**\r\n * The component for initializing options.\r\n *\r\n * @param {Splide} Splide - A Splide instance.\r\n *\r\n * @return {Object} - The component object.\r\n */\n\n/* harmony default export */ const options = (function (Splide) {\n /**\r\n * Retrieve options from the data attribute.\r\n * Note that IE10 doesn't support dataset property.\r\n *\r\n * @type {string}\r\n */\n var options = getAttribute(Splide.root, 'data-splide');\n\n if (options) {\n try {\n Splide.options = JSON.parse(options);\n } catch (e) {\n error(e.message);\n }\n }\n\n return {\n /**\r\n * Called when the component is mounted.\r\n */\n mount: function mount() {\n if (Splide.State.is(CREATED)) {\n Splide.index = Splide.options.start;\n }\n }\n };\n});\n;// CONCATENATED MODULE: ./src/js/constants/directions.js\n/**\r\n * Export layout modes.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n/**\r\n * Enumerate slides from left to right.\r\n *\r\n * @type {string}\r\n */\nvar LTR = 'ltr';\n/**\r\n * Enumerate slides from right to left.\r\n *\r\n * @type {string}\r\n */\n\nvar RTL = 'rtl';\n/**\r\n * Enumerate slides in a col.\r\n *\r\n * @type {string}\r\n */\n\nvar TTB = 'ttb';\n;// CONCATENATED MODULE: ./src/js/components/elements/slide.js\n/**\r\n * The sub component for handling each slide.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\n\n\n\n\n/**\r\n * Events for restoring original styles.\r\n *\r\n * @type {string}\r\n */\n\nvar STYLE_RESTORE_EVENTS = 'update.slide';\n/**\r\n * The sub component for handling each slide.\r\n *\r\n * @param {Splide} Splide - A Splide instance.\r\n * @param {number} index - An unique slide index.\r\n * @param {number} realIndex - Clones should pass a real slide index.\r\n * @param {Element} slide - A slide element.\r\n *\r\n * @return {Object} - The sub component object.\r\n */\n\n/* harmony default export */ const elements_slide = (function (Splide, index, realIndex, slide) {\n /**\r\n * Whether to update \"is-active\" class before or after transition.\r\n *\r\n * @type {boolean}\r\n */\n var updateOnMove = Splide.options.updateOnMove;\n /**\r\n * Events when the slide status is updated.\r\n * Append a namespace to remove listeners later.\r\n *\r\n * @type {string}\r\n */\n\n var STATUS_UPDATE_EVENTS = 'ready.slide updated.slide resized.slide moved.slide' + (updateOnMove ? ' move.slide' : '');\n /**\r\n * Slide sub component object.\r\n *\r\n * @type {Object}\r\n */\n\n var Slide = {\n /**\r\n * Slide element.\r\n *\r\n * @type {Element}\r\n */\n slide: slide,\n\n /**\r\n * Slide index.\r\n *\r\n * @type {number}\r\n */\n index: index,\n\n /**\r\n * Real index for clones.\r\n *\r\n * @type {number}\r\n */\n realIndex: realIndex,\n\n /**\r\n * Container element if available.\r\n *\r\n * @type {Element|undefined}\r\n */\n container: child(slide, Splide.classes.container),\n\n /**\r\n * Whether this is a cloned slide or not.\r\n *\r\n * @type {boolean}\r\n */\n isClone: realIndex > -1,\n\n /**\r\n * Called when the component is mounted.\r\n */\n mount: function mount() {\n var _this = this;\n\n if (!this.isClone) {\n slide.id = Splide.root.id + \"-slide\" + pad(index + 1);\n }\n\n Splide.on(STATUS_UPDATE_EVENTS, function () {\n return _this.update();\n }).on(STYLE_RESTORE_EVENTS, restoreStyles).on('click', function () {\n return Splide.emit('click', _this);\n }, slide);\n /*\r\n * Add \"is-active\" class to a clone element temporarily\r\n * and it will be removed on \"moved\" event.\r\n */\n\n if (updateOnMove) {\n Splide.on('move.slide', function (newIndex) {\n if (newIndex === realIndex) {\n _update(true, false);\n }\n });\n } // Make sure the slide is shown.\n\n\n applyStyle(slide, {\n display: ''\n }); // Hold the original styles.\n\n this.styles = getAttribute(slide, 'style') || '';\n },\n\n /**\r\n * Destroy.\r\n */\n destroy: function destroy() {\n Splide.off(STATUS_UPDATE_EVENTS).off(STYLE_RESTORE_EVENTS).off('click', slide);\n removeClass(slide, values(STATUS_CLASSES));\n restoreStyles();\n removeAttribute(this.container, 'style');\n },\n\n /**\r\n * Update active and visible status.\r\n */\n update: function update() {\n _update(this.isActive(), false);\n\n _update(this.isVisible(), true);\n },\n\n /**\r\n * Check whether this slide is active or not.\r\n *\r\n * @return {boolean} - True if the slide is active or false if not.\r\n */\n isActive: function isActive() {\n return Splide.index === index;\n },\n\n /**\r\n * Check whether this slide is visible in the viewport or not.\r\n *\r\n * @return {boolean} - True if the slide is visible or false if not.\r\n */\n isVisible: function isVisible() {\n var active = this.isActive();\n\n if (Splide.is(FADE) || active) {\n return active;\n }\n\n var ceil = Math.ceil;\n var trackRect = getRect(Splide.Components.Elements.track);\n var slideRect = getRect(slide);\n\n if (Splide.options.direction === TTB) {\n return trackRect.top <= slideRect.top && slideRect.bottom <= ceil(trackRect.bottom);\n }\n\n return trackRect.left <= slideRect.left && slideRect.right <= ceil(trackRect.right);\n },\n\n /**\r\n * Calculate how far this slide is from another slide and\r\n * return true if the distance is within the given number.\r\n *\r\n * @param {number} from - Index of a target slide.\r\n * @param {number} within - True if the slide is within this number.\r\n *\r\n * @return {boolean} - True if the slide is within the number or false otherwise.\r\n */\n isWithin: function isWithin(from, within) {\n var diff = Math.abs(from - index);\n\n if (!Splide.is(SLIDE) && !this.isClone) {\n diff = Math.min(diff, Splide.length - diff);\n }\n\n return diff < within;\n }\n };\n /**\r\n * Update classes for activity or visibility.\r\n *\r\n * @param {boolean} active - Is active/visible or not.\r\n * @param {boolean} forVisibility - Toggle classes for activity or visibility.\r\n */\n\n function _update(active, forVisibility) {\n var type = forVisibility ? 'visible' : 'active';\n var className = STATUS_CLASSES[type];\n\n if (active) {\n addClass(slide, className);\n Splide.emit(\"\" + type, Slide);\n } else {\n if (hasClass(slide, className)) {\n removeClass(slide, className);\n Splide.emit(\"\" + (forVisibility ? 'hidden' : 'inactive'), Slide);\n }\n }\n }\n /**\r\n * Restore the original styles.\r\n */\n\n\n function restoreStyles() {\n setAttribute(slide, 'style', Slide.styles);\n }\n\n return Slide;\n});\n;// CONCATENATED MODULE: ./src/js/components/elements/index.js\n/**\r\n * The component for main elements.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\n\n\n\n/**\r\n * The property name for UID stored in a window object.\r\n *\r\n * @type {string}\r\n */\n\nvar UID_NAME = 'uid';\n/**\r\n * The component for main elements.\r\n *\r\n * @param {Splide} Splide - A Splide instance.\r\n * @param {Object} Components - An object containing components.\r\n *\r\n * @return {Object} - The component object.\r\n */\n\n/* harmony default export */ const components_elements = (function (Splide, Components) {\n /**\r\n * Hold the root element.\r\n *\r\n * @type {Element}\r\n */\n var root = Splide.root;\n /**\r\n * Hold the class list.\r\n *\r\n * @type {Object}\r\n */\n\n var classes = Splide.classes;\n /**\r\n * Store Slide objects.\r\n *\r\n * @type {Array}\r\n */\n\n var Slides = [];\n /*\r\n * Assign unique ID to the root element if it doesn't have the one.\r\n * Note that IE doesn't support padStart() to fill the uid by 0.\r\n */\n\n if (!root.id) {\n window.splide = window.splide || {};\n var uid = window.splide[UID_NAME] || 0;\n window.splide[UID_NAME] = ++uid;\n root.id = \"splide\" + pad(uid);\n }\n /**\r\n * Elements component object.\r\n *\r\n * @type {Object}\r\n */\n\n\n var Elements = {\n /**\r\n * Called when the component is mounted.\r\n * Collect main elements and store them as member properties.\r\n */\n mount: function mount() {\n var _this = this;\n\n this.init();\n Splide.on('refresh', function () {\n _this.destroy();\n\n _this.init();\n }).on('updated', function () {\n removeClass(root, getClasses());\n addClass(root, getClasses());\n });\n },\n\n /**\r\n * Destroy.\r\n */\n destroy: function destroy() {\n Slides.forEach(function (Slide) {\n Slide.destroy();\n });\n Slides = [];\n removeClass(root, getClasses());\n },\n\n /**\r\n * Initialization.\r\n */\n init: function init() {\n var _this2 = this;\n\n collect();\n addClass(root, getClasses());\n this.slides.forEach(function (slide, index) {\n _this2.register(slide, index, -1);\n });\n },\n\n /**\r\n * Register a slide to create a Slide object and handle its behavior.\r\n *\r\n * @param {Element} slide - A slide element.\r\n * @param {number} index - A unique index. This can be negative.\r\n * @param {number} realIndex - A real index for clones. Set -1 for real slides.\r\n */\n register: function register(slide, index, realIndex) {\n var SlideObject = elements_slide(Splide, index, realIndex, slide);\n SlideObject.mount();\n Slides.push(SlideObject);\n },\n\n /**\r\n * Return the Slide object designated by the index.\r\n * Note that \"find\" is not supported by IE.\r\n *\r\n * @return {Object|undefined} - A Slide object if available. Undefined if not.\r\n */\n getSlide: function getSlide(index) {\n return Slides.filter(function (Slide) {\n return Slide.index === index;\n })[0];\n },\n\n /**\r\n * Return all Slide objects.\r\n *\r\n * @param {boolean} includeClones - Whether to include cloned slides or not.\r\n *\r\n * @return {Object[]} - Slide objects.\r\n */\n getSlides: function getSlides(includeClones) {\n return includeClones ? Slides : Slides.filter(function (Slide) {\n return !Slide.isClone;\n });\n },\n\n /**\r\n * Return Slide objects belonging to the given page.\r\n *\r\n * @param {number} page - A page number.\r\n *\r\n * @return {Object[]} - An array containing Slide objects.\r\n */\n getSlidesByPage: function getSlidesByPage(page) {\n var idx = Components.Controller.toIndex(page);\n var options = Splide.options;\n var max = options.focus !== false ? 1 : options.perPage;\n return Slides.filter(function (_ref) {\n var index = _ref.index;\n return idx <= index && index < idx + max;\n });\n },\n\n /**\r\n * Insert a slide to a slider.\r\n * Need to refresh Splide after adding a slide.\r\n *\r\n * @param {Node|string} slide - A slide element to be added.\r\n * @param {number} index - A slide will be added at the position.\r\n * @param {Function} callback - Called right after the slide is added to the DOM tree.\r\n */\n add: function add(slide, index, callback) {\n if (typeof slide === 'string') {\n slide = domify(slide);\n }\n\n if (slide instanceof Element) {\n var ref = this.slides[index]; // This will be removed in mount() of a Slide component.\n\n applyStyle(slide, {\n display: 'none'\n });\n\n if (ref) {\n before(slide, ref);\n this.slides.splice(index, 0, slide);\n } else {\n append(this.list, slide);\n this.slides.push(slide);\n }\n\n loaded(slide, function () {\n callback && callback(slide);\n });\n }\n },\n\n /**\r\n * Remove a slide from a slider.\r\n * Need to refresh Splide after removing a slide.\r\n *\r\n * @param index - Slide index.\r\n */\n remove: function remove(index) {\n dom_remove(this.slides.splice(index, 1)[0]);\n },\n\n /**\r\n * Trigger the provided callback for each Slide object.\r\n *\r\n * @param {Function} callback - A callback function. The first argument will be the Slide object.\r\n */\n each: function each(callback) {\n Slides.forEach(callback);\n },\n\n /**\r\n * Return slides length without clones.\r\n *\r\n * @return {number} - Slide length.\r\n */\n get length() {\n return this.slides.length;\n },\n\n /**\r\n * Return \"SlideObjects\" length including clones.\r\n *\r\n * @return {number} - Slide length including clones.\r\n */\n get total() {\n return Slides.length;\n }\n\n };\n /**\r\n * Collect elements.\r\n */\n\n function collect() {\n Elements.slider = child(root, classes.slider);\n Elements.track = find(root, \".\" + classes.track);\n Elements.list = child(Elements.track, classes.list);\n exist(Elements.track && Elements.list, 'Track or list was not found.');\n Elements.slides = children(Elements.list, classes.slide);\n var arrows = findParts(classes.arrows);\n Elements.arrows = {\n prev: find(arrows, \".\" + classes.prev),\n next: find(arrows, \".\" + classes.next)\n };\n var autoplay = findParts(classes.autoplay);\n Elements.bar = find(findParts(classes.progress), \".\" + classes.bar);\n Elements.play = find(autoplay, \".\" + classes.play);\n Elements.pause = find(autoplay, \".\" + classes.pause);\n Elements.track.id = Elements.track.id || root.id + \"-track\";\n Elements.list.id = Elements.list.id || root.id + \"-list\";\n }\n /**\r\n * Return class names for the root element.\r\n */\n\n\n function getClasses() {\n var rootClass = classes.root;\n var options = Splide.options;\n return [rootClass + \"--\" + options.type, rootClass + \"--\" + options.direction, options.drag ? rootClass + \"--draggable\" : '', options.isNavigation ? rootClass + \"--nav\" : '', STATUS_CLASSES.active];\n }\n /**\r\n * Find parts only from children of the root or track.\r\n *\r\n * @return {Element} - A found element or undefined.\r\n */\n\n\n function findParts(className) {\n return child(root, className) || child(Elements.slider, className);\n }\n\n return Elements;\n});\n;// CONCATENATED MODULE: ./src/js/components/controller/index.js\n/**\r\n * The component for controlling the track.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\n\nvar floor = Math.floor;\n/**\r\n * The component for controlling the track.\r\n *\r\n * @param {Splide} Splide - A Splide instance.\r\n * @param {Object} Components - An object containing components.\r\n *\r\n * @return {Object} - The component object.\r\n */\n\n/* harmony default export */ const controller = (function (Splide, Components) {\n /**\r\n * Store current options.\r\n *\r\n * @type {Object}\r\n */\n var options;\n /**\r\n * True if the slide is LOOP mode.\r\n *\r\n * @type {boolean}\r\n */\n\n var isLoop;\n /**\r\n * Controller component object.\r\n *\r\n * @type {Object}\r\n */\n\n var Controller = {\n /**\r\n * Called when the component is mounted.\r\n */\n mount: function mount() {\n options = Splide.options;\n isLoop = Splide.is(LOOP);\n bind();\n },\n\n /**\r\n * Make track run by the given control.\r\n * - \"+{i}\" : Increment the slide index by i.\r\n * - \"-{i}\" : Decrement the slide index by i.\r\n * - \"{i}\" : Go to the slide whose index is i.\r\n * - \">\" : Go to next page.\r\n * - \"<\" : Go to prev page.\r\n * - \">{i}\" : Go to page i.\r\n *\r\n * @param {string|number} control - A control pattern.\r\n * @param {boolean} silently - Go to the destination without event emission.\r\n */\n go: function go(control, silently) {\n var destIndex = this.trim(this.parse(control));\n Components.Track.go(destIndex, this.rewind(destIndex), silently);\n },\n\n /**\r\n * Parse the given control and return the destination index for the track.\r\n *\r\n * @param {string} control - A control target pattern.\r\n *\r\n * @return {number} - A parsed target.\r\n */\n parse: function parse(control) {\n var index = Splide.index;\n var matches = String(control).match(/([+\\-<>]+)(\\d+)?/);\n var indicator = matches ? matches[1] : '';\n var number = matches ? parseInt(matches[2]) : 0;\n\n switch (indicator) {\n case '+':\n index += number || 1;\n break;\n\n case '-':\n index -= number || 1;\n break;\n\n case '>':\n case '<':\n index = parsePage(number, index, indicator === '<');\n break;\n\n default:\n index = parseInt(control);\n }\n\n return index;\n },\n\n /**\r\n * Compute index from the given page number.\r\n *\r\n * @param {number} page - Page number.\r\n *\r\n * @return {number} - A computed page number.\r\n */\n toIndex: function toIndex(page) {\n if (hasFocus()) {\n return page;\n }\n\n var length = Splide.length;\n var perPage = options.perPage;\n var index = page * perPage;\n index = index - (this.pageLength * perPage - length) * floor(index / length); // Adjustment for the last page.\n\n if (length - perPage <= index && index < length) {\n index = length - perPage;\n }\n\n return index;\n },\n\n /**\r\n * Compute page number from the given slide index.\r\n *\r\n * @param {number} index - Slide index.\r\n *\r\n * @return {number} - A computed page number.\r\n */\n toPage: function toPage(index) {\n if (hasFocus()) {\n return index;\n }\n\n var length = Splide.length;\n var perPage = options.perPage; // Make the last \"perPage\" number of slides belong to the last page.\n\n if (length - perPage <= index && index < length) {\n return floor((length - 1) / perPage);\n }\n\n return floor(index / perPage);\n },\n\n /**\r\n * Trim the given index according to the current mode.\r\n * Index being returned could be less than 0 or greater than the length in Loop mode.\r\n *\r\n * @param {number} index - An index being trimmed.\r\n *\r\n * @return {number} - A trimmed index.\r\n */\n trim: function trim(index) {\n if (!isLoop) {\n index = options.rewind ? this.rewind(index) : between(index, 0, this.edgeIndex);\n }\n\n return index;\n },\n\n /**\r\n * Rewind the given index if it's out of range.\r\n *\r\n * @param {number} index - An index.\r\n *\r\n * @return {number} - A rewound index.\r\n */\n rewind: function rewind(index) {\n var edge = this.edgeIndex;\n\n if (isLoop) {\n while (index > edge) {\n index -= edge + 1;\n }\n\n while (index < 0) {\n index += edge + 1;\n }\n } else {\n if (index > edge) {\n index = 0;\n } else if (index < 0) {\n index = edge;\n }\n }\n\n return index;\n },\n\n /**\r\n * Check if the direction is \"rtl\" or not.\r\n *\r\n * @return {boolean} - True if \"rtl\" or false if not.\r\n */\n isRtl: function isRtl() {\n return options.direction === RTL;\n },\n\n /**\r\n * Return the page length.\r\n *\r\n * @return {number} - Max page number.\r\n */\n get pageLength() {\n var length = Splide.length;\n return hasFocus() ? length : Math.ceil(length / options.perPage);\n },\n\n /**\r\n * Return the edge index.\r\n *\r\n * @return {number} - Edge index.\r\n */\n get edgeIndex() {\n var length = Splide.length;\n\n if (!length) {\n return 0;\n }\n\n if (hasFocus() || options.isNavigation || isLoop) {\n return length - 1;\n }\n\n return length - options.perPage;\n },\n\n /**\r\n * Return the index of the previous slide.\r\n *\r\n * @return {number} - The index of the previous slide if available. -1 otherwise.\r\n */\n get prevIndex() {\n var prev = Splide.index - 1;\n\n if (isLoop || options.rewind) {\n prev = this.rewind(prev);\n }\n\n return prev > -1 ? prev : -1;\n },\n\n /**\r\n * Return the index of the next slide.\r\n *\r\n * @return {number} - The index of the next slide if available. -1 otherwise.\r\n */\n get nextIndex() {\n var next = Splide.index + 1;\n\n if (isLoop || options.rewind) {\n next = this.rewind(next);\n }\n\n return Splide.index < next && next <= this.edgeIndex || next === 0 ? next : -1;\n }\n\n };\n /**\r\n * Listen to some events.\r\n */\n\n function bind() {\n Splide.on('move', function (newIndex) {\n Splide.index = newIndex;\n }).on('updated refresh', function (newOptions) {\n options = newOptions || options;\n Splide.index = between(Splide.index, 0, Controller.edgeIndex);\n });\n }\n /**\r\n * Verify if the focus option is available or not.\r\n *\r\n * @return {boolean} - True if a slider has the focus option.\r\n */\n\n\n function hasFocus() {\n return options.focus !== false;\n }\n /**\r\n * Return the next or previous page index computed by the page number and current index.\r\n *\r\n * @param {number} number - Specify the page number.\r\n * @param {number} index - Current index.\r\n * @param {boolean} prev - Prev or next.\r\n *\r\n * @return {number} - Slide index.\r\n */\n\n\n function parsePage(number, index, prev) {\n if (number > -1) {\n return Controller.toIndex(number);\n }\n\n var perMove = options.perMove;\n var sign = prev ? -1 : 1;\n\n if (perMove) {\n return index + perMove * sign;\n }\n\n return Controller.toIndex(Controller.toPage(index) + sign);\n }\n\n return Controller;\n});\n;// CONCATENATED MODULE: ./src/js/components/track/index.js\n/**\r\n * The component for moving list in the track.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\n\n\n\nvar abs = Math.abs;\n/**\r\n * The component for moving list in the track.\r\n *\r\n * @param {Splide} Splide - A Splide instance.\r\n * @param {Object} Components - An object containing components.\r\n *\r\n * @return {Object} - The component object.\r\n */\n\n/* harmony default export */ const track = (function (Splide, Components) {\n /**\r\n * Hold the Layout component.\r\n *\r\n * @type {Object}\r\n */\n var Layout;\n /**\r\n * Hold the Layout component.\r\n *\r\n * @type {Object}\r\n */\n\n var Elements;\n /**\r\n * Store the list element.\r\n *\r\n * @type {Element}\r\n */\n\n var list;\n /**\r\n * Whether the current direction is vertical or not.\r\n *\r\n * @type {boolean}\r\n */\n\n var isVertical = Splide.options.direction === TTB;\n /**\r\n * Whether the slider type is FADE or not.\r\n *\r\n * @type {boolean}\r\n */\n\n var isFade = Splide.is(FADE);\n /**\r\n * Whether the slider direction is RTL or not.\r\n *\r\n * @type {boolean}\r\n */\n\n var isRTL = Splide.options.direction === RTL;\n /**\r\n * This will be true while transitioning from the last index to the first one.\r\n *\r\n * @type {boolean}\r\n */\n\n var isLoopPending = false;\n /**\r\n * Sign for the direction. Only RTL mode uses the positive sign.\r\n *\r\n * @type {number}\r\n */\n\n var sign = isRTL ? 1 : -1;\n /**\r\n * Track component object.\r\n *\r\n * @type {Object}\r\n */\n\n var Track = {\n /**\r\n * Make public the sign defined locally.\r\n *\r\n * @type {number}\r\n */\n sign: sign,\n\n /**\r\n * Called when the component is mounted.\r\n */\n mount: function mount() {\n Elements = Components.Elements;\n Layout = Components.Layout;\n list = Elements.list;\n },\n\n /**\r\n * Called after the component is mounted.\r\n * The resize event must be registered after the Layout's one is done.\r\n */\n mounted: function mounted() {\n var _this = this;\n\n if (!isFade) {\n this.jump(0);\n Splide.on('mounted resize updated', function () {\n _this.jump(Splide.index);\n });\n }\n },\n\n /**\r\n * Go to the given destination index.\r\n * After arriving there, the track is jump to the new index without animation, mainly for loop mode.\r\n *\r\n * @param {number} destIndex - A destination index.\r\n * This can be negative or greater than slides length for reaching clones.\r\n * @param {number} newIndex - An actual new index. They are always same in Slide and Rewind mode.\r\n * @param {boolean} silently - If true, suppress emitting events.\r\n */\n go: function go(destIndex, newIndex, silently) {\n var newPosition = getTrimmedPosition(destIndex);\n var prevIndex = Splide.index; // Prevent any actions while transitioning from the last index to the first one for jump.\n\n if (Splide.State.is(MOVING) && isLoopPending) {\n return;\n }\n\n isLoopPending = destIndex !== newIndex;\n\n if (!silently) {\n Splide.emit('move', newIndex, prevIndex, destIndex);\n }\n\n if (Math.abs(newPosition - this.position) >= 1 || isFade) {\n Components.Transition.start(destIndex, newIndex, prevIndex, this.toCoord(newPosition), function () {\n onTransitionEnd(destIndex, newIndex, prevIndex, silently);\n });\n } else {\n if (destIndex !== prevIndex && Splide.options.trimSpace === 'move') {\n Components.Controller.go(destIndex + destIndex - prevIndex, silently);\n } else {\n onTransitionEnd(destIndex, newIndex, prevIndex, silently);\n }\n }\n },\n\n /**\r\n * Move the track to the specified index.\r\n *\r\n * @param {number} index - A destination index where the track jumps.\r\n */\n jump: function jump(index) {\n this.translate(getTrimmedPosition(index));\n },\n\n /**\r\n * Set the list position by CSS translate property.\r\n *\r\n * @param {number} position - A new position value.\r\n */\n translate: function translate(position) {\n applyStyle(list, {\n transform: \"translate\" + (isVertical ? 'Y' : 'X') + \"(\" + position + \"px)\"\n });\n },\n\n /**\r\n * Cancel the transition and set the list position.\r\n * Also, loop the slider if necessary.\r\n */\n cancel: function cancel() {\n if (Splide.is(LOOP)) {\n this.shift();\n } else {\n // Ensure the current position.\n this.translate(this.position);\n }\n\n applyStyle(list, {\n transition: ''\n });\n },\n\n /**\r\n * Shift the slider if it exceeds borders on the edge.\r\n */\n shift: function shift() {\n var position = abs(this.position);\n var left = abs(this.toPosition(0));\n var right = abs(this.toPosition(Splide.length));\n var innerSize = right - left;\n\n if (position < left) {\n position += innerSize;\n } else if (position > right) {\n position -= innerSize;\n }\n\n this.translate(sign * position);\n },\n\n /**\r\n * Trim redundant spaces on the left or right edge if necessary.\r\n *\r\n * @param {number} position - Position value to be trimmed.\r\n *\r\n * @return {number} - Trimmed position.\r\n */\n trim: function trim(position) {\n if (!Splide.options.trimSpace || Splide.is(LOOP)) {\n return position;\n }\n\n var edge = sign * (Layout.totalSize() - Layout.size - Layout.gap);\n return between(position, edge, 0);\n },\n\n /**\r\n * Calculate the closest slide index from the given position.\r\n *\r\n * @param {number} position - A position converted to an slide index.\r\n *\r\n * @return {number} - The closest slide index.\r\n */\n toIndex: function toIndex(position) {\n var _this2 = this;\n\n var index = 0;\n var minDistance = Infinity;\n Elements.getSlides(true).forEach(function (Slide) {\n var slideIndex = Slide.index;\n var distance = abs(_this2.toPosition(slideIndex) - position);\n\n if (distance < minDistance) {\n minDistance = distance;\n index = slideIndex;\n }\n });\n return index;\n },\n\n /**\r\n * Return coordinates object by the given position.\r\n *\r\n * @param {number} position - A position value.\r\n *\r\n * @return {Object} - A coordinates object.\r\n */\n toCoord: function toCoord(position) {\n return {\n x: isVertical ? 0 : position,\n y: isVertical ? position : 0\n };\n },\n\n /**\r\n * Calculate the track position by a slide index.\r\n *\r\n * @param {number} index - Slide index.\r\n *\r\n * @return {Object} - Calculated position.\r\n */\n toPosition: function toPosition(index) {\n var position = Layout.totalSize(index) - Layout.slideSize(index) - Layout.gap;\n return sign * (position + this.offset(index));\n },\n\n /**\r\n * Return the current offset value, considering direction.\r\n *\r\n * @return {number} - Offset amount.\r\n */\n offset: function offset(index) {\n var focus = Splide.options.focus;\n var slideSize = Layout.slideSize(index);\n\n if (focus === 'center') {\n return -(Layout.size - slideSize) / 2;\n }\n\n return -(parseInt(focus) || 0) * (slideSize + Layout.gap);\n },\n\n /**\r\n * Return the current position.\r\n * This returns the correct position even while transitioning by CSS.\r\n *\r\n * @return {number} - Current position.\r\n */\n get position() {\n var prop = isVertical ? 'top' : isRTL ? 'right' : 'left';\n return getRect(list)[prop] - (getRect(Elements.track)[prop] - Layout.padding[prop] * sign);\n }\n\n };\n /**\r\n * Called whenever slides arrive at a destination.\r\n *\r\n * @param {number} destIndex - A destination index.\r\n * @param {number} newIndex - A new index.\r\n * @param {number} prevIndex - A previous index.\r\n * @param {boolean} silently - If true, suppress emitting events.\r\n */\n\n function onTransitionEnd(destIndex, newIndex, prevIndex, silently) {\n applyStyle(list, {\n transition: ''\n });\n isLoopPending = false;\n\n if (!isFade) {\n Track.jump(newIndex);\n }\n\n if (!silently) {\n Splide.emit('moved', newIndex, prevIndex, destIndex);\n }\n }\n /**\r\n * Convert index to the trimmed position.\r\n *\r\n * @return {number} - Trimmed position.\r\n */\n\n\n function getTrimmedPosition(index) {\n return Track.trim(Track.toPosition(index));\n }\n\n return Track;\n});\n;// CONCATENATED MODULE: ./src/js/components/clones/index.js\n/**\r\n * The component for cloning some slides for \"loop\" mode of the track.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\n\n\n/**\r\n * The component for cloning some slides for \"loop\" mode of the track.\r\n *\r\n * @param {Splide} Splide - A Splide instance.\r\n * @param {Object} Components - An object containing components.\r\n *\r\n * @return {Object} - The component object.\r\n */\n\n/* harmony default export */ const clones = (function (Splide, Components) {\n /**\r\n * Store information of all clones.\r\n *\r\n * @type {Array}\r\n */\n var clones = [];\n /**\r\n * Store the current clone count on one side.\r\n *\r\n * @type {number}\r\n */\n\n var cloneCount = 0;\n /**\r\n * Keep Elements component.\r\n *\r\n * @type {Object}\r\n */\n\n var Elements = Components.Elements;\n /**\r\n * Clones component object.\r\n *\r\n * @type {Object}\r\n */\n\n var Clones = {\n /**\r\n * Called when the component is mounted.\r\n */\n mount: function mount() {\n var _this = this;\n\n if (Splide.is(LOOP)) {\n init();\n Splide.on('refresh:before', function () {\n _this.destroy();\n }).on('refresh', init).on('resize', function () {\n if (cloneCount !== getCloneCount()) {\n // Destroy before refresh not to collect clones by the Elements component.\n _this.destroy();\n\n Splide.refresh();\n }\n });\n }\n },\n\n /**\r\n * Destroy.\r\n */\n destroy: function destroy() {\n dom_remove(clones);\n clones = [];\n },\n\n /**\r\n * Return all clones.\r\n *\r\n * @return {Element[]} - Cloned elements.\r\n */\n get clones() {\n return clones;\n },\n\n /**\r\n * Return clone length.\r\n *\r\n * @return {number} - A length of clones.\r\n */\n get length() {\n return clones.length;\n }\n\n };\n /**\r\n * Initialization.\r\n */\n\n function init() {\n Clones.destroy();\n cloneCount = getCloneCount();\n generateClones(cloneCount);\n }\n /**\r\n * Generate and append/prepend clones.\r\n *\r\n * @param {number} count - The half number of clones.\r\n */\n\n\n function generateClones(count) {\n var length = Elements.length,\n register = Elements.register;\n\n if (length) {\n var slides = Elements.slides;\n\n while (slides.length < count) {\n slides = slides.concat(slides);\n } // Clones after the last element.\n\n\n slides.slice(0, count).forEach(function (elm, index) {\n var clone = cloneDeeply(elm);\n append(Elements.list, clone);\n clones.push(clone);\n register(clone, index + length, index % length);\n }); // Clones before the first element.\n\n slides.slice(-count).forEach(function (elm, index) {\n var clone = cloneDeeply(elm);\n before(clone, slides[0]);\n clones.push(clone);\n register(clone, index - count, (length + index - count % length) % length);\n });\n }\n }\n /**\r\n * Return half count of clones to be generated.\r\n * Clone count is determined by:\r\n * - \"clones\" value in the options.\r\n * - Number of slides that can be placed in a view in \"fixed\" mode.\r\n * - Max pages a flick action can move.\r\n * - Whether the slide length is enough for perPage.\r\n *\r\n * @return {number} - Count for clones.\r\n */\n\n\n function getCloneCount() {\n var options = Splide.options;\n\n if (options.clones) {\n return options.clones;\n } // Use the slide length in autoWidth mode because the number cannot be calculated.\n\n\n var baseCount = options.autoWidth || options.autoHeight ? Elements.length : options.perPage;\n var dimension = options.direction === TTB ? 'Height' : 'Width';\n var fixedSize = toPixel(Splide.root, options[\"fixed\" + dimension]);\n\n if (fixedSize) {\n // Roughly calculate the count. This needs not to be strict.\n baseCount = Math.ceil(Elements.track[\"client\" + dimension] / fixedSize);\n }\n\n return baseCount * (options.drag ? options.flickMaxPages + 1 : 1);\n }\n /**\r\n * Clone deeply the given element.\r\n *\r\n * @param {Element} elm - An element being duplicated.\r\n *\r\n * @return {Node} - A cloned node(element).\r\n */\n\n\n function cloneDeeply(elm) {\n var clone = elm.cloneNode(true);\n addClass(clone, Splide.classes.clone); // ID should not be duplicated.\n\n removeAttribute(clone, 'id');\n return clone;\n }\n\n return Clones;\n});\n;// CONCATENATED MODULE: ./src/js/components/layout/directions/horizontal.js\n/**\r\n * The resolver component for horizontal layout.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\n\n/**\r\n * The resolver component for horizontal layout.\r\n *\r\n * @param {Splide} Splide - A Splide instance.\r\n * @param {Object} Components - An object containing components.\r\n *\r\n * @return {Object} - The resolver object.\r\n */\n\n/* harmony default export */ const horizontal = (function (Splide, Components) {\n /**\r\n * Keep the Elements component.\r\n *\r\n * @type {string}\r\n */\n var Elements = Components.Elements;\n /**\r\n * Keep the root element.\r\n *\r\n * @type {Element}\r\n */\n\n var root = Splide.root;\n /**\r\n * Keep the track element.\r\n *\r\n * @type {Element}\r\n */\n\n var track;\n /**\r\n * Keep the latest options.\r\n *\r\n * @type {Element}\r\n */\n\n var options = Splide.options;\n return {\n /**\r\n * Margin property name.\r\n *\r\n * @type {string}\r\n */\n margin: 'margin' + (options.direction === RTL ? 'Left' : 'Right'),\n\n /**\r\n * Always 0 because the height will be determined by inner contents.\r\n *\r\n * @type {number}\r\n */\n height: 0,\n\n /**\r\n * Initialization.\r\n */\n init: function init() {\n this.resize();\n },\n\n /**\r\n * Resize gap and padding.\r\n * This must be called on init.\r\n */\n resize: function resize() {\n options = Splide.options;\n track = Elements.track;\n this.gap = toPixel(root, options.gap);\n var padding = options.padding;\n var left = toPixel(root, padding.left || padding);\n var right = toPixel(root, padding.right || padding);\n this.padding = {\n left: left,\n right: right\n };\n applyStyle(track, {\n paddingLeft: unit(left),\n paddingRight: unit(right)\n });\n },\n\n /**\r\n * Return total width from the left of the list to the right of the slide specified by the provided index.\r\n *\r\n * @param {number} index - Optional. A slide index. If undefined, total width of the slider will be returned.\r\n *\r\n * @return {number} - Total width to the right side of the specified slide, or 0 for an invalid index.\r\n */\n totalWidth: function totalWidth(index) {\n if (index === void 0) {\n index = Splide.length - 1;\n }\n\n var Slide = Elements.getSlide(index);\n var width = 0;\n\n if (Slide) {\n var slideRect = getRect(Slide.slide);\n var listRect = getRect(Elements.list);\n\n if (options.direction === RTL) {\n width = listRect.right - slideRect.left;\n } else {\n width = slideRect.right - listRect.left;\n }\n\n width += this.gap;\n }\n\n return width;\n },\n\n /**\r\n * Return the slide width in px.\r\n *\r\n * @param {number} index - Slide index.\r\n *\r\n * @return {number} - The slide width.\r\n */\n slideWidth: function slideWidth(index) {\n if (options.autoWidth) {\n var Slide = Elements.getSlide(index);\n return Slide ? Slide.slide.offsetWidth : 0;\n }\n\n var width = options.fixedWidth || (this.width + this.gap) / options.perPage - this.gap;\n return toPixel(root, width);\n },\n\n /**\r\n * Return the slide height in px.\r\n *\r\n * @return {number} - The slide height.\r\n */\n slideHeight: function slideHeight() {\n var height = options.height || options.fixedHeight || this.width * options.heightRatio;\n return toPixel(root, height);\n },\n\n /**\r\n * Return slider width without padding.\r\n *\r\n * @return {number} - Current slider width.\r\n */\n get width() {\n return track.clientWidth - this.padding.left - this.padding.right;\n }\n\n };\n});\n;// CONCATENATED MODULE: ./src/js/components/layout/directions/vertical.js\n/**\r\n * The resolver component for vertical layout.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\n\n/**\r\n * The resolver component for vertical layout.\r\n *\r\n * @param {Splide} Splide - A Splide instance.\r\n * @param {Object} Components - An object containing components.\r\n *\r\n * @return {Object} - The resolver object.\r\n */\n\n/* harmony default export */ const vertical = (function (Splide, Components) {\n /**\r\n * Keep the Elements component.\r\n *\r\n * @type {string}\r\n */\n var Elements = Components.Elements;\n /**\r\n * Keep the root element.\r\n *\r\n * @type {Element}\r\n */\n\n var root = Splide.root;\n /**\r\n * Keep the track element.\r\n *\r\n * @type {Element}\r\n */\n\n var track;\n /**\r\n * Keep the latest options.\r\n *\r\n * @type {Element}\r\n */\n\n var options;\n return {\n /**\r\n * Margin property name.\r\n *\r\n * @type {string}\r\n */\n margin: 'marginBottom',\n\n /**\r\n * Initialization.\r\n */\n init: function init() {\n this.resize();\n },\n\n /**\r\n * Resize gap and padding.\r\n * This must be called on init.\r\n */\n resize: function resize() {\n options = Splide.options;\n track = Elements.track;\n this.gap = toPixel(root, options.gap);\n var padding = options.padding;\n var top = toPixel(root, padding.top || padding);\n var bottom = toPixel(root, padding.bottom || padding);\n this.padding = {\n top: top,\n bottom: bottom\n };\n applyStyle(track, {\n paddingTop: unit(top),\n paddingBottom: unit(bottom)\n });\n },\n\n /**\r\n * Return total height from the top of the list to the bottom of the slide specified by the provided index.\r\n *\r\n * @param {number} index - Optional. A slide index. If undefined, total height of the slider will be returned.\r\n *\r\n * @return {number} - Total height to the bottom of the specified slide, or 0 for an invalid index.\r\n */\n totalHeight: function totalHeight(index) {\n if (index === void 0) {\n index = Splide.length - 1;\n }\n\n var Slide = Elements.getSlide(index);\n\n if (Slide) {\n return getRect(Slide.slide).bottom - getRect(Elements.list).top + this.gap;\n }\n\n return 0;\n },\n\n /**\r\n * Return the slide width in px.\r\n *\r\n * @return {number} - The slide width.\r\n */\n slideWidth: function slideWidth() {\n return toPixel(root, options.fixedWidth || this.width);\n },\n\n /**\r\n * Return the slide height in px.\r\n *\r\n * @param {number} index - Slide index.\r\n *\r\n * @return {number} - The slide height.\r\n */\n slideHeight: function slideHeight(index) {\n if (options.autoHeight) {\n var Slide = Elements.getSlide(index);\n return Slide ? Slide.slide.offsetHeight : 0;\n }\n\n var height = options.fixedHeight || (this.height + this.gap) / options.perPage - this.gap;\n return toPixel(root, height);\n },\n\n /**\r\n * Return slider width without padding.\r\n *\r\n * @return {number} - Current slider width.\r\n */\n get width() {\n return track.clientWidth;\n },\n\n /**\r\n * Return slide height without padding.\r\n *\r\n * @return {number} - Slider height.\r\n */\n get height() {\n var height = options.height || this.width * options.heightRatio;\n exist(height, '\"height\" or \"heightRatio\" is missing.');\n return toPixel(root, height) - this.padding.top - this.padding.bottom;\n }\n\n };\n});\n;// CONCATENATED MODULE: ./src/js/utils/time.js\n/**\r\n * A package of utility functions related with time.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n/**\r\n * Simple throttle function that controls how often the given function is executed.\r\n *\r\n * @param {function} func - A function to be throttled.\r\n * @param {number} wait - Time in millisecond for interval of execution.\r\n *\r\n * @return {Function} - A debounced function.\r\n */\nfunction throttle(func, wait) {\n var timeout; // Declare function by the \"function\" keyword to prevent \"this\" from being inherited.\n\n return function () {\n if (!timeout) {\n timeout = setTimeout(function () {\n func();\n timeout = null;\n }, wait);\n }\n };\n}\n/**\r\n * Custom setInterval function that provides progress rate as callback.\r\n *\r\n * @param {function} callback - A callback function fired every time the interval time passes.\r\n * @param {number} interval - Interval duration in milliseconds.\r\n * @param {function} progress - A callback function fired whenever the progress goes.\r\n *\r\n * @return {Object} - An object containing play() and pause() functions.\r\n */\n\nfunction createInterval(callback, interval, progress) {\n var _window = window,\n requestAnimationFrame = _window.requestAnimationFrame;\n var start,\n elapse,\n rate,\n _pause = true;\n\n var step = function step(timestamp) {\n if (!_pause) {\n if (!start) {\n start = timestamp;\n\n if (rate && rate < 1) {\n start -= rate * interval;\n }\n }\n\n elapse = timestamp - start;\n rate = elapse / interval;\n\n if (elapse >= interval) {\n start = 0;\n rate = 1;\n callback();\n }\n\n if (progress) {\n progress(rate);\n }\n\n requestAnimationFrame(step);\n }\n };\n\n return {\n pause: function pause() {\n _pause = true;\n start = 0;\n },\n play: function play(reset) {\n start = 0;\n\n if (reset) {\n rate = 0;\n }\n\n if (_pause) {\n _pause = false;\n requestAnimationFrame(step);\n }\n }\n };\n}\n;// CONCATENATED MODULE: ./src/js/components/layout/index.js\n/**\r\n * The component for handing slide layouts and their sizes.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\n\n\n\n\n\n/**\r\n * The component for handing slide layouts and their sizes.\r\n *\r\n * @param {Splide} Splide - A Splide instance.\r\n * @param {Object} Components - An object containing components.\r\n *\r\n * @return {Object} - The component object.\r\n */\n\n/* harmony default export */ const layout = (function (Splide, Components) {\n /**\r\n * Keep the Elements component.\r\n *\r\n * @type {string}\r\n */\n var Elements = Components.Elements;\n /**\r\n * Whether the slider is vertical or not.\r\n *\r\n * @type {boolean}\r\n */\n\n var isVertical = Splide.options.direction === TTB;\n /**\r\n * Layout component object.\r\n *\r\n * @type {Object}\r\n */\n\n var Layout = object_assign({\n /**\r\n * Called when the component is mounted.\r\n */\n mount: function mount() {\n bind();\n init(); // The word \"size\" means width for a horizontal slider and height for a vertical slider.\n\n this.totalSize = isVertical ? this.totalHeight : this.totalWidth;\n this.slideSize = isVertical ? this.slideHeight : this.slideWidth;\n },\n\n /**\r\n * Destroy the component.\r\n */\n destroy: function destroy() {\n removeAttribute([Elements.list, Elements.track], 'style');\n },\n\n /**\r\n * Return the slider height on the vertical mode or width on the horizontal mode.\r\n *\r\n * @return {number}\r\n */\n get size() {\n return isVertical ? this.height : this.width;\n }\n\n }, isVertical ? vertical(Splide, Components) : horizontal(Splide, Components));\n /**\r\n * Init slider styles according to options.\r\n */\n\n function init() {\n Layout.init();\n applyStyle(Splide.root, {\n maxWidth: unit(Splide.options.width)\n });\n Elements.each(function (Slide) {\n Slide.slide.style[Layout.margin] = unit(Layout.gap);\n });\n resize();\n }\n /**\r\n * Listen the resize native event with throttle.\r\n * Initialize when the component is mounted or options are updated.\r\n */\n\n\n function bind() {\n Splide.on('resize load', throttle(function () {\n Splide.emit('resize');\n }, Splide.options.throttle), window).on('resize', resize).on('updated refresh', init);\n }\n /**\r\n * Resize the track and slide elements.\r\n */\n\n\n function resize() {\n var options = Splide.options;\n Layout.resize();\n applyStyle(Elements.track, {\n height: unit(Layout.height)\n });\n var slideHeight = options.autoHeight ? null : unit(Layout.slideHeight());\n Elements.each(function (Slide) {\n applyStyle(Slide.container, {\n height: slideHeight\n });\n applyStyle(Slide.slide, {\n width: options.autoWidth ? null : unit(Layout.slideWidth(Slide.index)),\n height: Slide.container ? null : slideHeight\n });\n });\n Splide.emit('resized');\n }\n\n return Layout;\n});\n;// CONCATENATED MODULE: ./src/js/components/drag/index.js\n/**\r\n * The component for supporting mouse drag and swipe.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\n\n\n\nvar drag_abs = Math.abs;\n/**\r\n * If the absolute velocity is greater thant this value,\r\n * a slider always goes to a different slide after drag, not allowed to stay on a current slide.\r\n */\n\nvar MIN_VELOCITY = 0.1;\n/**\r\n * Adjust how much the track can be pulled on the first or last page.\r\n * The larger number this is, the farther the track moves.\r\n * This should be around 5 - 9.\r\n *\r\n * @type {number}\r\n */\n\nvar FRICTION_REDUCER = 7;\n/**\r\n * The component supporting mouse drag and swipe.\r\n *\r\n * @param {Splide} Splide - A Splide instance.\r\n * @param {Object} Components - An object containing components.\r\n *\r\n * @return {Object} - The component object.\r\n */\n\n/* harmony default export */ const drag = (function (Splide, Components) {\n /**\r\n * Store the Move component.\r\n *\r\n * @type {Object}\r\n */\n var Track = Components.Track;\n /**\r\n * Store the Controller component.\r\n *\r\n * @type {Object}\r\n */\n\n var Controller = Components.Controller;\n /**\r\n * Coordinate of the track on starting drag.\r\n *\r\n * @type {Object}\r\n */\n\n var startCoord;\n /**\r\n * Analyzed info on starting drag.\r\n *\r\n * @type {Object|null}\r\n */\n\n var startInfo;\n /**\r\n * Analyzed info being updated while dragging/swiping.\r\n *\r\n * @type {Object}\r\n */\n\n var currentInfo;\n /**\r\n * Determine whether slides are being dragged or not.\r\n *\r\n * @type {boolean}\r\n */\n\n var isDragging;\n /**\r\n * Whether the slider direction is vertical or not.\r\n *\r\n * @type {boolean}\r\n */\n\n var isVertical = Splide.options.direction === TTB;\n /**\r\n * Axis for the direction.\r\n *\r\n * @type {string}\r\n */\n\n var axis = isVertical ? 'y' : 'x';\n /**\r\n * Drag component object.\r\n *\r\n * @type {Object}\r\n */\n\n var Drag = {\n /**\r\n * Whether dragging is disabled or not.\r\n *\r\n * @type {boolean}\r\n */\n disabled: false,\n\n /**\r\n * Called when the component is mounted.\r\n */\n mount: function mount() {\n var _this = this;\n\n var Elements = Components.Elements;\n var track = Elements.track;\n Splide.on('touchstart mousedown', start, track).on('touchmove mousemove', move, track, {\n passive: false\n }).on('touchend touchcancel mouseleave mouseup dragend', end, track).on('mounted refresh', function () {\n // Prevent dragging an image or anchor itself.\n each(Elements.list.querySelectorAll('img, a'), function (elm) {\n Splide.off('dragstart', elm).on('dragstart', function (e) {\n e.preventDefault();\n }, elm, {\n passive: false\n });\n });\n }).on('mounted updated', function () {\n _this.disabled = !Splide.options.drag;\n });\n }\n };\n /**\r\n * Called when the track starts to be dragged.\r\n *\r\n * @param {TouchEvent|MouseEvent} e - TouchEvent or MouseEvent object.\r\n */\n\n function start(e) {\n if (!Drag.disabled && !isDragging) {\n // These prams are used to evaluate whether the slider should start moving.\n init(e);\n }\n }\n /**\r\n * Initialize parameters.\r\n *\r\n * @param {TouchEvent|MouseEvent} e - TouchEvent or MouseEvent object.\r\n */\n\n\n function init(e) {\n startCoord = Track.toCoord(Track.position);\n startInfo = analyze(e, {});\n currentInfo = startInfo;\n }\n /**\r\n * Called while the track being dragged.\r\n *\r\n * @param {TouchEvent|MouseEvent} e - TouchEvent or MouseEvent object.\r\n */\n\n\n function move(e) {\n if (startInfo) {\n currentInfo = analyze(e, startInfo);\n\n if (isDragging) {\n if (e.cancelable) {\n e.preventDefault();\n }\n\n if (!Splide.is(FADE)) {\n var position = startCoord[axis] + currentInfo.offset[axis];\n Track.translate(resist(position));\n }\n } else {\n if (shouldMove(currentInfo)) {\n Splide.emit('drag', startInfo);\n isDragging = true;\n Track.cancel(); // These params are actual drag data.\n\n init(e);\n }\n }\n }\n }\n /**\r\n * Determine whether to start moving the track or not by drag angle.\r\n *\r\n * @param {Object} info - An information object.\r\n *\r\n * @return {boolean} - True if the track should be moved or false if not.\r\n */\n\n\n function shouldMove(_ref) {\n var offset = _ref.offset;\n\n if (Splide.State.is(MOVING) && Splide.options.waitForTransition) {\n return false;\n }\n\n var angle = Math.atan(drag_abs(offset.y) / drag_abs(offset.x)) * 180 / Math.PI;\n\n if (isVertical) {\n angle = 90 - angle;\n }\n\n return angle < Splide.options.dragAngleThreshold;\n }\n /**\r\n * Resist dragging the track on the first/last page because there is no more.\r\n *\r\n * @param {number} position - A position being applied to the track.\r\n *\r\n * @return {Object} - Adjusted position.\r\n */\n\n\n function resist(position) {\n if (Splide.is(SLIDE)) {\n var sign = Track.sign;\n\n var _start = sign * Track.trim(Track.toPosition(0));\n\n var _end = sign * Track.trim(Track.toPosition(Controller.edgeIndex));\n\n position *= sign;\n\n if (position < _start) {\n position = _start - FRICTION_REDUCER * Math.log(_start - position);\n } else if (position > _end) {\n position = _end + FRICTION_REDUCER * Math.log(position - _end);\n }\n\n position *= sign;\n }\n\n return position;\n }\n /**\r\n * Called when dragging ends.\r\n */\n\n\n function end() {\n startInfo = null;\n\n if (isDragging) {\n Splide.emit('dragged', currentInfo);\n go(currentInfo);\n isDragging = false;\n }\n }\n /**\r\n * Go to the slide determined by the analyzed data.\r\n *\r\n * @param {Object} info - An info object.\r\n */\n\n\n function go(info) {\n var velocity = info.velocity[axis];\n var absV = drag_abs(velocity);\n\n if (absV > 0) {\n var options = Splide.options;\n var index = Splide.index;\n var sign = velocity < 0 ? -1 : 1;\n var destIndex = index;\n\n if (!Splide.is(FADE)) {\n var destination = Track.position;\n\n if (absV > options.flickVelocityThreshold && drag_abs(info.offset[axis]) < options.swipeDistanceThreshold) {\n destination += sign * Math.min(absV * options.flickPower, Components.Layout.size * (options.flickMaxPages || 1));\n }\n\n destIndex = Track.toIndex(destination);\n }\n /*\r\n * Do not allow the track to go to a previous position if there is enough velocity.\r\n * Always use the adjacent index for the fade mode.\r\n */\n\n\n if (destIndex === index && absV > MIN_VELOCITY) {\n destIndex = index + sign * Track.sign;\n }\n\n if (Splide.is(SLIDE)) {\n destIndex = between(destIndex, 0, Controller.edgeIndex);\n }\n\n Controller.go(destIndex, options.isNavigation);\n }\n }\n /**\r\n * Analyze the given event object and return important information for handling swipe behavior.\r\n *\r\n * @param {Event} e - Touch or Mouse event object.\r\n * @param {Object} startInfo - Information analyzed on start for calculating difference from the current one.\r\n *\r\n * @return {Object} - An object containing analyzed information, such as offset, velocity, etc.\r\n */\n\n\n function analyze(e, startInfo) {\n var timeStamp = e.timeStamp,\n touches = e.touches;\n\n var _ref2 = touches ? touches[0] : e,\n clientX = _ref2.clientX,\n clientY = _ref2.clientY;\n\n var _ref3 = startInfo.to || {},\n _ref3$x = _ref3.x,\n fromX = _ref3$x === void 0 ? clientX : _ref3$x,\n _ref3$y = _ref3.y,\n fromY = _ref3$y === void 0 ? clientY : _ref3$y;\n\n var startTime = startInfo.time || 0;\n var offset = {\n x: clientX - fromX,\n y: clientY - fromY\n };\n var duration = timeStamp - startTime;\n var velocity = {\n x: offset.x / duration,\n y: offset.y / duration\n };\n return {\n to: {\n x: clientX,\n y: clientY\n },\n offset: offset,\n time: timeStamp,\n velocity: velocity\n };\n }\n\n return Drag;\n});\n;// CONCATENATED MODULE: ./src/js/components/click/index.js\n/**\r\n * The component for handling a click event.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n/**\r\n * The component for handling a click event.\r\n * Click should be disabled during drag/swipe.\r\n *\r\n * @param {Splide} Splide - A Splide instance.\r\n * @param {Object} Components - An object containing components.\r\n *\r\n * @return {Object} - The component object.\r\n */\n/* harmony default export */ const click = (function (Splide, Components) {\n /**\r\n * Whether click is disabled or not.\r\n *\r\n * @type {boolean}\r\n */\n var disabled = false;\n /**\r\n * Click component object.\r\n *\r\n * @type {Object}\r\n */\n\n var Click = {\n /**\r\n * Mount only when the drag is activated and the slide type is not \"fade\".\r\n *\r\n * @type {boolean}\r\n */\n required: Splide.options.drag,\n\n /**\r\n * Called when the component is mounted.\r\n */\n mount: function mount() {\n Splide.on('click', onClick, Components.Elements.track, {\n capture: true\n }).on('drag', function () {\n disabled = true;\n }).on('dragged', function () {\n // Make sure the flag is released after the click event is fired.\n setTimeout(function () {\n disabled = false;\n });\n });\n }\n };\n /**\r\n * Called when a track element is clicked.\r\n *\r\n * @param {Event} e - A click event.\r\n */\n\n function onClick(e) {\n if (disabled) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n\n return Click;\n});\n;// CONCATENATED MODULE: ./src/js/components/autoplay/index.js\n/**\r\n * The component for playing slides automatically.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\n/**\r\n * Set of pause flags.\r\n */\n\nvar PAUSE_FLAGS = {\n HOVER: 1,\n FOCUS: 2,\n MANUAL: 3\n};\n/**\r\n * The component for playing slides automatically.\r\n *\r\n * @param {Splide} Splide - A Splide instance.\r\n * @param {Object} Components - An object containing components.\r\n * @param {string} name - A component name as a lowercase string.\r\n *\r\n * @return {Object} - The component object.\r\n */\n\n/* harmony default export */ const autoplay = (function (Splide, Components, name) {\n /**\r\n * Store pause flags.\r\n *\r\n * @type {Array}\r\n */\n var flags = [];\n /**\r\n * Store an interval object.\r\n *\r\n * @type {Object};\r\n */\n\n var interval;\n /**\r\n * Keep the Elements component.\r\n *\r\n * @type {string}\r\n */\n\n var Elements = Components.Elements;\n /**\r\n * Autoplay component object.\r\n *\r\n * @type {Object}\r\n */\n\n var Autoplay = {\n /**\r\n * Required only when the autoplay option is true.\r\n *\r\n * @type {boolean}\r\n */\n required: Splide.options.autoplay,\n\n /**\r\n * Called when the component is mounted.\r\n * Note that autoplay starts only if there are slides over perPage number.\r\n */\n mount: function mount() {\n var options = Splide.options;\n\n if (Elements.slides.length > options.perPage) {\n interval = createInterval(function () {\n Splide.go('>');\n }, options.interval, function (rate) {\n Splide.emit(name + \":playing\", rate);\n\n if (Elements.bar) {\n applyStyle(Elements.bar, {\n width: rate * 100 + \"%\"\n });\n }\n });\n bind();\n this.play();\n }\n },\n\n /**\r\n * Start autoplay.\r\n *\r\n * @param {number} flag - A pause flag to be removed.\r\n */\n play: function play(flag) {\n if (flag === void 0) {\n flag = 0;\n }\n\n flags = flags.filter(function (f) {\n return f !== flag;\n });\n\n if (!flags.length) {\n Splide.emit(name + \":play\");\n interval.play(Splide.options.resetProgress);\n }\n },\n\n /**\r\n * Pause autoplay.\r\n * Note that Array.includes is not supported by IE.\r\n *\r\n * @param {number} flag - A pause flag to be added.\r\n */\n pause: function pause(flag) {\n if (flag === void 0) {\n flag = 0;\n }\n\n interval.pause();\n\n if (flags.indexOf(flag) === -1) {\n flags.push(flag);\n }\n\n if (flags.length === 1) {\n Splide.emit(name + \":pause\");\n }\n }\n };\n /**\r\n * Listen some events.\r\n */\n\n function bind() {\n var options = Splide.options;\n var sibling = Splide.sibling;\n var elms = [Splide.root, sibling ? sibling.root : null];\n\n if (options.pauseOnHover) {\n switchOn(elms, 'mouseleave', PAUSE_FLAGS.HOVER, true);\n switchOn(elms, 'mouseenter', PAUSE_FLAGS.HOVER, false);\n }\n\n if (options.pauseOnFocus) {\n switchOn(elms, 'focusout', PAUSE_FLAGS.FOCUS, true);\n switchOn(elms, 'focusin', PAUSE_FLAGS.FOCUS, false);\n }\n\n if (Elements.play) {\n Splide.on('click', function () {\n // Need to be removed a focus flag at first.\n Autoplay.play(PAUSE_FLAGS.FOCUS);\n Autoplay.play(PAUSE_FLAGS.MANUAL);\n }, Elements.play);\n }\n\n if (Elements.pause) {\n switchOn([Elements.pause], 'click', PAUSE_FLAGS.MANUAL, false);\n }\n\n Splide.on('move refresh', function () {\n Autoplay.play();\n }) // Rewind the timer.\n .on('destroy', function () {\n Autoplay.pause();\n });\n }\n /**\r\n * Play or pause on the given event.\r\n *\r\n * @param {Element[]} elms - Elements.\r\n * @param {string} event - An event name or names.\r\n * @param {number} flag - A pause flag defined on the top.\r\n * @param {boolean} play - Determine whether to play or pause.\r\n */\n\n\n function switchOn(elms, event, flag, play) {\n elms.forEach(function (elm) {\n Splide.on(event, function () {\n Autoplay[play ? 'play' : 'pause'](flag);\n }, elm);\n });\n }\n\n return Autoplay;\n});\n;// CONCATENATED MODULE: ./src/js/components/cover/index.js\n/**\r\n * The component for change an img element to background image of its wrapper.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n/**\r\n * The component for change an img element to background image of its wrapper.\r\n *\r\n * @param {Splide} Splide - A Splide instance.\r\n * @param {Object} Components - An object containing components.\r\n *\r\n * @return {Object} - The component object.\r\n */\n\n/* harmony default export */ const cover = (function (Splide, Components) {\n /**\r\n * Hold options.\r\n *\r\n * @type {Object}\r\n */\n var options = Splide.options;\n /**\r\n * Cover component object.\r\n *\r\n * @type {Object}\r\n */\n\n var Cover = {\n /**\r\n * Required only when \"cover\" option is true.\r\n *\r\n * @type {boolean}\r\n */\n required: options.cover,\n\n /**\r\n * Called when the component is mounted.\r\n */\n mount: function mount() {\n Splide.on('lazyload:loaded', function (img) {\n cover(img, false);\n });\n Splide.on('mounted updated refresh', function () {\n return apply(false);\n });\n },\n\n /**\r\n * Destroy.\r\n */\n destroy: function destroy() {\n apply(true);\n }\n };\n /**\r\n * Apply \"cover\" to all slides.\r\n *\r\n * @param {boolean} uncover - If true, \"cover\" will be clear.\r\n */\n\n function apply(uncover) {\n Components.Elements.each(function (Slide) {\n var img = child(Slide.slide, 'IMG') || child(Slide.container, 'IMG');\n\n if (img && img.src) {\n cover(img, uncover);\n }\n });\n }\n /**\r\n * Set background image of the parent element, using source of the given image element.\r\n *\r\n * @param {Element} img - An image element.\r\n * @param {boolean} uncover - Reset \"cover\".\r\n */\n\n\n function cover(img, uncover) {\n applyStyle(img.parentElement, {\n background: uncover ? '' : \"center/cover no-repeat url(\\\"\" + img.src + \"\\\")\"\n });\n applyStyle(img, {\n display: uncover ? '' : 'none'\n });\n }\n\n return Cover;\n});\n;// CONCATENATED MODULE: ./src/js/components/arrows/path.js\n/**\r\n * Export vector path for an arrow.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n/**\r\n * Namespace definition for SVG element.\r\n *\r\n * @type {string}\r\n */\nvar XML_NAME_SPACE = 'http://www.w3.org/2000/svg';\n/**\r\n * The arrow vector path.\r\n *\r\n * @type {number}\r\n */\n\nvar PATH = 'm15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z';\n/**\r\n * SVG width and height.\r\n *\r\n * @type {number}\r\n */\n\nvar SIZE = 40;\n;// CONCATENATED MODULE: ./src/js/components/arrows/index.js\n/**\r\n * The component for appending prev/next arrows.\r\n *\r\n * @author Naotoshi Fujita\r\n * @copyright Naotoshi Fujita. All rights reserved.\r\n */\n\n\n\n/**\r\n * The component for appending prev/next arrows.\r\n *\r\n * @param {Splide} Splide - A Splide instance.\r\n * @param {Object} Components - An object containing components.\r\n * @param {string} name - A component name as a lowercase string.\r\n *\r\n * @return {Object} - The component object.\r\n */\n\n/* harmony default export */ const arrows = (function (Splide, Components, name) {\n /**\r\n * Previous arrow element.\r\n *\r\n * @type {Element|undefined}\r\n */\n var prev;\n /**\r\n * Next arrow element.\r\n *\r\n * @type {Element|undefined}\r\n */\n\n var next;\n /**\r\n * Store the class list.\r\n *\r\n * @type {Object}\r\n */\n\n var classes = Splide.classes;\n /**\r\n * Hold the root element.\r\n *\r\n * @type {Element}\r\n */\n\n var root = Splide.root;\n /**\r\n * Whether arrows are created programmatically or not.\r\n *\r\n * @type {boolean}\r\n */\n\n var created;\n /**\r\n * Hold the Elements component.\r\n *\r\n * @type {Object}\r\n */\n\n var Elements = Components.Elements;\n /**\r\n * Arrows component object.\r\n *\r\n * @type {Object}\r\n */\n\n var Arrows = {\n /**\r\n * Required when the arrows option is true.\r\n *\r\n * @type {boolean}\r\n */\n required: Splide.options.arrows,\n\n /**\r\n * Called when the component is mounted.\r\n */\n mount: function mount() {\n // Attempt to get arrows from HTML source.\n prev = Elements.arrows.prev;\n next = Elements.arrows.next; // If arrows were not found in HTML, let's generate them.\n\n if ((!prev || !next) && Splide.options.arrows) {\n prev = createArrow(true);\n next = createArrow(false);\n created = true;\n appendArrows();\n }\n\n if (prev && next) {\n bind();\n }\n\n this.arrows = {\n prev: prev,\n next: next\n };\n },\n\n /**\r\n * Called after all components are mounted.\r\n */\n mounted: function mounted() {\n Splide.emit(name + \":mounted\", prev, next);\n },\n\n /**\r\n * Destroy.\r\n */\n destroy: function destroy() {\n removeAttribute([prev, next], 'disabled');\n\n if (created) {\n dom_remove(prev.parentElement);\n }\n }\n };\n /**\r\n * Listen to native and custom events.\r\n */\n\n function bind() {\n Splide.on('click', function () {\n Splide.go('<');\n }, prev).on('click', function () {\n Splide.go('>');\n }, next).on('mounted move updated refresh', updateDisabled);\n }\n /**\r\n * Update a disabled attribute.\r\n */\n\n\n function updateDisabled() {\n var _Components$Controlle = Components.Controller,\n prevIndex = _Components$Controlle.prevIndex,\n nextIndex = _Components$Controlle.nextIndex;\n var isEnough = Splide.length > Splide.options.perPage || Splide.is(LOOP);\n prev.disabled = prevIndex < 0 || !isEnough;\n next.disabled = nextIndex < 0 || !isEnough;\n Splide.emit(name + \":updated\", prev, next, prevIndex, nextIndex);\n }\n /**\r\n * Create a wrapper element and append arrows.\r\n */\n\n\n function appendArrows() {\n var wrapper = create('div', {\n \"class\": classes.arrows\n });\n append(wrapper, prev);\n append(wrapper, next);\n var slider = Elements.slider;\n var parent = Splide.options.arrows === 'slider' && slider ? slider : root;\n before(wrapper, parent.firstElementChild);\n }\n /**\r\n * Create an arrow element.\r\n *\r\n * @param {boolean} prev - Determine to create a prev arrow or next arrow.\r\n *\r\n * @return {Element} - A created arrow element.\r\n */\n\n\n function createArrow(prev) {\n var arrow = \"