{"version":3,"sources":["webpack:///./src/icons/upwards-arrow.svg","webpack:///./src/components/global/ContactForm/ContactForm.js","webpack:///./node_modules/uuid/dist/esm-browser/rng.js","webpack:///./node_modules/uuid/dist/esm-browser/bytesToUuid.js","webpack:///./node_modules/uuid/dist/esm-browser/v4.js","webpack:///./node_modules/react-slick/lib/slider.js","webpack:///./node_modules/lodash.debounce/index.js","webpack:///./node_modules/react-slick/lib/default-props.js","webpack:///./node_modules/string-convert/camel2hyphen.js","webpack:///./src/hooks/useForm.js","webpack:///./src/components/SimpleSlider/SimpleSlider.module.css","webpack:///./src/components/Form/Form.js","webpack:///./node_modules/enquire.js/src/Util.js","webpack:///./node_modules/react-slick/lib/arrows.js","webpack:///./src/components/TextImageCtaBlock/index.js","webpack:///./node_modules/react-slick/lib/index.js","webpack:///./node_modules/react-intersection-observer/react-intersection-observer.m.js","webpack:///./src/components/global/SectionHeading/SectionHeading.js","webpack:///./src/utils/transitions.js","webpack:///./src/components/CaseStudyCard/CaseStudyCard.js","webpack:///./node_modules/react-slick/lib/track.js","webpack:///./src/components/TextImageCtaBlock/TextImageCtaBlock.module.css","webpack:///./node_modules/react-slick/lib/dots.js","webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./src/components/global/ButtonGradient/ButtonGradient.js","webpack:///./src/utils/AnimateEntrance.js","webpack:///./src/hooks/usePrevious.js","webpack:///./src/components/Seo/Seo.js","webpack:///./node_modules/enquire.js/src/index.js","webpack:///./node_modules/enquire.js/src/QueryHandler.js","webpack:///./src/components/SimpleSlider/index.js","webpack:///./node_modules/json2mq/index.js","webpack:///./src/components/Column/OneColumnBlock.js","webpack:///./node_modules/react-slick/lib/initial-state.js","webpack:///./src/hooks/useConstant.js","webpack:///./node_modules/react-slick/lib/inner-slider.js","webpack:///./node_modules/enquire.js/src/MediaQuery.js","webpack:///./node_modules/enquire.js/src/MediaQueryDispatch.js","webpack:///./node_modules/react-slick/lib/utils/innerSliderUtils.js"],"names":["React","UpwardsArrow","props","createElement","defaultProps","module","exports","default","ContactForm","copy","heading","form_image","saleforces_form_id","form","useForm","nodes","find","item","wordpress_id","id","className","href","rel","target","Form","acf","getRandomValues","crypto","bind","msCrypto","rnds8","Uint8Array","rng","Error","byteToHex","toString","substr","buf","offset","i","bth","join","options","Array","rnds","random","ii","Object","defineProperty","value","_react","_interopRequireDefault","_innerSlider","_json2mq","_defaultProps","_innerSliderUtils","obj","__esModule","_typeof","Symbol","iterator","constructor","prototype","_extends","assign","arguments","length","source","key","hasOwnProperty","call","apply","this","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_defineProperties","descriptor","configurable","writable","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_assertThisInitialized","self","ReferenceError","_setPrototypeOf","p","enquire","canUseDOM","Slider","_React$Component","_this","instance","Constructor","TypeError","_classCallCheck","_possibleConstructorReturn","ref","innerSlider","slickPrev","slickNext","slide","dontAnimate","undefined","slickGoTo","pause","autoPlay","state","breakpoint","_responsiveMediaHandlers","protoProps","staticProps","subClass","superClass","create","_inherits","query","handler","register","_this2","responsive","breakpoints","map","breakpt","sort","x","y","index","bQuery","minWidth","maxWidth","media","setState","slice","unregister","settings","newProps","_this3","resp","centerMode","slidesToScroll","fade","slidesToShow","children","Children","toArray","child","trim","variableWidth","rows","slidesPerRow","console","warn","newChildren","currentWidth","newSlide","j","row","k","style","width","cloneElement","tabIndex","concat","display","unslick","InnerSlider","innerSliderRefHandler","Component","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","root","Function","objectToString","nativeMax","Math","max","nativeMin","min","now","Date","isObject","type","toNumber","isObjectLike","isSymbol","other","valueOf","replace","isBinary","test","func","wait","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","cancel","clearTimeout","flush","_default","accessibility","adaptiveHeight","afterChange","appendDots","dots","arrows","autoplay","autoplaySpeed","beforeChange","centerPadding","cssEase","customPaging","dotsClass","draggable","easing","edgeFriction","focusOnSelect","infinite","initialSlide","lazyLoad","nextArrow","onEdge","onInit","onLazyLoadError","onReInit","pauseOnDotsHover","pauseOnFocus","pauseOnHover","prevArrow","rtl","speed","swipe","swipeEvent","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","vertical","waitForAnimate","str","match","toLowerCase","useStaticQuery","form_name","form_id","height","form_height","form_name_cleaned","iframe","useRef","useState","minHeight","setStyle","onLoad","useCallback","onMessage","event","origin","data","useEffect","frame","current","window","addEventListener","removeEventListener","title","src","scrolling","seamless","marginHeight","marginWidth","frameBorder","horizontalscrolling","verticalscrolling","memo","isFunction","isArray","each","collection","fn","NextArrow","PrevArrow","_classnames","_createClass","_React$PureComponent","e","preventDefault","clickHandler","prevClasses","prevHandler","message","currentSlide","slideCount","prevArrowProps","onClick","customProps","PureComponent","_React$PureComponent2","nextClasses","nextHandler","canGoNext","nextArrowProps","TextImageCtaBlock","bg","image_text_cta_background_colour","gradient","image_text_cta_background_gradient","linkBgColour","image_text_cta_cta_background_colour","link","image_text_cta_cta_link","text","image_text_cta_cta_text_colour","image_text_cta_cta_type","image_text_cta_text","textColour","image_text_cta_text_colour","image_text_cta_title","image","image_text_cta_image","size","containerStyle","color","variants","containerVariants","threshold","rootMargin","name","classNames","styles","container","textContainer","as","Link","to","url","colour","ObserverMap","Map","RootIds","rootId","optionsToId","Boolean","has","set","get","observe","element","callback","_createObserver","elements","observer","IntersectionObserver","entries","entry","_elements$get","inView","isIntersecting","thresholds","some","intersectionRatio","trackVisibility","isVisible","createObserver","callbacks","splice","indexOf","unobserve","disconnect","isPlainChildren","InView","node","_unobserveCb","handleNode","triggerOnce","skip","initialInView","observeNode","handleChange","onChange","_proto","componentDidUpdate","prevProps","delay","componentWillUnmount","_this$props","render","_this$state","_this$props2","tag","excluded","sourceKeys","_objectWithoutPropertiesLoose","useInView","_temp","_ref","_React$useState","setRef","displayName","open","transition","duration","closed","SectionHeading","animate","rest","shouldAnimate","Node","includes","span","ease","initial","opacity","enter","exit","show","damping","stiffness","staggerChildren","delayChildren","hide","imageVariants","clipPath","imageVariantsAlt","textVariants","bannerVariants","scale","CaseStudyCard","path","label","Image","dangerouslySetInnerHTML","__html","IconWrapper","icon","Arrow","Track","getSlideClasses","spec","slickActive","slickCenter","slickCloned","centerOffset","floor","getKey","fallbackKey","renderSlides","slides","preCloneSlides","postCloneSlides","childrenCount","count","startIndex","lazyStartIndex","endIndex","lazyEndIndex","elem","childOnClickOptions","lazyLoadedList","childStyle","slideWidth","position","top","slideHeight","left","WebkitTransition","getSlideStyle","slideClass","slideClasses","outline","preCloneNo","getPreClones","reverse","mouseEvents","onMouseEnter","onMouseOver","onMouseLeave","trackStyle","Dots","dotCount","ceil","split","leftBound","rightBound","dotOptions","MapShim","getIndex","arr","class_1","__entries__","delete","clear","ctx","_i","_a","isBrowser","document","global$1","requestAnimationFrame$1","requestAnimationFrame","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","timeStamp","throttle","addObserver","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","attributes","childList","characterData","subtree","_b","propertyName","getInstance","instance_","defineConfigurable","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","positions","reduce","getHTMLElementContentRect","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","getPaddings","horizPad","right","vertPad","bottom","boxSizing","round","documentElement","isDocumentElement","vertScrollbar","horizScrollbar","abs","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","Constr","contentRect","DOMRectReadOnly","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","clearActive","observation","WeakMap","ResizeObserver","method","ButtonGradient","track","hasGradient","AnimateEntrance","onEnter","Tag","motion","prevInview","usePrevious","Seo","canonical","twitter_title","twitter_image","twitter_description","opengraph_title","opengraph_image","opengraph_description","metadesc","meta_robots_noindex","meta_robots_nofollow","location","twitterImage","source_url","opengraphImage","content","property","MediaQueryDispatch","QueryHandler","deferSetup","setup","initialised","on","off","unmatch","destroy","equals","wrapperClassName","SimpleSlider","isMobile","useMediaQuery","imageSlide","setImageSlide","contentSlide","setContentSlide","imageSlider","contentSlider","sliderSettings","mobile_image","cta_text","cta_link","slideItem","uuidv4","slideItemContent","slideItemBg","backgroundImage","camel2hyphen","obj2mq","mq","features","feature","isDimension","q","OneColumnBlock","header","animating","autoplaying","currentDirection","currentLeft","direction","dragging","edgeDragged","initialized","listHeight","listWidth","swipeLeft","swiped","swiping","touchObject","startX","startY","curX","curY","trackWidth","useConstant","v","_reactDom","_initialState","_lodash","_track","_dots","_arrows","_resizeObserverPolyfill","_objectWithoutProperties","sourceSymbolKeys","propertyIsEnumerable","list","querySelector","getHeight","ssrInit","slidesToLoad","getOnDemandLazySlides","prevState","onLazyLoad","listRef","trackRef","updateState","adaptHeight","lazyLoadTimer","setInterval","progressiveLazyLoad","ro","onWindowResized","callbackTimers","querySelectorAll","onfocus","onSlideFocus","onblur","onSlideBlur","attachEvent","animationEndCallback","clearInterval","timer","detachEvent","autoplayTimer","nextProps","setTrackStyle","_Object$keys","changeSlide","checkImagesLoad","debouncedResize","resizeWindow","findDOMNode","updatedState","initializedState","slideIndex","getTrackLeft","getTrackCSS","_trackWidth","_trackLeft","childrenWidths","preClones","postClones","getPostClones","_i2","_i3","_trackStyle","trackLeft","images","imagesCount","loadedCount","onclick","prevClickHandler","parentNode","focus","onload","onerror","_index","asNavFor","_slideHandler","slideHandler","nextState","firstBatch","targetSlide","clickable","stopPropagation","dir","keyHandler","ontouchmove","returnValue","verticalSwiping","disableBodyScroll","swipeStart","swipeMove","swipeEnd","triggerSlideHandler","enableBodyScroll","Number","isNaN","nextIndex","playType","play","pauseType","trackProps","extractObject","onTrackOver","onTrackLeave","selectHandler","dotProps","onDotsLeave","onDotsOver","arrowProps","verticalHeightStyle","centerPaddingStyle","padding","listStyle","listProps","onMouseDown","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","onKeyDown","innerSliderProps","listRefHandler","trackRefHandler","MediaQuery","isUnconditional","handlers","mql","matchMedia","listener","currentTarget","assess","addListener","constuctor","addHandler","qh","matches","removeHandler","h","removeListener","action","Util","queries","browserIsIncapable","shouldDegrade","slidesOnLeft","slidesOnRight","siblingDirection","getTotalSlides","getTrackAnimateCSS","checkSpecKeys","getSlideCount","checkNavigable","getNavigableIndexes","getSwipeDirection","getWidth","lazySlidesOnRight","lazySlidesOnLeft","getRequiredLazySlides","onDemandSlides","requiredSlides","offsetWidth","offsetHeight","xDist","yDist","r","swipeAngle","atan2","PI","canGo","newObject","centerPaddingAdj","finalSlide","animationLeft","finalLeft","animationSlide","indexOffset","previousInt","slideOffset","tagName","keyCode","touches","pageX","clientX","pageY","clientY","curLeft","swipeLength","sqrt","pow","verticalSwipeLength","positionOffset","swipeDirection","touchSwipeLength","onSwipe","minSwipe","counter","indexes","navigables","prevNavigable","n","swipedSlide","from","every","offsetTop","offsetLeft","currentIndex","dataset","keysArray","error","trackHeight","trackChildren","WebkitTransform","transform","msTransform","marginTop","marginLeft","targetLeft","slidesToOffset","targetSlideIndex","trackElem","childNodes","_ref2"],"mappings":"4EAAA,IAAIA,EAAQ,EAAQ,QAEpB,SAASC,EAAcC,GACnB,OAAOF,EAAMG,cAAc,MAAMD,EAAMF,EAAMG,cAAc,IAAI,CAAC,KAAO,OAAO,SAAW,UAAU,YAAc,IAAI,UAAY,qBAAqB,CAACH,EAAMG,cAAc,SAAS,CAAC,GAAK,KAAK,GAAK,KAAK,EAAI,KAAK,IAAM,IAAIH,EAAMG,cAAc,OAAO,CAAC,EAAI,wCAAwC,IAAM,OAG9SF,EAAaG,aAAe,CAAC,QAAU,aAEvCC,EAAOC,QAAUL,EAEjBA,EAAaM,QAAUN,G,6IC8CRO,MA/Cf,YAKI,IAJHC,EAIE,EAJFA,KAIE,IAHFC,eAGE,MAPF,+HAOE,OAFFC,WAEE,EADFC,2BACE,MADmB,KACnB,EAEIC,EADYC,cAAVC,MACWC,MAAK,SAAAC,GAAI,OAAIA,EAAKC,eAAiBN,KAEtD,OACC,yBAAKO,GAAG,aAAaC,UAAU,gCAC9B,yBAAKA,UAAU,gBACd,yBAAKA,UAAU,qBACd,yBAAKA,UAAU,4CACd,yBAAKA,UAAU,wEACd,wBAAIA,UAAU,uFACZV,GAEDD,GAAQ,uBAAGW,UAAU,2BAA2BX,GACjD,uBAAGW,UAAU,iBAAb,yCACwC,IACvC,uBACCA,UAAU,0CACVC,KAAK,mBACLC,IAAI,WACJC,OAAO,UAJR,kBAFD,MAkBD,yBAAKH,UAAU,4DACd,kBAACI,EAAA,EAASX,EAAKY,Y,oCC1CtB,IAAIC,EAAmC,oBAAVC,QAAyBA,OAAOD,iBAAmBC,OAAOD,gBAAgBE,KAAKD,SAA8B,oBAAZE,UAA8D,mBAA5BA,SAASH,iBAAiCG,SAASH,gBAAgBE,KAAKC,UACpOC,EAAQ,IAAIC,WAAW,IAEZ,SAASC,IACtB,IAAKN,EACH,MAAM,IAAIO,MAAM,4GAGlB,OAAOP,EAAgBI,GCPzB,IAFA,IAAII,EAAY,GAEP,EAAI,EAAG,EAAI,MAAO,EACzBA,EAAU,IAAM,EAAI,KAAOC,SAAS,IAAIC,OAAO,GAUlC,MAPf,SAAqBC,EAAKC,GACxB,IAAIC,EAAID,GAAU,EACdE,EAAMN,EAEV,MAAO,CAACM,EAAIH,EAAIE,MAAOC,EAAIH,EAAIE,MAAOC,EAAIH,EAAIE,MAAOC,EAAIH,EAAIE,MAAO,IAAKC,EAAIH,EAAIE,MAAOC,EAAIH,EAAIE,MAAO,IAAKC,EAAIH,EAAIE,MAAOC,EAAIH,EAAIE,MAAO,IAAKC,EAAIH,EAAIE,MAAOC,EAAIH,EAAIE,MAAO,IAAKC,EAAIH,EAAIE,MAAOC,EAAIH,EAAIE,MAAOC,EAAIH,EAAIE,MAAOC,EAAIH,EAAIE,MAAOC,EAAIH,EAAIE,MAAOC,EAAIH,EAAIE,OAAOE,KAAK,KCYpQ,IAvBf,SAAYC,EAASL,EAAKC,GACxB,IAAIC,EAAIF,GAAOC,GAAU,EAEH,iBAAXI,IACTL,EAAkB,WAAZK,EAAuB,IAAIC,MAAM,IAAM,KAC7CD,EAAU,MAIZ,IAAIE,GADJF,EAAUA,GAAW,IACFG,SAAWH,EAAQV,KAAOA,KAK7C,GAHAY,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,GAAVA,EAAK,GAAY,IAEvBP,EACF,IAAK,IAAIS,EAAK,EAAGA,EAAK,KAAMA,EAC1BT,EAAIE,EAAIO,GAAMF,EAAKE,GAIvB,OAAOT,GAAO,EAAYO,K,oCCrB5BG,OAAOC,eAAe1C,EAAS,aAAc,CAC3C2C,OAAO,IAET3C,EAAiB,aAAI,EAErB,IAAI4C,EAASC,EAAuB,EAAQ,SAExCC,EAAe,EAAQ,QAEvBC,EAAWF,EAAuB,EAAQ,SAE1CG,EAAgBH,EAAuB,EAAQ,SAE/CI,EAAoB,EAAQ,QAEhC,SAASJ,EAAuBK,GAC9B,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnC,QAAWA,GAIf,SAASE,EAAQF,GAWf,OATEE,EADoB,mBAAXC,QAAoD,iBAApBA,OAAOC,SACtC,SAAiBJ,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,mBAAXG,QAAyBH,EAAIK,cAAgBF,QAAUH,IAAQG,OAAOG,UAAY,gBAAkBN,IAI9GA,GAGjB,SAASO,IAeP,OAdAA,EAAWhB,OAAOiB,QAAU,SAAUzC,GACpC,IAAK,IAAIgB,EAAI,EAAGA,EAAI0B,UAAUC,OAAQ3B,IAAK,CACzC,IAAI4B,EAASF,UAAU1B,GAEvB,IAAK,IAAI6B,KAAOD,EACVpB,OAAOe,UAAUO,eAAeC,KAAKH,EAAQC,KAC/C7C,EAAO6C,GAAOD,EAAOC,IAK3B,OAAO7C,IAGOgD,MAAMC,KAAMP,WAG9B,SAASQ,EAAQC,EAAQC,GACvB,IAAIC,EAAO7B,OAAO6B,KAAKF,GAEvB,GAAI3B,OAAO8B,sBAAuB,CAChC,IAAIC,EAAU/B,OAAO8B,sBAAsBH,GACvCC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GACrD,OAAOjC,OAAOkC,yBAAyBP,EAAQM,GAAKE,eAEtDN,EAAKO,KAAKZ,MAAMK,EAAME,GAGxB,OAAOF,EAGT,SAASQ,EAAc7D,GACrB,IAAK,IAAIgB,EAAI,EAAGA,EAAI0B,UAAUC,OAAQ3B,IAAK,CACzC,IAAI4B,EAAyB,MAAhBF,UAAU1B,GAAa0B,UAAU1B,GAAK,GAE/CA,EAAI,EACNkC,EAAQN,GAAQ,GAAMkB,SAAQ,SAAUjB,GACtCkB,EAAgB/D,EAAQ6C,EAAKD,EAAOC,OAE7BrB,OAAOwC,0BAChBxC,OAAOyC,iBAAiBjE,EAAQwB,OAAOwC,0BAA0BpB,IAEjEM,EAAQN,GAAQkB,SAAQ,SAAUjB,GAChCrB,OAAOC,eAAezB,EAAQ6C,EAAKrB,OAAOkC,yBAAyBd,EAAQC,OAKjF,OAAO7C,EAST,SAASkE,EAAkBlE,EAAQrB,GACjC,IAAK,IAAIqC,EAAI,EAAGA,EAAIrC,EAAMgE,OAAQ3B,IAAK,CACrC,IAAImD,EAAaxF,EAAMqC,GACvBmD,EAAWR,WAAaQ,EAAWR,aAAc,EACjDQ,EAAWC,cAAe,EACtB,UAAWD,IAAYA,EAAWE,UAAW,GACjD7C,OAAOC,eAAezB,EAAQmE,EAAWtB,IAAKsB,IAkBlD,SAASG,EAAgBC,GAIvB,OAHAD,EAAkB9C,OAAOgD,eAAiBhD,OAAOiD,eAAiB,SAAyBF,GACzF,OAAOA,EAAEG,WAAalD,OAAOiD,eAAeF,KAEvBA,GAGzB,SAASI,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAkBT,SAASE,EAAgBP,EAAGQ,GAM1B,OALAD,EAAkBtD,OAAOgD,gBAAkB,SAAyBD,EAAGQ,GAErE,OADAR,EAAEG,UAAYK,EACPR,IAGcA,EAAGQ,GAG5B,SAAShB,EAAgB9B,EAAKY,EAAKnB,GAYjC,OAXImB,KAAOZ,EACTT,OAAOC,eAAeQ,EAAKY,EAAK,CAC9BnB,MAAOA,EACPiC,YAAY,EACZS,cAAc,EACdC,UAAU,IAGZpC,EAAIY,GAAOnB,EAGNO,EAGT,IAAI+C,GAAU,EAAIhD,EAAkBiD,cAAgB,EAAQ,QAExDC,EAAsB,SAAUC,GAGlC,SAASD,EAAOvG,GACd,IAAIyG,EAmCJ,OA7HJ,SAAyBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,qCA0FpBC,CAAgBvC,KAAMiC,GAEtBE,EAxEJ,SAAoCR,EAAM7B,GACxC,OAAIA,GAA2B,WAAlBZ,EAAQY,IAAsC,mBAATA,EAI3C4B,EAAuBC,GAHrB7B,EAsEC0C,CAA2BxC,KAAMqB,EAAgBY,GAAQnC,KAAKE,KAAMtE,IAE5EoF,EAAgBY,EAAuBS,GAAQ,yBAAyB,SAAUM,GAChF,OAAON,EAAMO,YAAcD,KAG7B3B,EAAgBY,EAAuBS,GAAQ,aAAa,WAC1D,OAAOA,EAAMO,YAAYC,eAG3B7B,EAAgBY,EAAuBS,GAAQ,aAAa,WAC1D,OAAOA,EAAMO,YAAYE,eAG3B9B,EAAgBY,EAAuBS,GAAQ,aAAa,SAAUU,GACpE,IAAIC,EAAcrD,UAAUC,OAAS,QAAsBqD,IAAjBtD,UAAU,IAAmBA,UAAU,GACjF,OAAO0C,EAAMO,YAAYM,UAAUH,EAAOC,MAG5ChC,EAAgBY,EAAuBS,GAAQ,cAAc,WAC3D,OAAOA,EAAMO,YAAYO,MAAM,aAGjCnC,EAAgBY,EAAuBS,GAAQ,aAAa,WAC1D,OAAOA,EAAMO,YAAYQ,SAAS,WAGpCf,EAAMgB,MAAQ,CACZC,WAAY,MAEdjB,EAAMkB,yBAA2B,GAC1BlB,EA7GX,IAAsBE,EAAaiB,EAAYC,EA8S7C,OAjRF,SAAmBC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAInB,UAAU,sDAGtBkB,EAASlE,UAAYf,OAAOmF,OAAOD,GAAcA,EAAWnE,UAAW,CACrED,YAAa,CACXZ,MAAO+E,EACPpC,UAAU,EACVD,cAAc,KAGdsC,GAAY5B,EAAgB2B,EAAUC,GA8B1CE,CAAU1B,EAAQC,GAvEEG,EAgHPJ,GAhHoBqB,EAgHZ,CAAC,CACpB1D,IAAK,QACLnB,MAAO,SAAemF,EAAOC,GAE3B9B,EAAQ+B,SAASF,EAAOC,GAExB7D,KAAKqD,yBAAyB1C,KAAK,CACjCiD,MAAOA,EACPC,QAASA,MAIZ,CACDjE,IAAK,4BACLnB,MAAO,WACL,IAAIsF,EAAS/D,KAOb,GAAIA,KAAKtE,MAAMsI,WAAY,CACzB,IAAIC,EAAcjE,KAAKtE,MAAMsI,WAAWE,KAAI,SAAUC,GACpD,OAAOA,EAAQf,cAGjBa,EAAYG,MAAK,SAAUC,EAAGC,GAC5B,OAAOD,EAAIC,KAEbL,EAAYpD,SAAQ,SAAUuC,EAAYmB,GAExC,IAAIC,EAGFA,EADY,IAAVD,GACO,EAAI1F,EAAkB,SAAG,CAChC4F,SAAU,EACVC,SAAUtB,KAGH,EAAIvE,EAAkB,SAAG,CAChC4F,SAAUR,EAAYM,EAAQ,GAAK,EACnCG,SAAUtB,KAKd,EAAIrE,EAAkBiD,cAAgB+B,EAAOY,MAAMH,GAAQ,WACzDT,EAAOa,SAAS,CACdxB,WAAYA,UAMlB,IAAIQ,GAAQ,EAAI/E,EAAkB,SAAG,CACnC4F,SAAUR,EAAYY,OAAO,GAAG,MAElC,EAAI9F,EAAkBiD,cAAgBhC,KAAK2E,MAAMf,GAAO,WACtDG,EAAOa,SAAS,CACdxB,WAAY,aAKnB,CACDxD,IAAK,uBACLnB,MAAO,WACLuB,KAAKqD,yBAAyBxC,SAAQ,SAAU7B,GAC9C+C,EAAQ+C,WAAW9F,EAAI4E,MAAO5E,EAAI6E,cAGrC,CACDjE,IAAK,SACLnB,MAAO,WACL,IAEIsG,EACAC,EAHAC,EAASjF,MASX+E,EAJE/E,KAAKmD,MAAMC,WAIuB,aAHpC4B,EAAWhF,KAAKtE,MAAMsI,WAAWzD,QAAO,SAAU2E,GAChD,OAAOA,EAAK9B,aAAe6B,EAAO9B,MAAMC,eAEtB,GAAG2B,SAAyB,UAAYnE,EAAc,GAAI9B,EAAuB,QAAG,GAAIkB,KAAKtE,MAAO,GAAIsJ,EAAS,GAAGD,UAE7HnE,EAAc,GAAI9B,EAAuB,QAAG,GAAIkB,KAAKtE,QAIrDyJ,aACPJ,EAASK,eAIbL,EAASK,eAAiB,GAIxBL,EAASM,OACPN,EAASO,aAITP,EAASK,eAIbL,EAASO,aAAe,EACxBP,EAASK,eAAiB,GAI5B,IAAIG,EAAW7G,EAAgB,QAAE8G,SAASC,QAAQzF,KAAKtE,MAAM6J,UAI7DA,EAAWA,EAAShF,QAAO,SAAUmF,GACnC,MAAqB,iBAAVA,IACAA,EAAMC,SAGRD,KAGPX,EAASa,gBAAkBb,EAASc,KAAO,GAAKd,EAASe,aAAe,KAC1EC,QAAQC,KAAK,0EACbjB,EAASa,eAAgB,GAM3B,IAHA,IAAIK,EAAc,GACdC,EAAe,KAEVnI,EAAI,EAAGA,EAAIwH,EAAS7F,OAAQ3B,GAAKgH,EAASc,KAAOd,EAASe,aAAc,CAG/E,IAFA,IAAIK,EAAW,GAENC,EAAIrI,EAAGqI,EAAIrI,EAAIgH,EAASc,KAAOd,EAASe,aAAcM,GAAKrB,EAASe,aAAc,CAGzF,IAFA,IAAIO,EAAM,GAEDC,EAAIF,EAAGE,EAAIF,EAAIrB,EAASe,eAC3Bf,EAASa,eAAiBL,EAASe,GAAG5K,MAAM6K,QAC9CL,EAAeX,EAASe,GAAG5K,MAAM6K,MAAMC,SAGrCF,GAAKf,EAAS7F,SAL2B4G,GAAK,EAMlDD,EAAI1F,KAAKjC,EAAgB,QAAE+H,aAAalB,EAASe,GAAI,CACnD1G,IAAK,IAAM7B,EAAI,GAAKqI,EAAIE,EACxBI,UAAW,EACXH,MAAO,CACLC,MAAO,GAAGG,OAAO,IAAM5B,EAASe,aAAc,KAC9Cc,QAAS,mBAKfT,EAASxF,KAAKjC,EAAgB,QAAE/C,cAAc,MAAO,CACnDiE,IAAK,GAAK7B,EAAIqI,GACbC,IAGDtB,EAASa,cACXK,EAAYtF,KAAKjC,EAAgB,QAAE/C,cAAc,MAAO,CACtDiE,IAAK7B,EACLwI,MAAO,CACLC,MAAON,IAERC,IAEHF,EAAYtF,KAAKjC,EAAgB,QAAE/C,cAAc,MAAO,CACtDiE,IAAK7B,GACJoI,IAIP,GAAiB,YAAbpB,EAAwB,CAC1B,IAAInI,EAAY,mBAAqBoD,KAAKtE,MAAMkB,WAAa,IAC7D,OAAO8B,EAAgB,QAAE/C,cAAc,MAAO,CAC5CiB,UAAWA,GACVqJ,GAKL,OAJWA,EAAYvG,QAAUqF,EAASO,eACxCP,EAAS8B,SAAU,GAGdnI,EAAgB,QAAE/C,cAAciD,EAAakI,YAAavH,EAAS,CACxEgH,MAAOvG,KAAKtE,MAAM6K,MAClB9D,IAAKzC,KAAK+G,uBACThC,GAAWkB,QAzSFhF,EAAkBoB,EAAY/C,UAAWgE,GACrDC,GAAatC,EAAkBoB,EAAakB,GA4SzCtB,EAxOiB,CAyOxBvD,EAAgB,QAAEsI,WAEpBlL,EAAiB,QAAImG,G,wBC1ZrB,YAUA,IASIgF,EAAS,aAGTC,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAeC,SAGfC,EAA8B,iBAAVC,GAAsBA,GAAUA,EAAOjJ,SAAWA,QAAUiJ,EAGhFC,EAA0B,iBAAR9F,MAAoBA,MAAQA,KAAKpD,SAAWA,QAAUoD,KAGxE+F,EAAOH,GAAcE,GAAYE,SAAS,cAATA,GAUjCC,EAPcrJ,OAAOe,UAOQ3B,SAG7BkK,EAAYC,KAAKC,IACjBC,EAAYF,KAAKG,IAkBjBC,EAAM,WACR,OAAOR,EAAKS,KAAKD,OAkNnB,SAASE,EAAS3J,GAChB,IAAI4J,SAAc5J,EAClB,QAASA,IAAkB,UAAR4J,GAA4B,YAARA,GA8EzC,SAASC,EAAS7J,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAGT,GAjCF,SAAkBA,GAChB,MAAuB,iBAATA,GAvBhB,SAAsBA,GACpB,QAASA,GAAyB,iBAATA,EAsBU8J,CAAa9J,IAhUlC,mBAgU4CmJ,EAAe9H,KAAKrB,GAgC1E+J,CAAS/J,GACX,OApWM,IAuWR,GAAI2J,EAAS3J,GAAQ,CACnB,IAAIgK,EAAgC,mBAAjBhK,EAAMiK,QAAwBjK,EAAMiK,UAAYjK,EACnEA,EAAQ2J,EAASK,GAASA,EAAQ,GAAKA,EAGzC,GAAoB,iBAAThK,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAGhCA,EAAQA,EAAMkK,QAAQ1B,EAAQ,IAC9B,IAAI2B,EAAWzB,EAAW0B,KAAKpK,GAC/B,OAAOmK,GAAYxB,EAAUyB,KAAKpK,GAAS4I,EAAa5I,EAAMoG,MAAM,GAAI+D,EAAW,EAAI,GAAK1B,EAAW2B,KAAKpK,GAlXpG,KAkXoHA,EAG9H5C,EAAOC,QA/PP,SAAkBgN,EAAMC,EAAM7K,GAC5B,IAAI8K,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAAiB,EACjBC,GAAU,EACVC,GAAS,EACTC,GAAW,EAEf,GAAmB,mBAARX,EACT,MAAM,IAAIxG,UAtIQ,uBAkJpB,SAASoH,EAAWC,GAClB,IAAIC,EAAOZ,EACPa,EAAUZ,EAId,OAHAD,EAAWC,OAAWlG,EACtBuG,EAAiBK,EACjBR,EAASL,EAAK/I,MAAM8J,EAASD,GAI/B,SAASE,EAAYH,GAMnB,OAJAL,EAAiBK,EAEjBP,EAAUW,WAAWC,EAAcjB,GAE5BQ,EAAUG,EAAWC,GAAQR,EAUtC,SAASc,EAAaN,GACpB,IAAIO,EAAoBP,EAAON,EAK/B,YAAwBtG,IAAjBsG,GAA8Ba,GAAqBnB,GAAQmB,EAAoB,GAAKV,GAJjEG,EAAOL,GAI2FJ,EAG9H,SAASc,IACP,IAAIL,EAAOzB,IAEX,GAAI+B,EAAaN,GACf,OAAOQ,EAAaR,GAItBP,EAAUW,WAAWC,EAxBvB,SAAuBL,GACrB,IAEIR,EAASJ,GAFWY,EAAON,GAG/B,OAAOG,EAASxB,EAAUmB,EAAQD,GAFRS,EAAOL,IAEkCH,EAoBhCiB,CAAcT,IAGnD,SAASQ,EAAaR,GAIpB,OAHAP,OAAUrG,EAGN0G,GAAYT,EACPU,EAAWC,IAGpBX,EAAWC,OAAWlG,EACfoG,GAgBT,SAASkB,IACP,IAAIV,EAAOzB,IACPoC,EAAaL,EAAaN,GAK9B,GAJAX,EAAWvJ,UACXwJ,EAAWjJ,KACXqJ,EAAeM,EAEXW,EAAY,CACd,QAAgBvH,IAAZqG,EACF,OAAOU,EAAYT,GAGrB,GAAIG,EAGF,OADAJ,EAAUW,WAAWC,EAAcjB,GAC5BW,EAAWL,GAQtB,YAJgBtG,IAAZqG,IACFA,EAAUW,WAAWC,EAAcjB,IAG9BI,EAKT,OA3GAJ,EAAOT,EAASS,IAAS,EAErBX,EAASlK,KACXqL,IAAYrL,EAAQqL,QAEpBL,GADAM,EAAS,YAAatL,GACH2J,EAAUS,EAASpK,EAAQgL,UAAY,EAAGH,GAAQG,EACrEO,EAAW,aAAcvL,IAAYA,EAAQuL,SAAWA,GAmG1DY,EAAUE,OAvCV,gBACkBxH,IAAZqG,GACFoB,aAAapB,GAGfE,EAAiB,EACjBN,EAAWK,EAAeJ,EAAWG,OAAUrG,GAkCjDsH,EAAUI,MA/BV,WACE,YAAmB1H,IAAZqG,EAAwBD,EAASgB,EAAajC,MA+BhDmC,K,wDC5PT9L,OAAOC,eAAe1C,EAAS,aAAc,CAC3C2C,OAAO,IAET3C,EAAiB,aAAI,EAErB,IAEgCkD,EAF5BN,GAE4BM,EAFI,EAAQ,UAG5BA,EAAIC,WAAaD,EAAM,CACnC,QAAWA,GAIf,IA4DI0L,EA5De,CACjBC,eAAe,EACfC,gBAAgB,EAChBC,YAAa,KACbC,WAAY,SAAoBC,GAC9B,OAAOrM,EAAgB,QAAE/C,cAAc,KAAM,CAC3C4K,MAAO,CACLK,QAAS,UAEVmE,IAELC,QAAQ,EACRC,UAAU,EACVC,cAAe,IACfC,aAAc,KACdhG,YAAY,EACZiG,cAAe,OACfxO,UAAW,GACXyO,QAAS,OACTC,aAAc,SAAsBvN,GAClC,OAAOW,EAAgB,QAAE/C,cAAc,SAAU,KAAMoC,EAAI,IAE7DgN,MAAM,EACNQ,UAAW,aACXC,WAAW,EACXC,OAAQ,SACRC,aAAc,IACdrG,MAAM,EACNsG,eAAe,EACfC,UAAU,EACVC,aAAc,EACdC,SAAU,KACVC,UAAW,KACXC,OAAQ,KACRC,OAAQ,KACRC,gBAAiB,KACjBC,SAAU,KACVC,kBAAkB,EAClBC,cAAc,EACdC,cAAc,EACdC,UAAW,KACXvI,WAAY,KACZ6B,KAAM,EACN2G,KAAK,EACL3J,MAAO,MACPiD,aAAc,EACdV,eAAgB,EAChBE,aAAc,EACdmH,MAAO,IACPC,OAAO,EACPC,WAAY,KACZC,cAAc,EACdC,WAAW,EACXC,eAAgB,EAChBC,QAAQ,EACRC,cAAc,EACdpH,eAAe,EACfqH,UAAU,EACVC,gBAAgB,GAGlBpR,EAAiB,QAAI4O,G,mBCtErB7O,EAAOC,QANY,SAAsBqR,GACvC,OAAOA,EAAIxE,QAAQ,UAAU,SAAUyE,GACrC,MAAO,IAAMA,EAAMC,iBAClBA,gB,kCCHL,0BAgBe/Q,IAZf,WASC,OARagR,yBAAe,YAQhBjR,O,qBCZbR,EAAOC,QAAU,CAAC,YAAc,0CAA0C,UAAY,wCAAwC,YAAc,0CAA0C,iBAAmB,iD,uGCEzM,SAASkB,EAAT,GAII,IAAD,IAHFuQ,iBAGE,MAHU,eAGV,MAFFC,eAEE,MAFQ,uDAER,EACIC,EADJ,EADFC,aAE8B,IACxBC,EAAoBJ,EAAU5E,QAAQ,MAAO,IAC7CiF,EAASC,mBAHb,EAIwBC,mBAAS,CAAEC,WAAYN,IAA1ClH,EAJL,KAIYyH,EAJZ,KAMIC,EAASC,uBAAY,WAC1BF,EAAS,CAAED,WAAYN,MACrB,IAEGU,EAAYD,uBAAY,SAAAE,GACR,+BAAjBA,EAAMC,QAA0D,KAAfD,EAAME,MAC1DvE,YAAW,WACViE,EAAS,CAAEP,OAAQ,WAGnB,IAeH,OAbAc,qBAAU,WACT,IAAMC,EAAQZ,EAAOa,QAMrB,OALIC,SACHF,EAAMG,iBAAiB,OAAQV,GAC/BS,OAAOC,iBAAiB,UAAWR,IAG7B,WACNK,EAAMI,oBAAoB,OAAQX,GAClCS,OAAOE,oBAAoB,UAAWT,MAErC,CAACF,EAAQE,IAGX,4BACCxR,GAAIgR,EACJlL,IAAKmL,EACLiB,MAAOtB,EACPuB,IAAKtB,EACLjH,MAAOA,EACP3J,UAAU,kCACVmS,UAAU,KACVC,SAAS,WACTxI,MAAM,OACNiH,OAAO,OACPwB,aAAa,IACbC,YAAY,IACZC,YAAY,IACZC,oBAAoB,KACpBC,kBAAkB,OAUNC,qBAAKtS,I,mBCtBpBnB,EAAOC,QAAU,CACfyT,WALF,SAAoBxS,GAClB,MAAyB,mBAAXA,GAKdyS,QAjBF,SAAiBzS,GACf,MAAmD,mBAA5CwB,OAAOe,UAAU3B,SAASoC,MAAMhD,IAiBvC0S,KAvCF,SAAcC,EAAYC,GAKxB,IAJA,IAAI5R,EAAI,EACJ2B,EAASgQ,EAAWhQ,OAGhB3B,EAAI2B,IAGG,IAFNiQ,EAAGD,EAAW3R,GAAIA,GADPA,S,kCCTtBQ,OAAOC,eAAe1C,EAAS,aAAc,CAC3C2C,OAAO,IAET3C,EAAQ8T,UAAY9T,EAAQ+T,eAAY,EAExC,IAAInR,EAASC,EAAuB,EAAQ,SAExCmR,EAAcnR,EAAuB,EAAQ,SAE7CI,EAAoB,EAAQ,QAEhC,SAASJ,EAAuBK,GAC9B,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnC,QAAWA,GAIf,SAASE,EAAQF,GAWf,OATEE,EADoB,mBAAXC,QAAoD,iBAApBA,OAAOC,SACtC,SAAiBJ,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,mBAAXG,QAAyBH,EAAIK,cAAgBF,QAAUH,IAAQG,OAAOG,UAAY,gBAAkBN,IAI9GA,GAGjB,SAASO,IAeP,OAdAA,EAAWhB,OAAOiB,QAAU,SAAUzC,GACpC,IAAK,IAAIgB,EAAI,EAAGA,EAAI0B,UAAUC,OAAQ3B,IAAK,CACzC,IAAI4B,EAASF,UAAU1B,GAEvB,IAAK,IAAI6B,KAAOD,EACVpB,OAAOe,UAAUO,eAAeC,KAAKH,EAAQC,KAC/C7C,EAAO6C,GAAOD,EAAOC,IAK3B,OAAO7C,IAGOgD,MAAMC,KAAMP,WAG9B,SAASQ,EAAQC,EAAQC,GACvB,IAAIC,EAAO7B,OAAO6B,KAAKF,GAEvB,GAAI3B,OAAO8B,sBAAuB,CAChC,IAAIC,EAAU/B,OAAO8B,sBAAsBH,GACvCC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GACrD,OAAOjC,OAAOkC,yBAAyBP,EAAQM,GAAKE,eAEtDN,EAAKO,KAAKZ,MAAMK,EAAME,GAGxB,OAAOF,EAGT,SAASQ,EAAc7D,GACrB,IAAK,IAAIgB,EAAI,EAAGA,EAAI0B,UAAUC,OAAQ3B,IAAK,CACzC,IAAI4B,EAAyB,MAAhBF,UAAU1B,GAAa0B,UAAU1B,GAAK,GAE/CA,EAAI,EACNkC,EAAQN,GAAQ,GAAMkB,SAAQ,SAAUjB,GACtCkB,EAAgB/D,EAAQ6C,EAAKD,EAAOC,OAE7BrB,OAAOwC,0BAChBxC,OAAOyC,iBAAiBjE,EAAQwB,OAAOwC,0BAA0BpB,IAEjEM,EAAQN,GAAQkB,SAAQ,SAAUjB,GAChCrB,OAAOC,eAAezB,EAAQ6C,EAAKrB,OAAOkC,yBAAyBd,EAAQC,OAKjF,OAAO7C,EAGT,SAAS+D,EAAgB9B,EAAKY,EAAKnB,GAYjC,OAXImB,KAAOZ,EACTT,OAAOC,eAAeQ,EAAKY,EAAK,CAC9BnB,MAAOA,EACPiC,YAAY,EACZS,cAAc,EACdC,UAAU,IAGZpC,EAAIY,GAAOnB,EAGNO,EAGT,SAASuD,EAAgBH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,qCAIxB,SAASrB,EAAkBlE,EAAQrB,GACjC,IAAK,IAAIqC,EAAI,EAAGA,EAAIrC,EAAMgE,OAAQ3B,IAAK,CACrC,IAAImD,EAAaxF,EAAMqC,GACvBmD,EAAWR,WAAaQ,EAAWR,aAAc,EACjDQ,EAAWC,cAAe,EACtB,UAAWD,IAAYA,EAAWE,UAAW,GACjD7C,OAAOC,eAAezB,EAAQmE,EAAWtB,IAAKsB,IAIlD,SAAS6O,EAAa1N,EAAaiB,EAAYC,GAG7C,OAFID,GAAYrC,EAAkBoB,EAAY/C,UAAWgE,GACrDC,GAAatC,EAAkBoB,EAAakB,GACzClB,EAGT,SAASG,EAA2Bb,EAAM7B,GACxC,OAAIA,GAA2B,WAAlBZ,EAAQY,IAAsC,mBAATA,EAOpD,SAAgC6B,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EARAD,CAAuBC,GAHrB7B,EAcX,SAASuB,EAAgBC,GAIvB,OAHAD,EAAkB9C,OAAOgD,eAAiBhD,OAAOiD,eAAiB,SAAyBF,GACzF,OAAOA,EAAEG,WAAalD,OAAOiD,eAAeF,KAEvBA,GAGzB,SAASqC,EAAUH,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAInB,UAAU,sDAGtBkB,EAASlE,UAAYf,OAAOmF,OAAOD,GAAcA,EAAWnE,UAAW,CACrED,YAAa,CACXZ,MAAO+E,EACPpC,UAAU,EACVD,cAAc,KAGdsC,GAAY5B,EAAgB2B,EAAUC,GAG5C,SAAS5B,EAAgBP,EAAGQ,GAM1B,OALAD,EAAkBtD,OAAOgD,gBAAkB,SAAyBD,EAAGQ,GAErE,OADAR,EAAEG,UAAYK,EACPR,IAGcA,EAAGQ,GAG5B,IAAI+N,EAAyB,SAAUG,GAGrC,SAASH,IAGP,OAFAtN,EAAgBvC,KAAM6P,GAEfrN,EAA2BxC,KAAMqB,EAAgBwO,GAAW9P,MAAMC,KAAMP,YAwDjF,OA7DAkE,EAAUkM,EAAWG,GAQrBD,EAAaF,EAAW,CAAC,CACvBjQ,IAAK,eACLnB,MAAO,SAAsBP,EAAS+R,GAChCA,GACFA,EAAEC,iBAGJlQ,KAAKtE,MAAMyU,aAAajS,EAAS+R,KAElC,CACDrQ,IAAK,SACLnB,MAAO,WACL,IAAI2R,EAAc,CAChB,eAAe,EACf,cAAc,GAEZC,EAAcrQ,KAAKmQ,aAAa/S,KAAK4C,KAAM,CAC7CsQ,QAAS,cAGNtQ,KAAKtE,MAAMkQ,WAAyC,IAA5B5L,KAAKtE,MAAM6U,cAAsBvQ,KAAKtE,MAAM8U,YAAcxQ,KAAKtE,MAAM4J,gBAChG8K,EAAY,mBAAoB,EAChCC,EAAc,MAGhB,IAAII,EAAiB,CACnB7Q,IAAK,IACL,YAAa,OACbhD,WAAW,EAAIkT,EAAqB,SAAGM,GACvC7J,MAAO,CACLK,QAAS,SAEX8J,QAASL,GAEPM,EAAc,CAChBJ,aAAcvQ,KAAKtE,MAAM6U,aACzBC,WAAYxQ,KAAKtE,MAAM8U,YAazB,OATIxQ,KAAKtE,MAAM6Q,UACD7N,EAAgB,QAAE+H,aAAazG,KAAKtE,MAAM6Q,UAAW3L,EAAc,GAAI6P,EAAgB,GAAIE,IAE3FjS,EAAgB,QAAE/C,cAAc,SAAU4D,EAAS,CAC7DK,IAAK,IACLyI,KAAM,UACLoI,GAAiB,IAAK,gBAOxBZ,EA9DoB,CA+D3BnR,EAAgB,QAAEkS,eAEpB9U,EAAQ+T,UAAYA,EAEpB,IAAID,EAAyB,SAAUiB,GAGrC,SAASjB,IAGP,OAFArN,EAAgBvC,KAAM4P,GAEfpN,EAA2BxC,KAAMqB,EAAgBuO,GAAW7P,MAAMC,KAAMP,YAwDjF,OA7DAkE,EAAUiM,EAAWiB,GAQrBd,EAAaH,EAAW,CAAC,CACvBhQ,IAAK,eACLnB,MAAO,SAAsBP,EAAS+R,GAChCA,GACFA,EAAEC,iBAGJlQ,KAAKtE,MAAMyU,aAAajS,EAAS+R,KAElC,CACDrQ,IAAK,SACLnB,MAAO,WACL,IAAIqS,EAAc,CAChB,eAAe,EACf,cAAc,GAEZC,EAAc/Q,KAAKmQ,aAAa/S,KAAK4C,KAAM,CAC7CsQ,QAAS,UAGN,EAAIvR,EAAkBiS,WAAWhR,KAAKtE,SACzCoV,EAAY,mBAAoB,EAChCC,EAAc,MAGhB,IAAIE,EAAiB,CACnBrR,IAAK,IACL,YAAa,OACbhD,WAAW,EAAIkT,EAAqB,SAAGgB,GACvCvK,MAAO,CACLK,QAAS,SAEX8J,QAASK,GAEPJ,EAAc,CAChBJ,aAAcvQ,KAAKtE,MAAM6U,aACzBC,WAAYxQ,KAAKtE,MAAM8U,YAazB,OATIxQ,KAAKtE,MAAMqQ,UACDrN,EAAgB,QAAE+H,aAAazG,KAAKtE,MAAMqQ,UAAWnL,EAAc,GAAIqQ,EAAgB,GAAIN,IAE3FjS,EAAgB,QAAE/C,cAAc,SAAU4D,EAAS,CAC7DK,IAAK,IACLyI,KAAM,UACL4I,GAAiB,IAAK,YAOxBrB,EA9DoB,CA+D3BlR,EAAgB,QAAEkS,eAEpB9U,EAAQ8T,UAAYA,G,2KC1NLsB,IAzEW,SAAC,GAYpB,IAX4BC,EAW7B,EAXLC,iCACoCC,EAU/B,EAVLC,mCACsCC,EASjC,EATLC,qCACyBC,EAQpB,EARLC,wBAGqBC,GAKhB,EAPLC,+BAOK,EANLC,wBAMK,EALLC,qBAC4BC,EAIvB,EAJLC,2BACsBnD,EAGjB,EAHLoD,qBACsBC,EAEjB,EAFLC,qBACAC,EACK,EADLA,KAEMC,EAAiB,CACtBC,MAAsB,SAAfP,EAAwB,QAAyB,UAAfA,EAAyB,QAAU,SAG7E,OACC,kBAAC,IAAD,CACCQ,SAAWC,IACXC,UAAY,EACZC,WAAW,WACXC,KAAK,aAEL,6BACC/V,UAAYgW,IACXC,IAAOC,UADc,yBAEK3B,EAFL,QAEiBA,IAAQE,EAAW,EAAI,GACpD,WAATe,EAAoB,oBAAsB,IAE3C7L,MAAQ8L,GAGLH,EACF,kBAAC,IAAD,eAAOtV,UAAYiW,IAAOX,OAAaA,IAD7B,KAIX,yBAAKtV,UAAYiW,IAAOE,eACpBlE,EACF,wBAAIjS,UAAYgW,IACf,sDACAC,IAAOhE,QAELA,GALO,KASR8C,EACF,uBAAG/U,UAAYgW,IACd,OACAC,IAAOlB,OAELA,GALM,KASPF,EAAK5C,MACP,kBAAC,IAAD,CACCmE,GAAKC,IACLC,GAAKzB,EAAK0B,IACVC,OAAS7B,EACTxU,OAAS0U,EAAK1U,QAEZ0U,EAAK5C,OAPO,U,kCC3DrB,IAEgC7P,EAPhCT,OAAOC,eAAe1C,EAAS,aAAc,CAC3C2C,OAAO,IAET3C,EAAiB,aAAI,EAUrB,IAAI4O,IAN4B1L,EAFK,EAAQ,UAG7BA,EAAIC,WAAaD,EAAM,CACnC,QAAWA,IAIiB,QAChClD,EAAiB,QAAI4O,G,kCChBrB,oFAEA,SAASnL,IAeP,OAdAA,EAAWhB,OAAOiB,QAAU,SAAUzC,GACpC,IAAK,IAAIgB,EAAI,EAAGA,EAAI0B,UAAUC,OAAQ3B,IAAK,CACzC,IAAI4B,EAASF,UAAU1B,GAEvB,IAAK,IAAI6B,KAAOD,EACVpB,OAAOe,UAAUO,eAAeC,KAAKH,EAAQC,KAC/C7C,EAAO6C,GAAOD,EAAOC,IAK3B,OAAO7C,IAGOgD,MAAMC,KAAMP,WAwB9B,IAAI4T,EAAc,IAAIC,IAClBC,EAAU,IAAID,IACdE,EAAS,EAoBb,SAASC,EAAYvV,GACnB,OAAOK,OAAO6B,KAAKlC,GAASqC,OAAOmT,SAAStP,OAAOF,KAAI,SAAUtE,GAC/D,OAAOA,EAAM,KAAe,SAARA,GAhBL8H,EAgBgCxJ,EAAQwJ,OAdrD6L,EAAQI,IAAIjM,KAChB8L,GAAU,EACVD,EAAQK,IAAIlM,EAAM8L,EAAO7V,aAFK4V,EAAQM,IAAInM,IADxB,IAe+CxJ,EAAQ0B,IAhB3E,IAAmB8H,KAiBd/J,WA2CL,SAASmW,EAAQC,EAASC,EAAU9V,GAKlC,QAJgB,IAAZA,IACFA,EAAU,KAGP6V,EAAS,OAAO,aAErB,IAAIE,EA/CN,SAAwB/V,GAEtB,IAAIvB,EAAK8W,EAAYvV,GACjBkE,EAAWiR,EAAYQ,IAAIlX,GAE/B,IAAKyF,EAAU,CAEb,IAAI8R,EAAW,IAAIZ,IACfa,EAAW,IAAIC,sBAAqB,SAAUC,GAChDA,EAAQxT,SAAQ,SAAUyT,GACxB,IAAIC,EAIAC,EAASF,EAAMG,gBAAkBN,EAASO,WAAWC,MAAK,SAAUlC,GACtE,OAAO6B,EAAMM,mBAAqBnC,KAGhCvU,EAAQ2W,sBAA8C,IAApBP,EAAMQ,YAG1CR,EAAMQ,UAAYN,GAG4B,OAA/CD,EAAgBL,EAASL,IAAIS,EAAMvX,UAA4BwX,EAAc1T,SAAQ,SAAUmT,GAC9FA,EAASQ,EAAQF,WAGpBpW,GACHkE,EAAW,CACTzF,GAAIA,EACJwX,SAAUA,EACVD,SAAUA,GAEZb,EAAYO,IAAIjX,EAAIyF,GAGtB,OAAOA,EAUe2S,CAAe7W,GACjCvB,EAAKsX,EAAgBtX,GACrBwX,EAAWF,EAAgBE,SAC3BD,EAAWD,EAAgBC,SAG3Bc,EAAYd,EAASL,IAAIE,IAAY,GAQzC,OANKG,EAASP,IAAII,IAChBG,EAASN,IAAIG,EAASiB,GAGxBA,EAAUrU,KAAKqT,GACfG,EAASL,QAAQC,GACV,WAELiB,EAAUC,OAAOD,EAAUE,QAAQlB,GAAW,GAErB,IAArBgB,EAAUtV,SAEZwU,EAAiB,OAAEH,GACnBI,EAASgB,UAAUpB,IAGC,IAAlBG,EAAS9B,OAEX+B,EAASiB,aACT/B,EAAoB,OAAE1W,KAK5B,SAAS0Y,EAAgB3Z,GACvB,MAAiC,mBAAnBA,EAAM6J,SAOtB,IAAI+P,EAAsB,SAAUpT,GAxIpC,IAAwBsB,EAAUC,EA2IhC,SAAS6R,EAAO5Z,GACd,IAAIyG,EAkDJ,OAhDAA,EAAQD,EAAiBpC,KAAKE,KAAMtE,IAAUsE,MACxCuV,KAAO,KACbpT,EAAMqT,aAAe,KAErBrT,EAAMsT,WAAa,SAAUF,GACvBpT,EAAMoT,OAERpT,EAAMgT,YAEDI,GAASpT,EAAMzG,MAAMga,aAAgBvT,EAAMzG,MAAMia,MAEpDxT,EAAMyC,SAAS,CACb4P,SAAUrS,EAAMzG,MAAMka,cACtBtB,WAAOvR,KAKbZ,EAAMoT,KAAOA,GAAc,KAE3BpT,EAAM0T,eAGR1T,EAAM2T,aAAe,SAAUtB,EAAQF,GACjCE,GAAUrS,EAAMzG,MAAMga,aAExBvT,EAAMgT,YAGHE,EAAgBlT,EAAMzG,QAGzByG,EAAMyC,SAAS,CACb4P,OAAQA,EACRF,MAAOA,IAIPnS,EAAMzG,MAAMqa,UAEd5T,EAAMzG,MAAMqa,SAASvB,EAAQF,IAIjCnS,EAAMgB,MAAQ,CACZqR,SAAU9Y,EAAMka,cAChBtB,WAAOvR,GAEFZ,EA9LuBsB,EAyITvB,GAzIDsB,EAyIP8R,GAxINhW,UAAYf,OAAOmF,OAAOD,EAAWnE,WAC9CkE,EAASlE,UAAUD,YAAcmE,EACjCA,EAAS/B,UAAYgC,EA8LrB,IAAIuS,EAASV,EAAOhW,UAiEpB,OA/DA0W,EAAOC,mBAAqB,SAA4BC,GAElDA,EAAUxD,aAAe1S,KAAKtE,MAAMgX,YAAcwD,EAAUxO,OAAS1H,KAAKtE,MAAMgM,MAAQwO,EAAUzD,YAAczS,KAAKtE,MAAM+W,WAAayD,EAAUP,OAAS3V,KAAKtE,MAAMia,MAAQO,EAAUrB,kBAAoB7U,KAAKtE,MAAMmZ,iBAAmBqB,EAAUC,QAAUnW,KAAKtE,MAAMya,QAC3QnW,KAAKmV,YACLnV,KAAK6V,gBAITG,EAAOI,qBAAuB,WAC5BpW,KAAKmV,YACLnV,KAAKuV,KAAO,MAGdS,EAAOH,YAAc,WACnB,GAAK7V,KAAKuV,OAAQvV,KAAKtE,MAAMia,KAA7B,CACA,IAAIU,EAAcrW,KAAKtE,MACnB+W,EAAY4D,EAAY5D,UACxB/K,EAAO2O,EAAY3O,KACnBgL,EAAa2D,EAAY3D,WACzBmC,EAAkBwB,EAAYxB,gBAC9BsB,EAAQE,EAAYF,MACxBnW,KAAKwV,aAAe1B,EAAQ9T,KAAKuV,KAAMvV,KAAK8V,aAAc,CACxDrD,UAAWA,EACX/K,KAAMA,EACNgL,WAAYA,EAEZmC,gBAAiBA,EAEjBsB,MAAOA,MAIXH,EAAOb,UAAY,WACbnV,KAAKwV,eACPxV,KAAKwV,eAELxV,KAAKwV,aAAe,OAIxBQ,EAAOM,OAAS,WACd,IAAKjB,EAAgBrV,KAAKtE,OAAQ,CAChC,IAAI6a,EAAcvW,KAAKmD,MACnBqR,EAAS+B,EAAY/B,OACrBF,EAAQiC,EAAYjC,MACxB,OAAOtU,KAAKtE,MAAM6J,SAAS,CACzBiP,OAAQA,EACRF,MAAOA,EACP7R,IAAKzC,KAAKyV,aAId,IAAIe,EAAexW,KAAKtE,MACpB6J,EAAWiR,EAAajR,SACxByN,EAAKwD,EAAaxD,GAClByD,EAAMD,EAAaC,IACnB/a,EArPR,SAAuCiE,EAAQ+W,GAC7C,GAAc,MAAV/W,EAAgB,MAAO,GAC3B,IAEIC,EAAK7B,EAFLhB,EAAS,GACT4Z,EAAapY,OAAO6B,KAAKT,GAG7B,IAAK5B,EAAI,EAAGA,EAAI4Y,EAAWjX,OAAQ3B,IACjC6B,EAAM+W,EAAW5Y,GACb2Y,EAASxB,QAAQtV,IAAQ,IAC7B7C,EAAO6C,GAAOD,EAAOC,IAGvB,OAAO7C,EAyOO6Z,CAA8BJ,EAAc,CAAC,WAAY,KAAM,MAAO,cAAe,YAAa,OAAQ,aAAc,WAAY,OAAQ,kBAAmB,QAAS,kBAEpL,OAAoB,wBAAcxD,GAAMyD,GAAO,MAAOlX,EAAS,CAC7DkD,IAAKzC,KAAKyV,YACT/Z,GAAQ6J,IAGN+P,EA1HiB,CA2HxB,aASF,SAASuB,EAAUC,GACjB,IAAIC,OAAiB,IAAVD,EAAmB,GAAKA,EAC/BrE,EAAYsE,EAAKtE,UACjB0D,EAAQY,EAAKZ,MACbtB,EAAkBkC,EAAKlC,gBACvBnC,EAAaqE,EAAKrE,WAClBhL,EAAOqP,EAAKrP,KACZgO,EAAcqB,EAAKrB,YACnBC,EAAOoB,EAAKpB,KACZC,EAAgBmB,EAAKnB,cAErBT,EAAY,mBAEZ6B,EAAkB,mBAAS,CAC7BxC,SAAUoB,IAERzS,EAAQ6T,EAAgB,GACxBpS,EAAWoS,EAAgB,GAE3BC,EAAS,uBAAY,SAAU1B,QACPxS,IAAtBoS,EAAU1G,UACZ0G,EAAU1G,UACV0G,EAAU1G,aAAU1L,GAIlB4S,GAEAJ,IACFJ,EAAU1G,QAAUqF,EAAQyB,GAAM,SAAUf,EAAQF,GAClD1P,EAAS,CACP4P,OAAQA,EACRF,MAAOA,IAGLA,EAAMG,gBAAkBiB,GAAeP,EAAU1G,UAEnD0G,EAAU1G,UACV0G,EAAU1G,aAAU1L,KAErB,CACD2E,KAAMA,EACNgL,WAAYA,EACZD,UAAWA,EAEXoC,gBAAiBA,EAEjBsB,MAAOA,OAKb,CAEAhY,MAAMqR,QAAQiD,GAAaA,EAAU9U,WAAa8U,EAAW/K,EAAMgL,EAAYgD,EAAaC,EAAMd,EAAiBsB,IAGnH,qBAAU,WACHhB,EAAU1G,UAAWtL,EAAMmR,OAAUoB,GAAgBC,GAGxD/Q,EAAS,CACP4P,SAAUoB,OAIhB,IAAIzM,EAAS,CAAC8N,EAAQ9T,EAAMqR,OAAQrR,EAAMmR,OAK1C,OAHAnL,EAAO1G,IAAM0G,EAAO,GACpBA,EAAOqL,OAASrL,EAAO,GACvBA,EAAOmL,MAAQnL,EAAO,GACfA,EA9ETmM,EAAO4B,YAAc,SACrB5B,EAAO1Z,aAAe,CACpB6W,UAAW,EACXiD,aAAa,EACbE,eAAe,I,yMCtRXrD,EAAW,CAChB4E,KAAM,CAAE9S,EAAG,EAAG+S,WAAY,CAAEC,SAAU,KACtCC,OAAQ,CAAEjT,EAAG,UA+CCkT,MA5Cf,YASI,IAAD,IARFvE,UAQE,MARG,KAQH,EAPFzN,EAOE,EAPFA,SAOE,IANF3I,iBAME,MANU,2BAMV,MALF4a,eAKE,aAJF/E,iBAIE,MAJU,EAIV,MAHFC,kBAGE,MAHW,QAGX,MAFFN,YAEE,MAFK,eAEL,EADCqF,EACD,iFACoBZ,YAAU,CAAEpE,YAAWC,eAAtCjQ,EADL,KACU+R,EADV,KAEIkD,EAAgBF,GAAWhD,EAEjC,OACC,kBAACmD,EAAA,EAAD,eACC3E,GAAIA,EACJvQ,IAAKA,EACL7F,UAAWgW,IACV,uDACAhW,EACA,CAAE,mBAAoBA,EAAUgb,SAAS,eAEtCH,GAEJ,kBAAC,IAAOI,KAAR,CACCtF,SAAUA,EACViF,QAASE,EAAgB,OAAS,SAClC9a,UAAWgW,IAAW,iCAAkCR,KAEzD,8BAAO7M,M,4PCzCJ6R,EAAa,CAAEC,SAAU,GAAKS,KAAM,CAAC,IAAM,IAAM,IAAM,MAEhDzS,EAAO,CACnB0S,QAAS,CAAEC,QAAS,GACpBC,MAAO,CAAED,QAAS,EAAGZ,cACrBc,KAAM,CACLF,QAAS,EACTZ,WAAW,OAAD,QAAIC,SAAU,KAAQD,KAwBrB5E,EAAoB,CAChC2F,KAAM,CACLf,WAAY,CACX/O,KAAM,SACN+P,QAAS,IACTC,UAAW,GACXC,gBAAiB,GACjBC,cAAe,KAGjBC,KAAM,CACLpB,WAAY,CACXjB,MAAO,IACPkB,SAAU,MAKAoB,EAAgB,CAC5BN,KAAM,CACLO,SAAS,8CACTtB,WAAY,CACXjB,MAAO,GACPkB,SAAU,KAGZmB,KAAM,CACLE,SAAS,0CACTtB,WAAY,CACXjB,MAAO,EACPkB,SAAU,MAOAsB,EAAmB,CAC/BR,KAAM,CAELO,SAAS,gDACTtB,WAAY,CACXjB,MAAO,GACPkB,SAAU,KAGZmB,KAAM,CACLE,SAAS,kDACTtB,WAAY,CACXjB,MAAO,EACPkB,SAAU,MAKAuB,EAAe,CAC3BT,KAAM,CAAEH,QAAS,EAAG1T,EAAG,EAAG8S,WAAY,CAAEC,SAAU,KAClDmB,KAAM,CAAER,QAAS,EAAG1T,EAAG,KAGXuU,EAAiB,CAC7BV,KAAM,CAAEH,QAAS,EAAGc,MAAO,EAAG1B,WAAY,CAAEC,SAAU,GAAKlB,MAAO,IAClEqC,KAAM,CAAER,QAAS,EAAGc,MAAO,O,iMCxBbC,MA3Df,YAMI,IALHnc,EAKE,EALFA,UACAiS,EAIE,EAJFA,MACAqD,EAGE,EAHFA,MACA8G,EAEE,EAFFA,KAEE,IADFC,aACE,MADM,aACN,EACF,OACC,yBACCrc,UAAWgW,IACV,iDACAhW,IAGD,yBAAKA,UAAU,oDACd,yBAAKA,UAAU,oBACbsV,GACA,kBAACgH,EAAA,EAAD,eAAO3S,MAAO,CAAEC,MAAO,OAAQiH,OAAQ,SAAcyE,IAEtD,yBAAKtV,UAAU,8EACd,yBAAKA,UAAU,2CACd,yBAAKA,UAAU,oCACd,wBAAIA,UAAU,iFAAiFuc,wBAAyB,CAACC,OAAOvK,MAGjI,yBAAKjS,UAAU,6CACd,kBAAC2a,EAAA,EAAD,CAAgB3a,UAAU,qBAAqBwV,KAAK,QAClD6G,GAEF,kBAAChG,EAAA,EAAD,CACCC,GAAI8F,EACJpc,UAAU,wCAEV,kBAACyc,EAAA,EAAD,CACCzc,UAAU,mCACVqc,MAAM,YACNK,KAAMC,QAKT,kBAACtG,EAAA,EAAD,CAAMrW,UAAU,8BAA8BsW,GAAI8F,GACjD,yBAAKpc,UAAU,WAAf,qB,oCClDR2B,OAAOC,eAAe1C,EAAS,aAAc,CAC3C2C,OAAO,IAET3C,EAAQ0d,WAAQ,EAEhB,IAAI9a,EAASC,EAAuB,EAAQ,SAExCmR,EAAcnR,EAAuB,EAAQ,SAE7CI,EAAoB,EAAQ,QAEhC,SAASJ,EAAuBK,GAC9B,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnC,QAAWA,GAIf,SAASE,EAAQF,GAWf,OATEE,EADoB,mBAAXC,QAAoD,iBAApBA,OAAOC,SACtC,SAAiBJ,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,mBAAXG,QAAyBH,EAAIK,cAAgBF,QAAUH,IAAQG,OAAOG,UAAY,gBAAkBN,IAI9GA,GAGjB,SAASO,IAeP,OAdAA,EAAWhB,OAAOiB,QAAU,SAAUzC,GACpC,IAAK,IAAIgB,EAAI,EAAGA,EAAI0B,UAAUC,OAAQ3B,IAAK,CACzC,IAAI4B,EAASF,UAAU1B,GAEvB,IAAK,IAAI6B,KAAOD,EACVpB,OAAOe,UAAUO,eAAeC,KAAKH,EAAQC,KAC/C7C,EAAO6C,GAAOD,EAAOC,IAK3B,OAAO7C,IAGOgD,MAAMC,KAAMP,WAG9B,SAAS8C,EAAgBH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,qCAIxB,SAASrB,EAAkBlE,EAAQrB,GACjC,IAAK,IAAIqC,EAAI,EAAGA,EAAIrC,EAAMgE,OAAQ3B,IAAK,CACrC,IAAImD,EAAaxF,EAAMqC,GACvBmD,EAAWR,WAAaQ,EAAWR,aAAc,EACjDQ,EAAWC,cAAe,EACtB,UAAWD,IAAYA,EAAWE,UAAW,GACjD7C,OAAOC,eAAezB,EAAQmE,EAAWtB,IAAKsB,IAUlD,SAASsB,EAA2Bb,EAAM7B,GACxC,OAAIA,GAA2B,WAAlBZ,EAAQY,IAAsC,mBAATA,EAOpD,SAAgC6B,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EARAD,CAAuBC,GAHrB7B,EAcX,SAASuB,EAAgBC,GAIvB,OAHAD,EAAkB9C,OAAOgD,eAAiBhD,OAAOiD,eAAiB,SAAyBF,GACzF,OAAOA,EAAEG,WAAalD,OAAOiD,eAAeF,KAEvBA,GAkBzB,SAASO,EAAgBP,EAAGQ,GAM1B,OALAD,EAAkBtD,OAAOgD,gBAAkB,SAAyBD,EAAGQ,GAErE,OADAR,EAAEG,UAAYK,EACPR,IAGcA,EAAGQ,GAG5B,SAAS7B,EAAQC,EAAQC,GACvB,IAAIC,EAAO7B,OAAO6B,KAAKF,GAEvB,GAAI3B,OAAO8B,sBAAuB,CAChC,IAAIC,EAAU/B,OAAO8B,sBAAsBH,GACvCC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GACrD,OAAOjC,OAAOkC,yBAAyBP,EAAQM,GAAKE,eAEtDN,EAAKO,KAAKZ,MAAMK,EAAME,GAGxB,OAAOF,EAGT,SAASQ,EAAc7D,GACrB,IAAK,IAAIgB,EAAI,EAAGA,EAAI0B,UAAUC,OAAQ3B,IAAK,CACzC,IAAI4B,EAAyB,MAAhBF,UAAU1B,GAAa0B,UAAU1B,GAAK,GAE/CA,EAAI,EACNkC,EAAQN,GAAQ,GAAMkB,SAAQ,SAAUjB,GACtCkB,EAAgB/D,EAAQ6C,EAAKD,EAAOC,OAE7BrB,OAAOwC,0BAChBxC,OAAOyC,iBAAiBjE,EAAQwB,OAAOwC,0BAA0BpB,IAEjEM,EAAQN,GAAQkB,SAAQ,SAAUjB,GAChCrB,OAAOC,eAAezB,EAAQ6C,EAAKrB,OAAOkC,yBAAyBd,EAAQC,OAKjF,OAAO7C,EAGT,SAAS+D,EAAgB9B,EAAKY,EAAKnB,GAYjC,OAXImB,KAAOZ,EACTT,OAAOC,eAAeQ,EAAKY,EAAK,CAC9BnB,MAAOA,EACPiC,YAAY,EACZS,cAAc,EACdC,UAAU,IAGZpC,EAAIY,GAAOnB,EAGNO,EAIT,IAAIya,EAAkB,SAAyBC,GAC7C,IAAIC,EAAaC,EAAaC,EAC1BC,EAAcvV,EAsBlB,OAdAsV,GALEtV,EADEmV,EAAKlN,IACCkN,EAAKlJ,WAAa,EAAIkJ,EAAKnV,MAE3BmV,EAAKnV,OAGO,GAAKA,GAASmV,EAAKlJ,WAErCkJ,EAAKvU,YACP2U,EAAehS,KAAKiS,MAAML,EAAKpU,aAAe,GAC9CsU,GAAerV,EAAQmV,EAAKnJ,cAAgBmJ,EAAKlJ,YAAe,EAE5DjM,EAAQmV,EAAKnJ,aAAeuJ,EAAe,GAAKvV,GAASmV,EAAKnJ,aAAeuJ,IAC/EH,GAAc,IAGhBA,EAAcD,EAAKnJ,cAAgBhM,GAASA,EAAQmV,EAAKnJ,aAAemJ,EAAKpU,aAIxE,CACL,eAAe,EACf,eAAgBqU,EAChB,eAAgBC,EAChB,eAAgBC,EAChB,gBANiBtV,IAAUmV,EAAKnJ,eAmChCyJ,EAAS,SAAgBtU,EAAOuU,GAClC,OAAOvU,EAAM9F,KAAOqa,GAGlBC,EAAe,SAAsBR,GACvC,IAAI9Z,EACAua,EAAS,GACTC,EAAiB,GACjBC,EAAkB,GAElBC,EAAgB5b,EAAgB,QAAE8G,SAAS+U,MAAMb,EAAKnU,UAEtDiV,GAAa,EAAIzb,EAAkB0b,gBAAgBf,GACnDgB,GAAW,EAAI3b,EAAkB4b,cAAcjB,GAsGnD,OApGAhb,EAAgB,QAAE8G,SAAS3E,QAAQ6Y,EAAKnU,UAAU,SAAUqV,EAAMrW,GAChE,IAAImB,EACAmV,EAAsB,CACxBvK,QAAS,WACT/L,MAAOA,EACPa,eAAgBsU,EAAKtU,eACrBmL,aAAcmJ,EAAKnJ,cAInB7K,GADGgU,EAAK5N,UAAY4N,EAAK5N,UAAY4N,EAAKoB,eAAe5F,QAAQ3Q,IAAU,EACnEqW,EAEAlc,EAAgB,QAAE/C,cAAc,MAAO,MAGjD,IAAIof,EAtDY,SAAuBrB,GACzC,IAAInT,EAAQ,GAoBZ,YAlB2BxD,IAAvB2W,EAAK9T,gBAAsD,IAAvB8T,EAAK9T,gBAC3CW,EAAMC,MAAQkT,EAAKsB,YAGjBtB,EAAKrU,OACPkB,EAAM0U,SAAW,WAEbvB,EAAKzM,SACP1G,EAAM2U,KAAOxB,EAAKnV,MAAQ+C,SAASoS,EAAKyB,aAExC5U,EAAM6U,MAAQ1B,EAAKnV,MAAQ+C,SAASoS,EAAKsB,YAG3CzU,EAAMyR,QAAU0B,EAAKnJ,eAAiBmJ,EAAKnV,MAAQ,EAAI,EACvDgC,EAAM6Q,WAAa,WAAasC,EAAKjN,MAAQ,MAAQiN,EAAKrO,QAAvC,gBAAwEqO,EAAKjN,MAAQ,MAAQiN,EAAKrO,QACrH9E,EAAM8U,iBAAmB,WAAa3B,EAAKjN,MAAQ,MAAQiN,EAAKrO,QAAvC,gBAAwEqO,EAAKjN,MAAQ,MAAQiN,EAAKrO,SAGtH9E,EAiCY+U,CAAc1a,EAAc,GAAI8Y,EAAM,CACrDnV,MAAOA,KAELgX,EAAa7V,EAAMhK,MAAMkB,WAAa,GACtC4e,EAAe/B,EAAgB7Y,EAAc,GAAI8Y,EAAM,CACzDnV,MAAOA,KAqBT,GAlBA4V,EAAOxZ,KAAKjC,EAAgB,QAAE+H,aAAaf,EAAO,CAChD9F,IAAK,WAAaoa,EAAOtU,EAAOnB,GAChC,aAAcA,EACd3H,WAAW,EAAIkT,EAAqB,SAAG0L,EAAcD,GACrD7U,SAAU,KACV,eAAgB8U,EAAa,gBAC7BjV,MAAO3F,EAAc,CACnB6a,QAAS,QACR/V,EAAMhK,MAAM6K,OAAS,GAAI,GAAIwU,GAChCrK,QAAS,SAAiBT,GACxBvK,EAAMhK,OAASgK,EAAMhK,MAAMgV,SAAWhL,EAAMhK,MAAMgV,QAAQT,GAEtDyJ,EAAK/N,eACP+N,EAAK/N,cAAckP,OAKrBnB,EAAK9N,WAA0B,IAAd8N,EAAKrU,KAAgB,CACxC,IAAIqW,EAAapB,EAAgB/V,EAE7BmX,IAAc,EAAI3c,EAAkB4c,cAAcjC,IAASY,IAAkBZ,EAAKpU,gBACpF1F,GAAO8b,IAEIlB,IACT9U,EAAQkV,GAGVY,EAAe/B,EAAgB7Y,EAAc,GAAI8Y,EAAM,CACrDnV,MAAO3E,KAETwa,EAAezZ,KAAKjC,EAAgB,QAAE+H,aAAaf,EAAO,CACxD9F,IAAK,YAAcoa,EAAOtU,EAAO9F,GACjC,aAAcA,EACd8G,SAAU,KACV9J,WAAW,EAAIkT,EAAqB,SAAG0L,EAAcD,GACrD,eAAgBC,EAAa,gBAC7BjV,MAAO3F,EAAc,GAAI8E,EAAMhK,MAAM6K,OAAS,GAAI,GAAIwU,GACtDrK,QAAS,SAAiBT,GACxBvK,EAAMhK,OAASgK,EAAMhK,MAAMgV,SAAWhL,EAAMhK,MAAMgV,QAAQT,GAEtDyJ,EAAK/N,eACP+N,EAAK/N,cAAckP,QAMvBP,IAAkBZ,EAAKpU,gBACzB1F,EAAM0a,EAAgB/V,GAEZmW,IACRhV,EAAQkV,GAGVY,EAAe/B,EAAgB7Y,EAAc,GAAI8Y,EAAM,CACrDnV,MAAO3E,KAETya,EAAgB1Z,KAAKjC,EAAgB,QAAE+H,aAAaf,EAAO,CACzD9F,IAAK,aAAeoa,EAAOtU,EAAO9F,GAClC,aAAcA,EACd8G,SAAU,KACV9J,WAAW,EAAIkT,EAAqB,SAAG0L,EAAcD,GACrD,eAAgBC,EAAa,gBAC7BjV,MAAO3F,EAAc,GAAI8E,EAAMhK,MAAM6K,OAAS,GAAI,GAAIwU,GACtDrK,QAAS,SAAiBT,GACxBvK,EAAMhK,OAASgK,EAAMhK,MAAMgV,SAAWhL,EAAMhK,MAAMgV,QAAQT,GAEtDyJ,EAAK/N,eACP+N,EAAK/N,cAAckP,YAQ3BnB,EAAKlN,IACA4N,EAAezT,OAAOwT,EAAQE,GAAiBuB,UAE/CxB,EAAezT,OAAOwT,EAAQE,IAIrCb,EAAqB,SAAUxJ,GAGjC,SAASwJ,IAGP,OAFAjX,EAAgBvC,KAAMwZ,GAEfhX,EAA2BxC,KAAMqB,EAAgBmY,GAAOzZ,MAAMC,KAAMP,YAjS/E,IAAsB4C,EAAaiB,EAAYC,EAwT7C,OA3RF,SAAmBC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAInB,UAAU,sDAGtBkB,EAASlE,UAAYf,OAAOmF,OAAOD,GAAcA,EAAWnE,UAAW,CACrED,YAAa,CACXZ,MAAO+E,EACPpC,UAAU,EACVD,cAAc,KAGdsC,GAAY5B,EAAgB2B,EAAUC,GAmP1CE,CAAU6V,EAAOxJ,GA5RG3N,EAoSPmX,GApSoBlW,EAoSb,CAAC,CACnB1D,IAAK,SACLnB,MAAO,WACL,IAAI0b,EAASD,EAAala,KAAKtE,OAC3B2a,EAAcrW,KAAKtE,MAInBmgB,EAAc,CAChBC,aAJiBzF,EAAYyF,aAK7BC,YAJgB1F,EAAY0F,YAK5BC,aAJiB3F,EAAY2F,cAM/B,OAAOtd,EAAgB,QAAE/C,cAAc,MAAO4D,EAAS,CACrD3C,UAAW,cACX2J,MAAOvG,KAAKtE,MAAMugB,YACjBJ,GAAc1B,QAnTLlZ,EAAkBoB,EAAY/C,UAAWgE,GACrDC,GAAatC,EAAkBoB,EAAakB,GAsTzCiW,EA7BgB,CA8BvB9a,EAAgB,QAAEkS,eAEpB9U,EAAQ0d,MAAQA,G,0DC7XhB3d,EAAOC,QAAU,CAAC,UAAY,6CAA6C,cAAgB,iDAAiD,MAAQ,yCAAyC,KAAO,wCAAwC,MAAQ,yCAAyC,KAAO,0C,kCCCpSyC,OAAOC,eAAe1C,EAAS,aAAc,CAC3C2C,OAAO,IAET3C,EAAQogB,UAAO,EAEf,IAAIxd,EAASC,EAAuB,EAAQ,SAExCmR,EAAcnR,EAAuB,EAAQ,SAEjD,SAASA,EAAuBK,GAC9B,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnC,QAAWA,GAIf,SAASE,EAAQF,GAWf,OATEE,EADoB,mBAAXC,QAAoD,iBAApBA,OAAOC,SACtC,SAAiBJ,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,mBAAXG,QAAyBH,EAAIK,cAAgBF,QAAUH,IAAQG,OAAOG,UAAY,gBAAkBN,IAI9GA,GAGjB,SAASiB,EAAQC,EAAQC,GACvB,IAAIC,EAAO7B,OAAO6B,KAAKF,GAEvB,GAAI3B,OAAO8B,sBAAuB,CAChC,IAAIC,EAAU/B,OAAO8B,sBAAsBH,GACvCC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GACrD,OAAOjC,OAAOkC,yBAAyBP,EAAQM,GAAKE,eAEtDN,EAAKO,KAAKZ,MAAMK,EAAME,GAGxB,OAAOF,EAuBT,SAASU,EAAgB9B,EAAKY,EAAKnB,GAYjC,OAXImB,KAAOZ,EACTT,OAAOC,eAAeQ,EAAKY,EAAK,CAC9BnB,MAAOA,EACPiC,YAAY,EACZS,cAAc,EACdC,UAAU,IAGZpC,EAAIY,GAAOnB,EAGNO,EAGT,SAASuD,EAAgBH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,qCAIxB,SAASrB,EAAkBlE,EAAQrB,GACjC,IAAK,IAAIqC,EAAI,EAAGA,EAAIrC,EAAMgE,OAAQ3B,IAAK,CACrC,IAAImD,EAAaxF,EAAMqC,GACvBmD,EAAWR,WAAaQ,EAAWR,aAAc,EACjDQ,EAAWC,cAAe,EACtB,UAAWD,IAAYA,EAAWE,UAAW,GACjD7C,OAAOC,eAAezB,EAAQmE,EAAWtB,IAAKsB,IAUlD,SAASsB,EAA2Bb,EAAM7B,GACxC,OAAIA,GAA2B,WAAlBZ,EAAQY,IAAsC,mBAATA,EAOpD,SAAgC6B,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EARAD,CAAuBC,GAHrB7B,EAcX,SAASuB,EAAgBC,GAIvB,OAHAD,EAAkB9C,OAAOgD,eAAiBhD,OAAOiD,eAAiB,SAAyBF,GACzF,OAAOA,EAAEG,WAAalD,OAAOiD,eAAeF,KAEvBA,GAkBzB,SAASO,EAAgBP,EAAGQ,GAM1B,OALAD,EAAkBtD,OAAOgD,gBAAkB,SAAyBD,EAAGQ,GAErE,OADAR,EAAEG,UAAYK,EACPR,IAGcA,EAAGQ,GAG5B,IAYIoa,EAAoB,SAAUlM,GAGhC,SAASkM,IAGP,OAFA3Z,EAAgBvC,KAAMkc,GAEf1Z,EAA2BxC,KAAMqB,EAAgB6a,GAAMnc,MAAMC,KAAMP,YAvE9E,IAAsB4C,EAAaiB,EAAYC,EAqI7C,OAxGF,SAAmBC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAInB,UAAU,sDAGtBkB,EAASlE,UAAYf,OAAOmF,OAAOD,GAAcA,EAAWnE,UAAW,CACrED,YAAa,CACXZ,MAAO+E,EACPpC,UAAU,EACVD,cAAc,KAGdsC,GAAY5B,EAAgB2B,EAAUC,GAyB1CE,CAAUuY,EAAMlM,GAlEI3N,EA0EP6Z,GA1EoB5Y,EA0Ed,CAAC,CAClB1D,IAAK,eACLnB,MAAO,SAAsBP,EAAS+R,GAGpCA,EAAEC,iBACFlQ,KAAKtE,MAAMyU,aAAajS,KAEzB,CACD0B,IAAK,SACLnB,MAAO,WACL,IAhCiCib,EAgC7BvX,EAAQnC,KAERmc,GAlC6BzC,EAkCN,CACzBlJ,WAAYxQ,KAAKtE,MAAM8U,WACvBpL,eAAgBpF,KAAKtE,MAAM0J,eAC3BE,aAActF,KAAKtE,MAAM4J,aACzBsG,SAAU5L,KAAKtE,MAAMkQ,WAnClBA,SACA9D,KAAKsU,KAAK1C,EAAKlJ,WAAakJ,EAAKtU,gBAEjC0C,KAAKsU,MAAM1C,EAAKlJ,WAAakJ,EAAKpU,cAAgBoU,EAAKtU,gBAAkB,EAqC1EiR,EAAcrW,KAAKtE,MAInBmgB,EAAc,CAChBC,aAJiBzF,EAAYyF,aAK7BC,YAJgB1F,EAAY0F,YAK5BC,aAJiB3F,EAAY2F,cAM3BjR,EAAO5M,MAAM4B,MAAM,KAAM5B,MAAMge,EAAW,GAAGle,KAAK,KAAKoe,MAAM,KAAKnY,KAAI,SAAUG,EAAGtG,GACrF,IAAIue,EAAYve,EAAIoE,EAAMzG,MAAM0J,eAC5BmX,EAAaxe,EAAIoE,EAAMzG,MAAM0J,gBAAkBjD,EAAMzG,MAAM0J,eAAiB,GAC5ExI,GAAY,EAAIkT,EAAqB,SAAG,CAC1C,eAAgB3N,EAAMzG,MAAM6U,cAAgB+L,GAAana,EAAMzG,MAAM6U,cAAgBgM,IAEnFC,EAAa,CACflM,QAAS,OACT/L,MAAOxG,EACPqH,eAAgBjD,EAAMzG,MAAM0J,eAC5BmL,aAAcpO,EAAMzG,MAAM6U,cAGxBG,EAAUvO,EAAMgO,aAAa/S,KAAK+E,EAAOqa,GAE7C,OAAO9d,EAAgB,QAAE/C,cAAc,KAAM,CAC3CiE,IAAK7B,EACLnB,UAAWA,GACV8B,EAAgB,QAAE+H,aAAatE,EAAMzG,MAAM4P,aAAavN,GAAI,CAC7D2S,QAASA,QAGb,OAAOhS,EAAgB,QAAE+H,aAAazG,KAAKtE,MAAMoP,WAAWC,GAlLlE,SAAuBhO,GACrB,IAAK,IAAIgB,EAAI,EAAGA,EAAI0B,UAAUC,OAAQ3B,IAAK,CACzC,IAAI4B,EAAyB,MAAhBF,UAAU1B,GAAa0B,UAAU1B,GAAK,GAE/CA,EAAI,EACNkC,EAAQN,GAAQ,GAAMkB,SAAQ,SAAUjB,GACtCkB,EAAgB/D,EAAQ6C,EAAKD,EAAOC,OAE7BrB,OAAOwC,0BAChBxC,OAAOyC,iBAAiBjE,EAAQwB,OAAOwC,0BAA0BpB,IAEjEM,EAAQN,GAAQkB,SAAQ,SAAUjB,GAChCrB,OAAOC,eAAezB,EAAQ6C,EAAKrB,OAAOkC,yBAAyBd,EAAQC,OAKjF,OAAO7C,EAiKgE6D,CAAc,CAC/EhE,UAAWoD,KAAKtE,MAAM6P,WACrBsQ,SAhIS5a,EAAkBoB,EAAY/C,UAAWgE,GACrDC,GAAatC,EAAkBoB,EAAakB,GAmIzC2Y,EApEe,CAqEtBxd,EAAgB,QAAEkS,eAEpB9U,EAAQogB,KAAOA,G,kCCxOf,mBAQA,IAAIO,EAAU,WACZ,GAAmB,oBAARnJ,IACT,OAAOA,IAWT,SAASoJ,EAASC,EAAK/c,GACrB,IAAIuJ,GAAU,EASd,OARAwT,EAAIhI,MAAK,SAAUL,EAAO/P,GACxB,OAAI+P,EAAM,KAAO1U,IACfuJ,EAAS5E,GACF,MAKJ4E,EAGT,OAEE,WACE,SAASyT,IACP5c,KAAK6c,YAAc,GAwFrB,OArFAte,OAAOC,eAAeoe,EAAQtd,UAAW,OAAQ,CAI/CuU,IAAK,WACH,OAAO7T,KAAK6c,YAAYnd,QAE1BgB,YAAY,EACZS,cAAc,IAOhByb,EAAQtd,UAAUuU,IAAM,SAAUjU,GAChC,IAAI2E,EAAQmY,EAAS1c,KAAK6c,YAAajd,GACnC0U,EAAQtU,KAAK6c,YAAYtY,GAC7B,OAAO+P,GAASA,EAAM,IASxBsI,EAAQtd,UAAUsU,IAAM,SAAUhU,EAAKnB,GACrC,IAAI8F,EAAQmY,EAAS1c,KAAK6c,YAAajd,IAElC2E,EACHvE,KAAK6c,YAAYtY,GAAO,GAAK9F,EAE7BuB,KAAK6c,YAAYlc,KAAK,CAACf,EAAKnB,KAShCme,EAAQtd,UAAUwd,OAAS,SAAUld,GACnC,IAAIyU,EAAUrU,KAAK6c,YACftY,EAAQmY,EAASrI,EAASzU,IAEzB2E,GACH8P,EAAQY,OAAO1Q,EAAO,IAS1BqY,EAAQtd,UAAUqU,IAAM,SAAU/T,GAChC,SAAU8c,EAAS1c,KAAK6c,YAAajd,IAOvCgd,EAAQtd,UAAUyd,MAAQ,WACxB/c,KAAK6c,YAAY5H,OAAO,IAS1B2H,EAAQtd,UAAUuB,QAAU,SAAUmT,EAAUgJ,QAClC,IAARA,IACFA,EAAM,MAGR,IAAK,IAAIC,EAAK,EAAGC,EAAKld,KAAK6c,YAAaI,EAAKC,EAAGxd,OAAQud,IAAM,CAC5D,IAAI3I,EAAQ4I,EAAGD,GACfjJ,EAASlU,KAAKkd,EAAK1I,EAAM,GAAIA,EAAM,MAIhCsI,EA5FJ,GA1BK,GA+HVO,EAA8B,oBAAXzO,QAA8C,oBAAb0O,UAA4B1O,OAAO0O,WAAaA,SAEpGC,OACoB,IAAX7V,GAA0BA,EAAOM,OAASA,KAC5CN,EAGW,oBAAT7F,MAAwBA,KAAKmG,OAASA,KACxCnG,KAGa,oBAAX+M,QAA0BA,OAAO5G,OAASA,KAC5C4G,OAIF/G,SAAS,cAATA,GAUL2V,EACmC,mBAA1BC,sBAIFA,sBAAsBngB,KAAKigB,GAG7B,SAAUrJ,GACf,OAAOjK,YAAW,WAChB,OAAOiK,EAAS7L,KAAKD,SACpB,IAAO,KAkFd,IAGIsV,EAAiB,CAAC,MAAO,QAAS,SAAU,OAAQ,QAAS,SAAU,OAAQ,UAE/EC,EAAwD,oBAArBC,iBAKnCC,EAEJ,WAME,SAASA,IAMP3d,KAAK4d,YAAa,EAOlB5d,KAAK6d,sBAAuB,EAO5B7d,KAAK8d,mBAAqB,KAO1B9d,KAAK+d,WAAa,GAClB/d,KAAKge,iBAAmBhe,KAAKge,iBAAiB5gB,KAAK4C,MACnDA,KAAKie,QAlHT,SAAkBjK,EAAUmC,GAC1B,IAAI+H,GAAc,EACdC,GAAe,EACf9U,EAAe,EAQnB,SAAS+U,IACHF,IACFA,GAAc,EACdlK,KAGEmK,GACFE,IAYJ,SAASC,IACPhB,EAAwBc,GAS1B,SAASC,IACP,IAAIE,EAAYpW,KAAKD,MAErB,GAAIgW,EAAa,CAEf,GAAIK,EAAYlV,EAvDA,EAwDd,OAOF8U,GAAe,OAEfD,GAAc,EACdC,GAAe,EACfpU,WAAWuU,EAAiBnI,GAG9B9M,EAAekV,EAGjB,OAAOF,EAmDUG,CAASxe,KAAKie,QAAQ7gB,KAAK4C,MA/C1B,IA8OlB,OArLA2d,EAAyBre,UAAUmf,YAAc,SAAUtK,IACnDnU,KAAK+d,WAAW7I,QAAQf,IAC5BnU,KAAK+d,WAAWpd,KAAKwT,GAIlBnU,KAAK4d,YACR5d,KAAK0e,YAWTf,EAAyBre,UAAUqf,eAAiB,SAAUxK,GAC5D,IAAIyK,EAAY5e,KAAK+d,WACjBxZ,EAAQqa,EAAU1J,QAAQf,IAEzB5P,GACHqa,EAAU3J,OAAO1Q,EAAO,IAIrBqa,EAAUlf,QAAUM,KAAK4d,YAC5B5d,KAAK6e,eAWTlB,EAAyBre,UAAU2e,QAAU,WACrBje,KAAK8e,oBAIzB9e,KAAKie,WAaTN,EAAyBre,UAAUwf,iBAAmB,WAEpD,IAAIC,EAAkB/e,KAAK+d,WAAWxd,QAAO,SAAU4T,GACrD,OAAOA,EAAS6K,eAAgB7K,EAAS8K,eAU3C,OAHAF,EAAgBle,SAAQ,SAAUsT,GAChC,OAAOA,EAAS+K,qBAEXH,EAAgBrf,OAAS,GAUlCie,EAAyBre,UAAUof,SAAW,WAGvCvB,IAAand,KAAK4d,aAOvBR,SAASzO,iBAAiB,gBAAiB3O,KAAKge,kBAChDtP,OAAOC,iBAAiB,SAAU3O,KAAKie,SAEnCR,GACFzd,KAAK8d,mBAAqB,IAAIJ,iBAAiB1d,KAAKie,SACpDje,KAAK8d,mBAAmBhK,QAAQsJ,SAAU,CACxC+B,YAAY,EACZC,WAAW,EACXC,eAAe,EACfC,SAAS,MAGXlC,SAASzO,iBAAiB,qBAAsB3O,KAAKie,SACrDje,KAAK6d,sBAAuB,GAG9B7d,KAAK4d,YAAa,IAUpBD,EAAyBre,UAAUuf,YAAc,WAG1C1B,GAAcnd,KAAK4d,aAIxBR,SAASxO,oBAAoB,gBAAiB5O,KAAKge,kBACnDtP,OAAOE,oBAAoB,SAAU5O,KAAKie,SAEtCje,KAAK8d,oBACP9d,KAAK8d,mBAAmB1I,aAGtBpV,KAAK6d,sBACPT,SAASxO,oBAAoB,qBAAsB5O,KAAKie,SAG1Dje,KAAK8d,mBAAqB,KAC1B9d,KAAK6d,sBAAuB,EAC5B7d,KAAK4d,YAAa,IAWpBD,EAAyBre,UAAU0e,iBAAmB,SAAUd,GAC9D,IAAIqC,EAAKrC,EAAGsC,aACRA,OAAsB,IAAPD,EAAgB,GAAKA,EAEjB/B,EAAe7I,MAAK,SAAU/U,GACnD,SAAU4f,EAAatK,QAAQtV,OAI/BI,KAAKie,WAUTN,EAAyB8B,YAAc,WAKrC,OAJKzf,KAAK0f,YACR1f,KAAK0f,UAAY,IAAI/B,GAGhB3d,KAAK0f,WASd/B,EAAyB+B,UAAY,KAC9B/B,EAlOT,GA6OIgC,EAAqB,SAA4B5iB,EAAQrB,GAC3D,IAAK,IAAIuhB,EAAK,EAAGC,EAAK3e,OAAO6B,KAAK1E,GAAQuhB,EAAKC,EAAGxd,OAAQud,IAAM,CAC9D,IAAIrd,EAAMsd,EAAGD,GACb1e,OAAOC,eAAezB,EAAQ6C,EAAK,CACjCnB,MAAO/C,EAAMkE,GACbc,YAAY,EACZU,UAAU,EACVD,cAAc,IAIlB,OAAOpE,GAUL6iB,EAAc,SAAqB7iB,GAOrC,OAHkBA,GAAUA,EAAO8iB,eAAiB9iB,EAAO8iB,cAAcC,aAGnDzC,GAIpB0C,EAAYC,EAAe,EAAG,EAAG,EAAG,GAQxC,SAASC,EAAQxhB,GACf,OAAOyhB,WAAWzhB,IAAU,EAW9B,SAAS0hB,EAAetN,GAGtB,IAFA,IAAIuN,EAAY,GAEPnD,EAAK,EAAGA,EAAKxd,UAAUC,OAAQud,IACtCmD,EAAUnD,EAAK,GAAKxd,UAAUwd,GAGhC,OAAOmD,EAAUC,QAAO,SAAUjO,EAAM6I,GAEtC,OAAO7I,EAAO6N,EADFpN,EAAO,UAAYoI,EAAW,aAEzC,GA2CL,SAASqF,EAA0BvjB,GAGjC,IAAIwjB,EAAcxjB,EAAOwjB,YACrBC,EAAezjB,EAAOyjB,aAS1B,IAAKD,IAAgBC,EACnB,OAAOT,EAGT,IAAIlN,EAAS+M,EAAY7iB,GAAQ0jB,iBAAiB1jB,GAC9C2jB,EAnDN,SAAqB7N,GAInB,IAHA,IACI6N,EAAW,GAENzD,EAAK,EAAG0D,EAHD,CAAC,MAAO,QAAS,SAAU,QAGD1D,EAAK0D,EAAYjhB,OAAQud,IAAM,CACvE,IAAIhC,EAAW0F,EAAY1D,GACvBxe,EAAQoU,EAAO,WAAaoI,GAChCyF,EAASzF,GAAYgF,EAAQxhB,GAG/B,OAAOiiB,EAyCQE,CAAY/N,GACvBgO,EAAWH,EAAStF,KAAOsF,EAASI,MACpCC,EAAUL,EAASxF,IAAMwF,EAASM,OAKlCxa,EAAQyZ,EAAQpN,EAAOrM,OACvBiH,EAASwS,EAAQpN,EAAOpF,QAuB5B,GApByB,eAArBoF,EAAOoO,YAOLnZ,KAAKoZ,MAAM1a,EAAQqa,KAAcN,IACnC/Z,GAAS2Z,EAAetN,EAAQ,OAAQ,SAAWgO,GAGjD/Y,KAAKoZ,MAAMzT,EAASsT,KAAaP,IACnC/S,GAAU0S,EAAetN,EAAQ,MAAO,UAAYkO,KA+D1D,SAA2BhkB,GACzB,OAAOA,IAAW6iB,EAAY7iB,GAAQqgB,SAAS+D,gBAxD1CC,CAAkBrkB,GAAS,CAK9B,IAAIskB,EAAgBvZ,KAAKoZ,MAAM1a,EAAQqa,GAAYN,EAC/Ce,EAAiBxZ,KAAKoZ,MAAMzT,EAASsT,GAAWP,EAMpB,IAA5B1Y,KAAKyZ,IAAIF,KACX7a,GAAS6a,GAGsB,IAA7BvZ,KAAKyZ,IAAID,KACX7T,GAAU6T,GAId,OAAOtB,EAAeU,EAAStF,KAAMsF,EAASxF,IAAK1U,EAAOiH,GAU5D,IAAI+T,EAGgC,oBAAvBC,mBACF,SAAU1kB,GACf,OAAOA,aAAkB6iB,EAAY7iB,GAAQ0kB,oBAO1C,SAAU1kB,GACf,OAAOA,aAAkB6iB,EAAY7iB,GAAQ2kB,YAAwC,mBAAnB3kB,EAAO4kB,SAsB7E,SAASC,EAAe7kB,GACtB,OAAKogB,EAIDqE,EAAqBzkB,GApI3B,SAA2BA,GACzB,IAAI8kB,EAAO9kB,EAAO4kB,UAClB,OAAO3B,EAAe,EAAG,EAAG6B,EAAKrb,MAAOqb,EAAKpU,QAmIpCqU,CAAkB/kB,GAGpBujB,EAA0BvjB,GAPxBgjB,EAmDX,SAASC,EAAe3b,EAAGC,EAAGkC,EAAOiH,GACnC,MAAO,CACLpJ,EAAGA,EACHC,EAAGA,EACHkC,MAAOA,EACPiH,OAAQA,GASZ,IAAIsU,EAEJ,WAME,SAASA,EAAkBhlB,GAMzBiD,KAAKgiB,eAAiB,EAOtBhiB,KAAKiiB,gBAAkB,EAOvBjiB,KAAKkiB,aAAelC,EAAe,EAAG,EAAG,EAAG,GAC5ChgB,KAAKjD,OAASA,EA8BhB,OApBAglB,EAAkBziB,UAAU6iB,SAAW,WACrC,IAAIC,EAAOR,EAAe5hB,KAAKjD,QAE/B,OADAiD,KAAKkiB,aAAeE,EACbA,EAAK5b,QAAUxG,KAAKgiB,gBAAkBI,EAAK3U,SAAWzN,KAAKiiB,iBAUpEF,EAAkBziB,UAAU+iB,cAAgB,WAC1C,IAAID,EAAOpiB,KAAKkiB,aAGhB,OAFAliB,KAAKgiB,eAAiBI,EAAK5b,MAC3BxG,KAAKiiB,gBAAkBG,EAAK3U,OACrB2U,GAGFL,EAzDT,GA4DIO,EASF,SAA6BvlB,EAAQwlB,GACnC,IAvHwBrF,EACtB7Y,EACAC,EACAkC,EACAiH,EAEA+U,EACAJ,EAgHEK,GAtHFpe,GADsB6Y,EAuHaqF,GAtH5Ble,EACPC,EAAI4Y,EAAG5Y,EACPkC,EAAQ0W,EAAG1W,MACXiH,EAASyP,EAAGzP,OAEZ+U,EAAoC,oBAApBE,gBAAkCA,gBAAkBnkB,OACpE6jB,EAAO7jB,OAAOmF,OAAO8e,EAAOljB,WAEhCqgB,EAAmByC,EAAM,CACvB/d,EAAGA,EACHC,EAAGA,EACHkC,MAAOA,EACPiH,OAAQA,EACRyN,IAAK5W,EACLwc,MAAOzc,EAAImC,EACXwa,OAAQvT,EAASnJ,EACjB8W,KAAM/W,IAED+d,GA2GLzC,EAAmB3f,KAAM,CACvBjD,OAAQA,EACR0lB,YAAaA,KAOfE,EAEJ,WAWE,SAASA,EAAkB3O,EAAU4O,EAAYC,GAgB/C,GATA7iB,KAAK8iB,oBAAsB,GAO3B9iB,KAAK+iB,cAAgB,IAAItG,EAED,mBAAbzI,EACT,MAAM,IAAI1R,UAAU,2DAGtBtC,KAAKgjB,UAAYhP,EACjBhU,KAAKijB,YAAcL,EACnB5iB,KAAKkjB,aAAeL,EA8ItB,OApIAF,EAAkBrjB,UAAUwU,QAAU,SAAU/W,GAC9C,IAAK0C,UAAUC,OACb,MAAM,IAAI4C,UAAU,4CAItB,GAAuB,oBAAZ6gB,SAA6BA,mBAAmB5kB,OAA3D,CAIA,KAAMxB,aAAkB6iB,EAAY7iB,GAAQomB,SAC1C,MAAM,IAAI7gB,UAAU,yCAGtB,IAAI8gB,EAAepjB,KAAK+iB,cAEpBK,EAAazP,IAAI5W,KAIrBqmB,EAAaxP,IAAI7W,EAAQ,IAAIglB,EAAkBhlB,IAC/CiD,KAAKijB,YAAYxE,YAAYze,MAE7BA,KAAKijB,YAAYhF,aAUnB0E,EAAkBrjB,UAAU6V,UAAY,SAAUpY,GAChD,IAAK0C,UAAUC,OACb,MAAM,IAAI4C,UAAU,4CAItB,GAAuB,oBAAZ6gB,SAA6BA,mBAAmB5kB,OAA3D,CAIA,KAAMxB,aAAkB6iB,EAAY7iB,GAAQomB,SAC1C,MAAM,IAAI7gB,UAAU,yCAGtB,IAAI8gB,EAAepjB,KAAK+iB,cAEnBK,EAAazP,IAAI5W,KAItBqmB,EAAatG,OAAO/f,GAEfqmB,EAAahR,MAChBpS,KAAKijB,YAAYtE,eAAe3e,SAUpC2iB,EAAkBrjB,UAAU8V,WAAa,WACvCpV,KAAKqjB,cACLrjB,KAAK+iB,cAAchG,QACnB/c,KAAKijB,YAAYtE,eAAe3e,OAUlC2iB,EAAkBrjB,UAAU0f,aAAe,WACzC,IAAI7c,EAAQnC,KAEZA,KAAKqjB,cACLrjB,KAAK+iB,cAAcliB,SAAQ,SAAUyiB,GAC/BA,EAAYnB,YACdhgB,EAAM2gB,oBAAoBniB,KAAK2iB,OAYrCX,EAAkBrjB,UAAU4f,gBAAkB,WAE5C,GAAKlf,KAAKif,YAAV,CAIA,IAAIjC,EAAMhd,KAAKkjB,aAEX7O,EAAUrU,KAAK8iB,oBAAoB5e,KAAI,SAAUof,GACnD,OAAO,IAAIhB,EAAoBgB,EAAYvmB,OAAQumB,EAAYjB,oBAEjEriB,KAAKgjB,UAAUljB,KAAKkd,EAAK3I,EAAS2I,GAClChd,KAAKqjB,gBASPV,EAAkBrjB,UAAU+jB,YAAc,WACxCrjB,KAAK8iB,oBAAoB7N,OAAO,IASlC0N,EAAkBrjB,UAAU2f,UAAY,WACtC,OAAOjf,KAAK8iB,oBAAoBpjB,OAAS,GAGpCijB,EA/KT,GAqLI/D,EAA+B,oBAAZ2E,QAA0B,IAAIA,QAAY,IAAI9G,EAMjE+G,EASF,SAASA,EAAexP,GACtB,KAAMhU,gBAAgBwjB,GACpB,MAAM,IAAIlhB,UAAU,sCAGtB,IAAK7C,UAAUC,OACb,MAAM,IAAI4C,UAAU,4CAGtB,IAAIsgB,EAAajF,EAAyB8B,cACtCtL,EAAW,IAAIwO,EAAkB3O,EAAU4O,EAAY5iB,MAC3D4e,EAAUhL,IAAI5T,KAAMmU,IAOxB,CAAC,UAAW,YAAa,cAActT,SAAQ,SAAU4iB,GACvDD,EAAelkB,UAAUmkB,GAAU,WACjC,IAAIvG,EAEJ,OAAQA,EAAK0B,EAAU/K,IAAI7T,OAAOyjB,GAAQ1jB,MAAMmd,EAAIzd,eAIxD,IAAI8E,OAEqC,IAA5B8Y,EAASmG,eACXnG,EAASmG,eAGXA,EAGM,a,mLCtiCAE,MAnCf,YASI,IAAD,IARF1Q,UAQE,MARG,SAQH,EAPFzN,EAOE,EAPFA,SAOE,IANF6N,cAME,MANO,SAMP,MALFrB,kBAKE,MALW,QAKX,EAJFnV,EAIE,EAJFA,UAIE,IAHF+mB,aAGE,aAFFC,mBAEE,SADCnM,EACD,iFACF,OACC,kBAACE,EAAA,EAAD,eACC3E,GAAIA,EACJpW,UAAWgW,IACVhW,EACA,CAAC,iBAAoB+mB,GAFD,QAGZ5R,EACR6R,EAAW,yBAA6BxQ,EAA7B,QAA6CA,IAAWwQ,EAAc,EAAI,GAA1E,MAAsFxQ,EAAtF,IACX,+IAEGqE,GAEJ,8BAAOlS,M,4HC2CKse,IAhEf,YAwBI,IAvBHlR,EAuBE,EAvBFA,KACApN,EAsBE,EAtBFA,SAsBE,IArBFkN,iBAqBE,MArBU,EAqBV,MApBFC,kBAoBE,MApBW,YAoBX,MAnBFgD,mBAmBE,aAlBFnD,gBAkBE,MAlBS,CACV4F,KAAM,CACL7T,EAAG,EACH0T,QAAS,EACTZ,WAAY,CACXjB,MAAO,GACP9N,KAAM,SACN+P,QAAS,KAGXI,KAAM,CACLlU,EAAG,OACH0T,QAAS,IAMT,MAHFhF,UAGE,MAHG,MAGH,EAFF8Q,EAEE,EAFFA,QACGpoB,EACD,8FACoBmb,YAAU,CAAEpE,YAAWC,aAAYgD,gBAAlDjT,EADL,KACU+R,EADV,KAEIuP,EAAMC,IAAOhR,GACbiR,ECxCQ,SAAqBxlB,GACnC,IAAMgE,EAAMoL,mBAIZ,OAHAU,qBAAU,WACT9L,EAAIgM,QAAUhQ,KAERgE,EAAIgM,QDmCQyV,CAAY1P,GAU/B,OARAjG,qBAAU,WACL0V,IAAezP,GACdA,GAA6B,mBAAZsP,GACpBA,MAGA,CAACtP,EAAQ7B,EAAMmR,EAASG,IAG1B,kBAACF,EAAD,eACChM,QAAQ,OACRtV,IAAKA,EACL8P,SAAUA,EACViF,QAAShD,EAAS,OAAS,QACvB9Y,GAEH6J,K,yGE0BW4e,MAlFf,YAiBI,IAhBHC,EAgBE,EAhBFA,UACAC,EAeE,EAfFA,cACAC,EAcE,EAdFA,cACAC,EAaE,EAbFA,oBAEA1V,EAWE,EAXFA,MACA2V,EAUE,EAVFA,gBACAC,EASE,EATFA,gBAEAC,EAOE,EAPFA,sBACAC,EAME,EANFA,SACAC,EAKE,EALFA,oBACAC,EAIE,EAJFA,qBACA3S,EAGE,EAHFA,MAIMhW,EAAU2S,EAAWA,EAAN,eAA4B,YAC3CsE,EAAwB,oBAAXzE,OAAyBA,OAAOoW,SAASjoB,KAAOunB,EAE7DW,EAAeT,EAClBA,EAAcU,WACd9S,EACAA,EAAM8S,WACN,oEAEGC,EAAiBR,EACpBA,EAAgBO,WAChB9S,EACAA,EAAM8S,WACN,KAEH,OACC,kBAAC,SAAD,KACC,+BAAQ9oB,GACR,0BAAMyW,KAAK,cAAcuS,QAASP,IAElC,0BAAMhS,KAAK,SAASuS,QAAYN,EAAL,IAA4BC,IACvD,0BAAMM,SAAS,WAAWD,QAASV,GAAmBtoB,IACtD,0BAAMipB,SAAS,iBAAiBD,QAASR,GAAyBC,IACjEM,GAAkB,0BAAME,SAAS,WAAWD,QAASD,IACtD,0BAAME,SAAS,SAASD,QAAS/R,IACjC,0BAAMgS,SAAS,UAAUD,QAAQ,YACjC,0BAAMC,SAAS,YAAYD,QAAQ,oBACnC,0BAAMvS,KAAK,kBAAkBuS,QAAQ,cACrC,0BAAMvS,KAAK,gBAAgBuS,QAASb,GAAiBnoB,IACrD,0BAAMyW,KAAK,sBAAsBuS,QAASX,GAAuBI,IAChEI,GAAgB,0BAAMpS,KAAK,gBAAgBuS,QAASH,IACpDA,GAAgB,0BAAMpS,KAAK,oBAAoBuS,QAASH,IACzD,0BAAMpS,KAAK,eAAeuS,QAAQ,wBAClC,0BAAMpoB,IAAI,YAAYD,KAAMsW,O,qBCvD/B,IAAIiS,EAAqB,EAAQ,QAEjCvpB,EAAOC,QAAU,IAAIspB,G,mBCQrB,SAASC,EAAannB,GACpB8B,KAAK9B,QAAUA,GACdA,EAAQonB,YAActlB,KAAKulB,QAG9BF,EAAa/lB,UAAY,CACvBD,YAAagmB,EAObE,MAAO,WACDvlB,KAAK9B,QAAQqnB,OACfvlB,KAAK9B,QAAQqnB,QAGfvlB,KAAKwlB,aAAc,GAQrBC,GAAI,YACDzlB,KAAKwlB,aAAexlB,KAAKulB,QAC1BvlB,KAAK9B,QAAQkP,OAASpN,KAAK9B,QAAQkP,SAQrCsY,IAAK,WACH1lB,KAAK9B,QAAQynB,SAAW3lB,KAAK9B,QAAQynB,WASvCC,QAAS,WACP5lB,KAAK9B,QAAQ0nB,QAAU5lB,KAAK9B,QAAQ0nB,UAAY5lB,KAAK0lB,OAUvDG,OAAQ,SAAgB9oB,GACtB,OAAOiD,KAAK9B,UAAYnB,GAAUiD,KAAK9B,QAAQkP,QAAUrQ,IAG7DlB,EAAOC,QAAUupB,G,6OCmDjB,SAASzV,EAAUlU,GAAQ,IACfkB,EAAuBlB,EAAvBkB,UAAW8T,EAAYhV,EAAZgV,QACnB,OACI,kBAAC,IAAD,CACIoV,iBAAiB,oFACjBlpB,UAAWgW,IAAWhW,EAAW,2BACjCqc,MAAM,aACNK,KAAMC,IACN7I,QAASA,IAKrB,SAASb,EAAUnU,GAAQ,IACfkB,EAAuBlB,EAAvBkB,UAAW8T,EAAYhV,EAAZgV,QACnB,OACI,kBAAC,IAAD,CACIoV,iBAAiB,sFACjBlpB,UAAWgW,IAAWhW,EAAW,2BACjCqc,MAAM,aACNK,KAAMC,IACN7I,QAASA,IAKNqV,IApIf,YAII,IAHA7pB,EAGD,EAHCA,QACAD,EAED,EAFCA,KACHke,EACE,EADFA,OAEM6L,EAAWC,YAAc,qBAD7B,EAEkCnY,qBAA7BoY,EAFL,KAEiBC,EAFjB,OAGsCrY,qBAAjCsY,EAHL,KAGmBC,EAHnB,KAKIC,EAAczY,mBACd0Y,EAAgB1Y,mBAEhB2Y,EAAiB,CACtB5pB,UAAWiW,IAAOyT,YAClB1a,UAAU,EACVhG,eAAe,EACfT,YAAY,EACZsH,MAAO,IACPzB,QAAQ,EACFe,UAAW,kBAAC6D,EAAD,MACXrD,UAAW,kBAACsD,EAAD,MACjB9E,MAAM,EACN/G,WAAY,CACX,CACCZ,WAAY,KACZ2B,SAAU,CACTI,YAAY,MAahB,OAPAoJ,qBAAU,WACJ2X,GAAeE,IACnBD,EAAcG,EAAY7X,SAC1B4X,EAAgBE,EAAc9X,YAE7B,CAAC2X,EAAcG,EAAeL,EAAYI,IAG5C,kBAAC,IAAD,CACC5T,WAAW,WACXH,SAAUC,IACVsR,QAAS,WACRwC,EAAY7X,QAAQ7L,aAErBhG,UAAU,gDAETV,GAAW,wBAAIU,UAAU,6EAA6EV,GAC7FD,GACG,uBAAGW,UAAU,6FACRX,GAGlB,yBAAKW,UAAU,YACd,kBAAC,IAAD,eACCyI,MAAM,EACNuH,cAAY,EACZjB,eAAa,EACblJ,IAAK6jB,EACLhhB,aAAc,GACVkhB,GAEHrM,EAAOjW,KAAI,gBAAE2K,EAAF,EAAEA,MAAa8C,EAAf,EAAS1V,KAAYiW,EAArB,EAAqBA,MAAOuU,EAA5B,EAA4BA,aAAcC,EAA1C,EAA0CA,SAAUC,EAApD,EAAoDA,SAApD,OACX,yBACC/pB,UAAWgW,IACV,sBACAC,IAAO+T,WAERhnB,IAAKinB,eAEgB,yBAAKjqB,UAAWgW,IAAWC,IAAOiU,iBAAkB,gBAC/CjY,GAAS,wBAAIjS,UAAU,qDAAqDiS,GAC5E8C,GAAQ,uBAAG/U,UAAU,mBAAmB+U,GACxCgV,GAAYD,GACT,kBAAC,IAAD,CACI1T,GAAKC,IACLC,GAAE,GAAOyT,EACT/pB,UACIgW,IACI,4DAIN8T,IAIbxU,GACG,yBACItV,UAAWiW,IAAOkU,YAClBxgB,MAAO,CACHygB,gBAAgB,kEAC7ChB,GAAYS,EAAeA,EAAazB,WAAa9S,EAAM8S,YADf,iB,qBC5GvD,IAAIiC,EAAe,EAAQ,QAOvBC,EAAS,SAAgBloB,GAC3B,IAAImoB,EAAK,GACLC,EAAW7oB,OAAO6B,KAAKpB,GAqB3B,OApBAooB,EAASvmB,SAAQ,SAAUwmB,EAAS9iB,GAClC,IAAI9F,EAAQO,EAAIqoB,IATF,SAAqBA,GAErC,MADS,kBACCxe,KAAKwe,IAUTC,CAFJD,EAAUJ,EAAaI,KAEsB,iBAAV5oB,IACjCA,GAAgB,MAIhB0oB,IADY,IAAV1oB,EACI4oB,GACa,IAAV5oB,EACH,OAAS4oB,EAET,IAAMA,EAAU,KAAO5oB,EAAQ,IAGnC8F,EAAQ6iB,EAAS1nB,OAAS,IAC5BynB,GAAM,YAGHA,GA0BTtrB,EAAOC,QAvBO,SAAiB8H,GAC7B,IAAIujB,EAAK,GAET,MAAqB,iBAAVvjB,EACFA,EAILA,aAAiBzF,OACnByF,EAAM/C,SAAQ,SAAU0mB,EAAGhjB,GACzB4iB,GAAMD,EAAOK,GAEThjB,EAAQX,EAAMlE,OAAS,IACzBynB,GAAM,SAGHA,GAIFD,EAAOtjB,K,kHClBD4jB,MA9Bf,YAA4E,IAAlDvrB,EAAiD,EAAjDA,KAAMwrB,EAA2C,EAA3CA,OAAQnV,EAAmC,EAAnCA,MAAOc,EAA4B,EAA5BA,OAA4B,IAApB5M,aAAoB,MAAZ,SAAY,EACpEuL,EAAaO,GAASc,GAAU,eACtC,OACC,yBAAKxW,UAAU,WACd,yBAAKA,UAAWgW,IACf,eACU,WAAVpM,GAAsB,cAErBihB,GACA,wBACC7qB,UAAWgW,IACV,iGACAb,IAGA0V,GAGH,uBACC7qB,UAAWgW,IACV,wFAGDuG,wBAAyB,CAAEC,OAAQnd,S,kCC1BxCsC,OAAOC,eAAe1C,EAAS,aAAc,CAC3C2C,OAAO,IAET3C,EAAiB,aAAI,EACrB,IA8BI4O,EA9Be,CACjBgd,WAAW,EACXC,YAAa,KACbC,iBAAkB,EAClBC,YAAa,KACbtX,aAAc,EACduX,UAAW,EACXC,UAAU,EACVC,aAAa,EACbC,aAAa,EACbnN,eAAgB,GAChBoN,WAAY,KACZC,UAAW,KACXpZ,WAAW,EACXyB,WAAY,KACZ2K,YAAa,KACbH,WAAY,KACZoN,UAAW,KACXC,QAAQ,EAERC,SAAS,EACTC,YAAa,CACXC,OAAQ,EACRC,OAAQ,EACRC,KAAM,EACNC,KAAM,GAER1M,WAAY,GACZ2M,WAAY,GAGd9sB,EAAiB,QAAI4O,G,kCCrCrB,gBAYeme,IAVf,SAAqBlZ,GACpB,IAAMlN,EAAMoL,mBAMZ,OAJKpL,EAAIgM,UACRhM,EAAIgM,QAAU,CAAEqa,EAAGnZ,MAGblN,EAAIgM,QAAQqa,I,kCCPpBvqB,OAAOC,eAAe1C,EAAS,aAAc,CAC3C2C,OAAO,IAET3C,EAAQgL,iBAAc,EAEtB,IAAIpI,EAASC,EAAuB,EAAQ,SAExCoqB,EAAYpqB,EAAuB,EAAQ,SAE3CqqB,EAAgBrqB,EAAuB,EAAQ,SAE/CsqB,EAAUtqB,EAAuB,EAAQ,SAEzCmR,EAAcnR,EAAuB,EAAQ,SAE7CI,EAAoB,EAAQ,QAE5BmqB,EAAS,EAAQ,QAEjBC,EAAQ,EAAQ,QAEhBC,EAAU,EAAQ,QAElBC,EAA0B1qB,EAAuB,EAAQ,SAE7D,SAASA,EAAuBK,GAC9B,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnC,QAAWA,GAIf,SAASO,IAeP,OAdAA,EAAWhB,OAAOiB,QAAU,SAAUzC,GACpC,IAAK,IAAIgB,EAAI,EAAGA,EAAI0B,UAAUC,OAAQ3B,IAAK,CACzC,IAAI4B,EAASF,UAAU1B,GAEvB,IAAK,IAAI6B,KAAOD,EACVpB,OAAOe,UAAUO,eAAeC,KAAKH,EAAQC,KAC/C7C,EAAO6C,GAAOD,EAAOC,IAK3B,OAAO7C,IAGOgD,MAAMC,KAAMP,WAG9B,SAAS6pB,EAAyB3pB,EAAQ+W,GACxC,GAAc,MAAV/W,EAAgB,MAAO,GAE3B,IAEIC,EAAK7B,EAFLhB,EAkBN,SAAuC4C,EAAQ+W,GAC7C,GAAc,MAAV/W,EAAgB,MAAO,GAC3B,IAEIC,EAAK7B,EAFLhB,EAAS,GACT4Z,EAAapY,OAAO6B,KAAKT,GAG7B,IAAK5B,EAAI,EAAGA,EAAI4Y,EAAWjX,OAAQ3B,IACjC6B,EAAM+W,EAAW5Y,GACb2Y,EAASxB,QAAQtV,IAAQ,IAC7B7C,EAAO6C,GAAOD,EAAOC,IAGvB,OAAO7C,EA9BM6Z,CAA8BjX,EAAQ+W,GAInD,GAAInY,OAAO8B,sBAAuB,CAChC,IAAIkpB,EAAmBhrB,OAAO8B,sBAAsBV,GAEpD,IAAK5B,EAAI,EAAGA,EAAIwrB,EAAiB7pB,OAAQ3B,IACvC6B,EAAM2pB,EAAiBxrB,GACnB2Y,EAASxB,QAAQtV,IAAQ,GACxBrB,OAAOe,UAAUkqB,qBAAqB1pB,KAAKH,EAAQC,KACxD7C,EAAO6C,GAAOD,EAAOC,IAIzB,OAAO7C,EAkBT,SAASmC,EAAQF,GAWf,OATEE,EADoB,mBAAXC,QAAoD,iBAApBA,OAAOC,SACtC,SAAiBJ,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,mBAAXG,QAAyBH,EAAIK,cAAgBF,QAAUH,IAAQG,OAAOG,UAAY,gBAAkBN,IAI9GA,GAGjB,SAASiB,EAAQC,EAAQC,GACvB,IAAIC,EAAO7B,OAAO6B,KAAKF,GAEvB,GAAI3B,OAAO8B,sBAAuB,CAChC,IAAIC,EAAU/B,OAAO8B,sBAAsBH,GACvCC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GACrD,OAAOjC,OAAOkC,yBAAyBP,EAAQM,GAAKE,eAEtDN,EAAKO,KAAKZ,MAAMK,EAAME,GAGxB,OAAOF,EAGT,SAASQ,EAAc7D,GACrB,IAAK,IAAIgB,EAAI,EAAGA,EAAI0B,UAAUC,OAAQ3B,IAAK,CACzC,IAAI4B,EAAyB,MAAhBF,UAAU1B,GAAa0B,UAAU1B,GAAK,GAE/CA,EAAI,EACNkC,EAAQN,GAAQ,GAAMkB,SAAQ,SAAUjB,GACtCkB,EAAgB/D,EAAQ6C,EAAKD,EAAOC,OAE7BrB,OAAOwC,0BAChBxC,OAAOyC,iBAAiBjE,EAAQwB,OAAOwC,0BAA0BpB,IAEjEM,EAAQN,GAAQkB,SAAQ,SAAUjB,GAChCrB,OAAOC,eAAezB,EAAQ6C,EAAKrB,OAAOkC,yBAAyBd,EAAQC,OAKjF,OAAO7C,EAiBT,SAASsE,EAAgBC,GAIvB,OAHAD,EAAkB9C,OAAOgD,eAAiBhD,OAAOiD,eAAiB,SAAyBF,GACzF,OAAOA,EAAEG,WAAalD,OAAOiD,eAAeF,KAEvBA,GAGzB,SAASI,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAkBT,SAASE,EAAgBP,EAAGQ,GAM1B,OALAD,EAAkBtD,OAAOgD,gBAAkB,SAAyBD,EAAGQ,GAErE,OADAR,EAAEG,UAAYK,EACPR,IAGcA,EAAGQ,GAG5B,SAAShB,EAAgB9B,EAAKY,EAAKnB,GAYjC,OAXImB,KAAOZ,EACTT,OAAOC,eAAeQ,EAAKY,EAAK,CAC9BnB,MAAOA,EACPiC,YAAY,EACZS,cAAc,EACdC,UAAU,IAGZpC,EAAIY,GAAOnB,EAGNO,EAGT,IAAI8H,EAA2B,SAAU5E,GAGvC,SAAS4E,EAAYpL,GACnB,IAAIyG,EAmwBJ,OA30BJ,SAAyBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,qCAwEpBC,CAAgBvC,KAAM8G,GAEtB3E,EAtEJ,SAAoCR,EAAM7B,GACxC,OAAIA,GAA2B,WAAlBZ,EAAQY,IAAsC,mBAATA,EAI3C4B,EAAuBC,GAHrB7B,EAoEC0C,CAA2BxC,KAAMqB,EAAgByF,GAAahH,KAAKE,KAAMtE,IAEjFoF,EAAgBY,EAAuBS,GAAQ,kBAAkB,SAAUM,GACzE,OAAON,EAAMsnB,KAAOhnB,KAGtB3B,EAAgBY,EAAuBS,GAAQ,mBAAmB,SAAUM,GAC1E,OAAON,EAAMwhB,MAAQlhB,KAGvB3B,EAAgBY,EAAuBS,GAAQ,eAAe,WAC5D,GAAIA,EAAMzG,MAAMkP,gBAAkBzI,EAAMsnB,KAAM,CAC5C,IAAI7O,EAAOzY,EAAMsnB,KAAKC,cAAc,gBAAiB/iB,OAAOxE,EAAMgB,MAAMoN,aAAc,OAEtFpO,EAAMsnB,KAAKljB,MAAMkH,QAAS,EAAI1O,EAAkB4qB,WAAW/O,GAAQ,SAIvE9Z,EAAgBY,EAAuBS,GAAQ,6BAA6B,WAK1E,GAJAA,EAAMynB,UAENznB,EAAMzG,MAAMuQ,QAAU9J,EAAMzG,MAAMuQ,SAE9B9J,EAAMzG,MAAMoQ,SAAU,CACxB,IAAI+d,GAAe,EAAI9qB,EAAkB+qB,uBAAuBlpB,EAAc,GAAIuB,EAAMzG,MAAO,GAAIyG,EAAMgB,QAErG0mB,EAAanqB,OAAS,IACxByC,EAAMyC,UAAS,SAAUmlB,GACvB,MAAO,CACLjP,eAAgBiP,EAAUjP,eAAenU,OAAOkjB,OAIhD1nB,EAAMzG,MAAMsuB,YACd7nB,EAAMzG,MAAMsuB,WAAWH,QAM/B/oB,EAAgBY,EAAuBS,GAAQ,qBAAqB,WAClE,IAAIuX,EAAO9Y,EAAc,CACvBqpB,QAAS9nB,EAAMsnB,KACfS,SAAU/nB,EAAMwhB,OACfxhB,EAAMzG,OAETyG,EAAMgoB,YAAYzQ,GAAM,GAAM,WAC5BvX,EAAMioB,cAENjoB,EAAMzG,MAAMuP,UAAY9I,EAAMe,SAAS,aAGZ,gBAAzBf,EAAMzG,MAAMoQ,WACd3J,EAAMkoB,cAAgBC,YAAYnoB,EAAMooB,oBAAqB,MAG/DpoB,EAAMqoB,GAAK,IAAInB,EAAiC,SAAE,WAC5ClnB,EAAMgB,MAAMukB,WACdvlB,EAAMsoB,iBAAgB,GAGtBtoB,EAAMuoB,eAAe/pB,KAAKoJ,YAAW,WACnC,OAAO5H,EAAMsoB,oBACZtoB,EAAMzG,MAAM+Q,SAEftK,EAAMsoB,qBAIVtoB,EAAMqoB,GAAG1W,QAAQ3R,EAAMsnB,MAEvBtrB,MAAMmB,UAAUuB,QAAQf,KAAKsd,SAASuN,iBAAiB,iBAAiB,SAAU9nB,GAChFA,EAAM+nB,QAAUzoB,EAAMzG,MAAM2Q,aAAelK,EAAM0oB,aAAe,KAChEhoB,EAAMioB,OAAS3oB,EAAMzG,MAAM2Q,aAAelK,EAAM4oB,YAAc,QAG3Drc,SAIDA,OAAOC,iBACTD,OAAOC,iBAAiB,SAAUxM,EAAMsoB,iBAExC/b,OAAOsc,YAAY,WAAY7oB,EAAMsoB,qBAIzC3pB,EAAgBY,EAAuBS,GAAQ,wBAAwB,WACjEA,EAAM8oB,sBACRzgB,aAAarI,EAAM8oB,sBAGjB9oB,EAAMkoB,eACRa,cAAc/oB,EAAMkoB,eAGlBloB,EAAMuoB,eAAehrB,SACvByC,EAAMuoB,eAAe7pB,SAAQ,SAAUsqB,GACrC,OAAO3gB,aAAa2gB,MAGtBhpB,EAAMuoB,eAAiB,IAGrBhc,OAAOC,iBACTD,OAAOE,oBAAoB,SAAUzM,EAAMsoB,iBAE3C/b,OAAO0c,YAAY,WAAYjpB,EAAMsoB,iBAGnCtoB,EAAMkpB,eACRH,cAAc/oB,EAAMkpB,kBAIxBvqB,EAAgBY,EAAuBS,GAAQ,oCAAoC,SAAUmpB,GAQ3F,IAPA,IAAI5R,EAAO9Y,EAAc,CACvBqpB,QAAS9nB,EAAMsnB,KACfS,SAAU/nB,EAAMwhB,OACf2H,EAAW,GAAInpB,EAAMgB,OAEpBooB,GAAgB,EAEXtO,EAAK,EAAGuO,EAAejtB,OAAO6B,KAAK+B,EAAMzG,OAAQuhB,EAAKuO,EAAa9rB,OAAQud,IAAM,CACxF,IAAIrd,EAAM4rB,EAAavO,GAEvB,IAAKqO,EAAUzrB,eAAeD,GAAM,CAClC2rB,GAAgB,EAChB,MAGF,GAAgC,WAA5BrsB,EAAQosB,EAAU1rB,KAAgD,mBAAnB0rB,EAAU1rB,IAIzD0rB,EAAU1rB,KAASuC,EAAMzG,MAAMkE,GAAM,CACvC2rB,GAAgB,EAChB,OAIJppB,EAAMgoB,YAAYzQ,EAAM6R,GAAe,WACjCppB,EAAMgB,MAAMoN,cAAgB7R,EAAgB,QAAE8G,SAAS+U,MAAM+Q,EAAU/lB,WACzEpD,EAAMspB,YAAY,CAChBnb,QAAS,QACT/L,MAAO7F,EAAgB,QAAE8G,SAAS+U,MAAM+Q,EAAU/lB,UAAY+lB,EAAUhmB,aACxEiL,aAAcpO,EAAMgB,MAAMoN,eAI1B+a,EAAUrgB,SACZ9I,EAAMe,SAAS,UAEff,EAAMc,MAAM,gBAKlBnC,EAAgBY,EAAuBS,GAAQ,sBAAsB,WAKnE,GAJAA,EAAMupB,kBAENvpB,EAAMzG,MAAMyQ,UAAYhK,EAAMzG,MAAMyQ,WAEhChK,EAAMzG,MAAMoQ,SAAU,CACxB,IAAI+d,GAAe,EAAI9qB,EAAkB+qB,uBAAuBlpB,EAAc,GAAIuB,EAAMzG,MAAO,GAAIyG,EAAMgB,QAErG0mB,EAAanqB,OAAS,IACxByC,EAAMyC,UAAS,SAAUmlB,GACvB,MAAO,CACLjP,eAAgBiP,EAAUjP,eAAenU,OAAOkjB,OAIhD1nB,EAAMzG,MAAMsuB,YACd7nB,EAAMzG,MAAMsuB,WAAWH,IAQ7B1nB,EAAMioB,iBAGRtpB,EAAgBY,EAAuBS,GAAQ,mBAAmB,SAAUopB,GACtEppB,EAAMwpB,iBAAiBxpB,EAAMwpB,gBAAgBphB,SACjDpI,EAAMwpB,iBAAkB,EAAI1C,EAAiB,UAAG,WAC9C,OAAO9mB,EAAMypB,aAAaL,KACzB,IAEHppB,EAAMwpB,qBAGR7qB,EAAgBY,EAAuBS,GAAQ,gBAAgB,WAC7D,IAAIopB,IAAgB9rB,UAAUC,OAAS,QAAsBqD,IAAjBtD,UAAU,KAAmBA,UAAU,GACnF,GAAKspB,EAAmB,QAAE8C,YAAY1pB,EAAMwhB,OAA5C,CAEA,IAAIjK,EAAO9Y,EAAc,CACvBqpB,QAAS9nB,EAAMsnB,KACfS,SAAU/nB,EAAMwhB,OACfxhB,EAAMzG,MAAO,GAAIyG,EAAMgB,OAE1BhB,EAAMgoB,YAAYzQ,EAAM6R,GAAe,WACjCppB,EAAMzG,MAAMuP,SAAU9I,EAAMe,SAAS,UAAef,EAAMc,MAAM,aAItEd,EAAMyC,SAAS,CACb8iB,WAAW,IAGbld,aAAarI,EAAM8oB,6BACZ9oB,EAAM8oB,yBAGfnqB,EAAgBY,EAAuBS,GAAQ,eAAe,SAAUuX,EAAM6R,EAAevX,GAC3F,IAAI8X,GAAe,EAAI/sB,EAAkBgtB,kBAAkBrS,GAC3DA,EAAO9Y,EAAc,GAAI8Y,EAAM,GAAIoS,EAAc,CAC/CE,WAAYF,EAAavb,eAG3BmJ,EAAO9Y,EAAc,GAAI8Y,EAAM,CAC7B0B,MAFe,EAAIrc,EAAkBktB,cAAcvS,KAIrD,IAAIuC,GAAa,EAAIld,EAAkBmtB,aAAaxS,IAEhD6R,GAAiB7sB,EAAgB,QAAE8G,SAAS+U,MAAMpY,EAAMzG,MAAM6J,YAAc7G,EAAgB,QAAE8G,SAAS+U,MAAMb,EAAKnU,aACpHumB,EAAyB,WAAI7P,GAG/B9Z,EAAMyC,SAASknB,EAAc9X,MAG/BlT,EAAgBY,EAAuBS,GAAQ,WAAW,WACxD,GAAIA,EAAMzG,MAAMkK,cAAhB,CACE,IAAIumB,EAAc,EACdC,EAAa,EACbC,EAAiB,GACjBC,GAAY,EAAIvtB,EAAkB4c,cAAc/a,EAAc,GAAIuB,EAAMzG,MAAO,GAAIyG,EAAMgB,MAAO,CAClGqN,WAAYrO,EAAMzG,MAAM6J,SAAS7F,UAE/B6sB,GAAa,EAAIxtB,EAAkBytB,eAAe5rB,EAAc,GAAIuB,EAAMzG,MAAO,GAAIyG,EAAMgB,MAAO,CACpGqN,WAAYrO,EAAMzG,MAAM6J,SAAS7F,UAGnCyC,EAAMzG,MAAM6J,SAAS1E,SAAQ,SAAU6E,GACrC2mB,EAAe1rB,KAAK+E,EAAMhK,MAAM6K,MAAMC,OACtC2lB,GAAezmB,EAAMhK,MAAM6K,MAAMC,SAGnC,IAAK,IAAIzI,EAAI,EAAGA,EAAIuuB,EAAWvuB,IAC7BquB,GAAcC,EAAeA,EAAe3sB,OAAS,EAAI3B,GACzDouB,GAAeE,EAAeA,EAAe3sB,OAAS,EAAI3B,GAG5D,IAAK,IAAI0uB,EAAM,EAAGA,EAAMF,EAAYE,IAClCN,GAAeE,EAAeI,GAGhC,IAAK,IAAIC,EAAM,EAAGA,EAAMvqB,EAAMgB,MAAMoN,aAAcmc,IAChDN,GAAcC,EAAeK,GAG/B,IAAIC,EAAc,CAChBnmB,MAAO2lB,EAAc,KACrB/Q,MAAOgR,EAAa,MAGtB,GAAIjqB,EAAMzG,MAAMyJ,WAAY,CAC1B,IAAIe,EAAe,GAAGS,OAAO0lB,EAAelqB,EAAMgB,MAAMoN,cAAe,MACvEoc,EAAYvR,KAAO,QAAQzU,OAAOgmB,EAAYvR,KAAM,eAAezU,OAAOT,EAAc,YAG1F/D,EAAMyC,SAAS,CACbqX,WAAY0Q,QAxChB,CA8CA,IAAIrS,EAAgB5b,EAAgB,QAAE8G,SAAS+U,MAAMpY,EAAMzG,MAAM6J,UAE7DmU,EAAO9Y,EAAc,GAAIuB,EAAMzG,MAAO,GAAIyG,EAAMgB,MAAO,CACzDqN,WAAY8J,IAGV9J,GAAa,EAAIzR,EAAkB4c,cAAcjC,IAAQ,EAAI3a,EAAkBytB,eAAe9S,GAAQY,EACtGsO,EAAa,IAAMzmB,EAAMzG,MAAM4J,aAAekL,EAC9CwK,EAAa,IAAMxK,EACnBoc,GAAa5R,IAAc,EAAIjc,EAAkB4c,cAAcjC,GAAQvX,EAAMgB,MAAMoN,cAAgBqY,EAAa,IAEhHzmB,EAAMzG,MAAMyJ,aACdynB,IAAc,IAAM5R,EAAa4N,EAAa,KAAO,GAGvD,IAAI3M,EAAa,CACfzV,MAAOoiB,EAAa,IACpBxN,KAAMwR,EAAY,KAGpBzqB,EAAMyC,SAAS,CACboW,WAAYA,EAAa,IACzBiB,WAAYA,QAIhBnb,EAAgBY,EAAuBS,GAAQ,mBAAmB,WAChE,IAAI0qB,EAASzP,SAASuN,iBAAiB,oBACnCmC,EAAcD,EAAOntB,OACrBqtB,EAAc,EAClB5uB,MAAMmB,UAAUuB,QAAQf,KAAK+sB,GAAQ,SAAU3a,GAC7C,IAAIrO,EAAU,WACZ,QAASkpB,GAAeA,GAAeD,GAAe3qB,EAAMsoB,mBAG9D,GAAKvY,EAAM8a,QAIJ,CACL,IAAIC,EAAmB/a,EAAM8a,QAE7B9a,EAAM8a,QAAU,WACdC,IACA/a,EAAMgb,WAAWC,cARnBjb,EAAM8a,QAAU,WACd,OAAO9a,EAAMgb,WAAWC,SAWvBjb,EAAMkb,SACLjrB,EAAMzG,MAAMoQ,SACdoG,EAAMkb,OAAS,WACbjrB,EAAMioB,cAENjoB,EAAMuoB,eAAe/pB,KAAKoJ,WAAW5H,EAAMsoB,gBAAiBtoB,EAAMzG,MAAM+Q,UAG1EyF,EAAMkb,OAASvpB,EAEfqO,EAAMmb,QAAU,WACdxpB,IACA1B,EAAMzG,MAAMwQ,iBAAmB/J,EAAMzG,MAAMwQ,2BAOrDpL,EAAgBY,EAAuBS,GAAQ,uBAAuB,WAKpE,IAJA,IAAI0nB,EAAe,GAEfnQ,EAAO9Y,EAAc,GAAIuB,EAAMzG,MAAO,GAAIyG,EAAMgB,OAE3CoB,EAAQpC,EAAMgB,MAAMoN,aAAchM,EAAQpC,EAAMgB,MAAMqN,YAAa,EAAIzR,EAAkBytB,eAAe9S,GAAOnV,IACtH,GAAIpC,EAAMgB,MAAM2X,eAAe5F,QAAQ3Q,GAAS,EAAG,CACjDslB,EAAalpB,KAAK4D,GAClB,MAIJ,IAAK,IAAI+oB,EAASnrB,EAAMgB,MAAMoN,aAAe,EAAG+c,KAAW,EAAIvuB,EAAkB4c,cAAcjC,GAAO4T,IACpG,GAAInrB,EAAMgB,MAAM2X,eAAe5F,QAAQoY,GAAU,EAAG,CAClDzD,EAAalpB,KAAK2sB,GAClB,MAIAzD,EAAanqB,OAAS,GACxByC,EAAMyC,UAAS,SAAUzB,GACvB,MAAO,CACL2X,eAAgB3X,EAAM2X,eAAenU,OAAOkjB,OAI5C1nB,EAAMzG,MAAMsuB,YACd7nB,EAAMzG,MAAMsuB,WAAWH,IAGrB1nB,EAAMkoB,gBACRa,cAAc/oB,EAAMkoB,sBACbloB,EAAMkoB,kBAKnBvpB,EAAgBY,EAAuBS,GAAQ,gBAAgB,SAAUoC,GACvE,IAAIzB,EAAcrD,UAAUC,OAAS,QAAsBqD,IAAjBtD,UAAU,IAAmBA,UAAU,GAC7E4W,EAAclU,EAAMzG,MACpB6xB,EAAWlX,EAAYkX,SACvBpiB,EAAekL,EAAYlL,aAC3B6e,EAAa3T,EAAY2T,WACzBvd,EAAQ4J,EAAY5J,MACpB5B,EAAcwL,EAAYxL,YAE1B0F,EAAepO,EAAMgB,MAAMoN,aAE3Bid,GAAgB,EAAIzuB,EAAkB0uB,cAAc7sB,EAAc,CACpE2D,MAAOA,GACNpC,EAAMzG,MAAO,GAAIyG,EAAMgB,MAAO,CAC/B+mB,SAAU/nB,EAAMwhB,MAChB5W,OAAQ5K,EAAMzG,MAAMqR,SAAWjK,KAE7BK,EAAQqqB,EAAcrqB,MACtBuqB,EAAYF,EAAcE,UAE9B,GAAKvqB,EAAL,CACAgI,GAAgBA,EAAaoF,EAAcpN,EAAMoN,cACjD,IAAIsZ,EAAe1mB,EAAM2X,eAAeva,QAAO,SAAU9B,GACvD,OAAO0D,EAAMgB,MAAM2X,eAAe5F,QAAQzW,GAAS,KAErDurB,GAAcH,EAAanqB,OAAS,GAAKsqB,EAAWH,GAEpD1nB,EAAMyC,SAASzB,GAAO,WACpBoqB,GAAYA,EAAS7qB,YAAY+qB,aAAalpB,GACzCmpB,IACLvrB,EAAM8oB,qBAAuBlhB,YAAW,WACtC,IAAI2d,EAAYgG,EAAUhG,UACtBiG,EAAarE,EAAyBoE,EAAW,CAAC,cAEtDvrB,EAAMyC,SAAS+oB,GAAY,WACzBxrB,EAAMuoB,eAAe/pB,KAAKoJ,YAAW,WACnC,OAAO5H,EAAMyC,SAAS,CACpB8iB,UAAWA,MAEZ,KAEH7c,GAAeA,EAAY1H,EAAMoN,qBAC1BpO,EAAM8oB,0BAEdxe,WAIP3L,EAAgBY,EAAuBS,GAAQ,eAAe,SAAUjE,GACtE,IAAI4E,EAAcrD,UAAUC,OAAS,QAAsBqD,IAAjBtD,UAAU,IAAmBA,UAAU,GAE7Eia,EAAO9Y,EAAc,GAAIuB,EAAMzG,MAAO,GAAIyG,EAAMgB,OAEhDyqB,GAAc,EAAI7uB,EAAkB0sB,aAAa/R,EAAMxb,IACvC,IAAhB0vB,GAAsBA,MAEN,IAAhB9qB,EACFX,EAAMsrB,aAAaG,EAAa9qB,GAEhCX,EAAMsrB,aAAaG,OAIvB9sB,EAAgBY,EAAuBS,GAAQ,gBAAgB,SAAU8N,IAC/C,IAApB9N,EAAM0rB,YACR5d,EAAE6d,kBACF7d,EAAEC,kBAGJ/N,EAAM0rB,WAAY,KAGpB/sB,EAAgBY,EAAuBS,GAAQ,cAAc,SAAU8N,GACrE,IAAI8d,GAAM,EAAIhvB,EAAkBivB,YAAY/d,EAAG9N,EAAMzG,MAAMiP,cAAexI,EAAMzG,MAAM8Q,KAC9E,KAARuhB,GAAc5rB,EAAMspB,YAAY,CAC9Bnb,QAASyd,OAIbjtB,EAAgBY,EAAuBS,GAAQ,iBAAiB,SAAUjE,GACxEiE,EAAMspB,YAAYvtB,MAGpB4C,EAAgBY,EAAuBS,GAAQ,qBAAqB,WAOlEuM,OAAOuf,YANc,SAAwBhe,IAC3CA,EAAIA,GAAKvB,OAAON,OACV8B,gBAAgBD,EAAEC,iBACxBD,EAAEie,aAAc,MAMpBptB,EAAgBY,EAAuBS,GAAQ,oBAAoB,WACjEuM,OAAOuf,YAAc,QAGvBntB,EAAgBY,EAAuBS,GAAQ,cAAc,SAAU8N,GACjE9N,EAAMzG,MAAMyyB,iBACdhsB,EAAMisB,oBAGR,IAAIjrB,GAAQ,EAAIpE,EAAkBsvB,YAAYpe,EAAG9N,EAAMzG,MAAMgR,MAAOvK,EAAMzG,MAAM8P,WACtE,KAAVrI,GAAgBhB,EAAMyC,SAASzB,MAGjCrC,EAAgBY,EAAuBS,GAAQ,aAAa,SAAU8N,GACpE,IAAI9M,GAAQ,EAAIpE,EAAkBuvB,WAAWre,EAAGrP,EAAc,GAAIuB,EAAMzG,MAAO,GAAIyG,EAAMgB,MAAO,CAC9F+mB,SAAU/nB,EAAMwhB,MAChBsG,QAAS9nB,EAAMsnB,KACfuC,WAAY7pB,EAAMgB,MAAMoN,gBAErBpN,IAEDA,EAAe,UACjBhB,EAAM0rB,WAAY,GAGpB1rB,EAAMyC,SAASzB,OAGjBrC,EAAgBY,EAAuBS,GAAQ,YAAY,SAAU8N,GACnE,IAAI9M,GAAQ,EAAIpE,EAAkBwvB,UAAUte,EAAGrP,EAAc,GAAIuB,EAAMzG,MAAO,GAAIyG,EAAMgB,MAAO,CAC7F+mB,SAAU/nB,EAAMwhB,MAChBsG,QAAS9nB,EAAMsnB,KACfuC,WAAY7pB,EAAMgB,MAAMoN,gBAE1B,GAAKpN,EAAL,CACA,IAAIqrB,EAAsBrrB,EAA2B,2BAC9CA,EAA2B,oBAElChB,EAAMyC,SAASzB,QAEaJ,IAAxByrB,IAEJrsB,EAAMsrB,aAAae,GAEfrsB,EAAMzG,MAAMyyB,iBACdhsB,EAAMssB,wBAIV3tB,EAAgBY,EAAuBS,GAAQ,aAAa,WAI1DA,EAAMuoB,eAAe/pB,KAAKoJ,YAAW,WACnC,OAAO5H,EAAMspB,YAAY,CACvBnb,QAAS,eAEV,OAGLxP,EAAgBY,EAAuBS,GAAQ,aAAa,WAC1DA,EAAMuoB,eAAe/pB,KAAKoJ,YAAW,WACnC,OAAO5H,EAAMspB,YAAY,CACvBnb,QAAS,WAEV,OAGLxP,EAAgBY,EAAuBS,GAAQ,aAAa,SAAUU,GACpE,IAAIC,EAAcrD,UAAUC,OAAS,QAAsBqD,IAAjBtD,UAAU,IAAmBA,UAAU,GAEjF,GADAoD,EAAQ6rB,OAAO7rB,GACX8rB,MAAM9rB,GAAQ,MAAO,GAEzBV,EAAMuoB,eAAe/pB,KAAKoJ,YAAW,WACnC,OAAO5H,EAAMspB,YAAY,CACvBnb,QAAS,QACT/L,MAAO1B,EACP0N,aAAcpO,EAAMgB,MAAMoN,cACzBzN,KACF,OAGLhC,EAAgBY,EAAuBS,GAAQ,QAAQ,WACrD,IAAIysB,EAEJ,GAAIzsB,EAAMzG,MAAM8Q,IACdoiB,EAAYzsB,EAAMgB,MAAMoN,aAAepO,EAAMzG,MAAM0J,mBAC9C,CACL,KAAI,EAAIrG,EAAkBiS,WAAWpQ,EAAc,GAAIuB,EAAMzG,MAAO,GAAIyG,EAAMgB,QAG5E,OAAO,EAFPyrB,EAAYzsB,EAAMgB,MAAMoN,aAAepO,EAAMzG,MAAM0J,eAMvDjD,EAAMsrB,aAAamB,MAGrB9tB,EAAgBY,EAAuBS,GAAQ,YAAY,SAAU0sB,GAC/D1sB,EAAMkpB,eACRH,cAAc/oB,EAAMkpB,eAGtB,IAAI1D,EAAcxlB,EAAMgB,MAAMwkB,YAE9B,GAAiB,WAAbkH,GACF,GAAoB,YAAhBlH,GAA6C,YAAhBA,GAA6C,WAAhBA,EAC5D,YAEG,GAAiB,UAAbkH,GACT,GAAoB,WAAhBlH,GAA4C,YAAhBA,EAC9B,YAEG,GAAiB,SAAbkH,IACW,WAAhBlH,GAA4C,YAAhBA,GAC9B,OAIJxlB,EAAMkpB,cAAgBf,YAAYnoB,EAAM2sB,KAAM3sB,EAAMzG,MAAMwP,cAAgB,IAE1E/I,EAAMyC,SAAS,CACb+iB,YAAa,eAIjB7mB,EAAgBY,EAAuBS,GAAQ,SAAS,SAAU4sB,GAC5D5sB,EAAMkpB,gBACRH,cAAc/oB,EAAMkpB,eACpBlpB,EAAMkpB,cAAgB,MAGxB,IAAI1D,EAAcxlB,EAAMgB,MAAMwkB,YAEZ,WAAdoH,EACF5sB,EAAMyC,SAAS,CACb+iB,YAAa,WAEQ,YAAdoH,EACW,YAAhBpH,GAA6C,YAAhBA,GAC/BxlB,EAAMyC,SAAS,CACb+iB,YAAa,YAKG,YAAhBA,GACFxlB,EAAMyC,SAAS,CACb+iB,YAAa,eAMrB7mB,EAAgBY,EAAuBS,GAAQ,cAAc,WAC3D,OAAOA,EAAMzG,MAAMuP,UAAY9I,EAAMc,MAAM,cAG7CnC,EAAgBY,EAAuBS,GAAQ,eAAe,WAC5D,OAAOA,EAAMzG,MAAMuP,UAAwC,YAA5B9I,EAAMgB,MAAMwkB,aAA6BxlB,EAAMe,SAAS,YAGzFpC,EAAgBY,EAAuBS,GAAQ,eAAe,WAC5D,OAAOA,EAAMzG,MAAMuP,UAAY9I,EAAMc,MAAM,cAG7CnC,EAAgBY,EAAuBS,GAAQ,gBAAgB,WAC7D,OAAOA,EAAMzG,MAAMuP,UAAwC,YAA5B9I,EAAMgB,MAAMwkB,aAA6BxlB,EAAMe,SAAS,YAGzFpC,EAAgBY,EAAuBS,GAAQ,gBAAgB,WAC7D,OAAOA,EAAMzG,MAAMuP,UAAY9I,EAAMc,MAAM,cAG7CnC,EAAgBY,EAAuBS,GAAQ,eAAe,WAC5D,OAAOA,EAAMzG,MAAMuP,UAAwC,YAA5B9I,EAAMgB,MAAMwkB,aAA6BxlB,EAAMe,SAAS,WAGzFpC,EAAgBY,EAAuBS,GAAQ,UAAU,WACvD,IAeI4I,EAcAwB,EAAWR,EA7BXnP,GAAY,EAAIkT,EAAqB,SAAG,eAAgB3N,EAAMzG,MAAMkB,UAAW,CACjF,iBAAkBuF,EAAMzG,MAAMuR,SAC9B,qBAAqB,IAGnByM,EAAO9Y,EAAc,GAAIuB,EAAMzG,MAAO,GAAIyG,EAAMgB,OAEhD6rB,GAAa,EAAIjwB,EAAkBkwB,eAAevV,EAAM,CAAC,OAAQ,UAAW,QAAS,WAAY,aAAc,gBAAiB,eAAgB,WAAY,iBAAkB,MAAO,aAAc,cAAe,aAAc,WAAY,eAAgB,iBAAkB,aAAc,aAAc,gBAAiB,UAAW,kBACtUpN,EAAenK,EAAMzG,MAAM4Q,aAS/B,GARA0iB,EAAapuB,EAAc,GAAIouB,EAAY,CACzClT,aAAcxP,EAAenK,EAAM+sB,YAAc,KACjDlT,aAAc1P,EAAenK,EAAMgtB,aAAe,KAClDpT,YAAazP,EAAenK,EAAM+sB,YAAc,KAChDvjB,cAAexJ,EAAMzG,MAAMiQ,cAAgBxJ,EAAMitB,cAAgB,QAI1C,IAArBjtB,EAAMzG,MAAMqP,MAAiB5I,EAAMgB,MAAMqN,YAAcrO,EAAMzG,MAAM4J,aAAc,CACnF,IAAI+pB,GAAW,EAAItwB,EAAkBkwB,eAAevV,EAAM,CAAC,YAAa,aAAc,eAAgB,eAAgB,iBAAkB,eAAgB,WAAY,eAAgB,WAAY,eAC5LtN,EAAmBjK,EAAMzG,MAAM0Q,iBACnCijB,EAAWzuB,EAAc,GAAIyuB,EAAU,CACrClf,aAAchO,EAAMspB,YACpB3P,aAAc1P,EAAmBjK,EAAMmtB,YAAc,KACrDvT,YAAa3P,EAAmBjK,EAAMotB,WAAa,KACnDvT,aAAc5P,EAAmBjK,EAAMmtB,YAAc,OAEvDvkB,EAAOrM,EAAgB,QAAE/C,cAAcwtB,EAAMjN,KAAMmT,GAIrD,IAAIG,GAAa,EAAIzwB,EAAkBkwB,eAAevV,EAAM,CAAC,WAAY,aAAc,eAAgB,aAAc,eAAgB,YAAa,cAClJ8V,EAAWrf,aAAehO,EAAMspB,YAE5BtpB,EAAMzG,MAAMsP,SACduB,EAAY7N,EAAgB,QAAE/C,cAAcytB,EAAQvZ,UAAW2f,GAC/DzjB,EAAYrN,EAAgB,QAAE/C,cAAcytB,EAAQxZ,UAAW4f,IAGjE,IAAIC,EAAsB,KAEtBttB,EAAMzG,MAAMuR,WACdwiB,EAAsB,CACpBhiB,OAAQtL,EAAMgB,MAAM+kB,aAIxB,IAAIwH,EAAqB,MAEI,IAAzBvtB,EAAMzG,MAAMuR,UACiB,IAA3B9K,EAAMzG,MAAMyJ,aACduqB,EAAqB,CACnBC,QAAS,OAASxtB,EAAMzG,MAAM0P,iBAIH,IAA3BjJ,EAAMzG,MAAMyJ,aACduqB,EAAqB,CACnBC,QAASxtB,EAAMzG,MAAM0P,cAAgB,SAK3C,IAAIwkB,EAAYhvB,EAAc,GAAI6uB,EAAqB,GAAIC,GAEvD7iB,EAAY1K,EAAMzG,MAAMmR,UACxBgjB,EAAY,CACdjzB,UAAW,aACX2J,MAAOqpB,EACPlf,QAASvO,EAAMgO,aACf2f,YAAajjB,EAAY1K,EAAMksB,WAAa,KAC5C0B,YAAa5tB,EAAMgB,MAAM4kB,UAAYlb,EAAY1K,EAAMmsB,UAAY,KACnE0B,UAAWnjB,EAAY1K,EAAMosB,SAAW,KACxCvS,aAAc7Z,EAAMgB,MAAM4kB,UAAYlb,EAAY1K,EAAMosB,SAAW,KACnE0B,aAAcpjB,EAAY1K,EAAMksB,WAAa,KAC7C6B,YAAa/tB,EAAMgB,MAAM4kB,UAAYlb,EAAY1K,EAAMmsB,UAAY,KACnE6B,WAAYtjB,EAAY1K,EAAMosB,SAAW,KACzC6B,cAAejuB,EAAMgB,MAAM4kB,UAAYlb,EAAY1K,EAAMosB,SAAW,KACpE8B,UAAWluB,EAAMzG,MAAMiP,cAAgBxI,EAAM6rB,WAAa,MAExDsC,EAAmB,CACrB1zB,UAAWA,EACXmxB,IAAK,MACLxnB,MAAOpE,EAAMzG,MAAM6K,OAYrB,OATIpE,EAAMzG,MAAMmL,UACdgpB,EAAY,CACVjzB,UAAW,cAEb0zB,EAAmB,CACjB1zB,UAAWA,IAIR8B,EAAgB,QAAE/C,cAAc,MAAO20B,EAAmBnuB,EAAMzG,MAAMmL,QAAsB,GAAZ0F,EAAgB7N,EAAgB,QAAE/C,cAAc,MAAO4D,EAAS,CACrJkD,IAAKN,EAAMouB,gBACVV,GAAYnxB,EAAgB,QAAE/C,cAAcutB,EAAO1P,MAAOja,EAAS,CACpEkD,IAAKN,EAAMquB,iBACVxB,GAAa7sB,EAAMzG,MAAM6J,WAAapD,EAAMzG,MAAMmL,QAAsB,GAAZkF,EAAiB5J,EAAMzG,MAAMmL,QAAiB,GAAPkE,MAGxG5I,EAAMsnB,KAAO,KACbtnB,EAAMwhB,MAAQ,KACdxhB,EAAMgB,MAAQvC,EAAc,GAAIooB,EAAuB,QAAG,CACxDzY,aAAcpO,EAAMzG,MAAMmQ,aAC1B2E,WAAY9R,EAAgB,QAAE8G,SAAS+U,MAAMpY,EAAMzG,MAAM6J,YAE3DpD,EAAMuoB,eAAiB,GACvBvoB,EAAM0rB,WAAY,EAClB1rB,EAAMwpB,gBAAkB,KACjBxpB,EAGT,OAjzBF,SAAmBqB,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAInB,UAAU,sDAGtBkB,EAASlE,UAAYf,OAAOmF,OAAOD,GAAcA,EAAWnE,UAAW,CACrED,YAAa,CACXZ,MAAO+E,EACPpC,UAAU,EACVD,cAAc,KAGdsC,GAAY5B,EAAgB2B,EAAUC,GA4B1CE,CAAUmD,EAAa5E,GAywBhB4E,EA1wBsB,CA2wB7BpI,EAAgB,QAAEsI,WAEpBlL,EAAQgL,YAAcA,G,uBCx9BtB,IAAIue,EAAe,EAAQ,QAEvB5V,EAAO,EAAQ,QAAUA,KAU7B,SAASghB,EAAW7sB,EAAO8sB,GACzB1wB,KAAK4D,MAAQA,EACb5D,KAAK0wB,gBAAkBA,EACvB1wB,KAAK2wB,SAAW,GAChB3wB,KAAK4wB,IAAMliB,OAAOmiB,WAAWjtB,GAC7B,IAAIjC,EAAO3B,KAEXA,KAAK8wB,SAAW,SAAUF,GAExBjvB,EAAKivB,IAAMA,EAAIG,eAAiBH,EAChCjvB,EAAKqvB,UAGPhxB,KAAK4wB,IAAIK,YAAYjxB,KAAK8wB,UAG5BL,EAAWnxB,UAAY,CACrB4xB,WAAYT,EAWZU,WAAY,SAAoBttB,GAC9B,IAAIutB,EAAK,IAAI/L,EAAaxhB,GAC1B7D,KAAK2wB,SAAShwB,KAAKywB,GACnBpxB,KAAKqxB,WAAaD,EAAG3L,MAQvB6L,cAAe,SAAuBztB,GACpC,IAAI8sB,EAAW3wB,KAAK2wB,SACpBlhB,EAAKkhB,GAAU,SAAUY,EAAGxzB,GAC1B,GAAIwzB,EAAE1L,OAAOhiB,GAEX,OADA0tB,EAAE3L,WACM+K,EAAS1b,OAAOlX,EAAG,OAUjCszB,QAAS,WACP,OAAOrxB,KAAK4wB,IAAIS,SAAWrxB,KAAK0wB,iBAMlC3T,MAAO,WACLtN,EAAKzP,KAAK2wB,UAAU,SAAU9sB,GAC5BA,EAAQ+hB,aAEV5lB,KAAK4wB,IAAIY,eAAexxB,KAAK8wB,UAC7B9wB,KAAK2wB,SAASjxB,OAAS,GAMzBsxB,OAAQ,WACN,IAAIS,EAASzxB,KAAKqxB,UAAY,KAAO,MACrC5hB,EAAKzP,KAAK2wB,UAAU,SAAU9sB,GAC5BA,EAAQ4tB,UAId51B,EAAOC,QAAU20B,G,qBC3FjB,IAAIA,EAAa,EAAQ,QAErBiB,EAAO,EAAQ,QAEfjiB,EAAOiiB,EAAKjiB,KACZF,EAAamiB,EAAKniB,WAClBC,EAAUkiB,EAAKliB,QAQnB,SAAS4V,IACP,IAAK1W,OAAOmiB,WACV,MAAM,IAAIpzB,MAAM,8DAGlBuC,KAAK2xB,QAAU,GACf3xB,KAAK4xB,oBAAsBljB,OAAOmiB,WAAW,YAAYQ,QAG3DjM,EAAmB9lB,UAAY,CAC7BD,YAAa+lB,EAabthB,SAAU,SAAkByjB,EAAGrpB,EAAS2zB,GACtC,IAAIF,EAAU3xB,KAAK2xB,QACfjB,EAAkBmB,GAAiB7xB,KAAK4xB,mBA0B5C,OAxBKD,EAAQpK,KACXoK,EAAQpK,GAAK,IAAIkJ,EAAWlJ,EAAGmJ,IAI7BnhB,EAAWrR,KACbA,EAAU,CACRkP,MAAOlP,IAINsR,EAAQtR,KACXA,EAAU,CAACA,IAGbuR,EAAKvR,GAAS,SAAU2F,GAClB0L,EAAW1L,KACbA,EAAU,CACRuJ,MAAOvJ,IAIX8tB,EAAQpK,GAAG4J,WAAWttB,MAEjB7D,MAST8E,WAAY,SAAoByiB,EAAG1jB,GACjC,IAAID,EAAQ5D,KAAK2xB,QAAQpK,GAWzB,OATI3jB,IACEC,EACFD,EAAM0tB,cAAcztB,IAEpBD,EAAMmZ,eACC/c,KAAK2xB,QAAQpK,KAIjBvnB,OAGXnE,EAAOC,QAAUspB,G,kCCvFjB7mB,OAAOC,eAAe1C,EAAS,aAAc,CAC3C2C,OAAO,IAET3C,EAAQkG,UAAYlG,EAAQg2B,aAAeh2B,EAAQi2B,cAAgBj2B,EAAQk2B,iBAAmBl2B,EAAQm2B,eAAiBn2B,EAAQ0wB,cAAgB1wB,EAAQ6f,aAAe7f,EAAQmwB,aAAenwB,EAAQo2B,mBAAqBp2B,EAAQowB,YAAcpwB,EAAQq2B,cAAgBr2B,EAAQs2B,cAAgBt2B,EAAQu2B,eAAiBv2B,EAAQw2B,oBAAsBx2B,EAAQyyB,SAAWzyB,EAAQwyB,UAAYxyB,EAAQuyB,WAAavyB,EAAQkyB,WAAalyB,EAAQ2vB,YAAc3vB,EAAQ2xB,aAAe3xB,EAAQiwB,iBAAmBjwB,EAAQmzB,cAAgBnzB,EAAQkV,UAAYlV,EAAQy2B,kBAAoBz2B,EAAQ6tB,UAAY7tB,EAAQ02B,SAAW12B,EAAQ22B,kBAAoB32B,EAAQ42B,iBAAmB52B,EAAQ6e,aAAe7e,EAAQ2e,eAAiB3e,EAAQ62B,sBAAwB72B,EAAQguB,2BAAwB,EAEtwB,IAAIprB,EAASC,EAAuB,EAAQ,SAExCoqB,EAAYpqB,EAAuB,EAAQ,SAE/C,SAASA,EAAuBK,GAC9B,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnC,QAAWA,GAIf,SAASiB,EAAQC,EAAQC,GACvB,IAAIC,EAAO7B,OAAO6B,KAAKF,GAEvB,GAAI3B,OAAO8B,sBAAuB,CAChC,IAAIC,EAAU/B,OAAO8B,sBAAsBH,GACvCC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GACrD,OAAOjC,OAAOkC,yBAAyBP,EAAQM,GAAKE,eAEtDN,EAAKO,KAAKZ,MAAMK,EAAME,GAGxB,OAAOF,EAGT,SAASQ,EAAc7D,GACrB,IAAK,IAAIgB,EAAI,EAAGA,EAAI0B,UAAUC,OAAQ3B,IAAK,CACzC,IAAI4B,EAAyB,MAAhBF,UAAU1B,GAAa0B,UAAU1B,GAAK,GAE/CA,EAAI,EACNkC,EAAQN,GAAQ,GAAMkB,SAAQ,SAAUjB,GACtCkB,EAAgB/D,EAAQ6C,EAAKD,EAAOC,OAE7BrB,OAAOwC,0BAChBxC,OAAOyC,iBAAiBjE,EAAQwB,OAAOwC,0BAA0BpB,IAEjEM,EAAQN,GAAQkB,SAAQ,SAAUjB,GAChCrB,OAAOC,eAAezB,EAAQ6C,EAAKrB,OAAOkC,yBAAyBd,EAAQC,OAKjF,OAAO7C,EAGT,SAAS+D,EAAgB9B,EAAKY,EAAKnB,GAYjC,OAXImB,KAAOZ,EACTT,OAAOC,eAAeQ,EAAKY,EAAK,CAC9BnB,MAAOA,EACPiC,YAAY,EACZS,cAAc,EACdC,UAAU,IAGZpC,EAAIY,GAAOnB,EAGNO,EAGT,IAAI8qB,EAAwB,SAA+BpQ,GAKzD,IAJA,IAAIkZ,EAAiB,GACjBpY,EAAaC,EAAef,GAC5BgB,EAAWC,EAAajB,GAEnBsS,EAAaxR,EAAYwR,EAAatR,EAAUsR,IACnDtS,EAAKoB,eAAe5F,QAAQ8W,GAAc,GAC5C4G,EAAejyB,KAAKqrB,GAIxB,OAAO4G,GAIT92B,EAAQguB,sBAAwBA,EAehChuB,EAAQ62B,sBAboB,SAA+BjZ,GAKzD,IAJA,IAAImZ,EAAiB,GACjBrY,EAAaC,EAAef,GAC5BgB,EAAWC,EAAajB,GAEnBsS,EAAaxR,EAAYwR,EAAatR,EAAUsR,IACvD6G,EAAelyB,KAAKqrB,GAGtB,OAAO6G,GAMT,IAAIpY,EAAiB,SAAwBf,GAC3C,OAAOA,EAAKnJ,aAAemiB,EAAiBhZ,IAG9C5d,EAAQ2e,eAAiBA,EAEzB,IAAIE,EAAe,SAAsBjB,GACvC,OAAOA,EAAKnJ,aAAekiB,EAAkB/Y,IAG/C5d,EAAQ6e,aAAeA,EAEvB,IAAI+X,EAAmB,SAA0BhZ,GAC/C,OAAOA,EAAKvU,WAAa2C,KAAKiS,MAAML,EAAKpU,aAAe,IAAMgC,SAASoS,EAAKtO,eAAiB,EAAI,EAAI,GAAK,GAG5GtP,EAAQ42B,iBAAmBA,EAE3B,IAAID,EAAoB,SAA2B/Y,GACjD,OAAOA,EAAKvU,WAAa2C,KAAKiS,OAAOL,EAAKpU,aAAe,GAAK,GAAK,GAAKgC,SAASoS,EAAKtO,eAAiB,EAAI,EAAI,GAAKsO,EAAKpU,cAI3HxJ,EAAQ22B,kBAAoBA,EAE5B,IAAID,EAAW,SAAkB5X,GAC/B,OAAOA,GAAQA,EAAKkY,aAAe,GAGrCh3B,EAAQ02B,SAAWA,EAEnB,IAAI7I,EAAY,SAAmB/O,GACjC,OAAOA,GAAQA,EAAKmY,cAAgB,GAGtCj3B,EAAQ6tB,UAAYA,EAEpB,IAAI4I,EAAoB,SAA2BhK,GACjD,IACIyK,EAAOC,EAAOC,EAAGC,EADjBhF,EAAkB1uB,UAAUC,OAAS,QAAsBqD,IAAjBtD,UAAU,IAAmBA,UAAU,GAWrF,OATAuzB,EAAQzK,EAAYC,OAASD,EAAYG,KACzCuK,EAAQ1K,EAAYE,OAASF,EAAYI,KACzCuK,EAAIprB,KAAKsrB,MAAMH,EAAOD,IACtBG,EAAarrB,KAAKoZ,MAAU,IAAJgS,EAAUprB,KAAKurB,KAEtB,IACfF,EAAa,IAAMrrB,KAAKyZ,IAAI4R,IAG1BA,GAAc,IAAMA,GAAc,GAAKA,GAAc,KAAOA,GAAc,IACrE,OAGLA,GAAc,KAAOA,GAAc,IAC9B,SAGe,IAApBhF,EACEgF,GAAc,IAAMA,GAAc,IAC7B,KAEA,OAIJ,YAITr3B,EAAQy2B,kBAAoBA,EAE5B,IAAIvhB,EAAY,SAAmB0I,GACjC,IAAI4Z,GAAQ,EAUZ,OARK5Z,EAAK9N,WACJ8N,EAAKvU,YAAcuU,EAAKnJ,cAAgBmJ,EAAKlJ,WAAa,GAEnDkJ,EAAKlJ,YAAckJ,EAAKpU,cAAgBoU,EAAKnJ,cAAgBmJ,EAAKlJ,WAAakJ,EAAKpU,gBAD7FguB,GAAQ,GAMLA,GAITx3B,EAAQkV,UAAYA,EAWpBlV,EAAQmzB,cATY,SAAuBvV,EAAMtZ,GAC/C,IAAImzB,EAAY,GAIhB,OAHAnzB,EAAKS,SAAQ,SAAUjB,GACrB,OAAO2zB,EAAU3zB,GAAO8Z,EAAK9Z,MAExB2zB,GA0DTz3B,EAAQiwB,iBApDe,SAA0BrS,GAE/C,IAIIsB,EAJAxK,EAAa9R,EAAgB,QAAE8G,SAAS+U,MAAMb,EAAKnU,UAEnD4iB,EAAYrgB,KAAKsU,KAAKoW,EAASzJ,EAAmB,QAAE8C,YAAYnS,EAAKuQ,WACrErB,EAAa9gB,KAAKsU,KAAKoW,EAASzJ,EAAmB,QAAE8C,YAAYnS,EAAKwQ,YAG1E,GAAKxQ,EAAKzM,SASR+N,EAAamN,MATK,CAClB,IAAIqL,EAAmB9Z,EAAKvU,YAA6C,EAA/BmC,SAASoS,EAAKtO,eAEtB,iBAAvBsO,EAAKtO,eAA+D,MAAjCsO,EAAKtO,cAAcvG,OAAO,KACtE2uB,GAAoBrL,EAAY,KAGlCnN,EAAalT,KAAKsU,MAAM+L,EAAYqL,GAAoB9Z,EAAKpU,cAK/D,IAAI6V,EAAc4N,EAAmB,QAAE8C,YAAYnS,EAAKuQ,UAAYN,EAAUZ,EAAmB,QAAE8C,YAAYnS,EAAKuQ,SAASP,cAAc,qBACvIxB,EAAa/M,EAAczB,EAAKpU,aAChCiL,OAAqCxN,IAAtB2W,EAAKnJ,aAA6BmJ,EAAK7N,aAAe6N,EAAKnJ,aAE1EmJ,EAAKlN,UAA6BzJ,IAAtB2W,EAAKnJ,eACnBA,EAAeC,EAAa,EAAIkJ,EAAK7N,cAGvC,IAAIiP,EAAiBpB,EAAKoB,gBAAkB,GACxC+O,EAAeC,EAAsB,CACvCvZ,aAAcA,EACduK,eAAgBA,IAElBA,EAAenU,OAAOkjB,GACtB,IAAI1mB,EAAQ,CACVqN,WAAYA,EACZwK,WAAYA,EACZmN,UAAWA,EACXS,WAAYA,EACZrY,aAAcA,EACd4K,YAAaA,EACb+M,WAAYA,EACZpN,eAAgBA,GAOlB,OAJyB,OAArBpB,EAAKiO,aAAwBjO,EAAKzO,WACpC9H,EAAmB,YAAI,WAGlBA,GAkHTrH,EAAQ2xB,aA7GW,SAAsB/T,GACvC,IAAIxM,EAAiBwM,EAAKxM,eACtBwa,EAAYhO,EAAKgO,UACjBriB,EAAOqU,EAAKrU,KACZuG,EAAW8N,EAAK9N,SAChBrH,EAAQmV,EAAKnV,MACbiM,EAAakJ,EAAKlJ,WAClBsK,EAAiBpB,EAAKoB,eACtBhP,EAAW4N,EAAK5N,SAChByE,EAAemJ,EAAKnJ,aACpBpL,EAAauU,EAAKvU,WAClBC,EAAiBsU,EAAKtU,eACtBE,EAAeoU,EAAKpU,aACpByH,EAAS2M,EAAK3M,OAClB,GAAIG,GAAkBwa,EAAW,MAAO,GACxC,IACI+L,EACAC,EACAC,EAHAC,EAAiBrvB,EAIjBpB,EAAQ,GACRuqB,EAAY,GAEhB,GAAIroB,EAAM,CACR,IAAKuG,IAAarH,EAAQ,GAAKA,GAASiM,GAAa,MAAO,GAExDjM,EAAQ,EACVqvB,EAAiBrvB,EAAQiM,EAChBjM,GAASiM,IAClBojB,EAAiBrvB,EAAQiM,GAGvB1E,GAAYgP,EAAe5F,QAAQ0e,GAAkB,GACvD9Y,EAAena,KAAKizB,GAGtBzwB,EAAQ,CACNukB,WAAW,EACXnX,aAAcqjB,EACd9Y,eAAgBA,GAElB4S,EAAY,CACVhG,WAAW,QAGb+L,EAAaG,EAETA,EAAiB,GACnBH,EAAaG,EAAiBpjB,EACzB5E,EAAkC4E,EAAapL,GAAmB,IAAGquB,EAAajjB,EAAaA,EAAapL,GAAlGquB,EAAa,IAClBziB,EAAU0I,IAASka,EAAiBrjB,EAC9CqjB,EAAiBH,EAAaljB,EACrBpL,GAAcyuB,GAAkBpjB,GACzCojB,EAAiBhoB,EAAW4E,EAAaA,EAAa,EACtDijB,EAAa7nB,EAAW,EAAI4E,EAAa,GAChCojB,GAAkBpjB,IAC3BijB,EAAaG,EAAiBpjB,EACzB5E,EAA0D4E,EAAapL,GAAmB,IAAGquB,EAAa,GAAhGA,EAAajjB,EAAalL,GAG3CouB,EAAgBzH,EAAarrB,EAAc,GAAI8Y,EAAM,CACnDsS,WAAY4H,KAEdD,EAAY1H,EAAarrB,EAAc,GAAI8Y,EAAM,CAC/CsS,WAAYyH,KAGT7nB,IACC8nB,IAAkBC,IAAWC,EAAiBH,GAClDC,EAAgBC,GAGlB7nB,GAAYgP,EAAenU,OAAOmjB,EAAsBlpB,EAAc,GAAI8Y,EAAM,CAC9EnJ,aAAcqjB,MAGX7mB,GASH5J,EAAQ,CACNukB,WAAW,EACXnX,aAAckjB,EACdxX,WAAYiW,EAAmBtxB,EAAc,GAAI8Y,EAAM,CACrD0B,KAAMsY,KAER5Y,eAAgBA,GAElB4S,EAAY,CACVhG,WAAW,EACXnX,aAAckjB,EACdxX,WAAYiQ,EAAYtrB,EAAc,GAAI8Y,EAAM,CAC9C0B,KAAMuY,KAERvL,UAAW,OAtBbjlB,EAAQ,CACNoN,aAAckjB,EACdxX,WAAYiQ,EAAYtrB,EAAc,GAAI8Y,EAAM,CAC9C0B,KAAMuY,KAER7Y,eAAgBA,GAsBtB,MAAO,CACL3X,MAAOA,EACPuqB,UAAWA,IAqEf5xB,EAAQ2vB,YA/DU,SAAqB/R,EAAMxb,GAC3C,IAAI21B,EAAaC,EAAaC,EAA2BnG,EACrDxoB,EAAiBsU,EAAKtU,eACtBE,EAAeoU,EAAKpU,aACpBkL,EAAakJ,EAAKlJ,WAClBD,EAAemJ,EAAKnJ,aACpBzE,EAAW4N,EAAK5N,SAChBF,EAAW8N,EAAK9N,SAIpB,GAFAioB,EADerjB,EAAapL,GAAmB,EAClB,GAAKoL,EAAaD,GAAgBnL,EAEvC,aAApBlH,EAAQoS,QAEVsd,EAAcrd,GADdwjB,EAA8B,IAAhBF,EAAoBzuB,EAAiBE,EAAeuuB,GAG9D/nB,IAAaF,IAEfgiB,GAA+B,KAD/BkG,EAAcvjB,EAAewjB,GACMvjB,EAAa,EAAIsjB,QAEjD,GAAwB,SAApB51B,EAAQoS,QAEjBsd,EAAcrd,GADdwjB,EAA8B,IAAhBF,EAAoBzuB,EAAiByuB,GAG/C/nB,IAAaF,IACfgiB,GAAerd,EAAenL,GAAkBoL,EAAaqjB,QAE1D,GAAwB,SAApB31B,EAAQoS,SAIjB,IAFAsd,EAAc1vB,EAAQqG,MAAQrG,EAAQkH,kBAElBlH,EAAQqS,aAC1B,OAAO,UAEJ,GAAwB,aAApBrS,EAAQoS,QAAwB,CAIzC,IAFAsd,EAAc1vB,EAAQqG,SAEFrG,EAAQqS,aAC1B,OAAO,KAGT,GAAI3E,EAAU,CACZ,IAAIkc,EAAYkK,EAAiBpxB,EAAc,GAAI8Y,EAAM,CACvDkU,YAAaA,KAGXA,EAAc1vB,EAAQqS,cAA8B,SAAduX,EACxC8F,GAA4Bpd,EACnBod,EAAc1vB,EAAQqS,cAA8B,UAAduX,IAC/C8F,GAA4Bpd,SAG3B,GAAwB,UAApBtS,EAAQoS,UACjBsd,EAAcc,OAAOxwB,EAAQqG,UAETrG,EAAQqS,aAC1B,OAAO,KAIX,OAAOqd,GAYT9xB,EAAQkyB,WAPS,SAAoB/d,EAAGtF,EAAe6B,GACrD,OAAIyD,EAAElT,OAAOi3B,QAAQ5mB,MAAM,2BAA6BzC,EAAsB,GAC5D,KAAdsF,EAAEgkB,QAAuBznB,EAAM,OAAS,WAC1B,KAAdyD,EAAEgkB,QAAuBznB,EAAM,WAAa,OACzC,IAmBT1Q,EAAQuyB,WAdS,SAAoBpe,EAAGvD,EAAOlB,GAE7C,MADqB,QAArByE,EAAElT,OAAOi3B,SAAqB/jB,EAAEC,kBAC3BxD,IAAUlB,IAA0C,IAA7ByE,EAAE5H,KAAK6M,QAAQ,SAAwB,GAC5D,CACL6S,UAAU,EACVQ,YAAa,CACXC,OAAQvY,EAAEikB,QAAUjkB,EAAEikB,QAAQ,GAAGC,MAAQlkB,EAAEmkB,QAC3C3L,OAAQxY,EAAEikB,QAAUjkB,EAAEikB,QAAQ,GAAGG,MAAQpkB,EAAEqkB,QAC3C5L,KAAMzY,EAAEikB,QAAUjkB,EAAEikB,QAAQ,GAAGC,MAAQlkB,EAAEmkB,QACzCzL,KAAM1Y,EAAEikB,QAAUjkB,EAAEikB,QAAQ,GAAGG,MAAQpkB,EAAEqkB,WAsG/Cx4B,EAAQwyB,UA/FQ,SAAmBre,EAAGyJ,GAEpC,IAAI3K,EAAY2K,EAAK3K,UACjB2Y,EAAYhO,EAAKgO,UACjBza,EAAWyM,EAAKzM,SAChBL,EAAe8M,EAAK9M,aACpBuhB,EAAkBzU,EAAKyU,gBACvB3hB,EAAMkN,EAAKlN,IACX+D,EAAemJ,EAAKnJ,aACpB7E,EAAegO,EAAKhO,aACpBsc,EAActO,EAAKsO,YACnBhc,EAAS0N,EAAK1N,OACdqc,EAAS3O,EAAK2O,OACdC,EAAU5O,EAAK4O,QACf9X,EAAakJ,EAAKlJ,WAClBpL,EAAiBsU,EAAKtU,eACtBwG,EAAW8N,EAAK9N,SAChB2c,EAAc7O,EAAK6O,YACnB5b,EAAa+M,EAAK/M,WAClBub,EAAaxO,EAAKwO,WAClBC,EAAYzO,EAAKyO,UACrB,IAAIpZ,EAAJ,CACA,GAAI2Y,EAAW,OAAOzX,EAAEC,iBACpBjD,GAAYL,GAAgBuhB,GAAiBle,EAAEC,iBACnD,IAAIkY,EACAjlB,EAAQ,GACRoxB,EAAUtI,EAAavS,GAC3B6O,EAAYG,KAAOzY,EAAEikB,QAAUjkB,EAAEikB,QAAQ,GAAGC,MAAQlkB,EAAEmkB,QACtD7L,EAAYI,KAAO1Y,EAAEikB,QAAUjkB,EAAEikB,QAAQ,GAAGG,MAAQpkB,EAAEqkB,QACtD/L,EAAYiM,YAAc1sB,KAAKoZ,MAAMpZ,KAAK2sB,KAAK3sB,KAAK4sB,IAAInM,EAAYG,KAAOH,EAAYC,OAAQ,KAC/F,IAAImM,EAAsB7sB,KAAKoZ,MAAMpZ,KAAK2sB,KAAK3sB,KAAK4sB,IAAInM,EAAYI,KAAOJ,EAAYE,OAAQ,KAE/F,IAAK0F,IAAoB7F,GAAWqM,EAAsB,GACxD,MAAO,CACL5lB,WAAW,GAIXof,IAAiB5F,EAAYiM,YAAcG,GAC/C,IAAIC,GAAmBpoB,GAAW,EAAL,IAAW+b,EAAYG,KAAOH,EAAYC,OAAS,GAAK,GACjF2F,IAAiByG,EAAiBrM,EAAYI,KAAOJ,EAAYE,OAAS,GAAK,GACnF,IAAItM,EAAWrU,KAAKsU,KAAK5L,EAAapL,GAClCyvB,EAAiBtC,EAAkB7Y,EAAK6O,YAAa4F,GACrD2G,EAAmBvM,EAAYiM,YAwCnC,OAtCK5oB,IACkB,IAAjB2E,GAAyC,UAAnBskB,GAA8BtkB,EAAe,GAAK4L,GAA+B,SAAnB0Y,IAA8B7jB,EAAU0I,IAA4B,SAAnBmb,KACvIC,EAAmBvM,EAAYiM,YAAc9oB,GAEzB,IAAhBsc,GAAyBhc,IAC3BA,EAAO6oB,GACP1xB,EAAmB,aAAI,KAKxBklB,GAAU1b,IACbA,EAAWkoB,GACX1xB,EAAc,QAAI,GAUlBilB,EAPGnb,EAOSsnB,EAAUO,GAAoB5M,EAAaC,GAAayM,EAN/DpoB,EAGS+nB,EAAUO,EAAmBF,EAF7BL,EAAUO,EAAmBF,EAQzCzG,IACF/F,EAAYmM,EAAUO,EAAmBF,GAG3CzxB,EAAQvC,EAAc,GAAIuC,EAAO,CAC/BolB,YAAaA,EACbH,UAAWA,EACXnM,WAAYiQ,EAAYtrB,EAAc,GAAI8Y,EAAM,CAC9C0B,KAAMgN,OAINtgB,KAAKyZ,IAAIgH,EAAYG,KAAOH,EAAYC,QAA4D,GAAlD1gB,KAAKyZ,IAAIgH,EAAYI,KAAOJ,EAAYE,QACrFtlB,GAGLolB,EAAYiM,YAAc,KAC5BrxB,EAAe,SAAI,EACnB8M,EAAEC,kBAGG/M,KAoFTrH,EAAQyyB,SA/EO,SAAkBte,EAAGyJ,GAClC,IAAIqO,EAAWrO,EAAKqO,SAChBrb,EAAQgN,EAAKhN,MACb6b,EAAc7O,EAAK6O,YACnBJ,EAAYzO,EAAKyO,UACjBrb,EAAiB4M,EAAK5M,eACtBqhB,EAAkBzU,EAAKyU,gBACvBjG,EAAaxO,EAAKwO,WAClB3X,EAAemJ,EAAKnJ,aACpB3D,EAAe8M,EAAK9M,aACpBmC,EAAY2K,EAAK3K,UACjBgmB,EAAUrb,EAAKqb,QAEnB,IAAKhN,EAEH,OADIrb,GAAOuD,EAAEC,iBACN,GAGT,IAAI8kB,EAAW7G,EAAkBjG,EAAapb,EAAiBqb,EAAYrb,EACvE+nB,EAAiBtC,EAAkBhK,EAAa4F,GAEhDhrB,EAAQ,CACV4kB,UAAU,EACVC,aAAa,EACbjZ,WAAW,EACXuZ,SAAS,EACTD,QAAQ,EACRD,UAAW,KACXG,YAAa,IAGf,GAAIxZ,EACF,OAAO5L,EAGT,IAAKolB,EAAYiM,YACf,OAAOrxB,EAGT,GAAIolB,EAAYiM,YAAcQ,EAAU,CAOtC,IAAIxkB,EAAYrK,EAEhB,OARA8J,EAAEC,iBAEE6kB,GACFA,EAAQF,GAKFA,GACN,IAAK,OACL,IAAK,KACH1uB,EAAWoK,EAAe6hB,EAAc1Y,GACxClJ,EAAa5D,EAAeylB,EAAe3Y,EAAMvT,GAAYA,EAC7DhD,EAAwB,iBAAI,EAC5B,MAEF,IAAK,QACL,IAAK,OACHgD,EAAWoK,EAAe6hB,EAAc1Y,GACxClJ,EAAa5D,EAAeylB,EAAe3Y,EAAMvT,GAAYA,EAC7DhD,EAAwB,iBAAI,EAC5B,MAEF,QACEqN,EAAaD,EAGjBpN,EAA2B,oBAAIqN,MAC1B,CAEL,IAAIqX,EAAcoE,EAAavS,GAC/BvW,EAAkB,WAAI+uB,EAAmBtxB,EAAc,GAAI8Y,EAAM,CAC/D0B,KAAMyM,KAIV,OAAO1kB,GAKT,IAAImvB,EAAsB,SAA6B5Y,GAMrD,IALA,IAAI3R,EAAM2R,EAAK9N,SAA6B,EAAlB8N,EAAKlJ,WAAiBkJ,EAAKlJ,WACjDpN,EAAasW,EAAK9N,UAAgC,EAArB8N,EAAKpU,aAAoB,EACtD2vB,EAAUvb,EAAK9N,UAAgC,EAArB8N,EAAKpU,aAAoB,EACnD4vB,EAAU,GAEP9xB,EAAa2E,GAClBmtB,EAAQv0B,KAAKyC,GACbA,EAAa6xB,EAAUvb,EAAKtU,eAC5B6vB,GAAWntB,KAAKG,IAAIyR,EAAKtU,eAAgBsU,EAAKpU,cAGhD,OAAO4vB,GAGTp5B,EAAQw2B,oBAAsBA,EAE9B,IAAID,EAAiB,SAAwB3Y,EAAMnV,GACjD,IAAI4wB,EAAa7C,EAAoB5Y,GACjC0b,EAAgB,EAEpB,GAAI7wB,EAAQ4wB,EAAWA,EAAWz1B,OAAS,GACzC6E,EAAQ4wB,EAAWA,EAAWz1B,OAAS,QAEvC,IAAK,IAAI21B,KAAKF,EAAY,CACxB,GAAI5wB,EAAQ4wB,EAAWE,GAAI,CACzB9wB,EAAQ6wB,EACR,MAGFA,EAAgBD,EAAWE,GAI/B,OAAO9wB,GAGTzI,EAAQu2B,eAAiBA,EAEzB,IAAID,EAAgB,SAAuB1Y,GACzC,IAAII,EAAeJ,EAAKvU,WAAauU,EAAKsB,WAAalT,KAAKiS,MAAML,EAAKpU,aAAe,GAAK,EAE3F,GAAIoU,EAAK9M,aAAc,CACrB,IAAI0oB,EAIAnb,EAFY4O,EAAmB,QAAE8C,YAAYnS,EAAKuQ,SAE/BU,iBAAiB,gBAiBxC,GAhBAxsB,MAAMo3B,KAAKpb,GAAQqb,OAAM,SAAU3yB,GACjC,GAAK6W,EAAKzM,UAMR,GAAIpK,EAAM4yB,UAAY9L,EAAU9mB,GAAS,GAAsB,EAAlB6W,EAAK0O,UAEhD,OADAkN,EAAczyB,GACP,OAPT,GAAIA,EAAM6yB,WAAa5b,EAAe0Y,EAAS3vB,GAAS,GAAsB,EAAlB6W,EAAK0O,UAE/D,OADAkN,EAAczyB,GACP,EASX,OAAO,MAGJyyB,EACH,OAAO,EAGT,IAAIK,GAA4B,IAAbjc,EAAKlN,IAAekN,EAAKlJ,WAAakJ,EAAKnJ,aAAemJ,EAAKnJ,aAElF,OADsBzI,KAAKyZ,IAAI+T,EAAYM,QAAQrxB,MAAQoxB,IAAiB,EAG5E,OAAOjc,EAAKtU,gBAIhBtJ,EAAQs2B,cAAgBA,EAExB,IAAID,EAAgB,SAAuBzY,EAAMmc,GAC/C,OAAOA,EAAUxV,QAAO,SAAU5hB,EAAOmB,GACvC,OAAOnB,GAASib,EAAK7Z,eAAeD,MACnC,GAAQ,KAAOmG,QAAQ+vB,MAAM,gBAAiBpc,IAGnD5d,EAAQq2B,cAAgBA,EAExB,IAAIjG,EAAc,SAAqBxS,GAErC,IAAIkP,EAAYmN,EADhB5D,EAAczY,EAAM,CAAC,OAAQ,gBAAiB,aAAc,eAAgB,eAE5E,IAAIsc,EAAgBtc,EAAKlJ,WAAa,EAAIkJ,EAAKpU,aAE1CoU,EAAKzM,SAGR8oB,EAAcC,EAAgBtc,EAAKyB,YAFnCyN,EAAaqJ,EAAevY,GAAQA,EAAKsB,WAK3C,IAAIzU,EAAQ,CACVyR,QAAS,EACTZ,WAAY,GACZiE,iBAAkB,IAGhB3B,EAAK1M,aAIPzG,EAAQ3F,EAAc,GAAI2F,EAAO,CAC/B0vB,gBAJqBvc,EAAKzM,SAA0D,oBAAsByM,EAAK0B,KAAO,WAAjF,eAAiB1B,EAAK0B,KAAO,gBAKlE8a,UAJexc,EAAKzM,SAA0D,oBAAsByM,EAAK0B,KAAO,WAAjF,eAAiB1B,EAAK0B,KAAO,gBAK5D+a,YAJiBzc,EAAKzM,SAA+C,cAAgByM,EAAK0B,KAAO,MAAhE,cAAgB1B,EAAK0B,KAAO,QAO3D1B,EAAKzM,SACP1G,EAAW,IAAImT,EAAK0B,KAEpB7U,EAAY,KAAImT,EAAK0B,KAkBzB,OAdI1B,EAAKrU,OAAMkB,EAAQ,CACrByR,QAAS,IAEP4Q,IAAYriB,EAAMC,MAAQoiB,GAC1BmN,IAAaxvB,EAAMkH,OAASsoB,GAE5BrnB,SAAWA,OAAOC,kBAAoBD,OAAOsc,cAC1CtR,EAAKzM,SAGR1G,EAAM6vB,UAAY1c,EAAK0B,KAAO,KAF9B7U,EAAM8vB,WAAa3c,EAAK0B,KAAO,MAM5B7U,GAGTzK,EAAQowB,YAAcA,EAEtB,IAAIgG,EAAqB,SAA4BxY,GACnDyY,EAAczY,EAAM,CAAC,OAAQ,gBAAiB,aAAc,eAAgB,aAAc,QAAS,YACnG,IAAInT,EAAQ2lB,EAAYxS,GAaxB,OAXIA,EAAK1M,cACPzG,EAAM8U,iBAAmB,qBAAuB3B,EAAKjN,MAAQ,MAAQiN,EAAKrO,QAC1E9E,EAAM6Q,WAAa,aAAesC,EAAKjN,MAAQ,MAAQiN,EAAKrO,SAExDqO,EAAKzM,SACP1G,EAAM6Q,WAAa,OAASsC,EAAKjN,MAAQ,MAAQiN,EAAKrO,QAEtD9E,EAAM6Q,WAAa,QAAUsC,EAAKjN,MAAQ,MAAQiN,EAAKrO,QAIpD9E,GAGTzK,EAAQo2B,mBAAqBA,EAE7B,IAAIjG,EAAe,SAAsBvS,GACvC,GAAIA,EAAK7S,QACP,OAAO,EAGTsrB,EAAczY,EAAM,CAAC,aAAc,WAAY,WAAY,aAAc,aAAc,eAAgB,iBAAkB,aAAc,YAAa,gBAAiB,gBACrK,IAcI4c,EACA1I,EAfA5B,EAAatS,EAAKsS,WAClB9B,EAAWxQ,EAAKwQ,SAChBte,EAAW8N,EAAK9N,SAChBzG,EAAauU,EAAKvU,WAClBqL,EAAakJ,EAAKlJ,WAClBlL,EAAeoU,EAAKpU,aACpBF,EAAiBsU,EAAKtU,eACtB4V,EAAatB,EAAKsB,WAClBmN,EAAYzO,EAAKyO,UACjBviB,EAAgB8T,EAAK9T,cACrBuV,EAAczB,EAAKyB,YACnB9V,EAAOqU,EAAKrU,KACZ4H,EAAWyM,EAAKzM,SAMpB,GAAI5H,GAA4B,IAApBqU,EAAKlJ,WACf,OAAO,EAGT,IAAI+lB,EAAiB,EAiCrB,GA/BI3qB,GACF2qB,GAAkB5a,EAAajC,GAG3BlJ,EAAapL,GAAmB,GAAK4mB,EAAa5mB,EAAiBoL,IACrE+lB,IAAmBvK,EAAaxb,EAAalL,GAAgB0mB,EAAaxb,GAAcA,EAAapL,IAInGD,IACFoxB,GAAkBjvB,SAAShC,EAAe,MAGxCkL,EAAapL,GAAmB,GAAK4mB,EAAa5mB,EAAiBoL,IACrE+lB,EAAiBjxB,EAAekL,EAAapL,GAG3CD,IACFoxB,EAAiBjvB,SAAShC,EAAe,KAU3CgxB,EAHGrpB,EAGU+e,EAAa7Q,GAAe,EAL1Bob,EAAiBpb,EAGnB6Q,EAAahR,GAAc,EAJ5Bub,EAAiBvb,GAST,IAAlBpV,EAAwB,CAC1B,IAAI4wB,EAEAC,EAAY1N,EAAmB,QAAE8C,YAAY3B,GAMjD,GAJAsM,EAAmBxK,EAAarQ,EAAajC,GAE7C4c,GADA1I,EAAc6I,GAAaA,EAAUC,WAAWF,KACK,EAA1B5I,EAAY8H,WAAkB,GAEtC,IAAfvwB,EAAqB,CACvBqxB,EAAmB5qB,EAAWogB,EAAarQ,EAAajC,GAAQsS,EAChE4B,EAAc6I,GAAaA,EAAUlxB,SAASixB,GAC9CF,EAAa,EAEb,IAAK,IAAIzzB,EAAQ,EAAGA,EAAQ2zB,EAAkB3zB,IAC5CyzB,GAAcG,GAAaA,EAAUlxB,SAAS1C,IAAU4zB,EAAUlxB,SAAS1C,GAAOiwB,YAGpFwD,GAAchvB,SAASoS,EAAKtO,eAC5BkrB,GAAc1I,IAAgBzF,EAAYyF,EAAYkF,aAAe,GAIzE,OAAOwD,GAGTx6B,EAAQmwB,aAAeA,EAEvB,IAAItQ,EAAe,SAAsBjC,GACvC,OAAIA,EAAK7S,UAAY6S,EAAK9N,SACjB,EAGL8N,EAAK9T,cACA8T,EAAKlJ,WAGPkJ,EAAKpU,cAAgBoU,EAAKvU,WAAa,EAAI,IAGpDrJ,EAAQ6f,aAAeA,EAEvB,IAAI6Q,EAAgB,SAAuB9S,GACzC,OAAIA,EAAK7S,UAAY6S,EAAK9N,SACjB,EAGF8N,EAAKlJ,YAGd1U,EAAQ0wB,cAAgBA,EAExB,IAAIyF,EAAiB,SAAwBvY,GAC3C,OAA2B,IAApBA,EAAKlJ,WAAmB,EAAImL,EAAajC,GAAQA,EAAKlJ,WAAagc,EAAc9S,IAG1F5d,EAAQm2B,eAAiBA,EAEzB,IAAID,EAAmB,SAA0BtY,GAC/C,OAAIA,EAAKkU,YAAclU,EAAKnJ,aACtBmJ,EAAKkU,YAAclU,EAAKnJ,aAAewhB,EAAcrY,GAChD,OAGF,QAEHA,EAAKkU,YAAclU,EAAKnJ,aAAeuhB,EAAapY,GAC/C,QAGF,QAIX5d,EAAQk2B,iBAAmBA,EAE3B,IAAID,EAAgB,SAAuBhb,GACzC,IAAIzR,EAAeyR,EAAKzR,aACpBH,EAAa4R,EAAK5R,WAClBqH,EAAMuK,EAAKvK,IACXpB,EAAgB2L,EAAK3L,cAEzB,GAAIjG,EAAY,CACd,IAAI2b,GAASxb,EAAe,GAAK,EAAI,EAGrC,OAFIgC,SAAS8D,GAAiB,IAAG0V,GAAS,GACtCtU,GAAOlH,EAAe,GAAM,IAAGwb,GAAS,GACrCA,EAGT,OAAItU,EACK,EAGFlH,EAAe,GAGxBxJ,EAAQi2B,cAAgBA,EAExB,IAAID,EAAe,SAAsB6E,GACvC,IAAIrxB,EAAeqxB,EAAMrxB,aACrBH,EAAawxB,EAAMxxB,WACnBqH,EAAMmqB,EAAMnqB,IACZpB,EAAgBurB,EAAMvrB,cAE1B,GAAIjG,EAAY,CACd,IAAIiW,GAAQ9V,EAAe,GAAK,EAAI,EAGpC,OAFIgC,SAAS8D,GAAiB,IAAGgQ,GAAQ,GACpC5O,GAAOlH,EAAe,GAAM,IAAG8V,GAAQ,GACrCA,EAGT,OAAI5O,EACKlH,EAAe,EAGjB,GAGTxJ,EAAQg2B,aAAeA,EAMvBh2B,EAAQkG,UAJQ,WACd,QAA4B,oBAAX0M,SAA0BA,OAAO0O,WAAY1O,OAAO0O,SAASzhB","file":"a37d4d135b6ae7c3ca7b8182acbb134f027be2ab-653726a0e2198a4721f0.js","sourcesContent":["var React = require('react');\n\nfunction UpwardsArrow (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"fill\":\"none\",\"fillRule\":\"evenodd\",\"strokeWidth\":\"2\",\"transform\":\"rotate(-90 26 25)\"},[React.createElement(\"circle\",{\"cx\":\"25\",\"cy\":\"25\",\"r\":\"25\",\"key\":0}),React.createElement(\"path\",{\"d\":\"M20.935 11.565L34.37 25 20.935 38.435\",\"key\":1})]));\n}\n\nUpwardsArrow.defaultProps = {\"viewBox\":\"0 0 52 52\"};\n\nmodule.exports = UpwardsArrow;\n\nUpwardsArrow.default = UpwardsArrow;\n","/* eslint-disable react/prop-types */\nimport React from 'react'\nimport Image from '@/utils/Image'\nimport Form from '@/components/Form'\nimport useForm from '@/hooks/useForm'\n\nconst defaultHeading =\n\t'Be the first to know\\nGet all the latest\\ncurated news on\\nhaptics and next\\ngeneration interfaces, straight\\nto your inbox.'\n\nfunction ContactForm({\n\tcopy,\n\theading = defaultHeading,\n\tform_image,\n\tsaleforces_form_id = 3504,\n}) {\n\tconst { nodes } = useForm()\n\tconst form = nodes.find(item => item.wordpress_id === saleforces_form_id)\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{heading}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t{copy &&

{copy}

}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\tBy signing up, you are agreeing to our{' '}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tprivacy policy\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t.\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t{/* {form_image && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)} */}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t)\n}\n\nexport default ContactForm\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nexport default function rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n\n return getRandomValues(rnds8);\n}","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\nexport default bytesToUuid;","import rng from './rng.js';\nimport bytesToUuid from './bytesToUuid.js';\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof options == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nexport default v4;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _innerSlider = require(\"./inner-slider\");\n\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\n\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _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\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Slider).call(this, props));\n\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n\n }, {\n key: \"UNSAFE_componentWillMount\",\n value: function UNSAFE_componentWillMount() {\n var _this2 = this; // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n\n\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread({}, _defaultProps[\"default\"], {}, this.props, {}, newProps[0].settings);\n } else {\n settings = _objectSpread({}, _defaultProps[\"default\"], {}, this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react[\"default\"].Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push(_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push(_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push(_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push(_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return _react[\"default\"].createElement(\"div\", {\n className: className\n }, newChildren);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return _react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n\n return Slider;\n}(_react[\"default\"].Component);\n\nexports[\"default\"] = Slider;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n/** Used as references for various `Number` constants. */\n\nvar NAN = 0 / 0;\n/** `Object#toString` result references. */\n\nvar symbolTag = '[object Symbol]';\n/** Used to match leading and trailing whitespace. */\n\nvar reTrim = /^\\s+|\\s+$/g;\n/** Used to detect bad signed hexadecimal string values. */\n\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n/** Used to detect binary string values. */\n\nvar reIsBinary = /^0b[01]+$/i;\n/** Used to detect octal string values. */\n\nvar reIsOctal = /^0o[0-7]+$/i;\n/** Built-in method references without a dependency on `root`. */\n\nvar freeParseInt = parseInt;\n/** Detect free variable `global` from Node.js. */\n\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n/** Detect free variable `self`. */\n\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\n/** Used for built-in method references. */\n\nvar objectProto = Object.prototype;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar objectToString = objectProto.toString;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n\nvar now = function now() {\n return root.Date.now();\n};\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n\n\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n wait = toNumber(wait) || 0;\n\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time; // Start the timer for the trailing edge.\n\n timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.\n\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = now();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n\n\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n\n\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n\n\nfunction isSymbol(value) {\n return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n}\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n\n\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n\n if (isSymbol(value)) {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? other + '' : other;\n }\n\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\n\nmodule.exports = debounce;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return _react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return _react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nvar _default = defaultProps;\nexports[\"default\"] = _default;","var camel2hyphen = function camel2hyphen(str) {\n return str.replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n }).toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","import { useStaticQuery, graphql } from 'gatsby'\n// eslint-disable-next-line no-unused-vars\nimport { formQuery } from '@/queries'\n\nfunction useForm() {\n\tconst data = useStaticQuery(graphql`\n\t\t{\n\t\t\tform: allWordpressWpForm {\n\t\t\t\t...formQuery\n\t\t\t}\n\t\t}\n\t`)\n\n\treturn data.form\n}\n\nexport default useForm\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"imageSlider\":\"SimpleSlider-module--imageSlider--3WSHJ\",\"slideItem\":\"SimpleSlider-module--slideItem--UQrMS\",\"slideItemBg\":\"SimpleSlider-module--slideItemBg--3wuDk\",\"slideItemContent\":\"SimpleSlider-module--slideItemContent--15_IF\"};","import React, { useEffect, useRef, useState, useCallback, memo } from 'react'\nimport { string } from 'prop-types'\n\nfunction Form({\n\tform_name = 'Contact Form',\n\tform_id = 'https://www2.ultraleap.com/l/727963/2019-09-18/25v4s',\n\tform_height\n}) {\n\tconst height = form_height || 230\n\tconst form_name_cleaned = form_name.replace(/\\s/g, '')\n\tconst iframe = useRef()\n\tconst [style, setStyle] = useState({ minHeight: +height })\n\n\tconst onLoad = useCallback(() => {\n\t\tsetStyle({ minHeight: +height })\n\t}, [])\n\n\tconst onMessage = useCallback(event => {\n\t\tif (event.origin === 'https://www2.ultraleap.com' && event.data === 50) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetStyle({ height: 230 })\n\t\t\t})\n\t\t}\n\t}, [])\n\n\tuseEffect(() => {\n\t\tconst frame = iframe.current\n\t\tif (window) {\n\t\t\tframe.addEventListener('load', onLoad)\n\t\t\twindow.addEventListener('message', onMessage)\n\t\t}\n\n\t\treturn () => {\n\t\t\tframe.removeEventListener('load', onLoad)\n\t\t\twindow.removeEventListener('message', onMessage)\n\t\t}\n\t}, [onLoad, onMessage])\n\n\treturn (\n\t\t\n\t)\n}\n\nForm.propTypes = {\n\tform_name: string,\n\tform_id: string\n}\n\nexport default memo(Form)\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for (i; i < length; i++) {\n cont = fn(collection[i], i);\n\n if (cont === false) {\n break; //allow early exit\n }\n }\n}\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\n\n\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\n\n\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction: isFunction,\n isArray: isArray,\n each: each\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NextArrow = exports.PrevArrow = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nvar PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(PrevArrow).apply(this, arguments));\n }\n\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n\n if (this.props.prevArrow) {\n prevArrow = _react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread({}, prevArrowProps, {}, customProps));\n } else {\n prevArrow = _react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n\n return prevArrow;\n }\n }]);\n\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.PrevArrow = PrevArrow;\n\nvar NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(NextArrow).apply(this, arguments));\n }\n\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n\n if (this.props.nextArrow) {\n nextArrow = _react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread({}, nextArrowProps, {}, customProps));\n } else {\n nextArrow = _react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n\n return nextArrow;\n }\n }]);\n\n return NextArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.NextArrow = NextArrow;","import React from 'react';\nimport AnimateEntrance from '@/utils/AnimateEntrance'\nimport { containerVariants } from '@/utils/transitions'\nimport classNames from 'classnames';\nimport ButtonGradient from '@/components/global/ButtonGradient'\nimport Image from '../../utils/Image';\nimport Link from '../../utils/Link';\n\nimport styles from './TextImageCtaBlock.module.css';\n\nconst TextImageCtaBlock = ({\n\timage_text_cta_background_colour: bg,\n\timage_text_cta_background_gradient: gradient,\n\timage_text_cta_cta_background_colour: linkBgColour,\n\timage_text_cta_cta_link: link,\n\timage_text_cta_cta_text_colour: linkTextColour,\n\timage_text_cta_cta_type: linkType,\n\timage_text_cta_text: text,\n\timage_text_cta_text_colour: textColour,\n\timage_text_cta_title: title,\n\timage_text_cta_image: image,\n\tsize,\n}) => {\n\tconst containerStyle = {\n\t\tcolor: textColour === 'dark' ? 'black' : textColour === 'light' ? 'white' : 'black',\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\n\t\t\t\t{ !image ? null :\n\t\t\t\t\t\n\t\t\t\t}\n\n\t\t\t\t
\n\t\t\t\t\t{ !title ? null :\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t

\n\t\t\t\t\t}\n\n\t\t\t\t\t{ !text ? null :\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\t{ text }\n\t\t\t\t\t\t

\n\t\t\t\t\t}\n\n\t\t\t\t\t{ !link.title ? null :\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ link.title }\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t
\n\n\t\t\t\n\t\t\n\t);\n};\n\nexport default TextImageCtaBlock;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(require(\"./slider\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;","import { createElement, Component, useRef, useState, useCallback, useEffect } from 'react';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar ObserverMap = new Map();\nvar RootIds = new Map();\nvar rootId = 0;\n/**\r\n * Generate a unique ID for the root element\r\n * @param root\r\n */\n\nfunction getRootId(root) {\n if (!root) return '0';\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\n/**\r\n * Convert the options to a string Id, based on the values.\r\n * Ensures we can reuse the same observer when observing elements with the same options.\r\n * @param options\r\n */\n\n\nfunction optionsToId(options) {\n return Object.keys(options).filter(Boolean).sort().map(function (key) {\n return key + \"_\" + (key === 'root' ? getRootId(options.root) : options[key]);\n }).toString();\n}\n\nfunction createObserver(options) {\n // Create a unique ID for this observer instance, based on the root, root margin and threshold.\n var id = optionsToId(options);\n var instance = ObserverMap.get(id);\n\n if (!instance) {\n // Create a map of elements this observer is going to observe. Each element has a list of callbacks that should be triggered, once it comes into view.\n var elements = new Map();\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n var _elements$get; // While it would be nice if you could just look at isIntersecting to determine if the component is inside the viewport, browsers can't agree on how to use it.\n // -Firefox ignores `threshold` when considering `isIntersecting`, so it will never be false again if `threshold` is > 0\n\n\n var inView = entry.isIntersecting && observer.thresholds.some(function (threshold) {\n return entry.intersectionRatio >= threshold;\n }); // @ts-ignore support IntersectionObserver v2\n\n if (options.trackVisibility && typeof entry.isVisible === 'undefined') {\n // The browser doesn't support Intersection Observer v2, falling back to v1 behavior.\n // @ts-ignore\n entry.isVisible = inView;\n }\n\n (_elements$get = elements.get(entry.target)) == null ? void 0 : _elements$get.forEach(function (callback) {\n callback(inView, entry);\n });\n });\n }, options);\n instance = {\n id: id,\n observer: observer,\n elements: elements\n };\n ObserverMap.set(id, instance);\n }\n\n return instance;\n}\n\nfunction observe(element, callback, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!element) return function () {}; // An observer with the same options can be reused, so lets use this fact\n\n var _createObserver = createObserver(options),\n id = _createObserver.id,\n observer = _createObserver.observer,\n elements = _createObserver.elements; // Register the callback listener for this element\n\n\n var callbacks = elements.get(element) || [];\n\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n // Remove the callback from the callback list\n callbacks.splice(callbacks.indexOf(callback), 1);\n\n if (callbacks.length === 0) {\n // No more callback exists for element, so destroy it\n elements[\"delete\"](element);\n observer.unobserve(element);\n }\n\n if (elements.size === 0) {\n // No more elements are being observer by this instance, so destroy it\n observer.disconnect();\n ObserverMap[\"delete\"](id);\n }\n };\n}\n\nfunction isPlainChildren(props) {\n return typeof props.children !== 'function';\n}\n/**\r\n * Monitors scroll, and triggers the children function with updated props\r\n */\n\n\nvar InView = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InView, _React$Component);\n\n function InView(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.node = null;\n _this._unobserveCb = null;\n\n _this.handleNode = function (node) {\n if (_this.node) {\n // Clear the old observer, before we start observing a new element\n _this.unobserve();\n\n if (!node && !_this.props.triggerOnce && !_this.props.skip) {\n // Reset the state if we get a new node, and we aren't ignoring updates\n _this.setState({\n inView: !!_this.props.initialInView,\n entry: undefined\n });\n }\n }\n\n _this.node = node ? node : null;\n\n _this.observeNode();\n };\n\n _this.handleChange = function (inView, entry) {\n if (inView && _this.props.triggerOnce) {\n // If `triggerOnce` is true, we should stop observing the element.\n _this.unobserve();\n }\n\n if (!isPlainChildren(_this.props)) {\n // Store the current State, so we can pass it to the children in the next render update\n // There's no reason to update the state for plain children, since it's not used in the rendering.\n _this.setState({\n inView: inView,\n entry: entry\n });\n }\n\n if (_this.props.onChange) {\n // If the user is actively listening for onChange, always trigger it\n _this.props.onChange(inView, entry);\n }\n };\n\n _this.state = {\n inView: !!props.initialInView,\n entry: undefined\n };\n return _this;\n }\n\n var _proto = InView.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n // If a IntersectionObserver option changed, reinit the observer\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.unobserve();\n this.node = null;\n };\n\n _proto.observeNode = function observeNode() {\n if (!this.node || this.props.skip) return;\n var _this$props = this.props,\n threshold = _this$props.threshold,\n root = _this$props.root,\n rootMargin = _this$props.rootMargin,\n trackVisibility = _this$props.trackVisibility,\n delay = _this$props.delay;\n this._unobserveCb = observe(this.node, this.handleChange, {\n threshold: threshold,\n root: root,\n rootMargin: rootMargin,\n // @ts-ignore\n trackVisibility: trackVisibility,\n // @ts-ignore\n delay: delay\n });\n };\n\n _proto.unobserve = function unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n\n this._unobserveCb = null;\n }\n };\n\n _proto.render = function render() {\n if (!isPlainChildren(this.props)) {\n var _this$state = this.state,\n inView = _this$state.inView,\n entry = _this$state.entry;\n return this.props.children({\n inView: inView,\n entry: entry,\n ref: this.handleNode\n });\n }\n\n var _this$props2 = this.props,\n children = _this$props2.children,\n as = _this$props2.as,\n tag = _this$props2.tag,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"children\", \"as\", \"tag\", \"triggerOnce\", \"threshold\", \"root\", \"rootMargin\", \"onChange\", \"skip\", \"trackVisibility\", \"delay\", \"initialInView\"]);\n\n return /*#__PURE__*/createElement(as || tag || 'div', _extends({\n ref: this.handleNode\n }, props), children);\n };\n\n return InView;\n}(Component);\n\nInView.displayName = 'InView';\nInView.defaultProps = {\n threshold: 0,\n triggerOnce: false,\n initialInView: false\n};\n\nfunction useInView(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n threshold = _ref.threshold,\n delay = _ref.delay,\n trackVisibility = _ref.trackVisibility,\n rootMargin = _ref.rootMargin,\n root = _ref.root,\n triggerOnce = _ref.triggerOnce,\n skip = _ref.skip,\n initialInView = _ref.initialInView;\n\n var unobserve = useRef();\n\n var _React$useState = useState({\n inView: !!initialInView\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var setRef = useCallback(function (node) {\n if (unobserve.current !== undefined) {\n unobserve.current();\n unobserve.current = undefined;\n } // Skip creating the observer\n\n\n if (skip) return;\n\n if (node) {\n unobserve.current = observe(node, function (inView, entry) {\n setState({\n inView: inView,\n entry: entry\n });\n\n if (entry.isIntersecting && triggerOnce && unobserve.current) {\n // If it should only trigger once, unobserve the element after it's inView\n unobserve.current();\n unobserve.current = undefined;\n }\n }, {\n root: root,\n rootMargin: rootMargin,\n threshold: threshold,\n // @ts-ignore\n trackVisibility: trackVisibility,\n // @ts-ignore\n delay: delay\n });\n }\n }, // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [// If the threshold is an array, convert it to a string so it won't change between renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Array.isArray(threshold) ? threshold.toString() : threshold, root, rootMargin, triggerOnce, skip, trackVisibility, delay]);\n /* eslint-disable-next-line */\n\n useEffect(function () {\n if (!unobserve.current && state.entry && !triggerOnce && !skip) {\n // If we don't have a ref, then reset the state (unless the hook is set to only `triggerOnce` or `skip`)\n // This ensures we correctly reflect the current state - If you aren't observing anything, then nothing is inView\n setState({\n inView: !!initialInView\n });\n }\n });\n var result = [setRef, state.inView, state.entry]; // Support object destructuring, by adding the specific values.\n\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\n\nexport default InView;\nexport { InView, useInView };","import React from 'react'\nimport { string, node, bool, number } from 'prop-types'\nimport { motion } from 'framer-motion'\nimport classNames from 'classnames'\nimport { useInView } from 'react-intersection-observer'\nimport Node from '@/utils/Node'\n\nconst variants = {\n\topen: { x: 0, transition: { duration: 0.5 } },\n\tclosed: { x: '-100%' }\n}\n\nfunction SectionHeading({\n\tas = 'h3',\n\tchildren,\n\tclassName = 'mb-12 text-sm text-white',\n\tanimate = false,\n\tthreshold = 0,\n\trootMargin = '-20px',\n\tsize = 'w-20 lg:w-32',\n\t...rest\n}) {\n\tconst [ref, inView] = useInView({ threshold, rootMargin })\n\tconst shouldAnimate = animate || inView\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t{children}\n\t\t\n\t)\n}\n\nSectionHeading.propTypes = {\n\tchildren: node.isRequired,\n\tclassName: string,\n\tanimate: bool,\n\tas: string,\n\trootMargin: string,\n\tsize: string,\n\tthreshold: number\n}\n\nexport default SectionHeading\n","const transition = { duration: 0.5, ease: [0.43, 0.13, 0.23, 0.96] }\n\nexport const fade = {\n\tinitial: { opacity: 0 },\n\tenter: { opacity: 1, transition },\n\texit: {\n\t\topacity: 0,\n\t\ttransition: { duration: 1.5, ...transition }\n\t}\n}\n\nexport const containerSwipeVariants = {\n\tshow: {\n\t\tclipPath: `polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%)`,\n\t\ttransition: {\n\t\t\tdelay: 0.3,\n\t\t\ttype: 'spring',\n\t\t\tdamping: 80,\n\t\t\tstiffness: 50,\n\t\t\tstaggerChildren: 0.3,\n\t\t\tdelayChildren: 0.2\n\t\t}\n\t},\n\thide: {\n\t\tclipPath: `polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%)`,\n\t\ttransition: {\n\t\t\tduration: 0.3\n\t\t}\n\t}\n}\n\nexport const containerVariants = {\n\tshow: {\n\t\ttransition: {\n\t\t\ttype: 'spring',\n\t\t\tdamping: 100,\n\t\t\tstiffness: 50,\n\t\t\tstaggerChildren: 0.3,\n\t\t\tdelayChildren: 0.2\n\t\t}\n\t},\n\thide: {\n\t\ttransition: {\n\t\t\tdelay: 0.23,\n\t\t\tduration: 0.3\n\t\t}\n\t}\n}\n\nexport const imageVariants = {\n\tshow: {\n\t\tclipPath: `polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%)`,\n\t\ttransition: {\n\t\t\tdelay: 0.3,\n\t\t\tduration: 0.7\n\t\t}\n\t},\n\thide: {\n\t\tclipPath: `polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%)`,\n\t\ttransition: {\n\t\t\tdelay: 0,\n\t\t\tduration: 0.7\n\t\t}\n\t}\n}\n\n// polygon(69% 0, 100% 0, 100% 100%, 70% 100%);\n\nexport const imageVariantsAlt = {\n\tshow: {\n\t\t// -1% and 101% to prevent hairline background showing through\n\t\tclipPath: `polygon(-1% 0%, 100% -1%, 100% 101%, 0% 101%)`,\n\t\ttransition: {\n\t\t\tdelay: 0.3,\n\t\t\tduration: 0.7\n\t\t}\n\t},\n\thide: {\n\t\tclipPath: `polygon(100% 0%, 100% 0%, 100% 100%, 100% 100%)`,\n\t\ttransition: {\n\t\t\tdelay: 0,\n\t\t\tduration: 0.7\n\t\t}\n\t}\n}\n\nexport const textVariants = {\n\tshow: { opacity: 1, y: 0, transition: { duration: 0.5 } },\n\thide: { opacity: 0, y: 50 }\n}\n\nexport const bannerVariants = {\n\tshow: { opacity: 1, scale: 1, transition: { duration: 0.7, delay: 0 } },\n\thide: { opacity: 0, scale: 1.2 }\n}\n","/* eslint-disable react/prop-types */\nimport React from 'react'\nimport { string, object } from 'prop-types'\nimport classNames from 'classnames'\nimport Link from '@/utils/Link'\nimport SectionHeading from '@/components/global/SectionHeading'\nimport Image from '@/utils/Image'\nimport IconWrapper from '@/utils/IconWrapper'\nimport Arrow from '@/icons/upwards-arrow.svg'\n\nfunction CaseStudyCard({\n\tclassName,\n\ttitle,\n\timage,\n\tpath,\n\tlabel = 'Case study'\n}) {\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{image && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t

\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
Read more
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t)\n}\n\nCaseStudyCard.propTypes = {\n\ttitle: string.isRequired,\n\tpath: string.isRequired,\n\t// eslint-disable-next-line react/forbid-prop-types\n\timage: object\n}\n\nexport default CaseStudyCard\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _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} // given specifications/props for a slide, fetch all the classes that need to be applied to the slide\n\n\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var slickCurrent = index === spec.currentSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n style.WebkitTransition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = _react[\"default\"].createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_objectSpread({}, spec, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread({}, spec, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push(_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread({\n outline: \"none\"\n }, child.props.style || {}, {}, childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread({}, spec, {\n index: key\n }));\n preCloneSlides.push(_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread({}, child.props.style || {}, {}, childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread({}, spec, {\n index: key\n }));\n postCloneSlides.push(_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread({}, child.props.style || {}, {}, childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n function Track() {\n _classCallCheck(this, Track);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Track).apply(this, arguments));\n }\n\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return _react[\"default\"].createElement(\"div\", _extends({\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n\n return Track;\n}(_react[\"default\"].PureComponent);\n\nexports.Track = Track;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"TextImageCtaBlock-module--container--sFxm2\",\"textContainer\":\"TextImageCtaBlock-module--textContainer--nqYsk\",\"title\":\"TextImageCtaBlock-module--title--2n3ph\",\"link\":\"TextImageCtaBlock-module--link--3lDmO\",\"image\":\"TextImageCtaBlock-module--image--35i6M\",\"text\":\"TextImageCtaBlock-module--text--2fTFe\"};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nvar getDotCount = function getDotCount(spec) {\n var dots;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nvar Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n\n function Dots() {\n _classCallCheck(this, Dots);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Dots).apply(this, arguments));\n }\n\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this = this;\n\n var dotCount = getDotCount({\n slideCount: this.props.slideCount,\n slidesToScroll: this.props.slidesToScroll,\n slidesToShow: this.props.slidesToShow,\n infinite: this.props.infinite\n }); // Apply join & split to Array to pre-fill it for IE8\n //\n // Credit: http://stackoverflow.com/a/13735425/1849458\n\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = Array.apply(null, Array(dotCount + 1).join(\"0\").split(\"\")).map(function (x, i) {\n var leftBound = i * _this.props.slidesToScroll;\n var rightBound = i * _this.props.slidesToScroll + (_this.props.slidesToScroll - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": _this.props.currentSlide >= leftBound && _this.props.currentSlide <= rightBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: _this.props.slidesToScroll,\n currentSlide: _this.props.currentSlide\n };\n\n var onClick = _this.clickHandler.bind(_this, dotOptions);\n\n return _react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, _react[\"default\"].cloneElement(_this.props.customPaging(i), {\n onClick: onClick\n }));\n });\n return _react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n\n return Dots;\n}(_react[\"default\"].PureComponent);\n\nexports.Dots = Dots;","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\n\n/* eslint-disable require-jsdoc, valid-jsdoc */\nvar MapShim = function () {\n if (typeof Map !== 'undefined') {\n return Map;\n }\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\n\n\n function getIndex(arr, key) {\n var result = -1;\n arr.some(function (entry, index) {\n if (entry[0] === key) {\n result = index;\n return true;\n }\n\n return false;\n });\n return result;\n }\n\n return (\n /** @class */\n function () {\n function class_1() {\n this.__entries__ = [];\n }\n\n Object.defineProperty(class_1.prototype, \"size\", {\n /**\r\n * @returns {boolean}\r\n */\n get: function get() {\n return this.__entries__.length;\n },\n enumerable: true,\n configurable: true\n });\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\n\n class_1.prototype.get = function (key) {\n var index = getIndex(this.__entries__, key);\n var entry = this.__entries__[index];\n return entry && entry[1];\n };\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.set = function (key, value) {\n var index = getIndex(this.__entries__, key);\n\n if (~index) {\n this.__entries__[index][1] = value;\n } else {\n this.__entries__.push([key, value]);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.delete = function (key) {\n var entries = this.__entries__;\n var index = getIndex(entries, key);\n\n if (~index) {\n entries.splice(index, 1);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.has = function (key) {\n return !!~getIndex(this.__entries__, key);\n };\n /**\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.clear = function () {\n this.__entries__.splice(0);\n };\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.forEach = function (callback, ctx) {\n if (ctx === void 0) {\n ctx = null;\n }\n\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\n var entry = _a[_i];\n callback.call(ctx, entry[1], entry[0]);\n }\n };\n\n return class_1;\n }()\n );\n}();\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\n\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document; // Returns global object of a current environment.\n\nvar global$1 = function () {\n if (typeof global !== 'undefined' && global.Math === Math) {\n return global;\n }\n\n if (typeof self !== 'undefined' && self.Math === Math) {\n return self;\n }\n\n if (typeof window !== 'undefined' && window.Math === Math) {\n return window;\n } // eslint-disable-next-line no-new-func\n\n\n return Function('return this')();\n}();\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\n\n\nvar requestAnimationFrame$1 = function () {\n if (typeof requestAnimationFrame === 'function') {\n // It's required to use a bounded function because IE sometimes throws\n // an \"Invalid calling object\" error if rAF is invoked without the global\n // object on the left hand side.\n return requestAnimationFrame.bind(global$1);\n }\n\n return function (callback) {\n return setTimeout(function () {\n return callback(Date.now());\n }, 1000 / 60);\n };\n}(); // Defines minimum timeout before adding a trailing call.\n\n\nvar trailingTimeout = 2;\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\n\nfunction throttle(callback, delay) {\n var leadingCall = false,\n trailingCall = false,\n lastCallTime = 0;\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\n\n function resolvePending() {\n if (leadingCall) {\n leadingCall = false;\n callback();\n }\n\n if (trailingCall) {\n proxy();\n }\n }\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\n\n\n function timeoutCallback() {\n requestAnimationFrame$1(resolvePending);\n }\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\n\n\n function proxy() {\n var timeStamp = Date.now();\n\n if (leadingCall) {\n // Reject immediately following calls.\n if (timeStamp - lastCallTime < trailingTimeout) {\n return;\n } // Schedule new call to be in invoked when the pending one is resolved.\n // This is important for \"transitions\" which never actually start\n // immediately so there is a chance that we might miss one if change\n // happens amids the pending invocation.\n\n\n trailingCall = true;\n } else {\n leadingCall = true;\n trailingCall = false;\n setTimeout(timeoutCallback, delay);\n }\n\n lastCallTime = timeStamp;\n }\n\n return proxy;\n} // Minimum delay before invoking the update of observers.\n\n\nvar REFRESH_DELAY = 20; // A list of substrings of CSS properties used to find transition events that\n// might affect dimensions of observed elements.\n\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight']; // Check if MutationObserver is available.\n\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\n\nvar ResizeObserverController =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\n function ResizeObserverController() {\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\n this.connected_ = false;\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\n\n this.mutationEventsAdded_ = false;\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\n\n this.mutationsObserver_ = null;\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\n\n this.observers_ = [];\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\n }\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.addObserver = function (observer) {\n if (!~this.observers_.indexOf(observer)) {\n this.observers_.push(observer);\n } // Add listeners if they haven't been added yet.\n\n\n if (!this.connected_) {\n this.connect_();\n }\n };\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.removeObserver = function (observer) {\n var observers = this.observers_;\n var index = observers.indexOf(observer); // Remove observer if it's present in registry.\n\n if (~index) {\n observers.splice(index, 1);\n } // Remove listeners if controller has no connected observers.\n\n\n if (!observers.length && this.connected_) {\n this.disconnect_();\n }\n };\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.refresh = function () {\n var changesDetected = this.updateObservers_(); // Continue running updates if changes have been detected as there might\n // be future ones caused by CSS transitions.\n\n if (changesDetected) {\n this.refresh();\n }\n };\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\n\n\n ResizeObserverController.prototype.updateObservers_ = function () {\n // Collect observers that have active observations.\n var activeObservers = this.observers_.filter(function (observer) {\n return observer.gatherActive(), observer.hasActive();\n }); // Deliver notifications in a separate cycle in order to avoid any\n // collisions between observers, e.g. when multiple instances of\n // ResizeObserver are tracking the same element and the callback of one\n // of them changes content dimensions of the observed target. Sometimes\n // this may result in notifications being blocked for the rest of observers.\n\n activeObservers.forEach(function (observer) {\n return observer.broadcastActive();\n });\n return activeObservers.length > 0;\n };\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.connect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already added.\n if (!isBrowser || this.connected_) {\n return;\n } // Subscription to the \"Transitionend\" event is used as a workaround for\n // delayed transitions. This way it's possible to capture at least the\n // final state of an element.\n\n\n document.addEventListener('transitionend', this.onTransitionEnd_);\n window.addEventListener('resize', this.refresh);\n\n if (mutationObserverSupported) {\n this.mutationsObserver_ = new MutationObserver(this.refresh);\n this.mutationsObserver_.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n } else {\n document.addEventListener('DOMSubtreeModified', this.refresh);\n this.mutationEventsAdded_ = true;\n }\n\n this.connected_ = true;\n };\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.disconnect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already removed.\n if (!isBrowser || !this.connected_) {\n return;\n }\n\n document.removeEventListener('transitionend', this.onTransitionEnd_);\n window.removeEventListener('resize', this.refresh);\n\n if (this.mutationsObserver_) {\n this.mutationsObserver_.disconnect();\n }\n\n if (this.mutationEventsAdded_) {\n document.removeEventListener('DOMSubtreeModified', this.refresh);\n }\n\n this.mutationsObserver_ = null;\n this.mutationEventsAdded_ = false;\n this.connected_ = false;\n };\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\n var _b = _a.propertyName,\n propertyName = _b === void 0 ? '' : _b; // Detect whether transition may affect dimensions of an element.\n\n var isReflowProperty = transitionKeys.some(function (key) {\n return !!~propertyName.indexOf(key);\n });\n\n if (isReflowProperty) {\n this.refresh();\n }\n };\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\n\n\n ResizeObserverController.getInstance = function () {\n if (!this.instance_) {\n this.instance_ = new ResizeObserverController();\n }\n\n return this.instance_;\n };\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\n\n\n ResizeObserverController.instance_ = null;\n return ResizeObserverController;\n}();\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\n\n\nvar defineConfigurable = function defineConfigurable(target, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var key = _a[_i];\n Object.defineProperty(target, key, {\n value: props[key],\n enumerable: false,\n writable: false,\n configurable: true\n });\n }\n\n return target;\n};\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\n\n\nvar getWindowOf = function getWindowOf(target) {\n // Assume that the element is an instance of Node, which means that it\n // has the \"ownerDocument\" property from which we can retrieve a\n // corresponding global object.\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView; // Return the local global object if it's not possible extract one from\n // provided element.\n\n return ownerGlobal || global$1;\n}; // Placeholder of an empty content rectangle.\n\n\nvar emptyRect = createRectInit(0, 0, 0, 0);\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\n\nfunction toFloat(value) {\n return parseFloat(value) || 0;\n}\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\n\n\nfunction getBordersSize(styles) {\n var positions = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n positions[_i - 1] = arguments[_i];\n }\n\n return positions.reduce(function (size, position) {\n var value = styles['border-' + position + '-width'];\n return size + toFloat(value);\n }, 0);\n}\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\n\n\nfunction getPaddings(styles) {\n var positions = ['top', 'right', 'bottom', 'left'];\n var paddings = {};\n\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\n var position = positions_1[_i];\n var value = styles['padding-' + position];\n paddings[position] = toFloat(value);\n }\n\n return paddings;\n}\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getSVGContentRect(target) {\n var bbox = target.getBBox();\n return createRectInit(0, 0, bbox.width, bbox.height);\n}\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getHTMLElementContentRect(target) {\n // Client width & height properties can't be\n // used exclusively as they provide rounded values.\n var clientWidth = target.clientWidth,\n clientHeight = target.clientHeight; // By this condition we can catch all non-replaced inline, hidden and\n // detached elements. Though elements with width & height properties less\n // than 0.5 will be discarded as well.\n //\n // Without it we would need to implement separate methods for each of\n // those cases and it's not possible to perform a precise and performance\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\n // gives wrong results for elements with width & height less than 0.5.\n\n if (!clientWidth && !clientHeight) {\n return emptyRect;\n }\n\n var styles = getWindowOf(target).getComputedStyle(target);\n var paddings = getPaddings(styles);\n var horizPad = paddings.left + paddings.right;\n var vertPad = paddings.top + paddings.bottom; // Computed styles of width & height are being used because they are the\n // only dimensions available to JS that contain non-rounded values. It could\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\n // affected by CSS transformations let alone paddings, borders and scroll bars.\n\n var width = toFloat(styles.width),\n height = toFloat(styles.height); // Width & height include paddings and borders when the 'border-box' box\n // model is applied (except for IE).\n\n if (styles.boxSizing === 'border-box') {\n // Following conditions are required to handle Internet Explorer which\n // doesn't include paddings and borders to computed CSS dimensions.\n //\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\n // properties then it's either IE, and thus we don't need to subtract\n // anything, or an element merely doesn't have paddings/borders styles.\n if (Math.round(width + horizPad) !== clientWidth) {\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\n }\n\n if (Math.round(height + vertPad) !== clientHeight) {\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\n }\n } // Following steps can't be applied to the document's root element as its\n // client[Width/Height] properties represent viewport area of the window.\n // Besides, it's as well not necessary as the itself neither has\n // rendered scroll bars nor it can be clipped.\n\n\n if (!isDocumentElement(target)) {\n // In some browsers (only in Firefox, actually) CSS width & height\n // include scroll bars size which can be removed at this step as scroll\n // bars are the only difference between rounded dimensions + paddings\n // and \"client\" properties, though that is not always true in Chrome.\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\n var horizScrollbar = Math.round(height + vertPad) - clientHeight; // Chrome has a rather weird rounding of \"client\" properties.\n // E.g. for an element with content width of 314.2px it sometimes gives\n // the client width of 315px and for the width of 314.7px it may give\n // 314px. And it doesn't happen all the time. So just ignore this delta\n // as a non-relevant.\n\n if (Math.abs(vertScrollbar) !== 1) {\n width -= vertScrollbar;\n }\n\n if (Math.abs(horizScrollbar) !== 1) {\n height -= horizScrollbar;\n }\n }\n\n return createRectInit(paddings.left, paddings.top, width, height);\n}\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\n\n\nvar isSVGGraphicsElement = function () {\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\n // interface.\n if (typeof SVGGraphicsElement !== 'undefined') {\n return function (target) {\n return target instanceof getWindowOf(target).SVGGraphicsElement;\n };\n } // If it's so, then check that element is at least an instance of the\n // SVGElement and that it has the \"getBBox\" method.\n // eslint-disable-next-line no-extra-parens\n\n\n return function (target) {\n return target instanceof getWindowOf(target).SVGElement && typeof target.getBBox === 'function';\n };\n}();\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\n\n\nfunction isDocumentElement(target) {\n return target === getWindowOf(target).document.documentElement;\n}\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getContentRect(target) {\n if (!isBrowser) {\n return emptyRect;\n }\n\n if (isSVGGraphicsElement(target)) {\n return getSVGContentRect(target);\n }\n\n return getHTMLElementContentRect(target);\n}\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\n\n\nfunction createReadOnlyRect(_a) {\n var x = _a.x,\n y = _a.y,\n width = _a.width,\n height = _a.height; // If DOMRectReadOnly is available use it as a prototype for the rectangle.\n\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\n var rect = Object.create(Constr.prototype); // Rectangle's properties are not writable and non-enumerable.\n\n defineConfigurable(rect, {\n x: x,\n y: y,\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: height + y,\n left: x\n });\n return rect;\n}\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction createRectInit(x, y, width, height) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n}\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\n\n\nvar ResizeObservation =\n/** @class */\nfunction () {\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\n function ResizeObservation(target) {\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\n this.broadcastWidth = 0;\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\n\n this.broadcastHeight = 0;\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\n\n this.contentRect_ = createRectInit(0, 0, 0, 0);\n this.target = target;\n }\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n ResizeObservation.prototype.isActive = function () {\n var rect = getContentRect(this.target);\n this.contentRect_ = rect;\n return rect.width !== this.broadcastWidth || rect.height !== this.broadcastHeight;\n };\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\n\n\n ResizeObservation.prototype.broadcastRect = function () {\n var rect = this.contentRect_;\n this.broadcastWidth = rect.width;\n this.broadcastHeight = rect.height;\n return rect;\n };\n\n return ResizeObservation;\n}();\n\nvar ResizeObserverEntry =\n/** @class */\nfunction () {\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\n function ResizeObserverEntry(target, rectInit) {\n var contentRect = createReadOnlyRect(rectInit); // According to the specification following properties are not writable\n // and are also not enumerable in the native implementation.\n //\n // Property accessors are not being used as they'd require to define a\n // private WeakMap storage which may cause memory leaks in browsers that\n // don't support this type of collections.\n\n defineConfigurable(this, {\n target: target,\n contentRect: contentRect\n });\n }\n\n return ResizeObserverEntry;\n}();\n\nvar ResizeObserverSPI =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\n function ResizeObserverSPI(callback, controller, callbackCtx) {\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\n this.activeObservations_ = [];\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\n\n this.observations_ = new MapShim();\n\n if (typeof callback !== 'function') {\n throw new TypeError('The callback provided as parameter 1 is not a function.');\n }\n\n this.callback_ = callback;\n this.controller_ = controller;\n this.callbackCtx_ = callbackCtx;\n }\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.observe = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n } // Do nothing if current environment doesn't have the Element interface.\n\n\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_; // Do nothing if element is already being observed.\n\n if (observations.has(target)) {\n return;\n }\n\n observations.set(target, new ResizeObservation(target));\n this.controller_.addObserver(this); // Force the update of observations.\n\n this.controller_.refresh();\n };\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.unobserve = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n } // Do nothing if current environment doesn't have the Element interface.\n\n\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_; // Do nothing if element is not being observed.\n\n if (!observations.has(target)) {\n return;\n }\n\n observations.delete(target);\n\n if (!observations.size) {\n this.controller_.removeObserver(this);\n }\n };\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.disconnect = function () {\n this.clearActive();\n this.observations_.clear();\n this.controller_.removeObserver(this);\n };\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.gatherActive = function () {\n var _this = this;\n\n this.clearActive();\n this.observations_.forEach(function (observation) {\n if (observation.isActive()) {\n _this.activeObservations_.push(observation);\n }\n });\n };\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.broadcastActive = function () {\n // Do nothing if observer doesn't have active observations.\n if (!this.hasActive()) {\n return;\n }\n\n var ctx = this.callbackCtx_; // Create ResizeObserverEntry instance for every active observation.\n\n var entries = this.activeObservations_.map(function (observation) {\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\n });\n this.callback_.call(ctx, entries, ctx);\n this.clearActive();\n };\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.clearActive = function () {\n this.activeObservations_.splice(0);\n };\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n ResizeObserverSPI.prototype.hasActive = function () {\n return this.activeObservations_.length > 0;\n };\n\n return ResizeObserverSPI;\n}(); // Registry of internal observers. If WeakMap is not available use current shim\n// for the Map collection as it has all required methods and because WeakMap\n// can't be fully polyfilled anyway.\n\n\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\n\nvar ResizeObserver =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\n function ResizeObserver(callback) {\n if (!(this instanceof ResizeObserver)) {\n throw new TypeError('Cannot call a class as a function.');\n }\n\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n }\n\n var controller = ResizeObserverController.getInstance();\n var observer = new ResizeObserverSPI(callback, controller, this);\n observers.set(this, observer);\n }\n\n return ResizeObserver;\n}(); // Expose public methods of ResizeObserver.\n\n\n['observe', 'unobserve', 'disconnect'].forEach(function (method) {\n ResizeObserver.prototype[method] = function () {\n var _a;\n\n return (_a = observers.get(this))[method].apply(_a, arguments);\n };\n});\n\nvar index = function () {\n // Export existing implementation if available.\n if (typeof global$1.ResizeObserver !== 'undefined') {\n return global$1.ResizeObserver;\n }\n\n return ResizeObserver;\n}();\n\nexport default index;","import React from 'react'\nimport {\n\tstring,\n\tnode,\n\toneOf,\n\toneOfType,\n\tfunc,\n\telement,\n\tobject,\n\tbool\n} from 'prop-types'\nimport classNames from 'classnames'\nimport Node from '@/utils/Node'\n\nfunction ButtonGradient({\n\tas = 'button',\n\tchildren,\n\tcolour = 'purple',\n\ttextColour = 'white',\n\tclassName,\n\ttrack = true,\n\thasGradient = true,\n\t...rest\n}) {\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t)\n}\n\nButtonGradient.propTypes = {\n\tas: oneOfType([string, node, func, element, object]),\n\tchildren: node,\n\tclassName: string,\n\tcolour: oneOf(['purple', 'orange', 'yellow', 'green', 'cyan', 'darkgrey', 'lightgrey']),\n\thasGradient: bool\n}\n\nexport default ButtonGradient\n","import React, { useEffect } from 'react'\nimport {\n\tnode,\n\tnumber,\n\tstring,\n\tbool,\n\tshape,\n\tobject,\n\tfunc,\n\toneOfType\n} from 'prop-types'\nimport { useInView } from 'react-intersection-observer'\nimport { motion } from 'framer-motion'\nimport usePrevious from '@/hooks/usePrevious'\n\nfunction AnimateEntrance({\n\tname, // for debugging purposes only\n\tchildren,\n\tthreshold = 0,\n\trootMargin = '100px 0px',\n\ttriggerOnce = true,\n\tvariants = {\n\t\tshow: {\n\t\t\ty: 0,\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\tdelay: 0.1,\n\t\t\t\ttype: 'spring',\n\t\t\t\tdamping: 50\n\t\t\t}\n\t\t},\n\t\thide: {\n\t\t\ty: '50px',\n\t\t\topacity: 0\n\t\t}\n\t},\n\tas = 'div',\n\tonEnter,\n\t...props\n}) {\n\tconst [ref, inView] = useInView({ threshold, rootMargin, triggerOnce })\n\tconst Tag = motion[as]\n\tconst prevInview = usePrevious(inView)\n\n\tuseEffect(() => {\n\t\tif (prevInview !== inView) {\n\t\t\tif (inView && typeof onEnter === 'function') {\n\t\t\t\tonEnter()\n\t\t\t}\n\t\t}\n\t}, [inView, name, onEnter, prevInview])\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t)\n}\n\nAnimateEntrance.propTypes = {\n\tchildren: node.isRequired,\n\tthreshold: number,\n\trootMargin: string,\n\ttriggerOnce: bool,\n\tvariants: shape({\n\t\tshow: oneOfType([func, object]).isRequired,\n\t\thide: oneOfType([func, object]).isRequired\n\t}),\n\tname: string,\n\tas: string,\n\tonEnter: func\n}\n\nexport default AnimateEntrance\n","import { useRef, useEffect } from 'react'\n\nexport default function usePrevious(value) {\n\tconst ref = useRef()\n\tuseEffect(() => {\n\t\tref.current = value\n\t})\n\treturn ref.current\n}\n","import React from 'react'\nimport { string, shape } from 'prop-types'\nimport { Helmet } from 'react-helmet-async'\n\nfunction Seo({\n\tcanonical,\n\ttwitter_title,\n\ttwitter_image,\n\ttwitter_description,\n\t// redirect,\n\ttitle,\n\topengraph_title,\n\topengraph_image,\n\t// metakeywords,\n\topengraph_description,\n\tmetadesc,\n\tmeta_robots_noindex,\n\tmeta_robots_nofollow,\n\timage\n\t// linkdex,\n\t// focuskw\n}) {\n\tconst heading = title ? `${title} | Ultraleap` : 'Ultraleap'\n\tconst url = typeof window !== 'undefined' ? window.location.href : canonical\n\n\tconst twitterImage = twitter_image\n\t\t? twitter_image.source_url\n\t\t: image\n\t\t? image.source_url\n\t\t: \"https://cms.ultraleap.com/app/uploads/2020/02/northern-lights.jpg\"\n\n\tconst opengraphImage = opengraph_image\n\t\t? opengraph_image.source_url\n\t\t: image\n\t\t? image.source_url\n\t\t: null\n\n\treturn (\n\t\t\n\t\t\t{heading}\n\t\t\t\n\t\t\t{/* */}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{opengraphImage && }\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{twitterImage && }\n\t\t\t{twitterImage && }\n\t\t\t\n\t\t\t\n\t\t\n\t)\n}\n\nSeo.propTypes = {\n\tcanonical: string,\n\ttwitter_title: string,\n\ttwitter_image: shape({\n\t\tsource_url: string\n\t}),\n\ttwitter_description: string,\n\ttitle: string,\n\topengraph_title: string,\n\topengraph_image: shape({\n\t\tsource_url: string\n\t}),\n\timage: shape({\n\t\tsource_url: string\n\t}),\n\tmetakeywords: string,\n\topengraph_description: string,\n\tmetadesc: string,\n\tmeta_robots_noindex: string,\n\tmeta_robots_nofollow: string\n\t// redirect: string,\n\t// meta_robots_adv: string,\n\t// linkdex: string,\n\t// focuskw: string\n}\n\nexport default Seo\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\n\nmodule.exports = new MediaQueryDispatch();","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n constructor: QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup: function setup() {\n if (this.options.setup) {\n this.options.setup();\n }\n\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on: function on() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off: function off() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy: function destroy() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals: function equals(target) {\n return this.options === target || this.options.match === target;\n }\n};\nmodule.exports = QueryHandler;","/* eslint-disable react/prop-types */\n/* eslint-disable react/no-danger */\nimport React, { useState, useEffect, useRef } from 'react'\nimport useMediaQuery from '@/hooks/useMediaQuery'\nimport Slider from 'react-slick'\nimport { v4 as uuidv4 } from 'uuid';\nimport classNames from 'classnames'\nimport IconWrapper from '@/utils/IconWrapper'\nimport Arrow from '@/icons/arrow.svg'\nimport ButtonGradient from '@/components/global/ButtonGradient'\nimport AnimateEntrance from '@/utils/AnimateEntrance'\nimport Link from '@/utils/Link'\nimport { containerVariants } from '@/utils/transitions'\nimport styles from './SimpleSlider.module.css'\n\n\nfunction SimpleSlider({\n heading,\n copy,\n\tslides,\n}) {\n\tconst isMobile = useMediaQuery('(max-width: 48em)')\n\tconst [imageSlide, setImageSlide] = useState()\n\tconst [contentSlide, setContentSlide] = useState()\n\n\tconst imageSlider = useRef()\n\tconst contentSlider = useRef()\n\n\tconst sliderSettings = {\n\t\tclassName: styles.imageSlider,\n\t\tinfinite: true,\n\t\tvariableWidth: true,\n\t\tcenterMode: false,\n\t\tspeed: 750,\n\t\tarrows: true,\n nextArrow: ,\n prevArrow: ,\n\t\tdots: false,\n\t\tresponsive: [\n\t\t\t{\n\t\t\t\tbreakpoint: 1310,\n\t\t\t\tsettings: {\n\t\t\t\t\tcenterMode: false\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t}\n\n\tuseEffect(() => {\n\t\tif (!imageSlide && !contentSlide) {\n\t\t\tsetImageSlide(imageSlider.current)\n\t\t\tsetContentSlide(contentSlider.current)\n\t\t}\n\t}, [contentSlide, contentSlider, imageSlide, imageSlider])\n\n\treturn (\n\t\t {\n\t\t\t\timageSlider.current.slickNext()\n\t\t\t}}\n\t\t\tclassName=\"relative overflow-hidden lg:overflow-visible\"\n\t\t>\n\t\t\t{heading &&

{heading}

}\n {copy && (\n

\n {copy}\n

\n )}\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{slides.map(({title, copy: text, image, mobile_image, cta_text, cta_link}) => (\n\t\t\t\t\t\t\n
\n {title &&

{title}

}\n {text &&

{text}

}\n {cta_link && cta_text && (\n \n { cta_text }\n \n )}\n
\n {image && (\n
\n )}\n\t\t\t\t\t\t
\n\t\t\t\t\t))}\n\t\t\t\t\n\t\t\t
\n\t\t\n\t)\n}\n\nfunction NextArrow(props) {\n const { className, onClick } = props;\n return (\n \n );\n}\n\nfunction PrevArrow(props) {\n const { className, onClick } = props;\n return (\n \n );\n}\n\nexport default SimpleSlider\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function isDimension(feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function obj2mq(obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature); // Add px to dimension features\n\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n\n if (index < features.length - 1) {\n mq += ' and ';\n }\n });\n return mq;\n};\n\nvar json2mq = function json2mq(query) {\n var mq = '';\n\n if (typeof query === 'string') {\n return query;\n } // Handling array of media queries\n\n\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n\n if (index < query.length - 1) {\n mq += ', ';\n }\n });\n return mq;\n } // Handling single media query\n\n\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","/* eslint-disable react/prop-types */\n/* eslint-disable react/no-danger */\nimport React from 'react'\nimport classNames from 'classnames'\n\nfunction OneColumnBlock({ copy, header, color, colour, width = 'narrow' }) {\n\tconst textColour = color || colour || 'text-primary'\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{header && (\n\t\t\t\t\t\n\t\t\t\t\t\t{header}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t)\n}\n\nexport default OneColumnBlock\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0\n};\nvar _default = initialState;\nexports[\"default\"] = _default;","import { useRef } from 'react'\n\nfunction useConstant(fn) {\n\tconst ref = useRef()\n\n\tif (!ref.current) {\n\t\tref.current = { v: fn() }\n\t}\n\n\treturn ref.current.v\n}\n\nexport default useConstant\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nvar _track = require(\"./track\");\n\nvar _dots = require(\"./dots\");\n\nvar _arrows = require(\"./arrows\");\n\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _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\nvar InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n function InnerSlider(props) {\n var _this;\n\n _classCallCheck(this, InnerSlider);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(InnerSlider).call(this, props));\n\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"UNSAFE_componentWillMount\", function () {\n _this.ssrInit();\n\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread({}, _this.props, {}, _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n }); // To support server-side rendering\n\n if (!window) {\n return;\n }\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"UNSAFE_componentWillReceiveProps\", function (nextProps) {\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, nextProps, {}, _this.state);\n\n var setTrackStyle = false;\n\n for (var _i = 0, _Object$keys = Object.keys(_this.props); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n\n if (!nextProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(nextProps[key]) === \"object\" || typeof nextProps[key] === \"function\") {\n continue;\n }\n\n if (nextProps[key] !== _this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(nextProps.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(nextProps.children) - nextProps.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (nextProps.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function () {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread({}, _this.props, {}, _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!_reactDom[\"default\"].findDOMNode(_this.track)) return;\n\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props, {}, _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread({}, spec, {}, updatedState, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread({}, spec, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread({}, _this.props, {}, _this.state, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread({}, _this.props, {}, _this.state, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i2 = 0; _i2 < postClones; _i2++) {\n _trackWidth += childrenWidths[_i2];\n }\n\n for (var _i3 = 0; _i3 < _this.state.currentSlide; _i3++) {\n _trackLeft += childrenWidths[_i3];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n\n _this.setState({\n trackStyle: _trackStyle\n });\n\n return;\n }\n\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n\n var spec = _objectSpread({}, _this.props, {}, _this.state, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n\n _this.setState({\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = document.querySelectorAll(\".slick-slide img\");\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n\n var spec = _objectSpread({}, _this.props, {}, _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread({\n index: index\n }, _this.props, {}, _this.state, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n _this.setState(state, function () {\n asNavFor && asNavFor.innerSlider.slideHandler(index);\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _objectSpread({}, _this.props, {}, _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread({}, _this.props, {}, _this.state, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread({}, _this.props, {}, _this.state, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread({}, _this.props, {}, _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _objectSpread({}, _this.props, {}, _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread({}, trackProps, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread({}, dotProps, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = _react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = _react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = _react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _objectSpread({}, verticalHeightStyle, {}, centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.swipeEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return _react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", _react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), _react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread({}, _initialState[\"default\"], {\n currentSlide: _this.props.initialSlide,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n return _this;\n }\n\n return InnerSlider;\n}(_react[\"default\"].Component);\n\nexports.InnerSlider = InnerSlider;","var QueryHandler = require('./QueryHandler');\n\nvar each = require('./Util').each;\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\n\n\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n var self = this;\n\n this.listener = function (mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n constuctor: MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler: function addHandler(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler: function removeHandler(handler) {\n var handlers = this.handlers;\n each(handlers, function (h, i) {\n if (h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i, 1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches: function matches() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear: function clear() {\n each(this.handlers, function (handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess: function assess() {\n var action = this.matches() ? 'on' : 'off';\n each(this.handlers, function (handler) {\n handler[action]();\n });\n }\n};\nmodule.exports = MediaQuery;","var MediaQuery = require('./MediaQuery');\n\nvar Util = require('./Util');\n\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\n\nfunction MediaQueryDispatch() {\n if (!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n constructor: MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register: function register(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if (!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n } //normalise to object in an array\n\n\n if (isFunction(options)) {\n options = {\n match: options\n };\n }\n\n if (!isArray(options)) {\n options = [options];\n }\n\n each(options, function (handler) {\n if (isFunction(handler)) {\n handler = {\n match: handler\n };\n }\n\n queries[q].addHandler(handler);\n });\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister: function unregister(q, handler) {\n var query = this.queries[q];\n\n if (query) {\n if (handler) {\n query.removeHandler(handler);\n } else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\nmodule.exports = MediaQueryDispatch;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = exports.slidesOnLeft = exports.slidesOnRight = exports.siblingDirection = exports.getTotalSlides = exports.getPostClones = exports.getPreClones = exports.getTrackLeft = exports.getTrackAnimateCSS = exports.getTrackCSS = exports.checkSpecKeys = exports.getSlideCount = exports.checkNavigable = exports.getNavigableIndexes = exports.swipeEnd = exports.swipeMove = exports.swipeStart = exports.keyHandler = exports.changeSlide = exports.slideHandler = exports.initializedState = exports.extractObject = exports.canGoNext = exports.getSwipeDirection = exports.getHeight = exports.getWidth = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.lazyStartIndex = exports.getRequiredLazySlides = exports.getOnDemandLazySlides = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _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\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listWidth = Math.ceil(getWidth(_reactDom[\"default\"].findDOMNode(spec.listRef)));\n var trackWidth = Math.ceil(getWidth(_reactDom[\"default\"].findDOMNode(spec.trackRef)));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = _reactDom[\"default\"].findDOMNode(spec.listRef) && getHeight(_reactDom[\"default\"].findDOMNode(spec.listRef).querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides({\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }, spec);\n lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoadedList = spec.lazyLoadedList,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList.push(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList\n };\n nextState = {\n animating: false\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n animationLeft = getTrackLeft(_objectSpread({}, spec, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread({}, spec, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n lazyLoad && lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread({}, spec, {\n currentSlide: animationSlide\n })));\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread({}, spec, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread({}, spec, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread({}, spec, {\n left: finalLeft\n })),\n swipeLeft: null\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n\n if (targetSlide === options.currentSlide) {\n return null;\n }\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (targetSlide === options.currentSlide) {\n return null;\n }\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread({}, spec, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n\n if (targetSlide === options.currentSlide) {\n return null;\n }\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && e.preventDefault();\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return e.preventDefault();\n if (vertical && swipeToSlide && verticalSwiping) e.preventDefault();\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && swipeDirection === \"right\" || currentSlide + 1 >= dotCount && swipeDirection === \"left\" || !canGoNext(spec) && swipeDirection === \"left\") {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread({}, state, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread({}, spec, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n e.preventDefault();\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n currentSlide = spec.currentSlide,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe;\n\n if (!dragging) {\n if (swipe) e.preventDefault();\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n e.preventDefault();\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = currentSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = currentSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = currentSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread({}, spec, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n\n var slickList = _reactDom[\"default\"].findDOMNode(spec.listRef);\n\n var slides = slickList.querySelectorAll(\".slick-slide\");\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread({}, style, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n\n var trackElem = _reactDom[\"default\"].findDOMNode(trackRef);\n\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding; // returns no of slides on the right of active slide\n\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding; // returns no of slides on the left of active slide\n\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;"],"sourceRoot":""}