{"version":3,"sources":["webpack:///./node_modules/gatsby-link/index.js","webpack:///./node_modules/gatsby-react-router-scroll/session-storage.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack:///./.cache/normalize-page-path.js","webpack:///./.cache/find-path.js","webpack:///./node_modules/gatsby-plugin-google-gtag/gatsby-browser.js","webpack:///./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack:///./.cache/emitter.js","webpack:///./node_modules/mitt/dist/mitt.es.js","webpack:///./node_modules/gatsby-react-router-scroll/index.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack:///./.cache/react-lifecycles-compat.js","webpack:///./node_modules/@reach/router/es/lib/history.js","webpack:///./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/bootstrap-v4-rtl/dist/js/bootstrap.min.js","webpack:///./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack:///./gatsby-browser.js","webpack:///./.cache/page-renderer.js","webpack:///./node_modules/@reach/router/es/lib/utils.js","webpack:///./.cache/api-runner-browser-plugins.js","webpack:///./node_modules/@mikaelkristiansson/domready/ready.js","webpack:///./.cache/register-service-worker.js","webpack:///./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.min.js","webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack:///./.cache/route-announcer-props.js","webpack:///./.cache/navigation.js","webpack:///./node_modules/shallow-compare/es/index.js","webpack:///./.cache/ensure-resources.js","webpack:///./.cache/production-app.js","webpack:///./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack:///./.cache/gatsby-browser-entry.js","webpack:///./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack:///./node_modules/@reach/router/es/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./.cache/strip-prefix.js","webpack:///./node_modules/gatsby-link/parse-path.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./.cache/prefetch.js","webpack:///./.cache/loader.js","webpack:///./node_modules/gatsby-react-router-scroll/scroll-container.js","webpack:///./.cache/public-page-renderer.js","webpack:///./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack:///./.cache/create-react-context.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./.cache/public-page-renderer-prod.js","webpack:///./.cache/api-runner-browser.js","webpack:///(webpack)/buildin/global.js"],"names":["_interopRequireDefault","exports","__esModule","withPrefix","withAssetPrefix","path","getGlobalPathPrefix","navigateTo","replace","push","navigate","default","_objectWithoutPropertiesLoose2","_assertThisInitialized2","_inheritsLoose2","_extends2","_propTypes","_react","_router","_utils","_parsePath","parsePath","isAbsolutePath","startsWith","prefix","_ref","_prefix","getGlobalBasePrefix","isLocalLink","base","endsWith","slice","rewriteLinkPath","relativeTo","current","resolve","absolutify","NavLinkPropTypes","activeClassName","string","activeStyle","object","partiallyActive","bool","GatsbyLinkLocationWrapper","props","createElement","Location","_ref2","location","GatsbyLink","_location","_React$Component","_this","call","this","defaultGetProps","_ref3","isPartiallyCurrent","isCurrent","className","filter","Boolean","join","style","IOSupported","window","IntersectionObserver","state","handleRef","bind","_proto","prototype","_prefetch","currentPath","pathname","rewrittenPath","to","newPathName","___loader","enqueue","componentDidUpdate","prevProps","prevState","componentDidMount","componentWillUnmount","io","_this$io","instance","el","unobserve","disconnect","ref","cb","_this2","innerRef","hasOwnProperty","entries","forEach","entry","target","isIntersecting","intersectionRatio","observe","render","_this3","_this$props","_this$props$getProps","getProps","_onClick","onClick","_onMouseEnter","onMouseEnter","rest","prefixedTo","Link","e","hovering","button","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","preventDefault","shouldReplace","encodeURI","___navigate","href","Component","propTypes","func","isRequired","showDeprecationWarning","functionName","altFunctionName","version","console","warn","_default","forwardRef","options","___push","___replace","SessionStorage","read","key","stateKey","getStateKey","value","sessionStorage","getItem","JSON","parse","save","storedValue","stringify","setItem","stateKeyBase","_typeof","_getRequireWildcardCache","WeakMap","r","t","module","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","i","set","undefined","charAt","length","pathCache","Map","matchPaths","trimPathname","rawPathname","decodeURIComponent","stripPrefix","__BASE_PATH__","split","URL","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","map","matchPath","originalPath","pick","normalizePagePath","route","grabMatchParams","params","findPath","foundPath","onRouteUpdate","gtag","excludeGtagPaths","some","rx","test","sendPageView","pagePath","search","hash","page_path","requestAnimationFrame","setTimeout","useScrollRestoration","identifier","useLocation","useContext","_scrollHandler","ScrollContext","useRef","useLayoutEffect","position","scrollTo","onScroll","scrollTop","emitter","all","create","on","type","handler","off","splice","indexOf","emit","evt","mitt","ScrollContainer","ScrollHandler","_scrollContainer","_useScrollRestoration","isBrowser","document","longerTimeoutBrowsers","timeoutDuration","navigator","userAgent","debounce","Promise","fn","called","then","scheduled","isFunction","functionToCheck","toString","getStyleComputedProperty","element","property","nodeType","css","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","ownerDocument","_getStyleComputedProp","overflow","overflowX","overflowY","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","element1root","getScroll","side","arguments","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","getWindowSizes","height","width","classCallCheck","Constructor","TypeError","createClass","defineProperties","descriptor","enumerable","configurable","writable","protoProps","staticProps","obj","_extends","assign","source","getClientRect","offsets","getBoundingClientRect","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","reference","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","area","sort","b","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","runModifiers","modifiers","data","ends","prop","findIndex","cur","match","enabled","update","isDestroyed","arrowStyles","attributes","flipped","positionFixed","flip","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","name","getSupportedPropertyName","prefixes","upperProp","toUpperCase","toCheck","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","defaultView","setupEventListeners","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","event","callback","scrollParents","isBody","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","removeEventListener","isNumeric","isNaN","isFinite","setStyles","unit","isModifierRequired","requestingName","requestedName","requesting","_requesting","requested","placements","validPlacements","clockwise","counter","index","concat","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","trim","divider","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","shift","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","getOppositeVariation","inner","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","prefixedProperty","invertTop","invertLeft","applyStyle","setAttribute","onLoad","modifierOptions","Popper","jquery","Utils","global","PopperUtils","includes","polyfill","getLocation","_source$location","origin","protocol","hostname","port","canUseDOM","decodeURI","history","createHistory","listeners","transitioning","resolveTransition","_onTransitionComplete","listen","listener","popstateListener","action","_ref$replace","go","Date","now","replaceState","pushState","transition","res","createMemorySource","initialPath","searchIndex","initialLocation","substr","stack","states","_","uri","_uri$split","_uri$split$","_uri$split2","_uri$split2$","newIndex","globalHistory","localizedManifests","isArray","localizedManifest","app","start_url","lang","_unsupportedIterableToArray","constructor","from","o","s","apply","TRANSITION_END","getUID","random","getElementById","getSelectorFromElement","getAttribute","getTransitionDurationFromElement","reflow","triggerTransitionEnd","trigger","supportsTransitionEnd","isElement","typeCheckConfig","l","RegExp","Error","findShadowRoot","attachShadow","getRootNode","ShadowRoot","jQueryDetection","emulateTransitionEnd","one","special","bindType","delegateType","handle","is","handleObj","c","h","_element","close","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","closest","Event","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","_handleDismiss","noConflict","d","toggle","checked","classList","focus","hasAttribute","toggleClass","tagName","querySelectorAll","add","f","m","p","interval","keyboard","slide","pause","wrap","touch","v","TOUCH","PEN","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","_getItemIndex","_handleSwipe","abs","_keydown","_addTouchEventListeners","originalEvent","pointerType","clientX","touches","clearTimeout","which","_getItemByDirection","_triggerSlideEvent","relatedTarget","direction","_setActiveIndicatorElement","addClass","g","parseInt","defaultInterval","ride","_dataApiClickHandler","E","w","T","C","_isTransitioning","_triggerArray","id","_selector","_parent","_getParent","_addAriaAndCollapsedClass","show","not","_getDimension","attr","setTransitioning","_getTargetFromElement","currentTarget","S","k","D","N","boundary","display","popperConfig","A","I","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_clearMenus","_getParentFromElement","_getPopperConfig","noop","stopPropagation","Default","DefaultType","_getPlacement","_getOffset","clickEvent","_dataApiKeydownHandler","O","modal","j","backdrop","P","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_hideModal","handleUpdate","_triggerBackdropTransition","scrollHeight","ELEMENT_NODE","appendChild","_enforceFocus","_resetAdjustments","_resetScrollbar","_removeBackdrop","appendTo","paddingLeft","paddingRight","_getScrollbarWidth","R","q","F","Q","DOMParser","parseFromString","nodeValue","innerHTML","B","H","U","M","W","animation","template","title","delay","selector","container","fallbackPlacement","sanitize","sanitizeFn","whiteList","V","AUTO","TOP","RIGHT","BOTTOM","LEFT","z","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","small","span","sub","sup","strong","ul","K","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","X","_isEnabled","_timeout","_hoverState","_activeTrigger","config","tip","_setListeners","enable","disable","toggleEnabled","DATA_KEY","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","EVENT_KEY","_hideModalHandler","isWithContent","NAME","setContent","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","_cleanTipClass","hover","getTitle","setElementContent","text","empty","append","_handlePopperPlacementChange","_fixTitle","content","Y","$","J","G","Z","tt","et","_getContent","nt","it","ot","method","st","rt","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","_getScrollTop","_getScrollHeight","pageYOffset","_getOffsetHeight","_activate","_clear","parents","at","tab","lt","makeArray","_transitionComplete","ct","toast","ht","autohide","ut","dt","_clearTimeout","_close","Alert","Button","Carousel","Collapse","Dropdown","Modal","Popover","Scrollspy","Tab","Toast","Tooltip","Util","_interopRequireWildcard","React","_sessionStorage","createContext","displayName","_len","args","_key","_stateStorage","scrollListener","scrollY","windowScroll","shouldUpdateScroll","scrollToHash","substring","scrollIntoView","prevRouterProps","routerProps","scrollPosition","_this$props$location","_this$props$location2","Provider","onInitialClientRender","log","onServiceWorkerUpdateFound","disableCorePrefetching","onClientEntry","onPostPrefetchPathname","onPreRouteUpdate","onPrefetchPathname","onRouteUpdateDelayed","onServiceWorkerActive","onServiceWorkerInstalled","onServiceWorkerRedundant","onServiceWorkerUpdateReady","registerServiceWorker","replaceComponentRenderer","replaceHydrateFunction","wrapPageElement","wrapRootElement","PageRenderer","pageResources","json","pageContext","__params","pathContext","replacementElement","apiRunner","loader","publicLoader","pageElement","component","page","pop","routes","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","missed","routeSegments","routeSegment","uriSegment","isSplat","dynamicMatch","paramRe","exec","reservedNames","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","addQuery","allSegments","segments","segment","insertParams","_path$split","pathBase","_path$split$","query","constructedPath","_params$location","_params$location$sear","searchSplit","validateRedirect","isDynamic","rankRoute","score","isRootSegment","SEGMENT_POINTS","shallowCompare","obj1","obj2","obj1Keys","every","plugin","require","ie10","appVersion","fns","doc","hack","doScroll","loaded","readyState","definition","error","serviceWorker","register","reg","installingWorker","installing","controller","___swUpdated","___failedResources","reload","catch","components","component---src-publisher-preview-preview-page-wrapper-component-js","ReferenceError","getOwnPropertySymbols","getOwnPropertyDescriptors","L","ft","gt","condition","format","argIndex","framesToPop","_setPrototypeOf","setPrototypeOf","RouteAnnouncerProps","clip","whiteSpace","border","redirectMap","redirects","redirect","fromPath","maybeRedirect","toPath","prevLocation","timeoutId","loadPage","status","PageResourceStatus","webpackCompilationHash","___webpackCompilationHash","postMessage","gatsbyApi","reachNavigate","results","getSavedScrollPosition","oldPathname","RouteAnnouncer","super","announcementRef","createRef","nextProps","pageName","pageHeadings","textContent","newAnnouncement","innerText","RouteUpdates","shouldComponentUpdate","Fragment","shallowDiffers","_i","EnsureResources","loadPageSync","loadResources","rawPath","setState","nextState","ProdLoader","asyncRequires","setLoader","setApiRunner","___emitter","apiRunnerAsync","RouteHandler","BaseContext","baseuri","basepath","DataContext","GatsbyRoot","staticQueryResults","getStaticQueryResults","StaticQueryContext","LocationHandler","Consumer","Router","browserLoc","SiteRoot","_ref4","App","renderer","ReactDOM","hydrate","domReady","prefetchPathname","StaticQueryDataRenderer","staticQueryData","finalData","StaticQuery","useStaticQuery","_context$query","context","Number","graphql","unstable_collectionGraphql","_objectWithoutProperties","_classCallCheck","_possibleConstructorReturn","self","_inherits","subClass","superClass","createNamedContext","defaultValue","Ctx","LocationContext","LocationProvider","_temp","getContext","refs","unlisten","_props$history","componentDidCatch","info","isRedirect","_navigate","unmounted","defaultProps","ServerLocation","url","baseContext","locationContext","RouterImpl","_React$PureComponent","_props","_navigate2","_props$component","domProps","Children","toArray","array","child","createRoute","clone","cloneElement","FocusWrapper","FocusHandler","wrapperProps","PureComponent","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","_temp2","_this4","_len2","_key2","shouldFocus","getDerivedStateFromProps","myURIChanged","navigatedUpToMe","activeElement","_this5","_props2","_props2$component","Comp","outline","tabIndex","_ref5","_ref6","_props$getProps","anchorProps","encodedHref","shouldNavigate","_location$state","restState","RedirectRequest","redirectTo","RedirectImpl","_React$Component3","_props3","_props3$replace","noThrow","resolvedTo","_props4","Redirect","_ref7","Match","_ref8","_ref9","_ref10","resolvedPath","useNavigate","useParams","useMatch","stripSlashes","elementPath","_arrayLikeToArray","Symbol","iterator","hashIndex","_toConsumableArray","arrayLikeToArray","unsupportedIterableToArray","supportedPrefetchStrategy","feature","fakeLink","relList","supports","err","support","reject","link","onload","onerror","getElementsByTagName","getElementsByName","req","XMLHttpRequest","open","send","preFetched","prefetch","Success","preferDefault","createPageDataUrl","doFetch","onreadystatechange","toPageResources","pageData","componentChunkName","staticQueryHashes","BaseLoader","loadComponent","inFlightNetworkRequests","pageDb","inFlightDb","staticQueryDb","pageDataDb","prefetchTriggered","Set","prefetchCompleted","memoizedGet","inFlightPromise","response","delete","prefetchDisabled","fetchPageDataJson","loadObj","retries","responseText","jsonPayload","payload","notFound","loadPageDataJson","loadAppData","allData","finalResult","componentChunkPromise","createdAt","staticQueryBatchPromise","staticQueryHash","staticQueryResultsMap","shouldPrefetch","doesConnectionSupportPrefetch","connection","effectiveType","saveData","realPath","doPrefetch","getResourceURLsForPathname","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","__PATH_PREFIX__","chunkName","pageDataUrl","prefetchHelper","crossOrigin","as","componentUrls","_loader","getResourcesForPathname","getResourcesForPathnameSync","_reactDom","scrollKey","ScrollContainerImplementation","findDOMNode","ProdPageRenderer","InternalPageRenderer","plugins","api","defaultReturn","argTransform","previous","Function"],"mappings":";6FAEA,IAAIA,EAAyB,EAAQ,QAErCC,EAAQC,YAAa,EACrBD,EAAQE,WAAaA,EACrBF,EAAQG,gBA4DR,SAAyBC,GACvB,OAAOF,EAAWE,EAAMC,MA5D1BL,EAAQM,WAAaN,EAAQO,QAAUP,EAAQQ,KAAOR,EAAQS,SAAWT,EAAQU,aAAU,EAE3F,IAAIC,EAAiCZ,EAAuB,EAAQ,SAEhEa,EAA0Bb,EAAuB,EAAQ,SAEzDc,EAAkBd,EAAuB,EAAQ,SAEjDe,EAAYf,EAAuB,EAAQ,SAE3CgB,EAAahB,EAAuB,EAAQ,SAE5CiB,EAASjB,EAAuB,EAAQ,SAExCkB,EAAU,EAAQ,QAElBC,EAAS,EAAQ,QAEjBC,EAAa,EAAQ,QAEzBnB,EAAQoB,UAAYD,EAAWC,UAE/B,IAAIC,EAAiB,SAAwBjB,GAC3C,OAAOA,aAAmC,EAASA,EAAKkB,WAAW,MAGrE,SAASpB,EAAWE,EAAMmB,GACxB,IAAIC,EAAMC,EAMV,QAJe,IAAXF,IACFA,EAASG,MAGNC,EAAYvB,GACf,OAAOA,EAGT,GAAIA,EAAKkB,WAAW,OAASlB,EAAKkB,WAAW,OAC3C,OAAOlB,EAGT,IAAIwB,EAAwG,QAAhGJ,EAA8B,QAAtBC,EAAUF,SAAgC,IAAZE,EAAqBA,EAAUpB,WAA4C,IAATmB,EAAkBA,EAAO,IAC7I,MAAO,KAAOI,aAAmC,EAASA,EAAKC,SAAS,MAAQD,EAAKE,MAAM,GAAI,GAAKF,IAASxB,EAAKkB,WAAW,KAAOlB,EAAO,IAAMA,GAKnJ,IAAIC,EAAsB,WACxB,MAAsH,IAGpHqB,EAAsB,WACxB,MAAkH,IAGhHC,EAAc,SAAqBvB,GACrC,OAAOA,IAASA,EAAKkB,WAAW,aAAelB,EAAKkB,WAAW,cAAgBlB,EAAKkB,WAAW,OAgBjG,IAAIS,EAAkB,SAAyB3B,EAAM4B,GACnD,MAAoB,iBAAT5B,EACFA,EAGJuB,EAAYvB,GAIViB,EAAejB,GAAQF,EAAWE,GAlB3C,SAAoBA,EAAM6B,GAExB,OAAIZ,EAAejB,GACVA,GAGF,EAAIc,EAAOgB,SAAS9B,EAAM6B,GAYgBE,CAAW/B,EAAM4B,GAHzD5B,GAMPgC,EAAmB,CACrBC,gBAAiBtB,EAAWL,QAAQ4B,OACpCC,YAAaxB,EAAWL,QAAQ8B,OAChCC,gBAAiB1B,EAAWL,QAAQgC,MAyBtC,SAASC,EAA0BC,GACjC,OAAoB5B,EAAON,QAAQmC,cAAc5B,EAAQ6B,SAAU,MAAM,SAAUC,GACjF,IAAIC,EAAWD,EAAMC,SACrB,OAAoBhC,EAAON,QAAQmC,cAAcI,GAAY,EAAInC,EAAUJ,SAAS,GAAIkC,EAAO,CAC7FM,UAAWF,QAKjB,IAAIC,EAA0B,SAAUE,GAGtC,SAASF,EAAWL,GAClB,IAAIQ,GAEJA,EAAQD,EAAiBE,KAAKC,KAAMV,IAAUU,MAExCC,gBAAkB,SAAUC,GAChC,IAAIC,EAAqBD,EAAMC,mBAC3BC,EAAYF,EAAME,UAEtB,OAAIN,EAAMR,MAAMH,gBAAkBgB,EAAqBC,GAC9C,CACLC,UAAW,CAACP,EAAMR,MAAMe,UAAWP,EAAMR,MAAMP,iBAAiBuB,OAAOC,SAASC,KAAK,KACrFC,OAAO,EAAIjD,EAAUJ,SAAS,GAAI0C,EAAMR,MAAMmB,MAAOX,EAAMR,MAAML,cAI9D,MAGT,IAAIyB,GAAc,EAUlB,MARsB,oBAAXC,QAA0BA,OAAOC,uBAC1CF,GAAc,GAGhBZ,EAAMe,MAAQ,CACZH,YAAaA,GAEfZ,EAAMgB,UAAYhB,EAAMgB,UAAUC,MAAK,EAAIzD,EAAwBF,SAAS0C,IACrEA,GA/BT,EAAIvC,EAAgBH,SAASuC,EAAYE,GAkCzC,IAAImB,EAASrB,EAAWsB,UAuIxB,OArIAD,EAAOE,UAAY,WACjB,IAAIC,EAAcR,OAAOjB,SAAS0B,SAE9BpB,KAAKV,MAAMM,WAAaI,KAAKV,MAAMM,UAAUwB,WAC/CD,EAAcnB,KAAKV,MAAMM,UAAUwB,UAGrC,IAAIC,EAAgB5C,EAAgBuB,KAAKV,MAAMgC,GAAIH,GAC/CI,GAAc,EAAI1D,EAAWC,WAAWuD,GAAeD,SAGvDD,IAAgBI,GAClBC,UAAUC,QAAQF,IAItBP,EAAOU,mBAAqB,SAA4BC,EAAWC,GAE7D5B,KAAKV,MAAMgC,KAAOK,EAAUL,IAAOtB,KAAKa,MAAMH,aAChDV,KAAKkB,aAITF,EAAOa,kBAAoB,WAEpB7B,KAAKa,MAAMH,aACdV,KAAKkB,aAITF,EAAOc,qBAAuB,WAC5B,GAAK9B,KAAK+B,GAAV,CAIA,IAAIC,EAAWhC,KAAK+B,GAChBE,EAAWD,EAASC,SACpBC,EAAKF,EAASE,GAClBD,EAASE,UAAUD,GACnBD,EAASG,eAGXpB,EAAOF,UAAY,SAAmBuB,GACpC,IA/GiEH,EAAII,EACnEP,EA8GEQ,EAASvC,KAETA,KAAKV,MAAMkD,UAAYxC,KAAKV,MAAMkD,SAASC,eAAe,WAC5DzC,KAAKV,MAAMkD,SAAS7D,QAAU0D,EACrBrC,KAAKV,MAAMkD,UACpBxC,KAAKV,MAAMkD,SAASH,GAGlBrC,KAAKa,MAAMH,aAAe2B,IAE5BrC,KAAK+B,IAzH0DG,EAyH1BG,EAzH8BC,EAyHzB,WACxCC,EAAOrB,cAzHTa,EAAK,IAAIpB,OAAOC,sBAAqB,SAAU8B,GACjDA,EAAQC,SAAQ,SAAUC,GACpBV,IAAOU,EAAMC,SAGXD,EAAME,gBAAkBF,EAAMG,kBAAoB,KACpDhB,EAAGI,UAAUD,GACbH,EAAGK,aACHE,YAMLU,QAAQd,GACJ,CACLD,SAAUF,EACVG,GAAIA,MA6GNlB,EAAOiC,OAAS,WACd,IAAIC,EAASlD,KAETmD,EAAcnD,KAAKV,MACnBgC,EAAK6B,EAAY7B,GACjB8B,EAAuBD,EAAYE,SACnCA,OAAoC,IAAzBD,EAAkCpD,KAAKC,gBAAkBmD,EACpEE,EAAWH,EAAYI,QACvBC,EAAgBL,EAAYM,aAK5B5C,GAJmBsC,EAAYpE,gBAChBoE,EAAYlE,YACfkE,EAAYX,SACNW,EAAYhE,gBACtBgE,EAAYtC,OACpB5D,EAAUkG,EAAYlG,QACtB2C,EAAYuD,EAAYvD,UACxB8D,GAAO,EAAIrG,EAA+BD,SAAS+F,EAAa,CAAC,KAAM,WAAY,UAAW,eAAgB,kBAAmB,cAAe,WAAY,kBAAmB,QAAS,UAAW,cAMvM,IAAIQ,EAAalF,EAAgB6C,EAAI1B,EAAUwB,UAE/C,OAAK/C,EAAYsF,GAMGjG,EAAON,QAAQmC,cAAc5B,EAAQiG,MAAM,EAAIpG,EAAUJ,SAAS,CACpFkE,GAAIqC,EACJ9C,MAAOA,EACPwC,SAAUA,EACVb,SAAUxC,KAAKc,UACf2C,aAAc,SAAsBI,GAC9BL,GACFA,EAAcK,GAGhBrC,UAAUsC,UAAS,EAAIjG,EAAWC,WAAW6F,GAAYvC,WAE3DmC,QAAS,SAAiBM,GAKxB,GAJIP,GACFA,EAASO,KAGM,IAAbA,EAAEE,QACLb,EAAO5D,MAAMuD,QACbgB,EAAEG,kBACFH,EAAEI,SACFJ,EAAEK,QAAWL,EAAEM,SAAYN,EAAEO,UAAU,CACtCP,EAAEQ,iBACF,IAAIC,EAAgBrH,EAEhBmD,EAAYmE,UAAUZ,KAAgB/D,EAAUwB,SAE7B,kBAAZnE,GAAyBmD,IAClCkE,GAAgB,GAKlB3D,OAAO6D,YAAYb,EAAY,CAC7B9C,MAAOA,EACP5D,QAASqH,IAIb,OAAO,IAERZ,IA9CmBhG,EAAON,QAAQmC,cAAc,KAAK,EAAI/B,EAAUJ,SAAS,CAC3EqH,KAAMd,GACLD,KA+CA/D,EA1KqB,CA2K5BjC,EAAON,QAAQsH,WAEjB/E,EAAWgF,WAAY,EAAInH,EAAUJ,SAAS,GAAI0B,EAAkB,CAClEyE,QAAS9F,EAAWL,QAAQwH,KAC5BtD,GAAI7D,EAAWL,QAAQ4B,OAAO6F,WAC9B5H,QAASQ,EAAWL,QAAQgC,KAC5ByB,MAAOpD,EAAWL,QAAQ8B,SAG5B,IAAI4F,EAAyB,SAAgCC,EAAcC,EAAiBC,GAC1F,OAAOC,QAAQC,KAAK,QAAWJ,EAAe,6DAAgEE,EAAU,iBAAoBD,EAAkB,eAG5JI,EAAwB1H,EAAON,QAAQiI,YAAW,SAAU/F,EAAO+C,GACrE,OAAoB3E,EAAON,QAAQmC,cAAcF,GAA2B,EAAI7B,EAAUJ,SAAS,CACjGoF,SAAUH,GACT/C,OAGL5C,EAAQU,QAAUgI,EAMlB1I,EAAQS,SAJO,SAAkBmE,EAAIgE,GACnC3E,OAAO6D,YAAY/F,EAAgB6C,EAAIX,OAAOjB,SAAS0B,UAAWkE,IAKpE,IAAIpI,EAAO,SAAcoE,GACvBwD,EAAuB,OAAQ,WAAY,GAE3CnE,OAAO4E,QAAQ9G,EAAgB6C,EAAIX,OAAOjB,SAAS0B,YAGrD1E,EAAQQ,KAAOA,EASfR,EAAQO,QAPM,SAAiBqE,GAC7BwD,EAAuB,UAAW,WAAY,GAE9CnE,OAAO6E,WAAW/G,EAAgB6C,EAAIX,OAAOjB,SAAS0B,YAWxD1E,EAAQM,WALS,SAAoBsE,GAEnC,OADAwD,EAAuB,aAAc,WAAY,GAC1C5H,EAAKoE,K,oCCvVd5E,EAAQC,YAAa,EACrBD,EAAQ+I,oBAAiB,EACzB,IAGIA,EAA8B,WAChC,SAASA,KAET,IAAIzE,EAASyE,EAAexE,UA8C5B,OA5CAD,EAAO0E,KAAO,SAAchG,EAAUiG,GACpC,IAAIC,EAAW5F,KAAK6F,YAAYnG,EAAUiG,GAE1C,IACE,IAAIG,EAAQnF,OAAOoF,eAAeC,QAAQJ,GAC1C,OAAOE,EAAQG,KAAKC,MAAMJ,GAAS,EACnC,MAAOjC,GAKP,OAAIlD,QAAUA,OAAiC,+BAAKA,OAAiC,8BAAEiF,GAC9EjF,OAAiC,8BAAEiF,GAGrC,IAIX5E,EAAOmF,KAAO,SAAczG,EAAUiG,EAAKG,GACzC,IAAIF,EAAW5F,KAAK6F,YAAYnG,EAAUiG,GACtCS,EAAcH,KAAKI,UAAUP,GAEjC,IACEnF,OAAOoF,eAAeO,QAAQV,EAAUQ,GACxC,MAAOvC,GACHlD,QAAUA,OAAiC,gCAG7CA,OAAiC,8BAAI,IAFrCA,OAAiC,8BAAEiF,GAAYK,KAAKC,MAAME,KAYhEpF,EAAO6E,YAAc,SAAqBnG,EAAUiG,GAClD,IAAIY,EAhDe,YAgDwB7G,EAAS0B,SACpD,OAAOuE,QAA6CY,EAAeA,EAAe,IAAMZ,GAGnFF,EAjDyB,GAoDlC/I,EAAQ+I,eAAiBA,G,uBC3DzB,IAAIe,EAAU,EAAQ,QAAwB,QAC9C,SAASC,EAAyB5C,GAChC,GAAI,mBAAqB6C,QAAS,OAAO,KACzC,IAAIC,EAAI,IAAID,QACVE,EAAI,IAAIF,QACV,OAAQD,EAA2B,SAAkC5C,GACnE,OAAOA,EAAI+C,EAAID,IACd9C,GAmBLgD,EAAOnK,QAjBP,SAAiCmH,EAAG8C,GAClC,IAAKA,GAAK9C,GAAKA,EAAElH,WAAY,OAAOkH,EACpC,GAAI,OAASA,GAAK,UAAY2C,EAAQ3C,IAAM,mBAAqBA,EAAG,MAAO,CACzE,QAAWA,GAEb,IAAI+C,EAAIH,EAAyBE,GACjC,GAAIC,GAAKA,EAAEE,IAAIjD,GAAI,OAAO+C,EAAEG,IAAIlD,GAChC,IAAImD,EAAI,CACJC,UAAW,MAEbC,EAAIC,OAAOC,gBAAkBD,OAAOE,yBACtC,IAAK,IAAIC,KAAKzD,EAAG,GAAI,YAAcyD,GAAK,GAAG7E,eAAe1C,KAAK8D,EAAGyD,GAAI,CACpE,IAAIC,EAAIL,EAAIC,OAAOE,yBAAyBxD,EAAGyD,GAAK,KACpDC,IAAMA,EAAER,KAAOQ,EAAEC,KAAOL,OAAOC,eAAeJ,EAAGM,EAAGC,GAAKP,EAAEM,GAAKzD,EAAEyD,GAEpE,OAAON,EAAW,QAAInD,EAAG+C,GAAKA,EAAEY,IAAI3D,EAAGmD,GAAIA,GAEHH,EAAOnK,QAAQC,YAAa,EAAMkK,EAAOnK,QAAiB,QAAImK,EAAOnK,S,wMC1BhGI,UACA2K,IAAT3K,EACKA,EAEI,MAATA,EACK,IAE4B,MAAjCA,EAAK4K,OAAO5K,EAAK6K,OAAS,GACrB7K,EAAK0B,MAAM,GAAI,GAEjB1B,ECNT,MAAM8K,EAAY,IAAIC,IACtB,IAAIC,EAAa,GAEjB,MAAMC,EAAeC,IACnB,MAAM5G,EAAW6G,mBAAmBD,GAQpC,OANwBE,YAAY9G,EAAU+G,IAE3CC,MAAM,KAAK,GAEXA,MAAM,KAAK,IAKhB,SAASvJ,EAAW/B,GAElB,OACEA,EAAKkB,WAAW,MAChBlB,EAAKkB,WAAW,aAChBlB,EAAKkB,WAAW,WAETlB,EAIF,IAAIuL,IACTvL,EACA6D,OAAOjB,SAAS+E,MAAQ9D,OAAOjB,SAAS+E,KAAKlG,SAAS,KAAO,GAAK,MAClE6C,SAQG,MAAMkH,EAAgBxC,IAC3BgC,EAAahC,GAWFyC,EAAgBP,IAC3B,MAAMQ,EAAkBC,EAAUT,GAE5BU,EAAYZ,EAAWa,IAAIzK,IAA0B,IAAzB,KAAEpB,EAAI,UAAE8L,GAAW1K,EACnD,MAAO,CACLpB,KAAM8L,EACNC,aAAc/L,KAIZA,EAAOgM,eAAKJ,EAAWF,GAE7B,OAAI1L,EACKiM,EAAkBjM,EAAKkM,MAAMH,cAG/B,MAYII,EAAkBjB,IAC7B,MAAMQ,EAAkBC,EAAUT,GAE5BU,EAAYZ,EAAWa,IAAIlJ,IAA0B,IAAzB,KAAE3C,EAAI,UAAE8L,GAAWnJ,EACnD,MAAO,CACL3C,KAAM8L,EACNC,aAAc/L,KAIZA,EAAOgM,eAAKJ,EAAWF,GAE7B,OAAI1L,EACKA,EAAKoM,OAGP,IAWIC,EAAWnB,IACtB,MAAMQ,EAAkBT,EAAalJ,EAAWmJ,IAChD,GAAIJ,EAAUd,IAAI0B,GAChB,OAAOZ,EAAUb,IAAIyB,GAGvB,IAAIY,EAAYb,EAAcC,GAQ9B,OANKY,IACHA,EAAYX,EAAUT,IAGxBJ,EAAUJ,IAAIgB,EAAiBY,GAExBA,GAUIX,EAAYT,IAGvB,IAAIoB,EAFoBrB,EAAalJ,EAAWmJ,IAShD,MANkB,gBAAdoB,IACFA,EAAY,KAGdA,EAAYL,EAAkBK,GAEvBA,I,oCC5IT1M,EAAQ2M,cAAgB,SAAUnL,GAChC,IAAIwB,EAAWxB,EAAKwB,SAEpB,GAA6D,mBAAT4J,KAClD,OAAO,KAMT,GAHqB5J,QAA+C,IAA5BiB,OAAO4I,kBAAoC5I,OAAO4I,iBAAiBC,MAAK,SAAUC,GACxH,OAAOA,EAAGC,KAAKhK,EAAS0B,aAEN,OAAO,KAE3B,IAAIuI,EAAe,WACjB,IAAIC,EAAWlK,EAAWA,EAAS0B,SAAW1B,EAASmK,OAASnK,EAASoK,UAAOrC,EAChF9G,OAAO2I,KAAK,QAAS,YAAa,CAChCS,UAAWH,KAaf,MATI,0BAA2BjJ,OAC7BqJ,uBAAsB,WACpBA,sBAAsBL,MAIxBM,WAAWN,EAAc,IAGpB,O,oCC5BTjN,EAAQC,YAAa,EACrBD,EAAQwN,qBAQR,SAA8BC,GAC5B,IAAIzK,GAAW,EAAI/B,EAAQyM,eACvBvJ,GAAQ,EAAInD,EAAO2M,YAAYC,EAAeC,eAC9ClI,GAAM,EAAI3E,EAAO8M,UAOrB,OANA,EAAI9M,EAAO+M,kBAAiB,WAC1B,GAAIpI,EAAI1D,QAAS,CACf,IAAI+L,EAAW7J,EAAM6E,KAAKhG,EAAUyK,GACpC9H,EAAI1D,QAAQgM,SAAS,EAAGD,GAAY,MAErC,IACI,CACLrI,IAAKA,EACLuI,SAAU,WACJvI,EAAI1D,SACNkC,EAAMsF,KAAKzG,EAAUyK,EAAY9H,EAAI1D,QAAQkM,cApBrD,IAAIP,EAAiB,EAAQ,QAEzB5M,EAAS,EAAQ,QAEjBC,EAAU,EAAQ,S,oCCPtB,MAAMmN,ECiBN,SAAcC,GAGb,OAFAA,EAAMA,GAAO5D,OAAO6D,OAAO,MAEpB,CAQNC,GAAI,SAAYC,EAAcC,IAC5BJ,EAAIG,KAAUH,EAAIG,GAAQ,KAAKhO,KAAKiO,IAUtCC,IAAK,SAAaF,EAAcC,GAC3BJ,EAAIG,IACPH,EAAIG,GAAMG,OAAON,EAAIG,GAAMI,QAAQH,KAAa,EAAG,IAYrDI,KAAM,SAAcL,EAAcM,IAChCT,EAAIG,IAAS,IAAI1M,QAAQmK,KAAI,SAAUwC,GAAWA,EAAQK,OAC1DT,EAAI,MAAQ,IAAIvM,QAAQmK,KAAI,SAAUwC,GAAWA,EAAQD,EAAMM,QDvDnDC,GACDX,O,oCEDfpO,EAAQC,YAAa,EACrBD,EAAQwN,qBAAuBxN,EAAQgP,gBAAkBhP,EAAQ6N,mBAAgB,EAEjF,IAAID,EAAiB,EAAQ,QAE7B5N,EAAQ6N,cAAgBD,EAAeqB,cAEvC,IAAIC,EAAmB,EAAQ,QAE/BlP,EAAQgP,gBAAkBE,EAAiBF,gBAE3C,IAAIG,EAAwB,EAAQ,QAEpCnP,EAAQwN,qBAAuB2B,EAAsB3B,sB,oCCfrD,mBA2BA,IAHA,IAAI4B,EAA8B,oBAAXnL,QAA8C,oBAAboL,SACpDC,EAAwB,CAAC,OAAQ,UAAW,WAC5CC,EAAkB,EACb1E,EAAI,EAAGA,EAAIyE,EAAsBrE,OAAQJ,GAAK,EACrD,GAAIuE,GAAaI,UAAUC,UAAUb,QAAQU,EAAsBzE,KAAO,EAAG,CAC3E0E,EAAkB,EAClB,MA4BJ,IAWIG,EAXqBN,GAAanL,OAAO0L,QAzB7C,SAA2BC,GACzB,IAAIC,GAAS,EACb,OAAO,WACDA,IAGJA,GAAS,EACT5L,OAAO0L,QAAQzN,UAAU4N,MAAK,WAC5BD,GAAS,EACTD,UAIN,SAAsBA,GACpB,IAAIG,GAAY,EAChB,OAAO,WACAA,IACHA,GAAY,EACZxC,YAAW,WACTwC,GAAY,EACZH,MACCL,MAwBT,SAASS,EAAWC,GAElB,OAAOA,GAA8D,sBADvD,GACoBC,SAAS7M,KAAK4M,GAUlD,SAASE,EAAyBC,EAASC,GACzC,GAAyB,IAArBD,EAAQE,SACV,MAAO,GAGT,IAAIC,EAAMC,iBAAiBJ,EAAS,MACpC,OAAOC,EAAWE,EAAIF,GAAYE,EAUpC,SAASE,EAAcL,GACrB,MAAyB,SAArBA,EAAQM,SACHN,EAEFA,EAAQO,YAAcP,EAAQQ,KAUvC,SAASC,EAAgBT,GAEvB,IAAKA,EACH,OAAOf,SAASyB,KAElB,OAAQV,EAAQM,UACd,IAAK,OACL,IAAK,OACH,OAAON,EAAQW,cAAcD,KAC/B,IAAK,YACH,OAAOV,EAAQU,KAKnB,IAAIE,EAAwBb,EAAyBC,GACnDa,EAAWD,EAAsBC,SACjCC,EAAYF,EAAsBE,UAClCC,EAAYH,EAAsBG,UACpC,MAAI,wBAAwBnE,KAAKiE,EAAWE,EAAYD,GAC/Cd,EAEFS,EAAgBJ,EAAcL,IAEvC,IAAIgB,EAAShC,MAAgBnL,OAAOoN,uBAAwBhC,SAASiC,cACjEC,EAASnC,GAAa,UAAUpC,KAAKwC,UAAUC,WASnD,SAAS+B,EAAKjJ,GACZ,OAAgB,KAAZA,EACK6I,EAEO,KAAZ7I,EACKgJ,EAEFH,GAAUG,EAUnB,SAASE,EAAgBrB,GACvB,IAAKA,EACH,OAAOf,SAASqC,gBAOlB,IALA,IAAIC,EAAiBH,EAAK,IAAMnC,SAASyB,KAAO,KAG5Cc,EAAexB,EAAQwB,aAEpBA,IAAiBD,GAAkBvB,EAAQyB,oBAChDD,GAAgBxB,EAAUA,EAAQyB,oBAAoBD,aAExD,IAAIlB,EAAWkB,GAAgBA,EAAalB,SAC5C,OAAKA,GAAyB,SAAbA,GAAoC,SAAbA,GAMgB,IAApD,CAAC,KAAM,SAAS9B,QAAQgD,EAAalB,WAA2E,WAAvDP,EAAyByB,EAAc,YAC3FH,EAAgBG,GAElBA,EARExB,EAAUA,EAAQW,cAAcW,gBAAkBrC,SAASqC,gBAyBtE,SAASI,EAAQC,GACf,OAAwB,OAApBA,EAAKpB,WACAmB,EAAQC,EAAKpB,YAEfoB,EAWT,SAASC,EAAuBC,EAAUC,GAExC,KAAKD,GAAaA,EAAS3B,UAAa4B,GAAaA,EAAS5B,UAC5D,OAAOjB,SAASqC,gBAIlB,IAAIS,EAAQF,EAASG,wBAAwBF,GAAYG,KAAKC,4BAC1DC,EAAQJ,EAAQF,EAAWC,EAC3BM,EAAML,EAAQD,EAAWD,EAGzBQ,EAAQpD,SAASqD,cACrBD,EAAME,SAASJ,EAAO,GACtBE,EAAMG,OAAOJ,EAAK,GAClB,IA7CyBpC,EACrBM,EA4CAmC,EAA0BJ,EAAMI,wBAIpC,GAAIZ,IAAaY,GAA2BX,IAAaW,GAA2BN,EAAMO,SAASN,GACjG,MAhDe,UADb9B,GADqBN,EAkDDyC,GAjDDnC,WAIH,SAAbA,GAAuBe,EAAgBrB,EAAQ2C,qBAAuB3C,EAgDpEqB,EAAgBoB,GAFdA,EAMX,IAAIG,EAAelB,EAAQG,GAC3B,OAAIe,EAAapC,KACRoB,EAAuBgB,EAAapC,KAAMsB,GAE1CF,EAAuBC,EAAUH,EAAQI,GAAUtB,MAY9D,SAASqC,EAAU7C,GACjB,IAAI8C,EAAOC,UAAUlI,OAAS,QAAsBF,IAAjBoI,UAAU,GAAmBA,UAAU,GAAK,MAC3EC,EAAqB,QAATF,EAAiB,YAAc,aAC3CxC,EAAWN,EAAQM,SACvB,GAAiB,SAAbA,GAAoC,SAAbA,EAAqB,CAC9C,IAAI2C,EAAOjD,EAAQW,cAAcW,gBAC7B4B,EAAmBlD,EAAQW,cAAcuC,kBAAoBD,EACjE,OAAOC,EAAiBF,GAE1B,OAAOhD,EAAQgD,GAYjB,SAASG,EAAcC,EAAMpD,GAC3B,IAAIqD,EAAWN,UAAUlI,OAAS,QAAsBF,IAAjBoI,UAAU,IAAmBA,UAAU,GAC1EhF,EAAY8E,EAAU7C,EAAS,OAC/BsD,EAAaT,EAAU7C,EAAS,QAChCuD,EAAWF,GAAY,EAAI,EAK/B,OAJAD,EAAKI,KAAOzF,EAAYwF,EACxBH,EAAKK,QAAU1F,EAAYwF,EAC3BH,EAAKM,MAAQJ,EAAaC,EAC1BH,EAAKO,OAASL,EAAaC,EACpBH,EAaT,SAASQ,EAAeC,EAAQC,GAC9B,IAAIC,EAAiB,MAATD,EAAe,OAAS,MAChCE,EAAkB,SAAVD,EAAmB,QAAU,SACzC,OAAOE,WAAWJ,EAAO,SAAWE,EAAQ,SAAU,IAAME,WAAWJ,EAAO,SAAWG,EAAQ,SAAU,IAE7G,SAASE,EAAQJ,EAAMpD,EAAMuC,EAAMkB,GACjC,OAAOC,KAAKC,IAAI3D,EAAK,SAAWoD,GAAOpD,EAAK,SAAWoD,GAAOb,EAAK,SAAWa,GAAOb,EAAK,SAAWa,GAAOb,EAAK,SAAWa,GAAO1C,EAAK,IAAM6B,EAAK,SAAWa,GAAQK,EAAc,UAAqB,WAATL,EAAoB,MAAQ,SAAWK,EAAc,UAAqB,WAATL,EAAoB,SAAW,UAAY,GAE9S,SAASQ,IACP,IAAI5D,EAAOzB,SAASyB,KAChBuC,EAAOhE,SAASqC,gBAChB6C,EAAgB/C,EAAK,KAAOhB,iBAAiB6C,GACjD,MAAO,CACLsB,OAAQL,EAAQ,SAAUxD,EAAMuC,EAAMkB,GACtCK,MAAON,EAAQ,QAASxD,EAAMuC,EAAMkB,IAGxC,IAAIM,EAAiB,SAAUtP,EAAUuP,GACvC,KAAMvP,aAAoBuP,GACxB,MAAM,IAAIC,UAAU,sCAGpBC,EAAc,WAChB,SAASC,EAAiB9O,EAAQvD,GAChC,IAAK,IAAIiI,EAAI,EAAGA,EAAIjI,EAAMqI,OAAQJ,IAAK,CACrC,IAAIqK,EAAatS,EAAMiI,GACvBqK,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjD5K,OAAOC,eAAevE,EAAQ+O,EAAWjM,IAAKiM,IAGlD,OAAO,SAAUJ,EAAaQ,EAAYC,GAGxC,OAFID,GAAYL,EAAiBH,EAAYvQ,UAAW+Q,GACpDC,GAAaN,EAAiBH,EAAaS,GACxCT,GAbO,GAgBdpK,EAAiB,SAAU8K,EAAKvM,EAAKG,GAWvC,OAVIH,KAAOuM,EACT/K,OAAOC,eAAe8K,EAAKvM,EAAK,CAC9BG,MAAOA,EACP+L,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZG,EAAIvM,GAAOG,EAENoM,GAELC,EAAWhL,OAAOiL,QAAU,SAAUvP,GACxC,IAAK,IAAI0E,EAAI,EAAGA,EAAIsI,UAAUlI,OAAQJ,IAAK,CACzC,IAAI8K,EAASxC,UAAUtI,GACvB,IAAK,IAAI5B,KAAO0M,EACVlL,OAAOlG,UAAUwB,eAAe1C,KAAKsS,EAAQ1M,KAC/C9C,EAAO8C,GAAO0M,EAAO1M,IAI3B,OAAO9C,GAUT,SAASyP,EAAcC,GACrB,OAAOJ,EAAS,GAAII,EAAS,CAC3B9B,MAAO8B,EAAQ/B,KAAO+B,EAAQjB,MAC9Bf,OAAQgC,EAAQjC,IAAMiC,EAAQlB,SAWlC,SAASmB,EAAsB1F,GAC7B,IAAIoD,EAAO,GAKX,IACE,GAAIhC,EAAK,IAAK,CACZgC,EAAOpD,EAAQ0F,wBACf,IAAI3H,EAAY8E,EAAU7C,EAAS,OAC/BsD,EAAaT,EAAU7C,EAAS,QACpCoD,EAAKI,KAAOzF,EACZqF,EAAKM,MAAQJ,EACbF,EAAKK,QAAU1F,EACfqF,EAAKO,OAASL,OAEdF,EAAOpD,EAAQ0F,wBAEjB,MAAO3O,IACT,IAAI4O,EAAS,CACXjC,KAAMN,EAAKM,KACXF,IAAKJ,EAAKI,IACVgB,MAAOpB,EAAKO,MAAQP,EAAKM,KACzBa,OAAQnB,EAAKK,OAASL,EAAKI,KAIzBoC,EAA6B,SAArB5F,EAAQM,SAAsBgE,IAAmB,GACzDE,EAAQoB,EAAMpB,OAASxE,EAAQ6F,aAAeF,EAAOhC,MAAQgC,EAAOjC,KACpEa,EAASqB,EAAMrB,QAAUvE,EAAQ8F,cAAgBH,EAAOlC,OAASkC,EAAOnC,IACxEuC,EAAiB/F,EAAQgG,YAAcxB,EACvCyB,EAAgBjG,EAAQkG,aAAe3B,EAI3C,GAAIwB,GAAkBE,EAAe,CACnC,IAAIpC,EAAS9D,EAAyBC,GACtC+F,GAAkBnC,EAAeC,EAAQ,KACzCoC,GAAiBrC,EAAeC,EAAQ,KACxC8B,EAAOnB,OAASuB,EAChBJ,EAAOpB,QAAU0B,EAEnB,OAAOT,EAAcG,GAEvB,SAASQ,EAAqCC,EAAUC,GACtD,IAAIC,EAAgBvD,UAAUlI,OAAS,QAAsBF,IAAjBoI,UAAU,IAAmBA,UAAU,GAC/E5B,EAASC,EAAK,IACdmF,EAA6B,SAApBF,EAAO/F,SAChBkG,EAAed,EAAsBU,GACrCK,EAAaf,EAAsBW,GACnCK,EAAejG,EAAgB2F,GAC/BvC,EAAS9D,EAAyBsG,GAClCM,EAAiB1C,WAAWJ,EAAO8C,eAAgB,IACnDC,EAAkB3C,WAAWJ,EAAO+C,gBAAiB,IAGrDN,GAAqC,SAApBD,EAAO/F,WAC1BmG,EAAWjD,IAAMY,KAAKC,IAAIoC,EAAWjD,IAAK,GAC1CiD,EAAW/C,KAAOU,KAAKC,IAAIoC,EAAW/C,KAAM,IAE9C,IAAI+B,EAAUD,EAAc,CAC1BhC,IAAKgD,EAAahD,IAAMiD,EAAWjD,IAAMmD,EACzCjD,KAAM8C,EAAa9C,KAAO+C,EAAW/C,KAAOkD,EAC5CpC,MAAOgC,EAAahC,MACpBD,OAAQiC,EAAajC,SASvB,GAPAkB,EAAQoB,UAAY,EACpBpB,EAAQqB,WAAa,GAMhB3F,GAAUoF,EAAQ,CACrB,IAAIM,EAAY5C,WAAWJ,EAAOgD,UAAW,IACzCC,EAAa7C,WAAWJ,EAAOiD,WAAY,IAC/CrB,EAAQjC,KAAOmD,EAAiBE,EAChCpB,EAAQhC,QAAUkD,EAAiBE,EACnCpB,EAAQ/B,MAAQkD,EAAkBE,EAClCrB,EAAQ9B,OAASiD,EAAkBE,EAGnCrB,EAAQoB,UAAYA,EACpBpB,EAAQqB,WAAaA,EAKvB,OAHI3F,IAAWmF,EAAgBD,EAAO3D,SAASgE,GAAgBL,IAAWK,GAA0C,SAA1BA,EAAapG,YACrGmF,EAAUtC,EAAcsC,EAASY,IAE5BZ,EAET,SAASsB,EAA8C/G,GACrD,IAAIgH,EAAgBjE,UAAUlI,OAAS,QAAsBF,IAAjBoI,UAAU,IAAmBA,UAAU,GAC/EE,EAAOjD,EAAQW,cAAcW,gBAC7B2F,EAAiBd,EAAqCnG,EAASiD,GAC/DuB,EAAQJ,KAAKC,IAAIpB,EAAK4C,YAAahS,OAAOqT,YAAc,GACxD3C,EAASH,KAAKC,IAAIpB,EAAK6C,aAAcjS,OAAOsT,aAAe,GAC3DpJ,EAAaiJ,EAAkC,EAAlBnE,EAAUI,GACvCK,EAAc0D,EAA0C,EAA1BnE,EAAUI,EAAM,QAC9CmE,EAAS,CACX5D,IAAKzF,EAAYkJ,EAAezD,IAAMyD,EAAeJ,UACrDnD,KAAMJ,EAAa2D,EAAevD,KAAOuD,EAAeH,WACxDtC,MAAOA,EACPD,OAAQA,GAEV,OAAOiB,EAAc4B,GAWvB,SAASC,EAAQrH,GACf,IAAIM,EAAWN,EAAQM,SACvB,MAAiB,SAAbA,GAAoC,SAAbA,IAG2B,UAAlDP,EAAyBC,EAAS,aAG/BqH,EAAQhH,EAAcL,KAW/B,SAASsH,EAA6BtH,GAEpC,IAAKA,IAAYA,EAAQuH,eAAiBnG,IACxC,OAAOnC,SAASqC,gBAGlB,IADA,IAAIlM,EAAK4K,EAAQuH,cACVnS,GAAoD,SAA9C2K,EAAyB3K,EAAI,cACxCA,EAAKA,EAAGmS,cAEV,OAAOnS,GAAM6J,SAASqC,gBAcxB,SAASkG,EAAcC,EAAQC,EAAWC,EAASC,GACjD,IAAItB,EAAgBvD,UAAUlI,OAAS,QAAsBF,IAAjBoI,UAAU,IAAmBA,UAAU,GAI/E8E,EAAa,CACfrE,IAAK,EACLE,KAAM,GAEJlC,EAAe8E,EAAgBgB,EAA6BG,GAAU7F,EAAuB6F,EAAQC,GAGzG,GAA0B,aAAtBE,EACFC,EAAad,EAA8CvF,EAAc8E,OACpE,CAEL,IAAIwB,OAAiB,EACK,iBAAtBF,EAE8B,UADhCE,EAAiBrH,EAAgBJ,EAAcqH,KAC5BpH,WACjBwH,EAAiBL,EAAO9G,cAAcW,iBAGxCwG,EAD+B,WAAtBF,EACQH,EAAO9G,cAAcW,gBAErBsG,EAEnB,IAAInC,EAAUU,EAAqC2B,EAAgBtG,EAAc8E,GAGjF,GAAgC,SAA5BwB,EAAexH,UAAwB+G,EAAQ7F,GAUjDqG,EAAapC,MAVmD,CAChE,IAAIsC,EAAkBzD,IACpBC,EAASwD,EAAgBxD,OACzBC,EAAQuD,EAAgBvD,MAC1BqD,EAAWrE,KAAOiC,EAAQjC,IAAMiC,EAAQoB,UACxCgB,EAAWpE,OAASc,EAASkB,EAAQjC,IACrCqE,EAAWnE,MAAQ+B,EAAQ/B,KAAO+B,EAAQqB,WAC1Ce,EAAWlE,MAAQa,EAAQiB,EAAQ/B,MAYvC,OAJAmE,EAAWnE,MAAQiE,EACnBE,EAAWrE,KAAOmE,EAClBE,EAAWlE,OAASgE,EACpBE,EAAWpE,QAAUkE,EACdE,EAET,SAASG,EAAQ5W,GAGf,OAFYA,EAAKoT,MACNpT,EAAKmT,OAalB,SAAS0D,EAAqBC,EAAWC,EAASV,EAAQC,EAAWE,GACnE,IAAID,EAAU5E,UAAUlI,OAAS,QAAsBF,IAAjBoI,UAAU,GAAmBA,UAAU,GAAK,EAClF,IAAmC,IAA/BmF,EAAU1J,QAAQ,QACpB,OAAO0J,EAET,IAAIL,EAAaL,EAAcC,EAAQC,EAAWC,EAASC,GACvDQ,EAAQ,CACV5E,IAAK,CACHgB,MAAOqD,EAAWrD,MAClBD,OAAQ4D,EAAQ3E,IAAMqE,EAAWrE,KAEnCG,MAAO,CACLa,MAAOqD,EAAWlE,MAAQwE,EAAQxE,MAClCY,OAAQsD,EAAWtD,QAErBd,OAAQ,CACNe,MAAOqD,EAAWrD,MAClBD,OAAQsD,EAAWpE,OAAS0E,EAAQ1E,QAEtCC,KAAM,CACJc,MAAO2D,EAAQzE,KAAOmE,EAAWnE,KACjCa,OAAQsD,EAAWtD,SAGnB8D,EAAchO,OAAOiO,KAAKF,GAAOvM,KAAI,SAAUhD,GACjD,OAAOwM,EAAS,CACdxM,IAAKA,GACJuP,EAAMvP,GAAM,CACb0P,KAAMP,EAAQI,EAAMvP,SAErB2P,MAAK,SAAUpO,EAAGqO,GACnB,OAAOA,EAAEF,KAAOnO,EAAEmO,QAEhBG,EAAgBL,EAAY7U,QAAO,SAAUb,GAC/C,IAAI6R,EAAQ7R,EAAM6R,MAChBD,EAAS5R,EAAM4R,OACjB,OAAOC,GAASiD,EAAO5B,aAAetB,GAAUkD,EAAO3B,gBAErD6C,EAAoBD,EAAc7N,OAAS,EAAI6N,EAAc,GAAG7P,IAAMwP,EAAY,GAAGxP,IACrF+P,EAAYV,EAAU5M,MAAM,KAAK,GACrC,OAAOqN,GAAqBC,EAAY,IAAMA,EAAY,IAa5D,SAASC,EAAoB9U,EAAO0T,EAAQC,GAC1C,IAAIpB,EAAgBvD,UAAUlI,OAAS,QAAsBF,IAAjBoI,UAAU,GAAmBA,UAAU,GAAK,KACpF+F,EAAqBxC,EAAgBgB,EAA6BG,GAAU7F,EAAuB6F,EAAQC,GAC/G,OAAOvB,EAAqCuB,EAAWoB,EAAoBxC,GAU7E,SAASyC,EAAc/I,GACrB,IAAI6D,EAASzD,iBAAiBJ,GAC1BgJ,EAAI/E,WAAWJ,EAAOgD,WAAa5C,WAAWJ,EAAOoF,cACrDC,EAAIjF,WAAWJ,EAAOiD,YAAc7C,WAAWJ,EAAOsF,aAK1D,MAJa,CACX3E,MAAOxE,EAAQgG,YAAckD,EAC7B3E,OAAQvE,EAAQkG,aAAe8C,GAYnC,SAASI,EAAqBlB,GAC5B,IAAIlL,EAAO,CACT0G,KAAM,QACNC,MAAO,OACPF,OAAQ,MACRD,IAAK,UAEP,OAAO0E,EAAU/X,QAAQ,0BAA0B,SAAUkZ,GAC3D,OAAOrM,EAAKqM,MAchB,SAASC,EAAiB7B,EAAQ8B,EAAkBrB,GAClDA,EAAYA,EAAU5M,MAAM,KAAK,GAGjC,IAAIkO,EAAaT,EAActB,GAG3BgC,EAAgB,CAClBjF,MAAOgF,EAAWhF,MAClBD,OAAQiF,EAAWjF,QAIjBmF,GAAoD,IAA1C,CAAC,QAAS,QAAQlL,QAAQ0J,GACpCyB,EAAWD,EAAU,MAAQ,OAC7BE,EAAgBF,EAAU,OAAS,MACnCG,EAAcH,EAAU,SAAW,QACnCI,EAAwBJ,EAAqB,QAAX,SAOtC,OANAD,EAAcE,GAAYJ,EAAiBI,GAAYJ,EAAiBM,GAAe,EAAIL,EAAWK,GAAe,EAEnHJ,EAAcG,GADZ1B,IAAc0B,EACeL,EAAiBK,GAAiBJ,EAAWM,GAE7CP,EAAiBH,EAAqBQ,IAEhEH,EAYT,SAASM,EAAKC,EAAKC,GAEjB,OAAIC,MAAM/V,UAAU4V,KACXC,EAAID,KAAKE,GAIXD,EAAIxW,OAAOyW,GAAO,GAqC3B,SAASE,EAAaC,EAAWC,EAAMC,GAiBrC,YAhB8B3P,IAAT2P,EAAqBF,EAAYA,EAAU1Y,MAAM,EA1BxE,SAAmBsY,EAAKO,EAAMvR,GAE5B,GAAIkR,MAAM/V,UAAUqW,UAClB,OAAOR,EAAIQ,WAAU,SAAUC,GAC7B,OAAOA,EAAIF,KAAUvR,KAKzB,IAAI0R,EAAQX,EAAKC,GAAK,SAAU5E,GAC9B,OAAOA,EAAImF,KAAUvR,KAEvB,OAAOgR,EAAIxL,QAAQkM,GAcsDF,CAAUJ,EAAW,OAAQE,KACvFzU,SAAQ,SAAU0N,GAC3BA,EAAmB,UAErBnL,QAAQC,KAAK,yDAEf,IAAImH,EAAK+D,EAAmB,UAAKA,EAAS/D,GACtC+D,EAASoH,SAAW/K,EAAWJ,KAIjC6K,EAAK5E,QAAQgC,OAASjC,EAAc6E,EAAK5E,QAAQgC,QACjD4C,EAAK5E,QAAQiC,UAAYlC,EAAc6E,EAAK5E,QAAQiC,WACpD2C,EAAO7K,EAAG6K,EAAM9G,OAGb8G,EAUT,SAASO,IAEP,IAAI1X,KAAKa,MAAM8W,YAAf,CAGA,IAAIR,EAAO,CACTlV,SAAUjC,KACV2Q,OAAQ,GACRiH,YAAa,GACbC,WAAY,GACZC,SAAS,EACTvF,QAAS,IAIX4E,EAAK5E,QAAQiC,UAAYmB,EAAoB3V,KAAKa,MAAOb,KAAKuU,OAAQvU,KAAKwU,UAAWxU,KAAKsF,QAAQyS,eAKnGZ,EAAKnC,UAAYD,EAAqB/U,KAAKsF,QAAQ0P,UAAWmC,EAAK5E,QAAQiC,UAAWxU,KAAKuU,OAAQvU,KAAKwU,UAAWxU,KAAKsF,QAAQ4R,UAAUc,KAAKtD,kBAAmB1U,KAAKsF,QAAQ4R,UAAUc,KAAKvD,SAG9L0C,EAAKc,kBAAoBd,EAAKnC,UAC9BmC,EAAKY,cAAgB/X,KAAKsF,QAAQyS,cAGlCZ,EAAK5E,QAAQgC,OAAS6B,EAAiBpW,KAAKuU,OAAQ4C,EAAK5E,QAAQiC,UAAW2C,EAAKnC,WACjFmC,EAAK5E,QAAQgC,OAAO7J,SAAW1K,KAAKsF,QAAQyS,cAAgB,QAAU,WAGtEZ,EAAOF,EAAajX,KAAKkX,UAAWC,GAI/BnX,KAAKa,MAAMqX,UAIdlY,KAAKsF,QAAQ6S,SAAShB,IAHtBnX,KAAKa,MAAMqX,WAAY,EACvBlY,KAAKsF,QAAQ8S,SAASjB,KAY1B,SAASkB,EAAkBnB,EAAWoB,GACpC,OAAOpB,EAAU1N,MAAK,SAAUtL,GAC9B,IAAIqa,EAAOra,EAAKqa,KAEhB,OADYra,EAAKuZ,SACCc,IAASD,KAW/B,SAASE,EAAyBzL,GAGhC,IAFA,IAAI0L,EAAW,EAAC,EAAO,KAAM,SAAU,MAAO,KAC1CC,EAAY3L,EAASrF,OAAO,GAAGiR,cAAgB5L,EAASvO,MAAM,GACzD+I,EAAI,EAAGA,EAAIkR,EAAS9Q,OAAQJ,IAAK,CACxC,IAAItJ,EAASwa,EAASlR,GAClBqR,EAAU3a,EAAS,GAAKA,EAASya,EAAY3L,EACjD,QAA4C,IAAjChB,SAASyB,KAAK/M,MAAMmY,GAC7B,OAAOA,EAGX,OAAO,KAQT,SAASC,IAqBP,OApBA7Y,KAAKa,MAAM8W,aAAc,EAGrBU,EAAkBrY,KAAKkX,UAAW,gBACpClX,KAAKuU,OAAOuE,gBAAgB,eAC5B9Y,KAAKuU,OAAO9T,MAAMiK,SAAW,GAC7B1K,KAAKuU,OAAO9T,MAAM6P,IAAM,GACxBtQ,KAAKuU,OAAO9T,MAAM+P,KAAO,GACzBxQ,KAAKuU,OAAO9T,MAAMgQ,MAAQ,GAC1BzQ,KAAKuU,OAAO9T,MAAM8P,OAAS,GAC3BvQ,KAAKuU,OAAO9T,MAAMsY,WAAa,GAC/B/Y,KAAKuU,OAAO9T,MAAM+X,EAAyB,cAAgB,IAE7DxY,KAAKgZ,wBAIDhZ,KAAKsF,QAAQ2T,iBACfjZ,KAAKuU,OAAOlH,WAAW6L,YAAYlZ,KAAKuU,QAEnCvU,KAQT,SAASmZ,EAAUrM,GACjB,IAAIW,EAAgBX,EAAQW,cAC5B,OAAOA,EAAgBA,EAAc2L,YAAczY,OAoBrD,SAAS0Y,EAAoB7E,EAAWlP,EAASzE,EAAOyY,GAEtDzY,EAAMyY,YAAcA,EACpBH,EAAU3E,GAAW+E,iBAAiB,SAAU1Y,EAAMyY,YAAa,CACjEE,SAAS,IAIX,IAAIC,EAAgBlM,EAAgBiH,GAIpC,OA9BF,SAASkF,EAAsBlG,EAAcmG,EAAOC,EAAUC,GAC5D,IAAIC,EAAmC,SAA1BtG,EAAapG,SACtBvK,EAASiX,EAAStG,EAAa/F,cAAc2L,YAAc5F,EAC/D3Q,EAAO0W,iBAAiBI,EAAOC,EAAU,CACvCJ,SAAS,IAENM,GACHJ,EAAsBnM,EAAgB1K,EAAOwK,YAAasM,EAAOC,EAAUC,GAE7EA,EAAc3c,KAAK2F,GAkBnB6W,CAAsBD,EAAe,SAAU5Y,EAAMyY,YAAazY,EAAMgZ,eACxEhZ,EAAM4Y,cAAgBA,EACtB5Y,EAAMkZ,eAAgB,EACflZ,EAST,SAASmZ,IACFha,KAAKa,MAAMkZ,gBACd/Z,KAAKa,MAAQwY,EAAoBrZ,KAAKwU,UAAWxU,KAAKsF,QAAStF,KAAKa,MAAOb,KAAKia,iBAkCpF,SAASjB,IAxBT,IAA8BxE,EAAW3T,EAyBnCb,KAAKa,MAAMkZ,gBACbG,qBAAqBla,KAAKia,gBAC1Bja,KAAKa,OA3BqB2T,EA2BQxU,KAAKwU,UA3BF3T,EA2Bab,KAAKa,MAzBzDsY,EAAU3E,GAAW2F,oBAAoB,SAAUtZ,EAAMyY,aAGzDzY,EAAMgZ,cAAclX,SAAQ,SAAUE,GACpCA,EAAOsX,oBAAoB,SAAUtZ,EAAMyY,gBAI7CzY,EAAMyY,YAAc,KACpBzY,EAAMgZ,cAAgB,GACtBhZ,EAAM4Y,cAAgB,KACtB5Y,EAAMkZ,eAAgB,EACflZ,IAwBT,SAASuZ,EAAUpT,GACjB,MAAa,KAANA,IAAaqT,MAAMtJ,WAAW/J,KAAOsT,SAAStT,GAWvD,SAASuT,EAAUzN,EAAS6D,GAC1BxJ,OAAOiO,KAAKzE,GAAQhO,SAAQ,SAAU0U,GACpC,IAAImD,EAAO,IAEkE,IAAzE,CAAC,QAAS,SAAU,MAAO,QAAS,SAAU,QAAQlP,QAAQ+L,IAAgB+C,EAAUzJ,EAAO0G,MACjGmD,EAAO,MAET1N,EAAQrM,MAAM4W,GAAQ1G,EAAO0G,GAAQmD,KAqLzC,SAASC,EAAmBvD,EAAWwD,EAAgBC,GACrD,IAAIC,EAAa/D,EAAKK,GAAW,SAAUhZ,GAEzC,OADWA,EAAKqa,OACAmC,KAEd7V,IAAe+V,GAAc1D,EAAU1N,MAAK,SAAU6G,GACxD,OAAOA,EAASkI,OAASoC,GAAiBtK,EAASoH,SAAWpH,EAASxB,MAAQ+L,EAAW/L,SAE5F,IAAKhK,EAAY,CACf,IAAIgW,EAAc,IAAMH,EAAiB,IACrCI,EAAY,IAAMH,EAAgB,IACtCzV,QAAQC,KAAK2V,EAAY,4BAA8BD,EAAc,4DAA8DA,EAAc,KAEnJ,OAAOhW,EA8HT,IAAIkW,EAAa,CAAC,aAAc,OAAQ,WAAY,YAAa,MAAO,UAAW,cAAe,QAAS,YAAa,aAAc,SAAU,eAAgB,WAAY,OAAQ,cAGhLC,EAAkBD,EAAWvc,MAAM,GAYvC,SAASyc,GAAUjG,GACjB,IAAIkG,EAAUrL,UAAUlI,OAAS,QAAsBF,IAAjBoI,UAAU,IAAmBA,UAAU,GACzEsL,EAAQH,EAAgB1P,QAAQ0J,GAChC8B,EAAMkE,EAAgBxc,MAAM2c,EAAQ,GAAGC,OAAOJ,EAAgBxc,MAAM,EAAG2c,IAC3E,OAAOD,EAAUpE,EAAIuE,UAAYvE,EAEnC,IAAIwE,GACI,OADJA,GAES,YAFTA,GAGgB,mBAsKpB,SAASC,GAAYrH,EAAQqC,EAAeF,EAAkBmF,GAC5D,IAAIjJ,EAAU,CAAC,EAAG,GAKdkJ,GAA0D,IAA9C,CAAC,QAAS,QAAQnQ,QAAQkQ,GAItCE,EAAYxH,EAAO9L,MAAM,WAAWO,KAAI,SAAUgT,GACpD,OAAOA,EAAKC,UAKVC,EAAUH,EAAUpQ,QAAQuL,EAAK6E,GAAW,SAAUC,GACxD,OAAgC,IAAzBA,EAAK9R,OAAO,YAEjB6R,EAAUG,KAAiD,IAArCH,EAAUG,GAASvQ,QAAQ,MACnDpG,QAAQC,KAAK,gFAKf,IAAI2W,EAAa,cACbC,GAAmB,IAAbF,EAAiB,CAACH,EAAUld,MAAM,EAAGqd,GAAST,OAAO,CAACM,EAAUG,GAASzT,MAAM0T,GAAY,KAAM,CAACJ,EAAUG,GAASzT,MAAM0T,GAAY,IAAIV,OAAOM,EAAUld,MAAMqd,EAAU,KAAO,CAACH,GAqC9L,OAlCAK,EAAMA,EAAIpT,KAAI,SAAUqT,EAAIb,GAE1B,IAAIxE,GAAyB,IAAVwE,GAAeM,EAAYA,GAAa,SAAW,QAClEQ,GAAoB,EACxB,OAAOD,EAGNE,QAAO,SAAUhV,EAAGqO,GACnB,MAAwB,KAApBrO,EAAEA,EAAES,OAAS,KAAwC,IAA3B,CAAC,IAAK,KAAK2D,QAAQiK,IAC/CrO,EAAEA,EAAES,OAAS,GAAK4N,EAClB0G,GAAoB,EACb/U,GACE+U,GACT/U,EAAEA,EAAES,OAAS,IAAM4N,EACnB0G,GAAoB,EACb/U,GAEAA,EAAEkU,OAAO7F,KAEjB,IAEF5M,KAAI,SAAUwT,GACb,OArGN,SAAiBA,EAAKxF,EAAaJ,EAAeF,GAEhD,IAAIjO,EAAQ+T,EAAI3E,MAAM,6BAClB1R,GAASsC,EAAM,GACfoS,EAAOpS,EAAM,GAGjB,IAAKtC,EACH,OAAOqW,EAET,GAA0B,IAAtB3B,EAAKlP,QAAQ,KAAY,CAC3B,IAAIwB,OAAU,EACd,OAAQ0N,GACN,IAAK,KACH1N,EAAUyJ,EACV,MACF,IAAK,IACL,IAAK,KACL,QACEzJ,EAAUuJ,EAGd,OADW/D,EAAcxF,GACb6J,GAAe,IAAM7Q,EAC5B,GAAa,OAAT0U,GAA0B,OAATA,EAAe,CAQzC,OALa,OAATA,EACKtJ,KAAKC,IAAIpF,SAASqC,gBAAgBwE,aAAcjS,OAAOsT,aAAe,GAEtE/C,KAAKC,IAAIpF,SAASqC,gBAAgBuE,YAAahS,OAAOqT,YAAc,IAE/D,IAAMlO,EAIpB,OAAOA,EAkEEsW,CAAQD,EAAKxF,EAAaJ,EAAeF,UAKhD1T,SAAQ,SAAUqZ,EAAIb,GACxBa,EAAGrZ,SAAQ,SAAUgZ,EAAMU,GACrBjC,EAAUuB,KACZpJ,EAAQ4I,IAAUQ,GAA2B,MAAnBK,EAAGK,EAAS,IAAc,EAAI,UAIvD9J,EAiNT,IAyUI+J,GAAW,CAKbtH,UAAW,SAKX+C,eAAe,EAKfgC,eAAe,EAMfd,iBAAiB,EAOjBb,SAAU,aASVD,SAAU,aAMVjB,UApXc,CASdqF,MAAO,CAEL1N,MAAO,IAEP4I,SAAS,EAETnL,GAhHJ,SAAe6K,GACb,IAAInC,EAAYmC,EAAKnC,UACjBwG,EAAgBxG,EAAU5M,MAAM,KAAK,GACrCoU,EAAiBxH,EAAU5M,MAAM,KAAK,GAG1C,GAAIoU,EAAgB,CAClB,IAAIC,EAAgBtF,EAAK5E,QACvBiC,EAAYiI,EAAcjI,UAC1BD,EAASkI,EAAclI,OACrBmI,GAA2D,IAA9C,CAAC,SAAU,OAAOpR,QAAQkQ,GACvC5L,EAAO8M,EAAa,OAAS,MAC7B/F,EAAc+F,EAAa,QAAU,SACrCC,EAAe,CACjB1N,MAAO7H,EAAe,GAAIwI,EAAM4E,EAAU5E,IAC1CV,IAAK9H,EAAe,GAAIwI,EAAM4E,EAAU5E,GAAQ4E,EAAUmC,GAAepC,EAAOoC,KAElFQ,EAAK5E,QAAQgC,OAASpC,EAAS,GAAIoC,EAAQoI,EAAaH,IAE1D,OAAOrF,IAqIPjD,OAAQ,CAENrF,MAAO,IAEP4I,SAAS,EAETnL,GAlQJ,SAAgB6K,EAAMjZ,GACpB,IAAIgW,EAAShW,EAAKgW,OACdc,EAAYmC,EAAKnC,UACnByH,EAAgBtF,EAAK5E,QACrBgC,EAASkI,EAAclI,OACvBC,EAAYiI,EAAcjI,UACxBgH,EAAgBxG,EAAU5M,MAAM,KAAK,GACrCmK,OAAU,EAoBd,OAlBEA,EADE6H,GAAWlG,GACH,EAAEA,EAAQ,GAEVqH,GAAYrH,EAAQK,EAAQC,EAAWgH,GAE7B,SAAlBA,GACFjH,EAAOjE,KAAOiC,EAAQ,GACtBgC,EAAO/D,MAAQ+B,EAAQ,IACI,UAAlBiJ,GACTjH,EAAOjE,KAAOiC,EAAQ,GACtBgC,EAAO/D,MAAQ+B,EAAQ,IACI,QAAlBiJ,GACTjH,EAAO/D,MAAQ+B,EAAQ,GACvBgC,EAAOjE,KAAOiC,EAAQ,IACK,WAAlBiJ,IACTjH,EAAO/D,MAAQ+B,EAAQ,GACvBgC,EAAOjE,KAAOiC,EAAQ,IAExB4E,EAAK5C,OAASA,EACP4C,GA2OLjD,OAAQ,GAmBV0I,gBAAiB,CAEf/N,MAAO,IAEP4I,SAAS,EAETnL,GA1PJ,SAAyB6K,EAAM7R,GAC7B,IAAIoP,EAAoBpP,EAAQoP,mBAAqBvG,EAAgBgJ,EAAKlV,SAASsS,QAK/E4C,EAAKlV,SAASuS,YAAcE,IAC9BA,EAAoBvG,EAAgBuG,IAMtC,IAAImI,EAAgBrE,EAAyB,aACzCsE,EAAe3F,EAAKlV,SAASsS,OAAO9T,MACpC6P,EAAMwM,EAAaxM,IACrBE,EAAOsM,EAAatM,KACpBuM,EAAYD,EAAaD,GAC3BC,EAAaxM,IAAM,GACnBwM,EAAatM,KAAO,GACpBsM,EAAaD,GAAiB,GAC9B,IAAIlI,EAAaL,EAAc6C,EAAKlV,SAASsS,OAAQ4C,EAAKlV,SAASuS,UAAWlP,EAAQmP,QAASC,EAAmByC,EAAKY,eAIvH+E,EAAaxM,IAAMA,EACnBwM,EAAatM,KAAOA,EACpBsM,EAAaD,GAAiBE,EAC9BzX,EAAQqP,WAAaA,EACrB,IAAI9F,EAAQvJ,EAAQ0X,SAChBzI,EAAS4C,EAAK5E,QAAQgC,OACtBwC,EAAQ,CACVkG,QAAS,SAAiBjI,GACxB,IAAIlP,EAAQyO,EAAOS,GAInB,OAHIT,EAAOS,GAAaL,EAAWK,KAAe1P,EAAQ4X,sBACxDpX,EAAQoL,KAAKC,IAAIoD,EAAOS,GAAYL,EAAWK,KAE1C5N,EAAe,GAAI4N,EAAWlP,IAEvCqX,UAAW,SAAmBnI,GAC5B,IAAIyB,EAAyB,UAAdzB,EAAwB,OAAS,MAC5ClP,EAAQyO,EAAOkC,GAInB,OAHIlC,EAAOS,GAAaL,EAAWK,KAAe1P,EAAQ4X,sBACxDpX,EAAQoL,KAAKkM,IAAI7I,EAAOkC,GAAW9B,EAAWK,IAA4B,UAAdA,EAAwBT,EAAOjD,MAAQiD,EAAOlD,UAErGjK,EAAe,GAAIqP,EAAU3Q,KAQxC,OALA+I,EAAMlM,SAAQ,SAAUqS,GACtB,IAAIpF,GAA+C,IAAxC,CAAC,OAAQ,OAAOtE,QAAQ0J,GAAoB,UAAY,YACnET,EAASpC,EAAS,GAAIoC,EAAQwC,EAAMnH,GAAMoF,OAE5CmC,EAAK5E,QAAQgC,OAASA,EACf4C,GA2ML6F,SAAU,CAAC,OAAQ,QAAS,MAAO,UAOnCvI,QAAS,EAMTC,kBAAmB,gBAWrB2I,aAAc,CAEZxO,MAAO,IAEP4I,SAAS,EAETnL,GA/dJ,SAAsB6K,GACpB,IAAIsF,EAAgBtF,EAAK5E,QACvBgC,EAASkI,EAAclI,OACvBC,EAAYiI,EAAcjI,UACxBQ,EAAYmC,EAAKnC,UAAU5M,MAAM,KAAK,GACtCkV,EAAQpM,KAAKoM,MACbZ,GAAuD,IAA1C,CAAC,MAAO,UAAUpR,QAAQ0J,GACvCpF,EAAO8M,EAAa,QAAU,SAC9Ba,EAASb,EAAa,OAAS,MAC/B/F,EAAc+F,EAAa,QAAU,SAOzC,OANInI,EAAO3E,GAAQ0N,EAAM9I,EAAU+I,MACjCpG,EAAK5E,QAAQgC,OAAOgJ,GAAUD,EAAM9I,EAAU+I,IAAWhJ,EAAOoC,IAE9DpC,EAAOgJ,GAAUD,EAAM9I,EAAU5E,MACnCuH,EAAK5E,QAAQgC,OAAOgJ,GAAUD,EAAM9I,EAAU5E,KAEzCuH,IA2dPqG,MAAO,CAEL3O,MAAO,IAEP4I,SAAS,EAETnL,GAltBJ,SAAe6K,EAAM7R,GACnB,IAAImY,EAGJ,IAAKhD,EAAmBtD,EAAKlV,SAASiV,UAAW,QAAS,gBACxD,OAAOC,EAET,IAAIuG,EAAepY,EAAQwH,QAG3B,GAA4B,iBAAjB4Q,GAIT,KAHAA,EAAevG,EAAKlV,SAASsS,OAAOoJ,cAAcD,IAIhD,OAAOvG,OAKT,IAAKA,EAAKlV,SAASsS,OAAO/E,SAASkO,GAEjC,OADAxY,QAAQC,KAAK,iEACNgS,EAGX,IAAInC,EAAYmC,EAAKnC,UAAU5M,MAAM,KAAK,GACtCqU,EAAgBtF,EAAK5E,QACvBgC,EAASkI,EAAclI,OACvBC,EAAYiI,EAAcjI,UACxBkI,GAAuD,IAA1C,CAAC,OAAQ,SAASpR,QAAQ0J,GACvC4I,EAAMlB,EAAa,SAAW,QAC9BmB,EAAkBnB,EAAa,MAAQ,OACvC9M,EAAOiO,EAAgBC,cACvBC,EAAUrB,EAAa,OAAS,MAChCa,EAASb,EAAa,SAAW,QACjCsB,EAAmBnI,EAAc6H,GAAcE,GAQ/CpJ,EAAU+I,GAAUS,EAAmBzJ,EAAO3E,KAChDuH,EAAK5E,QAAQgC,OAAO3E,IAAS2E,EAAO3E,IAAS4E,EAAU+I,GAAUS,IAG/DxJ,EAAU5E,GAAQoO,EAAmBzJ,EAAOgJ,KAC9CpG,EAAK5E,QAAQgC,OAAO3E,IAAS4E,EAAU5E,GAAQoO,EAAmBzJ,EAAOgJ,IAE3EpG,EAAK5E,QAAQgC,OAASjC,EAAc6E,EAAK5E,QAAQgC,QAGjD,IAAI0J,EAASzJ,EAAU5E,GAAQ4E,EAAUoJ,GAAO,EAAII,EAAmB,EAInE/Q,EAAMJ,EAAyBsK,EAAKlV,SAASsS,QAC7C2J,EAAmBnN,WAAW9D,EAAI,SAAW4Q,GAAkB,IAC/DM,EAAmBpN,WAAW9D,EAAI,SAAW4Q,EAAkB,SAAU,IACzEO,EAAYH,EAAS9G,EAAK5E,QAAQgC,OAAO3E,GAAQsO,EAAmBC,EAMxE,OAHAC,EAAYlN,KAAKC,IAAID,KAAKkM,IAAI7I,EAAOqJ,GAAOI,EAAkBI,GAAY,GAC1EjH,EAAKuG,aAAeA,EACpBvG,EAAK5E,QAAQiL,OAAmCpW,EAA1BqW,EAAsB,GAAwC7N,EAAMsB,KAAKmN,MAAMD,IAAahX,EAAeqW,EAAqBM,EAAS,IAAKN,GAC7JtG,GAkpBLrK,QAAS,aAaXkL,KAAM,CAEJnJ,MAAO,IAEP4I,SAAS,EAETnL,GAjlBJ,SAAc6K,EAAM7R,GAElB,GAAI+S,EAAkBlB,EAAKlV,SAASiV,UAAW,SAC7C,OAAOC,EAET,GAAIA,EAAKW,SAAWX,EAAKnC,YAAcmC,EAAKc,kBAE1C,OAAOd,EAET,IAAIxC,EAAaL,EAAc6C,EAAKlV,SAASsS,OAAQ4C,EAAKlV,SAASuS,UAAWlP,EAAQmP,QAASnP,EAAQoP,kBAAmByC,EAAKY,eAC3H/C,EAAYmC,EAAKnC,UAAU5M,MAAM,KAAK,GACtCkW,EAAoBpI,EAAqBlB,GACzCU,EAAYyB,EAAKnC,UAAU5M,MAAM,KAAK,IAAM,GAC5CmW,EAAY,GAChB,OAAQjZ,EAAQkZ,UACd,KAAKlD,GACHiD,EAAY,CAACvJ,EAAWsJ,GACxB,MACF,KAAKhD,GACHiD,EAAYtD,GAAUjG,GACtB,MACF,KAAKsG,GACHiD,EAAYtD,GAAUjG,GAAW,GACjC,MACF,QACEuJ,EAAYjZ,EAAQkZ,SAwCxB,OAtCAD,EAAU5b,SAAQ,SAAU8b,EAAMtD,GAChC,GAAInG,IAAcyJ,GAAQF,EAAU5W,SAAWwT,EAAQ,EACrD,OAAOhE,EAETnC,EAAYmC,EAAKnC,UAAU5M,MAAM,KAAK,GACtCkW,EAAoBpI,EAAqBlB,GACzC,IAAIuB,EAAgBY,EAAK5E,QAAQgC,OAC7BmK,EAAavH,EAAK5E,QAAQiC,UAG1B8I,EAAQpM,KAAKoM,MACbqB,EAA4B,SAAd3J,GAAwBsI,EAAM/G,EAAc9F,OAAS6M,EAAMoB,EAAWlO,OAAuB,UAAdwE,GAAyBsI,EAAM/G,EAAc/F,MAAQ8M,EAAMoB,EAAWjO,QAAwB,QAAduE,GAAuBsI,EAAM/G,EAAchG,QAAU+M,EAAMoB,EAAWpO,MAAsB,WAAd0E,GAA0BsI,EAAM/G,EAAcjG,KAAOgN,EAAMoB,EAAWnO,QACjUqO,EAAgBtB,EAAM/G,EAAc/F,MAAQ8M,EAAM3I,EAAWnE,MAC7DqO,EAAiBvB,EAAM/G,EAAc9F,OAAS6M,EAAM3I,EAAWlE,OAC/DqO,EAAexB,EAAM/G,EAAcjG,KAAOgN,EAAM3I,EAAWrE,KAC3DyO,EAAkBzB,EAAM/G,EAAchG,QAAU+M,EAAM3I,EAAWpE,QACjEyO,EAAoC,SAAdhK,GAAwB4J,GAA+B,UAAd5J,GAAyB6J,GAAgC,QAAd7J,GAAuB8J,GAA8B,WAAd9J,GAA0B+J,EAG3KrC,GAAuD,IAA1C,CAAC,MAAO,UAAUpR,QAAQ0J,GACvCiK,IAAqB3Z,EAAQ4Z,iBAAmBxC,GAA4B,UAAdhH,GAAyBkJ,GAAiBlC,GAA4B,QAAdhH,GAAuBmJ,IAAmBnC,GAA4B,UAAdhH,GAAyBoJ,IAAiBpC,GAA4B,QAAdhH,GAAuBqJ,IAC7PJ,GAAeK,GAAuBC,KAExC9H,EAAKW,SAAU,GACX6G,GAAeK,KACjBhK,EAAYuJ,EAAUpD,EAAQ,IAE5B8D,IACFvJ,EAjIR,SAA8BA,GAC5B,MAAkB,QAAdA,EACK,QACgB,UAAdA,EACF,MAEFA,EA2HWyJ,CAAqBzJ,IAEnCyB,EAAKnC,UAAYA,GAAaU,EAAY,IAAMA,EAAY,IAI5DyB,EAAK5E,QAAQgC,OAASpC,EAAS,GAAIgF,EAAK5E,QAAQgC,OAAQ6B,EAAiBe,EAAKlV,SAASsS,OAAQ4C,EAAK5E,QAAQiC,UAAW2C,EAAKnC,YAC5HmC,EAAOF,EAAaE,EAAKlV,SAASiV,UAAWC,EAAM,YAGhDA,GAuhBLqH,SAAU,OAKV/J,QAAS,EAOTC,kBAAmB,YASrB0K,MAAO,CAELvQ,MAAO,IAEP4I,SAAS,EAETnL,GA1OJ,SAAe6K,GACb,IAAInC,EAAYmC,EAAKnC,UACjBwG,EAAgBxG,EAAU5M,MAAM,KAAK,GACrCqU,EAAgBtF,EAAK5E,QACvBgC,EAASkI,EAAclI,OACvBC,EAAYiI,EAAcjI,UACxBgC,GAAwD,IAA9C,CAAC,OAAQ,SAASlL,QAAQkQ,GACpC6D,GAA6D,IAA5C,CAAC,MAAO,QAAQ/T,QAAQkQ,GAI7C,OAHAjH,EAAOiC,EAAU,OAAS,OAAShC,EAAUgH,IAAkB6D,EAAiB9K,EAAOiC,EAAU,QAAU,UAAY,GACvHW,EAAKnC,UAAYkB,EAAqBlB,GACtCmC,EAAK5E,QAAQgC,OAASjC,EAAciC,GAC7B4C,IA2OPmI,KAAM,CAEJzQ,MAAO,IAEP4I,SAAS,EAETnL,GA7RJ,SAAc6K,GACZ,IAAKsD,EAAmBtD,EAAKlV,SAASiV,UAAW,OAAQ,mBACvD,OAAOC,EAET,IAAIlC,EAAUkC,EAAK5E,QAAQiC,UACvB+K,EAAQ1I,EAAKM,EAAKlV,SAASiV,WAAW,SAAU7G,GAClD,MAAyB,oBAAlBA,EAASkI,QACf5D,WACH,GAAIM,EAAQ1E,OAASgP,EAAMjP,KAAO2E,EAAQzE,KAAO+O,EAAM9O,OAASwE,EAAQ3E,IAAMiP,EAAMhP,QAAU0E,EAAQxE,MAAQ8O,EAAM/O,KAAM,CAExH,IAAkB,IAAd2G,EAAKmI,KACP,OAAOnI,EAETA,EAAKmI,MAAO,EACZnI,EAAKU,WAAW,uBAAyB,OACpC,CAEL,IAAkB,IAAdV,EAAKmI,KACP,OAAOnI,EAETA,EAAKmI,MAAO,EACZnI,EAAKU,WAAW,wBAAyB,EAE3C,OAAOV,IAuRPqI,aAAc,CAEZ3Q,MAAO,IAEP4I,SAAS,EAETnL,GAz6BJ,SAAsB6K,EAAM7R,GAC1B,IAAIwQ,EAAIxQ,EAAQwQ,EACdE,EAAI1Q,EAAQ0Q,EACVzB,EAAS4C,EAAK5E,QAAQgC,OAItBkL,EAA8B5I,EAAKM,EAAKlV,SAASiV,WAAW,SAAU7G,GACxE,MAAyB,eAAlBA,EAASkI,QACfmH,qBACiCjY,IAAhCgY,GACFva,QAAQC,KAAK,iIAEf,IAAIua,OAAkDjY,IAAhCgY,EAA4CA,EAA8Bna,EAAQoa,gBAEpGC,EAAmBnN,EADJrE,EAAgBgJ,EAAKlV,SAASsS,SAI7C5D,EAAS,CACXjG,SAAU6J,EAAO7J,UAMf6H,EAAU,CACZ/B,KAAMU,KAAKoM,MAAM/I,EAAO/D,MACxBF,IAAKY,KAAKmN,MAAM9J,EAAOjE,KACvBC,OAAQW,KAAKmN,MAAM9J,EAAOhE,QAC1BE,MAAOS,KAAKoM,MAAM/I,EAAO9D,QAEvBI,EAAc,WAANiF,EAAiB,MAAQ,SACjChF,EAAc,UAANkF,EAAgB,OAAS,QAKjC4J,EAAmBpH,EAAyB,aAW5ChI,OAAO,EACTF,OAAM,EAWR,GATEA,EADY,WAAVO,GACK8O,EAAiBtO,OAASkB,EAAQhC,OAEnCgC,EAAQjC,IAGdE,EADY,UAAVM,GACM6O,EAAiBrO,MAAQiB,EAAQ9B,MAElC8B,EAAQ/B,KAEbkP,GAAmBE,EACrBjP,EAAOiP,GAAoB,eAAiBpP,EAAO,OAASF,EAAM,SAClEK,EAAOE,GAAS,EAChBF,EAAOG,GAAS,EAChBH,EAAOoI,WAAa,gBACf,CAEL,IAAI8G,EAAsB,WAAVhP,GAAsB,EAAI,EACtCiP,EAAuB,UAAVhP,GAAqB,EAAI,EAC1CH,EAAOE,GAASP,EAAMuP,EACtBlP,EAAOG,GAASN,EAAOsP,EACvBnP,EAAOoI,WAAalI,EAAQ,KAAOC,EAIrC,IAAI+G,EAAa,CACf,cAAeV,EAAKnC,WAOtB,OAHAmC,EAAKU,WAAa1F,EAAS,GAAI0F,EAAYV,EAAKU,YAChDV,EAAKxG,OAASwB,EAAS,GAAIxB,EAAQwG,EAAKxG,QACxCwG,EAAKS,YAAczF,EAAS,GAAIgF,EAAK5E,QAAQiL,MAAOrG,EAAKS,aAClDT,GA41BLuI,iBAAiB,EAMjB5J,EAAG,SAMHE,EAAG,SAiBL+J,WAAY,CAEVlR,MAAO,IAEP4I,SAAS,EAETnL,GAvgCJ,SAAoB6K,GApBpB,IAAuBrK,EAAS+K,EAmC9B,OAVA0C,EAAUpD,EAAKlV,SAASsS,OAAQ4C,EAAKxG,QAzBhB7D,EA6BPqK,EAAKlV,SAASsS,OA7BEsD,EA6BMV,EAAKU,WA5BzC1Q,OAAOiO,KAAKyC,GAAYlV,SAAQ,SAAU0U,IAE1B,IADFQ,EAAWR,GAErBvK,EAAQkT,aAAa3I,EAAMQ,EAAWR,IAEtCvK,EAAQgM,gBAAgBzB,MA0BxBF,EAAKuG,cAAgBvW,OAAOiO,KAAK+B,EAAKS,aAAajQ,QACrD4S,EAAUpD,EAAKuG,aAAcvG,EAAKS,aAE7BT,GA0/BL8I,OA7+BJ,SAA0BzL,EAAWD,EAAQjP,EAAS4a,EAAiBrf,GAErE,IAAIwV,EAAmBV,EAAoB9U,EAAO0T,EAAQC,EAAWlP,EAAQyS,eAKzE/C,EAAYD,EAAqBzP,EAAQ0P,UAAWqB,EAAkB9B,EAAQC,EAAWlP,EAAQ4R,UAAUc,KAAKtD,kBAAmBpP,EAAQ4R,UAAUc,KAAKvD,SAQ9J,OAPAF,EAAOyL,aAAa,cAAehL,GAInCuF,EAAUhG,EAAQ,CAChB7J,SAAUpF,EAAQyS,cAAgB,QAAU,aAEvCzS,GAq+BLoa,qBAAiBjY,KAiGjB0Y,GAAS,WASX,SAASA,EAAO3L,EAAWD,GACzB,IAAIzU,EAAQE,KACRsF,EAAUuK,UAAUlI,OAAS,QAAsBF,IAAjBoI,UAAU,GAAmBA,UAAU,GAAK,GAClF0B,EAAevR,KAAMmgB,GACrBngB,KAAKia,eAAiB,WACpB,OAAOjQ,sBAAsBlK,EAAM4X,SAIrC1X,KAAK0X,OAAStL,EAASpM,KAAK0X,OAAO3W,KAAKf,OAGxCA,KAAKsF,QAAU6M,EAAS,GAAIgO,EAAO7D,SAAUhX,GAG7CtF,KAAKa,MAAQ,CACX8W,aAAa,EACbO,WAAW,EACX2B,cAAe,IAIjB7Z,KAAKwU,UAAYA,GAAaA,EAAU4L,OAAS5L,EAAU,GAAKA,EAChExU,KAAKuU,OAASA,GAAUA,EAAO6L,OAAS7L,EAAO,GAAKA,EAGpDvU,KAAKsF,QAAQ4R,UAAY,GACzB/P,OAAOiO,KAAKjD,EAAS,GAAIgO,EAAO7D,SAASpF,UAAW5R,EAAQ4R,YAAYvU,SAAQ,SAAU4V,GACxFzY,EAAMwF,QAAQ4R,UAAUqB,GAAQpG,EAAS,GAAIgO,EAAO7D,SAASpF,UAAUqB,IAAS,GAAIjT,EAAQ4R,UAAY5R,EAAQ4R,UAAUqB,GAAQ,OAIpIvY,KAAKkX,UAAY/P,OAAOiO,KAAKpV,KAAKsF,QAAQ4R,WAAWvO,KAAI,SAAU4P,GACjE,OAAOpG,EAAS,CACdoG,KAAMA,GACLzY,EAAMwF,QAAQ4R,UAAUqB,OAG5BjD,MAAK,SAAUpO,EAAGqO,GACjB,OAAOrO,EAAE2H,MAAQ0G,EAAE1G,SAOrB7O,KAAKkX,UAAUvU,SAAQ,SAAUud,GAC3BA,EAAgBzI,SAAW/K,EAAWwT,EAAgBD,SACxDC,EAAgBD,OAAOngB,EAAM0U,UAAW1U,EAAMyU,OAAQzU,EAAMwF,QAAS4a,EAAiBpgB,EAAMe,UAKhGb,KAAK0X,SACL,IAAIqC,EAAgB/Z,KAAKsF,QAAQyU,cAC7BA,GAEF/Z,KAAKga,uBAEPha,KAAKa,MAAMkZ,cAAgBA,EAkD7B,OA5CArI,EAAYyO,EAAQ,CAAC,CACnBxa,IAAK,SACLG,MAAO,WACL,OAAO4R,EAAO3X,KAAKC,QAEpB,CACD2F,IAAK,UACLG,MAAO,WACL,OAAO+S,EAAQ9Y,KAAKC,QAErB,CACD2F,IAAK,uBACLG,MAAO,WACL,OAAOkU,EAAqBja,KAAKC,QAElC,CACD2F,IAAK,wBACLG,MAAO,WACL,OAAOkT,EAAsBjZ,KAAKC,UA0B/BmgB,EAtHI,GA6IbA,GAAOE,OAA2B,oBAAX1f,OAAyBA,OAAS2f,GAAQC,YACjEJ,GAAOpF,WAAaA,EACpBoF,GAAO7D,SAAWA,GACH,c,2CCtzEfzV,EAAOnK,QATP,SAAuCiK,EAAG9C,GACxC,GAAI,MAAQ8C,EAAG,MAAO,GACtB,IAAIC,EAAI,GACR,IAAK,IAAII,KAAKL,EAAG,GAAI,GAAGlE,eAAe1C,KAAK4G,EAAGK,GAAI,CACjD,GAAInD,EAAE2c,SAASxZ,GAAI,SACnBJ,EAAEI,GAAKL,EAAEK,GAEX,OAAOJ,GAEuCC,EAAOnK,QAAQC,YAAa,EAAMkK,EAAOnK,QAAiB,QAAImK,EAAOnK,S,qBCTrHA,EAAQ+jB,SAAW/b,GAAaA,G,oCCAhC,4IAAIyN,EAAWhL,OAAOiL,QAAU,SAAUvP,GAAU,IAAK,IAAI0E,EAAI,EAAGA,EAAIsI,UAAUlI,OAAQJ,IAAK,CAAE,IAAI8K,EAASxC,UAAUtI,GAAI,IAAK,IAAI5B,KAAO0M,EAAclL,OAAOlG,UAAUwB,eAAe1C,KAAKsS,EAAQ1M,KAAQ9C,EAAO8C,GAAO0M,EAAO1M,IAAY,OAAO9C,GAEnP6d,EAAc,SAAqBrO,GACrC,IAAIsO,EAAmBtO,EAAO3S,SAC1BmK,EAAS8W,EAAiB9W,OAC1BC,EAAO6W,EAAiB7W,KACxBrF,EAAOkc,EAAiBlc,KACxBmc,EAASD,EAAiBC,OAC1BC,EAAWF,EAAiBE,SAC5BvT,EAAOqT,EAAiBrT,KACxBwT,EAAWH,EAAiBG,SAC5BC,EAAOJ,EAAiBI,KACxB3f,EAAWiR,EAAO3S,SAAS0B,UAG1BA,GAAYqD,GAAQuc,IAEvB5f,EADU,IAAIiH,IAAI5D,GACHrD,UAGjB,MAAO,CACLA,SAAUmD,UAAU0c,UAAU7f,IAC9ByI,OAAQA,EACRC,KAAMA,EACNrF,KAAMA,EACNmc,OAAQA,EACRC,SAAUA,EACVvT,KAAMA,EACNwT,SAAUA,EACVC,KAAMA,EACNlgB,MAAOwR,EAAO6O,QAAQrgB,MACtB8E,IAAK0M,EAAO6O,QAAQrgB,OAASwR,EAAO6O,QAAQrgB,MAAM8E,KAAO,YAIzDwb,EAAgB,SAAuB9O,EAAQ/M,GACjD,IAAI8b,EAAY,GACZ1hB,EAAWghB,EAAYrO,GACvBgP,GAAgB,EAChBC,EAAoB,aAExB,MAAO,CACL,eACE,OAAO5hB,GAGT,oBACE,OAAO2hB,GAGTE,sBAAuB,WACrBF,GAAgB,EAChBC,KAEFE,OAAQ,SAAgBC,GACtBL,EAAUlkB,KAAKukB,GAEf,IAAIC,EAAmB,WACrBhiB,EAAWghB,EAAYrO,GACvBoP,EAAS,CAAE/hB,SAAUA,EAAUiiB,OAAQ,SAKzC,OAFAtP,EAAOkH,iBAAiB,WAAYmI,GAE7B,WACLrP,EAAO8H,oBAAoB,WAAYuH,GACvCN,EAAYA,EAAU9gB,QAAO,SAAUgM,GACrC,OAAOA,IAAOmV,OAIpBtkB,SAAU,SAAkBmE,GAC1B,IAAIpD,EAAO2R,UAAUlI,OAAS,QAAsBF,IAAjBoI,UAAU,GAAmBA,UAAU,GAAK,GAC3EhP,EAAQ3C,EAAK2C,MACb+gB,EAAe1jB,EAAKjB,QACpBA,OAA2BwK,IAAjBma,GAAqCA,EAEnD,GAAkB,iBAAPtgB,EACT+Q,EAAO6O,QAAQW,GAAGvgB,OACb,CACLT,EAAQsR,EAAS,GAAItR,EAAO,CAAE8E,IAAKmc,KAAKC,MAAQ,KAEhD,IACMV,GAAiBpkB,EACnBoV,EAAO6O,QAAQc,aAAanhB,EAAO,KAAMS,GAEzC+Q,EAAO6O,QAAQe,UAAUphB,EAAO,KAAMS,GAExC,MAAOuC,GACPwO,EAAO3S,SAASzC,EAAU,UAAY,UAAUqE,IAIpD5B,EAAWghB,EAAYrO,GACvBgP,GAAgB,EAChB,IAAIa,EAAa,IAAI7V,SAAQ,SAAU8V,GACrC,OAAOb,EAAoBa,KAK7B,OAHAf,EAAUze,SAAQ,SAAU8e,GAC1B,OAAOA,EAAS,CAAE/hB,SAAUA,EAAUiiB,OAAQ,YAEzCO,KAOTE,EAAqB,WACvB,IAAIC,EAAcxS,UAAUlI,OAAS,QAAsBF,IAAjBoI,UAAU,GAAmBA,UAAU,GAAK,IAElFyS,EAAcD,EAAY/W,QAAQ,KAClCiX,EAAkB,CACpBnhB,SAAUkhB,GAAe,EAAID,EAAYG,OAAO,EAAGF,GAAeD,EAClExY,OAAQyY,GAAe,EAAID,EAAYG,OAAOF,GAAe,IAE3DnH,EAAQ,EACRsH,EAAQ,CAACF,GACTG,EAAS,CAAC,MAEd,MAAO,CACL,eACE,OAAOD,EAAMtH,IAEf5B,iBAAkB,SAA0BhB,EAAMjM,KAClD6N,oBAAqB,SAA6B5B,EAAMjM,KAExD4U,QAAS,CACP,cACE,OAAOuB,GAET,YACE,OAAOtH,GAET,YACE,OAAOuH,EAAOvH,IAEhB8G,UAAW,SAAmBphB,EAAO8hB,EAAGC,GACtC,IAAIC,EAAaD,EAAIxa,MAAM,KACvBhH,EAAWyhB,EAAW,GACtBC,EAAcD,EAAW,GACzBhZ,OAAyBpC,IAAhBqb,EAA4B,GAAKA,EAE9C3H,IACAsH,EAAMvlB,KAAK,CAAEkE,SAAUA,EAAUyI,OAAQA,EAAOlC,OAAS,IAAMkC,EAASA,IACxE6Y,EAAOxlB,KAAK2D,IAEdmhB,aAAc,SAAsBnhB,EAAO8hB,EAAGC,GAC5C,IAAIG,EAAcH,EAAIxa,MAAM,KACxBhH,EAAW2hB,EAAY,GACvBC,EAAeD,EAAY,GAC3BlZ,OAA0BpC,IAAjBub,EAA6B,GAAKA,EAE/CP,EAAMtH,GAAS,CAAE/Z,SAAUA,EAAUyI,OAAQA,GAC7C6Y,EAAOvH,GAASta,GAElBghB,GAAI,SAAYvgB,GACd,IAAI2hB,EAAW9H,EAAQ7Z,EAEnB2hB,EAAW,GAAKA,EAAWP,EAAO/a,OAAS,IAI/CwT,EAAQ8H,OASZjC,IAAiC,oBAAXrgB,SAA0BA,OAAOoL,WAAYpL,OAAOoL,SAASxM,eAKnF2jB,EAAgB/B,EAHXH,EAAYrgB,OAASyhB,KAI1BjlB,EAAW+lB,EAAc/lB,U,oCChL7BT,EAAQC,YAAa,EACrBD,EAAQU,aAAU,EA2BlBV,EAAQU,QAlBO,SAAkBgE,EAAU+hB,GAGzC,IAAKnM,MAAMoM,QAAQD,GACjB,MAHoB,uBAMtB,IAAIE,EAAoBF,EAAmBtM,MAAK,SAAUyM,GACxD,OAAOliB,EAASpD,WAAWslB,EAAIC,cAGjC,OAAKF,EAIE,YAAcA,EAAkBG,KAAO,eAdxB,yB,kCCbxB,kDACA,SAASC,EAA4B9c,EAAGO,GACtC,GAAIP,EAAG,CACL,GAAI,iBAAmBA,EAAG,OAAO,YAAiBA,EAAGO,GACrD,IAAIN,EAAI,GAAGgG,SAAS7M,KAAK4G,GAAGnI,MAAM,GAAI,GACtC,MAAO,WAAaoI,GAAKD,EAAE+c,cAAgB9c,EAAID,EAAE+c,YAAYnL,MAAO,QAAU3R,GAAK,QAAUA,EAAIoQ,MAAM2M,KAAKhd,GAAK,cAAgBC,GAAK,2CAA2C8C,KAAK9C,GAAK,YAAiBD,EAAGO,QAAK,K,wBCEhN,SAAUN,EAAG/C,EAAGmD,GACtB,aAEA,SAASO,EAAEX,EAAG/C,GACZ,IAAK,IAAImD,EAAI,EAAGA,EAAInD,EAAE8D,OAAQX,IAAK,CACjC,IAAIO,EAAI1D,EAAEmD,GACVO,EAAEsK,WAAatK,EAAEsK,aAAc,EAAItK,EAAEuK,cAAe,EAAI,UAAWvK,IAAMA,EAAEwK,UAAW,GAAK5K,OAAOC,eAAeR,EAAGW,EAAE5B,IAAK4B,IAG/H,SAASqc,EAAEhd,EAAG/C,EAAGmD,GACf,OAAOnD,GAAK0D,EAAEX,EAAE3F,UAAW4C,GAAImD,GAAKO,EAAEX,EAAGI,GAAIJ,EAE/C,SAASid,IACP,OAAQA,EAAI1c,OAAOiL,QAAU,SAAUxL,GACrC,IAAK,IAAI/C,EAAI,EAAGA,EAAIgM,UAAUlI,OAAQ9D,IAAK,CACzC,IAAImD,EAAI6I,UAAUhM,GAClB,IAAK,IAAI0D,KAAKP,EAAGG,OAAOlG,UAAUwB,eAAe1C,KAAKiH,EAAGO,KAAOX,EAAEW,GAAKP,EAAEO,IAE3E,OAAOX,IACNkd,MAAM9jB,KAAM6P,WAEjBhM,EAAIA,GAAKsD,OAAOlG,UAAUwB,eAAe1C,KAAK8D,EAAG,WAAaA,EAAEzG,QAAUyG,EAAGmD,EAAIA,GAAKG,OAAOlG,UAAUwB,eAAe1C,KAAKiH,EAAG,WAAaA,EAAE5J,QAAU4J,EAUvJ,IAAIE,EAAI,CACN6c,eAAgB,kBAChBC,OAAQ,SAAUpd,GAChB,GACEA,MAAQ,IAAMsK,KAAK+S,gBACZlY,SAASmY,eAAetd,IACjC,OAAOA,GAETud,uBAAwB,SAAUvd,GAChC,IAAI/C,EAAI+C,EAAEwd,aAAa,eACvB,IAAKvgB,GAAK,MAAQA,EAAG,CACnB,IAAImD,EAAIJ,EAAEwd,aAAa,QACvBvgB,EAAImD,GAAK,MAAQA,EAAIA,EAAE4U,OAAS,GAElC,IACE,OAAO7P,SAAS4R,cAAc9Z,GAAKA,EAAI,KACvC,MAAO+C,GACP,OAAO,OAGXyd,iCAAkC,SAAUzd,GAC1C,IAAKA,EAAG,OAAO,EACf,IAAII,EAAInD,EAAE+C,GAAGqG,IAAI,uBACf1F,EAAI1D,EAAE+C,GAAGqG,IAAI,oBACb2W,EAAI7S,WAAW/J,GACf6c,EAAI9S,WAAWxJ,GACjB,OAAOqc,GAAKC,GAAK7c,EAAIA,EAAEoB,MAAM,KAAK,GAAIb,EAAIA,EAAEa,MAAM,KAAK,GAAI,KAAO2I,WAAW/J,GAAK+J,WAAWxJ,KAAO,GAEtG+c,OAAQ,SAAU1d,GAChB,OAAOA,EAAEoM,cAEXuR,qBAAsB,SAAU3d,GAC9B/C,EAAE+C,GAAG4d,QAAQ,kBAEfC,sBAAuB,WACrB,OAAOlkB,QAAQ,kBAEjBmkB,UAAW,SAAU9d,GACnB,OAAQA,EAAE,IAAMA,GAAGoG,UAErB2X,gBAAiB,SAAU/d,EAAG/C,EAAGmD,GAC/B,IAAK,IAAIO,KAAKP,EAAG,GAAIG,OAAOlG,UAAUwB,eAAe1C,KAAKiH,EAAGO,GAAI,CAC/D,IAAIqc,EAAI5c,EAAEO,GACRsc,EAAIhgB,EAAE0D,GACNZ,EAAIkd,GAAK3c,EAAEwd,UAAUb,GAAK,UAAY,QAAUe,EAAIf,SAAM,IAAsBe,EAAI,GAAKA,EAAI,GAAGhY,SAAS7M,KAAK6kB,GAAGpN,MAAM,eAAe,GAAGsG,cAC3I,IAAK,IAAI+G,OAAOjB,GAAGla,KAAK/C,GAAI,MAAM,IAAIme,MAAMle,EAAE+R,cAAgB,aAAepR,EAAI,oBAAsBZ,EAAI,wBAA0Bid,EAAI,MAE3I,IAAIgB,GAENG,eAAgB,SAAUne,GACxB,IAAKmF,SAASqC,gBAAgB4W,aAAc,OAAO,KACnD,GAAI,mBAAqBpe,EAAEqe,YAAa,CACtC,IAAIphB,EAAI+C,EAAEqe,cACV,OAAOphB,aAAaqhB,WAAarhB,EAAI,KAEvC,OAAO+C,aAAase,WAAate,EAAIA,EAAEyG,WAAanG,EAAE6d,eAAene,EAAEyG,YAAc,MAEvF8X,gBAAiB,WACf,QAAI,IAAsBthB,EAAG,MAAM,IAAI4N,UAAU,kGACjD,IAAI7K,EAAI/C,EAAEyI,GAAG8T,OAAOhY,MAAM,KAAK,GAAGA,MAAM,KACxC,GAAIxB,EAAE,GAAK,GAAKA,EAAE,GAAK,GAAK,IAAMA,EAAE,IAAM,IAAMA,EAAE,IAAMA,EAAE,GAAK,GAAKA,EAAE,IAAM,EAAG,MAAM,IAAIke,MAAM,iFAGnG5d,EAAEie,kBAAmBthB,EAAEyI,GAAG8Y,qBAxE1B,SAAWxe,GACT,IAAII,EAAIhH,KACNuH,GAAI,EACN,OAAO1D,EAAE7D,MAAMqlB,IAAIne,EAAE6c,gBAAgB,WACnCxc,GAAI,KACF0C,YAAW,WACb1C,GAAKL,EAAEqd,qBAAqBvd,KAC3BJ,GAAI5G,MAiE2C6D,EAAE8V,MAAM2L,QAAQpe,EAAE6c,gBAAkB,CACtFwB,SAAU,gBACVC,aAAc,gBACdC,OAAQ,SAAU7e,GAChB,GAAI/C,EAAE+C,EAAE/D,QAAQ6iB,GAAG1lB,MAAO,OAAO4G,EAAE+e,UAAUxa,QAAQ2Y,MAAM9jB,KAAM6P,aAGrE,IAAI+U,EAAI,QACNgB,EAAI/hB,EAAEyI,GAAGsY,GACTiB,EAAI,WACF,SAASjf,EAAEA,GACT5G,KAAK8lB,SAAWlf,EAElB,IAAII,EAAIJ,EAAE3F,UACV,OAAO+F,EAAE+e,MAAQ,SAAUnf,GACzB,IAAI/C,EAAI7D,KAAK8lB,SACblf,IAAM/C,EAAI7D,KAAKgmB,gBAAgBpf,IAAK5G,KAAKimB,mBAAmBpiB,GAAGqiB,sBAAwBlmB,KAAKmmB,eAAetiB,IAC1GmD,EAAEof,QAAU,WACbviB,EAAEwiB,WAAWrmB,KAAK8lB,SAAU,YAAa9lB,KAAK8lB,SAAW,MACxD9e,EAAEgf,gBAAkB,SAAUpf,GAC/B,IAAII,EAAIE,EAAEid,uBAAuBvd,GAC/BW,GAAI,EACN,OAAOP,IAAMO,EAAIwE,SAAS4R,cAAc3W,IAAKO,IAAMA,EAAI1D,EAAE+C,GAAG0f,QAAQ,UAAU,IAAK/e,GAClFP,EAAEif,mBAAqB,SAAUrf,GAClC,IAAII,EAAInD,EAAE0iB,MAAM,kBAChB,OAAO1iB,EAAE+C,GAAG4d,QAAQxd,GAAIA,GACvBA,EAAEmf,eAAiB,SAAUvf,GAC9B,IAAII,EAAIhH,KACR,GAAI6D,EAAE+C,GAAG4f,YAAY,QAAS3iB,EAAE+C,GAAG6f,SAAS,QAAS,CACnD,IAAIlf,EAAIL,EAAEmd,iCAAiCzd,GAC3C/C,EAAE+C,GAAGye,IAAIne,EAAE6c,gBAAgB,SAAUlgB,GACnC,OAAOmD,EAAE0f,gBAAgB9f,EAAG/C,MAC3BuhB,qBAAqB7d,QACnBvH,KAAK0mB,gBAAgB9f,IAC3BI,EAAE0f,gBAAkB,SAAU9f,GAC/B/C,EAAE+C,GAAG+f,SAASnC,QAAQ,mBAAmBoC,UACxChgB,EAAEigB,iBAAmB,SAAU7f,GAChC,OAAOhH,KAAK8mB,MAAK,WACf,IAAIvf,EAAI1D,EAAE7D,MACR4jB,EAAIrc,EAAE4P,KAAK,YACbyM,IAAMA,EAAI,IAAIhd,EAAE5G,MAAOuH,EAAE4P,KAAK,WAAYyM,IAAK,UAAY5c,GAAK4c,EAAE5c,GAAGhH,UAEtE4G,EAAEmgB,eAAiB,SAAUngB,GAC9B,OAAO,SAAU/C,GACfA,GAAKA,EAAEQ,iBAAkBuC,EAAEmf,MAAM/lB,QAElC4jB,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,YAENH,EA1CH,GA4CN/C,EAAEkI,UAAUd,GAAG,0BAA2B,yBAA0B4a,EAAEkB,eAAe,IAAIlB,IAAOhiB,EAAEyI,GAAGsY,GAAKiB,EAAEgB,iBAAkBhjB,EAAEyI,GAAGsY,GAAGpT,YAAcqU,EAAGhiB,EAAEyI,GAAGsY,GAAGoC,WAAa,WAC1K,OAAOnjB,EAAEyI,GAAGsY,GAAKgB,EAAGC,EAAEgB,kBAExB,IAAIvf,EAAIzD,EAAEyI,GAAGvI,OACXkjB,EAAI,WACF,SAASrgB,EAAEA,GACT5G,KAAK8lB,SAAWlf,EAElB,IAAII,EAAIJ,EAAE3F,UACV,OAAO+F,EAAEkgB,OAAS,WAChB,IAAItgB,GAAI,EACNI,GAAI,EACJO,EAAI1D,EAAE7D,KAAK8lB,UAAUQ,QAAQ,2BAA2B,GAC1D,GAAI/e,EAAG,CACL,IAAIqc,EAAI5jB,KAAK8lB,SAASnI,cAAc,8BACpC,GAAIiG,EAAG,CACL,GAAI,UAAYA,EAAE1Y,KAAM,GAAI0Y,EAAEuD,SAAWnnB,KAAK8lB,SAASsB,UAAU5X,SAAS,UAAW5I,GAAI,MAAQ,CAC/F,IAAIid,EAAItc,EAAEoW,cAAc,WACxBkG,GAAKhgB,EAAEggB,GAAG2C,YAAY,UAExB5f,IAAM,aAAegd,EAAE1Y,MAAQ,UAAY0Y,EAAE1Y,OAAS0Y,EAAEuD,SAAWnnB,KAAK8lB,SAASsB,UAAU5X,SAAS,WAAY3L,EAAE+f,GAAGY,QAAQ,WAAYZ,EAAEyD,QAASrgB,GAAI,GAG5JhH,KAAK8lB,SAASwB,aAAa,aAAetnB,KAAK8lB,SAASsB,UAAU5X,SAAS,cAAgBxI,GAAKhH,KAAK8lB,SAAS9F,aAAa,gBAAiBhgB,KAAK8lB,SAASsB,UAAU5X,SAAS,WAAY5I,GAAK/C,EAAE7D,KAAK8lB,UAAUyB,YAAY,YAC1NvgB,EAAEof,QAAU,WACbviB,EAAEwiB,WAAWrmB,KAAK8lB,SAAU,aAAc9lB,KAAK8lB,SAAW,MACzDlf,EAAEigB,iBAAmB,SAAU7f,GAChC,OAAOhH,KAAK8mB,MAAK,WACf,IAAIvf,EAAI1D,EAAE7D,MAAMmX,KAAK,aACrB5P,IAAMA,EAAI,IAAIX,EAAE5G,MAAO6D,EAAE7D,MAAMmX,KAAK,YAAa5P,IAAK,WAAaP,GAAKO,EAAEP,SAE3E4c,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,YAENH,EAhCH,GAkCN/C,EAAEkI,UAAUd,GAAG,2BAA4B,2BAA2B,SAAUrE,GAC9E,IAAII,EAAIJ,EAAE/D,OACR0E,EAAIP,EACN,GAAInD,EAAEmD,GAAGyf,SAAS,SAAWzf,EAAInD,EAAEmD,GAAGsf,QAAQ,QAAQ,KAAMtf,GAAKA,EAAEsgB,aAAa,aAAetgB,EAAEogB,UAAU5X,SAAS,YAAa5I,EAAEvC,qBAAsB,CACvJ,IAAIuf,EAAI5c,EAAE2W,cAAc,8BACxB,GAAIiG,IAAMA,EAAE0D,aAAa,aAAe1D,EAAEwD,UAAU5X,SAAS,aAAc,YAAY5I,EAAEvC,kBACxF,UAAYkD,EAAEigB,SAAW5D,GAAK,aAAeA,EAAE1Y,OAAS+b,EAAEJ,iBAAiB9mB,KAAK8D,EAAEmD,GAAI,cAExFiE,GAAG,mDAAoD,2BAA2B,SAAUrE,GAC7F,IAAII,EAAInD,EAAE+C,EAAE/D,QAAQyjB,QAAQ,QAAQ,GACpCziB,EAAEmD,GAAGugB,YAAY,QAAS,eAAe7d,KAAK9C,EAAEsE,UAC9CrH,EAAElD,QAAQsK,GAAG,2BAA2B,WAC1C,IAAK,IAAIrE,EAAI,GAAGpI,MAAMuB,KAAKgM,SAAS0b,iBAAiB,iCAAkC5jB,EAAI,EAAGmD,EAAIJ,EAAEe,OAAQ9D,EAAImD,EAAGnD,IAAK,CACtH,IAAI0D,EAAIX,EAAE/C,GACR+f,EAAIrc,EAAEoW,cAAc,8BACtBiG,EAAEuD,SAAWvD,EAAE0D,aAAa,WAAa/f,EAAE6f,UAAUM,IAAI,UAAYngB,EAAE6f,UAAUR,OAAO,UAE1F,IAAK,IAAI/C,EAAI,EAAGld,GAAKC,EAAI,GAAGpI,MAAMuB,KAAKgM,SAAS0b,iBAAiB,4BAA4B9f,OAAQkc,EAAIld,EAAGkd,IAAK,CAC/G,IAAI3c,EAAIN,EAAEid,GACV,SAAW3c,EAAEkd,aAAa,gBAAkBld,EAAEkgB,UAAUM,IAAI,UAAYxgB,EAAEkgB,UAAUR,OAAO,cAE3F/iB,EAAEyI,GAAGvI,OAASkjB,EAAEJ,iBAAkBhjB,EAAEyI,GAAGvI,OAAOyN,YAAcyV,EAAGpjB,EAAEyI,GAAGvI,OAAOijB,WAAa,WAC1F,OAAOnjB,EAAEyI,GAAGvI,OAASuD,EAAG2f,EAAEJ,kBAE5B,IAAIc,EAAI,WAENC,EAAI/jB,EAAEyI,GAAGqb,GACTE,EAAI,CACFC,SAAU,IACVC,UAAU,EACVC,OAAO,EACPC,MAAO,QACPC,MAAM,EACNC,OAAO,GAETxF,EAAI,CACFmF,SAAU,mBACVC,SAAU,UACVC,MAAO,mBACPC,MAAO,mBACPC,KAAM,UACNC,MAAO,WAETC,EAAI,CACFC,MAAO,QACPC,IAAK,OAEP/S,EAAI,WACF,SAAS3O,EAAEA,EAAG/C,GACZ7D,KAAKuoB,OAAS,KAAMvoB,KAAKwoB,UAAY,KAAMxoB,KAAKyoB,eAAiB,KAAMzoB,KAAK0oB,WAAY,EAAI1oB,KAAK2oB,YAAa,EAAI3oB,KAAK4oB,aAAe,KAAM5oB,KAAK6oB,YAAc,EAAG7oB,KAAK8oB,YAAc,EAAG9oB,KAAK+oB,QAAU/oB,KAAKgpB,WAAWnlB,GAAI7D,KAAK8lB,SAAWlf,EAAG5G,KAAKipB,mBAAqBjpB,KAAK8lB,SAASnI,cAAc,wBAAyB3d,KAAKkpB,gBAAkB,iBAAkBnd,SAASqC,iBAAmBlC,UAAUid,eAAiB,EAAGnpB,KAAKopB,cAAgB7oB,QAAQI,OAAO0oB,cAAgB1oB,OAAO2oB,gBAAiBtpB,KAAKupB,qBAEnf,IAAIviB,EAAIJ,EAAE3F,UACV,OAAO+F,EAAEwiB,KAAO,WACdxpB,KAAK2oB,YAAc3oB,KAAKypB,OAAO,SAC9BziB,EAAE0iB,gBAAkB,YACpB3d,SAAS4d,QAAU9lB,EAAE7D,KAAK8lB,UAAUJ,GAAG,aAAe,WAAa7hB,EAAE7D,KAAK8lB,UAAU7Y,IAAI,eAAiBjN,KAAKwpB,QAC9GxiB,EAAE4iB,KAAO,WACV5pB,KAAK2oB,YAAc3oB,KAAKypB,OAAO,SAC9BziB,EAAEihB,MAAQ,SAAUrhB,GACrBA,IAAM5G,KAAK0oB,WAAY,GAAK1oB,KAAK8lB,SAASnI,cAAc,8CAAgDzW,EAAEqd,qBAAqBvkB,KAAK8lB,UAAW9lB,KAAK6pB,OAAM,IAAMC,cAAc9pB,KAAKwoB,WAAYxoB,KAAKwoB,UAAY,MAC/MxhB,EAAE6iB,MAAQ,SAAUjjB,GACrBA,IAAM5G,KAAK0oB,WAAY,GAAK1oB,KAAKwoB,YAAcsB,cAAc9pB,KAAKwoB,WAAYxoB,KAAKwoB,UAAY,MAAOxoB,KAAK+oB,QAAQjB,WAAa9nB,KAAK0oB,YAAc1oB,KAAKwoB,UAAYuB,aAAahe,SAASie,gBAAkBhqB,KAAK0pB,gBAAkB1pB,KAAKwpB,MAAMzoB,KAAKf,MAAOA,KAAK+oB,QAAQjB,YACtQ9gB,EAAE1F,GAAK,SAAUsF,GAClB,IAAII,EAAIhH,KACRA,KAAKyoB,eAAiBzoB,KAAK8lB,SAASnI,cAAc,yBAClD,IAAIpW,EAAIvH,KAAKiqB,cAAcjqB,KAAKyoB,gBAChC,KAAM7hB,EAAI5G,KAAKuoB,OAAO5gB,OAAS,GAAKf,EAAI,GAAI,GAAI5G,KAAK2oB,WAAY9kB,EAAE7D,KAAK8lB,UAAUT,IAAI,oBAAoB,WACxG,OAAOre,EAAE1F,GAAGsF,UACN,CACN,GAAIW,IAAMX,EAAG,OAAO5G,KAAKioB,aAAcjoB,KAAK6pB,QAC5C,IAAIjG,EAAIhd,EAAIW,EAAI,OAAS,OACzBvH,KAAKypB,OAAO7F,EAAG5jB,KAAKuoB,OAAO3hB,MAE5BI,EAAEof,QAAU,WACbviB,EAAE7D,KAAK8lB,UAAU1a,IAjDjB,gBAiDyBvH,EAAEwiB,WAAWrmB,KAAK8lB,SAAU,eAAgB9lB,KAAKuoB,OAAS,KAAMvoB,KAAK+oB,QAAU,KAAM/oB,KAAK8lB,SAAW,KAAM9lB,KAAKwoB,UAAY,KAAMxoB,KAAK0oB,UAAY,KAAM1oB,KAAK2oB,WAAa,KAAM3oB,KAAKyoB,eAAiB,KAAMzoB,KAAKipB,mBAAqB,MAC/PjiB,EAAEgiB,WAAa,SAAUpiB,GAC1B,OAAOA,EAAIid,EAAE,GAAIgE,EAAGjhB,GAAIM,EAAEyd,gBAAgBgD,EAAG/gB,EAAG+b,GAAI/b,GACnDI,EAAEkjB,aAAe,WAClB,IAAItjB,EAAIsK,KAAKiZ,IAAInqB,KAAK8oB,aACtB,KAAMliB,GAAK,IAAK,CACd,IAAI/C,EAAI+C,EAAI5G,KAAK8oB,YACjB9oB,KAAK8oB,YAAc,EAAGjlB,EAAI,GAAK7D,KAAK4pB,OAAQ/lB,EAAI,GAAK7D,KAAKwpB,SAE3DxiB,EAAEuiB,mBAAqB,WACxB,IAAI3iB,EAAI5G,KACRA,KAAK+oB,QAAQhB,UAAYlkB,EAAE7D,KAAK8lB,UAAU7a,GAAG,uBAAuB,SAAUpH,GAC5E,OAAO+C,EAAEwjB,SAASvmB,MAChB,UAAY7D,KAAK+oB,QAAQd,OAASpkB,EAAE7D,KAAK8lB,UAAU7a,GAAG,0BAA0B,SAAUpH,GAC5F,OAAO+C,EAAEqhB,MAAMpkB,MACdoH,GAAG,0BAA0B,SAAUpH,GACxC,OAAO+C,EAAEijB,MAAMhmB,MACb7D,KAAK+oB,QAAQZ,OAASnoB,KAAKqqB,2BAC9BrjB,EAAEqjB,wBAA0B,WAC7B,IAAIzjB,EAAI5G,KACR,GAAIA,KAAKkpB,gBAAiB,CACxB,IAAIliB,EAAI,SAAUnD,GACd+C,EAAEwiB,eAAiBhB,EAAEvkB,EAAEymB,cAAcC,YAAY5R,eAAiB/R,EAAEiiB,YAAchlB,EAAEymB,cAAcE,QAAU5jB,EAAEwiB,gBAAkBxiB,EAAEiiB,YAAchlB,EAAEymB,cAAcG,QAAQ,GAAGD,UAE7KjjB,EAAI,SAAU1D,GACZ+C,EAAEwiB,eAAiBhB,EAAEvkB,EAAEymB,cAAcC,YAAY5R,iBAAmB/R,EAAEkiB,YAAcjlB,EAAEymB,cAAcE,QAAU5jB,EAAEiiB,aAAcjiB,EAAEsjB,eAAgB,UAAYtjB,EAAEmiB,QAAQd,QAAUrhB,EAAEqhB,QAASrhB,EAAEgiB,cAAgB8B,aAAa9jB,EAAEgiB,cAAehiB,EAAEgiB,aAAe3e,YAAW,SAAUpG,GAC/Q,OAAO+C,EAAEijB,MAAMhmB,KACd,IAAM+C,EAAEmiB,QAAQjB,YAEvBjkB,EAAE7D,KAAK8lB,SAAS2B,iBAAiB,uBAAuBxc,GAAG,yBAAyB,SAAUrE,GAC5F,OAAOA,EAAEvC,oBACPrE,KAAKopB,eAAiBvlB,EAAE7D,KAAK8lB,UAAU7a,GAAG,2BAA2B,SAAUrE,GACjF,OAAOI,EAAEJ,MACP/C,EAAE7D,KAAK8lB,UAAU7a,GAAG,yBAAyB,SAAUrE,GACzD,OAAOW,EAAEX,MACP5G,KAAK8lB,SAASsB,UAAUM,IAAI,mBAAqB7jB,EAAE7D,KAAK8lB,UAAU7a,GAAG,0BAA0B,SAAUrE,GAC3G,OAAOI,EAAEJ,MACP/C,EAAE7D,KAAK8lB,UAAU7a,GAAG,yBAAyB,SAAUpH,GACzD,OAAO,SAAUA,GACfA,EAAEymB,cAAcG,SAAW5mB,EAAEymB,cAAcG,QAAQ9iB,OAAS,EAAIf,EAAEkiB,YAAc,EAAIliB,EAAEkiB,YAAcjlB,EAAEymB,cAAcG,QAAQ,GAAGD,QAAU5jB,EAAEiiB,YADtI,CAELhlB,MACAA,EAAE7D,KAAK8lB,UAAU7a,GAAG,wBAAwB,SAAUrE,GACxD,OAAOW,EAAEX,SAGZI,EAAEojB,SAAW,SAAUxjB,GACxB,IAAK,kBAAkB8C,KAAK9C,EAAE/D,OAAO2kB,SAAU,OAAQ5gB,EAAE+jB,OACvD,KAAK,GACH/jB,EAAEvC,iBAAkBrE,KAAK4pB,OACzB,MACF,KAAK,GACHhjB,EAAEvC,iBAAkBrE,KAAKwpB,SAE5BxiB,EAAEijB,cAAgB,SAAUrjB,GAC7B,OAAO5G,KAAKuoB,OAAS3hB,GAAKA,EAAEyG,WAAa,GAAG7O,MAAMuB,KAAK6G,EAAEyG,WAAWoa,iBAAiB,mBAAqB,GAAIznB,KAAKuoB,OAAOjd,QAAQ1E,IACjII,EAAE4jB,oBAAsB,SAAUhkB,EAAG/C,GACtC,IAAImD,EAAI,SAAWJ,EACjBW,EAAI,SAAWX,EACfgd,EAAI5jB,KAAKiqB,cAAcpmB,GACvBggB,EAAI7jB,KAAKuoB,OAAO5gB,OAAS,EAC3B,IAAKJ,GAAK,IAAMqc,GAAK5c,GAAK4c,IAAMC,KAAO7jB,KAAK+oB,QAAQb,KAAM,OAAOrkB,EACjE,IAAI8C,GAAKid,GAAK,SAAWhd,GAAK,EAAI,IAAM5G,KAAKuoB,OAAO5gB,OACpD,OAAQ,IAAMhB,EAAI3G,KAAKuoB,OAAOvoB,KAAKuoB,OAAO5gB,OAAS,GAAK3H,KAAKuoB,OAAO5hB,IACnEK,EAAE6jB,mBAAqB,SAAUjkB,EAAGI,GACrC,IAAIO,EAAIvH,KAAKiqB,cAAcrjB,GACzBgd,EAAI5jB,KAAKiqB,cAAcjqB,KAAK8lB,SAASnI,cAAc,0BACnDkG,EAAIhgB,EAAE0iB,MAAM,oBAAqB,CAC/BuE,cAAelkB,EACfmkB,UAAW/jB,EACX2c,KAAMC,EACNtiB,GAAIiG,IAER,OAAO1D,EAAE7D,KAAK8lB,UAAUtB,QAAQX,GAAIA,GACnC7c,EAAEgkB,2BAA6B,SAAUpkB,GAC1C,GAAI5G,KAAKipB,mBAAoB,CAC3B,IAAIjiB,EAAI,GAAGxI,MAAMuB,KAAKC,KAAKipB,mBAAmBxB,iBAAiB,YAC/D5jB,EAAEmD,GAAGwf,YAAY,UACjB,IAAIjf,EAAIvH,KAAKipB,mBAAmB/V,SAASlT,KAAKiqB,cAAcrjB,IAC5DW,GAAK1D,EAAE0D,GAAG0jB,SAAS,YAEpBjkB,EAAEyiB,OAAS,SAAU7iB,EAAGI,GACzB,IAAIO,EACFqc,EACAC,EACAld,EAAI3G,KACJ4kB,EAAI5kB,KAAK8lB,SAASnI,cAAc,yBAChCiI,EAAI5lB,KAAKiqB,cAAcrF,GACvBiB,EAAI7e,GAAK4d,GAAK5kB,KAAK4qB,oBAAoBhkB,EAAGge,GAC1Ctd,EAAItH,KAAKiqB,cAAcpE,GACvBoB,EAAI1mB,QAAQP,KAAKwoB,WACnB,GAAI,SAAW5hB,GAAKW,EAAI,qBAAsBqc,EAAI,qBAAsBC,EAAI,SAAWtc,EAAI,sBAAuBqc,EAAI,qBAAsBC,EAAI,SAAUgC,GAAKhiB,EAAEgiB,GAAGY,SAAS,UAAWzmB,KAAK2oB,YAAa,OAAQ,IAAK3oB,KAAK6qB,mBAAmBhF,EAAGhC,GAAGqC,sBAAwBtB,GAAKiB,EAAG,CACnR7lB,KAAK2oB,YAAa,EAAI1B,GAAKjnB,KAAKioB,QAASjoB,KAAKgrB,2BAA2BnF,GACzE,IAAI8B,EAAI9jB,EAAE0iB,MAAM,mBAAoB,CAClCuE,cAAejF,EACfkF,UAAWlH,EACXF,KAAMiC,EACNtkB,GAAIgG,IAEN,GAAIzD,EAAE7D,KAAK8lB,UAAUW,SAAS,SAAU,CACtC5iB,EAAEgiB,GAAGoF,SAASrH,GAAI1c,EAAEod,OAAOuB,GAAIhiB,EAAE+gB,GAAGqG,SAAS1jB,GAAI1D,EAAEgiB,GAAGoF,SAAS1jB,GAC/D,IAAI2jB,EAAIC,SAAStF,EAAEzB,aAAa,iBAAkB,IAClD8G,GAAKlrB,KAAK+oB,QAAQqC,gBAAkBprB,KAAK+oB,QAAQqC,iBAAmBprB,KAAK+oB,QAAQjB,SAAU9nB,KAAK+oB,QAAQjB,SAAWoD,GAAKlrB,KAAK+oB,QAAQjB,SAAW9nB,KAAK+oB,QAAQqC,iBAAmBprB,KAAK+oB,QAAQjB,SAC7L,IAAIF,EAAI1gB,EAAEmd,iCAAiCO,GAC3C/gB,EAAE+gB,GAAGS,IAAIne,EAAE6c,gBAAgB,WACzBlgB,EAAEgiB,GAAGW,YAAYjf,EAAI,IAAMqc,GAAGqH,SAAS,UAAWpnB,EAAE+gB,GAAG4B,YAAY,UAAY5C,EAAI,IAAMrc,GAAIZ,EAAEgiB,YAAa,EAAI1e,YAAW,WACzH,OAAOpG,EAAE8C,EAAEmf,UAAUtB,QAAQmD,KAC5B,MACFvC,qBAAqBwC,QACnB/jB,EAAE+gB,GAAG4B,YAAY,UAAW3iB,EAAEgiB,GAAGoF,SAAS,UAAWjrB,KAAK2oB,YAAa,EAAI9kB,EAAE7D,KAAK8lB,UAAUtB,QAAQmD,GAC3GV,GAAKjnB,KAAK6pB,UAEXjjB,EAAEigB,iBAAmB,SAAU7f,GAChC,OAAOhH,KAAK8mB,MAAK,WACf,IAAIvf,EAAI1D,EAAE7D,MAAMmX,KAAK,eACnByM,EAAIC,EAAE,GAAIgE,EAAGhkB,EAAE7D,MAAMmX,QACvB,iBAAmBnQ,IAAM4c,EAAIC,EAAE,GAAID,EAAG5c,IACtC,IAAIL,EAAI,iBAAmBK,EAAIA,EAAI4c,EAAEoE,MACrC,GAAIzgB,IAAMA,EAAI,IAAIX,EAAE5G,KAAM4jB,GAAI/f,EAAE7D,MAAMmX,KAAK,cAAe5P,IAAK,iBAAmBP,EAAGO,EAAEjG,GAAG0F,QAAQ,GAAI,iBAAmBL,EAAG,CAC1H,QAAI,IAAsBY,EAAEZ,GAAI,MAAM,IAAI8K,UAAU,oBAAsB9K,EAAI,KAC9EY,EAAEZ,UACGid,EAAEkE,UAAYlE,EAAEyH,OAAS9jB,EAAE0gB,QAAS1gB,EAAEsiB,aAE9CjjB,EAAE0kB,qBAAuB,SAAUtkB,GACpC,IAAIO,EAAIL,EAAEid,uBAAuBnkB,MACjC,GAAIuH,EAAG,CACL,IAAIqc,EAAI/f,EAAE0D,GAAG,GACb,GAAIqc,GAAK/f,EAAE+f,GAAG6C,SAAS,YAAa,CAClC,IAAI9f,EAAIkd,EAAE,GAAIhgB,EAAE+f,GAAGzM,OAAQtT,EAAE7D,MAAMmX,QACjCyN,EAAI5kB,KAAKokB,aAAa,iBACxBQ,IAAMje,EAAEmhB,UAAW,GAAKlhB,EAAEigB,iBAAiB9mB,KAAK8D,EAAE+f,GAAIjd,GAAIie,GAAK/gB,EAAE+f,GAAGzM,KAAK,eAAe7V,GAAGsjB,GAAI5d,EAAE3C,oBAGpGuf,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,UAER,CACDpB,IAAK,UACLoB,IAAK,WACH,OAAO8gB,MAENjhB,EAzKH,GA2KN/C,EAAEkI,UAAUd,GAAG,6BAA8B,gCAAiCsK,EAAE+V,sBAAuBznB,EAAElD,QAAQsK,GAAG,6BAA6B,WAC/I,IAAK,IAAIrE,EAAI,GAAGpI,MAAMuB,KAAKgM,SAAS0b,iBAAiB,2BAA4BzgB,EAAI,EAAGO,EAAIX,EAAEe,OAAQX,EAAIO,EAAGP,IAAK,CAChH,IAAI4c,EAAI/f,EAAE+C,EAAEI,IACZuO,EAAEsR,iBAAiB9mB,KAAK6jB,EAAGA,EAAEzM,YAE7BtT,EAAEyI,GAAGqb,GAAKpS,EAAEsR,iBAAkBhjB,EAAEyI,GAAGqb,GAAGnW,YAAc+D,EAAG1R,EAAEyI,GAAGqb,GAAGX,WAAa,WAC9E,OAAOnjB,EAAEyI,GAAGqb,GAAKC,EAAGrS,EAAEsR,kBAExB,IAAI7Q,EAAI,WACNuV,EAAI1nB,EAAEyI,GAAG0J,GACTwV,EAAI,CACFtE,QAAQ,EACR/T,OAAQ,IAEVsY,EAAI,CACFvE,OAAQ,UACR/T,OAAQ,oBAEVuY,EAAI,WACF,SAAS9kB,EAAEA,EAAG/C,GACZ7D,KAAK2rB,kBAAmB,EAAI3rB,KAAK8lB,SAAWlf,EAAG5G,KAAK+oB,QAAU/oB,KAAKgpB,WAAWnlB,GAAI7D,KAAK4rB,cAAgB,GAAGptB,MAAMuB,KAAKgM,SAAS0b,iBAAiB,mCAAqC7gB,EAAEilB,GAAK,6CAA+CjlB,EAAEilB,GAAK,OACjP,IAAK,IAAI7kB,EAAI,GAAGxI,MAAMuB,KAAKgM,SAAS0b,iBAAiB,6BAA8BlgB,EAAI,EAAGqc,EAAI5c,EAAEW,OAAQJ,EAAIqc,EAAGrc,IAAK,CAClH,IAAIsc,EAAI7c,EAAEO,GACRZ,EAAIO,EAAEid,uBAAuBN,GAC7Be,EAAI,GAAGpmB,MAAMuB,KAAKgM,SAAS0b,iBAAiB9gB,IAAIrG,QAAO,SAAUuD,GAC/D,OAAOA,IAAM+C,KAEjB,OAASD,GAAKie,EAAEjd,OAAS,IAAM3H,KAAK8rB,UAAYnlB,EAAG3G,KAAK4rB,cAAc1uB,KAAK2mB,IAE7E7jB,KAAK+rB,QAAU/rB,KAAK+oB,QAAQ5V,OAASnT,KAAKgsB,aAAe,KAAMhsB,KAAK+oB,QAAQ5V,QAAUnT,KAAKisB,0BAA0BjsB,KAAK8lB,SAAU9lB,KAAK4rB,eAAgB5rB,KAAK+oB,QAAQ7B,QAAUlnB,KAAKknB,SAEvL,IAAIlgB,EAAIJ,EAAE3F,UACV,OAAO+F,EAAEkgB,OAAS,WAChBrjB,EAAE7D,KAAK8lB,UAAUW,SAAS,QAAUzmB,KAAKsf,OAAStf,KAAKksB,QACtDllB,EAAEklB,KAAO,WACV,IAAIllB,EACFO,EACAqc,EAAI5jB,KACN,KAAKA,KAAK2rB,kBAAqB9nB,EAAE7D,KAAK8lB,UAAUW,SAAS,UAAYzmB,KAAK+rB,SAAW,KAAO/kB,EAAI,GAAGxI,MAAMuB,KAAKC,KAAK+rB,QAAQtE,iBAAiB,uBAAuBnnB,QAAO,SAAUsG,GAClL,MAAO,iBAAmBgd,EAAEmF,QAAQ5V,OAASvM,EAAEwd,aAAa,iBAAmBR,EAAEmF,QAAQ5V,OAASvM,EAAEwgB,UAAU5X,SAAS,gBACrH7H,SAAWX,EAAI,MAASA,IAAMO,EAAI1D,EAAEmD,GAAGmlB,IAAInsB,KAAK8rB,WAAW3U,KAAK,iBAAmB5P,EAAEokB,mBAAoB,CAC3G,IAAI9H,EAAIhgB,EAAE0iB,MAAM,oBAChB,GAAI1iB,EAAE7D,KAAK8lB,UAAUtB,QAAQX,IAAKA,EAAEqC,qBAAsB,CACxDlf,IAAMJ,EAAEigB,iBAAiB9mB,KAAK8D,EAAEmD,GAAGmlB,IAAInsB,KAAK8rB,WAAY,QAASvkB,GAAK1D,EAAEmD,GAAGmQ,KAAK,cAAe,OAC/F,IAAIxQ,EAAI3G,KAAKosB,gBACbvoB,EAAE7D,KAAK8lB,UAAUU,YAAY,YAAYyE,SAAS,cAAejrB,KAAK8lB,SAASrlB,MAAMkG,GAAK,EAAG3G,KAAK4rB,cAAcjkB,QAAU9D,EAAE7D,KAAK4rB,eAAepF,YAAY,aAAa6F,KAAK,iBAAiB,GAAKrsB,KAAKssB,kBAAiB,GAC1N,IAAI1H,EAAI,UAAYje,EAAE,GAAGgS,cAAgBhS,EAAEnI,MAAM,IAC/ConB,EAAI1e,EAAEmd,iCAAiCrkB,KAAK8lB,UAC9CjiB,EAAE7D,KAAK8lB,UAAUT,IAAIne,EAAE6c,gBAAgB,WACrClgB,EAAE+f,EAAEkC,UAAUU,YAAY,cAAcyE,SAAS,iBAAkBrH,EAAEkC,SAASrlB,MAAMkG,GAAK,GAAIid,EAAE0I,kBAAiB,GAAKzoB,EAAE+f,EAAEkC,UAAUtB,QAAQ,wBAC1IY,qBAAqBQ,GAAI5lB,KAAK8lB,SAASrlB,MAAMkG,GAAK3G,KAAK8lB,SAASlB,GAAK,QAG3E5d,EAAEsY,KAAO,WACV,IAAI1Y,EAAI5G,KACR,IAAKA,KAAK2rB,kBAAoB9nB,EAAE7D,KAAK8lB,UAAUW,SAAS,QAAS,CAC/D,IAAIzf,EAAInD,EAAE0iB,MAAM,oBAChB,GAAI1iB,EAAE7D,KAAK8lB,UAAUtB,QAAQxd,IAAKA,EAAEkf,qBAAsB,CACxD,IAAI3e,EAAIvH,KAAKosB,gBACbpsB,KAAK8lB,SAASrlB,MAAM8G,GAAKvH,KAAK8lB,SAAStT,wBAAwBjL,GAAK,KAAML,EAAEod,OAAOtkB,KAAK8lB,UAAWjiB,EAAE7D,KAAK8lB,UAAUmF,SAAS,cAAczE,YAAY,iBACvJ,IAAI5C,EAAI5jB,KAAK4rB,cAAcjkB,OAC3B,GAAIic,EAAI,EAAG,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAGC,IAAK,CACrC,IAAIld,EAAI3G,KAAK4rB,cAAc/H,GACzBe,EAAI1d,EAAEid,uBAAuBxd,GAC3B,OAASie,IAAG/gB,EAAE,GAAGrF,MAAMuB,KAAKgM,SAAS0b,iBAAiB7C,KAAK6B,SAAS,SAAW5iB,EAAE8C,GAAGskB,SAAS,aAAaoB,KAAK,iBAAiB,IAEtIrsB,KAAKssB,kBAAiB,GACtBtsB,KAAK8lB,SAASrlB,MAAM8G,GAAK,GACzB,IAAIqe,EAAI1e,EAAEmd,iCAAiCrkB,KAAK8lB,UAChDjiB,EAAE7D,KAAK8lB,UAAUT,IAAIne,EAAE6c,gBAAgB,WACrCnd,EAAE0lB,kBAAiB,GAAKzoB,EAAE+C,EAAEkf,UAAUU,YAAY,cAAcyE,SAAS,YAAYzG,QAAQ,yBAC5FY,qBAAqBQ,MAG3B5e,EAAEslB,iBAAmB,SAAU1lB,GAChC5G,KAAK2rB,iBAAmB/kB,GACvBI,EAAEof,QAAU,WACbviB,EAAEwiB,WAAWrmB,KAAK8lB,SAAU,eAAgB9lB,KAAK+oB,QAAU,KAAM/oB,KAAK+rB,QAAU,KAAM/rB,KAAK8lB,SAAW,KAAM9lB,KAAK4rB,cAAgB,KAAM5rB,KAAK2rB,iBAAmB,MAC9J3kB,EAAEgiB,WAAa,SAAUpiB,GAC1B,OAAQA,EAAIid,EAAE,GAAI2H,EAAG5kB,IAAIsgB,OAAS3mB,QAAQqG,EAAEsgB,QAAShgB,EAAEyd,gBAAgB3O,EAAGpP,EAAG6kB,GAAI7kB,GAChFI,EAAEolB,cAAgB,WACnB,OAAOvoB,EAAE7D,KAAK8lB,UAAUW,SAAS,SAAW,QAAU,UACrDzf,EAAEglB,WAAa,WAChB,IAAIhlB,EACFO,EAAIvH,KACNkH,EAAEwd,UAAU1kB,KAAK+oB,QAAQ5V,SAAWnM,EAAIhH,KAAK+oB,QAAQ5V,YAAQ,IAAsBnT,KAAK+oB,QAAQ5V,OAAOiN,SAAWpZ,EAAIhH,KAAK+oB,QAAQ5V,OAAO,KAAOnM,EAAI+E,SAAS4R,cAAc3d,KAAK+oB,QAAQ5V,QACzL,IAAIyQ,EAAI,yCAA2C5jB,KAAK+oB,QAAQ5V,OAAS,KACvE0Q,EAAI,GAAGrlB,MAAMuB,KAAKiH,EAAEygB,iBAAiB7D,IACvC,OAAO/f,EAAEggB,GAAGiD,MAAK,SAAUjjB,EAAGmD,GAC5BO,EAAE0kB,0BAA0BrlB,EAAE2lB,sBAAsBvlB,GAAI,CAACA,OACvDA,GACHA,EAAEilB,0BAA4B,SAAUrlB,EAAGI,GAC5C,IAAIO,EAAI1D,EAAE+C,GAAG6f,SAAS,QACtBzf,EAAEW,QAAU9D,EAAEmD,GAAGugB,YAAY,aAAchgB,GAAG8kB,KAAK,gBAAiB9kB,IACnEX,EAAE2lB,sBAAwB,SAAU3lB,GACrC,IAAI/C,EAAIqD,EAAEid,uBAAuBvd,GACjC,OAAO/C,EAAIkI,SAAS4R,cAAc9Z,GAAK,MACtC+C,EAAEigB,iBAAmB,SAAU7f,GAChC,OAAOhH,KAAK8mB,MAAK,WACf,IAAIvf,EAAI1D,EAAE7D,MACR4jB,EAAIrc,EAAE4P,KAAK,eACXxQ,EAAIkd,EAAE,GAAI2H,EAAGjkB,EAAE4P,OAAQ,iBAAmBnQ,GAAKA,EAAIA,EAAI,IACzD,IAAK4c,GAAKjd,EAAEugB,QAAU,iBAAmBlgB,GAAK,YAAY0C,KAAK1C,KAAOL,EAAEugB,QAAS,GAAKtD,IAAMA,EAAI,IAAIhd,EAAE5G,KAAM2G,GAAIY,EAAE4P,KAAK,cAAeyM,IAAK,iBAAmB5c,EAAG,CAC/J,QAAI,IAAsB4c,EAAE5c,GAAI,MAAM,IAAIyK,UAAU,oBAAsBzK,EAAI,KAC9E4c,EAAE5c,UAGL4c,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,UAER,CACDpB,IAAK,UACLoB,IAAK,WACH,OAAOykB,MAEN5kB,EAnGH,GAqGN/C,EAAEkI,UAAUd,GAAG,6BAA8B,4BAA4B,SAAUrE,GACjF,MAAQA,EAAE4lB,cAAchF,SAAW5gB,EAAEvC,iBACrC,IAAI2C,EAAInD,EAAE7D,MACRuH,EAAIL,EAAEid,uBAAuBnkB,MAC7B4jB,EAAI,GAAGplB,MAAMuB,KAAKgM,SAAS0b,iBAAiBlgB,IAC9C1D,EAAE+f,GAAGkD,MAAK,WACR,IAAIlgB,EAAI/C,EAAE7D,MACRuH,EAAIX,EAAEuQ,KAAK,eAAiB,SAAWnQ,EAAEmQ,OAC3CuU,EAAE7E,iBAAiB9mB,KAAK6G,EAAGW,SAE3B1D,EAAEyI,GAAG0J,GAAK0V,EAAE7E,iBAAkBhjB,EAAEyI,GAAG0J,GAAGxE,YAAcka,EAAG7nB,EAAEyI,GAAG0J,GAAGgR,WAAa,WAC9E,OAAOnjB,EAAEyI,GAAG0J,GAAKuV,EAAGG,EAAE7E,kBAExB,IAAI4F,EAAI,WACNC,EAAI7oB,EAAEyI,GAAGmgB,GACTE,EAAI,IAAI9H,OAAO,YACf+H,EAAI,CACF1Y,OAAQ,EACR8D,MAAM,EACN6U,SAAU,eACVrY,UAAW,SACXsY,QAAS,UACTC,aAAc,MAEhBC,EAAI,CACF9Y,OAAQ,2BACR8D,KAAM,UACN6U,SAAU,mBACVrY,UAAW,mBACXsY,QAAS,SACTC,aAAc,iBAEhBE,EAAI,WACF,SAASrmB,EAAEA,EAAG/C,GACZ7D,KAAK8lB,SAAWlf,EAAG5G,KAAKktB,QAAU,KAAMltB,KAAK+oB,QAAU/oB,KAAKgpB,WAAWnlB,GAAI7D,KAAKmtB,MAAQntB,KAAKotB,kBAAmBptB,KAAKqtB,UAAYrtB,KAAKstB,gBAAiBttB,KAAKupB,qBAE9J,IAAIhiB,EAAIX,EAAE3F,UACV,OAAOsG,EAAE2f,OAAS,WAChB,IAAKlnB,KAAK8lB,SAASyH,WAAa1pB,EAAE7D,KAAK8lB,UAAUW,SAAS,YAAa,CACrE,IAAIzf,EAAInD,EAAE7D,KAAKmtB,OAAO1G,SAAS,QAC/B7f,EAAE4mB,cAAexmB,GAAKhH,KAAKksB,MAAK,KAEjC3kB,EAAE2kB,KAAO,SAAU3kB,GACpB,QAAI,IAAWA,IAAMA,GAAI,KAAOvH,KAAK8lB,SAASyH,UAAY1pB,EAAE7D,KAAK8lB,UAAUW,SAAS,aAAe5iB,EAAE7D,KAAKmtB,OAAO1G,SAAS,SAAU,CAClI,IAAI7C,EAAI,CACJkH,cAAe9qB,KAAK8lB,UAEtBjC,EAAIhgB,EAAE0iB,MAAM,mBAAoB3C,GAChCjd,EAAIC,EAAE6mB,sBAAsBztB,KAAK8lB,UACnC,GAAIjiB,EAAE8C,GAAG6d,QAAQX,IAAKA,EAAEqC,qBAAsB,CAC5C,IAAKlmB,KAAKqtB,WAAa9lB,EAAG,CACxB,QAAI,IAAsBP,EAAG,MAAM,IAAIyK,UAAU,oEACjD,IAAImT,EAAI5kB,KAAK8lB,SACb,WAAa9lB,KAAK+oB,QAAQvU,UAAYoQ,EAAIje,EAAIO,EAAEwd,UAAU1kB,KAAK+oB,QAAQvU,aAAeoQ,EAAI5kB,KAAK+oB,QAAQvU,eAAW,IAAsBxU,KAAK+oB,QAAQvU,UAAU4L,SAAWwE,EAAI5kB,KAAK+oB,QAAQvU,UAAU,KAAM,iBAAmBxU,KAAK+oB,QAAQ8D,UAAYhpB,EAAE8C,GAAGskB,SAAS,mBAAoBjrB,KAAKktB,QAAU,IAAIlmB,EAAE4d,EAAG5kB,KAAKmtB,MAAOntB,KAAK0tB,oBAEpU,iBAAkB3hB,SAASqC,iBAAmB,IAAMvK,EAAE8C,GAAG2f,QAAQ,eAAe3e,QAAU9D,EAAEkI,SAASyB,MAAM0F,WAAWjI,GAAG,YAAa,KAAMpH,EAAE8pB,MAAO3tB,KAAK8lB,SAASuB,QAASrnB,KAAK8lB,SAAS9F,aAAa,iBAAiB,GAAKnc,EAAE7D,KAAKmtB,OAAO5F,YAAY,QAAS1jB,EAAE8C,GAAG4gB,YAAY,QAAQ/C,QAAQ3gB,EAAE0iB,MAAM,oBAAqB3C,OAGjUrc,EAAE+X,KAAO,WACV,IAAKtf,KAAK8lB,SAASyH,WAAa1pB,EAAE7D,KAAK8lB,UAAUW,SAAS,aAAe5iB,EAAE7D,KAAKmtB,OAAO1G,SAAS,QAAS,CACvG,IAAIzf,EAAI,CACJ8jB,cAAe9qB,KAAK8lB,UAEtBve,EAAI1D,EAAE0iB,MAAM,mBAAoBvf,GAChC4c,EAAIhd,EAAE6mB,sBAAsBztB,KAAK8lB,UACnCjiB,EAAE+f,GAAGY,QAAQjd,GAAIA,EAAE2e,uBAAyBlmB,KAAKktB,SAAWltB,KAAKktB,QAAQrU,UAAWhV,EAAE7D,KAAKmtB,OAAO5F,YAAY,QAAS1jB,EAAE+f,GAAG2D,YAAY,QAAQ/C,QAAQ3gB,EAAE0iB,MAAM,qBAAsBvf,OAEvLO,EAAE6e,QAAU,WACbviB,EAAEwiB,WAAWrmB,KAAK8lB,SAAU,eAAgBjiB,EAAE7D,KAAK8lB,UAAU1a,IAAI,gBAAiBpL,KAAK8lB,SAAW,KAAM9lB,KAAKmtB,MAAQ,KAAM,OAASntB,KAAKktB,UAAYltB,KAAKktB,QAAQrU,UAAW7Y,KAAKktB,QAAU,OAC3L3lB,EAAEmQ,OAAS,WACZ1X,KAAKqtB,UAAYrtB,KAAKstB,gBAAiB,OAASttB,KAAKktB,SAAWltB,KAAKktB,QAAQjT,kBAC5E1S,EAAEgiB,mBAAqB,WACxB,IAAI3iB,EAAI5G,KACR6D,EAAE7D,KAAK8lB,UAAU7a,GAAG,qBAAqB,SAAUpH,GACjDA,EAAEQ,iBAAkBR,EAAE+pB,kBAAmBhnB,EAAEsgB,aAE5C3f,EAAEyhB,WAAa,SAAUpiB,GAC1B,OAAOA,EAAIid,EAAE,GAAI7jB,KAAK0jB,YAAYmK,QAAShqB,EAAE7D,KAAK8lB,UAAU3O,OAAQvQ,GAAIM,EAAEyd,gBAAgB8H,EAAG7lB,EAAG5G,KAAK0jB,YAAYoK,aAAclnB,GAC9HW,EAAE6lB,gBAAkB,WACrB,IAAKptB,KAAKmtB,MAAO,CACf,IAAItpB,EAAI+C,EAAE6mB,sBAAsBztB,KAAK8lB,UACrCjiB,IAAM7D,KAAKmtB,MAAQtpB,EAAE8Z,cAAc,mBAErC,OAAO3d,KAAKmtB,OACX5lB,EAAEwmB,cAAgB,WACnB,IAAInnB,EAAI/C,EAAE7D,KAAK8lB,SAASzY,YACtBrG,EAAI,eACN,OAAOJ,EAAE6f,SAAS,UAAYzf,EAAInD,EAAE7D,KAAKmtB,OAAO1G,SAAS,uBAAyB,UAAY,YAAc7f,EAAE6f,SAAS,aAAezf,EAAI,cAAgBJ,EAAE6f,SAAS,YAAczf,EAAI,aAAenD,EAAE7D,KAAKmtB,OAAO1G,SAAS,yBAA2Bzf,EAAI,cAAeA,GAC1QO,EAAE+lB,cAAgB,WACnB,OAAOzpB,EAAE7D,KAAK8lB,UAAUQ,QAAQ,WAAW3e,OAAS,GACnDJ,EAAEymB,WAAa,WAChB,IAAIpnB,EAAI5G,KACN6D,EAAI,GACN,MAAO,mBAAqB7D,KAAK+oB,QAAQ7U,OAASrQ,EAAEyI,GAAK,SAAUzI,GACjE,OAAOA,EAAE0O,QAAUsR,EAAE,GAAIhgB,EAAE0O,QAAS3L,EAAEmiB,QAAQ7U,OAAOrQ,EAAE0O,QAAS3L,EAAEkf,WAAa,IAAKjiB,GAClFA,EAAEqQ,OAASlU,KAAK+oB,QAAQ7U,OAAQrQ,GACnC0D,EAAEmmB,iBAAmB,WACtB,IAAI9mB,EAAI,CACNoO,UAAWhV,KAAK+tB,gBAChB7W,UAAW,CACThD,OAAQlU,KAAKguB,aACbhW,KAAM,CACJP,QAASzX,KAAK+oB,QAAQ/Q,MAExB4E,gBAAiB,CACflI,kBAAmB1U,KAAK+oB,QAAQ8D,YAItC,MAAO,WAAa7sB,KAAK+oB,QAAQ+D,UAAYlmB,EAAEsQ,UAAU6I,WAAa,CACpEtI,SAAS,IACPoM,EAAE,GAAIjd,EAAG5G,KAAK+oB,QAAQgE,eACzBnmB,EAAEigB,iBAAmB,SAAU7f,GAChC,OAAOhH,KAAK8mB,MAAK,WACf,IAAIvf,EAAI1D,EAAE7D,MAAMmX,KAAK,eACrB,GAAI5P,IAAMA,EAAI,IAAIX,EAAE5G,KAAM,iBAAmBgH,EAAIA,EAAI,MAAOnD,EAAE7D,MAAMmX,KAAK,cAAe5P,IAAK,iBAAmBP,EAAG,CACjH,QAAI,IAAsBO,EAAEP,GAAI,MAAM,IAAIyK,UAAU,oBAAsBzK,EAAI,KAC9EO,EAAEP,UAGLJ,EAAE4mB,YAAc,SAAUxmB,GAC3B,IAAKA,GAAK,IAAMA,EAAE2jB,QAAU,UAAY3jB,EAAEkE,MAAQ,IAAMlE,EAAE2jB,OAAQ,IAAK,IAAIpjB,EAAI,GAAG/I,MAAMuB,KAAKgM,SAAS0b,iBAAiB,6BAA8B7D,EAAI,EAAGC,EAAItc,EAAEI,OAAQic,EAAIC,EAAGD,IAAK,CACpL,IAAIjd,EAAIC,EAAE6mB,sBAAsBlmB,EAAEqc,IAChC1c,EAAIrD,EAAE0D,EAAEqc,IAAIzM,KAAK,eACjByN,EAAI,CACFkG,cAAevjB,EAAEqc,IAErB,GAAI5c,GAAK,UAAYA,EAAEkE,OAAS0Z,EAAEqJ,WAAajnB,GAAIE,EAAG,CACpD,IAAI0e,EAAI1e,EAAEimB,MACV,GAAItpB,EAAE8C,GAAG8f,SAAS,WAAazf,IAAM,UAAYA,EAAEkE,MAAQ,kBAAkBxB,KAAK1C,EAAEnE,OAAO2kB,UAAY,UAAYxgB,EAAEkE,MAAQ,IAAMlE,EAAE2jB,QAAU9mB,EAAE2L,SAAS7I,EAAGK,EAAEnE,SAAU,CACvK,IAAIgjB,EAAIhiB,EAAE0iB,MAAM,mBAAoB3B,GACpC/gB,EAAE8C,GAAG6d,QAAQqB,GAAIA,EAAEK,uBAAyB,iBAAkBna,SAASqC,iBAAmBvK,EAAEkI,SAASyB,MAAM0F,WAAW9H,IAAI,YAAa,KAAMvH,EAAE8pB,MAAOpmB,EAAEqc,GAAG5D,aAAa,gBAAiB,SAAU9Y,EAAEgmB,SAAWhmB,EAAEgmB,QAAQrU,UAAWhV,EAAE+hB,GAAGY,YAAY,QAAS3iB,EAAE8C,GAAG6f,YAAY,QAAQhC,QAAQ3gB,EAAE0iB,MAAM,qBAAsB3B,SAInUhe,EAAE6mB,sBAAwB,SAAU7mB,GACrC,IAAI/C,EACFmD,EAAIE,EAAEid,uBAAuBvd,GAC/B,OAAOI,IAAMnD,EAAIkI,SAAS4R,cAAc3W,IAAKnD,GAAK+C,EAAEyG,YACnDzG,EAAEsnB,uBAAyB,SAAUlnB,GACtC,KAAM,kBAAkB0C,KAAK1C,EAAEnE,OAAO2kB,SAAW,KAAOxgB,EAAE2jB,OAAS,KAAO3jB,EAAE2jB,QAAU,KAAO3jB,EAAE2jB,OAAS,KAAO3jB,EAAE2jB,OAAS9mB,EAAEmD,EAAEnE,QAAQyjB,QAAQ,kBAAkB3e,SAAWglB,EAAEjjB,KAAK1C,EAAE2jB,UAAY3qB,KAAKutB,WAAa1pB,EAAE7D,MAAMymB,SAAS,YAAa,CAC9O,IAAIlf,EAAIX,EAAE6mB,sBAAsBztB,MAC9B4jB,EAAI/f,EAAE0D,GAAGkf,SAAS,QACpB,GAAI7C,GAAK,KAAO5c,EAAE2jB,MAAO,CACvB,GAAI3jB,EAAE3C,iBAAkB2C,EAAE4mB,mBAAoBhK,GAAKA,IAAM,KAAO5c,EAAE2jB,OAAS,KAAO3jB,EAAE2jB,OAAQ,OAAO,KAAO3jB,EAAE2jB,OAAS9mB,EAAE0D,EAAEoW,cAAc,6BAA6B6G,QAAQ,cAAe3gB,EAAE7D,MAAMwkB,QAAQ,SAC3M,IAAIX,EAAI,GAAGrlB,MAAMuB,KAAKwH,EAAEkgB,iBAAiB,gEAAgEnnB,QAAO,SAAUsG,GACxH,OAAO/C,EAAE+C,GAAG8e,GAAG,eAEjB,GAAI,IAAM7B,EAAElc,OAAQ,CAClB,IAAIhB,EAAIkd,EAAEvY,QAAQtE,EAAEnE,QACpB,KAAOmE,EAAE2jB,OAAShkB,EAAI,GAAKA,IAAK,KAAOK,EAAE2jB,OAAShkB,EAAIkd,EAAElc,OAAS,GAAKhB,IAAKA,EAAI,IAAMA,EAAI,GAAIkd,EAAEld,GAAG0gB,YAIvGzD,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,UAER,CACDpB,IAAK,UACLoB,IAAK,WACH,OAAO6lB,IAER,CACDjnB,IAAK,cACLoB,IAAK,WACH,OAAOimB,MAENpmB,EAzIH,GA2IN/C,EAAEkI,UAAUd,GAAG,+BAAgC,2BAA4BgiB,EAAEiB,wBAAwBjjB,GAAG,+BAAgC,iBAAkBgiB,EAAEiB,wBAAwBjjB,GAAG,wDAAyDgiB,EAAEO,aAAaviB,GAAG,6BAA8B,4BAA4B,SAAUrE,GACpUA,EAAEvC,iBAAkBuC,EAAEgnB,kBAAmBX,EAAEpG,iBAAiB9mB,KAAK8D,EAAE7D,MAAO,aACzEiL,GAAG,6BAA8B,kBAAkB,SAAUrE,GAC9DA,EAAEgnB,qBACA/pB,EAAEyI,GAAGmgB,GAAKQ,EAAEpG,iBAAkBhjB,EAAEyI,GAAGmgB,GAAGjb,YAAcyb,EAAGppB,EAAEyI,GAAGmgB,GAAGzF,WAAa,WAC9E,OAAOnjB,EAAEyI,GAAGmgB,GAAKC,EAAGO,EAAEpG,kBAExB,IAAIsH,EAAItqB,EAAEyI,GAAG8hB,MACXC,EAAI,CACFC,UAAU,EACVvG,UAAU,EACVV,OAAO,EACP6E,MAAM,GAERpW,EAAI,CACFwY,SAAU,mBACVvG,SAAU,UACVV,MAAO,UACP6E,KAAM,WAERqC,EAAI,WACF,SAAS3nB,EAAEA,EAAG/C,GACZ7D,KAAK+oB,QAAU/oB,KAAKgpB,WAAWnlB,GAAI7D,KAAK8lB,SAAWlf,EAAG5G,KAAKwuB,QAAU5nB,EAAE+W,cAAc,iBAAkB3d,KAAKyuB,UAAY,KAAMzuB,KAAK0uB,UAAW,EAAI1uB,KAAK2uB,oBAAqB,EAAI3uB,KAAK4uB,sBAAuB,EAAI5uB,KAAK2rB,kBAAmB,EAAI3rB,KAAK6uB,gBAAkB,EAErQ,IAAI7nB,EAAIJ,EAAE3F,UACV,OAAO+F,EAAEkgB,OAAS,SAAUtgB,GAC1B,OAAO5G,KAAK0uB,SAAW1uB,KAAKsf,OAAStf,KAAKksB,KAAKtlB,IAC9CI,EAAEklB,KAAO,SAAUtlB,GACpB,IAAII,EAAIhH,KACR,IAAKA,KAAK0uB,WAAa1uB,KAAK2rB,iBAAkB,CAC5C9nB,EAAE7D,KAAK8lB,UAAUW,SAAS,UAAYzmB,KAAK2rB,kBAAmB,GAC9D,IAAIpkB,EAAI1D,EAAE0iB,MAAM,gBAAiB,CAC/BuE,cAAelkB,IAEjB/C,EAAE7D,KAAK8lB,UAAUtB,QAAQjd,GAAIvH,KAAK0uB,UAAYnnB,EAAE2e,uBAAyBlmB,KAAK0uB,UAAW,EAAI1uB,KAAK8uB,kBAAmB9uB,KAAK+uB,gBAAiB/uB,KAAKgvB,gBAAiBhvB,KAAKivB,kBAAmBjvB,KAAKkvB,kBAAmBrrB,EAAE7D,KAAK8lB,UAAU7a,GAAG,yBAA0B,0BAA0B,SAAUrE,GACjS,OAAOI,EAAEsY,KAAK1Y,MACZ/C,EAAE7D,KAAKwuB,SAASvjB,GAAG,8BAA8B,WACnDpH,EAAEmD,EAAE8e,UAAUT,IAAI,4BAA4B,SAAUze,GACtD/C,EAAE+C,EAAE/D,QAAQ6iB,GAAG1e,EAAE8e,YAAc9e,EAAE4nB,sBAAuB,SAExD5uB,KAAKmvB,eAAc,WACrB,OAAOnoB,EAAEooB,aAAaxoB,SAGzBI,EAAEsY,KAAO,SAAU1Y,GACpB,IAAII,EAAIhH,KACR,GAAI4G,GAAKA,EAAEvC,iBAAkBrE,KAAK0uB,WAAa1uB,KAAK2rB,iBAAkB,CACpE,IAAIpkB,EAAI1D,EAAE0iB,MAAM,iBAChB,GAAI1iB,EAAE7D,KAAK8lB,UAAUtB,QAAQjd,GAAIvH,KAAK0uB,WAAannB,EAAE2e,qBAAsB,CACzElmB,KAAK0uB,UAAW,EAChB,IAAI9K,EAAI/f,EAAE7D,KAAK8lB,UAAUW,SAAS,QAClC,GAAI7C,IAAM5jB,KAAK2rB,kBAAmB,GAAK3rB,KAAKivB,kBAAmBjvB,KAAKkvB,kBAAmBrrB,EAAEkI,UAAUX,IAAI,oBAAqBvH,EAAE7D,KAAK8lB,UAAUU,YAAY,QAAS3iB,EAAE7D,KAAK8lB,UAAU1a,IAAI,0BAA2BvH,EAAE7D,KAAKwuB,SAASpjB,IAAI,8BAA+BwY,EAAG,CACtQ,IAAIC,EAAI3c,EAAEmd,iCAAiCrkB,KAAK8lB,UAChDjiB,EAAE7D,KAAK8lB,UAAUT,IAAIne,EAAE6c,gBAAgB,SAAUnd,GAC/C,OAAOI,EAAEqoB,WAAWzoB,MACnBwe,qBAAqBvB,QACnB7jB,KAAKqvB,gBAGfroB,EAAEof,QAAU,WACb,CAACzlB,OAAQX,KAAK8lB,SAAU9lB,KAAKwuB,SAAS7rB,SAAQ,SAAUiE,GACtD,OAAO/C,EAAE+C,GAAGwE,IAAI,gBACdvH,EAAEkI,UAAUX,IAAI,oBAAqBvH,EAAEwiB,WAAWrmB,KAAK8lB,SAAU,YAAa9lB,KAAK+oB,QAAU,KAAM/oB,KAAK8lB,SAAW,KAAM9lB,KAAKwuB,QAAU,KAAMxuB,KAAKyuB,UAAY,KAAMzuB,KAAK0uB,SAAW,KAAM1uB,KAAK2uB,mBAAqB,KAAM3uB,KAAK4uB,qBAAuB,KAAM5uB,KAAK2rB,iBAAmB,KAAM3rB,KAAK6uB,gBAAkB,MACrT7nB,EAAEsoB,aAAe,WAClBtvB,KAAKgvB,iBACJhoB,EAAEgiB,WAAa,SAAUpiB,GAC1B,OAAOA,EAAIid,EAAE,GAAIwK,EAAGznB,GAAIM,EAAEyd,gBAAgB,QAAS/d,EAAGkP,GAAIlP,GACzDI,EAAEuoB,2BAA6B,WAChC,IAAI3oB,EAAI5G,KACR,GAAI,WAAaA,KAAK+oB,QAAQuF,SAAU,CACtC,IAAItnB,EAAInD,EAAE0iB,MAAM,0BAChB,GAAI1iB,EAAE7D,KAAK8lB,UAAUtB,QAAQxd,GAAIA,EAAEhD,iBAAkB,OACrD,IAAIuD,EAAIvH,KAAK8lB,SAAS0J,aAAezjB,SAASqC,gBAAgBwE,aAC9DrL,IAAMvH,KAAK8lB,SAASrlB,MAAMoN,UAAY,UAAW7N,KAAK8lB,SAASsB,UAAUM,IAAI,gBAC7E,IAAI9D,EAAI1c,EAAEmd,iCAAiCrkB,KAAKwuB,SAChD3qB,EAAE7D,KAAK8lB,UAAU1a,IAAIlE,EAAE6c,gBAAiBlgB,EAAE7D,KAAK8lB,UAAUT,IAAIne,EAAE6c,gBAAgB,WAC7End,EAAEkf,SAASsB,UAAUR,OAAO,gBAAiBrf,GAAK1D,EAAE+C,EAAEkf,UAAUT,IAAIne,EAAE6c,gBAAgB,WACpFnd,EAAEkf,SAASrlB,MAAMoN,UAAY,MAC5BuX,qBAAqBxe,EAAEkf,SAAUlC,MACnCwB,qBAAqBxB,GAAI5jB,KAAK8lB,SAASuB,aACrCrnB,KAAKsf,QACXtY,EAAEooB,aAAe,SAAUxoB,GAC5B,IAAII,EAAIhH,KACNuH,EAAI1D,EAAE7D,KAAK8lB,UAAUW,SAAS,QAC9B7C,EAAI5jB,KAAKwuB,QAAUxuB,KAAKwuB,QAAQ7Q,cAAc,eAAiB,KACjE3d,KAAK8lB,SAASzY,YAAcrN,KAAK8lB,SAASzY,WAAWL,WAAa+B,KAAK0gB,cAAgB1jB,SAASyB,KAAKkiB,YAAY1vB,KAAK8lB,UAAW9lB,KAAK8lB,SAASrlB,MAAMqsB,QAAU,QAAS9sB,KAAK8lB,SAAShN,gBAAgB,eAAgB9Y,KAAK8lB,SAAS9F,aAAa,cAAc,GAAKhgB,KAAK8lB,SAAS9F,aAAa,OAAQ,UAAWnc,EAAE7D,KAAKwuB,SAAS/H,SAAS,4BAA8B7C,EAAIA,EAAE/Y,UAAY,EAAI7K,KAAK8lB,SAASjb,UAAY,EAAGtD,GAAKL,EAAEod,OAAOtkB,KAAK8lB,UAAWjiB,EAAE7D,KAAK8lB,UAAUmF,SAAS,QAASjrB,KAAK+oB,QAAQ1B,OAASrnB,KAAK2vB,gBACxf,IAAI9L,EAAIhgB,EAAE0iB,MAAM,iBAAkB,CAC9BuE,cAAelkB,IAEjBD,EAAI,WACFK,EAAE+hB,QAAQ1B,OAASrgB,EAAE8e,SAASuB,QAASrgB,EAAE2kB,kBAAmB,EAAI9nB,EAAEmD,EAAE8e,UAAUtB,QAAQX,IAE1F,GAAItc,EAAG,CACL,IAAIqd,EAAI1d,EAAEmd,iCAAiCrkB,KAAKwuB,SAChD3qB,EAAE7D,KAAKwuB,SAASnJ,IAAIne,EAAE6c,eAAgBpd,GAAGye,qBAAqBR,QACzDje,KACNK,EAAE2oB,cAAgB,WACnB,IAAI/oB,EAAI5G,KACR6D,EAAEkI,UAAUX,IAAI,oBAAoBH,GAAG,oBAAoB,SAAUjE,GACnE+E,WAAa/E,EAAEnE,QAAU+D,EAAEkf,WAAa9e,EAAEnE,QAAU,IAAMgB,EAAE+C,EAAEkf,UAAUhf,IAAIE,EAAEnE,QAAQ8E,QAAUf,EAAEkf,SAASuB,YAE5GrgB,EAAEioB,gBAAkB,WACrB,IAAIroB,EAAI5G,KACRA,KAAK0uB,SAAW7qB,EAAE7D,KAAK8lB,UAAU7a,GAAG,4BAA4B,SAAUpH,GACxE+C,EAAEmiB,QAAQhB,UAAY,KAAOlkB,EAAE8mB,OAAS9mB,EAAEQ,iBAAkBuC,EAAE0Y,QAAU1Y,EAAEmiB,QAAQhB,UAAY,KAAOlkB,EAAE8mB,OAAS/jB,EAAE2oB,gCAC/GvvB,KAAK0uB,UAAY7qB,EAAE7D,KAAK8lB,UAAU1a,IAAI,6BAC1CpE,EAAEkoB,gBAAkB,WACrB,IAAItoB,EAAI5G,KACRA,KAAK0uB,SAAW7qB,EAAElD,QAAQsK,GAAG,mBAAmB,SAAUpH,GACxD,OAAO+C,EAAE0oB,aAAazrB,MACnBA,EAAElD,QAAQyK,IAAI,oBAClBpE,EAAEqoB,WAAa,WAChB,IAAIzoB,EAAI5G,KACRA,KAAK8lB,SAASrlB,MAAMqsB,QAAU,OAAQ9sB,KAAK8lB,SAAS9F,aAAa,eAAe,GAAKhgB,KAAK8lB,SAAShN,gBAAgB,cAAe9Y,KAAK8lB,SAAShN,gBAAgB,QAAS9Y,KAAK2rB,kBAAmB,EAAI3rB,KAAKmvB,eAAc,WACtNtrB,EAAEkI,SAASyB,MAAMgZ,YAAY,cAAe5f,EAAEgpB,oBAAqBhpB,EAAEipB,kBAAmBhsB,EAAE+C,EAAEkf,UAAUtB,QAAQ,uBAE/Gxd,EAAE8oB,gBAAkB,WACrB9vB,KAAKyuB,YAAc5qB,EAAE7D,KAAKyuB,WAAW7H,SAAU5mB,KAAKyuB,UAAY,OAC/DznB,EAAEmoB,cAAgB,SAAUvoB,GAC7B,IAAII,EAAIhH,KACNuH,EAAI1D,EAAE7D,KAAK8lB,UAAUW,SAAS,QAAU,OAAS,GACnD,GAAIzmB,KAAK0uB,UAAY1uB,KAAK+oB,QAAQuF,SAAU,CAC1C,GAAItuB,KAAKyuB,UAAY1iB,SAASxM,cAAc,OAAQS,KAAKyuB,UAAUpuB,UAAY,iBAAkBkH,GAAKvH,KAAKyuB,UAAUrH,UAAUM,IAAIngB,GAAI1D,EAAE7D,KAAKyuB,WAAWsB,SAAShkB,SAASyB,MAAO3J,EAAE7D,KAAK8lB,UAAU7a,GAAG,0BAA0B,SAAUrE,GACxOI,EAAE4nB,qBAAuB5nB,EAAE4nB,sBAAuB,EAAKhoB,EAAE/D,SAAW+D,EAAE4lB,eAAiBxlB,EAAEuoB,gCACvFhoB,GAAKL,EAAEod,OAAOtkB,KAAKyuB,WAAY5qB,EAAE7D,KAAKyuB,WAAWxD,SAAS,SAAUrkB,EAAG,OAC3E,IAAKW,EAAG,YAAYX,IACpB,IAAIgd,EAAI1c,EAAEmd,iCAAiCrkB,KAAKyuB,WAChD5qB,EAAE7D,KAAKyuB,WAAWpJ,IAAIne,EAAE6c,eAAgBnd,GAAGwe,qBAAqBxB,QAC3D,IAAK5jB,KAAK0uB,UAAY1uB,KAAKyuB,UAAW,CAC3C5qB,EAAE7D,KAAKyuB,WAAWjI,YAAY,QAC9B,IAAI3C,EAAI,WACN7c,EAAE8oB,kBAAmBlpB,GAAKA,KAE5B,GAAI/C,EAAE7D,KAAK8lB,UAAUW,SAAS,QAAS,CACrC,IAAI9f,EAAIO,EAAEmd,iCAAiCrkB,KAAKyuB,WAChD5qB,EAAE7D,KAAKyuB,WAAWpJ,IAAIne,EAAE6c,eAAgBF,GAAGuB,qBAAqBze,QAC3Dkd,SACFjd,GAAKA,KACXI,EAAEgoB,cAAgB,WACnB,IAAIpoB,EAAI5G,KAAK8lB,SAAS0J,aAAezjB,SAASqC,gBAAgBwE,cAC7D5S,KAAK2uB,oBAAsB/nB,IAAM5G,KAAK8lB,SAASrlB,MAAMuvB,YAAchwB,KAAK6uB,gBAAkB,MAAO7uB,KAAK2uB,qBAAuB/nB,IAAM5G,KAAK8lB,SAASrlB,MAAMwvB,aAAejwB,KAAK6uB,gBAAkB,OAC7L7nB,EAAE4oB,kBAAoB,WACvB5vB,KAAK8lB,SAASrlB,MAAMuvB,YAAc,GAAIhwB,KAAK8lB,SAASrlB,MAAMwvB,aAAe,IACxEjpB,EAAE8nB,gBAAkB,WACrB,IAAIloB,EAAImF,SAASyB,KAAKgF,wBACtBxS,KAAK2uB,mBAAqBzd,KAAKmN,MAAMzX,EAAE4J,KAAO5J,EAAE6J,OAAS9P,OAAOqT,WAAYhU,KAAK6uB,gBAAkB7uB,KAAKkwB,sBACvGlpB,EAAE+nB,cAAgB,WACnB,IAAInoB,EAAI5G,KACR,GAAIA,KAAK2uB,mBAAoB,CAC3B,IAAI3nB,EAAI,GAAGxI,MAAMuB,KAAKgM,SAAS0b,iBAAiB,sDAC9ClgB,EAAI,GAAG/I,MAAMuB,KAAKgM,SAAS0b,iBAAiB,gBAC9C5jB,EAAEmD,GAAG8f,MAAK,SAAU9f,EAAGO,GACrB,IAAIqc,EAAIrc,EAAE9G,MAAMwvB,aACdpM,EAAIhgB,EAAE0D,GAAG0F,IAAI,iBACfpJ,EAAE0D,GAAG4P,KAAK,gBAAiByM,GAAG3W,IAAI,gBAAiB8D,WAAW8S,GAAKjd,EAAEioB,gBAAkB,SACrFhrB,EAAE0D,GAAGuf,MAAK,SAAU9f,EAAGO,GACzB,IAAIqc,EAAIrc,EAAE9G,MAAMwV,YACd4N,EAAIhgB,EAAE0D,GAAG0F,IAAI,gBACfpJ,EAAE0D,GAAG4P,KAAK,eAAgByM,GAAG3W,IAAI,eAAgB8D,WAAW8S,GAAKjd,EAAEioB,gBAAkB,SAEvF,IAAIjL,EAAI7X,SAASyB,KAAK/M,MAAMwvB,aAC1BpM,EAAIhgB,EAAEkI,SAASyB,MAAMP,IAAI,iBAC3BpJ,EAAEkI,SAASyB,MAAM2J,KAAK,gBAAiByM,GAAG3W,IAAI,gBAAiB8D,WAAW8S,GAAK7jB,KAAK6uB,gBAAkB,MAExGhrB,EAAEkI,SAASyB,MAAMyd,SAAS,eACzBjkB,EAAE6oB,gBAAkB,WACrB,IAAIjpB,EAAI,GAAGpI,MAAMuB,KAAKgM,SAAS0b,iBAAiB,sDAChD5jB,EAAE+C,GAAGkgB,MAAK,SAAUlgB,EAAGI,GACrB,IAAIO,EAAI1D,EAAEmD,GAAGmQ,KAAK,iBAClBtT,EAAEmD,GAAGqf,WAAW,iBAAkBrf,EAAEvG,MAAMwvB,aAAe1oB,GAAK,MAEhE,IAAIP,EAAI,GAAGxI,MAAMuB,KAAKgM,SAAS0b,iBAAiB,gBAChD5jB,EAAEmD,GAAG8f,MAAK,SAAUlgB,EAAGI,GACrB,IAAIO,EAAI1D,EAAEmD,GAAGmQ,KAAK,qBAClB,IAAsB5P,GAAK1D,EAAEmD,GAAGiG,IAAI,eAAgB1F,GAAG8e,WAAW,mBAEpE,IAAI9e,EAAI1D,EAAEkI,SAASyB,MAAM2J,KAAK,iBAC9BtT,EAAEkI,SAASyB,MAAM6Y,WAAW,iBAAkBta,SAASyB,KAAK/M,MAAMwvB,aAAe1oB,GAAK,IACrFP,EAAEkpB,mBAAqB,WACxB,IAAItpB,EAAImF,SAASxM,cAAc,OAC/BqH,EAAEvG,UAAY,0BAA2B0L,SAASyB,KAAKkiB,YAAY9oB,GACnE,IAAI/C,EAAI+C,EAAE4L,wBAAwBlB,MAAQ1K,EAAE+L,YAC5C,OAAO5G,SAASyB,KAAK0L,YAAYtS,GAAI/C,GACpC+C,EAAEigB,iBAAmB,SAAU7f,EAAGO,GACnC,OAAOvH,KAAK8mB,MAAK,WACf,IAAIlD,EAAI/f,EAAE7D,MAAMmX,KAAK,YACnBxQ,EAAIkd,EAAE,GAAIwK,EAAGxqB,EAAE7D,MAAMmX,OAAQ,iBAAmBnQ,GAAKA,EAAIA,EAAI,IAC/D,GAAI4c,IAAMA,EAAI,IAAIhd,EAAE5G,KAAM2G,GAAI9C,EAAE7D,MAAMmX,KAAK,WAAYyM,IAAK,iBAAmB5c,EAAG,CAChF,QAAI,IAAsB4c,EAAE5c,GAAI,MAAM,IAAIyK,UAAU,oBAAsBzK,EAAI,KAC9E4c,EAAE5c,GAAGO,QACAZ,EAAEulB,MAAQtI,EAAEsI,KAAK3kB,OAEzBqc,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,UAER,CACDpB,IAAK,UACLoB,IAAK,WACH,OAAOsnB,MAENznB,EAtLH,GAwLN/C,EAAEkI,UAAUd,GAAG,0BAA2B,yBAAyB,SAAUrE,GAC3E,IAAII,EACFO,EAAIvH,KACJ4jB,EAAI1c,EAAEid,uBAAuBnkB,MAC/B4jB,IAAM5c,EAAI+E,SAAS4R,cAAciG,IACjC,IAAIjd,EAAI9C,EAAEmD,GAAGmQ,KAAK,YAAc,SAAW0M,EAAE,GAAIhgB,EAAEmD,GAAGmQ,OAAQtT,EAAE7D,MAAMmX,QACtE,MAAQnX,KAAKwnB,SAAW,SAAWxnB,KAAKwnB,SAAW5gB,EAAEvC,iBACrD,IAAIugB,EAAI/gB,EAAEmD,GAAGqe,IAAI,iBAAiB,SAAUze,GAC1CA,EAAEsf,sBAAwBtB,EAAES,IAAI,mBAAmB,WACjDxhB,EAAE0D,GAAGme,GAAG,aAAene,EAAE8f,cAG7BkH,EAAE1H,iBAAiB9mB,KAAK8D,EAAEmD,GAAIL,EAAG3G,SAC/B6D,EAAEyI,GAAG8hB,MAAQG,EAAE1H,iBAAkBhjB,EAAEyI,GAAG8hB,MAAM5c,YAAc+c,EAAG1qB,EAAEyI,GAAG8hB,MAAMpH,WAAa,WACvF,OAAOnjB,EAAEyI,GAAG8hB,MAAQD,EAAGI,EAAE1H,kBAE3B,IAAIsJ,EAAI,CAAC,aAAc,OAAQ,OAAQ,WAAY,WAAY,SAAU,MAAO,cAiC9EC,EAAI,8DACJC,EAAI,qIACN,SAASC,EAAE1pB,EAAG/C,EAAGmD,GACf,GAAI,IAAMJ,EAAEe,OAAQ,OAAOf,EAC3B,GAAII,GAAK,mBAAqBA,EAAG,OAAOA,EAAEJ,GAC1C,IAAK,IAAIW,GAAI,IAAI5G,OAAO4vB,WAAYC,gBAAgB5pB,EAAG,aAAcgd,EAAIzc,OAAOiO,KAAKvR,GAAIggB,EAAI,GAAGrlB,MAAMuB,KAAKwH,EAAEiG,KAAKia,iBAAiB,MAAO9gB,EAAI,SAAUC,EAAGI,GACvJ,IAAIO,EAAIsc,EAAEjd,GACRD,EAAIY,EAAE6F,SAAS0Q,cACjB,IAAK,IAAM8F,EAAEtY,QAAQ/D,EAAE6F,SAAS0Q,eAAgB,OAAOvW,EAAE8F,WAAW6L,YAAY3R,GAAI,WACpF,IAAIL,EAAI,GAAG1I,MAAMuB,KAAKwH,EAAEsQ,YACtB+M,EAAI,GAAGxJ,OAAOvX,EAAE,MAAQ,GAAIA,EAAE8C,IAAM,IACtCO,EAAEvE,SAAQ,SAAUiE,IAClB,SAAWA,EAAG/C,GACZ,IAAImD,EAAIJ,EAAEwG,SAAS0Q,cACnB,IAAK,IAAMja,EAAEyH,QAAQtE,GAAI,OAAQ,IAAMmpB,EAAE7kB,QAAQtE,IAAMzG,QAAQqG,EAAE6pB,UAAUjZ,MAAM4Y,IAAMxpB,EAAE6pB,UAAUjZ,MAAM6Y,IACzG,IAAK,IAAI9oB,EAAI1D,EAAEvD,QAAO,SAAUsG,GAC5B,OAAOA,aAAaie,UAClBjB,EAAI,EAAGC,EAAItc,EAAEI,OAAQic,EAAIC,EAAGD,IAAK,GAAI5c,EAAEwQ,MAAMjQ,EAAEqc,IAAK,OAAO,EACjE,OAAO,GANT,CAOGhd,EAAGge,IAAMrd,EAAEuR,gBAAgBlS,EAAEwG,cAEjClG,EAAI,EAAG0d,EAAIf,EAAElc,OAAQT,EAAI0d,EAAG1d,IAAKP,EAAEO,GACxC,OAAOK,EAAEiG,KAAKkjB,UAEhB,IAAIC,EAAI,UACNC,EAAI/sB,EAAEyI,GAAGqkB,GACTE,EAAI,IAAIhM,OAAO,wBAAyB,KACxCiM,EAAI,CAAC,WAAY,YAAa,cAC9BC,EAAI,CACFC,UAAW,UACXC,SAAU,SACVC,MAAO,4BACP1M,QAAS,SACT2M,MAAO,kBACPphB,KAAM,UACNqhB,SAAU,mBACVpc,UAAW,oBACXd,OAAQ,2BACRmd,UAAW,2BACXC,kBAAmB,iBACnBzE,SAAU,mBACV0E,SAAU,UACVC,WAAY,kBACZC,UAAW,SACX1E,aAAc,iBAEhB2E,EAAI,CACFC,KAAM,OACNC,IAAK,MACLC,MAAO,QACPC,OAAQ,SACRC,KAAM,QAERC,EAAI,CACFhB,WAAW,EACXC,SAAU,uGACVzM,QAAS,cACT0M,MAAO,GACPC,MAAO,EACPphB,MAAM,EACNqhB,UAAU,EACVpc,UAAW,MACXd,OAAQ,EACRmd,WAAW,EACXC,kBAAmB,OACnBzE,SAAU,eACV0E,UAAU,EACVC,WAAY,KACZC,UApGE,CACF,IAAK,CAAC,QAAS,MAAO,KAAM,OAAQ,OAAQ,kBAC5CvqB,EAAG,CAAC,SAAU,OAAQ,QAAS,OAC/BmO,KAAM,GACNE,EAAG,GACH0c,GAAI,GACJC,IAAK,GACLC,KAAM,GACNC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJrrB,EAAG,GACHsrB,IAAK,CAAC,MAAO,SAAU,MAAO,QAAS,QAAS,UAChDC,GAAI,GACJC,GAAI,GACJlL,EAAG,GACHmL,IAAK,GACLnP,EAAG,GACHoP,MAAO,GACPC,KAAM,GACNC,IAAK,GACLC,IAAK,GACLC,OAAQ,GACR/rB,EAAG,GACHgsB,GAAI,IAuEJvG,aAAc,MAEhBwG,EAAI,CACFC,KAAM,kBACNC,OAAQ,oBACRC,KAAM,kBACNC,MAAO,mBACPC,SAAU,sBACVC,MAAO,mBACPC,QAAS,qBACTC,SAAU,sBACVC,WAAY,wBACZC,WAAY,yBAEdC,EAAI,WACF,SAASttB,EAAEA,EAAG/C,GACZ,QAAI,IAAsBmD,EAAG,MAAM,IAAIyK,UAAU,mEACjDzR,KAAKm0B,YAAa,EAAIn0B,KAAKo0B,SAAW,EAAGp0B,KAAKq0B,YAAc,GAAIr0B,KAAKs0B,eAAiB,GAAIt0B,KAAKktB,QAAU,KAAMltB,KAAK8M,QAAUlG,EAAG5G,KAAKu0B,OAASv0B,KAAKgpB,WAAWnlB,GAAI7D,KAAKw0B,IAAM,KAAMx0B,KAAKy0B,gBAE3L,IAAIltB,EAAIX,EAAE3F,UACV,OAAOsG,EAAEmtB,OAAS,WAChB10B,KAAKm0B,YAAa,GACjB5sB,EAAEotB,QAAU,WACb30B,KAAKm0B,YAAa,GACjB5sB,EAAEqtB,cAAgB,WACnB50B,KAAKm0B,YAAcn0B,KAAKm0B,YACvB5sB,EAAE2f,OAAS,SAAUtgB,GACtB,GAAI5G,KAAKm0B,WAAY,GAAIvtB,EAAG,CAC1B,IAAII,EAAIhH,KAAK0jB,YAAYmR,SACvBttB,EAAI1D,EAAE+C,EAAE4lB,eAAerV,KAAKnQ,GAC9BO,IAAMA,EAAI,IAAIvH,KAAK0jB,YAAY9c,EAAE4lB,cAAexsB,KAAK80B,sBAAuBjxB,EAAE+C,EAAE4lB,eAAerV,KAAKnQ,EAAGO,IAAKA,EAAE+sB,eAAeS,OAASxtB,EAAE+sB,eAAeS,MAAOxtB,EAAEytB,uBAAyBztB,EAAE0tB,OAAO,KAAM1tB,GAAKA,EAAE2tB,OAAO,KAAM3tB,OACvN,CACL,GAAI1D,EAAE7D,KAAKm1B,iBAAiB1O,SAAS,QAAS,YAAYzmB,KAAKk1B,OAAO,KAAMl1B,MAC5EA,KAAKi1B,OAAO,KAAMj1B,QAEnBuH,EAAE6e,QAAU,WACbsE,aAAa1qB,KAAKo0B,UAAWvwB,EAAEwiB,WAAWrmB,KAAK8M,QAAS9M,KAAK0jB,YAAYmR,UAAWhxB,EAAE7D,KAAK8M,SAAS1B,IAAIpL,KAAK0jB,YAAY0R,WAAYvxB,EAAE7D,KAAK8M,SAASwZ,QAAQ,UAAUlb,IAAI,gBAAiBpL,KAAKq1B,mBAAoBr1B,KAAKw0B,KAAO3wB,EAAE7D,KAAKw0B,KAAK5N,SAAU5mB,KAAKm0B,WAAa,KAAMn0B,KAAKo0B,SAAW,KAAMp0B,KAAKq0B,YAAc,KAAMr0B,KAAKs0B,eAAiB,KAAMt0B,KAAKktB,SAAWltB,KAAKktB,QAAQrU,UAAW7Y,KAAKktB,QAAU,KAAMltB,KAAK8M,QAAU,KAAM9M,KAAKu0B,OAAS,KAAMv0B,KAAKw0B,IAAM,MAC1cjtB,EAAE2kB,KAAO,WACV,IAAItlB,EAAI5G,KACR,GAAI,SAAW6D,EAAE7D,KAAK8M,SAASG,IAAI,WAAY,MAAM,IAAI6X,MAAM,uCAC/D,IAAIvd,EAAI1D,EAAE0iB,MAAMvmB,KAAK0jB,YAAY6C,MAAMmN,MACvC,GAAI1zB,KAAKs1B,iBAAmBt1B,KAAKm0B,WAAY,CAC3CtwB,EAAE7D,KAAK8M,SAAS0X,QAAQjd,GACxB,IAAIqc,EAAI1c,EAAE6d,eAAe/kB,KAAK8M,SAC5B+W,EAAIhgB,EAAE2L,SAAS,OAASoU,EAAIA,EAAI5jB,KAAK8M,QAAQW,cAAcW,gBAAiBpO,KAAK8M,SACnF,GAAIvF,EAAE2e,uBAAyBrC,EAAG,OAClC,IAAIld,EAAI3G,KAAKm1B,gBACXvQ,EAAI1d,EAAE8c,OAAOhkB,KAAK0jB,YAAY6R,MAChC5uB,EAAEqZ,aAAa,KAAM4E,GAAI5kB,KAAK8M,QAAQkT,aAAa,mBAAoB4E,GAAI5kB,KAAKw1B,aAAcx1B,KAAKu0B,OAAOvD,WAAantB,EAAE8C,GAAGskB,SAAS,QACrI,IAAIrF,EAAI,mBAAqB5lB,KAAKu0B,OAAOvf,UAAYhV,KAAKu0B,OAAOvf,UAAUjV,KAAKC,KAAM2G,EAAG3G,KAAK8M,SAAW9M,KAAKu0B,OAAOvf,UACnH6Q,EAAI7lB,KAAKy1B,eAAe7P,GAC1B5lB,KAAK01B,mBAAmB7P,GACxB,IAAIve,EAAItH,KAAK21B,gBACb9xB,EAAE8C,GAAGwQ,KAAKnX,KAAK0jB,YAAYmR,SAAU70B,MAAO6D,EAAE2L,SAASxP,KAAK8M,QAAQW,cAAcW,gBAAiBpO,KAAKw0B,MAAQ3wB,EAAE8C,GAAGopB,SAASzoB,GAAIzD,EAAE7D,KAAK8M,SAAS0X,QAAQxkB,KAAK0jB,YAAY6C,MAAMqN,UAAW5zB,KAAKktB,QAAU,IAAIlmB,EAAEhH,KAAK8M,QAASnG,EAAG3G,KAAK0tB,iBAAiB7H,IAAKhiB,EAAE8C,GAAGskB,SAAS,QAAS,iBAAkBlf,SAASqC,iBAAmBvK,EAAEkI,SAASyB,MAAM0F,WAAWjI,GAAG,YAAa,KAAMpH,EAAE8pB,MACtX,IAAI1G,EAAI,WACNrgB,EAAE2tB,OAAOvD,WAAapqB,EAAEgvB,iBACxB,IAAI5uB,EAAIJ,EAAEytB,YACVztB,EAAEytB,YAAc,KAAMxwB,EAAE+C,EAAEkG,SAAS0X,QAAQ5d,EAAE8c,YAAY6C,MAAMoN,OAAQ,QAAU3sB,GAAKJ,EAAEsuB,OAAO,KAAMtuB,IAEvG,GAAI/C,EAAE7D,KAAKw0B,KAAK/N,SAAS,QAAS,CAChC,IAAIkB,EAAIzgB,EAAEmd,iCAAiCrkB,KAAKw0B,KAChD3wB,EAAE7D,KAAKw0B,KAAKnP,IAAIne,EAAE6c,eAAgBkD,GAAG7B,qBAAqBuC,QACrDV,MAER1f,EAAE+X,KAAO,SAAU1Y,GACpB,IAAII,EAAIhH,KACNuH,EAAIvH,KAAKm1B,gBACTvR,EAAI/f,EAAE0iB,MAAMvmB,KAAK0jB,YAAY6C,MAAMiN,MACnC3P,EAAI,WACF,SAAW7c,EAAEqtB,aAAe9sB,EAAE8F,YAAc9F,EAAE8F,WAAW6L,YAAY3R,GAAIP,EAAE6uB,iBAAkB7uB,EAAE8F,QAAQgM,gBAAgB,oBAAqBjV,EAAEmD,EAAE8F,SAAS0X,QAAQxd,EAAE0c,YAAY6C,MAAMkN,QAAS,OAASzsB,EAAEkmB,SAAWlmB,EAAEkmB,QAAQrU,UAAWjS,GAAKA,KAElP,GAAI/C,EAAE7D,KAAK8M,SAAS0X,QAAQZ,IAAKA,EAAEsC,qBAAsB,CACvD,GAAIriB,EAAE0D,GAAGif,YAAY,QAAS,iBAAkBza,SAASqC,iBAAmBvK,EAAEkI,SAASyB,MAAM0F,WAAW9H,IAAI,YAAa,KAAMvH,EAAE8pB,MAAO3tB,KAAKs0B,eAAeS,OAAQ,EAAI/0B,KAAKs0B,eAAejN,OAAQ,EAAIrnB,KAAKs0B,eAAewB,OAAQ,EAAIjyB,EAAE7D,KAAKw0B,KAAK/N,SAAS,QAAS,CACpQ,IAAI9f,EAAIO,EAAEmd,iCAAiC9c,GAC3C1D,EAAE0D,GAAG8d,IAAIne,EAAE6c,eAAgBF,GAAGuB,qBAAqBze,QAC9Ckd,IACP7jB,KAAKq0B,YAAc,KAEpB9sB,EAAEmQ,OAAS,WACZ,OAAS1X,KAAKktB,SAAWltB,KAAKktB,QAAQjT,kBACrC1S,EAAE+tB,cAAgB,WACnB,OAAO/0B,QAAQP,KAAK+1B,aACnBxuB,EAAEmuB,mBAAqB,SAAU9uB,GAClC/C,EAAE7D,KAAKm1B,iBAAiBlK,SAAS,cAAgBrkB,IAChDW,EAAE4tB,cAAgB,WACnB,OAAOn1B,KAAKw0B,IAAMx0B,KAAKw0B,KAAO3wB,EAAE7D,KAAKu0B,OAAOtD,UAAU,GAAIjxB,KAAKw0B,KAC9DjtB,EAAEiuB,WAAa,WAChB,IAAI5uB,EAAI5G,KAAKm1B,gBACbn1B,KAAKg2B,kBAAkBnyB,EAAE+C,EAAE6gB,iBAAiB,mBAAoBznB,KAAK+1B,YAAalyB,EAAE+C,GAAG4f,YAAY,cAClGjf,EAAEyuB,kBAAoB,SAAUpvB,EAAGI,GACpC,iBAAmBA,IAAMA,EAAEgG,WAAahG,EAAEoZ,OAASpgB,KAAKu0B,OAAOxkB,MAAQ/P,KAAKu0B,OAAOhD,WAAavqB,EAAIspB,EAAEtpB,EAAGhH,KAAKu0B,OAAO9C,UAAWzxB,KAAKu0B,OAAO/C,aAAc5qB,EAAEmJ,KAAK/I,IAAMJ,EAAEqvB,KAAKjvB,GAAKhH,KAAKu0B,OAAOxkB,KAAOlM,EAAEmD,GAAGmM,SAASuS,GAAG9e,IAAMA,EAAEsvB,QAAQC,OAAOnvB,GAAKJ,EAAEqvB,KAAKpyB,EAAEmD,GAAGivB,SAC9P1uB,EAAEwuB,SAAW,WACd,IAAInvB,EAAI5G,KAAK8M,QAAQsX,aAAa,uBAClC,OAAOxd,IAAMA,EAAI,mBAAqB5G,KAAKu0B,OAAOrD,MAAQlxB,KAAKu0B,OAAOrD,MAAMnxB,KAAKC,KAAK8M,SAAW9M,KAAKu0B,OAAOrD,OAAQtqB,GACpHW,EAAEmmB,iBAAmB,SAAU9mB,GAChC,IAAI/C,EAAI7D,KACR,OAAO6jB,EAAE,GAAI,CACX7O,UAAWpO,EACXsQ,UAAW,CACThD,OAAQlU,KAAKguB,aACbhW,KAAM,CACJwG,SAAUxe,KAAKu0B,OAAOjD,mBAExB9T,MAAO,CACL1Q,QAAS,UAEX8P,gBAAiB,CACflI,kBAAmB1U,KAAKu0B,OAAO1H,WAGnCzU,SAAU,SAAUxR,GAClBA,EAAEqR,oBAAsBrR,EAAEoO,WAAanR,EAAEuyB,6BAA6BxvB,IAExEuR,SAAU,SAAUvR,GAClB,OAAO/C,EAAEuyB,6BAA6BxvB,KAEvC5G,KAAKu0B,OAAOxH,eACdxlB,EAAEymB,WAAa,WAChB,IAAIpnB,EAAI5G,KACN6D,EAAI,GACN,MAAO,mBAAqB7D,KAAKu0B,OAAOrgB,OAASrQ,EAAEyI,GAAK,SAAUzI,GAChE,OAAOA,EAAE0O,QAAUsR,EAAE,GAAIhgB,EAAE0O,QAAS3L,EAAE2tB,OAAOrgB,OAAOrQ,EAAE0O,QAAS3L,EAAEkG,UAAY,IAAKjJ,GAChFA,EAAEqQ,OAASlU,KAAKu0B,OAAOrgB,OAAQrQ,GAClC0D,EAAEouB,cAAgB,WACnB,OAAO,IAAO31B,KAAKu0B,OAAOlD,UAAYtlB,SAASyB,KAAOtG,EAAEwd,UAAU1kB,KAAKu0B,OAAOlD,WAAaxtB,EAAE7D,KAAKu0B,OAAOlD,WAAaxtB,EAAEkI,UAAU8K,KAAK7W,KAAKu0B,OAAOlD,YAClJ9pB,EAAEkuB,eAAiB,SAAU7uB,GAC9B,OAAO8qB,EAAE9qB,EAAE+R,gBACVpR,EAAEktB,cAAgB,WACnB,IAAI7tB,EAAI5G,KACRA,KAAKu0B,OAAO/P,QAAQpc,MAAM,KAAKzF,SAAQ,SAAUqE,GAC/C,GAAI,UAAYA,EAAGnD,EAAE+C,EAAEkG,SAAS7B,GAAGrE,EAAE8c,YAAY6C,MAAMsN,MAAOjtB,EAAE2tB,OAAOnD,UAAU,SAAUvtB,GACzF,OAAO+C,EAAEsgB,OAAOrjB,WACV,GAAI,WAAamD,EAAG,CAC1B,IAAIO,EAAI,UAAYP,EAAIJ,EAAE8c,YAAY6C,MAAMyN,WAAaptB,EAAE8c,YAAY6C,MAAMuN,QAC3ElQ,EAAI,UAAY5c,EAAIJ,EAAE8c,YAAY6C,MAAM0N,WAAartB,EAAE8c,YAAY6C,MAAMwN,SAC3ElwB,EAAE+C,EAAEkG,SAAS7B,GAAG1D,EAAGX,EAAE2tB,OAAOnD,UAAU,SAAUvtB,GAC9C,OAAO+C,EAAEquB,OAAOpxB,MACfoH,GAAG2Y,EAAGhd,EAAE2tB,OAAOnD,UAAU,SAAUvtB,GACpC,OAAO+C,EAAEsuB,OAAOrxB,UAGlB7D,KAAKq1B,kBAAoB,WAC3BzuB,EAAEkG,SAAWlG,EAAE0Y,QACdzb,EAAE7D,KAAK8M,SAASwZ,QAAQ,UAAUrb,GAAG,gBAAiBjL,KAAKq1B,mBAAoBr1B,KAAKu0B,OAAOnD,SAAWpxB,KAAKu0B,OAAS1Q,EAAE,GAAI7jB,KAAKu0B,OAAQ,CACxI/P,QAAS,SACT4M,SAAU,KACPpxB,KAAKq2B,aACT9uB,EAAE8uB,UAAY,WACf,IAAIzvB,SAAW5G,KAAK8M,QAAQsX,aAAa,wBACxCpkB,KAAK8M,QAAQsX,aAAa,UAAY,WAAaxd,KAAO5G,KAAK8M,QAAQkT,aAAa,sBAAuBhgB,KAAK8M,QAAQsX,aAAa,UAAY,IAAKpkB,KAAK8M,QAAQkT,aAAa,QAAS,MACzLzY,EAAE0tB,OAAS,SAAUruB,EAAGI,GACzB,IAAIO,EAAIvH,KAAK0jB,YAAYmR,UACxB7tB,EAAIA,GAAKnD,EAAE+C,EAAE4lB,eAAerV,KAAK5P,MAAQP,EAAI,IAAIhH,KAAK0jB,YAAY9c,EAAE4lB,cAAexsB,KAAK80B,sBAAuBjxB,EAAE+C,EAAE4lB,eAAerV,KAAK5P,EAAGP,IAAKJ,IAAMI,EAAEstB,eAAe,YAAc1tB,EAAEsE,KAAO,QAAU,UAAW,GAAKrH,EAAEmD,EAAEmuB,iBAAiB1O,SAAS,SAAW,SAAWzf,EAAEqtB,YAAcrtB,EAAEqtB,YAAc,QAAU3J,aAAa1jB,EAAEotB,UAAWptB,EAAEqtB,YAAc,OAAQrtB,EAAEutB,OAAOpD,OAASnqB,EAAEutB,OAAOpD,MAAMjF,KAAOllB,EAAEotB,SAAWnqB,YAAW,WACta,SAAWjD,EAAEqtB,aAAertB,EAAEklB,SAC7BllB,EAAEutB,OAAOpD,MAAMjF,MAAQllB,EAAEklB,SAC3B3kB,EAAE2tB,OAAS,SAAUtuB,EAAGI,GACzB,IAAIO,EAAIvH,KAAK0jB,YAAYmR,UACxB7tB,EAAIA,GAAKnD,EAAE+C,EAAE4lB,eAAerV,KAAK5P,MAAQP,EAAI,IAAIhH,KAAK0jB,YAAY9c,EAAE4lB,cAAexsB,KAAK80B,sBAAuBjxB,EAAE+C,EAAE4lB,eAAerV,KAAK5P,EAAGP,IAAKJ,IAAMI,EAAEstB,eAAe,aAAe1tB,EAAEsE,KAAO,QAAU,UAAW,GAAKlE,EAAEguB,yBAA2BtK,aAAa1jB,EAAEotB,UAAWptB,EAAEqtB,YAAc,MAAOrtB,EAAEutB,OAAOpD,OAASnqB,EAAEutB,OAAOpD,MAAM7R,KAAOtY,EAAEotB,SAAWnqB,YAAW,WACrW,QAAUjD,EAAEqtB,aAAertB,EAAEsY,SAC5BtY,EAAEutB,OAAOpD,MAAM7R,MAAQtY,EAAEsY,SAC3B/X,EAAEytB,qBAAuB,WAC1B,IAAK,IAAIpuB,KAAK5G,KAAKs0B,eAAgB,GAAIt0B,KAAKs0B,eAAe1tB,GAAI,OAAO,EACtE,OAAO,GACNW,EAAEyhB,WAAa,SAAUpiB,GAC1B,IAAII,EAAInD,EAAE7D,KAAK8M,SAASqK,OACxB,OAAOhQ,OAAOiO,KAAKpO,GAAGrE,SAAQ,SAAUiE,IACrC,IAAMkqB,EAAExlB,QAAQ1E,WAAaI,EAAEJ,MAC9B,iBAAoBA,EAAIid,EAAE,GAAI7jB,KAAK0jB,YAAYmK,QAAS7mB,EAAG,iBAAmBJ,GAAKA,EAAIA,EAAI,KAAKuqB,QAAUvqB,EAAEuqB,MAAQ,CACtHjF,KAAMtlB,EAAEuqB,MACR7R,KAAM1Y,EAAEuqB,QACN,iBAAmBvqB,EAAEsqB,QAAUtqB,EAAEsqB,MAAQtqB,EAAEsqB,MAAMtkB,YAAa,iBAAmBhG,EAAE0vB,UAAY1vB,EAAE0vB,QAAU1vB,EAAE0vB,QAAQ1pB,YAAa1F,EAAEyd,gBAAgBgM,EAAG/pB,EAAG5G,KAAK0jB,YAAYoK,aAAclnB,EAAE2qB,WAAa3qB,EAAEqqB,SAAWX,EAAE1pB,EAAEqqB,SAAUrqB,EAAE6qB,UAAW7qB,EAAE4qB,aAAc5qB,GACnQW,EAAEutB,mBAAqB,WACxB,IAAIluB,EAAI,GACR,GAAI5G,KAAKu0B,OAAQ,IAAK,IAAI1wB,KAAK7D,KAAKu0B,OAAQv0B,KAAK0jB,YAAYmK,QAAQhqB,KAAO7D,KAAKu0B,OAAO1wB,KAAO+C,EAAE/C,GAAK7D,KAAKu0B,OAAO1wB,IAClH,OAAO+C,GACNW,EAAEsuB,eAAiB,WACpB,IAAIjvB,EAAI/C,EAAE7D,KAAKm1B,iBACbnuB,EAAIJ,EAAEylB,KAAK,SAAS7U,MAAMqZ,GAC5B,OAAS7pB,GAAKA,EAAEW,QAAUf,EAAE4f,YAAYxf,EAAExG,KAAK,MAC9C+G,EAAE6uB,6BAA+B,SAAUxvB,GAC5C5G,KAAKw0B,IAAM5tB,EAAE3E,SAASsS,OAAQvU,KAAK61B,iBAAkB71B,KAAK01B,mBAAmB11B,KAAKy1B,eAAe7uB,EAAEoO,aAClGzN,EAAEquB,eAAiB,WACpB,IAAIhvB,EAAI5G,KAAKm1B,gBACXnuB,EAAIhH,KAAKu0B,OAAOvD,UAClB,OAASpqB,EAAEwd,aAAa,iBAAmBvgB,EAAE+C,GAAG4f,YAAY,QAASxmB,KAAKu0B,OAAOvD,WAAY,EAAIhxB,KAAKsf,OAAQtf,KAAKksB,OAAQlsB,KAAKu0B,OAAOvD,UAAYhqB,IAClJJ,EAAEigB,iBAAmB,SAAU7f,GAChC,OAAOhH,KAAK8mB,MAAK,WACf,IAAIvf,EAAI1D,EAAE7D,MAAMmX,KAAK,cACnByM,EAAI,iBAAmB5c,GAAKA,EAC9B,IAAKO,IAAM,eAAemC,KAAK1C,MAAQO,IAAMA,EAAI,IAAIX,EAAE5G,KAAM4jB,GAAI/f,EAAE7D,MAAMmX,KAAK,aAAc5P,IAAK,iBAAmBP,GAAI,CACtH,QAAI,IAAsBO,EAAEP,GAAI,MAAM,IAAIyK,UAAU,oBAAsBzK,EAAI,KAC9EO,EAAEP,UAGL4c,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,UAER,CACDpB,IAAK,UACLoB,IAAK,WACH,OAAOirB,IAER,CACDrsB,IAAK,OACLoB,IAAK,WACH,OAAO4pB,IAER,CACDhrB,IAAK,WACLoB,IAAK,WACH,MAAO,eAER,CACDpB,IAAK,QACLoB,IAAK,WACH,OAAOwsB,IAER,CACD5tB,IAAK,YACLoB,IAAK,WACH,MAAO,gBAER,CACDpB,IAAK,cACLoB,IAAK,WACH,OAAOgqB,MAENnqB,EAvNH,GAyNN/C,EAAEyI,GAAGqkB,GAAKuD,EAAErN,iBAAkBhjB,EAAEyI,GAAGqkB,GAAGnf,YAAc0iB,EAAGrwB,EAAEyI,GAAGqkB,GAAG3J,WAAa,WAC1E,OAAOnjB,EAAEyI,GAAGqkB,GAAKC,EAAGsD,EAAErN,kBAExB,IAAI0P,EAAI,UACNC,EAAI3yB,EAAEyI,GAAGiqB,GACTE,EAAI,IAAI5R,OAAO,wBAAyB,KACxC6R,EAAI7S,EAAE,GAAIqQ,EAAErG,QAAS,CACnB7Y,UAAW,QACXwP,QAAS,QACT8R,QAAS,GACTrF,SAAU,wIAEZ0F,EAAI9S,EAAE,GAAIqQ,EAAEpG,YAAa,CACvBwI,QAAS,8BAEXM,EAAK,CACHpD,KAAM,kBACNC,OAAQ,oBACRC,KAAM,kBACNC,MAAO,mBACPC,SAAU,sBACVC,MAAO,mBACPC,QAAS,qBACTC,SAAU,sBACVC,WAAY,wBACZC,WAAY,yBAEd4C,EAAK,SAAUjwB,GACb,IAAII,EAAGO,EACP,SAASsc,IACP,OAAOjd,EAAEkd,MAAM9jB,KAAM6P,YAAc7P,KAErCuH,EAAIX,GAAII,EAAI6c,GAAG5iB,UAAYkG,OAAO6D,OAAOzD,EAAEtG,WAAY+F,EAAE/F,UAAUyiB,YAAc1c,EAAGA,EAAEC,UAAYM,EAClG,IAAIZ,EAAIkd,EAAE5iB,UACV,OAAO0F,EAAE2uB,cAAgB,WACvB,OAAOt1B,KAAK+1B,YAAc/1B,KAAK82B,eAC9BnwB,EAAE+uB,mBAAqB,SAAU9uB,GAClC/C,EAAE7D,KAAKm1B,iBAAiBlK,SAAS,cAAgBrkB,IAChDD,EAAEwuB,cAAgB,WACnB,OAAOn1B,KAAKw0B,IAAMx0B,KAAKw0B,KAAO3wB,EAAE7D,KAAKu0B,OAAOtD,UAAU,GAAIjxB,KAAKw0B,KAC9D7tB,EAAE6uB,WAAa,WAChB,IAAI5uB,EAAI/C,EAAE7D,KAAKm1B,iBACfn1B,KAAKg2B,kBAAkBpvB,EAAEiQ,KAAK,mBAAoB7W,KAAK+1B,YACvD,IAAI/uB,EAAIhH,KAAK82B,cACb,mBAAqB9vB,IAAMA,EAAIA,EAAEjH,KAAKC,KAAK8M,UAAW9M,KAAKg2B,kBAAkBpvB,EAAEiQ,KAAK,iBAAkB7P,GAAIJ,EAAE4f,YAAY,cACvH7f,EAAEmwB,YAAc,WACjB,OAAO92B,KAAK8M,QAAQsX,aAAa,iBAAmBpkB,KAAKu0B,OAAO+B,SAC/D3vB,EAAEkvB,eAAiB,WACpB,IAAIjvB,EAAI/C,EAAE7D,KAAKm1B,iBACbnuB,EAAIJ,EAAEylB,KAAK,SAAS7U,MAAMif,GAC5B,OAASzvB,GAAKA,EAAEW,OAAS,GAAKf,EAAE4f,YAAYxf,EAAExG,KAAK,MAClDqjB,EAAEgD,iBAAmB,SAAUjgB,GAChC,OAAO5G,KAAK8mB,MAAK,WACf,IAAI9f,EAAInD,EAAE7D,MAAMmX,KAAK,cACnB5P,EAAI,iBAAmBX,EAAIA,EAAI,KACjC,IAAKI,IAAM,eAAe0C,KAAK9C,MAAQI,IAAMA,EAAI,IAAI6c,EAAE7jB,KAAMuH,GAAI1D,EAAE7D,MAAMmX,KAAK,aAAcnQ,IAAK,iBAAmBJ,GAAI,CACtH,QAAI,IAAsBI,EAAEJ,GAAI,MAAM,IAAI6K,UAAU,oBAAsB7K,EAAI,KAC9EI,EAAEJ,UAGLgd,EAAEC,EAAG,KAAM,CAAC,CACble,IAAK,UACLoB,IAAK,WACH,MAAO,UAER,CACDpB,IAAK,UACLoB,IAAK,WACH,OAAO2vB,IAER,CACD/wB,IAAK,OACLoB,IAAK,WACH,OAAOwvB,IAER,CACD5wB,IAAK,WACLoB,IAAK,WACH,MAAO,eAER,CACDpB,IAAK,QACLoB,IAAK,WACH,OAAO6vB,IAER,CACDjxB,IAAK,YACLoB,IAAK,WACH,MAAO,gBAER,CACDpB,IAAK,cACLoB,IAAK,WACH,OAAO4vB,MAEN9S,EApEF,CAqEHqQ,GACJrwB,EAAEyI,GAAGiqB,GAAKM,EAAGhQ,iBAAkBhjB,EAAEyI,GAAGiqB,GAAG/kB,YAAcqlB,EAAIhzB,EAAEyI,GAAGiqB,GAAGvP,WAAa,WAC5E,OAAOnjB,EAAEyI,GAAGiqB,GAAKC,EAAGK,EAAGhQ,kBAEzB,IAAIkQ,EAAK,YACPC,GAAKnzB,EAAEyI,GAAGyqB,GACVE,GAAK,CACH/iB,OAAQ,GACRgjB,OAAQ,OACRr0B,OAAQ,IAEVs0B,GAAK,CACHjjB,OAAQ,SACRgjB,OAAQ,SACRr0B,OAAQ,oBAEVu0B,GAAK,WACH,SAASxwB,EAAEA,EAAGI,GACZ,IAAIO,EAAIvH,KACRA,KAAK8lB,SAAWlf,EAAG5G,KAAKq3B,eAAiB,SAAWzwB,EAAE4gB,QAAU7mB,OAASiG,EAAG5G,KAAK+oB,QAAU/oB,KAAKgpB,WAAWhiB,GAAIhH,KAAK8rB,UAAY9rB,KAAK+oB,QAAQlmB,OAAS,cAAgB7C,KAAK+oB,QAAQlmB,OAAS,qBAAuB7C,KAAK+oB,QAAQlmB,OAAS,kBAAmB7C,KAAKs3B,SAAW,GAAIt3B,KAAKu3B,SAAW,GAAIv3B,KAAKw3B,cAAgB,KAAMx3B,KAAKy3B,cAAgB,EAAG5zB,EAAE7D,KAAKq3B,gBAAgBpsB,GAAG,uBAAuB,SAAUrE,GAChZ,OAAOW,EAAEmwB,SAAS9wB,MAChB5G,KAAK23B,UAAW33B,KAAK03B,WAE3B,IAAI1wB,EAAIJ,EAAE3F,UACV,OAAO+F,EAAE2wB,QAAU,WACjB,IAAI/wB,EAAI5G,KACNgH,EAAIhH,KAAKq3B,iBAAmBr3B,KAAKq3B,eAAe12B,OAAS,SAAW,WACpE4G,EAAI,SAAWvH,KAAK+oB,QAAQmO,OAASlwB,EAAIhH,KAAK+oB,QAAQmO,OACtDtT,EAAI,aAAerc,EAAIvH,KAAK43B,gBAAkB,EAChD53B,KAAKs3B,SAAW,GAAIt3B,KAAKu3B,SAAW,GAAIv3B,KAAKy3B,cAAgBz3B,KAAK63B,mBAAoB,GAAGr5B,MAAMuB,KAAKgM,SAAS0b,iBAAiBznB,KAAK8rB,YAAYnjB,KAAI,SAAU/B,GAC3J,IAAII,EACF6c,EAAI3c,EAAEid,uBAAuBvd,GAC/B,GAAIid,IAAM7c,EAAI+E,SAAS4R,cAAckG,IAAK7c,EAAG,CAC3C,IAAIL,EAAIK,EAAEwL,wBACV,GAAI7L,EAAE2K,OAAS3K,EAAE0K,OAAQ,MAAO,CAACxN,EAAEmD,GAAGO,KAAK+I,IAAMsT,EAAGC,GAEtD,OAAO,QACNvjB,QAAO,SAAUsG,GAClB,OAAOA,KACN0O,MAAK,SAAU1O,EAAG/C,GACnB,OAAO+C,EAAE,GAAK/C,EAAE,MACflB,SAAQ,SAAUkB,GACnB+C,EAAE0wB,SAASp6B,KAAK2G,EAAE,IAAK+C,EAAE2wB,SAASr6B,KAAK2G,EAAE,QAE1CmD,EAAEof,QAAU,WACbviB,EAAEwiB,WAAWrmB,KAAK8lB,SAAU,gBAAiBjiB,EAAE7D,KAAKq3B,gBAAgBjsB,IAAI,iBAAkBpL,KAAK8lB,SAAW,KAAM9lB,KAAKq3B,eAAiB,KAAMr3B,KAAK+oB,QAAU,KAAM/oB,KAAK8rB,UAAY,KAAM9rB,KAAKs3B,SAAW,KAAMt3B,KAAKu3B,SAAW,KAAMv3B,KAAKw3B,cAAgB,KAAMx3B,KAAKy3B,cAAgB,MACnRzwB,EAAEgiB,WAAa,SAAUpiB,GAC1B,GAAI,iBAAoBA,EAAIid,EAAE,GAAIoT,GAAI,iBAAmBrwB,GAAKA,EAAIA,EAAI,KAAK/D,QAAUqE,EAAEwd,UAAU9d,EAAE/D,QAAS,CAC1G,IAAImE,EAAInD,EAAE+C,EAAE/D,QAAQwpB,KAAK,MACzBrlB,IAAMA,EAAIE,EAAE8c,OAAO+S,GAAKlzB,EAAE+C,EAAE/D,QAAQwpB,KAAK,KAAMrlB,IAAKJ,EAAE/D,OAAS,IAAMmE,EAEvE,OAAOE,EAAEyd,gBAAgBoS,EAAInwB,EAAGuwB,IAAKvwB,GACpCI,EAAE4wB,cAAgB,WACnB,OAAO53B,KAAKq3B,iBAAmB12B,OAASX,KAAKq3B,eAAeS,YAAc93B,KAAKq3B,eAAexsB,WAC7F7D,EAAE6wB,iBAAmB,WACtB,OAAO73B,KAAKq3B,eAAe7H,cAAgBte,KAAKC,IAAIpF,SAASyB,KAAKgiB,aAAczjB,SAASqC,gBAAgBohB,eACxGxoB,EAAE+wB,iBAAmB,WACtB,OAAO/3B,KAAKq3B,iBAAmB12B,OAASA,OAAOsT,YAAcjU,KAAKq3B,eAAe7kB,wBAAwBnB,QACxGrK,EAAE0wB,SAAW,WACd,IAAI9wB,EAAI5G,KAAK43B,gBAAkB53B,KAAK+oB,QAAQ7U,OAC1CrQ,EAAI7D,KAAK63B,mBACT7wB,EAAIhH,KAAK+oB,QAAQ7U,OAASrQ,EAAI7D,KAAK+3B,mBACrC,GAAI/3B,KAAKy3B,gBAAkB5zB,GAAK7D,KAAK23B,UAAW/wB,GAAKI,EAAG,CACtD,IAAIO,EAAIvH,KAAKu3B,SAASv3B,KAAKu3B,SAAS5vB,OAAS,GAC7C3H,KAAKw3B,gBAAkBjwB,GAAKvH,KAAKg4B,UAAUzwB,OACtC,CACL,GAAIvH,KAAKw3B,eAAiB5wB,EAAI5G,KAAKs3B,SAAS,IAAMt3B,KAAKs3B,SAAS,GAAK,EAAG,OAAOt3B,KAAKw3B,cAAgB,UAAWx3B,KAAKi4B,SACpH,IAAK,IAAIrU,EAAI5jB,KAAKs3B,SAAS3vB,OAAQic,KACjC5jB,KAAKw3B,gBAAkBx3B,KAAKu3B,SAAS3T,IAAMhd,GAAK5G,KAAKs3B,SAAS1T,UAAO,IAAsB5jB,KAAKs3B,SAAS1T,EAAI,IAAMhd,EAAI5G,KAAKs3B,SAAS1T,EAAI,KAAO5jB,KAAKg4B,UAAUh4B,KAAKu3B,SAAS3T,MAGhL5c,EAAEgxB,UAAY,SAAUpxB,GACzB5G,KAAKw3B,cAAgB5wB,EAAG5G,KAAKi4B,SAC7B,IAAIjxB,EAAIhH,KAAK8rB,UAAU1jB,MAAM,KAAKO,KAAI,SAAU9E,GAC5C,OAAOA,EAAI,iBAAmB+C,EAAI,MAAQ/C,EAAI,UAAY+C,EAAI,QAEhEW,EAAI1D,EAAE,GAAGrF,MAAMuB,KAAKgM,SAAS0b,iBAAiBzgB,EAAExG,KAAK,QACvD+G,EAAEkf,SAAS,kBAAoBlf,EAAE+e,QAAQ,aAAazP,KAAK,oBAAoBoU,SAAS,UAAW1jB,EAAE0jB,SAAS,YAAc1jB,EAAE0jB,SAAS,UAAW1jB,EAAE2wB,QAAQ,qBAAqBtO,KAAK,+BAA+BqB,SAAS,UAAW1jB,EAAE2wB,QAAQ,qBAAqBtO,KAAK,aAAa1W,SAAS,aAAa+X,SAAS,WAAYpnB,EAAE7D,KAAKq3B,gBAAgB7S,QAAQ,wBAAyB,CAC3XsG,cAAelkB,KAEhBI,EAAEixB,OAAS,WACZ,GAAGz5B,MAAMuB,KAAKgM,SAAS0b,iBAAiBznB,KAAK8rB,YAAYxrB,QAAO,SAAUsG,GACxE,OAAOA,EAAEwgB,UAAU5X,SAAS,aAC3B7M,SAAQ,SAAUiE,GACnB,OAAOA,EAAEwgB,UAAUR,OAAO,cAE3BhgB,EAAEigB,iBAAmB,SAAU7f,GAChC,OAAOhH,KAAK8mB,MAAK,WACf,IAAIvf,EAAI1D,EAAE7D,MAAMmX,KAAK,gBACrB,GAAI5P,IAAMA,EAAI,IAAIX,EAAE5G,KAAM,iBAAmBgH,GAAKA,GAAInD,EAAE7D,MAAMmX,KAAK,eAAgB5P,IAAK,iBAAmBP,EAAG,CAC5G,QAAI,IAAsBO,EAAEP,GAAI,MAAM,IAAIyK,UAAU,oBAAsBzK,EAAI,KAC9EO,EAAEP,UAGL4c,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,UAER,CACDpB,IAAK,UACLoB,IAAK,WACH,OAAOkwB,OAENrwB,EAxFF,GA0FP/C,EAAElD,QAAQsK,GAAG,8BAA8B,WACzC,IAAK,IAAIrE,EAAI,GAAGpI,MAAMuB,KAAKgM,SAAS0b,iBAAiB,wBAAyBzgB,EAAIJ,EAAEe,OAAQX,KAAM,CAChG,IAAIO,EAAI1D,EAAE+C,EAAEI,IACZowB,GAAGvQ,iBAAiB9mB,KAAKwH,EAAGA,EAAE4P,YAE9BtT,EAAEyI,GAAGyqB,GAAMK,GAAGvQ,iBAAkBhjB,EAAEyI,GAAGyqB,GAAIvlB,YAAc4lB,GAAIvzB,EAAEyI,GAAGyqB,GAAI/P,WAAa,WACnF,OAAOnjB,EAAEyI,GAAGyqB,GAAMC,GAAII,GAAGvQ,kBAE3B,IAAIsR,GAAKt0B,EAAEyI,GAAG8rB,IACZC,GAAK,WACH,SAASzxB,EAAEA,GACT5G,KAAK8lB,SAAWlf,EAElB,IAAII,EAAIJ,EAAE3F,UACV,OAAO+F,EAAEklB,KAAO,WACd,IAAItlB,EAAI5G,KACR,KAAMA,KAAK8lB,SAASzY,YAAcrN,KAAK8lB,SAASzY,WAAWL,WAAa+B,KAAK0gB,cAAgB5rB,EAAE7D,KAAK8lB,UAAUW,SAAS,WAAa5iB,EAAE7D,KAAK8lB,UAAUW,SAAS,aAAc,CAC1K,IAAIzf,EACFO,EACAqc,EAAI/f,EAAE7D,KAAK8lB,UAAUQ,QAAQ,qBAAqB,GAClDzC,EAAI3c,EAAEid,uBAAuBnkB,KAAK8lB,UACpC,GAAIlC,EAAG,CACL,IAAIjd,EAAI,OAASid,EAAExW,UAAY,OAASwW,EAAExW,SAAW,iBAAmB,UACxE7F,GAAKA,EAAI1D,EAAEy0B,UAAUz0B,EAAE+f,GAAG/M,KAAKlQ,KAAKY,EAAEI,OAAS,GAEjD,IAAIid,EAAI/gB,EAAE0iB,MAAM,cAAe,CAC3BuE,cAAe9qB,KAAK8lB,WAEtBF,EAAI/hB,EAAE0iB,MAAM,cAAe,CACzBuE,cAAevjB,IAEnB,GAAIA,GAAK1D,EAAE0D,GAAGid,QAAQI,GAAI/gB,EAAE7D,KAAK8lB,UAAUtB,QAAQoB,IAAKA,EAAEM,uBAAyBtB,EAAEsB,qBAAsB,CACzGrC,IAAM7c,EAAI+E,SAAS4R,cAAckG,IAAK7jB,KAAKg4B,UAAUh4B,KAAK8lB,SAAUlC,GACpE,IAAIiC,EAAI,WACN,IAAI7e,EAAInD,EAAE0iB,MAAM,gBAAiB,CAC7BuE,cAAelkB,EAAEkf,WAEnBlC,EAAI/f,EAAE0iB,MAAM,eAAgB,CAC1BuE,cAAevjB,IAEnB1D,EAAE0D,GAAGid,QAAQxd,GAAInD,EAAE+C,EAAEkf,UAAUtB,QAAQZ,IAEzC5c,EAAIhH,KAAKg4B,UAAUhxB,EAAGA,EAAEqG,WAAYwY,GAAKA,OAG5C7e,EAAEof,QAAU,WACbviB,EAAEwiB,WAAWrmB,KAAK8lB,SAAU,UAAW9lB,KAAK8lB,SAAW,MACtD9e,EAAEgxB,UAAY,SAAUpxB,EAAGI,EAAGO,GAC/B,IAAIqc,EAAI5jB,KACN6jB,IAAM7c,GAAK,OAASA,EAAEoG,UAAY,OAASpG,EAAEoG,SAAWvJ,EAAEmD,GAAGkM,SAAS,WAAarP,EAAEmD,GAAG6P,KAAK,mBAAmB,GAChHlQ,EAAIY,GAAKsc,GAAKhgB,EAAEggB,GAAG4C,SAAS,QAC5B7B,EAAI,WACF,OAAOhB,EAAE2U,oBAAoB3xB,EAAGid,EAAGtc,IAEvC,GAAIsc,GAAKld,EAAG,CACV,IAAIif,EAAI1e,EAAEmd,iCAAiCR,GAC3ChgB,EAAEggB,GAAG2C,YAAY,QAAQnB,IAAIne,EAAE6c,eAAgBa,GAAGQ,qBAAqBQ,QAClEhB,KACN5d,EAAEuxB,oBAAsB,SAAU3xB,EAAGI,EAAGO,GACzC,GAAIP,EAAG,CACLnD,EAAEmD,GAAGwf,YAAY,UACjB,IAAI5C,EAAI/f,EAAEmD,EAAEqG,YAAYwJ,KAAK,4BAA4B,GACzD+M,GAAK/f,EAAE+f,GAAG4C,YAAY,UAAW,QAAUxf,EAAEod,aAAa,SAAWpd,EAAEgZ,aAAa,iBAAiB,GAEvG,GAAInc,EAAE+C,GAAGqkB,SAAS,UAAW,QAAUrkB,EAAEwd,aAAa,SAAWxd,EAAEoZ,aAAa,iBAAiB,GAAK9Y,EAAEod,OAAO1d,GAAIA,EAAEwgB,UAAU5X,SAAS,SAAW5I,EAAEwgB,UAAUM,IAAI,QAAS9gB,EAAEyG,YAAcxJ,EAAE+C,EAAEyG,YAAYoZ,SAAS,iBAAkB,CACrO,IAAI5C,EAAIhgB,EAAE+C,GAAG0f,QAAQ,aAAa,GAClC,GAAIzC,EAAG,CACL,IAAIld,EAAI,GAAGnI,MAAMuB,KAAK8jB,EAAE4D,iBAAiB,qBACzC5jB,EAAE8C,GAAGskB,SAAS,UAEhBrkB,EAAEoZ,aAAa,iBAAiB,GAElCzY,GAAKA,KACJX,EAAEigB,iBAAmB,SAAU7f,GAChC,OAAOhH,KAAK8mB,MAAK,WACf,IAAIvf,EAAI1D,EAAE7D,MACR4jB,EAAIrc,EAAE4P,KAAK,UACb,GAAIyM,IAAMA,EAAI,IAAIhd,EAAE5G,MAAOuH,EAAE4P,KAAK,SAAUyM,IAAK,iBAAmB5c,EAAG,CACrE,QAAI,IAAsB4c,EAAE5c,GAAI,MAAM,IAAIyK,UAAU,oBAAsBzK,EAAI,KAC9E4c,EAAE5c,UAGL4c,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,YAENH,EA9EF,GAgFP/C,EAAEkI,UAAUd,GAAG,wBAAyB,mEAAmE,SAAUrE,GACnHA,EAAEvC,iBAAkBg0B,GAAGxR,iBAAiB9mB,KAAK8D,EAAE7D,MAAO,WACpD6D,EAAEyI,GAAG8rB,IAAMC,GAAGxR,iBAAkBhjB,EAAEyI,GAAG8rB,IAAI5mB,YAAc6mB,GAAIx0B,EAAEyI,GAAG8rB,IAAIpR,WAAa,WACnF,OAAOnjB,EAAEyI,GAAG8rB,IAAMD,GAAIE,GAAGxR,kBAE3B,IAAI2R,GAAK30B,EAAEyI,GAAGmsB,MACZC,GAAK,CACH1H,UAAW,UACX2H,SAAU,UACVxH,MAAO,UAETyH,GAAK,CACH5H,WAAW,EACX2H,UAAU,EACVxH,MAAO,KAET0H,GAAK,WACH,SAASjyB,EAAEA,EAAG/C,GACZ7D,KAAK8lB,SAAWlf,EAAG5G,KAAK+oB,QAAU/oB,KAAKgpB,WAAWnlB,GAAI7D,KAAKo0B,SAAW,KAAMp0B,KAAKy0B,gBAEnF,IAAIztB,EAAIJ,EAAE3F,UACV,OAAO+F,EAAEklB,KAAO,WACd,IAAItlB,EAAI5G,KACNgH,EAAInD,EAAE0iB,MAAM,iBACd,GAAI1iB,EAAE7D,KAAK8lB,UAAUtB,QAAQxd,IAAKA,EAAEkf,qBAAsB,CACxDlmB,KAAK84B,gBAAiB94B,KAAK+oB,QAAQiI,WAAahxB,KAAK8lB,SAASsB,UAAUM,IAAI,QAC5E,IAAIngB,EAAI,WACNX,EAAEkf,SAASsB,UAAUR,OAAO,WAAYhgB,EAAEkf,SAASsB,UAAUM,IAAI,QAAS7jB,EAAE+C,EAAEkf,UAAUtB,QAAQ,kBAAmB5d,EAAEmiB,QAAQ4P,WAAa/xB,EAAEwtB,SAAWnqB,YAAW,WAChKrD,EAAE0Y,SACD1Y,EAAEmiB,QAAQoI,SAEf,GAAInxB,KAAK8lB,SAASsB,UAAUR,OAAO,QAAS1f,EAAEod,OAAOtkB,KAAK8lB,UAAW9lB,KAAK8lB,SAASsB,UAAUM,IAAI,WAAY1nB,KAAK+oB,QAAQiI,UAAW,CACnI,IAAIpN,EAAI1c,EAAEmd,iCAAiCrkB,KAAK8lB,UAChDjiB,EAAE7D,KAAK8lB,UAAUT,IAAIne,EAAE6c,eAAgBxc,GAAG6d,qBAAqBxB,QAC1Drc,MAERP,EAAEsY,KAAO,WACV,GAAItf,KAAK8lB,SAASsB,UAAU5X,SAAS,QAAS,CAC5C,IAAI5I,EAAI/C,EAAE0iB,MAAM,iBAChB1iB,EAAE7D,KAAK8lB,UAAUtB,QAAQ5d,GAAIA,EAAEsf,sBAAwBlmB,KAAK+4B,WAE7D/xB,EAAEof,QAAU,WACbpmB,KAAK84B,gBAAiB94B,KAAK8lB,SAASsB,UAAU5X,SAAS,SAAWxP,KAAK8lB,SAASsB,UAAUR,OAAO,QAAS/iB,EAAE7D,KAAK8lB,UAAU1a,IAAI,0BAA2BvH,EAAEwiB,WAAWrmB,KAAK8lB,SAAU,YAAa9lB,KAAK8lB,SAAW,KAAM9lB,KAAK+oB,QAAU,MACvO/hB,EAAEgiB,WAAa,SAAUpiB,GAC1B,OAAOA,EAAIid,EAAE,GAAI+U,GAAI/0B,EAAE7D,KAAK8lB,UAAU3O,OAAQ,iBAAmBvQ,GAAKA,EAAIA,EAAI,IAAKM,EAAEyd,gBAAgB,QAAS/d,EAAG5G,KAAK0jB,YAAYoK,aAAclnB,GAC/II,EAAEytB,cAAgB,WACnB,IAAI7tB,EAAI5G,KACR6D,EAAE7D,KAAK8lB,UAAU7a,GAAG,yBAA0B,0BAA0B,WACtE,OAAOrE,EAAE0Y,WAEVtY,EAAE+xB,OAAS,WACZ,IAAInyB,EAAI5G,KACNgH,EAAI,WACFJ,EAAEkf,SAASsB,UAAUM,IAAI,QAAS7jB,EAAE+C,EAAEkf,UAAUtB,QAAQ,oBAE5D,GAAIxkB,KAAK8lB,SAASsB,UAAUR,OAAO,QAAS5mB,KAAK+oB,QAAQiI,UAAW,CAClE,IAAIzpB,EAAIL,EAAEmd,iCAAiCrkB,KAAK8lB,UAChDjiB,EAAE7D,KAAK8lB,UAAUT,IAAIne,EAAE6c,eAAgB/c,GAAGoe,qBAAqB7d,QAC1DP,KACNA,EAAE8xB,cAAgB,WACnBpO,aAAa1qB,KAAKo0B,UAAWp0B,KAAKo0B,SAAW,MAC5CxtB,EAAEigB,iBAAmB,SAAU7f,GAChC,OAAOhH,KAAK8mB,MAAK,WACf,IAAIvf,EAAI1D,EAAE7D,MACR4jB,EAAIrc,EAAE4P,KAAK,YACb,GAAIyM,IAAMA,EAAI,IAAIhd,EAAE5G,KAAM,iBAAmBgH,GAAKA,GAAIO,EAAE4P,KAAK,WAAYyM,IAAK,iBAAmB5c,EAAG,CAClG,QAAI,IAAsB4c,EAAE5c,GAAI,MAAM,IAAIyK,UAAU,oBAAsBzK,EAAI,KAC9E4c,EAAE5c,GAAGhH,WAGR4jB,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,UAER,CACDpB,IAAK,cACLoB,IAAK,WACH,OAAO2xB,KAER,CACD/yB,IAAK,UACLoB,IAAK,WACH,OAAO6xB,OAENhyB,EArEF,GAuEP/C,EAAEyI,GAAGmsB,MAAQI,GAAGhS,iBAAkBhjB,EAAEyI,GAAGmsB,MAAMjnB,YAAcqnB,GAAIh1B,EAAEyI,GAAGmsB,MAAMzR,WAAa,WACrF,OAAOnjB,EAAEyI,GAAGmsB,MAAQD,GAAIK,GAAGhS,kBAC1BjgB,EAAEoyB,MAAQnT,EAAGjf,EAAEqyB,OAAShS,EAAGrgB,EAAEsyB,SAAW3jB,EAAG3O,EAAEuyB,SAAWzN,EAAG9kB,EAAEwyB,SAAWnM,EAAGrmB,EAAEyyB,MAAQ9K,EAAG3nB,EAAE0yB,QAAUzC,EAAIjwB,EAAE2yB,UAAYnC,GAAIxwB,EAAE4yB,IAAMnB,GAAIzxB,EAAE6yB,MAAQZ,GAAIjyB,EAAE8yB,QAAUxF,EAAGttB,EAAE+yB,KAAOzyB,EAAGC,OAAOC,eAAeR,EAAG,aAAc,CACvNd,OAAO,IA5lDoDjC,CAAEnH,EAAS,EAAQ,QAAW,EAAQ,U,2DCJrG,IAAIk9B,EAA0B,EAAQ,QAElCn9B,EAAyB,EAAQ,QAErCC,EAAQC,YAAa,EACrBD,EAAQiP,cAAgBjP,EAAQ6N,mBAAgB,EAEhD,IAAIjN,EAA0Bb,EAAuB,EAAQ,SAEzDc,EAAkBd,EAAuB,EAAQ,SAEjDo9B,EAAQD,EAAwB,EAAQ,SAExCn8B,EAAahB,EAAuB,EAAQ,SAE5Cq9B,EAAkB,EAAQ,QAE1BvvB,EAA6BsvB,EAAME,cAAc,IAAID,EAAgBr0B,gBACzE/I,EAAQ6N,cAAgBA,EACxBA,EAAcyvB,YAAc,sBAE5B,IAAIruB,EAA6B,SAAU9L,GAGzC,SAAS8L,IAGP,IAFA,IAAI7L,EAEKm6B,EAAOpqB,UAAUlI,OAAQuyB,EAAO,IAAIljB,MAAMijB,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQtqB,UAAUsqB,GAuCzB,OApCAr6B,EAAQD,EAAiBE,KAAK+jB,MAAMjkB,EAAkB,CAACG,MAAMob,OAAO8e,KAAUl6B,MACxEo6B,cAAgB,IAAIN,EAAgBr0B,eAE1C3F,EAAMu6B,eAAiB,WACrB,IAAI10B,EAAM7F,EAAMR,MAAMI,SAASiG,IAE3BA,GACF7F,EAAMs6B,cAAcj0B,KAAKrG,EAAMR,MAAMI,SAAUiG,EAAKhF,OAAO25B,UAI/Dx6B,EAAMy6B,aAAe,SAAU7vB,EAAU/I,GACnC7B,EAAM06B,mBAAmB74B,EAAW7B,EAAMR,QAC5CqB,OAAOgK,SAAS,EAAGD,IAIvB5K,EAAM26B,aAAe,SAAU3wB,EAAMnI,GACnC,IAAI8M,EAAO1C,SAASmY,eAAepa,EAAK4wB,UAAU,IAE9CjsB,GAAQ3O,EAAM06B,mBAAmB74B,EAAW7B,EAAMR,QACpDmP,EAAKksB,kBAIT76B,EAAM06B,mBAAqB,SAAUI,EAAiBC,GACpD,IAAIL,EAAqB16B,EAAMR,MAAMk7B,mBAErC,OAAKA,GAKEA,EAAmBz6B,MAAK,EAAIzC,EAAwBF,SAAS0C,GAAQ86B,EAAiBC,IAGxF/6B,GA7CT,EAAIvC,EAAgBH,SAASuO,EAAe9L,GAgD5C,IAAImB,EAAS2K,EAAc1K,UAwD3B,OAtDAD,EAAOa,kBAAoB,WAEzB,IAAIi5B,EADJn6B,OAAO4Y,iBAAiB,SAAUvZ,KAAKq6B,gBAEvC,IAAIU,EAAuB/6B,KAAKV,MAAMI,SAClCiG,EAAMo1B,EAAqBp1B,IAC3BmE,EAAOixB,EAAqBjxB,KAE5BnE,IACFm1B,EAAiB96B,KAAKo6B,cAAc10B,KAAK1F,KAAKV,MAAMI,SAAUiG,IAG5Dm1B,EACF96B,KAAKu6B,aAAaO,OAAgBrzB,GACzBqC,GACT9J,KAAKy6B,aAAaxZ,UAAUnX,QAAOrC,IAIvCzG,EAAOc,qBAAuB,WAC5BnB,OAAOwZ,oBAAoB,SAAUna,KAAKq6B,iBAG5Cr5B,EAAOU,mBAAqB,SAA4BC,GACtD,IAGIm5B,EAHAE,EAAwBh7B,KAAKV,MAAMI,SACnCoK,EAAOkxB,EAAsBlxB,KAC7BnE,EAAMq1B,EAAsBr1B,IAG5BA,IACFm1B,EAAiB96B,KAAKo6B,cAAc10B,KAAK1F,KAAKV,MAAMI,SAAUiG,IAY5DmE,EACF9J,KAAKy6B,aAAaxZ,UAAUnX,GAAOnI,GAEnC3B,KAAKu6B,aAAaO,EAAgBn5B,IAItCX,EAAOiC,OAAS,WACd,OAAoB42B,EAAMt6B,cAAcgL,EAAc0wB,SAAU,CAC9Dn1B,MAAO9F,KAAKo6B,eACXp6B,KAAKV,MAAM4T,WAGTvH,EAzGwB,CA0G/BkuB,EAAMn1B,WAERhI,EAAQiP,cAAgBA,EACxBA,EAAchH,UAAY,CACxB61B,mBAAoB/8B,EAAWL,QAAQwH,KACvCsO,SAAUzV,EAAWL,QAAQ0P,QAAQjI,WACrCnF,SAAUjC,EAAWL,QAAQ8B,OAAO2F,a,kCCvItC,yiCAMA,MAOaq2B,EAAwBA,KAEnCh2B,QAAQi2B,IAAI,0CAGDC,EAA6BA,KACxCl2B,QAAQi2B,IAAI,+CAGDE,EAAyBA,KACpCn2B,QAAQi2B,IAAI,uDAEDG,EAAgBA,OAGhBC,EAAyBA,KACpCr2B,QAAQi2B,IAAI,uDAEDK,EAAmBA,KAC9Bt2B,QAAQi2B,IAAI,iDAEDM,EAAqBA,KAChCv2B,QAAQi2B,IAAI,mDAED9xB,EAAgBA,KAC3BnE,QAAQi2B,IAAI,8CAEDO,EAAuBA,KAClCx2B,QAAQi2B,IAAI,qDAEDQ,EAAwBA,KACnCz2B,QAAQi2B,IAAI,sDAEDS,EAA2BA,KACtC12B,QAAQi2B,IAAI,yDAEDU,EAA2BA,KACtC32B,QAAQi2B,IAAI,yDAEDW,EAA6BA,KACxC52B,QAAQi2B,IAAI,2DAEDY,EAAwBA,KACnC72B,QAAQi2B,IAAI,sDAEDa,EAA2BA,KACtC92B,QAAQi2B,IAAI,0DAEDc,EAAyBA,KACpC/2B,QAAQi2B,IAAI,uDAEDX,EAAqBA,KAChCt1B,QAAQi2B,IAAI,mDAEDe,EAAkBA,KAC7Bh3B,QAAQi2B,IAAI,gDAEDgB,EAAkBA,KAC7Bj3B,QAAQi2B,IAAI,iD,kCCvEd,6DAOA,MAAMiB,UAAqBvC,IAAMn1B,UAC/BzB,SACE,MAAM3D,EAAQ,IACTU,KAAKV,MACR4J,OAAQ,IACHD,YAAgBjJ,KAAKV,MAAMI,SAAS0B,aACpCpB,KAAKV,MAAM+8B,cAAcC,KAAKC,YAAYC,UAE/CC,YAAaz8B,KAAKV,MAAMi9B,cAGnBG,GAAsBC,oBAAU,2BAA4B,CACjEr9B,MAAOU,KAAKV,MACZs9B,OAAQC,iBAGJC,EACJJ,GACAn9B,wBAAcS,KAAKV,MAAM+8B,cAAcU,UAAW,IAC7Cz9B,EACHqG,IAAK3F,KAAKV,MAAMxC,MAAQkD,KAAKV,MAAM+8B,cAAcW,KAAKlgC,OAY1D,OAToB6/B,oBAClB,kBACA,CAAE7vB,QAASgwB,EAAax9B,SACxBw9B,EACA5+B,IAAiB,IAAhB,OAAEuU,GAAQvU,EACT,MAAO,CAAE4O,QAAS2F,EAAQnT,WAE5B29B,OAaSb,O,+EClDf,2UAIIp+B,EAAa,SAAoBgB,EAAQ6K,GAC3C,OAAO7K,EAAOwjB,OAAO,EAAG3Y,EAAOlC,UAAYkC,GAwBzCf,EAAO,SAAco0B,EAAQta,GAW/B,IAVA,IAAIpL,OAAQ,EACR2lB,OAAW,EAGXC,EADaxa,EAAIxa,MAAM,KACE,GAEzBi1B,EAAcC,EAAWF,GACzBG,EAA+B,KAAnBF,EAAY,GACxBG,EAASC,EAAWP,GAEf31B,EAAI,EAAGqd,EAAI4Y,EAAO71B,OAAQJ,EAAIqd,EAAGrd,IAAK,CAC7C,IAAIm2B,GAAS,EACT10B,EAAQw0B,EAAOj2B,GAAGyB,MAEtB,GAAIA,EAAM5L,QACR+/B,EAAW,CACTn0B,MAAOA,EACPE,OAAQ,GACR0Z,IAAKA,OAJT,CAcA,IALA,IAAI+a,EAAgBL,EAAWt0B,EAAMlM,MACjCoM,EAAS,GACTiI,EAAMD,KAAKC,IAAIksB,EAAY11B,OAAQg2B,EAAch2B,QACjDwT,EAAQ,EAELA,EAAQhK,EAAKgK,IAAS,CAC3B,IAAIyiB,EAAeD,EAAcxiB,GAC7B0iB,EAAaR,EAAYliB,GAE7B,GAAI2iB,EAAQF,GAAe,CAKzB10B,EADY00B,EAAap/B,MAAM,IAAM,KACrB6+B,EAAY7+B,MAAM2c,GAAOxS,IAAIV,oBAAoBzH,KAAK,KACtE,MAGF,QAAmBiH,IAAfo2B,EAA0B,CAI5BH,GAAS,EACT,MAGF,IAAIK,EAAeC,EAAQC,KAAKL,GAEhC,GAAIG,IAAiBR,EAAW,EACuC,IAA5CW,EAAc5yB,QAAQyyB,EAAa,KAC6J,KAAU,GACnO,IAAIj4B,EAAQmC,mBAAmB41B,GAC/B30B,EAAO60B,EAAa,IAAMj4B,OACrB,GAAI83B,IAAiBC,EAAY,CAItCH,GAAS,EACT,OAIJ,IAAKA,EAAQ,CACXlmB,EAAQ,CACNxO,MAAOA,EACPE,OAAQA,EACR0Z,IAAK,IAAMya,EAAY7+B,MAAM,EAAG2c,GAAO3a,KAAK,MAE9C,QAIJ,OAAOgX,GAAS2lB,GAAY,MAK1B3lB,EAAQ,SAAe1a,EAAM8lB,GAC/B,OAAO9Z,EAAK,CAAC,CAAEhM,KAAMA,IAAS8lB,IA6B5BhkB,EAAU,SAAiB0C,EAAIhD,GAEjC,GAAIN,EAAWsD,EAAI,KACjB,OAAOA,EAGT,IAAI68B,EAAY78B,EAAG8G,MAAM,KACrBg2B,EAAaD,EAAU,GACvBE,EAAUF,EAAU,GAGpBG,EADchgC,EAAK8J,MAAM,KACE,GAE3Bm2B,EAAajB,EAAWc,GACxBI,EAAelB,EAAWgB,GAG9B,GAAsB,KAAlBC,EAAW,GACb,OAAOE,EAASH,EAAcD,GAIhC,IAAKrgC,EAAWugC,EAAW,GAAI,KAAM,CACnC,IAAIn9B,EAAWo9B,EAAapjB,OAAOmjB,GAAY/9B,KAAK,KACpD,OAAOi+B,GAA2B,MAAjBH,EAAuB,GAAK,KAAOl9B,EAAUi9B,GAUhE,IAFA,IAAIK,EAAcF,EAAapjB,OAAOmjB,GAClCI,EAAW,GACNp3B,EAAI,EAAGqd,EAAI8Z,EAAY/2B,OAAQJ,EAAIqd,EAAGrd,IAAK,CAClD,IAAIq3B,EAAUF,EAAYn3B,GACV,OAAZq3B,EAAkBD,EAAS1B,MAA2B,MAAZ2B,GAAiBD,EAASzhC,KAAK0hC,GAG/E,OAAOH,EAAS,IAAME,EAASn+B,KAAK,KAAM69B,IAMxCQ,EAAe,SAAsB/hC,EAAMoM,GAC7C,IAAI41B,EAAchiC,EAAKsL,MAAM,KACzB22B,EAAWD,EAAY,GACvBE,EAAeF,EAAY,GAC3BG,OAAyBx3B,IAAjBu3B,EAA6B,GAAKA,EAG1CE,EAAkB,IADP5B,EAAWyB,GACWp2B,KAAI,SAAUi2B,GACjD,IAAIpnB,EAAQwmB,EAAQC,KAAKW,GACzB,OAAOpnB,EAAQtO,EAAOsO,EAAM,IAAMonB,KACjCp+B,KAAK,KACJ2+B,EAAmBj2B,EAAOxJ,SAE1B0/B,GADJD,OAAwC13B,IAArB03B,EAAiC,GAAKA,GACZt1B,OAGzCw1B,QAFmC53B,IAA1B23B,EAAsC,GAAKA,GAE/Bh3B,MAAM,KAAK,IAAM,GAE1C,OADA82B,EAAkBT,EAASS,EAAiBD,EAAOI,IAIjDC,EAAmB,SAA0B3b,EAAMriB,GACrD,IAAIhB,EAAS,SAAgBs+B,GAC3B,OAAOW,EAAUX,IAInB,OAFiBtB,EAAW3Z,GAAMrjB,OAAOA,GAAQgV,OAAO9U,KAAK,OAC9C88B,EAAWh8B,GAAIhB,OAAOA,GAAQgV,OAAO9U,KAAK,MAMvDw9B,EAAU,SAWVuB,EAAY,SAAmBX,GACjC,OAAOZ,EAAQt0B,KAAKk1B,IAElBd,EAAU,SAAiBc,GAC7B,OAAOA,GAA0B,MAAfA,EAAQ,IAGxBY,EAAY,SAAmBx2B,EAAOmS,GAMxC,MAAO,CAAEnS,MAAOA,EAAOy2B,MALXz2B,EAAM5L,QAAU,EAAIkgC,EAAWt0B,EAAMlM,MAAMof,QAAO,SAAUujB,EAAOb,GAG7E,OAFAa,GAlBiB,GAMD,SAAuBb,GACzC,MAAmB,KAAZA,EAYDc,CAAcd,GAAwCW,EAAUX,GAAUa,GAjB7D,EAiB8F3B,EAAQc,GAAUa,GAASE,EAAoCF,GAlB9J,EAkBYA,GAfd,EAgBPA,IACN,GACkCtkB,MAAOA,IAG1CsiB,EAAa,SAAoBP,GACnC,OAAOA,EAAOv0B,IAAI62B,GAAWlqB,MAAK,SAAUpO,EAAGqO,GAC7C,OAAOrO,EAAEu4B,MAAQlqB,EAAEkqB,MAAQ,EAAIv4B,EAAEu4B,MAAQlqB,EAAEkqB,OAAS,EAAIv4B,EAAEiU,MAAQ5F,EAAE4F,UAIpEmiB,EAAa,SAAoB1a,GACnC,OAAOA,EAEN3lB,QAAQ,eAAgB,IAAImL,MAAM,MAGjCq2B,EAAW,SAAkBr9B,GAC/B,IAAK,IAAI64B,EAAOpqB,UAAUlI,OAAQs3B,EAAQjoB,MAAMijB,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAC/F8E,EAAM9E,EAAO,GAAKtqB,UAAUsqB,GAM9B,OAAO/4B,IAHP69B,EAAQA,EAAM3+B,QAAO,SAAU8vB,GAC7B,OAAOA,GAAKA,EAAEzoB,OAAS,OAEGs3B,EAAMt3B,OAAS,EAAI,IAAMs3B,EAAMz+B,KAAK,KAAO,KAGrE09B,EAAgB,CAAC,MAAO,QAOxB0B,EAAiB,SAAwBC,EAAMC,GACjD,IAAIC,EAAW54B,OAAOiO,KAAKyqB,GAC3B,OAAOE,EAASp4B,SAAWR,OAAOiO,KAAK0qB,GAAMn4B,QAAUo4B,EAASC,OAAM,SAAUr6B,GAC9E,OAAOm6B,EAAKr9B,eAAekD,IAAQk6B,EAAKl6B,KAASm6B,EAAKn6B,Q,qBCrR1DkB,EAAOnK,QAAU,CAAC,CACZujC,OAAQC,EAAQ,QAChB56B,QAAS,CAAC,QAAU,GAAG,YAAc,CAAC,gBAAgB,aAAe,CAAC,MAAO,KAC7E,CACA26B,OAAQC,EAAQ,QAChB56B,QAAS,CAAC,QAAU,GAAG,KAAO,KAAK,WAAa,KAAK,UAAY,IAAI,iBAAmB,UAAU,YAAc,UAAU,QAAU,aAAa,KAAO,sBAAsB,mBAAqB,SACnM,CACA26B,OAAQC,EAAQ,QAChB56B,QAAS,CAAC,QAAU,O,qBCHUuB,EAAOnK,QAI5B,WACb,IAAIyjC,GAAO,GACsC,IAA7Cj0B,UAAUk0B,WAAW90B,QAAQ,aAC/B60B,GAAO,GAGT,IACE1e,EADE4e,EAAM,GAERC,EAA0B,iBAAbv0B,UAAyBA,SACtCw0B,EAAOJ,EACHG,EAAIlyB,gBAAgBoyB,SAAS,QAC7BF,EAAIlyB,gBAAgBoyB,SAExBC,EACEH,IAAQC,EAAO,aAAe,iBAAiB72B,KAAK42B,EAAII,YAY5D,OAVKD,GAAUH,GACbA,EAAI/mB,iBALe,mBAOhBkI,EAAW,WAGV,IAFA6e,EAAInmB,oBARW,mBAQ2BsH,GAC1Cgf,EAAS,EACDhf,EAAW4e,EAAI9jB,SAAUkF,MAIhC,SAASnV,GACdm0B,EAASx2B,WAAWqC,EAAI,GAAK+zB,EAAInjC,KAAKoP,IA/BWq0B,I,kCCLrD,uBAG+B,WAA7BhgC,OAAOjB,SAASmhB,UACa,cAA7BlgB,OAAOjB,SAASohB,SAEhB5b,QAAQ07B,MACN,gFAEO,kBAAmB10B,WAC5BA,UAAU20B,cACPC,SAAS,UACTt0B,MAAK,SAAUu0B,GACdA,EAAIxnB,iBAAiB,cAAe,KAClCojB,oBAAU,6BAA8B,CAAEkE,cAAeE,IAGzD,MAAMC,EAAmBD,EAAIE,WAC7B/7B,QAAQi2B,IAAI,mBAAoB6F,GAChCA,EAAiBznB,iBAAiB,cAAe,KAC/C,OAAQynB,EAAiBngC,OACvB,IAAK,YACCqL,UAAU20B,cAAcK,YAK1BvgC,OAAOwgC,cAAe,EAEtBxE,oBAAU,6BAA8B,CAAEkE,cAAeE,IAGrDpgC,OAAOygC,qBACTl8B,QAAQi2B,IAAI,4CACZx6B,OAAOjB,SAAS2hC,YAKlBn8B,QAAQi2B,IAAI,qCAKZwB,oBAAU,2BAA4B,CAAEkE,cAAeE,KAEzD,MAEF,IAAK,YACH77B,QAAQ07B,MAAM,mDACdjE,oBAAU,2BAA4B,CAAEkE,cAAeE,IACvD,MAEF,IAAK,YACHpE,oBAAU,wBAAyB,CAAEkE,cAAeE,YAM7DO,OAAM,SAAUz9B,GACfqB,QAAQ07B,MAAM,4CAA6C/8B,O,qBC1DjEnH,EAAQ6kC,WAAa,CACnB,sEAAuEC,IAAM,uE,mBCA/E36B,EAAOnK,QAJP,SAAgCmH,GAC9B,QAAI,IAAWA,EAAG,MAAM,IAAI49B,eAAe,6DAC3C,OAAO59B,GAEgCgD,EAAOnK,QAAQC,YAAa,EAAMkK,EAAOnK,QAAiB,QAAImK,EAAOnK,S,sBCGtG,SAAUkK,EAAG/C,EAAGmD,GACtB,aAEA,SAASO,EAAEX,EAAG/C,GACZ,IAAK,IAAImD,EAAI,EAAGA,EAAInD,EAAE8D,OAAQX,IAAK,CACjC,IAAIO,EAAI1D,EAAEmD,GACVO,EAAEsK,WAAatK,EAAEsK,aAAc,EAAItK,EAAEuK,cAAe,EAAI,UAAWvK,IAAMA,EAAEwK,UAAW,GAAK5K,OAAOC,eAAeR,EAAGW,EAAE5B,IAAK4B,IAG/H,SAASqc,EAAEhd,EAAG/C,EAAGmD,GACf,OAAOnD,GAAK0D,EAAEX,EAAE3F,UAAW4C,GAAImD,GAAKO,EAAEX,EAAGI,GAAIJ,EAE/C,SAASid,EAAEjd,EAAG/C,EAAGmD,GACf,OAAOnD,KAAK+C,EAAIO,OAAOC,eAAeR,EAAG/C,EAAG,CAC1CiC,MAAOkB,EACP6K,YAAY,EACZC,cAAc,EACdC,UAAU,IACPnL,EAAE/C,GAAKmD,EAAGJ,EAEjB,SAASD,EAAEC,EAAG/C,GACZ,IAAImD,EAAIG,OAAOiO,KAAKxO,GACpB,GAAIO,OAAOu6B,sBAAuB,CAChC,IAAIn6B,EAAIJ,OAAOu6B,sBAAsB96B,GACrC/C,IAAM0D,EAAIA,EAAEjH,QAAO,SAAUuD,GAC3B,OAAOsD,OAAOE,yBAAyBT,EAAG/C,GAAGgO,eAC1C7K,EAAE9J,KAAK4mB,MAAM9c,EAAGO,GAEvB,OAAOP,EAET,SAASE,EAAEN,GACT,IAAK,IAAI/C,EAAI,EAAGA,EAAIgM,UAAUlI,OAAQ9D,IAAK,CACzC,IAAImD,EAAI,MAAQ6I,UAAUhM,GAAKgM,UAAUhM,GAAK,GAC9CA,EAAI,EAAI8C,EAAEQ,OAAOH,IAAI,GAAIrE,SAAQ,SAAUkB,GACzCggB,EAAEjd,EAAG/C,EAAGmD,EAAEnD,OACPsD,OAAOw6B,0BAA4Bx6B,OAAOwK,iBAAiB/K,EAAGO,OAAOw6B,0BAA0B36B,IAAML,EAAEQ,OAAOH,IAAIrE,SAAQ,SAAUkB,GACvIsD,OAAOC,eAAeR,EAAG/C,EAAGsD,OAAOE,yBAAyBL,EAAGnD,OAGnE,OAAO+C,EAET/C,EAAIA,GAAKsD,OAAOlG,UAAUwB,eAAe1C,KAAK8D,EAAG,WAAaA,EAAEzG,QAAUyG,EAAGmD,EAAIA,GAAKG,OAAOlG,UAAUwB,eAAe1C,KAAKiH,EAAG,WAAaA,EAAE5J,QAAU4J,EAUvJ,IAAI4e,EAAI,CACN7B,eAAgB,kBAChBC,OAAQ,SAAUpd,GAChB,GACEA,MAAQ,IAAMsK,KAAK+S,gBACZlY,SAASmY,eAAetd,IACjC,OAAOA,GAETud,uBAAwB,SAAUvd,GAChC,IAAI/C,EAAI+C,EAAEwd,aAAa,eACvB,IAAKvgB,GAAK,MAAQA,EAAG,CACnB,IAAImD,EAAIJ,EAAEwd,aAAa,QACvBvgB,EAAImD,GAAK,MAAQA,EAAIA,EAAE4U,OAAS,GAElC,IACE,OAAO7P,SAAS4R,cAAc9Z,GAAKA,EAAI,KACvC,MAAO+C,GACP,OAAO,OAGXyd,iCAAkC,SAAUzd,GAC1C,IAAKA,EAAG,OAAO,EACf,IAAII,EAAInD,EAAE+C,GAAGqG,IAAI,uBACf1F,EAAI1D,EAAE+C,GAAGqG,IAAI,oBACb2W,EAAI7S,WAAW/J,GACf6c,EAAI9S,WAAWxJ,GACjB,OAAOqc,GAAKC,GAAK7c,EAAIA,EAAEoB,MAAM,KAAK,GAAIb,EAAIA,EAAEa,MAAM,KAAK,GAAI,KAAO2I,WAAW/J,GAAK+J,WAAWxJ,KAAO,GAEtG+c,OAAQ,SAAU1d,GAChB,OAAOA,EAAEoM,cAEXuR,qBAAsB,SAAU3d,GAC9B/C,EAAE+C,GAAG4d,QAAQ,kBAEfC,sBAAuB,WACrB,OAAOlkB,QAAQ,kBAEjBmkB,UAAW,SAAU9d,GACnB,OAAQA,EAAE,IAAMA,GAAGoG,UAErB2X,gBAAiB,SAAU/d,EAAG/C,EAAGmD,GAC/B,IAAK,IAAIO,KAAKP,EAAG,GAAIG,OAAOlG,UAAUwB,eAAe1C,KAAKiH,EAAGO,GAAI,CAC/D,IAAIqc,EAAI5c,EAAEO,GACRsc,EAAIhgB,EAAE0D,GACNZ,EAAIkd,GAAK+B,EAAElB,UAAUb,GAAK,UAAY,QAAU3c,EAAI2c,SAAM,IAAsB3c,EAAI,GAAKA,EAAI,GAAG0F,SAAS7M,KAAKmH,GAAGsQ,MAAM,eAAe,GAAGsG,cAC3I,IAAK,IAAI+G,OAAOjB,GAAGla,KAAK/C,GAAI,MAAM,IAAIme,MAAMle,EAAE+R,cAAgB,aAAepR,EAAI,oBAAsBZ,EAAI,wBAA0Bid,EAAI,MAE3I,IAAI1c,GAEN6d,eAAgB,SAAUne,GACxB,IAAKmF,SAASqC,gBAAgB4W,aAAc,OAAO,KACnD,GAAI,mBAAqBpe,EAAEqe,YAAa,CACtC,IAAIphB,EAAI+C,EAAEqe,cACV,OAAOphB,aAAaqhB,WAAarhB,EAAI,KAEvC,OAAO+C,aAAase,WAAate,EAAIA,EAAEyG,WAAauY,EAAEb,eAAene,EAAEyG,YAAc,MAEvF8X,gBAAiB,WACf,QAAI,IAAsBthB,EAAG,MAAM,IAAI4N,UAAU,kGACjD,IAAI7K,EAAI/C,EAAEyI,GAAG8T,OAAOhY,MAAM,KAAK,GAAGA,MAAM,KACxC,GAAIxB,EAAE,GAAK,GAAKA,EAAE,GAAK,GAAK,IAAMA,EAAE,IAAM,IAAMA,EAAE,IAAMA,EAAE,GAAK,GAAKA,EAAE,IAAM,EAAG,MAAM,IAAIke,MAAM,iFAGnGc,EAAET,kBAAmBthB,EAAEyI,GAAG8Y,qBAxE1B,SAAWxe,GACT,IAAII,EAAIhH,KACNuH,GAAI,EACN,OAAO1D,EAAE7D,MAAMqlB,IAAIO,EAAE7B,gBAAgB,WACnCxc,GAAI,KACF0C,YAAW,WACb1C,GAAKqe,EAAErB,qBAAqBvd,KAC3BJ,GAAI5G,MAiE2C6D,EAAE8V,MAAM2L,QAAQM,EAAE7B,gBAAkB,CACtFwB,SAAU,gBACVC,aAAc,gBACdC,OAAQ,SAAU7e,GAChB,GAAI/C,EAAE+C,EAAE/D,QAAQ6iB,GAAG1lB,MAAO,OAAO4G,EAAE+e,UAAUxa,QAAQ2Y,MAAM9jB,KAAM6P,aAGrE,IAAIgW,EAAI,QACNve,EAAIzD,EAAEyI,GAAGuZ,GACToB,EAAI,WACF,SAASrgB,EAAEA,GACT5G,KAAK8lB,SAAWlf,EAElB,IAAII,EAAIJ,EAAE3F,UACV,OAAO+F,EAAE+e,MAAQ,SAAUnf,GACzB,IAAI/C,EAAI7D,KAAK8lB,SACblf,IAAM/C,EAAI7D,KAAKgmB,gBAAgBpf,IAAK5G,KAAKimB,mBAAmBpiB,GAAGqiB,sBAAwBlmB,KAAKmmB,eAAetiB,IAC1GmD,EAAEof,QAAU,WACbviB,EAAEwiB,WAAWrmB,KAAK8lB,SAAU,YAAa9lB,KAAK8lB,SAAW,MACxD9e,EAAEgf,gBAAkB,SAAUpf,GAC/B,IAAII,EAAI4e,EAAEzB,uBAAuBvd,GAC/BW,GAAI,EACN,OAAOP,IAAMO,EAAIwE,SAAS4R,cAAc3W,IAAKO,IAAMA,EAAI1D,EAAE+C,GAAG0f,QAAQ,UAAU,IAAK/e,GAClFP,EAAEif,mBAAqB,SAAUrf,GAClC,IAAII,EAAInD,EAAE0iB,MAAM,kBAChB,OAAO1iB,EAAE+C,GAAG4d,QAAQxd,GAAIA,GACvBA,EAAEmf,eAAiB,SAAUvf,GAC9B,IAAII,EAAIhH,KACR,GAAI6D,EAAE+C,GAAG4f,YAAY,QAAS3iB,EAAE+C,GAAG6f,SAAS,QAAS,CACnD,IAAIlf,EAAIqe,EAAEvB,iCAAiCzd,GAC3C/C,EAAE+C,GAAGye,IAAIO,EAAE7B,gBAAgB,SAAUlgB,GACnC,OAAOmD,EAAE0f,gBAAgB9f,EAAG/C,MAC3BuhB,qBAAqB7d,QACnBvH,KAAK0mB,gBAAgB9f,IAC3BI,EAAE0f,gBAAkB,SAAU9f,GAC/B/C,EAAE+C,GAAG+f,SAASnC,QAAQ,mBAAmBoC,UACxChgB,EAAEigB,iBAAmB,SAAU7f,GAChC,OAAOhH,KAAK8mB,MAAK,WACf,IAAIvf,EAAI1D,EAAE7D,MACR4jB,EAAIrc,EAAE4P,KAAK,YACbyM,IAAMA,EAAI,IAAIhd,EAAE5G,MAAOuH,EAAE4P,KAAK,WAAYyM,IAAK,UAAY5c,GAAK4c,EAAE5c,GAAGhH,UAEtE4G,EAAEmgB,eAAiB,SAAUngB,GAC9B,OAAO,SAAU/C,GACfA,GAAKA,EAAEQ,iBAAkBuC,EAAEmf,MAAM/lB,QAElC4jB,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,YAENH,EA1CH,GA4CN/C,EAAEkI,UAAUd,GAAG,0BAA2B,yBAA0Bgc,EAAEF,eAAe,IAAIE,IAAOpjB,EAAEyI,GAAGuZ,GAAKoB,EAAEJ,iBAAkBhjB,EAAEyI,GAAGuZ,GAAGrU,YAAcyV,EAAGpjB,EAAEyI,GAAGuZ,GAAGmB,WAAa,WAC1K,OAAOnjB,EAAEyI,GAAGuZ,GAAKve,EAAG2f,EAAEJ,kBAExB,IAAIc,EAAI9jB,EAAEyI,GAAGvI,OACXmnB,EAAI,WACF,SAAStkB,EAAEA,GACT5G,KAAK8lB,SAAWlf,EAElB,IAAII,EAAIJ,EAAE3F,UACV,OAAO+F,EAAEkgB,OAAS,WAChB,IAAItgB,GAAI,EACNI,GAAI,EACJO,EAAI1D,EAAE7D,KAAK8lB,UAAUQ,QAAQ,2BAA2B,GAC1D,GAAI/e,EAAG,CACL,IAAIqc,EAAI5jB,KAAK8lB,SAASnI,cAAc,8BACpC,GAAIiG,EAAG,CACL,GAAI,UAAYA,EAAE1Y,KAAM,GAAI0Y,EAAEuD,SAAWnnB,KAAK8lB,SAASsB,UAAU5X,SAAS,UAAW5I,GAAI,MAAQ,CAC/F,IAAIid,EAAItc,EAAEoW,cAAc,WACxBkG,GAAKhgB,EAAEggB,GAAG2C,YAAY,UAExB5f,IAAM,aAAegd,EAAE1Y,MAAQ,UAAY0Y,EAAE1Y,OAAS0Y,EAAEuD,SAAWnnB,KAAK8lB,SAASsB,UAAU5X,SAAS,WAAY3L,EAAE+f,GAAGY,QAAQ,WAAYZ,EAAEyD,QAASrgB,GAAI,GAG5JhH,KAAK8lB,SAASwB,aAAa,aAAetnB,KAAK8lB,SAASsB,UAAU5X,SAAS,cAAgBxI,GAAKhH,KAAK8lB,SAAS9F,aAAa,gBAAiBhgB,KAAK8lB,SAASsB,UAAU5X,SAAS,WAAY5I,GAAK/C,EAAE7D,KAAK8lB,UAAUyB,YAAY,YAC1NvgB,EAAEof,QAAU,WACbviB,EAAEwiB,WAAWrmB,KAAK8lB,SAAU,aAAc9lB,KAAK8lB,SAAW,MACzDlf,EAAEigB,iBAAmB,SAAU7f,GAChC,OAAOhH,KAAK8mB,MAAK,WACf,IAAIvf,EAAI1D,EAAE7D,MAAMmX,KAAK,aACrB5P,IAAMA,EAAI,IAAIX,EAAE5G,MAAO6D,EAAE7D,MAAMmX,KAAK,YAAa5P,IAAK,WAAaP,GAAKO,EAAEP,SAE3E4c,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,YAENH,EAhCH,GAkCN/C,EAAEkI,UAAUd,GAAG,2BAA4B,2BAA2B,SAAUrE,GAC9E,IAAII,EAAIJ,EAAE/D,OACR0E,EAAIP,EACN,GAAInD,EAAEmD,GAAGyf,SAAS,SAAWzf,EAAInD,EAAEmD,GAAGsf,QAAQ,QAAQ,KAAMtf,GAAKA,EAAEsgB,aAAa,aAAetgB,EAAEogB,UAAU5X,SAAS,YAAa5I,EAAEvC,qBAAsB,CACvJ,IAAIuf,EAAI5c,EAAE2W,cAAc,8BACxB,GAAIiG,IAAMA,EAAE0D,aAAa,aAAe1D,EAAEwD,UAAU5X,SAAS,aAAc,YAAY5I,EAAEvC,iBACzF,UAAYkD,EAAEigB,SAAW5D,GAAK,aAAeA,EAAE1Y,MAAQtE,EAAEvC,iBAAkB6mB,EAAErE,iBAAiB9mB,KAAK8D,EAAEmD,GAAI,cAE1GiE,GAAG,mDAAoD,2BAA2B,SAAUrE,GAC7F,IAAII,EAAInD,EAAE+C,EAAE/D,QAAQyjB,QAAQ,QAAQ,GACpCziB,EAAEmD,GAAGugB,YAAY,QAAS,eAAe7d,KAAK9C,EAAEsE,UAC9CrH,EAAElD,QAAQsK,GAAG,2BAA2B,WAC1C,IAAK,IAAIrE,EAAI,GAAGpI,MAAMuB,KAAKgM,SAAS0b,iBAAiB,iCAAkC5jB,EAAI,EAAGmD,EAAIJ,EAAEe,OAAQ9D,EAAImD,EAAGnD,IAAK,CACtH,IAAI0D,EAAIX,EAAE/C,GACR+f,EAAIrc,EAAEoW,cAAc,8BACtBiG,EAAEuD,SAAWvD,EAAE0D,aAAa,WAAa/f,EAAE6f,UAAUM,IAAI,UAAYngB,EAAE6f,UAAUR,OAAO,UAE1F,IAAK,IAAI/C,EAAI,EAAGld,GAAKC,EAAI,GAAGpI,MAAMuB,KAAKgM,SAAS0b,iBAAiB,4BAA4B9f,OAAQkc,EAAIld,EAAGkd,IAAK,CAC/G,IAAI3c,EAAIN,EAAEid,GACV,SAAW3c,EAAEkd,aAAa,gBAAkBld,EAAEkgB,UAAUM,IAAI,UAAYxgB,EAAEkgB,UAAUR,OAAO,cAE3F/iB,EAAEyI,GAAGvI,OAASmnB,EAAErE,iBAAkBhjB,EAAEyI,GAAGvI,OAAOyN,YAAc0Z,EAAGrnB,EAAEyI,GAAGvI,OAAOijB,WAAa,WAC1F,OAAOnjB,EAAEyI,GAAGvI,OAAS4jB,EAAGuD,EAAErE,kBAE5B,IAAIe,EAAI,WAENjF,EAAI9e,EAAEyI,GAAGsb,GACTQ,EAAI,CACFN,SAAU,IACVC,UAAU,EACVC,OAAO,EACPC,MAAO,QACPC,MAAM,EACNC,OAAO,GAET5S,EAAI,CACFuS,SAAU,mBACVC,SAAU,UACVC,MAAO,mBACPC,MAAO,mBACPC,KAAM,UACNC,MAAO,WAETnS,EAAI,CACFqS,MAAO,QACPC,IAAK,OAEPiD,EAAI,WACF,SAAS3kB,EAAEA,EAAG/C,GACZ7D,KAAKuoB,OAAS,KAAMvoB,KAAKwoB,UAAY,KAAMxoB,KAAKyoB,eAAiB,KAAMzoB,KAAK0oB,WAAY,EAAI1oB,KAAK2oB,YAAa,EAAI3oB,KAAK4oB,aAAe,KAAM5oB,KAAK6oB,YAAc,EAAG7oB,KAAK8oB,YAAc,EAAG9oB,KAAK+oB,QAAU/oB,KAAKgpB,WAAWnlB,GAAI7D,KAAK8lB,SAAWlf,EAAG5G,KAAKipB,mBAAqBjpB,KAAK8lB,SAASnI,cAAc,wBAAyB3d,KAAKkpB,gBAAkB,iBAAkBnd,SAASqC,iBAAmBlC,UAAUid,eAAiB,EAAGnpB,KAAKopB,cAAgB7oB,QAAQI,OAAO0oB,cAAgB1oB,OAAO2oB,gBAAiBtpB,KAAKupB,qBAEnf,IAAIviB,EAAIJ,EAAE3F,UACV,OAAO+F,EAAEwiB,KAAO,WACdxpB,KAAK2oB,YAAc3oB,KAAKypB,OAAO,SAC9BziB,EAAE0iB,gBAAkB,YACpB3d,SAAS4d,QAAU9lB,EAAE7D,KAAK8lB,UAAUJ,GAAG,aAAe,WAAa7hB,EAAE7D,KAAK8lB,UAAU7Y,IAAI,eAAiBjN,KAAKwpB,QAC9GxiB,EAAE4iB,KAAO,WACV5pB,KAAK2oB,YAAc3oB,KAAKypB,OAAO,SAC9BziB,EAAEihB,MAAQ,SAAUrhB,GACrBA,IAAM5G,KAAK0oB,WAAY,GAAK1oB,KAAK8lB,SAASnI,cAAc,8CAAgDiI,EAAErB,qBAAqBvkB,KAAK8lB,UAAW9lB,KAAK6pB,OAAM,IAAMC,cAAc9pB,KAAKwoB,WAAYxoB,KAAKwoB,UAAY,MAC/MxhB,EAAE6iB,MAAQ,SAAUjjB,GACrBA,IAAM5G,KAAK0oB,WAAY,GAAK1oB,KAAKwoB,YAAcsB,cAAc9pB,KAAKwoB,WAAYxoB,KAAKwoB,UAAY,MAAOxoB,KAAK+oB,QAAQjB,WAAa9nB,KAAK0oB,YAAc1oB,KAAKwoB,UAAYuB,aAAahe,SAASie,gBAAkBhqB,KAAK0pB,gBAAkB1pB,KAAKwpB,MAAMzoB,KAAKf,MAAOA,KAAK+oB,QAAQjB,YACtQ9gB,EAAE1F,GAAK,SAAUsF,GAClB,IAAII,EAAIhH,KACRA,KAAKyoB,eAAiBzoB,KAAK8lB,SAASnI,cAAc,yBAClD,IAAIpW,EAAIvH,KAAKiqB,cAAcjqB,KAAKyoB,gBAChC,KAAM7hB,EAAI5G,KAAKuoB,OAAO5gB,OAAS,GAAKf,EAAI,GAAI,GAAI5G,KAAK2oB,WAAY9kB,EAAE7D,KAAK8lB,UAAUT,IAAI,oBAAoB,WACxG,OAAOre,EAAE1F,GAAGsF,UACN,CACN,GAAIW,IAAMX,EAAG,OAAO5G,KAAKioB,aAAcjoB,KAAK6pB,QAC5C,IAAIjG,EAAIhd,EAAIW,EAAI,OAAS,OACzBvH,KAAKypB,OAAO7F,EAAG5jB,KAAKuoB,OAAO3hB,MAE5BI,EAAEof,QAAU,WACbviB,EAAE7D,KAAK8lB,UAAU1a,IAjDjB,gBAiDyBvH,EAAEwiB,WAAWrmB,KAAK8lB,SAAU,eAAgB9lB,KAAKuoB,OAAS,KAAMvoB,KAAK+oB,QAAU,KAAM/oB,KAAK8lB,SAAW,KAAM9lB,KAAKwoB,UAAY,KAAMxoB,KAAK0oB,UAAY,KAAM1oB,KAAK2oB,WAAa,KAAM3oB,KAAKyoB,eAAiB,KAAMzoB,KAAKipB,mBAAqB,MAC/PjiB,EAAEgiB,WAAa,SAAUpiB,GAC1B,OAAOA,EAAIM,EAAEA,EAAE,GAAIkhB,GAAIxhB,GAAIgf,EAAEjB,gBAAgBiD,EAAGhhB,EAAG2O,GAAI3O,GACtDI,EAAEkjB,aAAe,WAClB,IAAItjB,EAAIsK,KAAKiZ,IAAInqB,KAAK8oB,aACtB,KAAMliB,GAAK,IAAK,CACd,IAAI/C,EAAI+C,EAAI5G,KAAK8oB,YACjB9oB,KAAK8oB,YAAc,EAAGjlB,EAAI,GAAK7D,KAAK4pB,OAAQ/lB,EAAI,GAAK7D,KAAKwpB,SAE3DxiB,EAAEuiB,mBAAqB,WACxB,IAAI3iB,EAAI5G,KACRA,KAAK+oB,QAAQhB,UAAYlkB,EAAE7D,KAAK8lB,UAAU7a,GAAG,uBAAuB,SAAUpH,GAC5E,OAAO+C,EAAEwjB,SAASvmB,MAChB,UAAY7D,KAAK+oB,QAAQd,OAASpkB,EAAE7D,KAAK8lB,UAAU7a,GAAG,0BAA0B,SAAUpH,GAC5F,OAAO+C,EAAEqhB,MAAMpkB,MACdoH,GAAG,0BAA0B,SAAUpH,GACxC,OAAO+C,EAAEijB,MAAMhmB,MACb7D,KAAK+oB,QAAQZ,OAASnoB,KAAKqqB,2BAC9BrjB,EAAEqjB,wBAA0B,WAC7B,IAAIzjB,EAAI5G,KACR,GAAIA,KAAKkpB,gBAAiB,CACxB,IAAIliB,EAAI,SAAUnD,GACd+C,EAAEwiB,eAAiBpT,EAAEnS,EAAEymB,cAAcC,YAAY5R,eAAiB/R,EAAEiiB,YAAchlB,EAAEymB,cAAcE,QAAU5jB,EAAEwiB,gBAAkBxiB,EAAEiiB,YAAchlB,EAAEymB,cAAcG,QAAQ,GAAGD,UAE7KjjB,EAAI,SAAU1D,GACZ+C,EAAEwiB,eAAiBpT,EAAEnS,EAAEymB,cAAcC,YAAY5R,iBAAmB/R,EAAEkiB,YAAcjlB,EAAEymB,cAAcE,QAAU5jB,EAAEiiB,aAAcjiB,EAAEsjB,eAAgB,UAAYtjB,EAAEmiB,QAAQd,QAAUrhB,EAAEqhB,QAASrhB,EAAEgiB,cAAgB8B,aAAa9jB,EAAEgiB,cAAehiB,EAAEgiB,aAAe3e,YAAW,SAAUpG,GAC/Q,OAAO+C,EAAEijB,MAAMhmB,KACd,IAAM+C,EAAEmiB,QAAQjB,YAEvBjkB,EAAE7D,KAAK8lB,SAAS2B,iBAAiB,uBAAuBxc,GAAG,yBAAyB,SAAUrE,GAC5F,OAAOA,EAAEvC,oBACPrE,KAAKopB,eAAiBvlB,EAAE7D,KAAK8lB,UAAU7a,GAAG,2BAA2B,SAAUrE,GACjF,OAAOI,EAAEJ,MACP/C,EAAE7D,KAAK8lB,UAAU7a,GAAG,yBAAyB,SAAUrE,GACzD,OAAOW,EAAEX,MACP5G,KAAK8lB,SAASsB,UAAUM,IAAI,mBAAqB7jB,EAAE7D,KAAK8lB,UAAU7a,GAAG,0BAA0B,SAAUrE,GAC3G,OAAOI,EAAEJ,MACP/C,EAAE7D,KAAK8lB,UAAU7a,GAAG,yBAAyB,SAAUpH,GACzD,OAAO,SAAUA,GACfA,EAAEymB,cAAcG,SAAW5mB,EAAEymB,cAAcG,QAAQ9iB,OAAS,EAAIf,EAAEkiB,YAAc,EAAIliB,EAAEkiB,YAAcjlB,EAAEymB,cAAcG,QAAQ,GAAGD,QAAU5jB,EAAEiiB,YADtI,CAELhlB,MACAA,EAAE7D,KAAK8lB,UAAU7a,GAAG,wBAAwB,SAAUrE,GACxD,OAAOW,EAAEX,SAGZI,EAAEojB,SAAW,SAAUxjB,GACxB,IAAK,kBAAkB8C,KAAK9C,EAAE/D,OAAO2kB,SAAU,OAAQ5gB,EAAE+jB,OACvD,KAAK,GACH/jB,EAAEvC,iBAAkBrE,KAAK4pB,OACzB,MACF,KAAK,GACHhjB,EAAEvC,iBAAkBrE,KAAKwpB,SAE5BxiB,EAAEijB,cAAgB,SAAUrjB,GAC7B,OAAO5G,KAAKuoB,OAAS3hB,GAAKA,EAAEyG,WAAa,GAAG7O,MAAMuB,KAAK6G,EAAEyG,WAAWoa,iBAAiB,mBAAqB,GAAIznB,KAAKuoB,OAAOjd,QAAQ1E,IACjII,EAAE4jB,oBAAsB,SAAUhkB,EAAG/C,GACtC,IAAImD,EAAI,SAAWJ,EACjBW,EAAI,SAAWX,EACfgd,EAAI5jB,KAAKiqB,cAAcpmB,GACvBggB,EAAI7jB,KAAKuoB,OAAO5gB,OAAS,EAC3B,IAAKJ,GAAK,IAAMqc,GAAK5c,GAAK4c,IAAMC,KAAO7jB,KAAK+oB,QAAQb,KAAM,OAAOrkB,EACjE,IAAI8C,GAAKid,GAAK,SAAWhd,GAAK,EAAI,IAAM5G,KAAKuoB,OAAO5gB,OACpD,OAAQ,IAAMhB,EAAI3G,KAAKuoB,OAAOvoB,KAAKuoB,OAAO5gB,OAAS,GAAK3H,KAAKuoB,OAAO5hB,IACnEK,EAAE6jB,mBAAqB,SAAUjkB,EAAGI,GACrC,IAAIO,EAAIvH,KAAKiqB,cAAcrjB,GACzBgd,EAAI5jB,KAAKiqB,cAAcjqB,KAAK8lB,SAASnI,cAAc,0BACnDkG,EAAIhgB,EAAE0iB,MAAM,oBAAqB,CAC/BuE,cAAelkB,EACfmkB,UAAW/jB,EACX2c,KAAMC,EACNtiB,GAAIiG,IAER,OAAO1D,EAAE7D,KAAK8lB,UAAUtB,QAAQX,GAAIA,GACnC7c,EAAEgkB,2BAA6B,SAAUpkB,GAC1C,GAAI5G,KAAKipB,mBAAoB,CAC3B,IAAIjiB,EAAI,GAAGxI,MAAMuB,KAAKC,KAAKipB,mBAAmBxB,iBAAiB,YAC/D5jB,EAAEmD,GAAGwf,YAAY,UACjB,IAAIjf,EAAIvH,KAAKipB,mBAAmB/V,SAASlT,KAAKiqB,cAAcrjB,IAC5DW,GAAK1D,EAAE0D,GAAG0jB,SAAS,YAEpBjkB,EAAEyiB,OAAS,SAAU7iB,EAAGI,GACzB,IAAIO,EACFqc,EACAC,EACAld,EAAI3G,KACJkH,EAAIlH,KAAK8lB,SAASnI,cAAc,yBAChCiH,EAAI5kB,KAAKiqB,cAAc/iB,GACvB2e,EAAI7e,GAAKE,GAAKlH,KAAK4qB,oBAAoBhkB,EAAGM,GAC1CI,EAAItH,KAAKiqB,cAAcpE,GACvBoB,EAAI1mB,QAAQP,KAAKwoB,WACnB,GAAI,SAAW5hB,GAAKW,EAAI,qBAAsBqc,EAAI,qBAAsBC,EAAI,SAAWtc,EAAI,sBAAuBqc,EAAI,qBAAsBC,EAAI,SAAUgC,GAAKhiB,EAAEgiB,GAAGY,SAAS,UAAWzmB,KAAK2oB,YAAa,OAAQ,IAAK3oB,KAAK6qB,mBAAmBhF,EAAGhC,GAAGqC,sBAAwBhf,GAAK2e,EAAG,CACnR7lB,KAAK2oB,YAAa,EAAI1B,GAAKjnB,KAAKioB,QAASjoB,KAAKgrB,2BAA2BnF,GACzE,IAAI8B,EAAI9jB,EAAE0iB,MAAM,mBAAoB,CAClCuE,cAAejF,EACfkF,UAAWlH,EACXF,KAAMiB,EACNtjB,GAAIgG,IAEN,GAAIzD,EAAE7D,KAAK8lB,UAAUW,SAAS,SAAU,CACtC5iB,EAAEgiB,GAAGoF,SAASrH,GAAIgC,EAAEtB,OAAOuB,GAAIhiB,EAAEqD,GAAG+jB,SAAS1jB,GAAI1D,EAAEgiB,GAAGoF,SAAS1jB,GAC/D,IAAI2jB,EAAIC,SAAStF,EAAEzB,aAAa,iBAAkB,IAClD8G,GAAKlrB,KAAK+oB,QAAQqC,gBAAkBprB,KAAK+oB,QAAQqC,iBAAmBprB,KAAK+oB,QAAQjB,SAAU9nB,KAAK+oB,QAAQjB,SAAWoD,GAAKlrB,KAAK+oB,QAAQjB,SAAW9nB,KAAK+oB,QAAQqC,iBAAmBprB,KAAK+oB,QAAQjB,SAC7L,IAAIF,EAAIhC,EAAEvB,iCAAiCnd,GAC3CrD,EAAEqD,GAAGme,IAAIO,EAAE7B,gBAAgB,WACzBlgB,EAAEgiB,GAAGW,YAAYjf,EAAI,IAAMqc,GAAGqH,SAAS,UAAWpnB,EAAEqD,GAAGsf,YAAY,UAAY5C,EAAI,IAAMrc,GAAIZ,EAAEgiB,YAAa,EAAI1e,YAAW,WACzH,OAAOpG,EAAE8C,EAAEmf,UAAUtB,QAAQmD,KAC5B,MACFvC,qBAAqBwC,QACnB/jB,EAAEqD,GAAGsf,YAAY,UAAW3iB,EAAEgiB,GAAGoF,SAAS,UAAWjrB,KAAK2oB,YAAa,EAAI9kB,EAAE7D,KAAK8lB,UAAUtB,QAAQmD,GAC3GV,GAAKjnB,KAAK6pB,UAEXjjB,EAAEigB,iBAAmB,SAAU7f,GAChC,OAAOhH,KAAK8mB,MAAK,WACf,IAAIvf,EAAI1D,EAAE7D,MAAMmX,KAAK,eACnByM,EAAI1c,EAAEA,EAAE,GAAIkhB,GAAIvkB,EAAE7D,MAAMmX,QAC1B,iBAAmBnQ,IAAM4c,EAAI1c,EAAEA,EAAE,GAAI0c,GAAI5c,IACzC,IAAI6c,EAAI,iBAAmB7c,EAAIA,EAAI4c,EAAEoE,MACrC,GAAIzgB,IAAMA,EAAI,IAAIX,EAAE5G,KAAM4jB,GAAI/f,EAAE7D,MAAMmX,KAAK,cAAe5P,IAAK,iBAAmBP,EAAGO,EAAEjG,GAAG0F,QAAQ,GAAI,iBAAmB6c,EAAG,CAC1H,QAAI,IAAsBtc,EAAEsc,GAAI,MAAM,IAAIpS,UAAU,oBAAsBoS,EAAI,KAC9Etc,EAAEsc,UACGD,EAAEkE,UAAYlE,EAAEyH,OAAS9jB,EAAE0gB,QAAS1gB,EAAEsiB,aAE9CjjB,EAAE0kB,qBAAuB,SAAUtkB,GACpC,IAAIO,EAAIqe,EAAEzB,uBAAuBnkB,MACjC,GAAIuH,EAAG,CACL,IAAIqc,EAAI/f,EAAE0D,GAAG,GACb,GAAIqc,GAAK/f,EAAE+f,GAAG6C,SAAS,YAAa,CAClC,IAAI5C,EAAI3c,EAAEA,EAAE,GAAIrD,EAAE+f,GAAGzM,QAAStT,EAAE7D,MAAMmX,QACpCxQ,EAAI3G,KAAKokB,aAAa,iBACxBzd,IAAMkd,EAAEiE,UAAW,GAAKlhB,EAAEigB,iBAAiB9mB,KAAK8D,EAAE+f,GAAIC,GAAIld,GAAK9C,EAAE+f,GAAGzM,KAAK,eAAe7V,GAAGqF,GAAIK,EAAE3C,oBAGpGuf,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,UAER,CACDpB,IAAK,UACLoB,IAAK,WACH,OAAOqhB,MAENxhB,EAzKH,GA2KN/C,EAAEkI,UAAUd,GAAG,6BAA8B,gCAAiCsgB,EAAED,sBAAuBznB,EAAElD,QAAQsK,GAAG,6BAA6B,WAC/I,IAAK,IAAIrE,EAAI,GAAGpI,MAAMuB,KAAKgM,SAAS0b,iBAAiB,2BAA4BzgB,EAAI,EAAGO,EAAIX,EAAEe,OAAQX,EAAIO,EAAGP,IAAK,CAChH,IAAI4c,EAAI/f,EAAE+C,EAAEI,IACZukB,EAAE1E,iBAAiB9mB,KAAK6jB,EAAGA,EAAEzM,YAE7BtT,EAAEyI,GAAGsb,GAAK2D,EAAE1E,iBAAkBhjB,EAAEyI,GAAGsb,GAAGpW,YAAc+Z,EAAG1nB,EAAEyI,GAAGsb,GAAGZ,WAAa,WAC9E,OAAOnjB,EAAEyI,GAAGsb,GAAKjF,EAAG4I,EAAE1E,kBAExB,IAAI2E,EAAI,WACNC,EAAI5nB,EAAEyI,GAAGkf,GACTE,EAAI,CACFxE,QAAQ,EACR/T,OAAQ,IAEVsZ,EAAI,CACFvF,OAAQ,UACR/T,OAAQ,oBAEVwZ,EAAI,WACF,SAAS/lB,EAAEA,EAAG/C,GACZ7D,KAAK2rB,kBAAmB,EAAI3rB,KAAK8lB,SAAWlf,EAAG5G,KAAK+oB,QAAU/oB,KAAKgpB,WAAWnlB,GAAI7D,KAAK4rB,cAAgB,GAAGptB,MAAMuB,KAAKgM,SAAS0b,iBAAiB,mCAAqC7gB,EAAEilB,GAAK,6CAA+CjlB,EAAEilB,GAAK,OACjP,IAAK,IAAI7kB,EAAI,GAAGxI,MAAMuB,KAAKgM,SAAS0b,iBAAiB,6BAA8BlgB,EAAI,EAAGqc,EAAI5c,EAAEW,OAAQJ,EAAIqc,EAAGrc,IAAK,CAClH,IAAIsc,EAAI7c,EAAEO,GACRZ,EAAIif,EAAEzB,uBAAuBN,GAC7B3c,EAAI,GAAG1I,MAAMuB,KAAKgM,SAAS0b,iBAAiB9gB,IAAIrG,QAAO,SAAUuD,GAC/D,OAAOA,IAAM+C,KAEjB,OAASD,GAAKO,EAAES,OAAS,IAAM3H,KAAK8rB,UAAYnlB,EAAG3G,KAAK4rB,cAAc1uB,KAAK2mB,IAE7E7jB,KAAK+rB,QAAU/rB,KAAK+oB,QAAQ5V,OAASnT,KAAKgsB,aAAe,KAAMhsB,KAAK+oB,QAAQ5V,QAAUnT,KAAKisB,0BAA0BjsB,KAAK8lB,SAAU9lB,KAAK4rB,eAAgB5rB,KAAK+oB,QAAQ7B,QAAUlnB,KAAKknB,SAEvL,IAAIlgB,EAAIJ,EAAE3F,UACV,OAAO+F,EAAEkgB,OAAS,WAChBrjB,EAAE7D,KAAK8lB,UAAUW,SAAS,QAAUzmB,KAAKsf,OAAStf,KAAKksB,QACtDllB,EAAEklB,KAAO,WACV,IAAIllB,EACFO,EACAqc,EAAI5jB,KACN,KAAKA,KAAK2rB,kBAAqB9nB,EAAE7D,KAAK8lB,UAAUW,SAAS,UAAYzmB,KAAK+rB,SAAW,KAAO/kB,EAAI,GAAGxI,MAAMuB,KAAKC,KAAK+rB,QAAQtE,iBAAiB,uBAAuBnnB,QAAO,SAAUsG,GAClL,MAAO,iBAAmBgd,EAAEmF,QAAQ5V,OAASvM,EAAEwd,aAAa,iBAAmBR,EAAEmF,QAAQ5V,OAASvM,EAAEwgB,UAAU5X,SAAS,gBACrH7H,SAAWX,EAAI,MAASA,IAAMO,EAAI1D,EAAEmD,GAAGmlB,IAAInsB,KAAK8rB,WAAW3U,KAAK,iBAAmB5P,EAAEokB,mBAAoB,CAC3G,IAAI9H,EAAIhgB,EAAE0iB,MAAM,oBAChB,GAAI1iB,EAAE7D,KAAK8lB,UAAUtB,QAAQX,IAAKA,EAAEqC,qBAAsB,CACxDlf,IAAMJ,EAAEigB,iBAAiB9mB,KAAK8D,EAAEmD,GAAGmlB,IAAInsB,KAAK8rB,WAAY,QAASvkB,GAAK1D,EAAEmD,GAAGmQ,KAAK,cAAe,OAC/F,IAAIxQ,EAAI3G,KAAKosB,gBACbvoB,EAAE7D,KAAK8lB,UAAUU,YAAY,YAAYyE,SAAS,cAAejrB,KAAK8lB,SAASrlB,MAAMkG,GAAK,EAAG3G,KAAK4rB,cAAcjkB,QAAU9D,EAAE7D,KAAK4rB,eAAepF,YAAY,aAAa6F,KAAK,iBAAiB,GAAKrsB,KAAKssB,kBAAiB,GAC1N,IAAIplB,EAAI,UAAYP,EAAE,GAAGgS,cAAgBhS,EAAEnI,MAAM,IAC/ComB,EAAIgB,EAAEvB,iCAAiCrkB,KAAK8lB,UAC9CjiB,EAAE7D,KAAK8lB,UAAUT,IAAIO,EAAE7B,gBAAgB,WACrClgB,EAAE+f,EAAEkC,UAAUU,YAAY,cAAcyE,SAAS,iBAAkBrH,EAAEkC,SAASrlB,MAAMkG,GAAK,GAAIid,EAAE0I,kBAAiB,GAAKzoB,EAAE+f,EAAEkC,UAAUtB,QAAQ,wBAC1IY,qBAAqBR,GAAI5kB,KAAK8lB,SAASrlB,MAAMkG,GAAK3G,KAAK8lB,SAAS5e,GAAK,QAG3EF,EAAEsY,KAAO,WACV,IAAI1Y,EAAI5G,KACR,IAAKA,KAAK2rB,kBAAoB9nB,EAAE7D,KAAK8lB,UAAUW,SAAS,QAAS,CAC/D,IAAIzf,EAAInD,EAAE0iB,MAAM,oBAChB,GAAI1iB,EAAE7D,KAAK8lB,UAAUtB,QAAQxd,IAAKA,EAAEkf,qBAAsB,CACxD,IAAI3e,EAAIvH,KAAKosB,gBACbpsB,KAAK8lB,SAASrlB,MAAM8G,GAAKvH,KAAK8lB,SAAStT,wBAAwBjL,GAAK,KAAMqe,EAAEtB,OAAOtkB,KAAK8lB,UAAWjiB,EAAE7D,KAAK8lB,UAAUmF,SAAS,cAAczE,YAAY,iBACvJ,IAAI5C,EAAI5jB,KAAK4rB,cAAcjkB,OAC3B,GAAIic,EAAI,EAAG,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAGC,IAAK,CACrC,IAAIld,EAAI3G,KAAK4rB,cAAc/H,GACzB3c,EAAI0e,EAAEzB,uBAAuBxd,GAC3B,OAASO,IAAGrD,EAAE,GAAGrF,MAAMuB,KAAKgM,SAAS0b,iBAAiBvgB,KAAKuf,SAAS,SAAW5iB,EAAE8C,GAAGskB,SAAS,aAAaoB,KAAK,iBAAiB,IAEtIrsB,KAAKssB,kBAAiB,GACtBtsB,KAAK8lB,SAASrlB,MAAM8G,GAAK,GACzB,IAAIqd,EAAIgB,EAAEvB,iCAAiCrkB,KAAK8lB,UAChDjiB,EAAE7D,KAAK8lB,UAAUT,IAAIO,EAAE7B,gBAAgB,WACrCnd,EAAE0lB,kBAAiB,GAAKzoB,EAAE+C,EAAEkf,UAAUU,YAAY,cAAcyE,SAAS,YAAYzG,QAAQ,yBAC5FY,qBAAqBR,MAG3B5d,EAAEslB,iBAAmB,SAAU1lB,GAChC5G,KAAK2rB,iBAAmB/kB,GACvBI,EAAEof,QAAU,WACbviB,EAAEwiB,WAAWrmB,KAAK8lB,SAAU,eAAgB9lB,KAAK+oB,QAAU,KAAM/oB,KAAK+rB,QAAU,KAAM/rB,KAAK8lB,SAAW,KAAM9lB,KAAK4rB,cAAgB,KAAM5rB,KAAK2rB,iBAAmB,MAC9J3kB,EAAEgiB,WAAa,SAAUpiB,GAC1B,OAAQA,EAAIM,EAAEA,EAAE,GAAIwkB,GAAI9kB,IAAIsgB,OAAS3mB,QAAQqG,EAAEsgB,QAAStB,EAAEjB,gBAAgB6G,EAAG5kB,EAAG6lB,GAAI7lB,GACnFI,EAAEolB,cAAgB,WACnB,OAAOvoB,EAAE7D,KAAK8lB,UAAUW,SAAS,SAAW,QAAU,UACrDzf,EAAEglB,WAAa,WAChB,IAAIhlB,EACFO,EAAIvH,KACN4lB,EAAElB,UAAU1kB,KAAK+oB,QAAQ5V,SAAWnM,EAAIhH,KAAK+oB,QAAQ5V,YAAQ,IAAsBnT,KAAK+oB,QAAQ5V,OAAOiN,SAAWpZ,EAAIhH,KAAK+oB,QAAQ5V,OAAO,KAAOnM,EAAI+E,SAAS4R,cAAc3d,KAAK+oB,QAAQ5V,QACzL,IAAIyQ,EAAI,yCAA2C5jB,KAAK+oB,QAAQ5V,OAAS,KACvE0Q,EAAI,GAAGrlB,MAAMuB,KAAKiH,EAAEygB,iBAAiB7D,IACvC,OAAO/f,EAAEggB,GAAGiD,MAAK,SAAUjjB,EAAGmD,GAC5BO,EAAE0kB,0BAA0BrlB,EAAE2lB,sBAAsBvlB,GAAI,CAACA,OACvDA,GACHA,EAAEilB,0BAA4B,SAAUrlB,EAAGI,GAC5C,IAAIO,EAAI1D,EAAE+C,GAAG6f,SAAS,QACtBzf,EAAEW,QAAU9D,EAAEmD,GAAGugB,YAAY,aAAchgB,GAAG8kB,KAAK,gBAAiB9kB,IACnEX,EAAE2lB,sBAAwB,SAAU3lB,GACrC,IAAI/C,EAAI+hB,EAAEzB,uBAAuBvd,GACjC,OAAO/C,EAAIkI,SAAS4R,cAAc9Z,GAAK,MACtC+C,EAAEigB,iBAAmB,SAAU7f,GAChC,OAAOhH,KAAK8mB,MAAK,WACf,IAAIvf,EAAI1D,EAAE7D,MACR4jB,EAAIrc,EAAE4P,KAAK,eACX0M,EAAI3c,EAAEA,EAAEA,EAAE,GAAIwkB,GAAInkB,EAAE4P,QAAS,iBAAmBnQ,GAAKA,EAAIA,EAAI,IAC/D,IAAK4c,GAAKC,EAAEqD,QAAU,iBAAmBlgB,GAAK,YAAY0C,KAAK1C,KAAO6c,EAAEqD,QAAS,GAAKtD,IAAMA,EAAI,IAAIhd,EAAE5G,KAAM6jB,GAAItc,EAAE4P,KAAK,cAAeyM,IAAK,iBAAmB5c,EAAG,CAC/J,QAAI,IAAsB4c,EAAE5c,GAAI,MAAM,IAAIyK,UAAU,oBAAsBzK,EAAI,KAC9E4c,EAAE5c,UAGL4c,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,UAER,CACDpB,IAAK,UACLoB,IAAK,WACH,OAAO2kB,MAEN9kB,EAnGH,GAqGN/C,EAAEkI,UAAUd,GAAG,6BAA8B,4BAA4B,SAAUrE,GACjF,MAAQA,EAAE4lB,cAAchF,SAAW5gB,EAAEvC,iBACrC,IAAI2C,EAAInD,EAAE7D,MACRuH,EAAIqe,EAAEzB,uBAAuBnkB,MAC7B4jB,EAAI,GAAGplB,MAAMuB,KAAKgM,SAAS0b,iBAAiBlgB,IAC9C1D,EAAE+f,GAAGkD,MAAK,WACR,IAAIlgB,EAAI/C,EAAE7D,MACRuH,EAAIX,EAAEuQ,KAAK,eAAiB,SAAWnQ,EAAEmQ,OAC3CwV,EAAE9F,iBAAiB9mB,KAAK6G,EAAGW,SAE3B1D,EAAEyI,GAAGkf,GAAKmB,EAAE9F,iBAAkBhjB,EAAEyI,GAAGkf,GAAGha,YAAcmb,EAAG9oB,EAAEyI,GAAGkf,GAAGxE,WAAa,WAC9E,OAAOnjB,EAAEyI,GAAGkf,GAAKC,EAAGkB,EAAE9F,kBAExB,IAAI6F,EAAI,WACNE,EAAI/oB,EAAEyI,GAAGogB,GACTM,EAAI,IAAInI,OAAO,YACfoI,EAAI,CACF/Y,OAAQ,EACR8D,MAAM,EACN6U,SAAU,eACVrY,UAAW,SACXsY,QAAS,UACTC,aAAc,MAEhBoB,EAAI,CACFja,OAAQ,2BACR8D,KAAM,UACN6U,SAAU,mBACVrY,UAAW,mBACXsY,QAAS,SACTC,aAAc,iBAEhBsB,EAAI,WACF,SAASznB,EAAEA,EAAG/C,GACZ7D,KAAK8lB,SAAWlf,EAAG5G,KAAKktB,QAAU,KAAMltB,KAAK+oB,QAAU/oB,KAAKgpB,WAAWnlB,GAAI7D,KAAKmtB,MAAQntB,KAAKotB,kBAAmBptB,KAAKqtB,UAAYrtB,KAAKstB,gBAAiBttB,KAAKupB,qBAE9J,IAAIhiB,EAAIX,EAAE3F,UACV,OAAOsG,EAAE2f,OAAS,WAChB,IAAKlnB,KAAK8lB,SAASyH,WAAa1pB,EAAE7D,KAAK8lB,UAAUW,SAAS,YAAa,CACrE,IAAIzf,EAAInD,EAAE7D,KAAKmtB,OAAO1G,SAAS,QAC/B7f,EAAE4mB,cAAexmB,GAAKhH,KAAKksB,MAAK,KAEjC3kB,EAAE2kB,KAAO,SAAU3kB,GACpB,QAAI,IAAWA,IAAMA,GAAI,KAAOvH,KAAK8lB,SAASyH,UAAY1pB,EAAE7D,KAAK8lB,UAAUW,SAAS,aAAe5iB,EAAE7D,KAAKmtB,OAAO1G,SAAS,SAAU,CAClI,IAAI7C,EAAI,CACJkH,cAAe9qB,KAAK8lB,UAEtBjC,EAAIhgB,EAAE0iB,MAAM,mBAAoB3C,GAChCjd,EAAIC,EAAE6mB,sBAAsBztB,KAAK8lB,UACnC,GAAIjiB,EAAE8C,GAAG6d,QAAQX,IAAKA,EAAEqC,qBAAsB,CAC5C,IAAKlmB,KAAKqtB,WAAa9lB,EAAG,CACxB,QAAI,IAAsBP,EAAG,MAAM,IAAIyK,UAAU,oEACjD,IAAIvK,EAAIlH,KAAK8lB,SACb,WAAa9lB,KAAK+oB,QAAQvU,UAAYtN,EAAIP,EAAIif,EAAElB,UAAU1kB,KAAK+oB,QAAQvU,aAAetN,EAAIlH,KAAK+oB,QAAQvU,eAAW,IAAsBxU,KAAK+oB,QAAQvU,UAAU4L,SAAWlZ,EAAIlH,KAAK+oB,QAAQvU,UAAU,KAAM,iBAAmBxU,KAAK+oB,QAAQ8D,UAAYhpB,EAAE8C,GAAGskB,SAAS,mBAAoBjrB,KAAKktB,QAAU,IAAIlmB,EAAEE,EAAGlH,KAAKmtB,MAAOntB,KAAK0tB,oBAEpU,iBAAkB3hB,SAASqC,iBAAmB,IAAMvK,EAAE8C,GAAG2f,QAAQ,eAAe3e,QAAU9D,EAAEkI,SAASyB,MAAM0F,WAAWjI,GAAG,YAAa,KAAMpH,EAAE8pB,MAAO3tB,KAAK8lB,SAASuB,QAASrnB,KAAK8lB,SAAS9F,aAAa,iBAAiB,GAAKnc,EAAE7D,KAAKmtB,OAAO5F,YAAY,QAAS1jB,EAAE8C,GAAG4gB,YAAY,QAAQ/C,QAAQ3gB,EAAE0iB,MAAM,oBAAqB3C,OAGjUrc,EAAE+X,KAAO,WACV,IAAKtf,KAAK8lB,SAASyH,WAAa1pB,EAAE7D,KAAK8lB,UAAUW,SAAS,aAAe5iB,EAAE7D,KAAKmtB,OAAO1G,SAAS,QAAS,CACvG,IAAIzf,EAAI,CACJ8jB,cAAe9qB,KAAK8lB,UAEtBve,EAAI1D,EAAE0iB,MAAM,mBAAoBvf,GAChC4c,EAAIhd,EAAE6mB,sBAAsBztB,KAAK8lB,UACnCjiB,EAAE+f,GAAGY,QAAQjd,GAAIA,EAAE2e,uBAAyBlmB,KAAKktB,SAAWltB,KAAKktB,QAAQrU,UAAWhV,EAAE7D,KAAKmtB,OAAO5F,YAAY,QAAS1jB,EAAE+f,GAAG2D,YAAY,QAAQ/C,QAAQ3gB,EAAE0iB,MAAM,qBAAsBvf,OAEvLO,EAAE6e,QAAU,WACbviB,EAAEwiB,WAAWrmB,KAAK8lB,SAAU,eAAgBjiB,EAAE7D,KAAK8lB,UAAU1a,IAAI,gBAAiBpL,KAAK8lB,SAAW,KAAM9lB,KAAKmtB,MAAQ,KAAM,OAASntB,KAAKktB,UAAYltB,KAAKktB,QAAQrU,UAAW7Y,KAAKktB,QAAU,OAC3L3lB,EAAEmQ,OAAS,WACZ1X,KAAKqtB,UAAYrtB,KAAKstB,gBAAiB,OAASttB,KAAKktB,SAAWltB,KAAKktB,QAAQjT,kBAC5E1S,EAAEgiB,mBAAqB,WACxB,IAAI3iB,EAAI5G,KACR6D,EAAE7D,KAAK8lB,UAAU7a,GAAG,qBAAqB,SAAUpH,GACjDA,EAAEQ,iBAAkBR,EAAE+pB,kBAAmBhnB,EAAEsgB,aAE5C3f,EAAEyhB,WAAa,SAAUpiB,GAC1B,OAAOA,EAAIM,EAAEA,EAAEA,EAAE,GAAIlH,KAAK0jB,YAAYmK,SAAUhqB,EAAE7D,KAAK8lB,UAAU3O,QAASvQ,GAAIgf,EAAEjB,gBAAgB+H,EAAG9lB,EAAG5G,KAAK0jB,YAAYoK,aAAclnB,GACpIW,EAAE6lB,gBAAkB,WACrB,IAAKptB,KAAKmtB,MAAO,CACf,IAAItpB,EAAI+C,EAAE6mB,sBAAsBztB,KAAK8lB,UACrCjiB,IAAM7D,KAAKmtB,MAAQtpB,EAAE8Z,cAAc,mBAErC,OAAO3d,KAAKmtB,OACX5lB,EAAEwmB,cAAgB,WACnB,IAAInnB,EAAI/C,EAAE7D,KAAK8lB,SAASzY,YACtBrG,EAAI,eACN,OAAOJ,EAAE6f,SAAS,UAAYzf,EAAInD,EAAE7D,KAAKmtB,OAAO1G,SAAS,uBAAyB,UAAY,YAAc7f,EAAE6f,SAAS,aAAezf,EAAI,cAAgBJ,EAAE6f,SAAS,YAAczf,EAAI,aAAenD,EAAE7D,KAAKmtB,OAAO1G,SAAS,yBAA2Bzf,EAAI,cAAeA,GAC1QO,EAAE+lB,cAAgB,WACnB,OAAOzpB,EAAE7D,KAAK8lB,UAAUQ,QAAQ,WAAW3e,OAAS,GACnDJ,EAAEymB,WAAa,WAChB,IAAIpnB,EAAI5G,KACN6D,EAAI,GACN,MAAO,mBAAqB7D,KAAK+oB,QAAQ7U,OAASrQ,EAAEyI,GAAK,SAAUzI,GACjE,OAAOA,EAAE0O,QAAUrL,EAAEA,EAAE,GAAIrD,EAAE0O,SAAU3L,EAAEmiB,QAAQ7U,OAAOrQ,EAAE0O,QAAS3L,EAAEkf,WAAa,IAAKjiB,GACrFA,EAAEqQ,OAASlU,KAAK+oB,QAAQ7U,OAAQrQ,GACnC0D,EAAEmmB,iBAAmB,WACtB,IAAI9mB,EAAI,CACNoO,UAAWhV,KAAK+tB,gBAChB7W,UAAW,CACThD,OAAQlU,KAAKguB,aACbhW,KAAM,CACJP,QAASzX,KAAK+oB,QAAQ/Q,MAExB4E,gBAAiB,CACflI,kBAAmB1U,KAAK+oB,QAAQ8D,YAItC,MAAO,WAAa7sB,KAAK+oB,QAAQ+D,UAAYlmB,EAAEsQ,UAAU6I,WAAa,CACpEtI,SAAS,IACPvQ,EAAEA,EAAE,GAAIN,GAAI5G,KAAK+oB,QAAQgE,eAC5BnmB,EAAEigB,iBAAmB,SAAU7f,GAChC,OAAOhH,KAAK8mB,MAAK,WACf,IAAIvf,EAAI1D,EAAE7D,MAAMmX,KAAK,eACrB,GAAI5P,IAAMA,EAAI,IAAIX,EAAE5G,KAAM,iBAAmBgH,EAAIA,EAAI,MAAOnD,EAAE7D,MAAMmX,KAAK,cAAe5P,IAAK,iBAAmBP,EAAG,CACjH,QAAI,IAAsBO,EAAEP,GAAI,MAAM,IAAIyK,UAAU,oBAAsBzK,EAAI,KAC9EO,EAAEP,UAGLJ,EAAE4mB,YAAc,SAAUxmB,GAC3B,IAAKA,GAAK,IAAMA,EAAE2jB,QAAU,UAAY3jB,EAAEkE,MAAQ,IAAMlE,EAAE2jB,OAAQ,IAAK,IAAIpjB,EAAI,GAAG/I,MAAMuB,KAAKgM,SAAS0b,iBAAiB,6BAA8B7D,EAAI,EAAGC,EAAItc,EAAEI,OAAQic,EAAIC,EAAGD,IAAK,CACpL,IAAIjd,EAAIC,EAAE6mB,sBAAsBlmB,EAAEqc,IAChC1c,EAAIrD,EAAE0D,EAAEqc,IAAIzM,KAAK,eACjByN,EAAI,CACFkG,cAAevjB,EAAEqc,IAErB,GAAI5c,GAAK,UAAYA,EAAEkE,OAAS0Z,EAAEqJ,WAAajnB,GAAIE,EAAG,CACpD,IAAI0e,EAAI1e,EAAEimB,MACV,GAAItpB,EAAE8C,GAAG8f,SAAS,WAAazf,IAAM,UAAYA,EAAEkE,MAAQ,kBAAkBxB,KAAK1C,EAAEnE,OAAO2kB,UAAY,UAAYxgB,EAAEkE,MAAQ,IAAMlE,EAAE2jB,QAAU9mB,EAAE2L,SAAS7I,EAAGK,EAAEnE,SAAU,CACvK,IAAIgjB,EAAIhiB,EAAE0iB,MAAM,mBAAoB3B,GACpC/gB,EAAE8C,GAAG6d,QAAQqB,GAAIA,EAAEK,uBAAyB,iBAAkBna,SAASqC,iBAAmBvK,EAAEkI,SAASyB,MAAM0F,WAAW9H,IAAI,YAAa,KAAMvH,EAAE8pB,MAAOpmB,EAAEqc,GAAG5D,aAAa,gBAAiB,SAAU9Y,EAAEgmB,SAAWhmB,EAAEgmB,QAAQrU,UAAWhV,EAAE+hB,GAAGY,YAAY,QAAS3iB,EAAE8C,GAAG6f,YAAY,QAAQhC,QAAQ3gB,EAAE0iB,MAAM,qBAAsB3B,SAInUhe,EAAE6mB,sBAAwB,SAAU7mB,GACrC,IAAI/C,EACFmD,EAAI4e,EAAEzB,uBAAuBvd,GAC/B,OAAOI,IAAMnD,EAAIkI,SAAS4R,cAAc3W,IAAKnD,GAAK+C,EAAEyG,YACnDzG,EAAEsnB,uBAAyB,SAAUlnB,GACtC,KAAM,kBAAkB0C,KAAK1C,EAAEnE,OAAO2kB,SAAW,KAAOxgB,EAAE2jB,OAAS,KAAO3jB,EAAE2jB,QAAU,KAAO3jB,EAAE2jB,OAAS,KAAO3jB,EAAE2jB,OAAS9mB,EAAEmD,EAAEnE,QAAQyjB,QAAQ,kBAAkB3e,SAAWqlB,EAAEtjB,KAAK1C,EAAE2jB,UAAY3qB,KAAKutB,WAAa1pB,EAAE7D,MAAMymB,SAAS,YAAa,CAC9O,IAAIlf,EAAIX,EAAE6mB,sBAAsBztB,MAC9B4jB,EAAI/f,EAAE0D,GAAGkf,SAAS,QACpB,GAAI7C,GAAK,KAAO5c,EAAE2jB,MAAO,CACvB,GAAI3jB,EAAE3C,iBAAkB2C,EAAE4mB,mBAAoBhK,GAAKA,IAAM,KAAO5c,EAAE2jB,OAAS,KAAO3jB,EAAE2jB,OAAQ,OAAO,KAAO3jB,EAAE2jB,OAAS9mB,EAAE0D,EAAEoW,cAAc,6BAA6B6G,QAAQ,cAAe3gB,EAAE7D,MAAMwkB,QAAQ,SAC3M,IAAIX,EAAI,GAAGrlB,MAAMuB,KAAKwH,EAAEkgB,iBAAiB,gEAAgEnnB,QAAO,SAAUsG,GACxH,OAAO/C,EAAE+C,GAAG8e,GAAG,eAEjB,GAAI,IAAM7B,EAAElc,OAAQ,CAClB,IAAIhB,EAAIkd,EAAEvY,QAAQtE,EAAEnE,QACpB,KAAOmE,EAAE2jB,OAAShkB,EAAI,GAAKA,IAAK,KAAOK,EAAE2jB,OAAShkB,EAAIkd,EAAElc,OAAS,GAAKhB,IAAKA,EAAI,IAAMA,EAAI,GAAIkd,EAAEld,GAAG0gB,YAIvGzD,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,UAER,CACDpB,IAAK,UACLoB,IAAK,WACH,OAAOkmB,IAER,CACDtnB,IAAK,cACLoB,IAAK,WACH,OAAOonB,MAENvnB,EAzIH,GA2IN/C,EAAEkI,UAAUd,GAAG,+BAAgC,2BAA4BojB,EAAEH,wBAAwBjjB,GAAG,+BAAgC,iBAAkBojB,EAAEH,wBAAwBjjB,GAAG,wDAAyDojB,EAAEb,aAAaviB,GAAG,6BAA8B,4BAA4B,SAAUrE,GACpUA,EAAEvC,iBAAkBuC,EAAEgnB,kBAAmBS,EAAExH,iBAAiB9mB,KAAK8D,EAAE7D,MAAO,aACzEiL,GAAG,6BAA8B,kBAAkB,SAAUrE,GAC9DA,EAAEgnB,qBACA/pB,EAAEyI,GAAGogB,GAAK2B,EAAExH,iBAAkBhjB,EAAEyI,GAAGogB,GAAGlb,YAAc6c,EAAGxqB,EAAEyI,GAAGogB,GAAG1F,WAAa,WAC9E,OAAOnjB,EAAEyI,GAAGogB,GAAKE,EAAGyB,EAAExH,kBAExB,IAAI0H,EAAI1qB,EAAEyI,GAAG8hB,MACXtY,EAAI,CACFwY,UAAU,EACVvG,UAAU,EACVV,OAAO,EACP6E,MAAM,GAER0V,EAAI,CACFtT,SAAU,mBACVvG,SAAU,UACVV,MAAO,UACP6E,KAAM,WAERiE,EAAI,WACF,SAASvpB,EAAEA,EAAG/C,GACZ7D,KAAK+oB,QAAU/oB,KAAKgpB,WAAWnlB,GAAI7D,KAAK8lB,SAAWlf,EAAG5G,KAAKwuB,QAAU5nB,EAAE+W,cAAc,iBAAkB3d,KAAKyuB,UAAY,KAAMzuB,KAAK0uB,UAAW,EAAI1uB,KAAK2uB,oBAAqB,EAAI3uB,KAAK4uB,sBAAuB,EAAI5uB,KAAK2rB,kBAAmB,EAAI3rB,KAAK6uB,gBAAkB,EAErQ,IAAI7nB,EAAIJ,EAAE3F,UACV,OAAO+F,EAAEkgB,OAAS,SAAUtgB,GAC1B,OAAO5G,KAAK0uB,SAAW1uB,KAAKsf,OAAStf,KAAKksB,KAAKtlB,IAC9CI,EAAEklB,KAAO,SAAUtlB,GACpB,IAAII,EAAIhH,KACR,IAAKA,KAAK0uB,WAAa1uB,KAAK2rB,iBAAkB,CAC5C9nB,EAAE7D,KAAK8lB,UAAUW,SAAS,UAAYzmB,KAAK2rB,kBAAmB,GAC9D,IAAIpkB,EAAI1D,EAAE0iB,MAAM,gBAAiB,CAC/BuE,cAAelkB,IAEjB/C,EAAE7D,KAAK8lB,UAAUtB,QAAQjd,GAAIvH,KAAK0uB,UAAYnnB,EAAE2e,uBAAyBlmB,KAAK0uB,UAAW,EAAI1uB,KAAK8uB,kBAAmB9uB,KAAK+uB,gBAAiB/uB,KAAKgvB,gBAAiBhvB,KAAKivB,kBAAmBjvB,KAAKkvB,kBAAmBrrB,EAAE7D,KAAK8lB,UAAU7a,GAAG,yBAA0B,0BAA0B,SAAUrE,GACjS,OAAOI,EAAEsY,KAAK1Y,MACZ/C,EAAE7D,KAAKwuB,SAASvjB,GAAG,8BAA8B,WACnDpH,EAAEmD,EAAE8e,UAAUT,IAAI,4BAA4B,SAAUze,GACtD/C,EAAE+C,EAAE/D,QAAQ6iB,GAAG1e,EAAE8e,YAAc9e,EAAE4nB,sBAAuB,SAExD5uB,KAAKmvB,eAAc,WACrB,OAAOnoB,EAAEooB,aAAaxoB,SAGzBI,EAAEsY,KAAO,SAAU1Y,GACpB,IAAII,EAAIhH,KACR,GAAI4G,GAAKA,EAAEvC,iBAAkBrE,KAAK0uB,WAAa1uB,KAAK2rB,iBAAkB,CACpE,IAAIpkB,EAAI1D,EAAE0iB,MAAM,iBAChB,GAAI1iB,EAAE7D,KAAK8lB,UAAUtB,QAAQjd,GAAIvH,KAAK0uB,WAAannB,EAAE2e,qBAAsB,CACzElmB,KAAK0uB,UAAW,EAChB,IAAI9K,EAAI/f,EAAE7D,KAAK8lB,UAAUW,SAAS,QAClC,GAAI7C,IAAM5jB,KAAK2rB,kBAAmB,GAAK3rB,KAAKivB,kBAAmBjvB,KAAKkvB,kBAAmBrrB,EAAEkI,UAAUX,IAAI,oBAAqBvH,EAAE7D,KAAK8lB,UAAUU,YAAY,QAAS3iB,EAAE7D,KAAK8lB,UAAU1a,IAAI,0BAA2BvH,EAAE7D,KAAKwuB,SAASpjB,IAAI,8BAA+BwY,EAAG,CACtQ,IAAIC,EAAI+B,EAAEvB,iCAAiCrkB,KAAK8lB,UAChDjiB,EAAE7D,KAAK8lB,UAAUT,IAAIO,EAAE7B,gBAAgB,SAAUnd,GAC/C,OAAOI,EAAEqoB,WAAWzoB,MACnBwe,qBAAqBvB,QACnB7jB,KAAKqvB,gBAGfroB,EAAEof,QAAU,WACb,CAACzlB,OAAQX,KAAK8lB,SAAU9lB,KAAKwuB,SAAS7rB,SAAQ,SAAUiE,GACtD,OAAO/C,EAAE+C,GAAGwE,IAAI,gBACdvH,EAAEkI,UAAUX,IAAI,oBAAqBvH,EAAEwiB,WAAWrmB,KAAK8lB,SAAU,YAAa9lB,KAAK+oB,QAAU,KAAM/oB,KAAK8lB,SAAW,KAAM9lB,KAAKwuB,QAAU,KAAMxuB,KAAKyuB,UAAY,KAAMzuB,KAAK0uB,SAAW,KAAM1uB,KAAK2uB,mBAAqB,KAAM3uB,KAAK4uB,qBAAuB,KAAM5uB,KAAK2rB,iBAAmB,KAAM3rB,KAAK6uB,gBAAkB,MACrT7nB,EAAEsoB,aAAe,WAClBtvB,KAAKgvB,iBACJhoB,EAAEgiB,WAAa,SAAUpiB,GAC1B,OAAOA,EAAIM,EAAEA,EAAE,GAAI4O,GAAIlP,GAAIgf,EAAEjB,gBAAgB,QAAS/d,EAAGg7B,GAAIh7B,GAC5DI,EAAEuoB,2BAA6B,WAChC,IAAI3oB,EAAI5G,KACR,GAAI,WAAaA,KAAK+oB,QAAQuF,SAAU,CACtC,IAAItnB,EAAInD,EAAE0iB,MAAM,0BAChB,GAAI1iB,EAAE7D,KAAK8lB,UAAUtB,QAAQxd,GAAIA,EAAEhD,iBAAkB,OACrDhE,KAAK8lB,SAASsB,UAAUM,IAAI,gBAC5B,IAAIngB,EAAIqe,EAAEvB,iCAAiCrkB,KAAK8lB,UAChDjiB,EAAE7D,KAAK8lB,UAAUT,IAAIO,EAAE7B,gBAAgB,WACrCnd,EAAEkf,SAASsB,UAAUR,OAAO,mBAC3BxB,qBAAqB7d,GAAIvH,KAAK8lB,SAASuB,aACrCrnB,KAAKsf,QACXtY,EAAEooB,aAAe,SAAUxoB,GAC5B,IAAII,EAAIhH,KACNuH,EAAI1D,EAAE7D,KAAK8lB,UAAUW,SAAS,QAC9B7C,EAAI5jB,KAAKwuB,QAAUxuB,KAAKwuB,QAAQ7Q,cAAc,eAAiB,KACjE3d,KAAK8lB,SAASzY,YAAcrN,KAAK8lB,SAASzY,WAAWL,WAAa+B,KAAK0gB,cAAgB1jB,SAASyB,KAAKkiB,YAAY1vB,KAAK8lB,UAAW9lB,KAAK8lB,SAASrlB,MAAMqsB,QAAU,QAAS9sB,KAAK8lB,SAAShN,gBAAgB,eAAgB9Y,KAAK8lB,SAAS9F,aAAa,cAAc,GAAKnc,EAAE7D,KAAKwuB,SAAS/H,SAAS,4BAA8B7C,EAAIA,EAAE/Y,UAAY,EAAI7K,KAAK8lB,SAASjb,UAAY,EAAGtD,GAAKqe,EAAEtB,OAAOtkB,KAAK8lB,UAAWjiB,EAAE7D,KAAK8lB,UAAUmF,SAAS,QAASjrB,KAAK+oB,QAAQ1B,OAASrnB,KAAK2vB,gBAC1c,IAAI9L,EAAIhgB,EAAE0iB,MAAM,iBAAkB,CAC9BuE,cAAelkB,IAEjBD,EAAI,WACFK,EAAE+hB,QAAQ1B,OAASrgB,EAAE8e,SAASuB,QAASrgB,EAAE2kB,kBAAmB,EAAI9nB,EAAEmD,EAAE8e,UAAUtB,QAAQX,IAE1F,GAAItc,EAAG,CACL,IAAIL,EAAI0e,EAAEvB,iCAAiCrkB,KAAKwuB,SAChD3qB,EAAE7D,KAAKwuB,SAASnJ,IAAIO,EAAE7B,eAAgBpd,GAAGye,qBAAqBle,QACzDP,KACNK,EAAE2oB,cAAgB,WACnB,IAAI/oB,EAAI5G,KACR6D,EAAEkI,UAAUX,IAAI,oBAAoBH,GAAG,oBAAoB,SAAUjE,GACnE+E,WAAa/E,EAAEnE,QAAU+D,EAAEkf,WAAa9e,EAAEnE,QAAU,IAAMgB,EAAE+C,EAAEkf,UAAUhf,IAAIE,EAAEnE,QAAQ8E,QAAUf,EAAEkf,SAASuB,YAE5GrgB,EAAEioB,gBAAkB,WACrB,IAAIroB,EAAI5G,KACRA,KAAK0uB,SAAW7qB,EAAE7D,KAAK8lB,UAAU7a,GAAG,4BAA4B,SAAUpH,GACxE+C,EAAEmiB,QAAQhB,UAAY,KAAOlkB,EAAE8mB,OAAS9mB,EAAEQ,iBAAkBuC,EAAE0Y,QAAU1Y,EAAEmiB,QAAQhB,UAAY,KAAOlkB,EAAE8mB,OAAS/jB,EAAE2oB,gCAC/GvvB,KAAK0uB,UAAY7qB,EAAE7D,KAAK8lB,UAAU1a,IAAI,6BAC1CpE,EAAEkoB,gBAAkB,WACrB,IAAItoB,EAAI5G,KACRA,KAAK0uB,SAAW7qB,EAAElD,QAAQsK,GAAG,mBAAmB,SAAUpH,GACxD,OAAO+C,EAAE0oB,aAAazrB,MACnBA,EAAElD,QAAQyK,IAAI,oBAClBpE,EAAEqoB,WAAa,WAChB,IAAIzoB,EAAI5G,KACRA,KAAK8lB,SAASrlB,MAAMqsB,QAAU,OAAQ9sB,KAAK8lB,SAAS9F,aAAa,eAAe,GAAKhgB,KAAK8lB,SAAShN,gBAAgB,cAAe9Y,KAAK2rB,kBAAmB,EAAI3rB,KAAKmvB,eAAc,WAC/KtrB,EAAEkI,SAASyB,MAAMgZ,YAAY,cAAe5f,EAAEgpB,oBAAqBhpB,EAAEipB,kBAAmBhsB,EAAE+C,EAAEkf,UAAUtB,QAAQ,uBAE/Gxd,EAAE8oB,gBAAkB,WACrB9vB,KAAKyuB,YAAc5qB,EAAE7D,KAAKyuB,WAAW7H,SAAU5mB,KAAKyuB,UAAY,OAC/DznB,EAAEmoB,cAAgB,SAAUvoB,GAC7B,IAAII,EAAIhH,KACNuH,EAAI1D,EAAE7D,KAAK8lB,UAAUW,SAAS,QAAU,OAAS,GACnD,GAAIzmB,KAAK0uB,UAAY1uB,KAAK+oB,QAAQuF,SAAU,CAC1C,GAAItuB,KAAKyuB,UAAY1iB,SAASxM,cAAc,OAAQS,KAAKyuB,UAAUpuB,UAAY,iBAAkBkH,GAAKvH,KAAKyuB,UAAUrH,UAAUM,IAAIngB,GAAI1D,EAAE7D,KAAKyuB,WAAWsB,SAAShkB,SAASyB,MAAO3J,EAAE7D,KAAK8lB,UAAU7a,GAAG,0BAA0B,SAAUrE,GACxOI,EAAE4nB,qBAAuB5nB,EAAE4nB,sBAAuB,EAAKhoB,EAAE/D,SAAW+D,EAAE4lB,eAAiBxlB,EAAEuoB,gCACvFhoB,GAAKqe,EAAEtB,OAAOtkB,KAAKyuB,WAAY5qB,EAAE7D,KAAKyuB,WAAWxD,SAAS,SAAUrkB,EAAG,OAC3E,IAAKW,EAAG,YAAYX,IACpB,IAAIgd,EAAIgC,EAAEvB,iCAAiCrkB,KAAKyuB,WAChD5qB,EAAE7D,KAAKyuB,WAAWpJ,IAAIO,EAAE7B,eAAgBnd,GAAGwe,qBAAqBxB,QAC3D,IAAK5jB,KAAK0uB,UAAY1uB,KAAKyuB,UAAW,CAC3C5qB,EAAE7D,KAAKyuB,WAAWjI,YAAY,QAC9B,IAAI3C,EAAI,WACN7c,EAAE8oB,kBAAmBlpB,GAAKA,KAE5B,GAAI/C,EAAE7D,KAAK8lB,UAAUW,SAAS,QAAS,CACrC,IAAI9f,EAAIif,EAAEvB,iCAAiCrkB,KAAKyuB,WAChD5qB,EAAE7D,KAAKyuB,WAAWpJ,IAAIO,EAAE7B,eAAgBF,GAAGuB,qBAAqBze,QAC3Dkd,SACFjd,GAAKA,KACXI,EAAEgoB,cAAgB,WACnB,IAAIpoB,EAAI5G,KAAK8lB,SAAS0J,aAAezjB,SAASqC,gBAAgBwE,cAC7D5S,KAAK2uB,oBAAsB/nB,IAAM5G,KAAK8lB,SAASrlB,MAAMuvB,YAAchwB,KAAK6uB,gBAAkB,MAAO7uB,KAAK2uB,qBAAuB/nB,IAAM5G,KAAK8lB,SAASrlB,MAAMwvB,aAAejwB,KAAK6uB,gBAAkB,OAC7L7nB,EAAE4oB,kBAAoB,WACvB5vB,KAAK8lB,SAASrlB,MAAMuvB,YAAc,GAAIhwB,KAAK8lB,SAASrlB,MAAMwvB,aAAe,IACxEjpB,EAAE8nB,gBAAkB,WACrB,IAAIloB,EAAImF,SAASyB,KAAKgF,wBACtBxS,KAAK2uB,mBAAqBzd,KAAKmN,MAAMzX,EAAE4J,KAAO5J,EAAE6J,OAAS9P,OAAOqT,WAAYhU,KAAK6uB,gBAAkB7uB,KAAKkwB,sBACvGlpB,EAAE+nB,cAAgB,WACnB,IAAInoB,EAAI5G,KACR,GAAIA,KAAK2uB,mBAAoB,CAC3B,IAAI3nB,EAAI,GAAGxI,MAAMuB,KAAKgM,SAAS0b,iBAAiB,sDAC9ClgB,EAAI,GAAG/I,MAAMuB,KAAKgM,SAAS0b,iBAAiB,gBAC9C5jB,EAAEmD,GAAG8f,MAAK,SAAU9f,EAAGO,GACrB,IAAIqc,EAAIrc,EAAE9G,MAAMwvB,aACdpM,EAAIhgB,EAAE0D,GAAG0F,IAAI,iBACfpJ,EAAE0D,GAAG4P,KAAK,gBAAiByM,GAAG3W,IAAI,gBAAiB8D,WAAW8S,GAAKjd,EAAEioB,gBAAkB,SACrFhrB,EAAE0D,GAAGuf,MAAK,SAAU9f,EAAGO,GACzB,IAAIqc,EAAIrc,EAAE9G,MAAMwV,YACd4N,EAAIhgB,EAAE0D,GAAG0F,IAAI,gBACfpJ,EAAE0D,GAAG4P,KAAK,eAAgByM,GAAG3W,IAAI,eAAgB8D,WAAW8S,GAAKjd,EAAEioB,gBAAkB,SAEvF,IAAIjL,EAAI7X,SAASyB,KAAK/M,MAAMwvB,aAC1BpM,EAAIhgB,EAAEkI,SAASyB,MAAMP,IAAI,iBAC3BpJ,EAAEkI,SAASyB,MAAM2J,KAAK,gBAAiByM,GAAG3W,IAAI,gBAAiB8D,WAAW8S,GAAK7jB,KAAK6uB,gBAAkB,MAExGhrB,EAAEkI,SAASyB,MAAMyd,SAAS,eACzBjkB,EAAE6oB,gBAAkB,WACrB,IAAIjpB,EAAI,GAAGpI,MAAMuB,KAAKgM,SAAS0b,iBAAiB,sDAChD5jB,EAAE+C,GAAGkgB,MAAK,SAAUlgB,EAAGI,GACrB,IAAIO,EAAI1D,EAAEmD,GAAGmQ,KAAK,iBAClBtT,EAAEmD,GAAGqf,WAAW,iBAAkBrf,EAAEvG,MAAMwvB,aAAe1oB,GAAK,MAEhE,IAAIP,EAAI,GAAGxI,MAAMuB,KAAKgM,SAAS0b,iBAAiB,gBAChD5jB,EAAEmD,GAAG8f,MAAK,SAAUlgB,EAAGI,GACrB,IAAIO,EAAI1D,EAAEmD,GAAGmQ,KAAK,qBAClB,IAAsB5P,GAAK1D,EAAEmD,GAAGiG,IAAI,eAAgB1F,GAAG8e,WAAW,mBAEpE,IAAI9e,EAAI1D,EAAEkI,SAASyB,MAAM2J,KAAK,iBAC9BtT,EAAEkI,SAASyB,MAAM6Y,WAAW,iBAAkBta,SAASyB,KAAK/M,MAAMwvB,aAAe1oB,GAAK,IACrFP,EAAEkpB,mBAAqB,WACxB,IAAItpB,EAAImF,SAASxM,cAAc,OAC/BqH,EAAEvG,UAAY,0BAA2B0L,SAASyB,KAAKkiB,YAAY9oB,GACnE,IAAI/C,EAAI+C,EAAE4L,wBAAwBlB,MAAQ1K,EAAE+L,YAC5C,OAAO5G,SAASyB,KAAK0L,YAAYtS,GAAI/C,GACpC+C,EAAEigB,iBAAmB,SAAU7f,EAAGO,GACnC,OAAOvH,KAAK8mB,MAAK,WACf,IAAIlD,EAAI/f,EAAE7D,MAAMmX,KAAK,YACnB0M,EAAI3c,EAAEA,EAAEA,EAAE,GAAI4O,GAAIjS,EAAE7D,MAAMmX,QAAS,iBAAmBnQ,GAAKA,EAAIA,EAAI,IACrE,GAAI4c,IAAMA,EAAI,IAAIhd,EAAE5G,KAAM6jB,GAAIhgB,EAAE7D,MAAMmX,KAAK,WAAYyM,IAAK,iBAAmB5c,EAAG,CAChF,QAAI,IAAsB4c,EAAE5c,GAAI,MAAM,IAAIyK,UAAU,oBAAsBzK,EAAI,KAC9E4c,EAAE5c,GAAGO,QACAsc,EAAEqI,MAAQtI,EAAEsI,KAAK3kB,OAEzBqc,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,UAER,CACDpB,IAAK,UACLoB,IAAK,WACH,OAAO+O,MAENlP,EAnLH,GAqLN/C,EAAEkI,UAAUd,GAAG,0BAA2B,yBAAyB,SAAUrE,GAC3E,IAAII,EACFO,EAAIvH,KACJ4jB,EAAIgC,EAAEzB,uBAAuBnkB,MAC/B4jB,IAAM5c,EAAI+E,SAAS4R,cAAciG,IACjC,IAAIC,EAAIhgB,EAAEmD,GAAGmQ,KAAK,YAAc,SAAWjQ,EAAEA,EAAE,GAAIrD,EAAEmD,GAAGmQ,QAAStT,EAAE7D,MAAMmX,QACzE,MAAQnX,KAAKwnB,SAAW,SAAWxnB,KAAKwnB,SAAW5gB,EAAEvC,iBACrD,IAAIsC,EAAI9C,EAAEmD,GAAGqe,IAAI,iBAAiB,SAAUze,GAC1CA,EAAEsf,sBAAwBvf,EAAE0e,IAAI,mBAAmB,WACjDxhB,EAAE0D,GAAGme,GAAG,aAAene,EAAE8f,cAG7B8I,EAAEtJ,iBAAiB9mB,KAAK8D,EAAEmD,GAAI6c,EAAG7jB,SAC/B6D,EAAEyI,GAAG8hB,MAAQ+B,EAAEtJ,iBAAkBhjB,EAAEyI,GAAG8hB,MAAM5c,YAAc2e,EAAGtsB,EAAEyI,GAAG8hB,MAAMpH,WAAa,WACvF,OAAOnjB,EAAEyI,GAAG8hB,MAAQG,EAAG4B,EAAEtJ,kBAE3B,IAAIuJ,EAAI,CAAC,aAAc,OAAQ,OAAQ,WAAY,WAAY,SAAU,MAAO,cAiC9EE,EAAI,8DACJK,EAAI,qIACN,SAASC,EAAEhqB,EAAG/C,EAAGmD,GACf,GAAI,IAAMJ,EAAEe,OAAQ,OAAOf,EAC3B,GAAII,GAAK,mBAAqBA,EAAG,OAAOA,EAAEJ,GAC1C,IAAK,IAAIW,GAAI,IAAI5G,OAAO4vB,WAAYC,gBAAgB5pB,EAAG,aAAcgd,EAAIzc,OAAOiO,KAAKvR,GAAIggB,EAAI,GAAGrlB,MAAMuB,KAAKwH,EAAEiG,KAAKia,iBAAiB,MAAO9gB,EAAI,SAAUC,EAAGI,GACvJ,IAAIO,EAAIsc,EAAEjd,GACRD,EAAIY,EAAE6F,SAAS0Q,cACjB,IAAK,IAAM8F,EAAEtY,QAAQ/D,EAAE6F,SAAS0Q,eAAgB,OAAOvW,EAAE8F,WAAW6L,YAAY3R,GAAI,WACpF,IAAIL,EAAI,GAAG1I,MAAMuB,KAAKwH,EAAEsQ,YACtB+M,EAAI,GAAGxJ,OAAOvX,EAAE,MAAQ,GAAIA,EAAE8C,IAAM,IACtCO,EAAEvE,SAAQ,SAAUiE,IAClB,SAAWA,EAAG/C,GACZ,IAAImD,EAAIJ,EAAEwG,SAAS0Q,cACnB,IAAK,IAAMja,EAAEyH,QAAQtE,GAAI,OAAQ,IAAMopB,EAAE9kB,QAAQtE,IAAMzG,QAAQqG,EAAE6pB,UAAUjZ,MAAM8Y,IAAM1pB,EAAE6pB,UAAUjZ,MAAMmZ,IACzG,IAAK,IAAIppB,EAAI1D,EAAEvD,QAAO,SAAUsG,GAC5B,OAAOA,aAAaie,UAClBjB,EAAI,EAAGC,EAAItc,EAAEI,OAAQic,EAAIC,EAAGD,IAAK,GAAI5c,EAAEwQ,MAAMjQ,EAAEqc,IAAK,OAAO,EACjE,OAAO,GANT,CAOGhd,EAAGge,IAAMrd,EAAEuR,gBAAgBlS,EAAEwG,cAEjClG,EAAI,EAAG0d,EAAIf,EAAElc,OAAQT,EAAI0d,EAAG1d,IAAKP,EAAEO,GACxC,OAAOK,EAAEiG,KAAKkjB,UAEhB,IAAIG,EAAI,UACNC,EAAIjtB,EAAEyI,GAAGukB,GACTE,EAAI,IAAIlM,OAAO,wBAAyB,KACxC6M,EAAI,CAAC,WAAY,YAAa,cAC9BM,EAAI,CACFhB,UAAW,UACXC,SAAU,SACVC,MAAO,4BACP1M,QAAS,SACT2M,MAAO,kBACPphB,KAAM,UACNqhB,SAAU,mBACVpc,UAAW,oBACXd,OAAQ,2BACRmd,UAAW,2BACXC,kBAAmB,iBACnBzE,SAAU,mBACV0E,SAAU,UACVC,WAAY,kBACZC,UAAW,SACX1E,aAAc,iBAEhBwG,EAAI,CACF5B,KAAM,OACNC,IAAK,MACLC,MAAO,QACPC,OAAQ,SACRC,KAAM,QAERmC,EAAI,CACFlD,WAAW,EACXC,SAAU,uGACVzM,QAAS,cACT0M,MAAO,GACPC,MAAO,EACPphB,MAAM,EACNqhB,UAAU,EACVpc,UAAW,MACXd,OAAQ,EACRmd,WAAW,EACXC,kBAAmB,OACnBzE,SAAU,eACV0E,UAAU,EACVC,WAAY,KACZC,UApGE,CACF,IAAK,CAAC,QAAS,MAAO,KAAM,OAAQ,OAAQ,kBAC5CvqB,EAAG,CAAC,SAAU,OAAQ,QAAS,OAC/BmO,KAAM,GACNE,EAAG,GACH0c,GAAI,GACJC,IAAK,GACLC,KAAM,GACNC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJrrB,EAAG,GACHsrB,IAAK,CAAC,MAAO,SAAU,MAAO,QAAS,QAAS,UAChDC,GAAI,GACJC,GAAI,GACJlL,EAAG,GACHmL,IAAK,GACLnP,EAAG,GACHoP,MAAO,GACPC,KAAM,GACNC,IAAK,GACLC,IAAK,GACLC,OAAQ,GACR/rB,EAAG,GACHgsB,GAAI,IAuEJvG,aAAc,MAEhBwJ,EAAI,CACF/C,KAAM,kBACNC,OAAQ,oBACRC,KAAM,kBACNC,MAAO,mBACPC,SAAU,sBACVC,MAAO,mBACPC,QAAS,qBACTC,SAAU,sBACVC,WAAY,wBACZC,WAAY,yBAEduC,EAAI,WACF,SAAS5vB,EAAEA,EAAG/C,GACZ,QAAI,IAAsBmD,EAAG,MAAM,IAAIyK,UAAU,mEACjDzR,KAAKm0B,YAAa,EAAIn0B,KAAKo0B,SAAW,EAAGp0B,KAAKq0B,YAAc,GAAIr0B,KAAKs0B,eAAiB,GAAIt0B,KAAKktB,QAAU,KAAMltB,KAAK8M,QAAUlG,EAAG5G,KAAKu0B,OAASv0B,KAAKgpB,WAAWnlB,GAAI7D,KAAKw0B,IAAM,KAAMx0B,KAAKy0B,gBAE3L,IAAIltB,EAAIX,EAAE3F,UACV,OAAOsG,EAAEmtB,OAAS,WAChB10B,KAAKm0B,YAAa,GACjB5sB,EAAEotB,QAAU,WACb30B,KAAKm0B,YAAa,GACjB5sB,EAAEqtB,cAAgB,WACnB50B,KAAKm0B,YAAcn0B,KAAKm0B,YACvB5sB,EAAE2f,OAAS,SAAUtgB,GACtB,GAAI5G,KAAKm0B,WAAY,GAAIvtB,EAAG,CAC1B,IAAII,EAAIhH,KAAK0jB,YAAYmR,SACvBttB,EAAI1D,EAAE+C,EAAE4lB,eAAerV,KAAKnQ,GAC9BO,IAAMA,EAAI,IAAIvH,KAAK0jB,YAAY9c,EAAE4lB,cAAexsB,KAAK80B,sBAAuBjxB,EAAE+C,EAAE4lB,eAAerV,KAAKnQ,EAAGO,IAAKA,EAAE+sB,eAAeS,OAASxtB,EAAE+sB,eAAeS,MAAOxtB,EAAEytB,uBAAyBztB,EAAE0tB,OAAO,KAAM1tB,GAAKA,EAAE2tB,OAAO,KAAM3tB,OACvN,CACL,GAAI1D,EAAE7D,KAAKm1B,iBAAiB1O,SAAS,QAAS,YAAYzmB,KAAKk1B,OAAO,KAAMl1B,MAC5EA,KAAKi1B,OAAO,KAAMj1B,QAEnBuH,EAAE6e,QAAU,WACbsE,aAAa1qB,KAAKo0B,UAAWvwB,EAAEwiB,WAAWrmB,KAAK8M,QAAS9M,KAAK0jB,YAAYmR,UAAWhxB,EAAE7D,KAAK8M,SAAS1B,IAAIpL,KAAK0jB,YAAY0R,WAAYvxB,EAAE7D,KAAK8M,SAASwZ,QAAQ,UAAUlb,IAAI,gBAAiBpL,KAAKq1B,mBAAoBr1B,KAAKw0B,KAAO3wB,EAAE7D,KAAKw0B,KAAK5N,SAAU5mB,KAAKm0B,WAAa,KAAMn0B,KAAKo0B,SAAW,KAAMp0B,KAAKq0B,YAAc,KAAMr0B,KAAKs0B,eAAiB,KAAMt0B,KAAKktB,SAAWltB,KAAKktB,QAAQrU,UAAW7Y,KAAKktB,QAAU,KAAMltB,KAAK8M,QAAU,KAAM9M,KAAKu0B,OAAS,KAAMv0B,KAAKw0B,IAAM,MAC1cjtB,EAAE2kB,KAAO,WACV,IAAItlB,EAAI5G,KACR,GAAI,SAAW6D,EAAE7D,KAAK8M,SAASG,IAAI,WAAY,MAAM,IAAI6X,MAAM,uCAC/D,IAAIvd,EAAI1D,EAAE0iB,MAAMvmB,KAAK0jB,YAAY6C,MAAMmN,MACvC,GAAI1zB,KAAKs1B,iBAAmBt1B,KAAKm0B,WAAY,CAC3CtwB,EAAE7D,KAAK8M,SAAS0X,QAAQjd,GACxB,IAAIqc,EAAIgC,EAAEb,eAAe/kB,KAAK8M,SAC5B+W,EAAIhgB,EAAE2L,SAAS,OAASoU,EAAIA,EAAI5jB,KAAK8M,QAAQW,cAAcW,gBAAiBpO,KAAK8M,SACnF,GAAIvF,EAAE2e,uBAAyBrC,EAAG,OAClC,IAAIld,EAAI3G,KAAKm1B,gBACXjuB,EAAI0e,EAAE5B,OAAOhkB,KAAK0jB,YAAY6R,MAChC5uB,EAAEqZ,aAAa,KAAM9Y,GAAIlH,KAAK8M,QAAQkT,aAAa,mBAAoB9Y,GAAIlH,KAAKw1B,aAAcx1B,KAAKu0B,OAAOvD,WAAantB,EAAE8C,GAAGskB,SAAS,QACrI,IAAIrG,EAAI,mBAAqB5kB,KAAKu0B,OAAOvf,UAAYhV,KAAKu0B,OAAOvf,UAAUjV,KAAKC,KAAM2G,EAAG3G,KAAK8M,SAAW9M,KAAKu0B,OAAOvf,UACnH6Q,EAAI7lB,KAAKy1B,eAAe7Q,GAC1B5kB,KAAK01B,mBAAmB7P,GACxB,IAAIve,EAAItH,KAAK21B,gBACb9xB,EAAE8C,GAAGwQ,KAAKnX,KAAK0jB,YAAYmR,SAAU70B,MAAO6D,EAAE2L,SAASxP,KAAK8M,QAAQW,cAAcW,gBAAiBpO,KAAKw0B,MAAQ3wB,EAAE8C,GAAGopB,SAASzoB,GAAIzD,EAAE7D,KAAK8M,SAAS0X,QAAQxkB,KAAK0jB,YAAY6C,MAAMqN,UAAW5zB,KAAKktB,QAAU,IAAIlmB,EAAEhH,KAAK8M,QAASnG,EAAG3G,KAAK0tB,iBAAiB7H,IAAKhiB,EAAE8C,GAAGskB,SAAS,QAAS,iBAAkBlf,SAASqC,iBAAmBvK,EAAEkI,SAASyB,MAAM0F,WAAWjI,GAAG,YAAa,KAAMpH,EAAE8pB,MACtX,IAAI1G,EAAI,WACNrgB,EAAE2tB,OAAOvD,WAAapqB,EAAEgvB,iBACxB,IAAI5uB,EAAIJ,EAAEytB,YACVztB,EAAEytB,YAAc,KAAMxwB,EAAE+C,EAAEkG,SAAS0X,QAAQ5d,EAAE8c,YAAY6C,MAAMoN,OAAQ,QAAU3sB,GAAKJ,EAAEsuB,OAAO,KAAMtuB,IAEvG,GAAI/C,EAAE7D,KAAKw0B,KAAK/N,SAAS,QAAS,CAChC,IAAIkB,EAAI/B,EAAEvB,iCAAiCrkB,KAAKw0B,KAChD3wB,EAAE7D,KAAKw0B,KAAKnP,IAAIO,EAAE7B,eAAgBkD,GAAG7B,qBAAqBuC,QACrDV,MAER1f,EAAE+X,KAAO,SAAU1Y,GACpB,IAAII,EAAIhH,KACNuH,EAAIvH,KAAKm1B,gBACTvR,EAAI/f,EAAE0iB,MAAMvmB,KAAK0jB,YAAY6C,MAAMiN,MACnC3P,EAAI,WACF,SAAW7c,EAAEqtB,aAAe9sB,EAAE8F,YAAc9F,EAAE8F,WAAW6L,YAAY3R,GAAIP,EAAE6uB,iBAAkB7uB,EAAE8F,QAAQgM,gBAAgB,oBAAqBjV,EAAEmD,EAAE8F,SAAS0X,QAAQxd,EAAE0c,YAAY6C,MAAMkN,QAAS,OAASzsB,EAAEkmB,SAAWlmB,EAAEkmB,QAAQrU,UAAWjS,GAAKA,KAElP,GAAI/C,EAAE7D,KAAK8M,SAAS0X,QAAQZ,IAAKA,EAAEsC,qBAAsB,CACvD,GAAIriB,EAAE0D,GAAGif,YAAY,QAAS,iBAAkBza,SAASqC,iBAAmBvK,EAAEkI,SAASyB,MAAM0F,WAAW9H,IAAI,YAAa,KAAMvH,EAAE8pB,MAAO3tB,KAAKs0B,eAAeS,OAAQ,EAAI/0B,KAAKs0B,eAAejN,OAAQ,EAAIrnB,KAAKs0B,eAAewB,OAAQ,EAAIjyB,EAAE7D,KAAKw0B,KAAK/N,SAAS,QAAS,CACpQ,IAAI9f,EAAIif,EAAEvB,iCAAiC9c,GAC3C1D,EAAE0D,GAAG8d,IAAIO,EAAE7B,eAAgBF,GAAGuB,qBAAqBze,QAC9Ckd,IACP7jB,KAAKq0B,YAAc,KAEpB9sB,EAAEmQ,OAAS,WACZ,OAAS1X,KAAKktB,SAAWltB,KAAKktB,QAAQjT,kBACrC1S,EAAE+tB,cAAgB,WACnB,OAAO/0B,QAAQP,KAAK+1B,aACnBxuB,EAAEmuB,mBAAqB,SAAU9uB,GAClC/C,EAAE7D,KAAKm1B,iBAAiBlK,SAAS,cAAgBrkB,IAChDW,EAAE4tB,cAAgB,WACnB,OAAOn1B,KAAKw0B,IAAMx0B,KAAKw0B,KAAO3wB,EAAE7D,KAAKu0B,OAAOtD,UAAU,GAAIjxB,KAAKw0B,KAC9DjtB,EAAEiuB,WAAa,WAChB,IAAI5uB,EAAI5G,KAAKm1B,gBACbn1B,KAAKg2B,kBAAkBnyB,EAAE+C,EAAE6gB,iBAAiB,mBAAoBznB,KAAK+1B,YAAalyB,EAAE+C,GAAG4f,YAAY,cAClGjf,EAAEyuB,kBAAoB,SAAUpvB,EAAGI,GACpC,iBAAmBA,IAAMA,EAAEgG,WAAahG,EAAEoZ,OAASpgB,KAAKu0B,OAAOxkB,MAAQ/P,KAAKu0B,OAAOhD,WAAavqB,EAAI4pB,EAAE5pB,EAAGhH,KAAKu0B,OAAO9C,UAAWzxB,KAAKu0B,OAAO/C,aAAc5qB,EAAEmJ,KAAK/I,IAAMJ,EAAEqvB,KAAKjvB,GAAKhH,KAAKu0B,OAAOxkB,KAAOlM,EAAEmD,GAAGmM,SAASuS,GAAG9e,IAAMA,EAAEsvB,QAAQC,OAAOnvB,GAAKJ,EAAEqvB,KAAKpyB,EAAEmD,GAAGivB,SAC9P1uB,EAAEwuB,SAAW,WACd,IAAInvB,EAAI5G,KAAK8M,QAAQsX,aAAa,uBAClC,OAAOxd,IAAMA,EAAI,mBAAqB5G,KAAKu0B,OAAOrD,MAAQlxB,KAAKu0B,OAAOrD,MAAMnxB,KAAKC,KAAK8M,SAAW9M,KAAKu0B,OAAOrD,OAAQtqB,GACpHW,EAAEmmB,iBAAmB,SAAU9mB,GAChC,IAAI/C,EAAI7D,KACR,OAAOkH,EAAEA,EAAE,GAAI,CACb8N,UAAWpO,EACXsQ,UAAW,CACThD,OAAQlU,KAAKguB,aACbhW,KAAM,CACJwG,SAAUxe,KAAKu0B,OAAOjD,mBAExB9T,MAAO,CACL1Q,QAAS,UAEX8P,gBAAiB,CACflI,kBAAmB1U,KAAKu0B,OAAO1H,WAGnCzU,SAAU,SAAUxR,GAClBA,EAAEqR,oBAAsBrR,EAAEoO,WAAanR,EAAEuyB,6BAA6BxvB,IAExEuR,SAAU,SAAUvR,GAClB,OAAO/C,EAAEuyB,6BAA6BxvB,MAEtC5G,KAAKu0B,OAAOxH,eACfxlB,EAAEymB,WAAa,WAChB,IAAIpnB,EAAI5G,KACN6D,EAAI,GACN,MAAO,mBAAqB7D,KAAKu0B,OAAOrgB,OAASrQ,EAAEyI,GAAK,SAAUzI,GAChE,OAAOA,EAAE0O,QAAUrL,EAAEA,EAAE,GAAIrD,EAAE0O,SAAU3L,EAAE2tB,OAAOrgB,OAAOrQ,EAAE0O,QAAS3L,EAAEkG,UAAY,IAAKjJ,GACnFA,EAAEqQ,OAASlU,KAAKu0B,OAAOrgB,OAAQrQ,GAClC0D,EAAEouB,cAAgB,WACnB,OAAO,IAAO31B,KAAKu0B,OAAOlD,UAAYtlB,SAASyB,KAAOoY,EAAElB,UAAU1kB,KAAKu0B,OAAOlD,WAAaxtB,EAAE7D,KAAKu0B,OAAOlD,WAAaxtB,EAAEkI,UAAU8K,KAAK7W,KAAKu0B,OAAOlD,YAClJ9pB,EAAEkuB,eAAiB,SAAU7uB,GAC9B,OAAO2sB,EAAE3sB,EAAE+R,gBACVpR,EAAEktB,cAAgB,WACnB,IAAI7tB,EAAI5G,KACRA,KAAKu0B,OAAO/P,QAAQpc,MAAM,KAAKzF,SAAQ,SAAUqE,GAC/C,GAAI,UAAYA,EAAGnD,EAAE+C,EAAEkG,SAAS7B,GAAGrE,EAAE8c,YAAY6C,MAAMsN,MAAOjtB,EAAE2tB,OAAOnD,UAAU,SAAUvtB,GACzF,OAAO+C,EAAEsgB,OAAOrjB,WACV,GAAI,WAAamD,EAAG,CAC1B,IAAIO,EAAI,UAAYP,EAAIJ,EAAE8c,YAAY6C,MAAMyN,WAAaptB,EAAE8c,YAAY6C,MAAMuN,QAC3ElQ,EAAI,UAAY5c,EAAIJ,EAAE8c,YAAY6C,MAAM0N,WAAartB,EAAE8c,YAAY6C,MAAMwN,SAC3ElwB,EAAE+C,EAAEkG,SAAS7B,GAAG1D,EAAGX,EAAE2tB,OAAOnD,UAAU,SAAUvtB,GAC9C,OAAO+C,EAAEquB,OAAOpxB,MACfoH,GAAG2Y,EAAGhd,EAAE2tB,OAAOnD,UAAU,SAAUvtB,GACpC,OAAO+C,EAAEsuB,OAAOrxB,UAGlB7D,KAAKq1B,kBAAoB,WAC3BzuB,EAAEkG,SAAWlG,EAAE0Y,QACdzb,EAAE7D,KAAK8M,SAASwZ,QAAQ,UAAUrb,GAAG,gBAAiBjL,KAAKq1B,mBAAoBr1B,KAAKu0B,OAAOnD,SAAWpxB,KAAKu0B,OAASrtB,EAAEA,EAAE,GAAIlH,KAAKu0B,QAAS,GAAI,CAC/I/P,QAAS,SACT4M,SAAU,KACPpxB,KAAKq2B,aACT9uB,EAAE8uB,UAAY,WACf,IAAIzvB,SAAW5G,KAAK8M,QAAQsX,aAAa,wBACxCpkB,KAAK8M,QAAQsX,aAAa,UAAY,WAAaxd,KAAO5G,KAAK8M,QAAQkT,aAAa,sBAAuBhgB,KAAK8M,QAAQsX,aAAa,UAAY,IAAKpkB,KAAK8M,QAAQkT,aAAa,QAAS,MACzLzY,EAAE0tB,OAAS,SAAUruB,EAAGI,GACzB,IAAIO,EAAIvH,KAAK0jB,YAAYmR,UACxB7tB,EAAIA,GAAKnD,EAAE+C,EAAE4lB,eAAerV,KAAK5P,MAAQP,EAAI,IAAIhH,KAAK0jB,YAAY9c,EAAE4lB,cAAexsB,KAAK80B,sBAAuBjxB,EAAE+C,EAAE4lB,eAAerV,KAAK5P,EAAGP,IAAKJ,IAAMI,EAAEstB,eAAe,YAAc1tB,EAAEsE,KAAO,QAAU,UAAW,GAAKrH,EAAEmD,EAAEmuB,iBAAiB1O,SAAS,SAAW,SAAWzf,EAAEqtB,YAAcrtB,EAAEqtB,YAAc,QAAU3J,aAAa1jB,EAAEotB,UAAWptB,EAAEqtB,YAAc,OAAQrtB,EAAEutB,OAAOpD,OAASnqB,EAAEutB,OAAOpD,MAAMjF,KAAOllB,EAAEotB,SAAWnqB,YAAW,WACta,SAAWjD,EAAEqtB,aAAertB,EAAEklB,SAC7BllB,EAAEutB,OAAOpD,MAAMjF,MAAQllB,EAAEklB,SAC3B3kB,EAAE2tB,OAAS,SAAUtuB,EAAGI,GACzB,IAAIO,EAAIvH,KAAK0jB,YAAYmR,UACxB7tB,EAAIA,GAAKnD,EAAE+C,EAAE4lB,eAAerV,KAAK5P,MAAQP,EAAI,IAAIhH,KAAK0jB,YAAY9c,EAAE4lB,cAAexsB,KAAK80B,sBAAuBjxB,EAAE+C,EAAE4lB,eAAerV,KAAK5P,EAAGP,IAAKJ,IAAMI,EAAEstB,eAAe,aAAe1tB,EAAEsE,KAAO,QAAU,UAAW,GAAKlE,EAAEguB,yBAA2BtK,aAAa1jB,EAAEotB,UAAWptB,EAAEqtB,YAAc,MAAOrtB,EAAEutB,OAAOpD,OAASnqB,EAAEutB,OAAOpD,MAAM7R,KAAOtY,EAAEotB,SAAWnqB,YAAW,WACrW,QAAUjD,EAAEqtB,aAAertB,EAAEsY,SAC5BtY,EAAEutB,OAAOpD,MAAM7R,MAAQtY,EAAEsY,SAC3B/X,EAAEytB,qBAAuB,WAC1B,IAAK,IAAIpuB,KAAK5G,KAAKs0B,eAAgB,GAAIt0B,KAAKs0B,eAAe1tB,GAAI,OAAO,EACtE,OAAO,GACNW,EAAEyhB,WAAa,SAAUpiB,GAC1B,IAAII,EAAInD,EAAE7D,KAAK8M,SAASqK,OACxB,OAAOhQ,OAAOiO,KAAKpO,GAAGrE,SAAQ,SAAUiE,IACrC,IAAM8qB,EAAEpmB,QAAQ1E,WAAaI,EAAEJ,MAC9B,iBAAoBA,EAAIM,EAAEA,EAAEA,EAAE,GAAIlH,KAAK0jB,YAAYmK,SAAU7mB,GAAI,iBAAmBJ,GAAKA,EAAIA,EAAI,KAAKuqB,QAAUvqB,EAAEuqB,MAAQ,CAC5HjF,KAAMtlB,EAAEuqB,MACR7R,KAAM1Y,EAAEuqB,QACN,iBAAmBvqB,EAAEsqB,QAAUtqB,EAAEsqB,MAAQtqB,EAAEsqB,MAAMtkB,YAAa,iBAAmBhG,EAAE0vB,UAAY1vB,EAAE0vB,QAAU1vB,EAAE0vB,QAAQ1pB,YAAagZ,EAAEjB,gBAAgBkM,EAAGjqB,EAAG5G,KAAK0jB,YAAYoK,aAAclnB,EAAE2qB,WAAa3qB,EAAEqqB,SAAWL,EAAEhqB,EAAEqqB,SAAUrqB,EAAE6qB,UAAW7qB,EAAE4qB,aAAc5qB,GACnQW,EAAEutB,mBAAqB,WACxB,IAAIluB,EAAI,GACR,GAAI5G,KAAKu0B,OAAQ,IAAK,IAAI1wB,KAAK7D,KAAKu0B,OAAQv0B,KAAK0jB,YAAYmK,QAAQhqB,KAAO7D,KAAKu0B,OAAO1wB,KAAO+C,EAAE/C,GAAK7D,KAAKu0B,OAAO1wB,IAClH,OAAO+C,GACNW,EAAEsuB,eAAiB,WACpB,IAAIjvB,EAAI/C,EAAE7D,KAAKm1B,iBACbnuB,EAAIJ,EAAEylB,KAAK,SAAS7U,MAAMuZ,GAC5B,OAAS/pB,GAAKA,EAAEW,QAAUf,EAAE4f,YAAYxf,EAAExG,KAAK,MAC9C+G,EAAE6uB,6BAA+B,SAAUxvB,GAC5C5G,KAAKw0B,IAAM5tB,EAAE3E,SAASsS,OAAQvU,KAAK61B,iBAAkB71B,KAAK01B,mBAAmB11B,KAAKy1B,eAAe7uB,EAAEoO,aAClGzN,EAAEquB,eAAiB,WACpB,IAAIhvB,EAAI5G,KAAKm1B,gBACXnuB,EAAIhH,KAAKu0B,OAAOvD,UAClB,OAASpqB,EAAEwd,aAAa,iBAAmBvgB,EAAE+C,GAAG4f,YAAY,QAASxmB,KAAKu0B,OAAOvD,WAAY,EAAIhxB,KAAKsf,OAAQtf,KAAKksB,OAAQlsB,KAAKu0B,OAAOvD,UAAYhqB,IAClJJ,EAAEigB,iBAAmB,SAAU7f,GAChC,OAAOhH,KAAK8mB,MAAK,WACf,IAAIvf,EAAI1D,EAAE7D,MAAMmX,KAAK,cACnByM,EAAI,iBAAmB5c,GAAKA,EAC9B,IAAKO,IAAM,eAAemC,KAAK1C,MAAQO,IAAMA,EAAI,IAAIX,EAAE5G,KAAM4jB,GAAI/f,EAAE7D,MAAMmX,KAAK,aAAc5P,IAAK,iBAAmBP,GAAI,CACtH,QAAI,IAAsBO,EAAEP,GAAI,MAAM,IAAIyK,UAAU,oBAAsBzK,EAAI,KAC9EO,EAAEP,UAGL4c,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,UAER,CACDpB,IAAK,UACLoB,IAAK,WACH,OAAOmtB,IAER,CACDvuB,IAAK,OACLoB,IAAK,WACH,OAAO8pB,IAER,CACDlrB,IAAK,WACLoB,IAAK,WACH,MAAO,eAER,CACDpB,IAAK,QACLoB,IAAK,WACH,OAAOwvB,IAER,CACD5wB,IAAK,YACLoB,IAAK,WACH,MAAO,gBAER,CACDpB,IAAK,cACLoB,IAAK,WACH,OAAOirB,MAENprB,EAvNH,GAyNN/C,EAAEyI,GAAGukB,GAAK2F,EAAE3P,iBAAkBhjB,EAAEyI,GAAGukB,GAAGrf,YAAcglB,EAAG3yB,EAAEyI,GAAGukB,GAAG7J,WAAa,WAC1E,OAAOnjB,EAAEyI,GAAGukB,GAAKC,EAAG0F,EAAE3P,kBAExB,IAAI4P,EAAI,UACNC,EAAI7yB,EAAEyI,GAAGmqB,GACTE,EAAI,IAAI9R,OAAO,wBAAyB,KACxC+R,EAAK1vB,EAAEA,EAAE,GAAIsvB,EAAE3I,SAAU,GAAI,CAC3B7Y,UAAW,QACXwP,QAAS,QACT8R,QAAS,GACTrF,SAAU,wIAEZ4F,EAAK3vB,EAAEA,EAAE,GAAIsvB,EAAE1I,aAAc,GAAI,CAC/BwI,QAAS,8BAEXS,EAAK,CACHvD,KAAM,kBACNC,OAAQ,oBACRC,KAAM,kBACNC,MAAO,mBACPC,SAAU,sBACVC,MAAO,mBACPC,QAAS,qBACTC,SAAU,sBACVC,WAAY,wBACZC,WAAY,yBAEd+C,GAAK,SAAUpwB,GACb,IAAII,EAAGO,EACP,SAASsc,IACP,OAAOjd,EAAEkd,MAAM9jB,KAAM6P,YAAc7P,KAErCuH,EAAIX,GAAII,EAAI6c,GAAG5iB,UAAYkG,OAAO6D,OAAOzD,EAAEtG,WAAY+F,EAAE/F,UAAUyiB,YAAc1c,EAAGA,EAAEC,UAAYM,EAClG,IAAIZ,EAAIkd,EAAE5iB,UACV,OAAO0F,EAAE2uB,cAAgB,WACvB,OAAOt1B,KAAK+1B,YAAc/1B,KAAK82B,eAC9BnwB,EAAE+uB,mBAAqB,SAAU9uB,GAClC/C,EAAE7D,KAAKm1B,iBAAiBlK,SAAS,cAAgBrkB,IAChDD,EAAEwuB,cAAgB,WACnB,OAAOn1B,KAAKw0B,IAAMx0B,KAAKw0B,KAAO3wB,EAAE7D,KAAKu0B,OAAOtD,UAAU,GAAIjxB,KAAKw0B,KAC9D7tB,EAAE6uB,WAAa,WAChB,IAAI5uB,EAAI/C,EAAE7D,KAAKm1B,iBACfn1B,KAAKg2B,kBAAkBpvB,EAAEiQ,KAAK,mBAAoB7W,KAAK+1B,YACvD,IAAI/uB,EAAIhH,KAAK82B,cACb,mBAAqB9vB,IAAMA,EAAIA,EAAEjH,KAAKC,KAAK8M,UAAW9M,KAAKg2B,kBAAkBpvB,EAAEiQ,KAAK,iBAAkB7P,GAAIJ,EAAE4f,YAAY,cACvH7f,EAAEmwB,YAAc,WACjB,OAAO92B,KAAK8M,QAAQsX,aAAa,iBAAmBpkB,KAAKu0B,OAAO+B,SAC/D3vB,EAAEkvB,eAAiB,WACpB,IAAIjvB,EAAI/C,EAAE7D,KAAKm1B,iBACbnuB,EAAIJ,EAAEylB,KAAK,SAAS7U,MAAMmf,GAC5B,OAAS3vB,GAAKA,EAAEW,OAAS,GAAKf,EAAE4f,YAAYxf,EAAExG,KAAK,MAClDqjB,EAAEgD,iBAAmB,SAAUjgB,GAChC,OAAO5G,KAAK8mB,MAAK,WACf,IAAI9f,EAAInD,EAAE7D,MAAMmX,KAAK,cACnB5P,EAAI,iBAAmBX,EAAIA,EAAI,KACjC,IAAKI,IAAM,eAAe0C,KAAK9C,MAAQI,IAAMA,EAAI,IAAI6c,EAAE7jB,KAAMuH,GAAI1D,EAAE7D,MAAMmX,KAAK,aAAcnQ,IAAK,iBAAmBJ,GAAI,CACtH,QAAI,IAAsBI,EAAEJ,GAAI,MAAM,IAAI6K,UAAU,oBAAsB7K,EAAI,KAC9EI,EAAEJ,UAGLgd,EAAEC,EAAG,KAAM,CAAC,CACble,IAAK,UACLoB,IAAK,WACH,MAAO,UAER,CACDpB,IAAK,UACLoB,IAAK,WACH,OAAO6vB,IAER,CACDjxB,IAAK,OACLoB,IAAK,WACH,OAAO0vB,IAER,CACD9wB,IAAK,WACLoB,IAAK,WACH,MAAO,eAER,CACDpB,IAAK,QACLoB,IAAK,WACH,OAAOgwB,IAER,CACDpxB,IAAK,YACLoB,IAAK,WACH,MAAO,gBAER,CACDpB,IAAK,cACLoB,IAAK,WACH,OAAO8vB,MAENhT,EApEF,CAqEH2S,GACJ3yB,EAAEyI,GAAGmqB,GAAKO,GAAGnQ,iBAAkBhjB,EAAEyI,GAAGmqB,GAAGjlB,YAAcwlB,GAAInzB,EAAEyI,GAAGmqB,GAAGzP,WAAa,WAC5E,OAAOnjB,EAAEyI,GAAGmqB,GAAKC,EAAGM,GAAGnQ,kBAEzB,IAAIoQ,GAAK,YACPE,GAAKtzB,EAAEyI,GAAG2qB,IACVG,GAAK,CACHljB,OAAQ,GACRgjB,OAAQ,OACRr0B,OAAQ,IAEVs1B,GAAK,CACHjkB,OAAQ,SACRgjB,OAAQ,SACRr0B,OAAQ,oBAEVw1B,GAAK,WACH,SAASzxB,EAAEA,EAAGI,GACZ,IAAIO,EAAIvH,KACRA,KAAK8lB,SAAWlf,EAAG5G,KAAKq3B,eAAiB,SAAWzwB,EAAE4gB,QAAU7mB,OAASiG,EAAG5G,KAAK+oB,QAAU/oB,KAAKgpB,WAAWhiB,GAAIhH,KAAK8rB,UAAY9rB,KAAK+oB,QAAQlmB,OAAS,cAAgB7C,KAAK+oB,QAAQlmB,OAAS,qBAAuB7C,KAAK+oB,QAAQlmB,OAAS,kBAAmB7C,KAAKs3B,SAAW,GAAIt3B,KAAKu3B,SAAW,GAAIv3B,KAAKw3B,cAAgB,KAAMx3B,KAAKy3B,cAAgB,EAAG5zB,EAAE7D,KAAKq3B,gBAAgBpsB,GAAG,uBAAuB,SAAUrE,GAChZ,OAAOW,EAAEmwB,SAAS9wB,MAChB5G,KAAK23B,UAAW33B,KAAK03B,WAE3B,IAAI1wB,EAAIJ,EAAE3F,UACV,OAAO+F,EAAE2wB,QAAU,WACjB,IAAI/wB,EAAI5G,KACNgH,EAAIhH,KAAKq3B,iBAAmBr3B,KAAKq3B,eAAe12B,OAAS,SAAW,WACpE4G,EAAI,SAAWvH,KAAK+oB,QAAQmO,OAASlwB,EAAIhH,KAAK+oB,QAAQmO,OACtDtT,EAAI,aAAerc,EAAIvH,KAAK43B,gBAAkB,EAChD53B,KAAKs3B,SAAW,GAAIt3B,KAAKu3B,SAAW,GAAIv3B,KAAKy3B,cAAgBz3B,KAAK63B,mBAAoB,GAAGr5B,MAAMuB,KAAKgM,SAAS0b,iBAAiBznB,KAAK8rB,YAAYnjB,KAAI,SAAU/B,GAC3J,IAAII,EACF6c,EAAI+B,EAAEzB,uBAAuBvd,GAC/B,GAAIid,IAAM7c,EAAI+E,SAAS4R,cAAckG,IAAK7c,EAAG,CAC3C,IAAIL,EAAIK,EAAEwL,wBACV,GAAI7L,EAAE2K,OAAS3K,EAAE0K,OAAQ,MAAO,CAACxN,EAAEmD,GAAGO,KAAK+I,IAAMsT,EAAGC,GAEtD,OAAO,QACNvjB,QAAO,SAAUsG,GAClB,OAAOA,KACN0O,MAAK,SAAU1O,EAAG/C,GACnB,OAAO+C,EAAE,GAAK/C,EAAE,MACflB,SAAQ,SAAUkB,GACnB+C,EAAE0wB,SAASp6B,KAAK2G,EAAE,IAAK+C,EAAE2wB,SAASr6B,KAAK2G,EAAE,QAE1CmD,EAAEof,QAAU,WACbviB,EAAEwiB,WAAWrmB,KAAK8lB,SAAU,gBAAiBjiB,EAAE7D,KAAKq3B,gBAAgBjsB,IAAI,iBAAkBpL,KAAK8lB,SAAW,KAAM9lB,KAAKq3B,eAAiB,KAAMr3B,KAAK+oB,QAAU,KAAM/oB,KAAK8rB,UAAY,KAAM9rB,KAAKs3B,SAAW,KAAMt3B,KAAKu3B,SAAW,KAAMv3B,KAAKw3B,cAAgB,KAAMx3B,KAAKy3B,cAAgB,MACnRzwB,EAAEgiB,WAAa,SAAUpiB,GAC1B,GAAI,iBAAoBA,EAAIM,EAAEA,EAAE,GAAIkwB,IAAK,iBAAmBxwB,GAAKA,EAAIA,EAAI,KAAK/D,QAAU+iB,EAAElB,UAAU9d,EAAE/D,QAAS,CAC7G,IAAImE,EAAInD,EAAE+C,EAAE/D,QAAQwpB,KAAK,MACzBrlB,IAAMA,EAAI4e,EAAE5B,OAAOiT,IAAKpzB,EAAE+C,EAAE/D,QAAQwpB,KAAK,KAAMrlB,IAAKJ,EAAE/D,OAAS,IAAMmE,EAEvE,OAAO4e,EAAEjB,gBAAgBsS,GAAIrwB,EAAGuxB,IAAKvxB,GACpCI,EAAE4wB,cAAgB,WACnB,OAAO53B,KAAKq3B,iBAAmB12B,OAASX,KAAKq3B,eAAeS,YAAc93B,KAAKq3B,eAAexsB,WAC7F7D,EAAE6wB,iBAAmB,WACtB,OAAO73B,KAAKq3B,eAAe7H,cAAgBte,KAAKC,IAAIpF,SAASyB,KAAKgiB,aAAczjB,SAASqC,gBAAgBohB,eACxGxoB,EAAE+wB,iBAAmB,WACtB,OAAO/3B,KAAKq3B,iBAAmB12B,OAASA,OAAOsT,YAAcjU,KAAKq3B,eAAe7kB,wBAAwBnB,QACxGrK,EAAE0wB,SAAW,WACd,IAAI9wB,EAAI5G,KAAK43B,gBAAkB53B,KAAK+oB,QAAQ7U,OAC1CrQ,EAAI7D,KAAK63B,mBACT7wB,EAAIhH,KAAK+oB,QAAQ7U,OAASrQ,EAAI7D,KAAK+3B,mBACrC,GAAI/3B,KAAKy3B,gBAAkB5zB,GAAK7D,KAAK23B,UAAW/wB,GAAKI,EAAG,CACtD,IAAIO,EAAIvH,KAAKu3B,SAASv3B,KAAKu3B,SAAS5vB,OAAS,GAC7C3H,KAAKw3B,gBAAkBjwB,GAAKvH,KAAKg4B,UAAUzwB,OACtC,CACL,GAAIvH,KAAKw3B,eAAiB5wB,EAAI5G,KAAKs3B,SAAS,IAAMt3B,KAAKs3B,SAAS,GAAK,EAAG,OAAOt3B,KAAKw3B,cAAgB,UAAWx3B,KAAKi4B,SACpH,IAAK,IAAIrU,EAAI5jB,KAAKs3B,SAAS3vB,OAAQic,KACjC5jB,KAAKw3B,gBAAkBx3B,KAAKu3B,SAAS3T,IAAMhd,GAAK5G,KAAKs3B,SAAS1T,UAAO,IAAsB5jB,KAAKs3B,SAAS1T,EAAI,IAAMhd,EAAI5G,KAAKs3B,SAAS1T,EAAI,KAAO5jB,KAAKg4B,UAAUh4B,KAAKu3B,SAAS3T,MAGhL5c,EAAEgxB,UAAY,SAAUpxB,GACzB5G,KAAKw3B,cAAgB5wB,EAAG5G,KAAKi4B,SAC7B,IAAIjxB,EAAIhH,KAAK8rB,UAAU1jB,MAAM,KAAKO,KAAI,SAAU9E,GAC5C,OAAOA,EAAI,iBAAmB+C,EAAI,MAAQ/C,EAAI,UAAY+C,EAAI,QAEhEW,EAAI1D,EAAE,GAAGrF,MAAMuB,KAAKgM,SAAS0b,iBAAiBzgB,EAAExG,KAAK,QACvD+G,EAAEkf,SAAS,kBAAoBlf,EAAE+e,QAAQ,aAAazP,KAAK,oBAAoBoU,SAAS,UAAW1jB,EAAE0jB,SAAS,YAAc1jB,EAAE0jB,SAAS,UAAW1jB,EAAE2wB,QAAQ,qBAAqBtO,KAAK,+BAA+BqB,SAAS,UAAW1jB,EAAE2wB,QAAQ,qBAAqBtO,KAAK,aAAa1W,SAAS,aAAa+X,SAAS,WAAYpnB,EAAE7D,KAAKq3B,gBAAgB7S,QAAQ,wBAAyB,CAC3XsG,cAAelkB,KAEhBI,EAAEixB,OAAS,WACZ,GAAGz5B,MAAMuB,KAAKgM,SAAS0b,iBAAiBznB,KAAK8rB,YAAYxrB,QAAO,SAAUsG,GACxE,OAAOA,EAAEwgB,UAAU5X,SAAS,aAC3B7M,SAAQ,SAAUiE,GACnB,OAAOA,EAAEwgB,UAAUR,OAAO,cAE3BhgB,EAAEigB,iBAAmB,SAAU7f,GAChC,OAAOhH,KAAK8mB,MAAK,WACf,IAAIvf,EAAI1D,EAAE7D,MAAMmX,KAAK,gBACrB,GAAI5P,IAAMA,EAAI,IAAIX,EAAE5G,KAAM,iBAAmBgH,GAAKA,GAAInD,EAAE7D,MAAMmX,KAAK,eAAgB5P,IAAK,iBAAmBP,EAAG,CAC5G,QAAI,IAAsBO,EAAEP,GAAI,MAAM,IAAIyK,UAAU,oBAAsBzK,EAAI,KAC9EO,EAAEP,UAGL4c,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,UAER,CACDpB,IAAK,UACLoB,IAAK,WACH,OAAOqwB,OAENxwB,EAxFF,GA0FP/C,EAAElD,QAAQsK,GAAG,8BAA8B,WACzC,IAAK,IAAIrE,EAAI,GAAGpI,MAAMuB,KAAKgM,SAAS0b,iBAAiB,wBAAyBzgB,EAAIJ,EAAEe,OAAQX,KAAM,CAChG,IAAIO,EAAI1D,EAAE+C,EAAEI,IACZqxB,GAAGxR,iBAAiB9mB,KAAKwH,EAAGA,EAAE4P,YAE9BtT,EAAEyI,GAAG2qB,IAAMoB,GAAGxR,iBAAkBhjB,EAAEyI,GAAG2qB,IAAIzlB,YAAc6mB,GAAIx0B,EAAEyI,GAAG2qB,IAAIjQ,WAAa,WACnF,OAAOnjB,EAAEyI,GAAG2qB,IAAME,GAAIkB,GAAGxR,kBAE3B,IAAI2R,GAAK30B,EAAEyI,GAAG8rB,IACZM,GAAK,WACH,SAAS9xB,EAAEA,GACT5G,KAAK8lB,SAAWlf,EAElB,IAAII,EAAIJ,EAAE3F,UACV,OAAO+F,EAAEklB,KAAO,WACd,IAAItlB,EAAI5G,KACR,KAAMA,KAAK8lB,SAASzY,YAAcrN,KAAK8lB,SAASzY,WAAWL,WAAa+B,KAAK0gB,cAAgB5rB,EAAE7D,KAAK8lB,UAAUW,SAAS,WAAa5iB,EAAE7D,KAAK8lB,UAAUW,SAAS,aAAc,CAC1K,IAAIzf,EACFO,EACAqc,EAAI/f,EAAE7D,KAAK8lB,UAAUQ,QAAQ,qBAAqB,GAClDzC,EAAI+B,EAAEzB,uBAAuBnkB,KAAK8lB,UACpC,GAAIlC,EAAG,CACL,IAAIjd,EAAI,OAASid,EAAExW,UAAY,OAASwW,EAAExW,SAAW,iBAAmB,UACxE7F,GAAKA,EAAI1D,EAAEy0B,UAAUz0B,EAAE+f,GAAG/M,KAAKlQ,KAAKY,EAAEI,OAAS,GAEjD,IAAIT,EAAIrD,EAAE0iB,MAAM,cAAe,CAC3BuE,cAAe9qB,KAAK8lB,WAEtBlB,EAAI/gB,EAAE0iB,MAAM,cAAe,CACzBuE,cAAevjB,IAEnB,GAAIA,GAAK1D,EAAE0D,GAAGid,QAAQtd,GAAIrD,EAAE7D,KAAK8lB,UAAUtB,QAAQI,IAAKA,EAAEsB,uBAAyBhf,EAAEgf,qBAAsB,CACzGrC,IAAM7c,EAAI+E,SAAS4R,cAAckG,IAAK7jB,KAAKg4B,UAAUh4B,KAAK8lB,SAAUlC,GACpE,IAAIiC,EAAI,WACN,IAAI7e,EAAInD,EAAE0iB,MAAM,gBAAiB,CAC7BuE,cAAelkB,EAAEkf,WAEnBlC,EAAI/f,EAAE0iB,MAAM,eAAgB,CAC1BuE,cAAevjB,IAEnB1D,EAAE0D,GAAGid,QAAQxd,GAAInD,EAAE+C,EAAEkf,UAAUtB,QAAQZ,IAEzC5c,EAAIhH,KAAKg4B,UAAUhxB,EAAGA,EAAEqG,WAAYwY,GAAKA,OAG5C7e,EAAEof,QAAU,WACbviB,EAAEwiB,WAAWrmB,KAAK8lB,SAAU,UAAW9lB,KAAK8lB,SAAW,MACtD9e,EAAEgxB,UAAY,SAAUpxB,EAAGI,EAAGO,GAC/B,IAAIqc,EAAI5jB,KACN6jB,IAAM7c,GAAK,OAASA,EAAEoG,UAAY,OAASpG,EAAEoG,SAAWvJ,EAAEmD,GAAGkM,SAAS,WAAarP,EAAEmD,GAAG6P,KAAK,mBAAmB,GAChHlQ,EAAIY,GAAKsc,GAAKhgB,EAAEggB,GAAG4C,SAAS,QAC5Bvf,EAAI,WACF,OAAO0c,EAAE2U,oBAAoB3xB,EAAGid,EAAGtc,IAEvC,GAAIsc,GAAKld,EAAG,CACV,IAAIie,EAAIgB,EAAEvB,iCAAiCR,GAC3ChgB,EAAEggB,GAAG2C,YAAY,QAAQnB,IAAIO,EAAE7B,eAAgB7c,GAAGke,qBAAqBR,QAClE1d,KACNF,EAAEuxB,oBAAsB,SAAU3xB,EAAGI,EAAGO,GACzC,GAAIP,EAAG,CACLnD,EAAEmD,GAAGwf,YAAY,UACjB,IAAI5C,EAAI/f,EAAEmD,EAAEqG,YAAYwJ,KAAK,4BAA4B,GACzD+M,GAAK/f,EAAE+f,GAAG4C,YAAY,UAAW,QAAUxf,EAAEod,aAAa,SAAWpd,EAAEgZ,aAAa,iBAAiB,GAEvG,GAAInc,EAAE+C,GAAGqkB,SAAS,UAAW,QAAUrkB,EAAEwd,aAAa,SAAWxd,EAAEoZ,aAAa,iBAAiB,GAAK4F,EAAEtB,OAAO1d,GAAIA,EAAEwgB,UAAU5X,SAAS,SAAW5I,EAAEwgB,UAAUM,IAAI,QAAS9gB,EAAEyG,YAAcxJ,EAAE+C,EAAEyG,YAAYoZ,SAAS,iBAAkB,CACrO,IAAI5C,EAAIhgB,EAAE+C,GAAG0f,QAAQ,aAAa,GAClC,GAAIzC,EAAG,CACL,IAAIld,EAAI,GAAGnI,MAAMuB,KAAK8jB,EAAE4D,iBAAiB,qBACzC5jB,EAAE8C,GAAGskB,SAAS,UAEhBrkB,EAAEoZ,aAAa,iBAAiB,GAElCzY,GAAKA,KACJX,EAAEigB,iBAAmB,SAAU7f,GAChC,OAAOhH,KAAK8mB,MAAK,WACf,IAAIvf,EAAI1D,EAAE7D,MACR4jB,EAAIrc,EAAE4P,KAAK,UACb,GAAIyM,IAAMA,EAAI,IAAIhd,EAAE5G,MAAOuH,EAAE4P,KAAK,SAAUyM,IAAK,iBAAmB5c,EAAG,CACrE,QAAI,IAAsB4c,EAAE5c,GAAI,MAAM,IAAIyK,UAAU,oBAAsBzK,EAAI,KAC9E4c,EAAE5c,UAGL4c,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,YAENH,EA9EF,GAgFP/C,EAAEkI,UAAUd,GAAG,wBAAyB,mEAAmE,SAAUrE,GACnHA,EAAEvC,iBAAkBq0B,GAAG7R,iBAAiB9mB,KAAK8D,EAAE7D,MAAO,WACpD6D,EAAEyI,GAAG8rB,IAAMM,GAAG7R,iBAAkBhjB,EAAEyI,GAAG8rB,IAAI5mB,YAAcknB,GAAI70B,EAAEyI,GAAG8rB,IAAIpR,WAAa,WACnF,OAAOnjB,EAAEyI,GAAG8rB,IAAMI,GAAIE,GAAG7R,kBAE3B,IAAI+R,GAAK/0B,EAAEyI,GAAGmsB,MACZI,GAAK,CACH7H,UAAW,UACX2H,SAAU,UACVxH,MAAO,UAET0Q,GAAK,CACH7Q,WAAW,EACX2H,UAAU,EACVxH,MAAO,KAET2Q,GAAK,WACH,SAASl7B,EAAEA,EAAG/C,GACZ7D,KAAK8lB,SAAWlf,EAAG5G,KAAK+oB,QAAU/oB,KAAKgpB,WAAWnlB,GAAI7D,KAAKo0B,SAAW,KAAMp0B,KAAKy0B,gBAEnF,IAAIztB,EAAIJ,EAAE3F,UACV,OAAO+F,EAAEklB,KAAO,WACd,IAAItlB,EAAI5G,KACNgH,EAAInD,EAAE0iB,MAAM,iBACd,GAAI1iB,EAAE7D,KAAK8lB,UAAUtB,QAAQxd,IAAKA,EAAEkf,qBAAsB,CACxDlmB,KAAK+oB,QAAQiI,WAAahxB,KAAK8lB,SAASsB,UAAUM,IAAI,QACtD,IAAIngB,EAAI,WACNX,EAAEkf,SAASsB,UAAUR,OAAO,WAAYhgB,EAAEkf,SAASsB,UAAUM,IAAI,QAAS7jB,EAAE+C,EAAEkf,UAAUtB,QAAQ,kBAAmB5d,EAAEmiB,QAAQ4P,WAAa/xB,EAAEwtB,SAAWnqB,YAAW,WAChKrD,EAAE0Y,SACD1Y,EAAEmiB,QAAQoI,SAEf,GAAInxB,KAAK8lB,SAASsB,UAAUR,OAAO,QAAShB,EAAEtB,OAAOtkB,KAAK8lB,UAAW9lB,KAAK8lB,SAASsB,UAAUM,IAAI,WAAY1nB,KAAK+oB,QAAQiI,UAAW,CACnI,IAAIpN,EAAIgC,EAAEvB,iCAAiCrkB,KAAK8lB,UAChDjiB,EAAE7D,KAAK8lB,UAAUT,IAAIO,EAAE7B,eAAgBxc,GAAG6d,qBAAqBxB,QAC1Drc,MAERP,EAAEsY,KAAO,WACV,GAAItf,KAAK8lB,SAASsB,UAAU5X,SAAS,QAAS,CAC5C,IAAI5I,EAAI/C,EAAE0iB,MAAM,iBAChB1iB,EAAE7D,KAAK8lB,UAAUtB,QAAQ5d,GAAIA,EAAEsf,sBAAwBlmB,KAAK+4B,WAE7D/xB,EAAEof,QAAU,WACbsE,aAAa1qB,KAAKo0B,UAAWp0B,KAAKo0B,SAAW,KAAMp0B,KAAK8lB,SAASsB,UAAU5X,SAAS,SAAWxP,KAAK8lB,SAASsB,UAAUR,OAAO,QAAS/iB,EAAE7D,KAAK8lB,UAAU1a,IAAI,0BAA2BvH,EAAEwiB,WAAWrmB,KAAK8lB,SAAU,YAAa9lB,KAAK8lB,SAAW,KAAM9lB,KAAK+oB,QAAU,MACpQ/hB,EAAEgiB,WAAa,SAAUpiB,GAC1B,OAAOA,EAAIM,EAAEA,EAAEA,EAAE,GAAI26B,IAAKh+B,EAAE7D,KAAK8lB,UAAU3O,QAAS,iBAAmBvQ,GAAKA,EAAIA,EAAI,IAAKgf,EAAEjB,gBAAgB,QAAS/d,EAAG5G,KAAK0jB,YAAYoK,aAAclnB,GACrJI,EAAEytB,cAAgB,WACnB,IAAI7tB,EAAI5G,KACR6D,EAAE7D,KAAK8lB,UAAU7a,GAAG,yBAA0B,0BAA0B,WACtE,OAAOrE,EAAE0Y,WAEVtY,EAAE+xB,OAAS,WACZ,IAAInyB,EAAI5G,KACNgH,EAAI,WACFJ,EAAEkf,SAASsB,UAAUM,IAAI,QAAS7jB,EAAE+C,EAAEkf,UAAUtB,QAAQ,oBAE5D,GAAIxkB,KAAK8lB,SAASsB,UAAUR,OAAO,QAAS5mB,KAAK+oB,QAAQiI,UAAW,CAClE,IAAIzpB,EAAIqe,EAAEvB,iCAAiCrkB,KAAK8lB,UAChDjiB,EAAE7D,KAAK8lB,UAAUT,IAAIO,EAAE7B,eAAgB/c,GAAGoe,qBAAqB7d,QAC1DP,KACNJ,EAAEigB,iBAAmB,SAAU7f,GAChC,OAAOhH,KAAK8mB,MAAK,WACf,IAAIvf,EAAI1D,EAAE7D,MACR4jB,EAAIrc,EAAE4P,KAAK,YACb,GAAIyM,IAAMA,EAAI,IAAIhd,EAAE5G,KAAM,iBAAmBgH,GAAKA,GAAIO,EAAE4P,KAAK,WAAYyM,IAAK,iBAAmB5c,EAAG,CAClG,QAAI,IAAsB4c,EAAE5c,GAAI,MAAM,IAAIyK,UAAU,oBAAsBzK,EAAI,KAC9E4c,EAAE5c,GAAGhH,WAGR4jB,EAAEhd,EAAG,KAAM,CAAC,CACbjB,IAAK,UACLoB,IAAK,WACH,MAAO,UAER,CACDpB,IAAK,cACLoB,IAAK,WACH,OAAO8xB,KAER,CACDlzB,IAAK,UACLoB,IAAK,WACH,OAAO86B,OAENj7B,EAnEF,GAqEP/C,EAAEyI,GAAGmsB,MAAQqJ,GAAGjb,iBAAkBhjB,EAAEyI,GAAGmsB,MAAMjnB,YAAcswB,GAAIj+B,EAAEyI,GAAGmsB,MAAMzR,WAAa,WACrF,OAAOnjB,EAAEyI,GAAGmsB,MAAQG,GAAIkJ,GAAGjb,kBAC1BjgB,EAAEoyB,MAAQ/R,EAAGrgB,EAAEqyB,OAAS/N,EAAGtkB,EAAEsyB,SAAW3N,EAAG3kB,EAAEuyB,SAAWxM,EAAG/lB,EAAEwyB,SAAW/K,EAAGznB,EAAEyyB,MAAQlJ,EAAGvpB,EAAE0yB,QAAUtC,GAAIpwB,EAAE2yB,UAAYlB,GAAIzxB,EAAE4yB,IAAMd,GAAI9xB,EAAE6yB,MAAQqI,GAAIl7B,EAAE8yB,QAAUlD,EAAG5vB,EAAE+yB,KAAO/T,EAAGze,OAAOC,eAAeR,EAAG,aAAc,CACvNd,OAAO,IA3mDoDjC,CAAEnH,EAAS,EAAQ,QAAW,EAAQ,U,kCC0CrGmK,EAAOnK,QA5BS,SAASqlC,EAAWC,EAAQ96B,EAAGqO,EAAGqQ,EAAGqB,EAAGpjB,EAAG8jB,GAOzD,IAAKoa,EAAW,CACd,IAAInB,EACJ,QAAen5B,IAAXu6B,EACFpB,EAAQ,IAAI9b,MACV,qIAGG,CACL,IAAIoV,EAAO,CAAChzB,EAAGqO,EAAGqQ,EAAGqB,EAAGpjB,EAAG8jB,GACvBsa,EAAW,GACfrB,EAAQ,IAAI9b,MACVkd,EAAO/kC,QAAQ,OAAO,WAAa,OAAOi9B,EAAK+H,UAE3C1pB,KAAO,sBAIf,MADAqoB,EAAMsB,YAAc,EACdtB,K,0CC5CV,SAASuB,EAAgBv7B,EAAG/C,GAC1B,OAAOgD,EAAOnK,QAAUylC,EAAkBh7B,OAAOi7B,eAAiBj7B,OAAOi7B,eAAerhC,OAAS,SAAU6F,EAAG/C,GAC5G,OAAO+C,EAAEK,UAAYpD,EAAG+C,GACvBC,EAAOnK,QAAQC,YAAa,EAAMkK,EAAOnK,QAAiB,QAAImK,EAAOnK,QAASylC,EAAgBv7B,EAAG/C,GAEtGgD,EAAOnK,QAAUylC,EAAiBt7B,EAAOnK,QAAQC,YAAa,EAAMkK,EAAOnK,QAAiB,QAAImK,EAAOnK,S,mBCAvGmK,EAAOnK,QALP,SAAgCmH,GAC9B,OAAOA,GAAKA,EAAElH,WAAakH,EAAI,CAC7B,QAAWA,IAG0BgD,EAAOnK,QAAQC,YAAa,EAAMkK,EAAOnK,QAAiB,QAAImK,EAAOnK,S,gMCHvG,MAAM2lC,EAAsB,CACjCxW,GAAI,mBACJprB,MAAO,CACLiK,SAAU,WACV4F,IAAK,EACLgB,MAAO,EACPD,OAAQ,EACRoD,QAAS,EACT9G,SAAU,SACV20B,KAAM,mBACNC,WAAY,SACZC,OAAQ,GAEV,YAAa,YACb,cAAe,Q,4BCJjB,MAAMC,EAAcC,EAAUxmB,OAAO,CAACvT,EAAKg6B,KACzCh6B,EAAIg6B,EAASC,UAAYD,EAClBh6B,GACN,IAEH,SAASk6B,EAAczhC,GACrB,MAAMuhC,EAAWF,EAAYrhC,GAE7B,OAAgB,MAAZuhC,IASFhiC,OAAO6E,WAAWm9B,EAASG,SACpB,GAMX,MAAMtH,EAAmBA,CAAC97B,EAAUqjC,KAC7BF,EAAcnjC,EAAS0B,WAC1Bu7B,oBAAU,mBAAoB,CAAEj9B,WAAUqjC,kBAIxC15B,EAAgBA,CAAC3J,EAAUqjC,KAC1BF,EAAcnjC,EAAS0B,WAC1Bu7B,oBAAU,gBAAiB,CAAEj9B,WAAUqjC,kBAIrC5lC,EAAW,SAACmE,EAAIgE,GAIpB,QAJ2B,IAAPA,MAAU,IAIZ,iBAAPhE,EAET,YADA4hB,IAAc/lB,SAASmE,GAIzB,IAAI,SAAEF,GAAatD,oBAAUwD,GAC7B,MAAMqhC,EAAWF,EAAYrhC,GAW7B,GAPIuhC,IACFrhC,EAAKqhC,EAASG,OACd1hC,EAAWtD,oBAAUwD,GAAIF,UAKvBT,OAAOwgC,aAET,YADAxgC,OAAOjB,SAAW0B,GAMpB,MAAM4hC,EAAY/4B,WAAW,KAC3Ba,IAAQS,KAAK,6BAA8B,CAAEnK,aAC7Cu7B,oBAAU,uBAAwB,CAChCj9B,SAAUiB,OAAOjB,YAElB,KAEHk9B,UAAOqG,SAAS7hC,GAAUoL,KAAK6vB,IAO7B,IAAKA,GAAiBA,EAAc6G,SAAWC,qBAAmBre,MAIhE,OAHAnkB,OAAOugB,QAAQc,aAAa,GAAI,GAAItiB,SAAS+E,MAC7C9D,OAAOjB,SAAW0B,OAClBspB,aAAasY,GAM8B3G,GAEzCA,EAAcW,KAAKoG,yBACnBziC,OAAO0iC,4BAIL,kBAAmBn3B,WACoB,OAAvCA,UAAU20B,cAAcK,YACqB,cAA7Ch1B,UAAU20B,cAAcK,WAAWrgC,OAEnCqL,UAAU20B,cAAcK,WAAWoC,YAAY,CAC7CC,UAAW,uBAIfr+B,QAAQi2B,IAAI,iDACZx6B,OAAOjB,SAAW0B,GAGtBoiC,mBAAcliC,EAAIgE,GAClBolB,aAAasY,MAIjB,SAASxI,EAAmBI,EAAe18B,GAAiB,IAAf,SAAEwB,GAAUxB,EACvD,MAAM,SAAEkD,EAAQ,KAAE0I,GAASpK,EACrB+jC,EAAU9G,oBAAU,qBAAsB,CAC9C/B,kBAEAx5B,WACAy5B,YAAa,CAAEn7B,YACfgkC,uBAAwBxJ,GAAQl6B,KAAKo6B,cAAc10B,KAAKw0B,KAE1D,GAAIuJ,EAAQ97B,OAAS,EAGnB,OAAO87B,EAAQA,EAAQ97B,OAAS,GAGlC,GAAIizB,EAAiB,CACnB,MACEl7B,UAAY0B,SAAUuiC,IACpB/I,EACJ,GAAI+I,IAAgBviC,EAGlB,OAAO0I,EAAOmX,UAAUnX,EAAKtL,MAAM,IAAM,CAAC,EAAG,GAGjD,OAAO,EAkBT,MAAMolC,UAAuB/J,IAAMn1B,UACjCgf,YAAYpkB,GACVukC,MAAMvkC,GACNU,KAAK8jC,gBAAkBjK,IAAMkK,YAG/BriC,mBAAmBC,EAAWqiC,GAC5Bh6B,sBAAsB,KACpB,IAAIi6B,EAAW,eAAejkC,KAAKV,MAAMI,SAAS0B,SAC9C2K,SAASmlB,QACX+S,EAAWl4B,SAASmlB,OAEtB,MAAMgT,EAAen4B,SAAS0b,iBAAiB,4BAC3Cyc,GAAgBA,EAAav8B,SAC/Bs8B,EAAWC,EAAa,GAAGC,aAE7B,MAAMC,EAAkB,gBAAgBH,EACxC,GAAIjkC,KAAK8jC,gBAAgBnlC,QAAS,CACRqB,KAAK8jC,gBAAgBnlC,QAAQ0lC,YAC7BD,IACtBpkC,KAAK8jC,gBAAgBnlC,QAAQ0lC,UAAYD,MAMjDnhC,SACE,OAAO42B,IAAAt6B,cAAA,MAAA4H,OAAAiL,OAAA,GAASiwB,EAAmB,CAAEhgC,IAAKrC,KAAK8jC,oBAKnD,MAAMQ,UAAqBzK,IAAMn1B,UAC/Bgf,YAAYpkB,GACVukC,MAAMvkC,GACNk8B,EAAiBl8B,EAAMI,SAAU,MAGnCmC,oBACEwH,EAAcrJ,KAAKV,MAAMI,SAAU,MAGrC6kC,sBAAsB5iC,GACpB,OAAI3B,KAAKV,MAAMI,SAAS+E,OAAS9C,EAAUjC,SAAS+E,OAClD+2B,EAAiBx7B,KAAKV,MAAMI,SAAUiC,EAAUjC,WACzC,GAMXgC,mBAAmBC,GACb3B,KAAKV,MAAMI,SAAS+E,OAAS9C,EAAUjC,SAAS+E,MAClD4E,EAAcrJ,KAAKV,MAAMI,SAAUiC,EAAUjC,UAIjDuD,SACE,OACE42B,IAAAt6B,cAACs6B,IAAM2K,SAAQ,KACZxkC,KAAKV,MAAM4T,SACZ2mB,IAAAt6B,cAACqkC,EAAc,CAAClkC,SAAUA,a,qCClOlC,SAAS+kC,EAAev9B,EAAGqO,GACzB,IAAK,IAAIhO,KAAKL,EACZ,KAAMK,KAAKgO,GAAI,OAAO,EACvB,IAAK,IAAImvB,KAAMnvB,EACd,GAAIrO,EAAEw9B,KAAQnvB,EAAEmvB,GAAK,OAAO,EAC7B,OAAO,ECHV,MAAMC,UAAwB9K,IAAMn1B,UAClCgf,YAAYpkB,GACVukC,QACA,MAAM,SAAEnkC,EAAQ,cAAE28B,GAAkB/8B,EACpCU,KAAKa,MAAQ,CACXnB,SAAU,IAAKA,GACf28B,cAAeA,GAAiBO,UAAOgI,aAAallC,EAAS0B,WAIjE,gCAA+BlD,EAAe0D,GAAY,IAA1B,SAAElC,GAAUxB,EAC1C,GAAI0D,EAAUlC,SAAS+E,OAAS/E,EAAS+E,KAAM,CAE7C,MAAO,CACL43B,cAFoBO,UAAOgI,aAAallC,EAAS0B,UAGjD1B,SAAU,IAAKA,IAInB,MAAO,CACLA,SAAU,IAAKA,IAInBmlC,cAAcC,GACZlI,UAAOqG,SAAS6B,GAASt4B,KAAK6vB,IACxBA,GAAiBA,EAAc6G,SAAWC,qBAAmBre,MAC/D9kB,KAAK+kC,SAAS,CACZrlC,SAAU,IAAKiB,OAAOjB,UACtB28B,mBAGF17B,OAAOugB,QAAQc,aAAa,GAAI,GAAItiB,SAAS+E,MAC7C9D,OAAOjB,SAAWolC,KAKxBP,sBAAsBP,EAAWgB,GAE/B,OAAKA,EAAU3I,cAMXr8B,KAAKa,MAAMw7B,gBAAkB2I,EAAU3I,gBAIzCr8B,KAAKa,MAAMw7B,cAAcU,YAAciI,EAAU3I,cAAcU,YAK7D/8B,KAAKa,MAAMw7B,cAAcC,OAAS0I,EAAU3I,cAAcC,SAM5Dt8B,KAAKa,MAAMnB,SAASiG,MAAQq/B,EAAUtlC,SAASiG,MAC/Cq/B,EAAU3I,cAAcW,OACvBgI,EAAU3I,cAAcW,KAAKp0B,YAC5Bo8B,EAAU3I,cAAcW,KAAKlgC,OD1DrB,gBACd,OAAO2nC,EAAexiC,EAAS3C,MAAO0kC,IAAcS,EAAexiC,EAASpB,MAAOmkC,GC6D1EpF,CAAe5/B,KAAMgkC,EAAWgB,OA3BrChlC,KAAK6kC,cAAcb,EAAUtkC,SAAS0B,WAC/B,GA6BX6B,SASE,OAAOjD,KAAKV,MAAM4T,SAASlT,KAAKa,QAIrB8jC,Q,wBC5Df,MAAM/H,EAAS,IAAIqI,aAAWC,IAAep9B,GAC7Cq9B,oBAAUvI,GACVA,EAAOwI,aAAazI,aAEpBh8B,OAAOukC,cAAgBA,IACvBvkC,OAAO0kC,WAAav6B,IACpBnK,OAAOa,UAAYq7B,eHyHjB3Z,IAAc1B,OAAO0Y,IACnBA,EAAKx6B,SAASiiB,OAASuY,EAAKvY,SAG9BhhB,OAAO4E,QAAUjE,GAAMnE,EAASmE,EAAI,CAAErE,SAAS,IAC/C0D,OAAO6E,WAAalE,GAAMnE,EAASmE,EAAI,CAAErE,SAAS,IAClD0D,OAAO6D,YAAc,CAAClD,EAAIgE,IAAYnI,EAASmE,EAAIgE,GAGnDu9B,EAAcliC,OAAOjB,SAAS0B,UG9HhCkkC,yBAAe,iBAAiB94B,KAAK,KAG/BmwB,oBAAU,yBAAyBh1B,OAAS,GAC9Cu4B,EAAQ,QAWV,MAAMqF,EAAejmC,GACnBu6B,IAAAt6B,cAACimC,cAAYvK,SAAQ,CACnBn1B,MAAO,CACL2/B,QAAS,IACTC,SAAU,MAGZ7L,IAAAt6B,cAAC68B,IAAiB98B,IAIhBqmC,EAAc9L,IAAME,cAAc,IAExC,MAAM6L,UAAmB/L,IAAMn1B,UAC7BzB,SACE,MAAM,SAAEiQ,GAAalT,KAAKV,MAC1B,OACEu6B,IAAAt6B,cAACC,WAAQ,KACNtB,IAAA,IAAC,SAAEwB,GAAUxB,EAAA,OACZ27B,IAAAt6B,cAAColC,EAAe,CAACjlC,SAAUA,GACxBD,IAAkC,IAAjC,cAAE48B,EAAa,SAAE38B,GAAUD,EAC3B,MAAMomC,EAAqBC,kCAC3B,OACEjM,IAAAt6B,cAACwmC,qBAAmB9K,SAAQ,CAACn1B,MAAO+/B,GAClChM,IAAAt6B,cAAComC,EAAY1K,SAAQ,CAACn1B,MAAO,CAAEu2B,gBAAe38B,aAC3CwT,SAYrB,MAAM8yB,UAAwBnM,IAAMn1B,UAClCzB,SACE,OACE42B,IAAAt6B,cAAComC,EAAYM,SAAQ,KAClB/lC,IAAA,IAAC,cAAEm8B,EAAa,SAAE38B,GAAUQ,EAAA,OAC3B25B,IAAAt6B,cAAC+kC,EAAY,CAAC5kC,SAAUA,GACtBm6B,IAAAt6B,cAACgL,gBAAa,CACZ7K,SAAUA,EACV86B,mBAAoBA,GAEpBX,IAAAt6B,cAAC2mC,SAAM,CACLR,SAAUv9B,GACVzI,SAAUA,EACVmsB,GAAG,wBAEHgO,IAAAt6B,cAACgmC,EAAYp+B,OAAAiL,OAAA,CACXtV,KAC8B,cAA5Bu/B,EAAcW,KAAKlgC,KACfoL,YAAYxI,EAAS0B,SAAU+G,IAC/B5D,UACE83B,EAAcW,KAAKp0B,WACjByzB,EAAcW,KAAKlgC,OAGzBkD,KAAKV,MAAK,CACdI,SAAUA,EACV28B,cAAeA,GACXA,EAAcC,aAWpC,MAAM,SAAE1yB,EAAUlK,SAAUymC,GAAexlC,OAUzCiJ,GACAzB,GAAgByB,IAAau8B,EAAW/kC,YAEtCw7B,EAAOr0B,cAAcL,YAAYi+B,EAAW/kC,SAAU+G,MACzC,cAAbyB,GACAA,EAAS4N,MAAM,eACf5N,EAAS4N,MAAM,8CAGjBra,mBAASgL,GAAgByB,EAAWu8B,EAAWt8B,OAASs8B,EAAWr8B,KAAM,CACvE7M,SAAS,IAIb4/B,eAAaoG,SAASkD,EAAW/kC,UAAUoL,KAAKwwB,IAC9C,IAAKA,GAAQA,EAAKkG,SAAWC,qBAAmBre,MAC9C,MAAM,IAAIA,MACR,sBAAsBqhB,EAAW/kC,2CAIrCT,OAAO0iC,0BAA4BrG,EAAKA,KAAKoG,uBAE7C,MAAMgD,EAAWzJ,oBACf,kBACA,CAAE7vB,QAAS+sB,IAAAt6B,cAACymC,EAAe,OAC3BnM,IAAAt6B,cAACymC,EAAe,MAChBK,IAAiB,IAAhB,OAAE5zB,GAAQ4zB,EACT,MAAO,CAAEv5B,QAAS2F,KAEpBwqB,MAEIqJ,EAAMA,IAAMzM,IAAAt6B,cAACqmC,EAAU,KAAEQ,GAEzBG,EAAW5J,oBACf,8BACAl1B,EACA++B,IAASC,SACT,GAEFC,IAAS,KACPH,EACE1M,IAAAt6B,cAAC+mC,EAAG,MACc,oBAAX3lC,OACHoL,SAASmY,eAAe,kBACxB,EACJ,KACEyY,oBAAU,kC,qBCzLpB,IAAIyF,EAAiB,EAAQ,QAI7Bv7B,EAAOnK,QAHP,SAAwBkK,EAAGgd,GACzBhd,EAAE3F,UAAYkG,OAAO6D,OAAO4Y,EAAE3iB,WAAY2F,EAAE3F,UAAUyiB,YAAc9c,EAAGw7B,EAAex7B,EAAGgd,IAE1D/c,EAAOnK,QAAQC,YAAa,EAAMkK,EAAOnK,QAAiB,QAAImK,EAAOnK,S,kCCJtG,44BAeA,MAAMiqC,EAfN,UAeyB/J,QAAOn7B,QAE1BskC,EAAqBlM,IAAME,cAAc,IAE/C,SAAS6M,EAAuB1oC,GAA4C,IAA3C,gBAAE2oC,EAAe,KAAE1vB,EAAI,MAAE8nB,EAAK,OAAEh8B,GAAQ/E,EACvE,MAAM4oC,EAAY3vB,EACdA,EAAKA,KACL0vB,EAAgB5H,IAAU4H,EAAgB5H,GAAO9nB,KAErD,OACE0iB,IAAAt6B,cAACs6B,IAAM2K,SAAQ,KACZsC,GAAa7jC,EAAO6jC,IACnBA,GAAajN,IAAAt6B,cAAA,WAAK,0BAK1B,MAAMwnC,EAAcznC,IAClB,MAAM,KAAE6X,EAAI,MAAE8nB,EAAK,OAAEh8B,EAAM,SAAEiQ,GAAa5T,EAE1C,OACEu6B,IAAAt6B,cAACwmC,EAAmBE,SAAQ,KACzBY,GACChN,IAAAt6B,cAACqnC,EAAuB,CACtBzvB,KAAMA,EACN8nB,MAAOA,EACPh8B,OAAQA,GAAUiQ,EAClB2zB,gBAAiBA,MAOrBG,EAAiB/H,IAAU,IAADgI,EAErBpN,IAAMxvB,WAQf,MAAM68B,EAAUrN,IAAMxvB,WAAW07B,GAKjC,GAAI1rB,MAAM8sB,OAAOlI,IACf,MAAM,IAAIna,MAAM,iLAIMma,WAIxB,GAAIiI,SAAgB,QAATD,EAAPC,EAAUjI,UAAM,IAAAgI,GAAhBA,EAAkB9vB,KACpB,OAAO+vB,EAAQjI,GAAO9nB,KAEtB,MAAM,IAAI2N,MACR,yMAcN,SAASsiB,IACP,MAAM,IAAItiB,MACR,8UAOJ,SAASuiB,IAEP,OAAO,O,iFCpGTxgC,EAAOnK,QAAUyK,OAAOiL,Q,kCCFxB,m8BAAID,EAAWhL,OAAOiL,QAAU,SAAUvP,GAAU,IAAK,IAAI0E,EAAI,EAAGA,EAAIsI,UAAUlI,OAAQJ,IAAK,CAAE,IAAI8K,EAASxC,UAAUtI,GAAI,IAAK,IAAI5B,KAAO0M,EAAclL,OAAOlG,UAAUwB,eAAe1C,KAAKsS,EAAQ1M,KAAQ9C,EAAO8C,GAAO0M,EAAO1M,IAAY,OAAO9C,GAEvP,SAASykC,EAAyBp1B,EAAKkD,GAAQ,IAAIvS,EAAS,GAAI,IAAK,IAAI0E,KAAK2K,EAAWkD,EAAK9J,QAAQ/D,IAAM,GAAkBJ,OAAOlG,UAAUwB,eAAe1C,KAAKmS,EAAK3K,KAAc1E,EAAO0E,GAAK2K,EAAI3K,IAAM,OAAO1E,EAEnN,SAAS0kC,EAAgBtlC,EAAUuP,GAAe,KAAMvP,aAAoBuP,GAAgB,MAAM,IAAIC,UAAU,qCAEhH,SAAS+1B,EAA2BC,EAAM1nC,GAAQ,IAAK0nC,EAAQ,MAAM,IAAIhG,eAAe,6DAAgE,OAAO1hC,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B0nC,EAAP1nC,EAElO,SAAS2nC,EAAUC,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIn2B,UAAU,kEAAoEm2B,GAAeD,EAAS1mC,UAAYkG,OAAO6D,OAAO48B,GAAcA,EAAW3mC,UAAW,CAAEyiB,YAAa,CAAE5d,MAAO6hC,EAAU91B,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe81B,IAAYzgC,OAAOi7B,eAAiBj7B,OAAOi7B,eAAeuF,EAAUC,GAAcD,EAAS1gC,UAAY2gC,GAaje,IAAIC,EAAqB,SAA4BtvB,EAAMuvB,GACzD,IAAIC,EAAM,IAAcD,GAExB,OADAC,EAAI/N,YAAczhB,EACXwvB,GAKLC,EAAkBH,EAAmB,YAIrCroC,EAAW,SAAkBtB,GAC/B,IAAIgV,EAAWhV,EAAKgV,SACpB,OAAO,IAAM3T,cACXyoC,EAAgB/B,SAChB,MACA,SAAUiB,GACR,OAAOA,EAAUh0B,EAASg0B,GAAW,IAAM3nC,cACzC0oC,EACA,KACA/0B,OAMJ+0B,EAAmB,SAAUpoC,GAG/B,SAASooC,IACP,IAAIC,EAAOpoC,EAEXynC,EAAgBvnC,KAAMioC,GAEtB,IAAK,IAAIhO,EAAOpqB,UAAUlI,OAAQuyB,EAAOljB,MAAMijB,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3ED,EAAKC,GAAQtqB,UAAUsqB,GAGzB,OAAe+N,EAASpoC,EAAQ0nC,EAA2BxnC,KAAMH,EAAiBE,KAAK+jB,MAAMjkB,EAAkB,CAACG,MAAMob,OAAO8e,KAAiBp6B,EAAMe,MAAQ,CAC1JqmC,QAASpnC,EAAMqoC,aACfC,KAAM,CAAEC,SAAU,OACTb,EAA2B1nC,EAAnCooC,GAkEL,OAhFAR,EAAUO,EAAkBpoC,GAiB5BooC,EAAiBhnC,UAAUknC,WAAa,WACtC,IAAIG,EAAiBtoC,KAAKV,MAAM4hB,QAIhC,MAAO,CAAE/jB,SAHMmrC,EAAenrC,SAGDuC,SAFd4oC,EAAe5oC,WAKhCuoC,EAAiBhnC,UAAUsnC,kBAAoB,SAA2B3H,EAAO4H,GAC/E,IAAIC,EAAW7H,GAKb,MAAMA,GAFN8H,EAFgB1oC,KAAKV,MAAM4hB,QAAQ/jB,UAEzByjC,EAAMhe,IAAK,CAAE3lB,SAAS,KAMpCgrC,EAAiBhnC,UAAUS,mBAAqB,SAA4BC,EAAWC,GACjFA,EAAUslC,QAAQxnC,WAAaM,KAAKa,MAAMqmC,QAAQxnC,UACpDM,KAAKV,MAAM4hB,QAAQK,yBAIvB0mB,EAAiBhnC,UAAUY,kBAAoB,WAC7C,IAAIU,EAASvC,KAETooC,EAAOpoC,KAAKa,MAAMunC,KAClBlnB,EAAUlhB,KAAKV,MAAM4hB,QAEzBA,EAAQK,wBACR6mB,EAAKC,SAAWnnB,EAAQM,QAAO,WAC7BnV,QAAQzN,UAAU4N,MAAK,WAErBxC,uBAAsB,WACfzH,EAAOomC,WACVpmC,EAAOwiC,UAAS,WACd,MAAO,CAAEmC,QAAS3kC,EAAO4lC,2BAQrCF,EAAiBhnC,UAAUa,qBAAuB,WAChD,IAAIsmC,EAAOpoC,KAAKa,MAAMunC,KAEtBpoC,KAAK2oC,WAAY,EACjBP,EAAKC,YAGPJ,EAAiBhnC,UAAUgC,OAAS,WAClC,IAAIikC,EAAUlnC,KAAKa,MAAMqmC,QACrBh0B,EAAWlT,KAAKV,MAAM4T,SAE1B,OAAO,IAAM3T,cACXyoC,EAAgB/M,SAChB,CAAEn1B,MAAOohC,GACW,mBAAbh0B,EAA0BA,EAASg0B,GAAWh0B,GAAY,OAI9D+0B,EAjFc,CAkFrB,IAAMvjC,WAKRujC,EAAiBW,aAAe,CAC9B1nB,QAAS,KAKX,IAAI2nB,EAAiB,SAAwBppC,GAC3C,IAAIqpC,EAAMrpC,EAAMqpC,IACZ51B,EAAWzT,EAAMyT,SAEjBoP,EAAcwmB,EAAIx9B,QAAQ,KAE1BlK,OAAW,EACXyI,EAAS,GAUb,OAZmByY,GAAe,GAMhClhB,EAAW0nC,EAAIpO,UAAU,EAAGpY,GAC5BzY,EAASi/B,EAAIpO,UAAUpY,IAEvBlhB,EAAW0nC,EAGN,IAAMvpC,cACXyoC,EAAgB/M,SAChB,CACEn1B,MAAO,CACLpG,SAAU,CACR0B,SAAUA,EACVyI,OAAQA,EACRC,KAhBG,IAkBL3M,SAAU,WACR,MAAM,IAAI2nB,MAAM,6CAItB5R,IAKAsyB,EAAcqC,EAAmB,OAAQ,CAAEpC,QAAS,IAAKC,SAAU,MAInEQ,EAAS,SAAgB5mC,GAC3B,OAAO,IAAMC,cACXimC,EAAYS,SACZ,MACA,SAAU8C,GACR,OAAO,IAAMxpC,cACXC,EACA,MACA,SAAUwpC,GACR,OAAO,IAAMzpC,cAAc0pC,EAAY92B,EAAS,GAAI42B,EAAaC,EAAiB1pC,WAOxF2pC,EAAa,SAAUC,GAGzB,SAASD,IAGP,OAFA1B,EAAgBvnC,KAAMipC,GAEfzB,EAA2BxnC,KAAMkpC,EAAqBplB,MAAM9jB,KAAM6P,YAgF3E,OArFA63B,EAAUuB,EAAYC,GAQtBD,EAAWhoC,UAAUgC,OAAS,WAC5B,IAAIkmC,EAASnpC,KAAKV,MACdI,EAAWypC,EAAOzpC,SAClB0pC,EAAaD,EAAOhsC,SACpBuoC,EAAWyD,EAAOzD,SAClBzoB,EAAUksB,EAAOlsB,QACjB/J,EAAWi2B,EAAOj2B,SAElBm2B,GADUF,EAAO1D,QACE0D,EAAOpM,WAC1BA,OAAiCt1B,IAArB4hC,EAAiC,MAAQA,EACrDC,EAAWhC,EAAyB6B,EAAQ,CAAC,WAAY,WAAY,WAAY,UAAW,WAAY,UAAW,cAEnHjM,EAAS,IAAMqM,SAASC,QAAQt2B,GAAUgJ,QAAO,SAAUutB,EAAOC,GACpE,IAAIxM,EAASyM,EAAYjE,EAAZiE,CAAsBD,GACnC,OAAOD,EAAMruB,OAAO8hB,KACnB,IACC97B,EAAW1B,EAAS0B,SAGpBoW,EAAQ,eAAK0lB,EAAQ97B,GAEzB,GAAIoW,EAAO,CACT,IAAItO,EAASsO,EAAMtO,OACf0Z,EAAMpL,EAAMoL,IACZ5Z,EAAQwO,EAAMxO,MACd8D,EAAU0K,EAAMxO,MAAMlD,MAI1B4/B,EAAW18B,EAAM5L,QAAUsoC,EAAW18B,EAAMlM,KAAKG,QAAQ,MAAO,IAEhE,IAAIqC,EAAQ6S,EAAS,GAAIjJ,EAAQ,CAC/B0Z,IAAKA,EACLljB,SAAUA,EACVvC,SAAU,SAAkBmE,EAAIgE,GAC9B,OAAO8jC,EAAW,kBAAQ9nC,EAAIshB,GAAMtd,MAIpCskC,EAAQ,IAAMC,aAAa/8B,EAASxN,EAAOwN,EAAQxN,MAAM4T,SAAW,IAAM3T,cAC5E2mC,EACA,CAAExmC,SAAUA,EAAUud,QAASA,GAC/BnQ,EAAQxN,MAAM4T,eACZzL,GAGAqiC,EAAe7sB,EAAU8sB,EAAehN,EAExCiN,EAAe/sB,EAAU9K,EAAS,CAAEyQ,IAAKA,EAAKljB,SAAUA,EAAUq9B,UAAWA,GAAauM,GAAYA,EAE1G,OAAO,IAAM/pC,cACXimC,EAAYvK,SACZ,CAAEn1B,MAAO,CAAE2/B,QAAS7iB,EAAK8iB,SAAUA,IACnC,IAAMnmC,cACJuqC,EACAE,EACAJ,IAiBJ,OAAO,MAIJX,EAtFQ,CAuFf,IAAMgB,eAERhB,EAAWL,aAAe,CACxB3rB,SAAS,GAIX,IAAIitB,EAAerC,EAAmB,SAElCkC,EAAe,SAAsB7pC,GACvC,IAAI0iB,EAAM1iB,EAAM0iB,IACZljB,EAAWQ,EAAMR,SACjBq9B,EAAY78B,EAAM68B,UAClBuM,EAAWhC,EAAyBpnC,EAAO,CAAC,MAAO,WAAY,cAEnE,OAAO,IAAMX,cACX2qC,EAAajE,SACb,MACA,SAAUkE,GACR,OAAO,IAAM5qC,cAAc6qC,EAAkBj4B,EAAS,GAAIm3B,EAAU,CAClEvM,UAAWA,EACXoN,aAAcA,EACdvnB,IAAKA,EACLljB,SAAUA,SAOd2qC,GAAgB,EAChBC,EAAoB,EAEpBF,EAAmB,SAAUG,GAG/B,SAASH,IACP,IAAII,EAAQC,EAEZlD,EAAgBvnC,KAAMoqC,GAEtB,IAAK,IAAIM,EAAQ76B,UAAUlI,OAAQuyB,EAAOljB,MAAM0zB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChFzQ,EAAKyQ,GAAS96B,UAAU86B,GAG1B,OAAgBH,EAAUC,EAASjD,EAA2BxnC,KAAMuqC,EAAkBxqC,KAAK+jB,MAAMymB,EAAmB,CAACvqC,MAAMob,OAAO8e,KAAkBuQ,EAAO5pC,MAAQ,GAAI4pC,EAAON,aAAe,SAAU17B,IAChMg8B,EAAO5pC,MAAM+pC,aAAen8B,GAC/BA,EAAK4Y,SAEGmgB,EAA2BiD,EAApCD,GA4FL,OA3GA9C,EAAU0C,EAAkBG,GAkB5BH,EAAiBS,yBAA2B,SAAkC7G,EAAWpiC,GAEvF,GAD+B,MAAjBA,EAAUghB,IAEtB,OAAOzQ,EAAS,CACdy4B,aAAa,GACZ5G,GAEH,IAAI8G,EAAe9G,EAAUphB,MAAQhhB,EAAUghB,IAC3CmoB,EAAkBnpC,EAAUlC,SAAS0B,WAAa4iC,EAAUtkC,SAAS0B,UAAY4iC,EAAUtkC,SAAS0B,WAAa4iC,EAAUphB,IAC/H,OAAOzQ,EAAS,CACdy4B,YAAaE,GAAgBC,GAC5B/G,IAIPoG,EAAiBnpC,UAAUY,kBAAoB,WAC7CyoC,IACAtqC,KAAKqnB,SAGP+iB,EAAiBnpC,UAAUa,qBAAuB,WAEtB,MAD1BwoC,IAEED,GAAgB,IAIpBD,EAAiBnpC,UAAUS,mBAAqB,SAA4BC,EAAWC,GACjFD,EAAUjC,WAAaM,KAAKV,MAAMI,UAAYM,KAAKa,MAAM+pC,aAC3D5qC,KAAKqnB,SAIT+iB,EAAiBnpC,UAAUomB,MAAQ,WAQjC,IAAI8iB,EAAenqC,KAAKV,MAAM6qC,aAG1BA,EACFA,EAAanqC,KAAKyO,MAEd47B,EACFA,GAAgB,EACPrqC,KAAKyO,OAGTzO,KAAKyO,KAAKe,SAASzD,SAASi/B,gBAC/BhrC,KAAKyO,KAAK4Y,UAMlB+iB,EAAiBnpC,UAAUgC,OAAS,WAClC,IAAIgoC,EAASjrC,KAETkrC,EAAUlrC,KAAKV,MAEfmB,GADWyqC,EAAQh4B,SACXg4B,EAAQzqC,OAEhB0qC,GADeD,EAAQf,aACHe,EAAQnO,WAC5BqO,OAA6B3jC,IAAtB0jC,EAAkC,MAAQA,EAGjD7B,GAFM4B,EAAQtoB,IACHsoB,EAAQxrC,SACR4nC,EAAyB4D,EAAS,CAAC,WAAY,QAAS,eAAgB,YAAa,MAAO,cAE3G,OAAO,IAAM3rC,cACX6rC,EACAj5B,EAAS,CACP1R,MAAO0R,EAAS,CAAEk5B,QAAS,QAAU5qC,GACrC6qC,SAAU,KACVjpC,IAAK,SAAa2E,GAChB,OAAOikC,EAAOx8B,KAAOzH,IAEtBsiC,GACH,IAAM/pC,cACJ2qC,EAAajP,SACb,CAAEn1B,MAAO9F,KAAKmqC,cACdnqC,KAAKV,MAAM4T,YAKVk3B,EA5Gc,CA6GrB,IAAM1lC,WAER,mBAAS0lC,GAET,IAAI1d,EAAI,aAGJrnB,EAAa,IAAMA,gBAEG,IAAfA,IACTA,EAAa,SAAoBqmB,GAC/B,OAAOA,IAIX,IAAI9nB,EAAOyB,GAAW,SAAUghC,EAAOhkC,GACrC,IAAIG,EAAW6jC,EAAM7jC,SACjBlD,EAAQgoC,EAAyBjB,EAAO,CAAC,aAE7C,OAAO,IAAM9mC,cACXimC,EAAYS,SACZ,MACA,SAAUsF,GACOA,EAAM7F,SAArB,IACID,EAAU8F,EAAM9F,QACpB,OAAO,IAAMlmC,cACXC,EACA,MACA,SAAUgsC,GACR,IAAI9rC,EAAW8rC,EAAM9rC,SACjBvC,EAAWquC,EAAMruC,SAEjBmE,EAAKhC,EAAMgC,GACXT,EAAQvB,EAAMuB,MACd5D,EAAUqC,EAAMrC,QAChBwuC,EAAkBnsC,EAAM+D,SACxBA,OAA+BoE,IAApBgkC,EAAgC/e,EAAI+e,EAC/CC,EAAcpE,EAAyBhoC,EAAO,CAAC,KAAM,QAAS,UAAW,aAEzEmF,EAAO,kBAAQnD,EAAImkC,GACnBkG,EAAcpnC,UAAUE,GACxBrE,EAAYV,EAAS0B,WAAauqC,EAClCxrC,EAAqB,qBAAWT,EAAS0B,SAAUuqC,GAEvD,OAAO,IAAMpsC,cAAc,IAAK4S,EAAS,CACvC9P,IAAKA,GAAOG,EACZ,eAAgBpC,EAAY,YAASqH,GACpCikC,EAAaroC,EAAS,CAAEjD,UAAWA,EAAWD,mBAAoBA,EAAoBsE,KAAMA,EAAM/E,SAAUA,IAAa,CAC1H+E,KAAMA,EACNlB,QAAS,SAAiBoW,GAExB,GADI+xB,EAAYnoC,SAASmoC,EAAYnoC,QAAQoW,GACzCiyB,EAAejyB,GAAQ,CACzBA,EAAMtV,iBACN,IAAIC,EAAgBrH,EACpB,GAAuB,kBAAZA,GAAyBmD,EAAW,CAC7C,IAAIyrC,EAAkB15B,EAAS,GAAIzS,EAASmB,OAExCirC,GADMD,EAAgBlmC,IACV2hC,EAAyBuE,EAAiB,CAAC,SAE3DvnC,EAAgB,yBAAe6N,EAAS,GAAItR,GAAQirC,GAEtD3uC,EAASsH,EAAM,CACb5D,MAAOA,EACP5D,QAASqH,kBAkB3B,SAASynC,EAAgBnpB,GACvB5iB,KAAK4iB,IAAMA,EARbhf,EAAKo2B,YAAc,OAWnB,IAAIyO,EAAa,SAAoB7kB,GACnC,OAAOA,aAAamoB,GAGlBC,EAAa,SAAoB1qC,GACnC,MAAM,IAAIyqC,EAAgBzqC,IAGxB2qC,EAAe,SAAUC,GAG3B,SAASD,IAGP,OAFA1E,EAAgBvnC,KAAMisC,GAEfzE,EAA2BxnC,KAAMksC,EAAkBpoB,MAAM9jB,KAAM6P,YAsCxE,OA3CA63B,EAAUuE,EAAcC,GASxBD,EAAahrC,UAAUY,kBAAoB,WACzC,IAAIsqC,EAAUnsC,KAAKV,MACfnC,EAAWgvC,EAAQhvC,SACnBmE,EAAK6qC,EAAQ7qC,GAEb8qC,GADOD,EAAQxoB,KACGwoB,EAAQlvC,SAC1BA,OAA8BwK,IAApB2kC,GAAuCA,EACjDvrC,EAAQsrC,EAAQtrC,MAEhB4kC,GADU0G,EAAQE,QACRF,EAAQ1G,SAClBnmC,EAAQgoC,EAAyB6E,EAAS,CAAC,WAAY,KAAM,OAAQ,UAAW,QAAS,UAAW,YAExG9/B,QAAQzN,UAAU4N,MAAK,WACrB,IAAI8/B,EAAa,kBAAQhrC,EAAImkC,GAC7BtoC,EAAS,uBAAamvC,EAAYhtC,GAAQ,CAAErC,QAASA,EAAS4D,MAAOA,QAIzEorC,EAAahrC,UAAUgC,OAAS,WAC9B,IAAIspC,EAAUvsC,KAAKV,MAEfgC,GADWirC,EAAQpvC,SACdovC,EAAQjrC,IAIb+qC,GAHOE,EAAQ5oB,KACL4oB,EAAQtvC,QACVsvC,EAAQ1rC,MACN0rC,EAAQF,SAClB5G,EAAU8G,EAAQ9G,QAClBnmC,EAAQgoC,EAAyBiF,EAAS,CAAC,WAAY,KAAM,OAAQ,UAAW,QAAS,UAAW,YAEpGD,EAAa,kBAAQhrC,EAAImkC,GAE7B,OADK4G,GAASL,EAAW,uBAAaM,EAAYhtC,IAC3C,MAGF2sC,EA5CU,CA6CjB,IAAMvnC,WAEJ8nC,EAAW,SAAkBltC,GAC/B,OAAO,IAAMC,cACXimC,EAAYS,SACZ,MACA,SAAUwG,GACR,IAAIhH,EAAUgH,EAAMhH,QACpB,OAAO,IAAMlmC,cACXC,EACA,MACA,SAAUwpC,GACR,OAAO,IAAMzpC,cAAc0sC,EAAc95B,EAAS,GAAI62B,EAAiB,CAAEvD,QAASA,GAAWnmC,WAanGotC,EAAQ,SAAeC,GACzB,IAAI7vC,EAAO6vC,EAAM7vC,KACboW,EAAWy5B,EAAMz5B,SACrB,OAAO,IAAM3T,cACXimC,EAAYS,SACZ,MACA,SAAU2G,GACR,IAAInH,EAAUmH,EAAMnH,QACpB,OAAO,IAAMlmC,cACXC,EACA,MACA,SAAUqtC,GACR,IAAI1vC,EAAW0vC,EAAO1vC,SAClBuC,EAAWmtC,EAAOntC,SAElBotC,EAAe,kBAAQhwC,EAAM2oC,GAC7BhzB,EAAS,gBAAMq6B,EAAcptC,EAAS0B,UAC1C,OAAO8R,EAAS,CACd/V,SAAUA,EACVuC,SAAUA,EACV8X,MAAO/E,EAASN,EAAS,GAAIM,EAAOvJ,OAAQ,CAC1C0Z,IAAKnQ,EAAOmQ,IACZ9lB,KAAMA,IACH,cAWbsN,EAAc,WAChB,IAAI88B,EAAU,qBAAWc,GAEzB,IAAKd,EACH,MAAM,IAAIpiB,MAAM,8JAGlB,OAAOoiB,EAAQxnC,UAGbqtC,EAAc,WAChB,IAAI7F,EAAU,qBAAWc,GAEzB,IAAKd,EACH,MAAM,IAAIpiB,MAAM,8JAGlB,OAAOoiB,EAAQ/pC,UAGb6vC,EAAY,WACd,IAAI9F,EAAU,qBAAW1B,GAEzB,IAAK0B,EACH,MAAM,IAAIpiB,MAAM,4JAGlB,IAAIplB,EAAW0K,IAEXq5B,EAAU,gBAAMyD,EAAQxB,SAAUhmC,EAAS0B,UAE/C,OAAOqiC,EAAUA,EAAQv6B,OAAS,MAGhC+jC,EAAW,SAAkBnwC,GAC/B,IAAKA,EACH,MAAM,IAAIgoB,MAAM,4EAElB,IAAIoiB,EAAU,qBAAW1B,GAEzB,IAAK0B,EACH,MAAM,IAAIpiB,MAAM,2JAGlB,IAAIplB,EAAW0K,IAEX0iC,EAAe,kBAAQhwC,EAAMoqC,EAAQzB,SACrChzB,EAAS,gBAAMq6B,EAAcptC,EAAS0B,UAC1C,OAAOqR,EAASN,EAAS,GAAIM,EAAOvJ,OAAQ,CAC1C0Z,IAAKnQ,EAAOmQ,IACZ9lB,KAAMA,IACH,MAKHowC,EAAe,SAAsB/wB,GACvC,OAAOA,EAAIlf,QAAQ,eAAgB,KAGjC0sC,EAAc,SAASA,EAAYjE,GACrC,OAAO,SAAU54B,GACf,IAAKA,EACH,OAAO,KAGT,GAAIA,EAAQ5B,OAAS,IAAMs5B,UAAY13B,EAAQxN,MAAM4T,SACnD,OAAO,IAAMq2B,SAAS5gC,IAAImE,EAAQxN,MAAM4T,SAAUy2B,EAAYjE,IAQhE,GANE54B,EAAQxN,MAAMxC,MAAQgQ,EAAQxN,MAAMlC,SAAW0P,EAAQ5B,OAASshC,GAAuN,KAAU,GAEhS1/B,EAAQ5B,OAASshC,GAAc1/B,EAAQxN,MAAMqkB,MAAS7W,EAAQxN,MAAMgC,IAAqN,KAAU,GAEnSwL,EAAQ5B,OAASshC,GAAa,2BAAiB1/B,EAAQxN,MAAMqkB,KAAM7W,EAAQxN,MAAMgC,KAA4O,KAAU,GAEtUwL,EAAQxN,MAAMlC,QAChB,MAAO,CAAE0I,MAAOgH,EAAS1P,SAAS,GAGpC,IAAI+vC,EAAcrgC,EAAQ5B,OAASshC,EAAW1/B,EAAQxN,MAAMqkB,KAAO7W,EAAQxN,MAAMxC,KAE7EA,EAAuB,MAAhBqwC,EAAsBzH,EAAWwH,EAAaxH,GAAY,IAAMwH,EAAaC,GAExF,MAAO,CACLrnC,MAAOgH,EACP1P,QAAS0P,EAAQxN,MAAMlC,QACvBN,KAAMgQ,EAAQxN,MAAM4T,SAAWg6B,EAAapwC,GAAQ,KAAOA,KAK7D8uC,EAAiB,SAAwBjyB,GAC3C,OAAQA,EAAM3V,kBAAqC,IAAjB2V,EAAM5V,UAAkB4V,EAAM1V,SAAW0V,EAAMzV,QAAUyV,EAAMxV,SAAWwV,EAAMvV,Y,kCC3sBpH,SAASgpC,EAAkBzmC,EAAGO,IAC3B,MAAQA,GAAKA,EAAIP,EAAEgB,UAAYT,EAAIP,EAAEgB,QACtC,IAAK,IAAI9D,EAAI,EAAGmD,EAAIgQ,MAAM9P,GAAIrD,EAAIqD,EAAGrD,IAAKmD,EAAEnD,GAAK8C,EAAE9C,GACnD,OAAOmD,EAHT,mC,mBCAA,SAASR,EAAQod,GAGf,OAAO/c,EAAOnK,QAAU8J,EAAU,mBAAqB6mC,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1pB,GAC9G,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAK,mBAAqBypB,QAAUzpB,EAAEF,cAAgB2pB,QAAUzpB,IAAMypB,OAAOpsC,UAAY,gBAAkB2iB,GACjH/c,EAAOnK,QAAQC,YAAa,EAAMkK,EAAOnK,QAAiB,QAAImK,EAAOnK,QAAS8J,EAAQod,GAE3F/c,EAAOnK,QAAU8J,EAASK,EAAOnK,QAAQC,YAAa,EAAMkK,EAAOnK,QAAiB,QAAImK,EAAOnK,S,kCCJhF,SAASwL,EAAYiU,EAAKle,GACvC,YAD6C,IAANA,MAAS,IAC3CA,EAIDke,IAAQle,EACH,IAGLke,EAAIne,WAAcC,EAAH,KACVke,EAAI3d,MAAMP,EAAO0J,QAGnBwU,EAXEA,EAPX,mC,kCCEAzf,EAAQC,YAAa,EACrBD,EAAQoB,UAER,SAAmBhB,GACjB,IAAIsE,EAAWtE,GAAQ,IACnB+M,EAAS,GACTC,EAAO,GACPyjC,EAAYnsC,EAASkK,QAAQ,MAEd,IAAfiiC,IACFzjC,EAAO1I,EAASohB,OAAO+qB,GACvBnsC,EAAWA,EAASohB,OAAO,EAAG+qB,IAGhC,IAAIjrB,EAAclhB,EAASkK,QAAQ,MAEd,IAAjBgX,IACFzY,EAASzI,EAASohB,OAAOF,GACzBlhB,EAAWA,EAASohB,OAAO,EAAGF,IAGhC,MAAO,CACLlhB,SAAUA,EACVyI,OAAmB,MAAXA,EAAiB,GAAKA,EAC9BC,KAAe,MAATA,EAAe,GAAKA,K,+VCtB9B,SAAS0jC,EAAmB7mC,GAC1B,OCJF,SAA4BA,GAC1B,GAAIqQ,MAAMoM,QAAQzc,GAAI,OAAO,OAAA8mC,EAAA,GAAiB9mC,GDGvC,CAAkBA,IEL3B,SAA0BA,GACxB,GAAI,oBAAsB0mC,QAAU,MAAQ1mC,EAAE0mC,OAAOC,WAAa,MAAQ3mC,EAAE,cAAe,OAAOqQ,MAAM2M,KAAKhd,GFI9E,CAAgBA,IAAM,OAAA+mC,EAAA,GAA2B/mC,IGLlF,WACE,MAAM,IAAI8K,UAAU,wIHIkE,GILxF,MAyDMk8B,EAzDU,SAAUC,GACxB,GAAwB,oBAAb7hC,SACT,OAAO,EAET,MAAM8hC,EAAW9hC,SAASxM,cAAc,QACxC,IACE,GAAIsuC,EAASC,SAAgD,mBAA9BD,EAASC,QAAQC,SAC9C,OAAOF,EAASC,QAAQC,SAASH,GAEnC,MAAOI,GACP,OAAO,EAET,OAAO,EA6CyBC,CAAQ,YA1Cb,SAAUnF,EAAKxjC,GAC1C,OAAO,IAAI+G,QAAQ,CAACzN,EAASsvC,KAC3B,GAAwB,oBAAbniC,SAET,YADAmiC,IAIF,MAAMC,EAAOpiC,SAASxM,cAAc,QACpC4uC,EAAKnuB,aAAa,MAAO,YACzBmuB,EAAKnuB,aAAa,OAAQ8oB,GAE1B3hC,OAAOiO,KAAK9P,GAAS3C,QAAQgD,IAC3BwoC,EAAKnuB,aAAara,EAAKL,EAAQK,MAGjCwoC,EAAKC,OAASxvC,EACduvC,EAAKE,QAAUH,GAGbniC,SAASuiC,qBAAqB,QAAQ,IACtCviC,SAASwiC,kBAAkB,UAAU,GAAGlhC,YAC5BqiB,YAAYye,MAIF,SAAUrF,GACpC,OAAO,IAAIz8B,QAAQ,CAACzN,EAASsvC,KAC3B,MAAMM,EAAM,IAAIC,eAChBD,EAAIE,KAAK,MAAO5F,GAAK,GAErB0F,EAAIJ,OAAS,KACQ,MAAfI,EAAItL,OACNtkC,IAEAsvC,KAIJM,EAAIG,KAAK,SAQPC,EAAa,GAkBJC,MAhBE,SAAU/F,EAAKxjC,GAC9B,OAAO,IAAI+G,QAAQzN,IACbgwC,EAAW9F,GACblqC,IAIF+uC,EAA0B7E,EAAKxjC,GAC5BkH,KAAK,KACJ5N,IACAgwC,EAAW9F,IAAO,IAEnBxH,MAAM,W,wBCpEN,MAAM6B,EAAqB,CAIhCre,MAAO,QAIPgqB,QAAS,WAGLC,EAAgBnnB,GAAMA,GAAKA,EAAExqB,SAAYwqB,EAQzConB,EAAoBlyC,IANM+mB,MAQ9B,MAAO,cADoB,MAAT/mB,EAAe,QALjC+mB,GADAA,EAAa,OADiBA,EAOqC/mB,GAN7D,GAAa+mB,EAAErlB,MAAM,GAAKqlB,GAC1BtlB,SAAS,KAAOslB,EAAErlB,MAAM,GAAI,GAAKqlB,oBASzC,SAASorB,EAAQnG,EAAK5R,GACpB,YAD0B,IAANA,MAAS,OACtB,IAAI7qB,QAAQ,CAACzN,EAASsvC,KAC3B,MAAMM,EAAM,IAAIC,eAChBD,EAAIE,KAAKxX,EAAQ4R,GAAK,GACtB0F,EAAIU,mBAAqB,KACD,GAAlBV,EAAI9N,YACN9hC,EAAQ4vC,IAGZA,EAAIG,KAAK,QAIb,MAeMQ,EAAkB,SAACC,EAAUrS,QAAS,IAATA,MAAY,MAC7C,MAAMC,EAAO,CACXqS,mBAAoBD,EAASC,mBAC7BvyC,KAAMsyC,EAAStyC,KACfsmC,uBAAwBgM,EAAShM,uBACjCx6B,UAAWwmC,EAASxmC,UACpB0mC,kBAAmBF,EAASE,mBAG9B,MAAO,CACLvS,YACAT,KAAM8S,EAAS38B,OACfuqB,SAIG,MAAMuS,EACX7rB,YAAY8rB,EAAe1nC,GAAa,KA0BxC2nC,wBAA0B,IAAI5nC,IAV5B7H,KAAK0vC,OAAS,IAAI7nC,IAClB7H,KAAK2vC,WAAa,IAAI9nC,IACtB7H,KAAK4vC,cAAgB,GACrB5vC,KAAK6vC,WAAa,IAAIhoC,IACtB7H,KAAK8vC,kBAAoB,IAAIC,IAC7B/vC,KAAKgwC,kBAAoB,IAAID,IAC7B/vC,KAAKwvC,cAAgBA,EACrBlnC,YAAcR,GAKhBmoC,YAAYnH,GACV,IAAIoH,EAAkBlwC,KAAKyvC,wBAAwB1oC,IAAI+hC,GAQvD,OANKoH,IACHA,EAAkBjB,EAAQnG,EAAK,OAC/B9oC,KAAKyvC,wBAAwBjoC,IAAIshC,EAAKoH,IAIjCA,EACJ1jC,KAAK2jC,IACJnwC,KAAKyvC,wBAAwBW,OAAOtH,GAC7BqH,IAER7O,MAAM0M,IAEL,MADAhuC,KAAKyvC,wBAAwBW,OAAOtH,GAC9BkF,IAIZ5I,aAAazI,GACX38B,KAAK28B,UAAYA,EACjB38B,KAAKqwC,iBAAmB1T,EAAU,0BAA0BnzB,KAAKtC,GAAKA,GAGxEopC,kBAAkBC,GAChB,MAAM,SAAE3mC,EAAQ,QAAE4mC,EAAU,GAAMD,EAC5BzH,EAAMkG,EAAkBplC,GAC9B,OAAO5J,KAAKiwC,YAAYnH,GAAKt8B,KAAKgiC,IAChC,MAAM,OAAEtL,EAAM,aAAEuN,GAAiBjC,EAGjC,GAAe,MAAXtL,EACF,IACE,MAAMwN,EAAczqC,KAAKC,MAAMuqC,GAC/B,QAAyBhpC,IAArBipC,EAAY5zC,KACd,MAAM,IAAIgoB,MAAM,iCAGlB,OAAO3d,OAAOiL,OAAOm+B,EAAS,CAC5BrN,OAAQC,EAAmB2L,QAC3B6B,QAASD,IAEX,MAAO1C,IAMX,OAAe,MAAX9K,GAA6B,MAAXA,EAEH,cAAbt5B,EACKzC,OAAOiL,OAAOm+B,EAAS,CAC5BrN,OAAQC,EAAmBre,QAMxB9kB,KAAKswC,kBACVnpC,OAAOiL,OAAOm+B,EAAS,CAAE3mC,SAAU,YAAagnC,UAAU,KAK/C,MAAX1N,EACK/7B,OAAOiL,OAAOm+B,EAAS,CAC5BrN,OAAQC,EAAmBre,QAK3B0rB,EAAU,EACLxwC,KAAKswC,kBACVnpC,OAAOiL,OAAOm+B,EAAS,CAAEC,QAASA,EAAU,KAKzCrpC,OAAOiL,OAAOm+B,EAAS,CAC5BrN,OAAQC,EAAmBre,UAKjC+rB,iBAAiB/L,GACf,MAAMl7B,EAAWT,YAAS27B,GAC1B,OAAI9kC,KAAK6vC,WAAW/oC,IAAI8C,GACfyC,QAAQzN,QAAQoB,KAAK6vC,WAAW9oC,IAAI6C,IAGtC5J,KAAKswC,kBAAkB,CAAE1mC,aAAY4C,KAAK4iC,IAC/CpvC,KAAK6vC,WAAWroC,IAAIoC,EAAUwlC,GAEvBA,IAIX7mC,cAAcu8B,GACZ,OAAOv8B,YAAcu8B,GAIvB7B,SAAS6B,GACP,MAAMl7B,EAAWT,YAAS27B,GAC1B,GAAI9kC,KAAK0vC,OAAO5oC,IAAI8C,GAAW,CAC7B,MAAMozB,EAAOh9B,KAAK0vC,OAAO3oC,IAAI6C,GAC7B,OAAOyC,QAAQzN,QAAQo+B,EAAK2T,SAG9B,GAAI3wC,KAAK2vC,WAAW7oC,IAAI8C,GACtB,OAAO5J,KAAK2vC,WAAW5oC,IAAI6C,GAG7B,MAAMsmC,EAAkB7jC,QAAQtB,IAAI,CAClC/K,KAAK8wC,cACL9wC,KAAK6wC,iBAAiBjnC,KACrB4C,KAAKukC,IACN,MAAMt+B,EAASs+B,EAAQ,GACvB,GAAIt+B,EAAOywB,SAAWC,EAAmBre,MACvC,MAAO,CACLoe,OAAQC,EAAmBre,OAI/B,IAAIsqB,EAAW38B,EAAOk+B,QACtB,MAAM,mBAAEtB,EAAkB,kBAAEC,EAAoB,IAAOF,EAEjD4B,EAAc,GAEdC,EAAwBjxC,KAAKwvC,cAAcH,GAAoB7iC,KACnEuwB,IAEE,IAAIV,EAgBJ,OAjBA2U,EAAYE,UAAY,IAAIpvB,KAEvBib,GAGHiU,EAAY9N,OAASC,EAAmB2L,SAChB,IAApBr8B,EAAOm+B,WACTI,EAAYJ,UAAW,GAEzBxB,EAAWjoC,OAAOiL,OAAOg9B,EAAU,CACjChM,uBAAwB2N,EAAQ,GAC5BA,EAAQ,GAAG3N,uBACX,KAEN/G,EAAgB8S,EAAgBC,EAAUrS,IAX1CiU,EAAY9N,OAASC,EAAmBre,MAcnCuX,IAIL8U,EAA0B9kC,QAAQtB,IACtCukC,EAAkB3mC,IAAIyoC,IAEpB,GAAIpxC,KAAK4vC,cAAcwB,GAAkB,CACvC,MAAMV,EAAc1wC,KAAK4vC,cAAcwB,GACvC,MAAO,CAAEA,kBAAiBV,eAG5B,OAAO1wC,KAAKiwC,YACV,mBAAqCmB,UACrC5kC,KAAKgiC,IACL,MAAMkC,EAAczqC,KAAKC,MAAMsoC,EAAIiC,cACnC,MAAO,CAAEW,kBAAiBV,oBAG9BlkC,KAAKq5B,IACL,MAAMwL,EAAwB,GAO9B,OALAxL,EAAmBljC,QAAQzE,IAAuC,IAAtC,gBAAEkzC,EAAe,YAAEV,GAAaxyC,EAC1DmzC,EAAsBD,GAAmBV,EACzC1wC,KAAK4vC,cAAcwB,GAAmBV,IAGjCW,IAGT,OAAOhlC,QAAQtB,IAAI,CAACkmC,EAAuBE,IAA0B3kC,KACnE/M,IAA0C,IACpCkxC,GADJtU,EAAewJ,GAAmBpmC,EAalC,OAXI48B,IACFsU,EAAU,IAAKtU,EAAewJ,sBAC9BmL,EAAYL,QAAUA,EACtB7lC,IAAQS,KAAK,0BAA2B,CACtCyxB,KAAM2T,EACNtU,cAAesU,KAInB3wC,KAAK0vC,OAAOloC,IAAIoC,EAAUonC,GAEnBL,MAgBb,OAXAT,EACG1jC,KAAK2jC,IACJnwC,KAAK2vC,WAAWS,OAAOxmC,KAExB03B,MAAMV,IAEL,MADA5gC,KAAK2vC,WAAWS,OAAOxmC,GACjBg3B,IAGV5gC,KAAK2vC,WAAWnoC,IAAIoC,EAAUsmC,GAEvBA,EAITtL,aAAaE,GACX,MAAMl7B,EAAWT,YAAS27B,GAC1B,GAAI9kC,KAAK0vC,OAAO5oC,IAAI8C,GAAW,CAE7B,OADiB5J,KAAK0vC,OAAO3oC,IAAI6C,GAAU+mC,SAM/CW,eAAe1nC,GAEb,QA5RkC2nC,MACpC,GACE,eAAgBrlC,gBACgB,IAAzBA,UAAUslC,WACjB,CACA,IAAKtlC,UAAUslC,WAAWC,eAAiB,IAAIjxB,SAAS,MACtD,OAAO,EAET,GAAItU,UAAUslC,WAAWE,SACvB,OAAO,EAGX,OAAO,GAgRAH,KAKDvxC,KAAK0vC,OAAO5oC,IAAI8C,GAOtBilC,SAASjlC,GACP,IAAK5J,KAAKsxC,eAAe1nC,GACvB,OAAO,EAWT,GANK5J,KAAK8vC,kBAAkBhpC,IAAI8C,KAC9B5J,KAAK28B,UAAU,qBAAsB,CAAEv7B,SAAUwI,IACjD5J,KAAK8vC,kBAAkBpoB,IAAI9d,IAIzB5J,KAAKqwC,iBACP,OAAO,EAGT,MAAMsB,EAAWxoC,YAASS,GAU1B,OAPA5J,KAAK4xC,WAAWD,GAAUnlC,KAAK,KACxBxM,KAAKgwC,kBAAkBlpC,IAAI8C,KAC9B5J,KAAK28B,UAAU,yBAA0B,CAAEv7B,SAAUwI,IACrD5J,KAAKgwC,kBAAkBtoB,IAAI9d,OAIxB,EAGTgoC,WAAWhoC,GACT,MAAM,IAAIkb,MAAM,8BAGlBhhB,SAASghC,GACP9kC,KAAKijC,SAAS6B,GAGhB+M,2BAA2B/M,GACzB,MAAMl7B,EAAWT,YAAS27B,GACpB9H,EAAOh9B,KAAK6vC,WAAW9oC,IAAI6C,GACjC,GAAIozB,EAAM,CACR,MAAMX,EAAgB8S,EAAgBnS,EAAK2T,SAE3C,MAAM,GAANv1B,OAAAoyB,EACKsE,EAAoBzV,EAAcW,KAAKqS,qBAAmB,CAC7DL,EAAkBplC,KAGpB,OAAO,KAIXmoC,eAAejN,GACb,MAAMl7B,EAAWT,YAAS27B,GACpB9H,EAAOh9B,KAAK0vC,OAAO3oC,IAAI6C,GAC7B,OAAQozB,GAAQA,EAAK4T,SAGvBE,YAAYN,GACV,YADiB,IAAPA,MAAU,GACbxwC,KAAKiwC,YAAY,4BAA8CzjC,KACpEgiC,IACE,MAAM,OAAEtL,EAAM,aAAEuN,GAAiBjC,EAEjC,IAAIwD,EAEJ,GAAe,MAAX9O,GAAkBsN,EAAU,EAE9B,OAAOxwC,KAAK8wC,YAAYN,EAAU,GAIpC,GAAe,MAAXtN,EACF,IACE,MAAMwN,EAAczqC,KAAKC,MAAMuqC,GAC/B,QAA2ChpC,IAAvCipC,EAAYtN,uBACd,MAAM,IAAIte,MAAM,iCAGlBktB,EAAUtB,EACV,MAAO1C,IAKX,OAAOgE,KAMf,MAAMF,EAAsBzC,IACzB1uC,OAAOsxC,gBAAgB5C,IAAuB,IAAI1mC,IACjDupC,GAASC,GAAkBD,GAGxB,MAAMjN,UAAmBsK,EAC9B7rB,YAAYwhB,EAAep9B,GASzB+7B,MARsBuO,GACpBlN,EAAc3D,WAAW6Q,GACrBlN,EAAc3D,WAAW6Q,KACtB5lC,KAAKuiC,GAELzN,MAAM,IAAM,MACfj1B,QAAQzN,UAEOkJ,GAGvB8pC,WAAWhoC,GACT,MAAMyoC,EAAcrD,EAAkBplC,GACtC,OAAO0oC,EAAeD,EAAa,CACjCE,YAAa,YACbC,GAAI,UAEHhmC,KAAK,IAGJxM,KAAK6wC,iBAAiBjnC,IAEvB4C,KAAKiG,IACJ,GAAIA,EAAOywB,SAAWC,EAAmB2L,QACvC,OAAOziC,QAAQzN,UAEjB,MAAMwwC,EAAW38B,EAAOk+B,QAClByB,EAAYhD,EAASC,mBACrBoD,EAAgBX,EAAoBM,GAC1C,OAAO/lC,QAAQtB,IAAI0nC,EAAc9pC,IAAI2pC,IAAiB9lC,KACpD,IAAM4iC,KAKdyB,iBAAiB/L,GACf,OAAOjB,MAAMgN,iBAAiB/L,GAASt4B,KAAK2K,GACtCA,EAAKy5B,SAGA3B,EAAQnK,EAAS,QAAQt4B,KAAKgiC,GAChB,MAAfA,EAAItL,OAIC,CACLA,OAAQC,EAAmBre,OAMxB3N,GAGJA,IAKb,IAAIlV,EAEG,MAAMkjC,EAAYuN,IACvBzwC,EAAWywC,GAGA7V,EAAe,CAI1B8V,wBAAyB7N,IACvB5/B,QAAQC,KACN,wEAEKlD,EAASsF,EAAE07B,SAAS6B,IAE7B8N,4BAA6B9N,IAC3B5/B,QAAQC,KACN,gFAEKlD,EAASsF,EAAEq9B,aAAaE,IAEjCrjC,QAASqjC,GAAW7iC,EAAS4sC,SAAS/J,GAGtC+M,2BAA4B/M,GAC1B7iC,EAAS4vC,2BAA2B/M,GACtC7B,SAAU6B,GAAW7iC,EAASghC,SAAS6B,GACvCF,aAAcE,GAAW7iC,EAAS2iC,aAAaE,GAC/C+J,SAAU/J,GAAW7iC,EAAS4sC,SAAS/J,GACvCiN,eAAgBjN,GAAW7iC,EAAS8vC,eAAejN,GACnDhhC,SAAUghC,GAAW7iC,EAAS6B,SAASghC,GACvCgM,YAAaA,IAAM7uC,EAAS6uC,eAGfjU,YAER,SAASiJ,IACd,OAAO7jC,EAAS2tC,gB,kCCthBlB,IAAIhW,EAA0B,EAAQ,QAElCn9B,EAAyB,EAAQ,QAErCC,EAAQC,YAAa,EACrBD,EAAQgP,qBAAkB,EAE1B,IAAIlO,EAAYf,EAAuB,EAAQ,SAE3Cc,EAAkBd,EAAuB,EAAQ,SAEjDo9B,EAAQD,EAAwB,EAAQ,SAExCiZ,EAAYp2C,EAAuB,EAAQ,SAE3CgB,EAAahB,EAAuB,EAAQ,SAE5C6N,EAAiB,EAAQ,QAEzB3M,EAAU,EAAQ,QAIlBgH,EAAY,CACdmuC,UAAWr1C,EAAWL,QAAQ4B,OAAO6F,WACrC21B,mBAAoB/8B,EAAWL,QAAQwH,KACvCsO,SAAUzV,EAAWL,QAAQ0P,QAAQjI,YAInCkuC,EAA6C,SAAUlzC,GAGzD,SAASkzC,EAA8BzzC,GAUrC,OAPQO,EAAiBE,KAAKC,KAAMV,IAAUU,MALhD,EAAIzC,EAAgBH,SAAS21C,EAA+BlzC,GAe5D,IAAImB,EAAS+xC,EAA8B9xC,UAuB3C,OArBAD,EAAOa,kBAAoB,WACzB,IAAIU,EAASvC,KAGTyO,EAAOokC,EAAUz1C,QAAQ41C,YAAYhzC,MAErCmD,EAAcnD,KAAKV,MACnBI,EAAWyD,EAAYzD,SACvBozC,EAAY3vC,EAAY2vC,UAC5B,GAAKrkC,EAAL,CACAA,EAAK8K,iBAAiB,UAAU,WAC9BhX,EAAOjD,MAAM4nC,QAAQ/gC,KAAKzG,EAAUozC,EAAWrkC,EAAK5D,cAEtD,IAAIH,EAAW1K,KAAKV,MAAM4nC,QAAQxhC,KAAKhG,EAAUozC,GACjDrkC,EAAK9D,SAAS,EAAGD,GAAY,KAG/B1J,EAAOiC,OAAS,WACd,OAAOjD,KAAKV,MAAM4T,UAGb6/B,EAvCwC,CAwC/ClZ,EAAMn1B,WAEJgH,EAAkB,SAAyBpM,GAC7C,OAAoBu6B,EAAMt6B,cAAc5B,EAAQ6B,SAAU,MAAM,SAAUtB,GACxE,IAAIwB,EAAWxB,EAAKwB,SACpB,OAAoBm6B,EAAMt6B,cAAc+K,EAAeC,cAAc07B,SAAU,MAAM,SAAUiB,GAC7F,OAAoBrN,EAAMt6B,cAAcwzC,GAA+B,EAAIv1C,EAAUJ,SAAS,GAAIkC,EAAO,CACvG4nC,QAASA,EACTxnC,SAAUA,YAMlBhD,EAAQgP,gBAAkBA,EAC1BA,EAAgB/G,UAAYA,G,qBCvFNijB,MAKpB/gB,EAAOnK,SALakrB,EAKWsY,EAAQ,UALRtY,EAAExqB,SAAYwqB,G,kCCE/C,IAAInrB,EAAyByjC,EAAQ,QAEvBA,EAAQ,QAEKzjC,EAAuByjC,EAAQ,U,qBCgB1D,MAAM,cAAEnG,GAAkBmG,EAAQ,QAElCr5B,EAAOnK,QAAUq9B,EACjBlzB,EAAOnK,QAAQU,QAAU28B,G,mBCzBzB,SAAS5nB,IACP,OAAOtL,EAAOnK,QAAUyV,EAAWhL,OAAOiL,OAASjL,OAAOiL,OAAOrR,OAAS,SAAUiG,GAClF,IAAK,IAAInD,EAAI,EAAGA,EAAIgM,UAAUlI,OAAQ9D,IAAK,CACzC,IAAI+C,EAAIiJ,UAAUhM,GAClB,IAAK,IAAI8C,KAAKC,GAAG,IAAKnE,eAAe1C,KAAK6G,EAAGD,KAAOK,EAAEL,GAAKC,EAAED,IAE/D,OAAOK,GACNH,EAAOnK,QAAQC,YAAa,EAAMkK,EAAOnK,QAAiB,QAAImK,EAAOnK,QAASyV,EAAS2R,MAAM,KAAMjU,WAExGhJ,EAAOnK,QAAUyV,EAAUtL,EAAOnK,QAAQC,YAAa,EAAMkK,EAAOnK,QAAiB,QAAImK,EAAOnK,S,yDCThG,wDAwBeu2C,UAlBU/0C,IAAmB,IAAlB,SAAEwB,GAAUxB,EACpC,MAAMm+B,EAAgBO,UAAOgI,aAAallC,EAAS0B,UACnD,OAAKi7B,EAGExC,IAAMt6B,cAAc2zC,IAAsB,CAC/CxzC,WACA28B,mBACGA,EAAcC,OALV,O,qBCTX,MAAM6W,EAAUjT,EAAQ,SAClB,wBACJyS,EAAuB,4BACvBC,EAA2B,2BAC3Bf,EAA0B,SAC1B5O,EAAQ,aACR2B,GACE1E,EAAQ,QAAYrD,aAExBngC,EAAQigC,UAAY,SAACyW,EAAKlZ,EAAWmZ,EAAeC,QAAtB,IAAJpZ,MAAO,IAY/B,IAAIuJ,EAAU0P,EAAQxqC,IAAIs3B,IACxB,IAAKA,EAAOA,OAAOmT,GACjB,OAIFlZ,EAAK0Y,4BAA8BA,EAEnC1Y,EAAKyY,wBAA0BA,EAC/BzY,EAAK2X,2BAA6BA,EAClC3X,EAAK+I,SAAWA,EAChB/I,EAAK0K,aAAeA,EAEpB,MAAMnyB,EAASwtB,EAAOA,OAAOmT,GAAKlZ,EAAM+F,EAAO36B,SAI/C,OAHImN,GAAU6gC,IACZpZ,EAAOoZ,EAAa,CAAEpZ,OAAMznB,SAAQwtB,YAE/BxtB,IAMT,OAFAgxB,EAAUA,EAAQnjC,OAAOmS,QAA4B,IAAXA,GAEtCgxB,EAAQ97B,OAAS,EACZ87B,EACE4P,EACF,CAACA,GAED,IAIX32C,EAAQ4oC,eAAiB,CAAC8N,EAAKlZ,EAAMmZ,IACnCF,EAAQj3B,OACN,CAACq3B,EAAU/pB,IACTA,EAAKyW,OAAOmT,GACRG,EAAS/mC,KAAK,IAAMgd,EAAKyW,OAAOmT,GAAKlZ,EAAM1Q,EAAKlkB,UAChDiuC,EACNlnC,QAAQzN,Y,mBC3DZ,IAAIssB,EAGJA,EAAI,WACH,OAAOlrB,KADJ,GAIJ,IAECkrB,EAAIA,GAAK,IAAIsoB,SAAS,cAAb,GACR,MAAO3vC,GAEc,iBAAXlD,SAAqBuqB,EAAIvqB,QAOrCkG,EAAOnK,QAAUwuB,I","file":"app-a64f2f3070a765eea463.js","sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigateTo = exports.replace = exports.push = exports.navigate = exports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _router = require(\"@reach/router\");\n\nvar _utils = require(\"@reach/router/lib/utils\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\n\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + ((base === null || base === void 0 ? void 0 : base.endsWith(\"/\")) ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nvar isLocalLink = function isLocalLink(path) {\n return path && !path.startsWith(\"http://\") && !path.startsWith(\"https://\") && !path.startsWith(\"//\");\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n return (0, _utils.resolve)(path, current);\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n return isAbsolutePath(path) ? withPrefix(path) : absolutify(path, relativeTo);\n};\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(el);\n io.disconnect();\n cb();\n }\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_router.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname;\n }\n\n var rewrittenPath = rewriteLinkPath(this.props.to, currentPath);\n var newPathName = (0, _parsePath.parsePath)(rewrittenPath).pathname; // Prefech is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n ___loader.enqueue(newPathName);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Preserve non IO functionality if no support\n if (this.props.to !== prevProps.to && !this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Preserve non IO functionality if no support\n if (!this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && this.props.innerRef.hasOwnProperty(\"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function () {\n _this2._prefetch();\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"]);\n\n if (process.env.NODE_ENV !== \"production\" && !isLocalLink(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = rewriteLinkPath(to, _location.pathname);\n\n if (!isLocalLink(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_router.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n ___loader.hovering((0, _parsePath.parsePath)(prefixedTo).pathname);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar showDeprecationWarning = function showDeprecationWarning(functionName, altFunctionName, version) {\n return console.warn(\"The \\\"\" + functionName + \"\\\" method is now deprecated and will be removed in Gatsby v\" + version + \". Please use \\\"\" + altFunctionName + \"\\\" instead.\");\n};\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(rewriteLinkPath(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;\n\nvar push = function push(to) {\n showDeprecationWarning(\"push\", \"navigate\", 3);\n\n window.___push(rewriteLinkPath(to, window.location.pathname));\n};\n\nexports.push = push;\n\nvar replace = function replace(to) {\n showDeprecationWarning(\"replace\", \"navigate\", 3);\n\n window.___replace(rewriteLinkPath(to, window.location.pathname));\n}; // TODO: Remove navigateTo for Gatsby v3\n\n\nexports.replace = replace;\n\nvar navigateTo = function navigateTo(to) {\n showDeprecationWarning(\"navigateTo\", \"navigate\", 3);\n return push(to);\n};\n\nexports.navigateTo = navigateTo;","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n}\nfunction _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n \"default\": e\n };\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null\n },\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n[\"default\"] = e, t && t.set(e, n), n;\n}\nmodule.exports = _interopRequireWildcard, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default path => {\n if (path === undefined) {\n return path\n }\n if (path === `/`) {\n return `/`\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1)\n }\n return path\n}\n","import { pick } from \"@reach/router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n const pathname = decodeURIComponent(rawPathname)\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(pathname, __BASE_PATH__)\n // Remove any hashfragment\n .split(`#`)[0]\n // Remove search query\n .split(`?`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","\"use strict\";\n\nexports.onRouteUpdate = function (_ref) {\n var location = _ref.location;\n\n if (process.env.NODE_ENV !== \"production\" || typeof gtag !== \"function\") {\n return null;\n }\n\n var pathIsExcluded = location && typeof window.excludeGtagPaths !== \"undefined\" && window.excludeGtagPaths.some(function (rx) {\n return rx.test(location.pathname);\n });\n if (pathIsExcluded) return null; // wrap inside a timeout to make sure react-helmet is done with its changes (https://github.com/gatsbyjs/gatsby/issues/11592)\n\n var sendPageView = function sendPageView() {\n var pagePath = location ? location.pathname + location.search + location.hash : undefined;\n window.gtag(\"event\", \"page_view\", {\n page_path: pagePath\n });\n };\n\n if (\"requestAnimationFrame\" in window) {\n requestAnimationFrame(function () {\n requestAnimationFrame(sendPageView);\n });\n } else {\n // simulate 2 rAF calls\n setTimeout(sendPageView, 32);\n }\n\n return null;\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _router = require(\"@reach/router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _router.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)();\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, []);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContainer = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _scrollContainer = require(\"./scroll-container\");\n\nexports.ScrollContainer = _scrollContainer.ScrollContainer;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.3\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var css = getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n return getScrollParent(getParentNode(element));\n}\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n var nodeName = offsetParent && offsetParent.nodeName;\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n return offsetParent;\n}\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\nfunction getWindowSizes() {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar defineProperty = function (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 return obj;\n};\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n return getClientRect(result);\n}\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && parent.nodeName === 'HTML') {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n return offsets;\n}\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = {\n top: 0,\n left: 0\n };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n return boundaries;\n}\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n var variation = placement.split('-')[1];\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var styles = getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n data = fn(data, modifier);\n }\n });\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, {\n passive: true\n });\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, {\n passive: true\n });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, {\n position: options.positionFixed ? 'fixed' : 'absolute'\n });\n return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n // Avoid blurry text by using full pixel integers.\n // For pixel-perfect positioning, top/bottom prefers rounded\n // values, while left/right prefers floored values.\n var offsets = {\n left: Math.floor(popper.left),\n top: Math.round(popper.top),\n bottom: Math.round(popper.bottom),\n right: Math.floor(popper.right)\n };\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n top = -offsetParentRect.height + offsets.bottom;\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n left = -offsetParentRect.width + offsets.right;\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n var flipOrder = [];\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var basePlacement = placement.split('-')[0];\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n options.boundaries = boundaries;\n var order = options.priority;\n var popper = data.offsets.popper;\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n data.offsets.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unitless, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the height.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * An scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper this makes sure the popper has always a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier, can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n /**\n * Modifier used to make sure the reference and its popper stay near eachothers\n * without leaving any gap between the two. Expecially useful when the arrow is\n * enabled and you want to assure it to point to its reference element.\n * It cares only about the first axis, you can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjuction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations).\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position,\n * the popper will never be placed outside of the defined boundaries\n * (except if keepTogether is enabled)\n */\n boundariesElement: 'viewport'\n },\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define you own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overriden using the `options` argument of Popper.js.
\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n /**\n * Whether events (resize, scroll) are initially enabled\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n /**\n * Callback called when the popper is created.
\n * By default, is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n /**\n * Callback called when the popper is updated, this callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Create a new Popper.js instance\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedule an update, it will run on the next UI update available\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\nexport default Popper;","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","exports.polyfill = Component => Component\n","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({ location: location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, { key: Date.now() + \"\" });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({ location: location, action: \"PUSH\" });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({ pathname: pathname, search: search.length ? \"?\" + search : search });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = { pathname: pathname, search: search };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @return string\n */\nvar _default = function _default(pathname, localizedManifests) {\n var defaultFilename = \"manifest.webmanifest\";\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n var localizedManifest = localizedManifests.find(function (app) {\n return pathname.startsWith(app.start_url);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return \"manifest_\" + localizedManifest.lang + \".webmanifest\";\n};\n\nexports.default = _default;","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","/*!\n * Bootstrap v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n!function (t, e) {\n \"object\" == typeof exports && \"undefined\" != typeof module ? e(exports, require(\"jquery\"), require(\"popper.js\")) : \"function\" == typeof define && define.amd ? define([\"exports\", \"jquery\", \"popper.js\"], e) : e((t = \"undefined\" != typeof globalThis ? globalThis : t || self).bootstrap = {}, t.jQuery, t.Popper);\n}(this, function (t, e, n) {\n \"use strict\";\n\n function i(t, e) {\n for (var n = 0; n < e.length; n++) {\n var i = e[n];\n i.enumerable = i.enumerable || !1, i.configurable = !0, \"value\" in i && (i.writable = !0), Object.defineProperty(t, i.key, i);\n }\n }\n function o(t, e, n) {\n return e && i(t.prototype, e), n && i(t, n), t;\n }\n function s() {\n return (s = Object.assign || function (t) {\n for (var e = 1; e < arguments.length; e++) {\n var n = arguments[e];\n for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (t[i] = n[i]);\n }\n return t;\n }).apply(this, arguments);\n }\n e = e && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e, n = n && Object.prototype.hasOwnProperty.call(n, \"default\") ? n.default : n;\n function r(t) {\n var n = this,\n i = !1;\n return e(this).one(a.TRANSITION_END, function () {\n i = !0;\n }), setTimeout(function () {\n i || a.triggerTransitionEnd(n);\n }, t), this;\n }\n var a = {\n TRANSITION_END: \"bsTransitionEnd\",\n getUID: function (t) {\n do {\n t += ~~(1e6 * Math.random());\n } while (document.getElementById(t));\n return t;\n },\n getSelectorFromElement: function (t) {\n var e = t.getAttribute(\"data-target\");\n if (!e || \"#\" === e) {\n var n = t.getAttribute(\"href\");\n e = n && \"#\" !== n ? n.trim() : \"\";\n }\n try {\n return document.querySelector(e) ? e : null;\n } catch (t) {\n return null;\n }\n },\n getTransitionDurationFromElement: function (t) {\n if (!t) return 0;\n var n = e(t).css(\"transition-duration\"),\n i = e(t).css(\"transition-delay\"),\n o = parseFloat(n),\n s = parseFloat(i);\n return o || s ? (n = n.split(\",\")[0], i = i.split(\",\")[0], 1e3 * (parseFloat(n) + parseFloat(i))) : 0;\n },\n reflow: function (t) {\n return t.offsetHeight;\n },\n triggerTransitionEnd: function (t) {\n e(t).trigger(\"transitionend\");\n },\n supportsTransitionEnd: function () {\n return Boolean(\"transitionend\");\n },\n isElement: function (t) {\n return (t[0] || t).nodeType;\n },\n typeCheckConfig: function (t, e, n) {\n for (var i in n) if (Object.prototype.hasOwnProperty.call(n, i)) {\n var o = n[i],\n s = e[i],\n r = s && a.isElement(s) ? \"element\" : null === (l = s) || \"undefined\" == typeof l ? \"\" + l : {}.toString.call(l).match(/\\s([a-z]+)/i)[1].toLowerCase();\n if (!new RegExp(o).test(r)) throw new Error(t.toUpperCase() + ': Option \"' + i + '\" provided type \"' + r + '\" but expected type \"' + o + '\".');\n }\n var l;\n },\n findShadowRoot: function (t) {\n if (!document.documentElement.attachShadow) return null;\n if (\"function\" == typeof t.getRootNode) {\n var e = t.getRootNode();\n return e instanceof ShadowRoot ? e : null;\n }\n return t instanceof ShadowRoot ? t : t.parentNode ? a.findShadowRoot(t.parentNode) : null;\n },\n jQueryDetection: function () {\n if (\"undefined\" == typeof e) throw new TypeError(\"Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.\");\n var t = e.fn.jquery.split(\" \")[0].split(\".\");\n if (t[0] < 2 && t[1] < 9 || 1 === t[0] && 9 === t[1] && t[2] < 1 || t[0] >= 4) throw new Error(\"Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0\");\n }\n };\n a.jQueryDetection(), e.fn.emulateTransitionEnd = r, e.event.special[a.TRANSITION_END] = {\n bindType: \"transitionend\",\n delegateType: \"transitionend\",\n handle: function (t) {\n if (e(t.target).is(this)) return t.handleObj.handler.apply(this, arguments);\n }\n };\n var l = \"alert\",\n c = e.fn[l],\n h = function () {\n function t(t) {\n this._element = t;\n }\n var n = t.prototype;\n return n.close = function (t) {\n var e = this._element;\n t && (e = this._getRootElement(t)), this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e);\n }, n.dispose = function () {\n e.removeData(this._element, \"bs.alert\"), this._element = null;\n }, n._getRootElement = function (t) {\n var n = a.getSelectorFromElement(t),\n i = !1;\n return n && (i = document.querySelector(n)), i || (i = e(t).closest(\".alert\")[0]), i;\n }, n._triggerCloseEvent = function (t) {\n var n = e.Event(\"close.bs.alert\");\n return e(t).trigger(n), n;\n }, n._removeElement = function (t) {\n var n = this;\n if (e(t).removeClass(\"show\"), e(t).hasClass(\"fade\")) {\n var i = a.getTransitionDurationFromElement(t);\n e(t).one(a.TRANSITION_END, function (e) {\n return n._destroyElement(t, e);\n }).emulateTransitionEnd(i);\n } else this._destroyElement(t);\n }, n._destroyElement = function (t) {\n e(t).detach().trigger(\"closed.bs.alert\").remove();\n }, t._jQueryInterface = function (n) {\n return this.each(function () {\n var i = e(this),\n o = i.data(\"bs.alert\");\n o || (o = new t(this), i.data(\"bs.alert\", o)), \"close\" === n && o[n](this);\n });\n }, t._handleDismiss = function (t) {\n return function (e) {\n e && e.preventDefault(), t.close(this);\n };\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.2\";\n }\n }]), t;\n }();\n e(document).on(\"click.bs.alert.data-api\", '[data-dismiss=\"alert\"]', h._handleDismiss(new h())), e.fn[l] = h._jQueryInterface, e.fn[l].Constructor = h, e.fn[l].noConflict = function () {\n return e.fn[l] = c, h._jQueryInterface;\n };\n var u = e.fn.button,\n d = function () {\n function t(t) {\n this._element = t;\n }\n var n = t.prototype;\n return n.toggle = function () {\n var t = !0,\n n = !0,\n i = e(this._element).closest('[data-toggle=\"buttons\"]')[0];\n if (i) {\n var o = this._element.querySelector('input:not([type=\"hidden\"])');\n if (o) {\n if (\"radio\" === o.type) if (o.checked && this._element.classList.contains(\"active\")) t = !1;else {\n var s = i.querySelector(\".active\");\n s && e(s).removeClass(\"active\");\n }\n t && (\"checkbox\" !== o.type && \"radio\" !== o.type || (o.checked = !this._element.classList.contains(\"active\")), e(o).trigger(\"change\")), o.focus(), n = !1;\n }\n }\n this._element.hasAttribute(\"disabled\") || this._element.classList.contains(\"disabled\") || (n && this._element.setAttribute(\"aria-pressed\", !this._element.classList.contains(\"active\")), t && e(this._element).toggleClass(\"active\"));\n }, n.dispose = function () {\n e.removeData(this._element, \"bs.button\"), this._element = null;\n }, t._jQueryInterface = function (n) {\n return this.each(function () {\n var i = e(this).data(\"bs.button\");\n i || (i = new t(this), e(this).data(\"bs.button\", i)), \"toggle\" === n && i[n]();\n });\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.2\";\n }\n }]), t;\n }();\n e(document).on(\"click.bs.button.data-api\", '[data-toggle^=\"button\"]', function (t) {\n var n = t.target,\n i = n;\n if (e(n).hasClass(\"btn\") || (n = e(n).closest(\".btn\")[0]), !n || n.hasAttribute(\"disabled\") || n.classList.contains(\"disabled\")) t.preventDefault();else {\n var o = n.querySelector('input:not([type=\"hidden\"])');\n if (o && (o.hasAttribute(\"disabled\") || o.classList.contains(\"disabled\"))) return void t.preventDefault();\n (\"LABEL\" !== i.tagName || o && \"checkbox\" !== o.type) && d._jQueryInterface.call(e(n), \"toggle\");\n }\n }).on(\"focus.bs.button.data-api blur.bs.button.data-api\", '[data-toggle^=\"button\"]', function (t) {\n var n = e(t.target).closest(\".btn\")[0];\n e(n).toggleClass(\"focus\", /^focus(in)?$/.test(t.type));\n }), e(window).on(\"load.bs.button.data-api\", function () {\n for (var t = [].slice.call(document.querySelectorAll('[data-toggle=\"buttons\"] .btn')), e = 0, n = t.length; e < n; e++) {\n var i = t[e],\n o = i.querySelector('input:not([type=\"hidden\"])');\n o.checked || o.hasAttribute(\"checked\") ? i.classList.add(\"active\") : i.classList.remove(\"active\");\n }\n for (var s = 0, r = (t = [].slice.call(document.querySelectorAll('[data-toggle=\"button\"]'))).length; s < r; s++) {\n var a = t[s];\n \"true\" === a.getAttribute(\"aria-pressed\") ? a.classList.add(\"active\") : a.classList.remove(\"active\");\n }\n }), e.fn.button = d._jQueryInterface, e.fn.button.Constructor = d, e.fn.button.noConflict = function () {\n return e.fn.button = u, d._jQueryInterface;\n };\n var f = \"carousel\",\n g = \".bs.carousel\",\n m = e.fn[f],\n p = {\n interval: 5e3,\n keyboard: !0,\n slide: !1,\n pause: \"hover\",\n wrap: !0,\n touch: !0\n },\n _ = {\n interval: \"(number|boolean)\",\n keyboard: \"boolean\",\n slide: \"(boolean|string)\",\n pause: \"(string|boolean)\",\n wrap: \"boolean\",\n touch: \"boolean\"\n },\n v = {\n TOUCH: \"touch\",\n PEN: \"pen\"\n },\n b = function () {\n function t(t, e) {\n this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig(e), this._element = t, this._indicatorsElement = this._element.querySelector(\".carousel-indicators\"), this._touchSupported = \"ontouchstart\" in document.documentElement || navigator.maxTouchPoints > 0, this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent), this._addEventListeners();\n }\n var n = t.prototype;\n return n.next = function () {\n this._isSliding || this._slide(\"next\");\n }, n.nextWhenVisible = function () {\n !document.hidden && e(this._element).is(\":visible\") && \"hidden\" !== e(this._element).css(\"visibility\") && this.next();\n }, n.prev = function () {\n this._isSliding || this._slide(\"prev\");\n }, n.pause = function (t) {\n t || (this._isPaused = !0), this._element.querySelector(\".carousel-item-next, .carousel-item-prev\") && (a.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null;\n }, n.cycle = function (t) {\n t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval));\n }, n.to = function (t) {\n var n = this;\n this._activeElement = this._element.querySelector(\".active.carousel-item\");\n var i = this._getItemIndex(this._activeElement);\n if (!(t > this._items.length - 1 || t < 0)) if (this._isSliding) e(this._element).one(\"slid.bs.carousel\", function () {\n return n.to(t);\n });else {\n if (i === t) return this.pause(), void this.cycle();\n var o = t > i ? \"next\" : \"prev\";\n this._slide(o, this._items[t]);\n }\n }, n.dispose = function () {\n e(this._element).off(g), e.removeData(this._element, \"bs.carousel\"), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null;\n }, n._getConfig = function (t) {\n return t = s({}, p, t), a.typeCheckConfig(f, t, _), t;\n }, n._handleSwipe = function () {\n var t = Math.abs(this.touchDeltaX);\n if (!(t <= 40)) {\n var e = t / this.touchDeltaX;\n this.touchDeltaX = 0, e > 0 && this.prev(), e < 0 && this.next();\n }\n }, n._addEventListeners = function () {\n var t = this;\n this._config.keyboard && e(this._element).on(\"keydown.bs.carousel\", function (e) {\n return t._keydown(e);\n }), \"hover\" === this._config.pause && e(this._element).on(\"mouseenter.bs.carousel\", function (e) {\n return t.pause(e);\n }).on(\"mouseleave.bs.carousel\", function (e) {\n return t.cycle(e);\n }), this._config.touch && this._addTouchEventListeners();\n }, n._addTouchEventListeners = function () {\n var t = this;\n if (this._touchSupported) {\n var n = function (e) {\n t._pointerEvent && v[e.originalEvent.pointerType.toUpperCase()] ? t.touchStartX = e.originalEvent.clientX : t._pointerEvent || (t.touchStartX = e.originalEvent.touches[0].clientX);\n },\n i = function (e) {\n t._pointerEvent && v[e.originalEvent.pointerType.toUpperCase()] && (t.touchDeltaX = e.originalEvent.clientX - t.touchStartX), t._handleSwipe(), \"hover\" === t._config.pause && (t.pause(), t.touchTimeout && clearTimeout(t.touchTimeout), t.touchTimeout = setTimeout(function (e) {\n return t.cycle(e);\n }, 500 + t._config.interval));\n };\n e(this._element.querySelectorAll(\".carousel-item img\")).on(\"dragstart.bs.carousel\", function (t) {\n return t.preventDefault();\n }), this._pointerEvent ? (e(this._element).on(\"pointerdown.bs.carousel\", function (t) {\n return n(t);\n }), e(this._element).on(\"pointerup.bs.carousel\", function (t) {\n return i(t);\n }), this._element.classList.add(\"pointer-event\")) : (e(this._element).on(\"touchstart.bs.carousel\", function (t) {\n return n(t);\n }), e(this._element).on(\"touchmove.bs.carousel\", function (e) {\n return function (e) {\n e.originalEvent.touches && e.originalEvent.touches.length > 1 ? t.touchDeltaX = 0 : t.touchDeltaX = e.originalEvent.touches[0].clientX - t.touchStartX;\n }(e);\n }), e(this._element).on(\"touchend.bs.carousel\", function (t) {\n return i(t);\n }));\n }\n }, n._keydown = function (t) {\n if (!/input|textarea/i.test(t.target.tagName)) switch (t.which) {\n case 37:\n t.preventDefault(), this.prev();\n break;\n case 39:\n t.preventDefault(), this.next();\n }\n }, n._getItemIndex = function (t) {\n return this._items = t && t.parentNode ? [].slice.call(t.parentNode.querySelectorAll(\".carousel-item\")) : [], this._items.indexOf(t);\n }, n._getItemByDirection = function (t, e) {\n var n = \"next\" === t,\n i = \"prev\" === t,\n o = this._getItemIndex(e),\n s = this._items.length - 1;\n if ((i && 0 === o || n && o === s) && !this._config.wrap) return e;\n var r = (o + (\"prev\" === t ? -1 : 1)) % this._items.length;\n return -1 === r ? this._items[this._items.length - 1] : this._items[r];\n }, n._triggerSlideEvent = function (t, n) {\n var i = this._getItemIndex(t),\n o = this._getItemIndex(this._element.querySelector(\".active.carousel-item\")),\n s = e.Event(\"slide.bs.carousel\", {\n relatedTarget: t,\n direction: n,\n from: o,\n to: i\n });\n return e(this._element).trigger(s), s;\n }, n._setActiveIndicatorElement = function (t) {\n if (this._indicatorsElement) {\n var n = [].slice.call(this._indicatorsElement.querySelectorAll(\".active\"));\n e(n).removeClass(\"active\");\n var i = this._indicatorsElement.children[this._getItemIndex(t)];\n i && e(i).addClass(\"active\");\n }\n }, n._slide = function (t, n) {\n var i,\n o,\n s,\n r = this,\n l = this._element.querySelector(\".active.carousel-item\"),\n c = this._getItemIndex(l),\n h = n || l && this._getItemByDirection(t, l),\n u = this._getItemIndex(h),\n d = Boolean(this._interval);\n if (\"next\" === t ? (i = \"carousel-item-left\", o = \"carousel-item-next\", s = \"left\") : (i = \"carousel-item-right\", o = \"carousel-item-prev\", s = \"right\"), h && e(h).hasClass(\"active\")) this._isSliding = !1;else if (!this._triggerSlideEvent(h, s).isDefaultPrevented() && l && h) {\n this._isSliding = !0, d && this.pause(), this._setActiveIndicatorElement(h);\n var f = e.Event(\"slid.bs.carousel\", {\n relatedTarget: h,\n direction: s,\n from: c,\n to: u\n });\n if (e(this._element).hasClass(\"slide\")) {\n e(h).addClass(o), a.reflow(h), e(l).addClass(i), e(h).addClass(i);\n var g = parseInt(h.getAttribute(\"data-interval\"), 10);\n g ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, this._config.interval = g) : this._config.interval = this._config.defaultInterval || this._config.interval;\n var m = a.getTransitionDurationFromElement(l);\n e(l).one(a.TRANSITION_END, function () {\n e(h).removeClass(i + \" \" + o).addClass(\"active\"), e(l).removeClass(\"active \" + o + \" \" + i), r._isSliding = !1, setTimeout(function () {\n return e(r._element).trigger(f);\n }, 0);\n }).emulateTransitionEnd(m);\n } else e(l).removeClass(\"active\"), e(h).addClass(\"active\"), this._isSliding = !1, e(this._element).trigger(f);\n d && this.cycle();\n }\n }, t._jQueryInterface = function (n) {\n return this.each(function () {\n var i = e(this).data(\"bs.carousel\"),\n o = s({}, p, e(this).data());\n \"object\" == typeof n && (o = s({}, o, n));\n var r = \"string\" == typeof n ? n : o.slide;\n if (i || (i = new t(this, o), e(this).data(\"bs.carousel\", i)), \"number\" == typeof n) i.to(n);else if (\"string\" == typeof r) {\n if (\"undefined\" == typeof i[r]) throw new TypeError('No method named \"' + r + '\"');\n i[r]();\n } else o.interval && o.ride && (i.pause(), i.cycle());\n });\n }, t._dataApiClickHandler = function (n) {\n var i = a.getSelectorFromElement(this);\n if (i) {\n var o = e(i)[0];\n if (o && e(o).hasClass(\"carousel\")) {\n var r = s({}, e(o).data(), e(this).data()),\n l = this.getAttribute(\"data-slide-to\");\n l && (r.interval = !1), t._jQueryInterface.call(e(o), r), l && e(o).data(\"bs.carousel\").to(l), n.preventDefault();\n }\n }\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.2\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return p;\n }\n }]), t;\n }();\n e(document).on(\"click.bs.carousel.data-api\", \"[data-slide], [data-slide-to]\", b._dataApiClickHandler), e(window).on(\"load.bs.carousel.data-api\", function () {\n for (var t = [].slice.call(document.querySelectorAll('[data-ride=\"carousel\"]')), n = 0, i = t.length; n < i; n++) {\n var o = e(t[n]);\n b._jQueryInterface.call(o, o.data());\n }\n }), e.fn[f] = b._jQueryInterface, e.fn[f].Constructor = b, e.fn[f].noConflict = function () {\n return e.fn[f] = m, b._jQueryInterface;\n };\n var y = \"collapse\",\n E = e.fn[y],\n w = {\n toggle: !0,\n parent: \"\"\n },\n T = {\n toggle: \"boolean\",\n parent: \"(string|element)\"\n },\n C = function () {\n function t(t, e) {\n this._isTransitioning = !1, this._element = t, this._config = this._getConfig(e), this._triggerArray = [].slice.call(document.querySelectorAll('[data-toggle=\"collapse\"][href=\"#' + t.id + '\"],[data-toggle=\"collapse\"][data-target=\"#' + t.id + '\"]'));\n for (var n = [].slice.call(document.querySelectorAll('[data-toggle=\"collapse\"]')), i = 0, o = n.length; i < o; i++) {\n var s = n[i],\n r = a.getSelectorFromElement(s),\n l = [].slice.call(document.querySelectorAll(r)).filter(function (e) {\n return e === t;\n });\n null !== r && l.length > 0 && (this._selector = r, this._triggerArray.push(s));\n }\n this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle();\n }\n var n = t.prototype;\n return n.toggle = function () {\n e(this._element).hasClass(\"show\") ? this.hide() : this.show();\n }, n.show = function () {\n var n,\n i,\n o = this;\n if (!this._isTransitioning && !e(this._element).hasClass(\"show\") && (this._parent && 0 === (n = [].slice.call(this._parent.querySelectorAll(\".show, .collapsing\")).filter(function (t) {\n return \"string\" == typeof o._config.parent ? t.getAttribute(\"data-parent\") === o._config.parent : t.classList.contains(\"collapse\");\n })).length && (n = null), !(n && (i = e(n).not(this._selector).data(\"bs.collapse\")) && i._isTransitioning))) {\n var s = e.Event(\"show.bs.collapse\");\n if (e(this._element).trigger(s), !s.isDefaultPrevented()) {\n n && (t._jQueryInterface.call(e(n).not(this._selector), \"hide\"), i || e(n).data(\"bs.collapse\", null));\n var r = this._getDimension();\n e(this._element).removeClass(\"collapse\").addClass(\"collapsing\"), this._element.style[r] = 0, this._triggerArray.length && e(this._triggerArray).removeClass(\"collapsed\").attr(\"aria-expanded\", !0), this.setTransitioning(!0);\n var l = \"scroll\" + (r[0].toUpperCase() + r.slice(1)),\n c = a.getTransitionDurationFromElement(this._element);\n e(this._element).one(a.TRANSITION_END, function () {\n e(o._element).removeClass(\"collapsing\").addClass(\"collapse show\"), o._element.style[r] = \"\", o.setTransitioning(!1), e(o._element).trigger(\"shown.bs.collapse\");\n }).emulateTransitionEnd(c), this._element.style[r] = this._element[l] + \"px\";\n }\n }\n }, n.hide = function () {\n var t = this;\n if (!this._isTransitioning && e(this._element).hasClass(\"show\")) {\n var n = e.Event(\"hide.bs.collapse\");\n if (e(this._element).trigger(n), !n.isDefaultPrevented()) {\n var i = this._getDimension();\n this._element.style[i] = this._element.getBoundingClientRect()[i] + \"px\", a.reflow(this._element), e(this._element).addClass(\"collapsing\").removeClass(\"collapse show\");\n var o = this._triggerArray.length;\n if (o > 0) for (var s = 0; s < o; s++) {\n var r = this._triggerArray[s],\n l = a.getSelectorFromElement(r);\n if (null !== l) e([].slice.call(document.querySelectorAll(l))).hasClass(\"show\") || e(r).addClass(\"collapsed\").attr(\"aria-expanded\", !1);\n }\n this.setTransitioning(!0);\n this._element.style[i] = \"\";\n var c = a.getTransitionDurationFromElement(this._element);\n e(this._element).one(a.TRANSITION_END, function () {\n t.setTransitioning(!1), e(t._element).removeClass(\"collapsing\").addClass(\"collapse\").trigger(\"hidden.bs.collapse\");\n }).emulateTransitionEnd(c);\n }\n }\n }, n.setTransitioning = function (t) {\n this._isTransitioning = t;\n }, n.dispose = function () {\n e.removeData(this._element, \"bs.collapse\"), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null;\n }, n._getConfig = function (t) {\n return (t = s({}, w, t)).toggle = Boolean(t.toggle), a.typeCheckConfig(y, t, T), t;\n }, n._getDimension = function () {\n return e(this._element).hasClass(\"width\") ? \"width\" : \"height\";\n }, n._getParent = function () {\n var n,\n i = this;\n a.isElement(this._config.parent) ? (n = this._config.parent, \"undefined\" != typeof this._config.parent.jquery && (n = this._config.parent[0])) : n = document.querySelector(this._config.parent);\n var o = '[data-toggle=\"collapse\"][data-parent=\"' + this._config.parent + '\"]',\n s = [].slice.call(n.querySelectorAll(o));\n return e(s).each(function (e, n) {\n i._addAriaAndCollapsedClass(t._getTargetFromElement(n), [n]);\n }), n;\n }, n._addAriaAndCollapsedClass = function (t, n) {\n var i = e(t).hasClass(\"show\");\n n.length && e(n).toggleClass(\"collapsed\", !i).attr(\"aria-expanded\", i);\n }, t._getTargetFromElement = function (t) {\n var e = a.getSelectorFromElement(t);\n return e ? document.querySelector(e) : null;\n }, t._jQueryInterface = function (n) {\n return this.each(function () {\n var i = e(this),\n o = i.data(\"bs.collapse\"),\n r = s({}, w, i.data(), \"object\" == typeof n && n ? n : {});\n if (!o && r.toggle && \"string\" == typeof n && /show|hide/.test(n) && (r.toggle = !1), o || (o = new t(this, r), i.data(\"bs.collapse\", o)), \"string\" == typeof n) {\n if (\"undefined\" == typeof o[n]) throw new TypeError('No method named \"' + n + '\"');\n o[n]();\n }\n });\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.2\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return w;\n }\n }]), t;\n }();\n e(document).on(\"click.bs.collapse.data-api\", '[data-toggle=\"collapse\"]', function (t) {\n \"A\" === t.currentTarget.tagName && t.preventDefault();\n var n = e(this),\n i = a.getSelectorFromElement(this),\n o = [].slice.call(document.querySelectorAll(i));\n e(o).each(function () {\n var t = e(this),\n i = t.data(\"bs.collapse\") ? \"toggle\" : n.data();\n C._jQueryInterface.call(t, i);\n });\n }), e.fn[y] = C._jQueryInterface, e.fn[y].Constructor = C, e.fn[y].noConflict = function () {\n return e.fn[y] = E, C._jQueryInterface;\n };\n var S = \"dropdown\",\n k = e.fn[S],\n D = new RegExp(\"38|40|27\"),\n N = {\n offset: 0,\n flip: !0,\n boundary: \"scrollParent\",\n reference: \"toggle\",\n display: \"dynamic\",\n popperConfig: null\n },\n A = {\n offset: \"(number|string|function)\",\n flip: \"boolean\",\n boundary: \"(string|element)\",\n reference: \"(string|element)\",\n display: \"string\",\n popperConfig: \"(null|object)\"\n },\n I = function () {\n function t(t, e) {\n this._element = t, this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners();\n }\n var i = t.prototype;\n return i.toggle = function () {\n if (!this._element.disabled && !e(this._element).hasClass(\"disabled\")) {\n var n = e(this._menu).hasClass(\"show\");\n t._clearMenus(), n || this.show(!0);\n }\n }, i.show = function (i) {\n if (void 0 === i && (i = !1), !(this._element.disabled || e(this._element).hasClass(\"disabled\") || e(this._menu).hasClass(\"show\"))) {\n var o = {\n relatedTarget: this._element\n },\n s = e.Event(\"show.bs.dropdown\", o),\n r = t._getParentFromElement(this._element);\n if (e(r).trigger(s), !s.isDefaultPrevented()) {\n if (!this._inNavbar && i) {\n if (\"undefined\" == typeof n) throw new TypeError(\"Bootstrap's dropdowns require Popper.js (https://popper.js.org/)\");\n var l = this._element;\n \"parent\" === this._config.reference ? l = r : a.isElement(this._config.reference) && (l = this._config.reference, \"undefined\" != typeof this._config.reference.jquery && (l = this._config.reference[0])), \"scrollParent\" !== this._config.boundary && e(r).addClass(\"position-static\"), this._popper = new n(l, this._menu, this._getPopperConfig());\n }\n \"ontouchstart\" in document.documentElement && 0 === e(r).closest(\".navbar-nav\").length && e(document.body).children().on(\"mouseover\", null, e.noop), this._element.focus(), this._element.setAttribute(\"aria-expanded\", !0), e(this._menu).toggleClass(\"show\"), e(r).toggleClass(\"show\").trigger(e.Event(\"shown.bs.dropdown\", o));\n }\n }\n }, i.hide = function () {\n if (!this._element.disabled && !e(this._element).hasClass(\"disabled\") && e(this._menu).hasClass(\"show\")) {\n var n = {\n relatedTarget: this._element\n },\n i = e.Event(\"hide.bs.dropdown\", n),\n o = t._getParentFromElement(this._element);\n e(o).trigger(i), i.isDefaultPrevented() || (this._popper && this._popper.destroy(), e(this._menu).toggleClass(\"show\"), e(o).toggleClass(\"show\").trigger(e.Event(\"hidden.bs.dropdown\", n)));\n }\n }, i.dispose = function () {\n e.removeData(this._element, \"bs.dropdown\"), e(this._element).off(\".bs.dropdown\"), this._element = null, this._menu = null, null !== this._popper && (this._popper.destroy(), this._popper = null);\n }, i.update = function () {\n this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate();\n }, i._addEventListeners = function () {\n var t = this;\n e(this._element).on(\"click.bs.dropdown\", function (e) {\n e.preventDefault(), e.stopPropagation(), t.toggle();\n });\n }, i._getConfig = function (t) {\n return t = s({}, this.constructor.Default, e(this._element).data(), t), a.typeCheckConfig(S, t, this.constructor.DefaultType), t;\n }, i._getMenuElement = function () {\n if (!this._menu) {\n var e = t._getParentFromElement(this._element);\n e && (this._menu = e.querySelector(\".dropdown-menu\"));\n }\n return this._menu;\n }, i._getPlacement = function () {\n var t = e(this._element.parentNode),\n n = \"bottom-start\";\n return t.hasClass(\"dropup\") ? n = e(this._menu).hasClass(\"dropdown-menu-right\") ? \"top-end\" : \"top-start\" : t.hasClass(\"dropright\") ? n = \"right-start\" : t.hasClass(\"dropleft\") ? n = \"left-start\" : e(this._menu).hasClass(\"dropdown-menu-right\") && (n = \"bottom-end\"), n;\n }, i._detectNavbar = function () {\n return e(this._element).closest(\".navbar\").length > 0;\n }, i._getOffset = function () {\n var t = this,\n e = {};\n return \"function\" == typeof this._config.offset ? e.fn = function (e) {\n return e.offsets = s({}, e.offsets, t._config.offset(e.offsets, t._element) || {}), e;\n } : e.offset = this._config.offset, e;\n }, i._getPopperConfig = function () {\n var t = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n };\n return \"static\" === this._config.display && (t.modifiers.applyStyle = {\n enabled: !1\n }), s({}, t, this._config.popperConfig);\n }, t._jQueryInterface = function (n) {\n return this.each(function () {\n var i = e(this).data(\"bs.dropdown\");\n if (i || (i = new t(this, \"object\" == typeof n ? n : null), e(this).data(\"bs.dropdown\", i)), \"string\" == typeof n) {\n if (\"undefined\" == typeof i[n]) throw new TypeError('No method named \"' + n + '\"');\n i[n]();\n }\n });\n }, t._clearMenus = function (n) {\n if (!n || 3 !== n.which && (\"keyup\" !== n.type || 9 === n.which)) for (var i = [].slice.call(document.querySelectorAll('[data-toggle=\"dropdown\"]')), o = 0, s = i.length; o < s; o++) {\n var r = t._getParentFromElement(i[o]),\n a = e(i[o]).data(\"bs.dropdown\"),\n l = {\n relatedTarget: i[o]\n };\n if (n && \"click\" === n.type && (l.clickEvent = n), a) {\n var c = a._menu;\n if (e(r).hasClass(\"show\") && !(n && (\"click\" === n.type && /input|textarea/i.test(n.target.tagName) || \"keyup\" === n.type && 9 === n.which) && e.contains(r, n.target))) {\n var h = e.Event(\"hide.bs.dropdown\", l);\n e(r).trigger(h), h.isDefaultPrevented() || (\"ontouchstart\" in document.documentElement && e(document.body).children().off(\"mouseover\", null, e.noop), i[o].setAttribute(\"aria-expanded\", \"false\"), a._popper && a._popper.destroy(), e(c).removeClass(\"show\"), e(r).removeClass(\"show\").trigger(e.Event(\"hidden.bs.dropdown\", l)));\n }\n }\n }\n }, t._getParentFromElement = function (t) {\n var e,\n n = a.getSelectorFromElement(t);\n return n && (e = document.querySelector(n)), e || t.parentNode;\n }, t._dataApiKeydownHandler = function (n) {\n if (!(/input|textarea/i.test(n.target.tagName) ? 32 === n.which || 27 !== n.which && (40 !== n.which && 38 !== n.which || e(n.target).closest(\".dropdown-menu\").length) : !D.test(n.which)) && !this.disabled && !e(this).hasClass(\"disabled\")) {\n var i = t._getParentFromElement(this),\n o = e(i).hasClass(\"show\");\n if (o || 27 !== n.which) {\n if (n.preventDefault(), n.stopPropagation(), !o || o && (27 === n.which || 32 === n.which)) return 27 === n.which && e(i.querySelector('[data-toggle=\"dropdown\"]')).trigger(\"focus\"), void e(this).trigger(\"click\");\n var s = [].slice.call(i.querySelectorAll(\".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)\")).filter(function (t) {\n return e(t).is(\":visible\");\n });\n if (0 !== s.length) {\n var r = s.indexOf(n.target);\n 38 === n.which && r > 0 && r--, 40 === n.which && r < s.length - 1 && r++, r < 0 && (r = 0), s[r].focus();\n }\n }\n }\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.2\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return N;\n }\n }, {\n key: \"DefaultType\",\n get: function () {\n return A;\n }\n }]), t;\n }();\n e(document).on(\"keydown.bs.dropdown.data-api\", '[data-toggle=\"dropdown\"]', I._dataApiKeydownHandler).on(\"keydown.bs.dropdown.data-api\", \".dropdown-menu\", I._dataApiKeydownHandler).on(\"click.bs.dropdown.data-api keyup.bs.dropdown.data-api\", I._clearMenus).on(\"click.bs.dropdown.data-api\", '[data-toggle=\"dropdown\"]', function (t) {\n t.preventDefault(), t.stopPropagation(), I._jQueryInterface.call(e(this), \"toggle\");\n }).on(\"click.bs.dropdown.data-api\", \".dropdown form\", function (t) {\n t.stopPropagation();\n }), e.fn[S] = I._jQueryInterface, e.fn[S].Constructor = I, e.fn[S].noConflict = function () {\n return e.fn[S] = k, I._jQueryInterface;\n };\n var O = e.fn.modal,\n j = {\n backdrop: !0,\n keyboard: !0,\n focus: !0,\n show: !0\n },\n x = {\n backdrop: \"(boolean|string)\",\n keyboard: \"boolean\",\n focus: \"boolean\",\n show: \"boolean\"\n },\n P = function () {\n function t(t, e) {\n this._config = this._getConfig(e), this._element = t, this._dialog = t.querySelector(\".modal-dialog\"), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollbarWidth = 0;\n }\n var n = t.prototype;\n return n.toggle = function (t) {\n return this._isShown ? this.hide() : this.show(t);\n }, n.show = function (t) {\n var n = this;\n if (!this._isShown && !this._isTransitioning) {\n e(this._element).hasClass(\"fade\") && (this._isTransitioning = !0);\n var i = e.Event(\"show.bs.modal\", {\n relatedTarget: t\n });\n e(this._element).trigger(i), this._isShown || i.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), e(this._element).on(\"click.dismiss.bs.modal\", '[data-dismiss=\"modal\"]', function (t) {\n return n.hide(t);\n }), e(this._dialog).on(\"mousedown.dismiss.bs.modal\", function () {\n e(n._element).one(\"mouseup.dismiss.bs.modal\", function (t) {\n e(t.target).is(n._element) && (n._ignoreBackdropClick = !0);\n });\n }), this._showBackdrop(function () {\n return n._showElement(t);\n }));\n }\n }, n.hide = function (t) {\n var n = this;\n if (t && t.preventDefault(), this._isShown && !this._isTransitioning) {\n var i = e.Event(\"hide.bs.modal\");\n if (e(this._element).trigger(i), this._isShown && !i.isDefaultPrevented()) {\n this._isShown = !1;\n var o = e(this._element).hasClass(\"fade\");\n if (o && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), e(document).off(\"focusin.bs.modal\"), e(this._element).removeClass(\"show\"), e(this._element).off(\"click.dismiss.bs.modal\"), e(this._dialog).off(\"mousedown.dismiss.bs.modal\"), o) {\n var s = a.getTransitionDurationFromElement(this._element);\n e(this._element).one(a.TRANSITION_END, function (t) {\n return n._hideModal(t);\n }).emulateTransitionEnd(s);\n } else this._hideModal();\n }\n }\n }, n.dispose = function () {\n [window, this._element, this._dialog].forEach(function (t) {\n return e(t).off(\".bs.modal\");\n }), e(document).off(\"focusin.bs.modal\"), e.removeData(this._element, \"bs.modal\"), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._isTransitioning = null, this._scrollbarWidth = null;\n }, n.handleUpdate = function () {\n this._adjustDialog();\n }, n._getConfig = function (t) {\n return t = s({}, j, t), a.typeCheckConfig(\"modal\", t, x), t;\n }, n._triggerBackdropTransition = function () {\n var t = this;\n if (\"static\" === this._config.backdrop) {\n var n = e.Event(\"hidePrevented.bs.modal\");\n if (e(this._element).trigger(n), n.defaultPrevented) return;\n var i = this._element.scrollHeight > document.documentElement.clientHeight;\n i || (this._element.style.overflowY = \"hidden\"), this._element.classList.add(\"modal-static\");\n var o = a.getTransitionDurationFromElement(this._dialog);\n e(this._element).off(a.TRANSITION_END), e(this._element).one(a.TRANSITION_END, function () {\n t._element.classList.remove(\"modal-static\"), i || e(t._element).one(a.TRANSITION_END, function () {\n t._element.style.overflowY = \"\";\n }).emulateTransitionEnd(t._element, o);\n }).emulateTransitionEnd(o), this._element.focus();\n } else this.hide();\n }, n._showElement = function (t) {\n var n = this,\n i = e(this._element).hasClass(\"fade\"),\n o = this._dialog ? this._dialog.querySelector(\".modal-body\") : null;\n this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = \"block\", this._element.removeAttribute(\"aria-hidden\"), this._element.setAttribute(\"aria-modal\", !0), this._element.setAttribute(\"role\", \"dialog\"), e(this._dialog).hasClass(\"modal-dialog-scrollable\") && o ? o.scrollTop = 0 : this._element.scrollTop = 0, i && a.reflow(this._element), e(this._element).addClass(\"show\"), this._config.focus && this._enforceFocus();\n var s = e.Event(\"shown.bs.modal\", {\n relatedTarget: t\n }),\n r = function () {\n n._config.focus && n._element.focus(), n._isTransitioning = !1, e(n._element).trigger(s);\n };\n if (i) {\n var l = a.getTransitionDurationFromElement(this._dialog);\n e(this._dialog).one(a.TRANSITION_END, r).emulateTransitionEnd(l);\n } else r();\n }, n._enforceFocus = function () {\n var t = this;\n e(document).off(\"focusin.bs.modal\").on(\"focusin.bs.modal\", function (n) {\n document !== n.target && t._element !== n.target && 0 === e(t._element).has(n.target).length && t._element.focus();\n });\n }, n._setEscapeEvent = function () {\n var t = this;\n this._isShown ? e(this._element).on(\"keydown.dismiss.bs.modal\", function (e) {\n t._config.keyboard && 27 === e.which ? (e.preventDefault(), t.hide()) : t._config.keyboard || 27 !== e.which || t._triggerBackdropTransition();\n }) : this._isShown || e(this._element).off(\"keydown.dismiss.bs.modal\");\n }, n._setResizeEvent = function () {\n var t = this;\n this._isShown ? e(window).on(\"resize.bs.modal\", function (e) {\n return t.handleUpdate(e);\n }) : e(window).off(\"resize.bs.modal\");\n }, n._hideModal = function () {\n var t = this;\n this._element.style.display = \"none\", this._element.setAttribute(\"aria-hidden\", !0), this._element.removeAttribute(\"aria-modal\"), this._element.removeAttribute(\"role\"), this._isTransitioning = !1, this._showBackdrop(function () {\n e(document.body).removeClass(\"modal-open\"), t._resetAdjustments(), t._resetScrollbar(), e(t._element).trigger(\"hidden.bs.modal\");\n });\n }, n._removeBackdrop = function () {\n this._backdrop && (e(this._backdrop).remove(), this._backdrop = null);\n }, n._showBackdrop = function (t) {\n var n = this,\n i = e(this._element).hasClass(\"fade\") ? \"fade\" : \"\";\n if (this._isShown && this._config.backdrop) {\n if (this._backdrop = document.createElement(\"div\"), this._backdrop.className = \"modal-backdrop\", i && this._backdrop.classList.add(i), e(this._backdrop).appendTo(document.body), e(this._element).on(\"click.dismiss.bs.modal\", function (t) {\n n._ignoreBackdropClick ? n._ignoreBackdropClick = !1 : t.target === t.currentTarget && n._triggerBackdropTransition();\n }), i && a.reflow(this._backdrop), e(this._backdrop).addClass(\"show\"), !t) return;\n if (!i) return void t();\n var o = a.getTransitionDurationFromElement(this._backdrop);\n e(this._backdrop).one(a.TRANSITION_END, t).emulateTransitionEnd(o);\n } else if (!this._isShown && this._backdrop) {\n e(this._backdrop).removeClass(\"show\");\n var s = function () {\n n._removeBackdrop(), t && t();\n };\n if (e(this._element).hasClass(\"fade\")) {\n var r = a.getTransitionDurationFromElement(this._backdrop);\n e(this._backdrop).one(a.TRANSITION_END, s).emulateTransitionEnd(r);\n } else s();\n } else t && t();\n }, n._adjustDialog = function () {\n var t = this._element.scrollHeight > document.documentElement.clientHeight;\n !this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + \"px\"), this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + \"px\");\n }, n._resetAdjustments = function () {\n this._element.style.paddingLeft = \"\", this._element.style.paddingRight = \"\";\n }, n._checkScrollbar = function () {\n var t = document.body.getBoundingClientRect();\n this._isBodyOverflowing = Math.round(t.left + t.right) < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth();\n }, n._setScrollbar = function () {\n var t = this;\n if (this._isBodyOverflowing) {\n var n = [].slice.call(document.querySelectorAll(\".fixed-top, .fixed-bottom, .is-fixed, .sticky-top\")),\n i = [].slice.call(document.querySelectorAll(\".sticky-top\"));\n e(n).each(function (n, i) {\n var o = i.style.paddingRight,\n s = e(i).css(\"padding-right\");\n e(i).data(\"padding-right\", o).css(\"padding-right\", parseFloat(s) + t._scrollbarWidth + \"px\");\n }), e(i).each(function (n, i) {\n var o = i.style.marginRight,\n s = e(i).css(\"margin-right\");\n e(i).data(\"margin-right\", o).css(\"margin-right\", parseFloat(s) - t._scrollbarWidth + \"px\");\n });\n var o = document.body.style.paddingRight,\n s = e(document.body).css(\"padding-right\");\n e(document.body).data(\"padding-right\", o).css(\"padding-right\", parseFloat(s) + this._scrollbarWidth + \"px\");\n }\n e(document.body).addClass(\"modal-open\");\n }, n._resetScrollbar = function () {\n var t = [].slice.call(document.querySelectorAll(\".fixed-top, .fixed-bottom, .is-fixed, .sticky-top\"));\n e(t).each(function (t, n) {\n var i = e(n).data(\"padding-right\");\n e(n).removeData(\"padding-right\"), n.style.paddingRight = i || \"\";\n });\n var n = [].slice.call(document.querySelectorAll(\".sticky-top\"));\n e(n).each(function (t, n) {\n var i = e(n).data(\"margin-right\");\n \"undefined\" != typeof i && e(n).css(\"margin-right\", i).removeData(\"margin-right\");\n });\n var i = e(document.body).data(\"padding-right\");\n e(document.body).removeData(\"padding-right\"), document.body.style.paddingRight = i || \"\";\n }, n._getScrollbarWidth = function () {\n var t = document.createElement(\"div\");\n t.className = \"modal-scrollbar-measure\", document.body.appendChild(t);\n var e = t.getBoundingClientRect().width - t.clientWidth;\n return document.body.removeChild(t), e;\n }, t._jQueryInterface = function (n, i) {\n return this.each(function () {\n var o = e(this).data(\"bs.modal\"),\n r = s({}, j, e(this).data(), \"object\" == typeof n && n ? n : {});\n if (o || (o = new t(this, r), e(this).data(\"bs.modal\", o)), \"string\" == typeof n) {\n if (\"undefined\" == typeof o[n]) throw new TypeError('No method named \"' + n + '\"');\n o[n](i);\n } else r.show && o.show(i);\n });\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.2\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return j;\n }\n }]), t;\n }();\n e(document).on(\"click.bs.modal.data-api\", '[data-toggle=\"modal\"]', function (t) {\n var n,\n i = this,\n o = a.getSelectorFromElement(this);\n o && (n = document.querySelector(o));\n var r = e(n).data(\"bs.modal\") ? \"toggle\" : s({}, e(n).data(), e(this).data());\n \"A\" !== this.tagName && \"AREA\" !== this.tagName || t.preventDefault();\n var l = e(n).one(\"show.bs.modal\", function (t) {\n t.isDefaultPrevented() || l.one(\"hidden.bs.modal\", function () {\n e(i).is(\":visible\") && i.focus();\n });\n });\n P._jQueryInterface.call(e(n), r, this);\n }), e.fn.modal = P._jQueryInterface, e.fn.modal.Constructor = P, e.fn.modal.noConflict = function () {\n return e.fn.modal = O, P._jQueryInterface;\n };\n var R = [\"background\", \"cite\", \"href\", \"itemtype\", \"longdesc\", \"poster\", \"src\", \"xlink:href\"],\n L = {\n \"*\": [\"class\", \"dir\", \"id\", \"lang\", \"role\", /^aria-[\\w-]*$/i],\n a: [\"target\", \"href\", \"title\", \"rel\"],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: [\"src\", \"srcset\", \"alt\", \"title\", \"width\", \"height\"],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n },\n q = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,\n F = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n function Q(t, e, n) {\n if (0 === t.length) return t;\n if (n && \"function\" == typeof n) return n(t);\n for (var i = new window.DOMParser().parseFromString(t, \"text/html\"), o = Object.keys(e), s = [].slice.call(i.body.querySelectorAll(\"*\")), r = function (t, n) {\n var i = s[t],\n r = i.nodeName.toLowerCase();\n if (-1 === o.indexOf(i.nodeName.toLowerCase())) return i.parentNode.removeChild(i), \"continue\";\n var a = [].slice.call(i.attributes),\n l = [].concat(e[\"*\"] || [], e[r] || []);\n a.forEach(function (t) {\n (function (t, e) {\n var n = t.nodeName.toLowerCase();\n if (-1 !== e.indexOf(n)) return -1 === R.indexOf(n) || Boolean(t.nodeValue.match(q) || t.nodeValue.match(F));\n for (var i = e.filter(function (t) {\n return t instanceof RegExp;\n }), o = 0, s = i.length; o < s; o++) if (n.match(i[o])) return !0;\n return !1;\n })(t, l) || i.removeAttribute(t.nodeName);\n });\n }, a = 0, l = s.length; a < l; a++) r(a);\n return i.body.innerHTML;\n }\n var B = \"tooltip\",\n H = e.fn[B],\n U = new RegExp(\"(^|\\\\s)bs-tooltip\\\\S+\", \"g\"),\n M = [\"sanitize\", \"whiteList\", \"sanitizeFn\"],\n W = {\n animation: \"boolean\",\n template: \"string\",\n title: \"(string|element|function)\",\n trigger: \"string\",\n delay: \"(number|object)\",\n html: \"boolean\",\n selector: \"(string|boolean)\",\n placement: \"(string|function)\",\n offset: \"(number|string|function)\",\n container: \"(string|element|boolean)\",\n fallbackPlacement: \"(string|array)\",\n boundary: \"(string|element)\",\n sanitize: \"boolean\",\n sanitizeFn: \"(null|function)\",\n whiteList: \"object\",\n popperConfig: \"(null|object)\"\n },\n V = {\n AUTO: \"auto\",\n TOP: \"top\",\n RIGHT: \"right\",\n BOTTOM: \"bottom\",\n LEFT: \"left\"\n },\n z = {\n animation: !0,\n template: '
',\n trigger: \"hover focus\",\n title: \"\",\n delay: 0,\n html: !1,\n selector: !1,\n placement: \"top\",\n offset: 0,\n container: !1,\n fallbackPlacement: \"flip\",\n boundary: \"scrollParent\",\n sanitize: !0,\n sanitizeFn: null,\n whiteList: L,\n popperConfig: null\n },\n K = {\n HIDE: \"hide.bs.tooltip\",\n HIDDEN: \"hidden.bs.tooltip\",\n SHOW: \"show.bs.tooltip\",\n SHOWN: \"shown.bs.tooltip\",\n INSERTED: \"inserted.bs.tooltip\",\n CLICK: \"click.bs.tooltip\",\n FOCUSIN: \"focusin.bs.tooltip\",\n FOCUSOUT: \"focusout.bs.tooltip\",\n MOUSEENTER: \"mouseenter.bs.tooltip\",\n MOUSELEAVE: \"mouseleave.bs.tooltip\"\n },\n X = function () {\n function t(t, e) {\n if (\"undefined\" == typeof n) throw new TypeError(\"Bootstrap's tooltips require Popper.js (https://popper.js.org/)\");\n this._isEnabled = !0, this._timeout = 0, this._hoverState = \"\", this._activeTrigger = {}, this._popper = null, this.element = t, this.config = this._getConfig(e), this.tip = null, this._setListeners();\n }\n var i = t.prototype;\n return i.enable = function () {\n this._isEnabled = !0;\n }, i.disable = function () {\n this._isEnabled = !1;\n }, i.toggleEnabled = function () {\n this._isEnabled = !this._isEnabled;\n }, i.toggle = function (t) {\n if (this._isEnabled) if (t) {\n var n = this.constructor.DATA_KEY,\n i = e(t.currentTarget).data(n);\n i || (i = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(n, i)), i._activeTrigger.click = !i._activeTrigger.click, i._isWithActiveTrigger() ? i._enter(null, i) : i._leave(null, i);\n } else {\n if (e(this.getTipElement()).hasClass(\"show\")) return void this._leave(null, this);\n this._enter(null, this);\n }\n }, i.dispose = function () {\n clearTimeout(this._timeout), e.removeData(this.element, this.constructor.DATA_KEY), e(this.element).off(this.constructor.EVENT_KEY), e(this.element).closest(\".modal\").off(\"hide.bs.modal\", this._hideModalHandler), this.tip && e(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, this._activeTrigger = null, this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null;\n }, i.show = function () {\n var t = this;\n if (\"none\" === e(this.element).css(\"display\")) throw new Error(\"Please use show on visible elements\");\n var i = e.Event(this.constructor.Event.SHOW);\n if (this.isWithContent() && this._isEnabled) {\n e(this.element).trigger(i);\n var o = a.findShadowRoot(this.element),\n s = e.contains(null !== o ? o : this.element.ownerDocument.documentElement, this.element);\n if (i.isDefaultPrevented() || !s) return;\n var r = this.getTipElement(),\n l = a.getUID(this.constructor.NAME);\n r.setAttribute(\"id\", l), this.element.setAttribute(\"aria-describedby\", l), this.setContent(), this.config.animation && e(r).addClass(\"fade\");\n var c = \"function\" == typeof this.config.placement ? this.config.placement.call(this, r, this.element) : this.config.placement,\n h = this._getAttachment(c);\n this.addAttachmentClass(h);\n var u = this._getContainer();\n e(r).data(this.constructor.DATA_KEY, this), e.contains(this.element.ownerDocument.documentElement, this.tip) || e(r).appendTo(u), e(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new n(this.element, r, this._getPopperConfig(h)), e(r).addClass(\"show\"), \"ontouchstart\" in document.documentElement && e(document.body).children().on(\"mouseover\", null, e.noop);\n var d = function () {\n t.config.animation && t._fixTransition();\n var n = t._hoverState;\n t._hoverState = null, e(t.element).trigger(t.constructor.Event.SHOWN), \"out\" === n && t._leave(null, t);\n };\n if (e(this.tip).hasClass(\"fade\")) {\n var f = a.getTransitionDurationFromElement(this.tip);\n e(this.tip).one(a.TRANSITION_END, d).emulateTransitionEnd(f);\n } else d();\n }\n }, i.hide = function (t) {\n var n = this,\n i = this.getTipElement(),\n o = e.Event(this.constructor.Event.HIDE),\n s = function () {\n \"show\" !== n._hoverState && i.parentNode && i.parentNode.removeChild(i), n._cleanTipClass(), n.element.removeAttribute(\"aria-describedby\"), e(n.element).trigger(n.constructor.Event.HIDDEN), null !== n._popper && n._popper.destroy(), t && t();\n };\n if (e(this.element).trigger(o), !o.isDefaultPrevented()) {\n if (e(i).removeClass(\"show\"), \"ontouchstart\" in document.documentElement && e(document.body).children().off(\"mouseover\", null, e.noop), this._activeTrigger.click = !1, this._activeTrigger.focus = !1, this._activeTrigger.hover = !1, e(this.tip).hasClass(\"fade\")) {\n var r = a.getTransitionDurationFromElement(i);\n e(i).one(a.TRANSITION_END, s).emulateTransitionEnd(r);\n } else s();\n this._hoverState = \"\";\n }\n }, i.update = function () {\n null !== this._popper && this._popper.scheduleUpdate();\n }, i.isWithContent = function () {\n return Boolean(this.getTitle());\n }, i.addAttachmentClass = function (t) {\n e(this.getTipElement()).addClass(\"bs-tooltip-\" + t);\n }, i.getTipElement = function () {\n return this.tip = this.tip || e(this.config.template)[0], this.tip;\n }, i.setContent = function () {\n var t = this.getTipElement();\n this.setElementContent(e(t.querySelectorAll(\".tooltip-inner\")), this.getTitle()), e(t).removeClass(\"fade show\");\n }, i.setElementContent = function (t, n) {\n \"object\" != typeof n || !n.nodeType && !n.jquery ? this.config.html ? (this.config.sanitize && (n = Q(n, this.config.whiteList, this.config.sanitizeFn)), t.html(n)) : t.text(n) : this.config.html ? e(n).parent().is(t) || t.empty().append(n) : t.text(e(n).text());\n }, i.getTitle = function () {\n var t = this.element.getAttribute(\"data-original-title\");\n return t || (t = \"function\" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), t;\n }, i._getPopperConfig = function (t) {\n var e = this;\n return s({}, {\n placement: t,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: \".arrow\"\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: function (t) {\n t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t);\n },\n onUpdate: function (t) {\n return e._handlePopperPlacementChange(t);\n }\n }, this.config.popperConfig);\n }, i._getOffset = function () {\n var t = this,\n e = {};\n return \"function\" == typeof this.config.offset ? e.fn = function (e) {\n return e.offsets = s({}, e.offsets, t.config.offset(e.offsets, t.element) || {}), e;\n } : e.offset = this.config.offset, e;\n }, i._getContainer = function () {\n return !1 === this.config.container ? document.body : a.isElement(this.config.container) ? e(this.config.container) : e(document).find(this.config.container);\n }, i._getAttachment = function (t) {\n return V[t.toUpperCase()];\n }, i._setListeners = function () {\n var t = this;\n this.config.trigger.split(\" \").forEach(function (n) {\n if (\"click\" === n) e(t.element).on(t.constructor.Event.CLICK, t.config.selector, function (e) {\n return t.toggle(e);\n });else if (\"manual\" !== n) {\n var i = \"hover\" === n ? t.constructor.Event.MOUSEENTER : t.constructor.Event.FOCUSIN,\n o = \"hover\" === n ? t.constructor.Event.MOUSELEAVE : t.constructor.Event.FOCUSOUT;\n e(t.element).on(i, t.config.selector, function (e) {\n return t._enter(e);\n }).on(o, t.config.selector, function (e) {\n return t._leave(e);\n });\n }\n }), this._hideModalHandler = function () {\n t.element && t.hide();\n }, e(this.element).closest(\".modal\").on(\"hide.bs.modal\", this._hideModalHandler), this.config.selector ? this.config = s({}, this.config, {\n trigger: \"manual\",\n selector: \"\"\n }) : this._fixTitle();\n }, i._fixTitle = function () {\n var t = typeof this.element.getAttribute(\"data-original-title\");\n (this.element.getAttribute(\"title\") || \"string\" !== t) && (this.element.setAttribute(\"data-original-title\", this.element.getAttribute(\"title\") || \"\"), this.element.setAttribute(\"title\", \"\"));\n }, i._enter = function (t, n) {\n var i = this.constructor.DATA_KEY;\n (n = n || e(t.currentTarget).data(i)) || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(i, n)), t && (n._activeTrigger[\"focusin\" === t.type ? \"focus\" : \"hover\"] = !0), e(n.getTipElement()).hasClass(\"show\") || \"show\" === n._hoverState ? n._hoverState = \"show\" : (clearTimeout(n._timeout), n._hoverState = \"show\", n.config.delay && n.config.delay.show ? n._timeout = setTimeout(function () {\n \"show\" === n._hoverState && n.show();\n }, n.config.delay.show) : n.show());\n }, i._leave = function (t, n) {\n var i = this.constructor.DATA_KEY;\n (n = n || e(t.currentTarget).data(i)) || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(i, n)), t && (n._activeTrigger[\"focusout\" === t.type ? \"focus\" : \"hover\"] = !1), n._isWithActiveTrigger() || (clearTimeout(n._timeout), n._hoverState = \"out\", n.config.delay && n.config.delay.hide ? n._timeout = setTimeout(function () {\n \"out\" === n._hoverState && n.hide();\n }, n.config.delay.hide) : n.hide());\n }, i._isWithActiveTrigger = function () {\n for (var t in this._activeTrigger) if (this._activeTrigger[t]) return !0;\n return !1;\n }, i._getConfig = function (t) {\n var n = e(this.element).data();\n return Object.keys(n).forEach(function (t) {\n -1 !== M.indexOf(t) && delete n[t];\n }), \"number\" == typeof (t = s({}, this.constructor.Default, n, \"object\" == typeof t && t ? t : {})).delay && (t.delay = {\n show: t.delay,\n hide: t.delay\n }), \"number\" == typeof t.title && (t.title = t.title.toString()), \"number\" == typeof t.content && (t.content = t.content.toString()), a.typeCheckConfig(B, t, this.constructor.DefaultType), t.sanitize && (t.template = Q(t.template, t.whiteList, t.sanitizeFn)), t;\n }, i._getDelegateConfig = function () {\n var t = {};\n if (this.config) for (var e in this.config) this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]);\n return t;\n }, i._cleanTipClass = function () {\n var t = e(this.getTipElement()),\n n = t.attr(\"class\").match(U);\n null !== n && n.length && t.removeClass(n.join(\"\"));\n }, i._handlePopperPlacementChange = function (t) {\n this.tip = t.instance.popper, this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(t.placement));\n }, i._fixTransition = function () {\n var t = this.getTipElement(),\n n = this.config.animation;\n null === t.getAttribute(\"x-placement\") && (e(t).removeClass(\"fade\"), this.config.animation = !1, this.hide(), this.show(), this.config.animation = n);\n }, t._jQueryInterface = function (n) {\n return this.each(function () {\n var i = e(this).data(\"bs.tooltip\"),\n o = \"object\" == typeof n && n;\n if ((i || !/dispose|hide/.test(n)) && (i || (i = new t(this, o), e(this).data(\"bs.tooltip\", i)), \"string\" == typeof n)) {\n if (\"undefined\" == typeof i[n]) throw new TypeError('No method named \"' + n + '\"');\n i[n]();\n }\n });\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.2\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return z;\n }\n }, {\n key: \"NAME\",\n get: function () {\n return B;\n }\n }, {\n key: \"DATA_KEY\",\n get: function () {\n return \"bs.tooltip\";\n }\n }, {\n key: \"Event\",\n get: function () {\n return K;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function () {\n return \".bs.tooltip\";\n }\n }, {\n key: \"DefaultType\",\n get: function () {\n return W;\n }\n }]), t;\n }();\n e.fn[B] = X._jQueryInterface, e.fn[B].Constructor = X, e.fn[B].noConflict = function () {\n return e.fn[B] = H, X._jQueryInterface;\n };\n var Y = \"popover\",\n $ = e.fn[Y],\n J = new RegExp(\"(^|\\\\s)bs-popover\\\\S+\", \"g\"),\n G = s({}, X.Default, {\n placement: \"right\",\n trigger: \"click\",\n content: \"\",\n template: '

'\n }),\n Z = s({}, X.DefaultType, {\n content: \"(string|element|function)\"\n }),\n tt = {\n HIDE: \"hide.bs.popover\",\n HIDDEN: \"hidden.bs.popover\",\n SHOW: \"show.bs.popover\",\n SHOWN: \"shown.bs.popover\",\n INSERTED: \"inserted.bs.popover\",\n CLICK: \"click.bs.popover\",\n FOCUSIN: \"focusin.bs.popover\",\n FOCUSOUT: \"focusout.bs.popover\",\n MOUSEENTER: \"mouseenter.bs.popover\",\n MOUSELEAVE: \"mouseleave.bs.popover\"\n },\n et = function (t) {\n var n, i;\n function s() {\n return t.apply(this, arguments) || this;\n }\n i = t, (n = s).prototype = Object.create(i.prototype), n.prototype.constructor = n, n.__proto__ = i;\n var r = s.prototype;\n return r.isWithContent = function () {\n return this.getTitle() || this._getContent();\n }, r.addAttachmentClass = function (t) {\n e(this.getTipElement()).addClass(\"bs-popover-\" + t);\n }, r.getTipElement = function () {\n return this.tip = this.tip || e(this.config.template)[0], this.tip;\n }, r.setContent = function () {\n var t = e(this.getTipElement());\n this.setElementContent(t.find(\".popover-header\"), this.getTitle());\n var n = this._getContent();\n \"function\" == typeof n && (n = n.call(this.element)), this.setElementContent(t.find(\".popover-body\"), n), t.removeClass(\"fade show\");\n }, r._getContent = function () {\n return this.element.getAttribute(\"data-content\") || this.config.content;\n }, r._cleanTipClass = function () {\n var t = e(this.getTipElement()),\n n = t.attr(\"class\").match(J);\n null !== n && n.length > 0 && t.removeClass(n.join(\"\"));\n }, s._jQueryInterface = function (t) {\n return this.each(function () {\n var n = e(this).data(\"bs.popover\"),\n i = \"object\" == typeof t ? t : null;\n if ((n || !/dispose|hide/.test(t)) && (n || (n = new s(this, i), e(this).data(\"bs.popover\", n)), \"string\" == typeof t)) {\n if (\"undefined\" == typeof n[t]) throw new TypeError('No method named \"' + t + '\"');\n n[t]();\n }\n });\n }, o(s, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.2\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return G;\n }\n }, {\n key: \"NAME\",\n get: function () {\n return Y;\n }\n }, {\n key: \"DATA_KEY\",\n get: function () {\n return \"bs.popover\";\n }\n }, {\n key: \"Event\",\n get: function () {\n return tt;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function () {\n return \".bs.popover\";\n }\n }, {\n key: \"DefaultType\",\n get: function () {\n return Z;\n }\n }]), s;\n }(X);\n e.fn[Y] = et._jQueryInterface, e.fn[Y].Constructor = et, e.fn[Y].noConflict = function () {\n return e.fn[Y] = $, et._jQueryInterface;\n };\n var nt = \"scrollspy\",\n it = e.fn[nt],\n ot = {\n offset: 10,\n method: \"auto\",\n target: \"\"\n },\n st = {\n offset: \"number\",\n method: \"string\",\n target: \"(string|element)\"\n },\n rt = function () {\n function t(t, n) {\n var i = this;\n this._element = t, this._scrollElement = \"BODY\" === t.tagName ? window : t, this._config = this._getConfig(n), this._selector = this._config.target + \" .nav-link,\" + this._config.target + \" .list-group-item,\" + this._config.target + \" .dropdown-item\", this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, e(this._scrollElement).on(\"scroll.bs.scrollspy\", function (t) {\n return i._process(t);\n }), this.refresh(), this._process();\n }\n var n = t.prototype;\n return n.refresh = function () {\n var t = this,\n n = this._scrollElement === this._scrollElement.window ? \"offset\" : \"position\",\n i = \"auto\" === this._config.method ? n : this._config.method,\n o = \"position\" === i ? this._getScrollTop() : 0;\n this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), [].slice.call(document.querySelectorAll(this._selector)).map(function (t) {\n var n,\n s = a.getSelectorFromElement(t);\n if (s && (n = document.querySelector(s)), n) {\n var r = n.getBoundingClientRect();\n if (r.width || r.height) return [e(n)[i]().top + o, s];\n }\n return null;\n }).filter(function (t) {\n return t;\n }).sort(function (t, e) {\n return t[0] - e[0];\n }).forEach(function (e) {\n t._offsets.push(e[0]), t._targets.push(e[1]);\n });\n }, n.dispose = function () {\n e.removeData(this._element, \"bs.scrollspy\"), e(this._scrollElement).off(\".bs.scrollspy\"), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null;\n }, n._getConfig = function (t) {\n if (\"string\" != typeof (t = s({}, ot, \"object\" == typeof t && t ? t : {})).target && a.isElement(t.target)) {\n var n = e(t.target).attr(\"id\");\n n || (n = a.getUID(nt), e(t.target).attr(\"id\", n)), t.target = \"#\" + n;\n }\n return a.typeCheckConfig(nt, t, st), t;\n }, n._getScrollTop = function () {\n return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n }, n._getScrollHeight = function () {\n return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n }, n._getOffsetHeight = function () {\n return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n }, n._process = function () {\n var t = this._getScrollTop() + this._config.offset,\n e = this._getScrollHeight(),\n n = this._config.offset + e - this._getOffsetHeight();\n if (this._scrollHeight !== e && this.refresh(), t >= n) {\n var i = this._targets[this._targets.length - 1];\n this._activeTarget !== i && this._activate(i);\n } else {\n if (this._activeTarget && t < this._offsets[0] && this._offsets[0] > 0) return this._activeTarget = null, void this._clear();\n for (var o = this._offsets.length; o--;) {\n this._activeTarget !== this._targets[o] && t >= this._offsets[o] && (\"undefined\" == typeof this._offsets[o + 1] || t < this._offsets[o + 1]) && this._activate(this._targets[o]);\n }\n }\n }, n._activate = function (t) {\n this._activeTarget = t, this._clear();\n var n = this._selector.split(\",\").map(function (e) {\n return e + '[data-target=\"' + t + '\"],' + e + '[href=\"' + t + '\"]';\n }),\n i = e([].slice.call(document.querySelectorAll(n.join(\",\"))));\n i.hasClass(\"dropdown-item\") ? (i.closest(\".dropdown\").find(\".dropdown-toggle\").addClass(\"active\"), i.addClass(\"active\")) : (i.addClass(\"active\"), i.parents(\".nav, .list-group\").prev(\".nav-link, .list-group-item\").addClass(\"active\"), i.parents(\".nav, .list-group\").prev(\".nav-item\").children(\".nav-link\").addClass(\"active\")), e(this._scrollElement).trigger(\"activate.bs.scrollspy\", {\n relatedTarget: t\n });\n }, n._clear = function () {\n [].slice.call(document.querySelectorAll(this._selector)).filter(function (t) {\n return t.classList.contains(\"active\");\n }).forEach(function (t) {\n return t.classList.remove(\"active\");\n });\n }, t._jQueryInterface = function (n) {\n return this.each(function () {\n var i = e(this).data(\"bs.scrollspy\");\n if (i || (i = new t(this, \"object\" == typeof n && n), e(this).data(\"bs.scrollspy\", i)), \"string\" == typeof n) {\n if (\"undefined\" == typeof i[n]) throw new TypeError('No method named \"' + n + '\"');\n i[n]();\n }\n });\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.2\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return ot;\n }\n }]), t;\n }();\n e(window).on(\"load.bs.scrollspy.data-api\", function () {\n for (var t = [].slice.call(document.querySelectorAll('[data-spy=\"scroll\"]')), n = t.length; n--;) {\n var i = e(t[n]);\n rt._jQueryInterface.call(i, i.data());\n }\n }), e.fn[nt] = rt._jQueryInterface, e.fn[nt].Constructor = rt, e.fn[nt].noConflict = function () {\n return e.fn[nt] = it, rt._jQueryInterface;\n };\n var at = e.fn.tab,\n lt = function () {\n function t(t) {\n this._element = t;\n }\n var n = t.prototype;\n return n.show = function () {\n var t = this;\n if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && e(this._element).hasClass(\"active\") || e(this._element).hasClass(\"disabled\"))) {\n var n,\n i,\n o = e(this._element).closest(\".nav, .list-group\")[0],\n s = a.getSelectorFromElement(this._element);\n if (o) {\n var r = \"UL\" === o.nodeName || \"OL\" === o.nodeName ? \"> li > .active\" : \".active\";\n i = (i = e.makeArray(e(o).find(r)))[i.length - 1];\n }\n var l = e.Event(\"hide.bs.tab\", {\n relatedTarget: this._element\n }),\n c = e.Event(\"show.bs.tab\", {\n relatedTarget: i\n });\n if (i && e(i).trigger(l), e(this._element).trigger(c), !c.isDefaultPrevented() && !l.isDefaultPrevented()) {\n s && (n = document.querySelector(s)), this._activate(this._element, o);\n var h = function () {\n var n = e.Event(\"hidden.bs.tab\", {\n relatedTarget: t._element\n }),\n o = e.Event(\"shown.bs.tab\", {\n relatedTarget: i\n });\n e(i).trigger(n), e(t._element).trigger(o);\n };\n n ? this._activate(n, n.parentNode, h) : h();\n }\n }\n }, n.dispose = function () {\n e.removeData(this._element, \"bs.tab\"), this._element = null;\n }, n._activate = function (t, n, i) {\n var o = this,\n s = (!n || \"UL\" !== n.nodeName && \"OL\" !== n.nodeName ? e(n).children(\".active\") : e(n).find(\"> li > .active\"))[0],\n r = i && s && e(s).hasClass(\"fade\"),\n l = function () {\n return o._transitionComplete(t, s, i);\n };\n if (s && r) {\n var c = a.getTransitionDurationFromElement(s);\n e(s).removeClass(\"show\").one(a.TRANSITION_END, l).emulateTransitionEnd(c);\n } else l();\n }, n._transitionComplete = function (t, n, i) {\n if (n) {\n e(n).removeClass(\"active\");\n var o = e(n.parentNode).find(\"> .dropdown-menu .active\")[0];\n o && e(o).removeClass(\"active\"), \"tab\" === n.getAttribute(\"role\") && n.setAttribute(\"aria-selected\", !1);\n }\n if (e(t).addClass(\"active\"), \"tab\" === t.getAttribute(\"role\") && t.setAttribute(\"aria-selected\", !0), a.reflow(t), t.classList.contains(\"fade\") && t.classList.add(\"show\"), t.parentNode && e(t.parentNode).hasClass(\"dropdown-menu\")) {\n var s = e(t).closest(\".dropdown\")[0];\n if (s) {\n var r = [].slice.call(s.querySelectorAll(\".dropdown-toggle\"));\n e(r).addClass(\"active\");\n }\n t.setAttribute(\"aria-expanded\", !0);\n }\n i && i();\n }, t._jQueryInterface = function (n) {\n return this.each(function () {\n var i = e(this),\n o = i.data(\"bs.tab\");\n if (o || (o = new t(this), i.data(\"bs.tab\", o)), \"string\" == typeof n) {\n if (\"undefined\" == typeof o[n]) throw new TypeError('No method named \"' + n + '\"');\n o[n]();\n }\n });\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.2\";\n }\n }]), t;\n }();\n e(document).on(\"click.bs.tab.data-api\", '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]', function (t) {\n t.preventDefault(), lt._jQueryInterface.call(e(this), \"show\");\n }), e.fn.tab = lt._jQueryInterface, e.fn.tab.Constructor = lt, e.fn.tab.noConflict = function () {\n return e.fn.tab = at, lt._jQueryInterface;\n };\n var ct = e.fn.toast,\n ht = {\n animation: \"boolean\",\n autohide: \"boolean\",\n delay: \"number\"\n },\n ut = {\n animation: !0,\n autohide: !0,\n delay: 500\n },\n dt = function () {\n function t(t, e) {\n this._element = t, this._config = this._getConfig(e), this._timeout = null, this._setListeners();\n }\n var n = t.prototype;\n return n.show = function () {\n var t = this,\n n = e.Event(\"show.bs.toast\");\n if (e(this._element).trigger(n), !n.isDefaultPrevented()) {\n this._clearTimeout(), this._config.animation && this._element.classList.add(\"fade\");\n var i = function () {\n t._element.classList.remove(\"showing\"), t._element.classList.add(\"show\"), e(t._element).trigger(\"shown.bs.toast\"), t._config.autohide && (t._timeout = setTimeout(function () {\n t.hide();\n }, t._config.delay));\n };\n if (this._element.classList.remove(\"hide\"), a.reflow(this._element), this._element.classList.add(\"showing\"), this._config.animation) {\n var o = a.getTransitionDurationFromElement(this._element);\n e(this._element).one(a.TRANSITION_END, i).emulateTransitionEnd(o);\n } else i();\n }\n }, n.hide = function () {\n if (this._element.classList.contains(\"show\")) {\n var t = e.Event(\"hide.bs.toast\");\n e(this._element).trigger(t), t.isDefaultPrevented() || this._close();\n }\n }, n.dispose = function () {\n this._clearTimeout(), this._element.classList.contains(\"show\") && this._element.classList.remove(\"show\"), e(this._element).off(\"click.dismiss.bs.toast\"), e.removeData(this._element, \"bs.toast\"), this._element = null, this._config = null;\n }, n._getConfig = function (t) {\n return t = s({}, ut, e(this._element).data(), \"object\" == typeof t && t ? t : {}), a.typeCheckConfig(\"toast\", t, this.constructor.DefaultType), t;\n }, n._setListeners = function () {\n var t = this;\n e(this._element).on(\"click.dismiss.bs.toast\", '[data-dismiss=\"toast\"]', function () {\n return t.hide();\n });\n }, n._close = function () {\n var t = this,\n n = function () {\n t._element.classList.add(\"hide\"), e(t._element).trigger(\"hidden.bs.toast\");\n };\n if (this._element.classList.remove(\"show\"), this._config.animation) {\n var i = a.getTransitionDurationFromElement(this._element);\n e(this._element).one(a.TRANSITION_END, n).emulateTransitionEnd(i);\n } else n();\n }, n._clearTimeout = function () {\n clearTimeout(this._timeout), this._timeout = null;\n }, t._jQueryInterface = function (n) {\n return this.each(function () {\n var i = e(this),\n o = i.data(\"bs.toast\");\n if (o || (o = new t(this, \"object\" == typeof n && n), i.data(\"bs.toast\", o)), \"string\" == typeof n) {\n if (\"undefined\" == typeof o[n]) throw new TypeError('No method named \"' + n + '\"');\n o[n](this);\n }\n });\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.2\";\n }\n }, {\n key: \"DefaultType\",\n get: function () {\n return ht;\n }\n }, {\n key: \"Default\",\n get: function () {\n return ut;\n }\n }]), t;\n }();\n e.fn.toast = dt._jQueryInterface, e.fn.toast.Constructor = dt, e.fn.toast.noConflict = function () {\n return e.fn.toast = ct, dt._jQueryInterface;\n }, t.Alert = h, t.Button = d, t.Carousel = b, t.Collapse = C, t.Dropdown = I, t.Modal = P, t.Popover = et, t.Scrollspy = rt, t.Tab = lt, t.Toast = dt, t.Tooltip = X, t.Util = a, Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n});","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n\n _this.scrollListener = function () {\n var key = _this.props.location.key;\n\n if (key) {\n _this._stateStorage.save(_this.props.location, key, window.scrollY);\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","import \"bootstrap/dist/css/bootstrap.min.css\"\r\nimport \"bootstrap/dist/js/bootstrap.min.js\"\r\nimport \"bootstrap-v4-rtl/dist/css/bootstrap-rtl.min.css\"\r\nimport \"bootstrap-v4-rtl/dist/js/bootstrap.min.js\"\r\nimport \"react-lazy-load-image-component/src/effects/blur.css\"\r\n\r\nconst addScript = url => {\r\n const script = document.createElement(\"script\")\r\n script.src = url\r\n script.async\r\n document.body.appendChild(script)\r\n}\r\n\r\nexport const onInitialClientRender = () => {\r\n// addScript(\"/ua/assets/ua-scripts-1620802552250.js\")\r\n console.log(\"in side onInitialClientRender -------\")\r\n}\r\n\r\nexport const onServiceWorkerUpdateFound = () => {\r\n console.log(\"in side onServiceWorkerUpdateFound -------\")\r\n}\r\n\r\nexport const disableCorePrefetching = () => {\r\n console.log(\"in side disableCorePrefetching ------------------\")\r\n}\r\nexport const onClientEntry = () => {\r\n // addScript(\"/bk-static/ua-root-creation.js\")\r\n}\r\nexport const onPostPrefetchPathname = () => {\r\n console.log(\"in side onPostPrefetchPathname ------------------\")\r\n}\r\nexport const onPreRouteUpdate = () => {\r\n console.log(\"in side onPreRouteUpdate ------------------\")\r\n}\r\nexport const onPrefetchPathname = () => {\r\n console.log(\"in side onPrefetchPathname ------------------\")\r\n}\r\nexport const onRouteUpdate = () => {\r\n console.log(\"in side onRouteUpdate ------------------\")\r\n}\r\nexport const onRouteUpdateDelayed = () => {\r\n console.log(\"in side onRouteUpdateDelayed ------------------\")\r\n}\r\nexport const onServiceWorkerActive = () => {\r\n console.log(\"in side onServiceWorkerActive ------------------\")\r\n}\r\nexport const onServiceWorkerInstalled = () => {\r\n console.log(\"in side onServiceWorkerInstalled ------------------\")\r\n}\r\nexport const onServiceWorkerRedundant = () => {\r\n console.log(\"in side onServiceWorkerRedundant ------------------\")\r\n}\r\nexport const onServiceWorkerUpdateReady = () => {\r\n console.log(\"in side onServiceWorkerUpdateReady ------------------\")\r\n}\r\nexport const registerServiceWorker = () => {\r\n console.log(\"in side registerServiceWorker ------------------\")\r\n}\r\nexport const replaceComponentRenderer = () => {\r\n console.log(\"in side replaceComponentRenderer ------------------\")\r\n}\r\nexport const replaceHydrateFunction = () => {\r\n console.log(\"in side replaceHydrateFunction ------------------\")\r\n}\r\nexport const shouldUpdateScroll = () => {\r\n console.log(\"in side shouldUpdateScroll ------------------\")\r\n}\r\nexport const wrapPageElement = () => {\r\n console.log(\"in side wrapPageElement ------------------\")\r\n}\r\nexport const wrapRootElement = () => {\r\n console.log(\"in side wrapRootElement ------------------\")\r\n}\r\n","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { publicLoader } from \"./loader\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n pathContext: this.props.pageContext,\n }\n\n const [replacementElement] = apiRunner(`replaceComponentRenderer`, {\n props: this.props,\n loader: publicLoader,\n })\n\n const pageElement =\n replacementElement ||\n createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","import invariant from \"invariant\";\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{ path: path }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\n\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return { route: route, score: score, index: index };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-google-gtag/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingIds\":[\"G-11T65NMZQL\"],\"pluginConfig\":{\"head\":true}},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"BK\",\"short_name\":\"BK\",\"start_url\":\"/\",\"background_color\":\"#F5F5F5\",\"theme_color\":\"#C5944B\",\"display\":\"minimal-ui\",\"icon\":\"src/images/logo.png\",\"cache_busting_mode\":\"none\"},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n * ie10 fix - Mikael Kristiansson 2019\n */\n!(function(name, definition) {\n if (typeof module != \"undefined\") module.exports = definition();\n else if (typeof define == \"function\" && typeof define.amd == \"object\")\n define(definition);\n else this[name] = definition();\n})(\"domready\", function() {\n var ie10 = false;\n if (navigator.appVersion.indexOf(\"MSIE 10\") !== -1) {\n ie10 = true;\n }\n\n var fns = [],\n listener,\n doc = typeof document === \"object\" && document,\n hack = ie10\n ? doc.documentElement.doScroll(\"left\")\n : doc.documentElement.doScroll,\n domContentLoaded = \"DOMContentLoaded\",\n loaded =\n doc && (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded && doc)\n doc.addEventListener(\n domContentLoaded,\n (listener = function() {\n doc.removeEventListener(domContentLoaded, listener);\n loaded = 1;\n while ((listener = fns.shift())) listener();\n })\n );\n\n return function(fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n };\n});\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","// prefer default export if available\nconst preferDefault = m => (m && m.default) || m\n\nexports.components = {\n \"component---src-publisher-preview-preview-page-wrapper-component-js\": () => import(\"./../../../src/publisher-preview/PreviewPageWrapperComponent.js\" /* webpackChunkName: \"component---src-publisher-preview-preview-page-wrapper-component-js\" */)\n}\n\n","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*!\n * Bootstrap v4.5.0 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n!function (t, e) {\n \"object\" == typeof exports && \"undefined\" != typeof module ? e(exports, require(\"jquery\"), require(\"popper.js\")) : \"function\" == typeof define && define.amd ? define([\"exports\", \"jquery\", \"popper.js\"], e) : e((t = t || self).bootstrap = {}, t.jQuery, t.Popper);\n}(this, function (t, e, n) {\n \"use strict\";\n\n function i(t, e) {\n for (var n = 0; n < e.length; n++) {\n var i = e[n];\n i.enumerable = i.enumerable || !1, i.configurable = !0, \"value\" in i && (i.writable = !0), Object.defineProperty(t, i.key, i);\n }\n }\n function o(t, e, n) {\n return e && i(t.prototype, e), n && i(t, n), t;\n }\n function s(t, e, n) {\n return e in t ? Object.defineProperty(t, e, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : t[e] = n, t;\n }\n function r(t, e) {\n var n = Object.keys(t);\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(t);\n e && (i = i.filter(function (e) {\n return Object.getOwnPropertyDescriptor(t, e).enumerable;\n })), n.push.apply(n, i);\n }\n return n;\n }\n function a(t) {\n for (var e = 1; e < arguments.length; e++) {\n var n = null != arguments[e] ? arguments[e] : {};\n e % 2 ? r(Object(n), !0).forEach(function (e) {\n s(t, e, n[e]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : r(Object(n)).forEach(function (e) {\n Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e));\n });\n }\n return t;\n }\n e = e && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e, n = n && Object.prototype.hasOwnProperty.call(n, \"default\") ? n.default : n;\n function l(t) {\n var n = this,\n i = !1;\n return e(this).one(c.TRANSITION_END, function () {\n i = !0;\n }), setTimeout(function () {\n i || c.triggerTransitionEnd(n);\n }, t), this;\n }\n var c = {\n TRANSITION_END: \"bsTransitionEnd\",\n getUID: function (t) {\n do {\n t += ~~(1e6 * Math.random());\n } while (document.getElementById(t));\n return t;\n },\n getSelectorFromElement: function (t) {\n var e = t.getAttribute(\"data-target\");\n if (!e || \"#\" === e) {\n var n = t.getAttribute(\"href\");\n e = n && \"#\" !== n ? n.trim() : \"\";\n }\n try {\n return document.querySelector(e) ? e : null;\n } catch (t) {\n return null;\n }\n },\n getTransitionDurationFromElement: function (t) {\n if (!t) return 0;\n var n = e(t).css(\"transition-duration\"),\n i = e(t).css(\"transition-delay\"),\n o = parseFloat(n),\n s = parseFloat(i);\n return o || s ? (n = n.split(\",\")[0], i = i.split(\",\")[0], 1e3 * (parseFloat(n) + parseFloat(i))) : 0;\n },\n reflow: function (t) {\n return t.offsetHeight;\n },\n triggerTransitionEnd: function (t) {\n e(t).trigger(\"transitionend\");\n },\n supportsTransitionEnd: function () {\n return Boolean(\"transitionend\");\n },\n isElement: function (t) {\n return (t[0] || t).nodeType;\n },\n typeCheckConfig: function (t, e, n) {\n for (var i in n) if (Object.prototype.hasOwnProperty.call(n, i)) {\n var o = n[i],\n s = e[i],\n r = s && c.isElement(s) ? \"element\" : null === (a = s) || \"undefined\" == typeof a ? \"\" + a : {}.toString.call(a).match(/\\s([a-z]+)/i)[1].toLowerCase();\n if (!new RegExp(o).test(r)) throw new Error(t.toUpperCase() + ': Option \"' + i + '\" provided type \"' + r + '\" but expected type \"' + o + '\".');\n }\n var a;\n },\n findShadowRoot: function (t) {\n if (!document.documentElement.attachShadow) return null;\n if (\"function\" == typeof t.getRootNode) {\n var e = t.getRootNode();\n return e instanceof ShadowRoot ? e : null;\n }\n return t instanceof ShadowRoot ? t : t.parentNode ? c.findShadowRoot(t.parentNode) : null;\n },\n jQueryDetection: function () {\n if (\"undefined\" == typeof e) throw new TypeError(\"Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.\");\n var t = e.fn.jquery.split(\" \")[0].split(\".\");\n if (t[0] < 2 && t[1] < 9 || 1 === t[0] && 9 === t[1] && t[2] < 1 || t[0] >= 4) throw new Error(\"Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0\");\n }\n };\n c.jQueryDetection(), e.fn.emulateTransitionEnd = l, e.event.special[c.TRANSITION_END] = {\n bindType: \"transitionend\",\n delegateType: \"transitionend\",\n handle: function (t) {\n if (e(t.target).is(this)) return t.handleObj.handler.apply(this, arguments);\n }\n };\n var h = \"alert\",\n u = e.fn[h],\n d = function () {\n function t(t) {\n this._element = t;\n }\n var n = t.prototype;\n return n.close = function (t) {\n var e = this._element;\n t && (e = this._getRootElement(t)), this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e);\n }, n.dispose = function () {\n e.removeData(this._element, \"bs.alert\"), this._element = null;\n }, n._getRootElement = function (t) {\n var n = c.getSelectorFromElement(t),\n i = !1;\n return n && (i = document.querySelector(n)), i || (i = e(t).closest(\".alert\")[0]), i;\n }, n._triggerCloseEvent = function (t) {\n var n = e.Event(\"close.bs.alert\");\n return e(t).trigger(n), n;\n }, n._removeElement = function (t) {\n var n = this;\n if (e(t).removeClass(\"show\"), e(t).hasClass(\"fade\")) {\n var i = c.getTransitionDurationFromElement(t);\n e(t).one(c.TRANSITION_END, function (e) {\n return n._destroyElement(t, e);\n }).emulateTransitionEnd(i);\n } else this._destroyElement(t);\n }, n._destroyElement = function (t) {\n e(t).detach().trigger(\"closed.bs.alert\").remove();\n }, t._jQueryInterface = function (n) {\n return this.each(function () {\n var i = e(this),\n o = i.data(\"bs.alert\");\n o || (o = new t(this), i.data(\"bs.alert\", o)), \"close\" === n && o[n](this);\n });\n }, t._handleDismiss = function (t) {\n return function (e) {\n e && e.preventDefault(), t.close(this);\n };\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.0\";\n }\n }]), t;\n }();\n e(document).on(\"click.bs.alert.data-api\", '[data-dismiss=\"alert\"]', d._handleDismiss(new d())), e.fn[h] = d._jQueryInterface, e.fn[h].Constructor = d, e.fn[h].noConflict = function () {\n return e.fn[h] = u, d._jQueryInterface;\n };\n var f = e.fn.button,\n g = function () {\n function t(t) {\n this._element = t;\n }\n var n = t.prototype;\n return n.toggle = function () {\n var t = !0,\n n = !0,\n i = e(this._element).closest('[data-toggle=\"buttons\"]')[0];\n if (i) {\n var o = this._element.querySelector('input:not([type=\"hidden\"])');\n if (o) {\n if (\"radio\" === o.type) if (o.checked && this._element.classList.contains(\"active\")) t = !1;else {\n var s = i.querySelector(\".active\");\n s && e(s).removeClass(\"active\");\n }\n t && (\"checkbox\" !== o.type && \"radio\" !== o.type || (o.checked = !this._element.classList.contains(\"active\")), e(o).trigger(\"change\")), o.focus(), n = !1;\n }\n }\n this._element.hasAttribute(\"disabled\") || this._element.classList.contains(\"disabled\") || (n && this._element.setAttribute(\"aria-pressed\", !this._element.classList.contains(\"active\")), t && e(this._element).toggleClass(\"active\"));\n }, n.dispose = function () {\n e.removeData(this._element, \"bs.button\"), this._element = null;\n }, t._jQueryInterface = function (n) {\n return this.each(function () {\n var i = e(this).data(\"bs.button\");\n i || (i = new t(this), e(this).data(\"bs.button\", i)), \"toggle\" === n && i[n]();\n });\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.0\";\n }\n }]), t;\n }();\n e(document).on(\"click.bs.button.data-api\", '[data-toggle^=\"button\"]', function (t) {\n var n = t.target,\n i = n;\n if (e(n).hasClass(\"btn\") || (n = e(n).closest(\".btn\")[0]), !n || n.hasAttribute(\"disabled\") || n.classList.contains(\"disabled\")) t.preventDefault();else {\n var o = n.querySelector('input:not([type=\"hidden\"])');\n if (o && (o.hasAttribute(\"disabled\") || o.classList.contains(\"disabled\"))) return void t.preventDefault();\n \"LABEL\" === i.tagName && o && \"checkbox\" === o.type && t.preventDefault(), g._jQueryInterface.call(e(n), \"toggle\");\n }\n }).on(\"focus.bs.button.data-api blur.bs.button.data-api\", '[data-toggle^=\"button\"]', function (t) {\n var n = e(t.target).closest(\".btn\")[0];\n e(n).toggleClass(\"focus\", /^focus(in)?$/.test(t.type));\n }), e(window).on(\"load.bs.button.data-api\", function () {\n for (var t = [].slice.call(document.querySelectorAll('[data-toggle=\"buttons\"] .btn')), e = 0, n = t.length; e < n; e++) {\n var i = t[e],\n o = i.querySelector('input:not([type=\"hidden\"])');\n o.checked || o.hasAttribute(\"checked\") ? i.classList.add(\"active\") : i.classList.remove(\"active\");\n }\n for (var s = 0, r = (t = [].slice.call(document.querySelectorAll('[data-toggle=\"button\"]'))).length; s < r; s++) {\n var a = t[s];\n \"true\" === a.getAttribute(\"aria-pressed\") ? a.classList.add(\"active\") : a.classList.remove(\"active\");\n }\n }), e.fn.button = g._jQueryInterface, e.fn.button.Constructor = g, e.fn.button.noConflict = function () {\n return e.fn.button = f, g._jQueryInterface;\n };\n var m = \"carousel\",\n p = \".bs.carousel\",\n _ = e.fn[m],\n v = {\n interval: 5e3,\n keyboard: !0,\n slide: !1,\n pause: \"hover\",\n wrap: !0,\n touch: !0\n },\n b = {\n interval: \"(number|boolean)\",\n keyboard: \"boolean\",\n slide: \"(boolean|string)\",\n pause: \"(string|boolean)\",\n wrap: \"boolean\",\n touch: \"boolean\"\n },\n y = {\n TOUCH: \"touch\",\n PEN: \"pen\"\n },\n E = function () {\n function t(t, e) {\n this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig(e), this._element = t, this._indicatorsElement = this._element.querySelector(\".carousel-indicators\"), this._touchSupported = \"ontouchstart\" in document.documentElement || navigator.maxTouchPoints > 0, this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent), this._addEventListeners();\n }\n var n = t.prototype;\n return n.next = function () {\n this._isSliding || this._slide(\"next\");\n }, n.nextWhenVisible = function () {\n !document.hidden && e(this._element).is(\":visible\") && \"hidden\" !== e(this._element).css(\"visibility\") && this.next();\n }, n.prev = function () {\n this._isSliding || this._slide(\"prev\");\n }, n.pause = function (t) {\n t || (this._isPaused = !0), this._element.querySelector(\".carousel-item-next, .carousel-item-prev\") && (c.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null;\n }, n.cycle = function (t) {\n t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval));\n }, n.to = function (t) {\n var n = this;\n this._activeElement = this._element.querySelector(\".active.carousel-item\");\n var i = this._getItemIndex(this._activeElement);\n if (!(t > this._items.length - 1 || t < 0)) if (this._isSliding) e(this._element).one(\"slid.bs.carousel\", function () {\n return n.to(t);\n });else {\n if (i === t) return this.pause(), void this.cycle();\n var o = t > i ? \"next\" : \"prev\";\n this._slide(o, this._items[t]);\n }\n }, n.dispose = function () {\n e(this._element).off(p), e.removeData(this._element, \"bs.carousel\"), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null;\n }, n._getConfig = function (t) {\n return t = a(a({}, v), t), c.typeCheckConfig(m, t, b), t;\n }, n._handleSwipe = function () {\n var t = Math.abs(this.touchDeltaX);\n if (!(t <= 40)) {\n var e = t / this.touchDeltaX;\n this.touchDeltaX = 0, e > 0 && this.prev(), e < 0 && this.next();\n }\n }, n._addEventListeners = function () {\n var t = this;\n this._config.keyboard && e(this._element).on(\"keydown.bs.carousel\", function (e) {\n return t._keydown(e);\n }), \"hover\" === this._config.pause && e(this._element).on(\"mouseenter.bs.carousel\", function (e) {\n return t.pause(e);\n }).on(\"mouseleave.bs.carousel\", function (e) {\n return t.cycle(e);\n }), this._config.touch && this._addTouchEventListeners();\n }, n._addTouchEventListeners = function () {\n var t = this;\n if (this._touchSupported) {\n var n = function (e) {\n t._pointerEvent && y[e.originalEvent.pointerType.toUpperCase()] ? t.touchStartX = e.originalEvent.clientX : t._pointerEvent || (t.touchStartX = e.originalEvent.touches[0].clientX);\n },\n i = function (e) {\n t._pointerEvent && y[e.originalEvent.pointerType.toUpperCase()] && (t.touchDeltaX = e.originalEvent.clientX - t.touchStartX), t._handleSwipe(), \"hover\" === t._config.pause && (t.pause(), t.touchTimeout && clearTimeout(t.touchTimeout), t.touchTimeout = setTimeout(function (e) {\n return t.cycle(e);\n }, 500 + t._config.interval));\n };\n e(this._element.querySelectorAll(\".carousel-item img\")).on(\"dragstart.bs.carousel\", function (t) {\n return t.preventDefault();\n }), this._pointerEvent ? (e(this._element).on(\"pointerdown.bs.carousel\", function (t) {\n return n(t);\n }), e(this._element).on(\"pointerup.bs.carousel\", function (t) {\n return i(t);\n }), this._element.classList.add(\"pointer-event\")) : (e(this._element).on(\"touchstart.bs.carousel\", function (t) {\n return n(t);\n }), e(this._element).on(\"touchmove.bs.carousel\", function (e) {\n return function (e) {\n e.originalEvent.touches && e.originalEvent.touches.length > 1 ? t.touchDeltaX = 0 : t.touchDeltaX = e.originalEvent.touches[0].clientX - t.touchStartX;\n }(e);\n }), e(this._element).on(\"touchend.bs.carousel\", function (t) {\n return i(t);\n }));\n }\n }, n._keydown = function (t) {\n if (!/input|textarea/i.test(t.target.tagName)) switch (t.which) {\n case 37:\n t.preventDefault(), this.prev();\n break;\n case 39:\n t.preventDefault(), this.next();\n }\n }, n._getItemIndex = function (t) {\n return this._items = t && t.parentNode ? [].slice.call(t.parentNode.querySelectorAll(\".carousel-item\")) : [], this._items.indexOf(t);\n }, n._getItemByDirection = function (t, e) {\n var n = \"next\" === t,\n i = \"prev\" === t,\n o = this._getItemIndex(e),\n s = this._items.length - 1;\n if ((i && 0 === o || n && o === s) && !this._config.wrap) return e;\n var r = (o + (\"prev\" === t ? -1 : 1)) % this._items.length;\n return -1 === r ? this._items[this._items.length - 1] : this._items[r];\n }, n._triggerSlideEvent = function (t, n) {\n var i = this._getItemIndex(t),\n o = this._getItemIndex(this._element.querySelector(\".active.carousel-item\")),\n s = e.Event(\"slide.bs.carousel\", {\n relatedTarget: t,\n direction: n,\n from: o,\n to: i\n });\n return e(this._element).trigger(s), s;\n }, n._setActiveIndicatorElement = function (t) {\n if (this._indicatorsElement) {\n var n = [].slice.call(this._indicatorsElement.querySelectorAll(\".active\"));\n e(n).removeClass(\"active\");\n var i = this._indicatorsElement.children[this._getItemIndex(t)];\n i && e(i).addClass(\"active\");\n }\n }, n._slide = function (t, n) {\n var i,\n o,\n s,\n r = this,\n a = this._element.querySelector(\".active.carousel-item\"),\n l = this._getItemIndex(a),\n h = n || a && this._getItemByDirection(t, a),\n u = this._getItemIndex(h),\n d = Boolean(this._interval);\n if (\"next\" === t ? (i = \"carousel-item-left\", o = \"carousel-item-next\", s = \"left\") : (i = \"carousel-item-right\", o = \"carousel-item-prev\", s = \"right\"), h && e(h).hasClass(\"active\")) this._isSliding = !1;else if (!this._triggerSlideEvent(h, s).isDefaultPrevented() && a && h) {\n this._isSliding = !0, d && this.pause(), this._setActiveIndicatorElement(h);\n var f = e.Event(\"slid.bs.carousel\", {\n relatedTarget: h,\n direction: s,\n from: l,\n to: u\n });\n if (e(this._element).hasClass(\"slide\")) {\n e(h).addClass(o), c.reflow(h), e(a).addClass(i), e(h).addClass(i);\n var g = parseInt(h.getAttribute(\"data-interval\"), 10);\n g ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, this._config.interval = g) : this._config.interval = this._config.defaultInterval || this._config.interval;\n var m = c.getTransitionDurationFromElement(a);\n e(a).one(c.TRANSITION_END, function () {\n e(h).removeClass(i + \" \" + o).addClass(\"active\"), e(a).removeClass(\"active \" + o + \" \" + i), r._isSliding = !1, setTimeout(function () {\n return e(r._element).trigger(f);\n }, 0);\n }).emulateTransitionEnd(m);\n } else e(a).removeClass(\"active\"), e(h).addClass(\"active\"), this._isSliding = !1, e(this._element).trigger(f);\n d && this.cycle();\n }\n }, t._jQueryInterface = function (n) {\n return this.each(function () {\n var i = e(this).data(\"bs.carousel\"),\n o = a(a({}, v), e(this).data());\n \"object\" == typeof n && (o = a(a({}, o), n));\n var s = \"string\" == typeof n ? n : o.slide;\n if (i || (i = new t(this, o), e(this).data(\"bs.carousel\", i)), \"number\" == typeof n) i.to(n);else if (\"string\" == typeof s) {\n if (\"undefined\" == typeof i[s]) throw new TypeError('No method named \"' + s + '\"');\n i[s]();\n } else o.interval && o.ride && (i.pause(), i.cycle());\n });\n }, t._dataApiClickHandler = function (n) {\n var i = c.getSelectorFromElement(this);\n if (i) {\n var o = e(i)[0];\n if (o && e(o).hasClass(\"carousel\")) {\n var s = a(a({}, e(o).data()), e(this).data()),\n r = this.getAttribute(\"data-slide-to\");\n r && (s.interval = !1), t._jQueryInterface.call(e(o), s), r && e(o).data(\"bs.carousel\").to(r), n.preventDefault();\n }\n }\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.0\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return v;\n }\n }]), t;\n }();\n e(document).on(\"click.bs.carousel.data-api\", \"[data-slide], [data-slide-to]\", E._dataApiClickHandler), e(window).on(\"load.bs.carousel.data-api\", function () {\n for (var t = [].slice.call(document.querySelectorAll('[data-ride=\"carousel\"]')), n = 0, i = t.length; n < i; n++) {\n var o = e(t[n]);\n E._jQueryInterface.call(o, o.data());\n }\n }), e.fn[m] = E._jQueryInterface, e.fn[m].Constructor = E, e.fn[m].noConflict = function () {\n return e.fn[m] = _, E._jQueryInterface;\n };\n var w = \"collapse\",\n T = e.fn[w],\n C = {\n toggle: !0,\n parent: \"\"\n },\n S = {\n toggle: \"boolean\",\n parent: \"(string|element)\"\n },\n D = function () {\n function t(t, e) {\n this._isTransitioning = !1, this._element = t, this._config = this._getConfig(e), this._triggerArray = [].slice.call(document.querySelectorAll('[data-toggle=\"collapse\"][href=\"#' + t.id + '\"],[data-toggle=\"collapse\"][data-target=\"#' + t.id + '\"]'));\n for (var n = [].slice.call(document.querySelectorAll('[data-toggle=\"collapse\"]')), i = 0, o = n.length; i < o; i++) {\n var s = n[i],\n r = c.getSelectorFromElement(s),\n a = [].slice.call(document.querySelectorAll(r)).filter(function (e) {\n return e === t;\n });\n null !== r && a.length > 0 && (this._selector = r, this._triggerArray.push(s));\n }\n this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle();\n }\n var n = t.prototype;\n return n.toggle = function () {\n e(this._element).hasClass(\"show\") ? this.hide() : this.show();\n }, n.show = function () {\n var n,\n i,\n o = this;\n if (!this._isTransitioning && !e(this._element).hasClass(\"show\") && (this._parent && 0 === (n = [].slice.call(this._parent.querySelectorAll(\".show, .collapsing\")).filter(function (t) {\n return \"string\" == typeof o._config.parent ? t.getAttribute(\"data-parent\") === o._config.parent : t.classList.contains(\"collapse\");\n })).length && (n = null), !(n && (i = e(n).not(this._selector).data(\"bs.collapse\")) && i._isTransitioning))) {\n var s = e.Event(\"show.bs.collapse\");\n if (e(this._element).trigger(s), !s.isDefaultPrevented()) {\n n && (t._jQueryInterface.call(e(n).not(this._selector), \"hide\"), i || e(n).data(\"bs.collapse\", null));\n var r = this._getDimension();\n e(this._element).removeClass(\"collapse\").addClass(\"collapsing\"), this._element.style[r] = 0, this._triggerArray.length && e(this._triggerArray).removeClass(\"collapsed\").attr(\"aria-expanded\", !0), this.setTransitioning(!0);\n var a = \"scroll\" + (r[0].toUpperCase() + r.slice(1)),\n l = c.getTransitionDurationFromElement(this._element);\n e(this._element).one(c.TRANSITION_END, function () {\n e(o._element).removeClass(\"collapsing\").addClass(\"collapse show\"), o._element.style[r] = \"\", o.setTransitioning(!1), e(o._element).trigger(\"shown.bs.collapse\");\n }).emulateTransitionEnd(l), this._element.style[r] = this._element[a] + \"px\";\n }\n }\n }, n.hide = function () {\n var t = this;\n if (!this._isTransitioning && e(this._element).hasClass(\"show\")) {\n var n = e.Event(\"hide.bs.collapse\");\n if (e(this._element).trigger(n), !n.isDefaultPrevented()) {\n var i = this._getDimension();\n this._element.style[i] = this._element.getBoundingClientRect()[i] + \"px\", c.reflow(this._element), e(this._element).addClass(\"collapsing\").removeClass(\"collapse show\");\n var o = this._triggerArray.length;\n if (o > 0) for (var s = 0; s < o; s++) {\n var r = this._triggerArray[s],\n a = c.getSelectorFromElement(r);\n if (null !== a) e([].slice.call(document.querySelectorAll(a))).hasClass(\"show\") || e(r).addClass(\"collapsed\").attr(\"aria-expanded\", !1);\n }\n this.setTransitioning(!0);\n this._element.style[i] = \"\";\n var l = c.getTransitionDurationFromElement(this._element);\n e(this._element).one(c.TRANSITION_END, function () {\n t.setTransitioning(!1), e(t._element).removeClass(\"collapsing\").addClass(\"collapse\").trigger(\"hidden.bs.collapse\");\n }).emulateTransitionEnd(l);\n }\n }\n }, n.setTransitioning = function (t) {\n this._isTransitioning = t;\n }, n.dispose = function () {\n e.removeData(this._element, \"bs.collapse\"), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null;\n }, n._getConfig = function (t) {\n return (t = a(a({}, C), t)).toggle = Boolean(t.toggle), c.typeCheckConfig(w, t, S), t;\n }, n._getDimension = function () {\n return e(this._element).hasClass(\"width\") ? \"width\" : \"height\";\n }, n._getParent = function () {\n var n,\n i = this;\n c.isElement(this._config.parent) ? (n = this._config.parent, \"undefined\" != typeof this._config.parent.jquery && (n = this._config.parent[0])) : n = document.querySelector(this._config.parent);\n var o = '[data-toggle=\"collapse\"][data-parent=\"' + this._config.parent + '\"]',\n s = [].slice.call(n.querySelectorAll(o));\n return e(s).each(function (e, n) {\n i._addAriaAndCollapsedClass(t._getTargetFromElement(n), [n]);\n }), n;\n }, n._addAriaAndCollapsedClass = function (t, n) {\n var i = e(t).hasClass(\"show\");\n n.length && e(n).toggleClass(\"collapsed\", !i).attr(\"aria-expanded\", i);\n }, t._getTargetFromElement = function (t) {\n var e = c.getSelectorFromElement(t);\n return e ? document.querySelector(e) : null;\n }, t._jQueryInterface = function (n) {\n return this.each(function () {\n var i = e(this),\n o = i.data(\"bs.collapse\"),\n s = a(a(a({}, C), i.data()), \"object\" == typeof n && n ? n : {});\n if (!o && s.toggle && \"string\" == typeof n && /show|hide/.test(n) && (s.toggle = !1), o || (o = new t(this, s), i.data(\"bs.collapse\", o)), \"string\" == typeof n) {\n if (\"undefined\" == typeof o[n]) throw new TypeError('No method named \"' + n + '\"');\n o[n]();\n }\n });\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.0\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return C;\n }\n }]), t;\n }();\n e(document).on(\"click.bs.collapse.data-api\", '[data-toggle=\"collapse\"]', function (t) {\n \"A\" === t.currentTarget.tagName && t.preventDefault();\n var n = e(this),\n i = c.getSelectorFromElement(this),\n o = [].slice.call(document.querySelectorAll(i));\n e(o).each(function () {\n var t = e(this),\n i = t.data(\"bs.collapse\") ? \"toggle\" : n.data();\n D._jQueryInterface.call(t, i);\n });\n }), e.fn[w] = D._jQueryInterface, e.fn[w].Constructor = D, e.fn[w].noConflict = function () {\n return e.fn[w] = T, D._jQueryInterface;\n };\n var k = \"dropdown\",\n N = e.fn[k],\n A = new RegExp(\"38|40|27\"),\n I = {\n offset: 0,\n flip: !0,\n boundary: \"scrollParent\",\n reference: \"toggle\",\n display: \"dynamic\",\n popperConfig: null\n },\n O = {\n offset: \"(number|string|function)\",\n flip: \"boolean\",\n boundary: \"(string|element)\",\n reference: \"(string|element)\",\n display: \"string\",\n popperConfig: \"(null|object)\"\n },\n j = function () {\n function t(t, e) {\n this._element = t, this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners();\n }\n var i = t.prototype;\n return i.toggle = function () {\n if (!this._element.disabled && !e(this._element).hasClass(\"disabled\")) {\n var n = e(this._menu).hasClass(\"show\");\n t._clearMenus(), n || this.show(!0);\n }\n }, i.show = function (i) {\n if (void 0 === i && (i = !1), !(this._element.disabled || e(this._element).hasClass(\"disabled\") || e(this._menu).hasClass(\"show\"))) {\n var o = {\n relatedTarget: this._element\n },\n s = e.Event(\"show.bs.dropdown\", o),\n r = t._getParentFromElement(this._element);\n if (e(r).trigger(s), !s.isDefaultPrevented()) {\n if (!this._inNavbar && i) {\n if (\"undefined\" == typeof n) throw new TypeError(\"Bootstrap's dropdowns require Popper.js (https://popper.js.org/)\");\n var a = this._element;\n \"parent\" === this._config.reference ? a = r : c.isElement(this._config.reference) && (a = this._config.reference, \"undefined\" != typeof this._config.reference.jquery && (a = this._config.reference[0])), \"scrollParent\" !== this._config.boundary && e(r).addClass(\"position-static\"), this._popper = new n(a, this._menu, this._getPopperConfig());\n }\n \"ontouchstart\" in document.documentElement && 0 === e(r).closest(\".navbar-nav\").length && e(document.body).children().on(\"mouseover\", null, e.noop), this._element.focus(), this._element.setAttribute(\"aria-expanded\", !0), e(this._menu).toggleClass(\"show\"), e(r).toggleClass(\"show\").trigger(e.Event(\"shown.bs.dropdown\", o));\n }\n }\n }, i.hide = function () {\n if (!this._element.disabled && !e(this._element).hasClass(\"disabled\") && e(this._menu).hasClass(\"show\")) {\n var n = {\n relatedTarget: this._element\n },\n i = e.Event(\"hide.bs.dropdown\", n),\n o = t._getParentFromElement(this._element);\n e(o).trigger(i), i.isDefaultPrevented() || (this._popper && this._popper.destroy(), e(this._menu).toggleClass(\"show\"), e(o).toggleClass(\"show\").trigger(e.Event(\"hidden.bs.dropdown\", n)));\n }\n }, i.dispose = function () {\n e.removeData(this._element, \"bs.dropdown\"), e(this._element).off(\".bs.dropdown\"), this._element = null, this._menu = null, null !== this._popper && (this._popper.destroy(), this._popper = null);\n }, i.update = function () {\n this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate();\n }, i._addEventListeners = function () {\n var t = this;\n e(this._element).on(\"click.bs.dropdown\", function (e) {\n e.preventDefault(), e.stopPropagation(), t.toggle();\n });\n }, i._getConfig = function (t) {\n return t = a(a(a({}, this.constructor.Default), e(this._element).data()), t), c.typeCheckConfig(k, t, this.constructor.DefaultType), t;\n }, i._getMenuElement = function () {\n if (!this._menu) {\n var e = t._getParentFromElement(this._element);\n e && (this._menu = e.querySelector(\".dropdown-menu\"));\n }\n return this._menu;\n }, i._getPlacement = function () {\n var t = e(this._element.parentNode),\n n = \"bottom-start\";\n return t.hasClass(\"dropup\") ? n = e(this._menu).hasClass(\"dropdown-menu-right\") ? \"top-end\" : \"top-start\" : t.hasClass(\"dropright\") ? n = \"right-start\" : t.hasClass(\"dropleft\") ? n = \"left-start\" : e(this._menu).hasClass(\"dropdown-menu-right\") && (n = \"bottom-end\"), n;\n }, i._detectNavbar = function () {\n return e(this._element).closest(\".navbar\").length > 0;\n }, i._getOffset = function () {\n var t = this,\n e = {};\n return \"function\" == typeof this._config.offset ? e.fn = function (e) {\n return e.offsets = a(a({}, e.offsets), t._config.offset(e.offsets, t._element) || {}), e;\n } : e.offset = this._config.offset, e;\n }, i._getPopperConfig = function () {\n var t = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n };\n return \"static\" === this._config.display && (t.modifiers.applyStyle = {\n enabled: !1\n }), a(a({}, t), this._config.popperConfig);\n }, t._jQueryInterface = function (n) {\n return this.each(function () {\n var i = e(this).data(\"bs.dropdown\");\n if (i || (i = new t(this, \"object\" == typeof n ? n : null), e(this).data(\"bs.dropdown\", i)), \"string\" == typeof n) {\n if (\"undefined\" == typeof i[n]) throw new TypeError('No method named \"' + n + '\"');\n i[n]();\n }\n });\n }, t._clearMenus = function (n) {\n if (!n || 3 !== n.which && (\"keyup\" !== n.type || 9 === n.which)) for (var i = [].slice.call(document.querySelectorAll('[data-toggle=\"dropdown\"]')), o = 0, s = i.length; o < s; o++) {\n var r = t._getParentFromElement(i[o]),\n a = e(i[o]).data(\"bs.dropdown\"),\n l = {\n relatedTarget: i[o]\n };\n if (n && \"click\" === n.type && (l.clickEvent = n), a) {\n var c = a._menu;\n if (e(r).hasClass(\"show\") && !(n && (\"click\" === n.type && /input|textarea/i.test(n.target.tagName) || \"keyup\" === n.type && 9 === n.which) && e.contains(r, n.target))) {\n var h = e.Event(\"hide.bs.dropdown\", l);\n e(r).trigger(h), h.isDefaultPrevented() || (\"ontouchstart\" in document.documentElement && e(document.body).children().off(\"mouseover\", null, e.noop), i[o].setAttribute(\"aria-expanded\", \"false\"), a._popper && a._popper.destroy(), e(c).removeClass(\"show\"), e(r).removeClass(\"show\").trigger(e.Event(\"hidden.bs.dropdown\", l)));\n }\n }\n }\n }, t._getParentFromElement = function (t) {\n var e,\n n = c.getSelectorFromElement(t);\n return n && (e = document.querySelector(n)), e || t.parentNode;\n }, t._dataApiKeydownHandler = function (n) {\n if (!(/input|textarea/i.test(n.target.tagName) ? 32 === n.which || 27 !== n.which && (40 !== n.which && 38 !== n.which || e(n.target).closest(\".dropdown-menu\").length) : !A.test(n.which)) && !this.disabled && !e(this).hasClass(\"disabled\")) {\n var i = t._getParentFromElement(this),\n o = e(i).hasClass(\"show\");\n if (o || 27 !== n.which) {\n if (n.preventDefault(), n.stopPropagation(), !o || o && (27 === n.which || 32 === n.which)) return 27 === n.which && e(i.querySelector('[data-toggle=\"dropdown\"]')).trigger(\"focus\"), void e(this).trigger(\"click\");\n var s = [].slice.call(i.querySelectorAll(\".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)\")).filter(function (t) {\n return e(t).is(\":visible\");\n });\n if (0 !== s.length) {\n var r = s.indexOf(n.target);\n 38 === n.which && r > 0 && r--, 40 === n.which && r < s.length - 1 && r++, r < 0 && (r = 0), s[r].focus();\n }\n }\n }\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.0\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return I;\n }\n }, {\n key: \"DefaultType\",\n get: function () {\n return O;\n }\n }]), t;\n }();\n e(document).on(\"keydown.bs.dropdown.data-api\", '[data-toggle=\"dropdown\"]', j._dataApiKeydownHandler).on(\"keydown.bs.dropdown.data-api\", \".dropdown-menu\", j._dataApiKeydownHandler).on(\"click.bs.dropdown.data-api keyup.bs.dropdown.data-api\", j._clearMenus).on(\"click.bs.dropdown.data-api\", '[data-toggle=\"dropdown\"]', function (t) {\n t.preventDefault(), t.stopPropagation(), j._jQueryInterface.call(e(this), \"toggle\");\n }).on(\"click.bs.dropdown.data-api\", \".dropdown form\", function (t) {\n t.stopPropagation();\n }), e.fn[k] = j._jQueryInterface, e.fn[k].Constructor = j, e.fn[k].noConflict = function () {\n return e.fn[k] = N, j._jQueryInterface;\n };\n var P = e.fn.modal,\n x = {\n backdrop: !0,\n keyboard: !0,\n focus: !0,\n show: !0\n },\n L = {\n backdrop: \"(boolean|string)\",\n keyboard: \"boolean\",\n focus: \"boolean\",\n show: \"boolean\"\n },\n R = function () {\n function t(t, e) {\n this._config = this._getConfig(e), this._element = t, this._dialog = t.querySelector(\".modal-dialog\"), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollbarWidth = 0;\n }\n var n = t.prototype;\n return n.toggle = function (t) {\n return this._isShown ? this.hide() : this.show(t);\n }, n.show = function (t) {\n var n = this;\n if (!this._isShown && !this._isTransitioning) {\n e(this._element).hasClass(\"fade\") && (this._isTransitioning = !0);\n var i = e.Event(\"show.bs.modal\", {\n relatedTarget: t\n });\n e(this._element).trigger(i), this._isShown || i.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), e(this._element).on(\"click.dismiss.bs.modal\", '[data-dismiss=\"modal\"]', function (t) {\n return n.hide(t);\n }), e(this._dialog).on(\"mousedown.dismiss.bs.modal\", function () {\n e(n._element).one(\"mouseup.dismiss.bs.modal\", function (t) {\n e(t.target).is(n._element) && (n._ignoreBackdropClick = !0);\n });\n }), this._showBackdrop(function () {\n return n._showElement(t);\n }));\n }\n }, n.hide = function (t) {\n var n = this;\n if (t && t.preventDefault(), this._isShown && !this._isTransitioning) {\n var i = e.Event(\"hide.bs.modal\");\n if (e(this._element).trigger(i), this._isShown && !i.isDefaultPrevented()) {\n this._isShown = !1;\n var o = e(this._element).hasClass(\"fade\");\n if (o && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), e(document).off(\"focusin.bs.modal\"), e(this._element).removeClass(\"show\"), e(this._element).off(\"click.dismiss.bs.modal\"), e(this._dialog).off(\"mousedown.dismiss.bs.modal\"), o) {\n var s = c.getTransitionDurationFromElement(this._element);\n e(this._element).one(c.TRANSITION_END, function (t) {\n return n._hideModal(t);\n }).emulateTransitionEnd(s);\n } else this._hideModal();\n }\n }\n }, n.dispose = function () {\n [window, this._element, this._dialog].forEach(function (t) {\n return e(t).off(\".bs.modal\");\n }), e(document).off(\"focusin.bs.modal\"), e.removeData(this._element, \"bs.modal\"), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._isTransitioning = null, this._scrollbarWidth = null;\n }, n.handleUpdate = function () {\n this._adjustDialog();\n }, n._getConfig = function (t) {\n return t = a(a({}, x), t), c.typeCheckConfig(\"modal\", t, L), t;\n }, n._triggerBackdropTransition = function () {\n var t = this;\n if (\"static\" === this._config.backdrop) {\n var n = e.Event(\"hidePrevented.bs.modal\");\n if (e(this._element).trigger(n), n.defaultPrevented) return;\n this._element.classList.add(\"modal-static\");\n var i = c.getTransitionDurationFromElement(this._element);\n e(this._element).one(c.TRANSITION_END, function () {\n t._element.classList.remove(\"modal-static\");\n }).emulateTransitionEnd(i), this._element.focus();\n } else this.hide();\n }, n._showElement = function (t) {\n var n = this,\n i = e(this._element).hasClass(\"fade\"),\n o = this._dialog ? this._dialog.querySelector(\".modal-body\") : null;\n this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = \"block\", this._element.removeAttribute(\"aria-hidden\"), this._element.setAttribute(\"aria-modal\", !0), e(this._dialog).hasClass(\"modal-dialog-scrollable\") && o ? o.scrollTop = 0 : this._element.scrollTop = 0, i && c.reflow(this._element), e(this._element).addClass(\"show\"), this._config.focus && this._enforceFocus();\n var s = e.Event(\"shown.bs.modal\", {\n relatedTarget: t\n }),\n r = function () {\n n._config.focus && n._element.focus(), n._isTransitioning = !1, e(n._element).trigger(s);\n };\n if (i) {\n var a = c.getTransitionDurationFromElement(this._dialog);\n e(this._dialog).one(c.TRANSITION_END, r).emulateTransitionEnd(a);\n } else r();\n }, n._enforceFocus = function () {\n var t = this;\n e(document).off(\"focusin.bs.modal\").on(\"focusin.bs.modal\", function (n) {\n document !== n.target && t._element !== n.target && 0 === e(t._element).has(n.target).length && t._element.focus();\n });\n }, n._setEscapeEvent = function () {\n var t = this;\n this._isShown ? e(this._element).on(\"keydown.dismiss.bs.modal\", function (e) {\n t._config.keyboard && 27 === e.which ? (e.preventDefault(), t.hide()) : t._config.keyboard || 27 !== e.which || t._triggerBackdropTransition();\n }) : this._isShown || e(this._element).off(\"keydown.dismiss.bs.modal\");\n }, n._setResizeEvent = function () {\n var t = this;\n this._isShown ? e(window).on(\"resize.bs.modal\", function (e) {\n return t.handleUpdate(e);\n }) : e(window).off(\"resize.bs.modal\");\n }, n._hideModal = function () {\n var t = this;\n this._element.style.display = \"none\", this._element.setAttribute(\"aria-hidden\", !0), this._element.removeAttribute(\"aria-modal\"), this._isTransitioning = !1, this._showBackdrop(function () {\n e(document.body).removeClass(\"modal-open\"), t._resetAdjustments(), t._resetScrollbar(), e(t._element).trigger(\"hidden.bs.modal\");\n });\n }, n._removeBackdrop = function () {\n this._backdrop && (e(this._backdrop).remove(), this._backdrop = null);\n }, n._showBackdrop = function (t) {\n var n = this,\n i = e(this._element).hasClass(\"fade\") ? \"fade\" : \"\";\n if (this._isShown && this._config.backdrop) {\n if (this._backdrop = document.createElement(\"div\"), this._backdrop.className = \"modal-backdrop\", i && this._backdrop.classList.add(i), e(this._backdrop).appendTo(document.body), e(this._element).on(\"click.dismiss.bs.modal\", function (t) {\n n._ignoreBackdropClick ? n._ignoreBackdropClick = !1 : t.target === t.currentTarget && n._triggerBackdropTransition();\n }), i && c.reflow(this._backdrop), e(this._backdrop).addClass(\"show\"), !t) return;\n if (!i) return void t();\n var o = c.getTransitionDurationFromElement(this._backdrop);\n e(this._backdrop).one(c.TRANSITION_END, t).emulateTransitionEnd(o);\n } else if (!this._isShown && this._backdrop) {\n e(this._backdrop).removeClass(\"show\");\n var s = function () {\n n._removeBackdrop(), t && t();\n };\n if (e(this._element).hasClass(\"fade\")) {\n var r = c.getTransitionDurationFromElement(this._backdrop);\n e(this._backdrop).one(c.TRANSITION_END, s).emulateTransitionEnd(r);\n } else s();\n } else t && t();\n }, n._adjustDialog = function () {\n var t = this._element.scrollHeight > document.documentElement.clientHeight;\n !this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + \"px\"), this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + \"px\");\n }, n._resetAdjustments = function () {\n this._element.style.paddingLeft = \"\", this._element.style.paddingRight = \"\";\n }, n._checkScrollbar = function () {\n var t = document.body.getBoundingClientRect();\n this._isBodyOverflowing = Math.round(t.left + t.right) < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth();\n }, n._setScrollbar = function () {\n var t = this;\n if (this._isBodyOverflowing) {\n var n = [].slice.call(document.querySelectorAll(\".fixed-top, .fixed-bottom, .is-fixed, .sticky-top\")),\n i = [].slice.call(document.querySelectorAll(\".sticky-top\"));\n e(n).each(function (n, i) {\n var o = i.style.paddingRight,\n s = e(i).css(\"padding-right\");\n e(i).data(\"padding-right\", o).css(\"padding-right\", parseFloat(s) + t._scrollbarWidth + \"px\");\n }), e(i).each(function (n, i) {\n var o = i.style.marginRight,\n s = e(i).css(\"margin-right\");\n e(i).data(\"margin-right\", o).css(\"margin-right\", parseFloat(s) - t._scrollbarWidth + \"px\");\n });\n var o = document.body.style.paddingRight,\n s = e(document.body).css(\"padding-right\");\n e(document.body).data(\"padding-right\", o).css(\"padding-right\", parseFloat(s) + this._scrollbarWidth + \"px\");\n }\n e(document.body).addClass(\"modal-open\");\n }, n._resetScrollbar = function () {\n var t = [].slice.call(document.querySelectorAll(\".fixed-top, .fixed-bottom, .is-fixed, .sticky-top\"));\n e(t).each(function (t, n) {\n var i = e(n).data(\"padding-right\");\n e(n).removeData(\"padding-right\"), n.style.paddingRight = i || \"\";\n });\n var n = [].slice.call(document.querySelectorAll(\".sticky-top\"));\n e(n).each(function (t, n) {\n var i = e(n).data(\"margin-right\");\n \"undefined\" != typeof i && e(n).css(\"margin-right\", i).removeData(\"margin-right\");\n });\n var i = e(document.body).data(\"padding-right\");\n e(document.body).removeData(\"padding-right\"), document.body.style.paddingRight = i || \"\";\n }, n._getScrollbarWidth = function () {\n var t = document.createElement(\"div\");\n t.className = \"modal-scrollbar-measure\", document.body.appendChild(t);\n var e = t.getBoundingClientRect().width - t.clientWidth;\n return document.body.removeChild(t), e;\n }, t._jQueryInterface = function (n, i) {\n return this.each(function () {\n var o = e(this).data(\"bs.modal\"),\n s = a(a(a({}, x), e(this).data()), \"object\" == typeof n && n ? n : {});\n if (o || (o = new t(this, s), e(this).data(\"bs.modal\", o)), \"string\" == typeof n) {\n if (\"undefined\" == typeof o[n]) throw new TypeError('No method named \"' + n + '\"');\n o[n](i);\n } else s.show && o.show(i);\n });\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.0\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return x;\n }\n }]), t;\n }();\n e(document).on(\"click.bs.modal.data-api\", '[data-toggle=\"modal\"]', function (t) {\n var n,\n i = this,\n o = c.getSelectorFromElement(this);\n o && (n = document.querySelector(o));\n var s = e(n).data(\"bs.modal\") ? \"toggle\" : a(a({}, e(n).data()), e(this).data());\n \"A\" !== this.tagName && \"AREA\" !== this.tagName || t.preventDefault();\n var r = e(n).one(\"show.bs.modal\", function (t) {\n t.isDefaultPrevented() || r.one(\"hidden.bs.modal\", function () {\n e(i).is(\":visible\") && i.focus();\n });\n });\n R._jQueryInterface.call(e(n), s, this);\n }), e.fn.modal = R._jQueryInterface, e.fn.modal.Constructor = R, e.fn.modal.noConflict = function () {\n return e.fn.modal = P, R._jQueryInterface;\n };\n var q = [\"background\", \"cite\", \"href\", \"itemtype\", \"longdesc\", \"poster\", \"src\", \"xlink:href\"],\n F = {\n \"*\": [\"class\", \"dir\", \"id\", \"lang\", \"role\", /^aria-[\\w-]*$/i],\n a: [\"target\", \"href\", \"title\", \"rel\"],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: [\"src\", \"srcset\", \"alt\", \"title\", \"width\", \"height\"],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n },\n Q = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,\n B = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n function H(t, e, n) {\n if (0 === t.length) return t;\n if (n && \"function\" == typeof n) return n(t);\n for (var i = new window.DOMParser().parseFromString(t, \"text/html\"), o = Object.keys(e), s = [].slice.call(i.body.querySelectorAll(\"*\")), r = function (t, n) {\n var i = s[t],\n r = i.nodeName.toLowerCase();\n if (-1 === o.indexOf(i.nodeName.toLowerCase())) return i.parentNode.removeChild(i), \"continue\";\n var a = [].slice.call(i.attributes),\n l = [].concat(e[\"*\"] || [], e[r] || []);\n a.forEach(function (t) {\n (function (t, e) {\n var n = t.nodeName.toLowerCase();\n if (-1 !== e.indexOf(n)) return -1 === q.indexOf(n) || Boolean(t.nodeValue.match(Q) || t.nodeValue.match(B));\n for (var i = e.filter(function (t) {\n return t instanceof RegExp;\n }), o = 0, s = i.length; o < s; o++) if (n.match(i[o])) return !0;\n return !1;\n })(t, l) || i.removeAttribute(t.nodeName);\n });\n }, a = 0, l = s.length; a < l; a++) r(a);\n return i.body.innerHTML;\n }\n var U = \"tooltip\",\n M = e.fn[U],\n W = new RegExp(\"(^|\\\\s)bs-tooltip\\\\S+\", \"g\"),\n V = [\"sanitize\", \"whiteList\", \"sanitizeFn\"],\n z = {\n animation: \"boolean\",\n template: \"string\",\n title: \"(string|element|function)\",\n trigger: \"string\",\n delay: \"(number|object)\",\n html: \"boolean\",\n selector: \"(string|boolean)\",\n placement: \"(string|function)\",\n offset: \"(number|string|function)\",\n container: \"(string|element|boolean)\",\n fallbackPlacement: \"(string|array)\",\n boundary: \"(string|element)\",\n sanitize: \"boolean\",\n sanitizeFn: \"(null|function)\",\n whiteList: \"object\",\n popperConfig: \"(null|object)\"\n },\n K = {\n AUTO: \"auto\",\n TOP: \"top\",\n RIGHT: \"right\",\n BOTTOM: \"bottom\",\n LEFT: \"left\"\n },\n X = {\n animation: !0,\n template: '
',\n trigger: \"hover focus\",\n title: \"\",\n delay: 0,\n html: !1,\n selector: !1,\n placement: \"top\",\n offset: 0,\n container: !1,\n fallbackPlacement: \"flip\",\n boundary: \"scrollParent\",\n sanitize: !0,\n sanitizeFn: null,\n whiteList: F,\n popperConfig: null\n },\n Y = {\n HIDE: \"hide.bs.tooltip\",\n HIDDEN: \"hidden.bs.tooltip\",\n SHOW: \"show.bs.tooltip\",\n SHOWN: \"shown.bs.tooltip\",\n INSERTED: \"inserted.bs.tooltip\",\n CLICK: \"click.bs.tooltip\",\n FOCUSIN: \"focusin.bs.tooltip\",\n FOCUSOUT: \"focusout.bs.tooltip\",\n MOUSEENTER: \"mouseenter.bs.tooltip\",\n MOUSELEAVE: \"mouseleave.bs.tooltip\"\n },\n $ = function () {\n function t(t, e) {\n if (\"undefined\" == typeof n) throw new TypeError(\"Bootstrap's tooltips require Popper.js (https://popper.js.org/)\");\n this._isEnabled = !0, this._timeout = 0, this._hoverState = \"\", this._activeTrigger = {}, this._popper = null, this.element = t, this.config = this._getConfig(e), this.tip = null, this._setListeners();\n }\n var i = t.prototype;\n return i.enable = function () {\n this._isEnabled = !0;\n }, i.disable = function () {\n this._isEnabled = !1;\n }, i.toggleEnabled = function () {\n this._isEnabled = !this._isEnabled;\n }, i.toggle = function (t) {\n if (this._isEnabled) if (t) {\n var n = this.constructor.DATA_KEY,\n i = e(t.currentTarget).data(n);\n i || (i = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(n, i)), i._activeTrigger.click = !i._activeTrigger.click, i._isWithActiveTrigger() ? i._enter(null, i) : i._leave(null, i);\n } else {\n if (e(this.getTipElement()).hasClass(\"show\")) return void this._leave(null, this);\n this._enter(null, this);\n }\n }, i.dispose = function () {\n clearTimeout(this._timeout), e.removeData(this.element, this.constructor.DATA_KEY), e(this.element).off(this.constructor.EVENT_KEY), e(this.element).closest(\".modal\").off(\"hide.bs.modal\", this._hideModalHandler), this.tip && e(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, this._activeTrigger = null, this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null;\n }, i.show = function () {\n var t = this;\n if (\"none\" === e(this.element).css(\"display\")) throw new Error(\"Please use show on visible elements\");\n var i = e.Event(this.constructor.Event.SHOW);\n if (this.isWithContent() && this._isEnabled) {\n e(this.element).trigger(i);\n var o = c.findShadowRoot(this.element),\n s = e.contains(null !== o ? o : this.element.ownerDocument.documentElement, this.element);\n if (i.isDefaultPrevented() || !s) return;\n var r = this.getTipElement(),\n a = c.getUID(this.constructor.NAME);\n r.setAttribute(\"id\", a), this.element.setAttribute(\"aria-describedby\", a), this.setContent(), this.config.animation && e(r).addClass(\"fade\");\n var l = \"function\" == typeof this.config.placement ? this.config.placement.call(this, r, this.element) : this.config.placement,\n h = this._getAttachment(l);\n this.addAttachmentClass(h);\n var u = this._getContainer();\n e(r).data(this.constructor.DATA_KEY, this), e.contains(this.element.ownerDocument.documentElement, this.tip) || e(r).appendTo(u), e(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new n(this.element, r, this._getPopperConfig(h)), e(r).addClass(\"show\"), \"ontouchstart\" in document.documentElement && e(document.body).children().on(\"mouseover\", null, e.noop);\n var d = function () {\n t.config.animation && t._fixTransition();\n var n = t._hoverState;\n t._hoverState = null, e(t.element).trigger(t.constructor.Event.SHOWN), \"out\" === n && t._leave(null, t);\n };\n if (e(this.tip).hasClass(\"fade\")) {\n var f = c.getTransitionDurationFromElement(this.tip);\n e(this.tip).one(c.TRANSITION_END, d).emulateTransitionEnd(f);\n } else d();\n }\n }, i.hide = function (t) {\n var n = this,\n i = this.getTipElement(),\n o = e.Event(this.constructor.Event.HIDE),\n s = function () {\n \"show\" !== n._hoverState && i.parentNode && i.parentNode.removeChild(i), n._cleanTipClass(), n.element.removeAttribute(\"aria-describedby\"), e(n.element).trigger(n.constructor.Event.HIDDEN), null !== n._popper && n._popper.destroy(), t && t();\n };\n if (e(this.element).trigger(o), !o.isDefaultPrevented()) {\n if (e(i).removeClass(\"show\"), \"ontouchstart\" in document.documentElement && e(document.body).children().off(\"mouseover\", null, e.noop), this._activeTrigger.click = !1, this._activeTrigger.focus = !1, this._activeTrigger.hover = !1, e(this.tip).hasClass(\"fade\")) {\n var r = c.getTransitionDurationFromElement(i);\n e(i).one(c.TRANSITION_END, s).emulateTransitionEnd(r);\n } else s();\n this._hoverState = \"\";\n }\n }, i.update = function () {\n null !== this._popper && this._popper.scheduleUpdate();\n }, i.isWithContent = function () {\n return Boolean(this.getTitle());\n }, i.addAttachmentClass = function (t) {\n e(this.getTipElement()).addClass(\"bs-tooltip-\" + t);\n }, i.getTipElement = function () {\n return this.tip = this.tip || e(this.config.template)[0], this.tip;\n }, i.setContent = function () {\n var t = this.getTipElement();\n this.setElementContent(e(t.querySelectorAll(\".tooltip-inner\")), this.getTitle()), e(t).removeClass(\"fade show\");\n }, i.setElementContent = function (t, n) {\n \"object\" != typeof n || !n.nodeType && !n.jquery ? this.config.html ? (this.config.sanitize && (n = H(n, this.config.whiteList, this.config.sanitizeFn)), t.html(n)) : t.text(n) : this.config.html ? e(n).parent().is(t) || t.empty().append(n) : t.text(e(n).text());\n }, i.getTitle = function () {\n var t = this.element.getAttribute(\"data-original-title\");\n return t || (t = \"function\" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), t;\n }, i._getPopperConfig = function (t) {\n var e = this;\n return a(a({}, {\n placement: t,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: \".arrow\"\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: function (t) {\n t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t);\n },\n onUpdate: function (t) {\n return e._handlePopperPlacementChange(t);\n }\n }), this.config.popperConfig);\n }, i._getOffset = function () {\n var t = this,\n e = {};\n return \"function\" == typeof this.config.offset ? e.fn = function (e) {\n return e.offsets = a(a({}, e.offsets), t.config.offset(e.offsets, t.element) || {}), e;\n } : e.offset = this.config.offset, e;\n }, i._getContainer = function () {\n return !1 === this.config.container ? document.body : c.isElement(this.config.container) ? e(this.config.container) : e(document).find(this.config.container);\n }, i._getAttachment = function (t) {\n return K[t.toUpperCase()];\n }, i._setListeners = function () {\n var t = this;\n this.config.trigger.split(\" \").forEach(function (n) {\n if (\"click\" === n) e(t.element).on(t.constructor.Event.CLICK, t.config.selector, function (e) {\n return t.toggle(e);\n });else if (\"manual\" !== n) {\n var i = \"hover\" === n ? t.constructor.Event.MOUSEENTER : t.constructor.Event.FOCUSIN,\n o = \"hover\" === n ? t.constructor.Event.MOUSELEAVE : t.constructor.Event.FOCUSOUT;\n e(t.element).on(i, t.config.selector, function (e) {\n return t._enter(e);\n }).on(o, t.config.selector, function (e) {\n return t._leave(e);\n });\n }\n }), this._hideModalHandler = function () {\n t.element && t.hide();\n }, e(this.element).closest(\".modal\").on(\"hide.bs.modal\", this._hideModalHandler), this.config.selector ? this.config = a(a({}, this.config), {}, {\n trigger: \"manual\",\n selector: \"\"\n }) : this._fixTitle();\n }, i._fixTitle = function () {\n var t = typeof this.element.getAttribute(\"data-original-title\");\n (this.element.getAttribute(\"title\") || \"string\" !== t) && (this.element.setAttribute(\"data-original-title\", this.element.getAttribute(\"title\") || \"\"), this.element.setAttribute(\"title\", \"\"));\n }, i._enter = function (t, n) {\n var i = this.constructor.DATA_KEY;\n (n = n || e(t.currentTarget).data(i)) || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(i, n)), t && (n._activeTrigger[\"focusin\" === t.type ? \"focus\" : \"hover\"] = !0), e(n.getTipElement()).hasClass(\"show\") || \"show\" === n._hoverState ? n._hoverState = \"show\" : (clearTimeout(n._timeout), n._hoverState = \"show\", n.config.delay && n.config.delay.show ? n._timeout = setTimeout(function () {\n \"show\" === n._hoverState && n.show();\n }, n.config.delay.show) : n.show());\n }, i._leave = function (t, n) {\n var i = this.constructor.DATA_KEY;\n (n = n || e(t.currentTarget).data(i)) || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(i, n)), t && (n._activeTrigger[\"focusout\" === t.type ? \"focus\" : \"hover\"] = !1), n._isWithActiveTrigger() || (clearTimeout(n._timeout), n._hoverState = \"out\", n.config.delay && n.config.delay.hide ? n._timeout = setTimeout(function () {\n \"out\" === n._hoverState && n.hide();\n }, n.config.delay.hide) : n.hide());\n }, i._isWithActiveTrigger = function () {\n for (var t in this._activeTrigger) if (this._activeTrigger[t]) return !0;\n return !1;\n }, i._getConfig = function (t) {\n var n = e(this.element).data();\n return Object.keys(n).forEach(function (t) {\n -1 !== V.indexOf(t) && delete n[t];\n }), \"number\" == typeof (t = a(a(a({}, this.constructor.Default), n), \"object\" == typeof t && t ? t : {})).delay && (t.delay = {\n show: t.delay,\n hide: t.delay\n }), \"number\" == typeof t.title && (t.title = t.title.toString()), \"number\" == typeof t.content && (t.content = t.content.toString()), c.typeCheckConfig(U, t, this.constructor.DefaultType), t.sanitize && (t.template = H(t.template, t.whiteList, t.sanitizeFn)), t;\n }, i._getDelegateConfig = function () {\n var t = {};\n if (this.config) for (var e in this.config) this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]);\n return t;\n }, i._cleanTipClass = function () {\n var t = e(this.getTipElement()),\n n = t.attr(\"class\").match(W);\n null !== n && n.length && t.removeClass(n.join(\"\"));\n }, i._handlePopperPlacementChange = function (t) {\n this.tip = t.instance.popper, this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(t.placement));\n }, i._fixTransition = function () {\n var t = this.getTipElement(),\n n = this.config.animation;\n null === t.getAttribute(\"x-placement\") && (e(t).removeClass(\"fade\"), this.config.animation = !1, this.hide(), this.show(), this.config.animation = n);\n }, t._jQueryInterface = function (n) {\n return this.each(function () {\n var i = e(this).data(\"bs.tooltip\"),\n o = \"object\" == typeof n && n;\n if ((i || !/dispose|hide/.test(n)) && (i || (i = new t(this, o), e(this).data(\"bs.tooltip\", i)), \"string\" == typeof n)) {\n if (\"undefined\" == typeof i[n]) throw new TypeError('No method named \"' + n + '\"');\n i[n]();\n }\n });\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.0\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return X;\n }\n }, {\n key: \"NAME\",\n get: function () {\n return U;\n }\n }, {\n key: \"DATA_KEY\",\n get: function () {\n return \"bs.tooltip\";\n }\n }, {\n key: \"Event\",\n get: function () {\n return Y;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function () {\n return \".bs.tooltip\";\n }\n }, {\n key: \"DefaultType\",\n get: function () {\n return z;\n }\n }]), t;\n }();\n e.fn[U] = $._jQueryInterface, e.fn[U].Constructor = $, e.fn[U].noConflict = function () {\n return e.fn[U] = M, $._jQueryInterface;\n };\n var J = \"popover\",\n G = e.fn[J],\n Z = new RegExp(\"(^|\\\\s)bs-popover\\\\S+\", \"g\"),\n tt = a(a({}, $.Default), {}, {\n placement: \"right\",\n trigger: \"click\",\n content: \"\",\n template: '

'\n }),\n et = a(a({}, $.DefaultType), {}, {\n content: \"(string|element|function)\"\n }),\n nt = {\n HIDE: \"hide.bs.popover\",\n HIDDEN: \"hidden.bs.popover\",\n SHOW: \"show.bs.popover\",\n SHOWN: \"shown.bs.popover\",\n INSERTED: \"inserted.bs.popover\",\n CLICK: \"click.bs.popover\",\n FOCUSIN: \"focusin.bs.popover\",\n FOCUSOUT: \"focusout.bs.popover\",\n MOUSEENTER: \"mouseenter.bs.popover\",\n MOUSELEAVE: \"mouseleave.bs.popover\"\n },\n it = function (t) {\n var n, i;\n function s() {\n return t.apply(this, arguments) || this;\n }\n i = t, (n = s).prototype = Object.create(i.prototype), n.prototype.constructor = n, n.__proto__ = i;\n var r = s.prototype;\n return r.isWithContent = function () {\n return this.getTitle() || this._getContent();\n }, r.addAttachmentClass = function (t) {\n e(this.getTipElement()).addClass(\"bs-popover-\" + t);\n }, r.getTipElement = function () {\n return this.tip = this.tip || e(this.config.template)[0], this.tip;\n }, r.setContent = function () {\n var t = e(this.getTipElement());\n this.setElementContent(t.find(\".popover-header\"), this.getTitle());\n var n = this._getContent();\n \"function\" == typeof n && (n = n.call(this.element)), this.setElementContent(t.find(\".popover-body\"), n), t.removeClass(\"fade show\");\n }, r._getContent = function () {\n return this.element.getAttribute(\"data-content\") || this.config.content;\n }, r._cleanTipClass = function () {\n var t = e(this.getTipElement()),\n n = t.attr(\"class\").match(Z);\n null !== n && n.length > 0 && t.removeClass(n.join(\"\"));\n }, s._jQueryInterface = function (t) {\n return this.each(function () {\n var n = e(this).data(\"bs.popover\"),\n i = \"object\" == typeof t ? t : null;\n if ((n || !/dispose|hide/.test(t)) && (n || (n = new s(this, i), e(this).data(\"bs.popover\", n)), \"string\" == typeof t)) {\n if (\"undefined\" == typeof n[t]) throw new TypeError('No method named \"' + t + '\"');\n n[t]();\n }\n });\n }, o(s, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.0\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return tt;\n }\n }, {\n key: \"NAME\",\n get: function () {\n return J;\n }\n }, {\n key: \"DATA_KEY\",\n get: function () {\n return \"bs.popover\";\n }\n }, {\n key: \"Event\",\n get: function () {\n return nt;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function () {\n return \".bs.popover\";\n }\n }, {\n key: \"DefaultType\",\n get: function () {\n return et;\n }\n }]), s;\n }($);\n e.fn[J] = it._jQueryInterface, e.fn[J].Constructor = it, e.fn[J].noConflict = function () {\n return e.fn[J] = G, it._jQueryInterface;\n };\n var ot = \"scrollspy\",\n st = e.fn[ot],\n rt = {\n offset: 10,\n method: \"auto\",\n target: \"\"\n },\n at = {\n offset: \"number\",\n method: \"string\",\n target: \"(string|element)\"\n },\n lt = function () {\n function t(t, n) {\n var i = this;\n this._element = t, this._scrollElement = \"BODY\" === t.tagName ? window : t, this._config = this._getConfig(n), this._selector = this._config.target + \" .nav-link,\" + this._config.target + \" .list-group-item,\" + this._config.target + \" .dropdown-item\", this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, e(this._scrollElement).on(\"scroll.bs.scrollspy\", function (t) {\n return i._process(t);\n }), this.refresh(), this._process();\n }\n var n = t.prototype;\n return n.refresh = function () {\n var t = this,\n n = this._scrollElement === this._scrollElement.window ? \"offset\" : \"position\",\n i = \"auto\" === this._config.method ? n : this._config.method,\n o = \"position\" === i ? this._getScrollTop() : 0;\n this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), [].slice.call(document.querySelectorAll(this._selector)).map(function (t) {\n var n,\n s = c.getSelectorFromElement(t);\n if (s && (n = document.querySelector(s)), n) {\n var r = n.getBoundingClientRect();\n if (r.width || r.height) return [e(n)[i]().top + o, s];\n }\n return null;\n }).filter(function (t) {\n return t;\n }).sort(function (t, e) {\n return t[0] - e[0];\n }).forEach(function (e) {\n t._offsets.push(e[0]), t._targets.push(e[1]);\n });\n }, n.dispose = function () {\n e.removeData(this._element, \"bs.scrollspy\"), e(this._scrollElement).off(\".bs.scrollspy\"), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null;\n }, n._getConfig = function (t) {\n if (\"string\" != typeof (t = a(a({}, rt), \"object\" == typeof t && t ? t : {})).target && c.isElement(t.target)) {\n var n = e(t.target).attr(\"id\");\n n || (n = c.getUID(ot), e(t.target).attr(\"id\", n)), t.target = \"#\" + n;\n }\n return c.typeCheckConfig(ot, t, at), t;\n }, n._getScrollTop = function () {\n return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n }, n._getScrollHeight = function () {\n return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n }, n._getOffsetHeight = function () {\n return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n }, n._process = function () {\n var t = this._getScrollTop() + this._config.offset,\n e = this._getScrollHeight(),\n n = this._config.offset + e - this._getOffsetHeight();\n if (this._scrollHeight !== e && this.refresh(), t >= n) {\n var i = this._targets[this._targets.length - 1];\n this._activeTarget !== i && this._activate(i);\n } else {\n if (this._activeTarget && t < this._offsets[0] && this._offsets[0] > 0) return this._activeTarget = null, void this._clear();\n for (var o = this._offsets.length; o--;) {\n this._activeTarget !== this._targets[o] && t >= this._offsets[o] && (\"undefined\" == typeof this._offsets[o + 1] || t < this._offsets[o + 1]) && this._activate(this._targets[o]);\n }\n }\n }, n._activate = function (t) {\n this._activeTarget = t, this._clear();\n var n = this._selector.split(\",\").map(function (e) {\n return e + '[data-target=\"' + t + '\"],' + e + '[href=\"' + t + '\"]';\n }),\n i = e([].slice.call(document.querySelectorAll(n.join(\",\"))));\n i.hasClass(\"dropdown-item\") ? (i.closest(\".dropdown\").find(\".dropdown-toggle\").addClass(\"active\"), i.addClass(\"active\")) : (i.addClass(\"active\"), i.parents(\".nav, .list-group\").prev(\".nav-link, .list-group-item\").addClass(\"active\"), i.parents(\".nav, .list-group\").prev(\".nav-item\").children(\".nav-link\").addClass(\"active\")), e(this._scrollElement).trigger(\"activate.bs.scrollspy\", {\n relatedTarget: t\n });\n }, n._clear = function () {\n [].slice.call(document.querySelectorAll(this._selector)).filter(function (t) {\n return t.classList.contains(\"active\");\n }).forEach(function (t) {\n return t.classList.remove(\"active\");\n });\n }, t._jQueryInterface = function (n) {\n return this.each(function () {\n var i = e(this).data(\"bs.scrollspy\");\n if (i || (i = new t(this, \"object\" == typeof n && n), e(this).data(\"bs.scrollspy\", i)), \"string\" == typeof n) {\n if (\"undefined\" == typeof i[n]) throw new TypeError('No method named \"' + n + '\"');\n i[n]();\n }\n });\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.0\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return rt;\n }\n }]), t;\n }();\n e(window).on(\"load.bs.scrollspy.data-api\", function () {\n for (var t = [].slice.call(document.querySelectorAll('[data-spy=\"scroll\"]')), n = t.length; n--;) {\n var i = e(t[n]);\n lt._jQueryInterface.call(i, i.data());\n }\n }), e.fn[ot] = lt._jQueryInterface, e.fn[ot].Constructor = lt, e.fn[ot].noConflict = function () {\n return e.fn[ot] = st, lt._jQueryInterface;\n };\n var ct = e.fn.tab,\n ht = function () {\n function t(t) {\n this._element = t;\n }\n var n = t.prototype;\n return n.show = function () {\n var t = this;\n if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && e(this._element).hasClass(\"active\") || e(this._element).hasClass(\"disabled\"))) {\n var n,\n i,\n o = e(this._element).closest(\".nav, .list-group\")[0],\n s = c.getSelectorFromElement(this._element);\n if (o) {\n var r = \"UL\" === o.nodeName || \"OL\" === o.nodeName ? \"> li > .active\" : \".active\";\n i = (i = e.makeArray(e(o).find(r)))[i.length - 1];\n }\n var a = e.Event(\"hide.bs.tab\", {\n relatedTarget: this._element\n }),\n l = e.Event(\"show.bs.tab\", {\n relatedTarget: i\n });\n if (i && e(i).trigger(a), e(this._element).trigger(l), !l.isDefaultPrevented() && !a.isDefaultPrevented()) {\n s && (n = document.querySelector(s)), this._activate(this._element, o);\n var h = function () {\n var n = e.Event(\"hidden.bs.tab\", {\n relatedTarget: t._element\n }),\n o = e.Event(\"shown.bs.tab\", {\n relatedTarget: i\n });\n e(i).trigger(n), e(t._element).trigger(o);\n };\n n ? this._activate(n, n.parentNode, h) : h();\n }\n }\n }, n.dispose = function () {\n e.removeData(this._element, \"bs.tab\"), this._element = null;\n }, n._activate = function (t, n, i) {\n var o = this,\n s = (!n || \"UL\" !== n.nodeName && \"OL\" !== n.nodeName ? e(n).children(\".active\") : e(n).find(\"> li > .active\"))[0],\n r = i && s && e(s).hasClass(\"fade\"),\n a = function () {\n return o._transitionComplete(t, s, i);\n };\n if (s && r) {\n var l = c.getTransitionDurationFromElement(s);\n e(s).removeClass(\"show\").one(c.TRANSITION_END, a).emulateTransitionEnd(l);\n } else a();\n }, n._transitionComplete = function (t, n, i) {\n if (n) {\n e(n).removeClass(\"active\");\n var o = e(n.parentNode).find(\"> .dropdown-menu .active\")[0];\n o && e(o).removeClass(\"active\"), \"tab\" === n.getAttribute(\"role\") && n.setAttribute(\"aria-selected\", !1);\n }\n if (e(t).addClass(\"active\"), \"tab\" === t.getAttribute(\"role\") && t.setAttribute(\"aria-selected\", !0), c.reflow(t), t.classList.contains(\"fade\") && t.classList.add(\"show\"), t.parentNode && e(t.parentNode).hasClass(\"dropdown-menu\")) {\n var s = e(t).closest(\".dropdown\")[0];\n if (s) {\n var r = [].slice.call(s.querySelectorAll(\".dropdown-toggle\"));\n e(r).addClass(\"active\");\n }\n t.setAttribute(\"aria-expanded\", !0);\n }\n i && i();\n }, t._jQueryInterface = function (n) {\n return this.each(function () {\n var i = e(this),\n o = i.data(\"bs.tab\");\n if (o || (o = new t(this), i.data(\"bs.tab\", o)), \"string\" == typeof n) {\n if (\"undefined\" == typeof o[n]) throw new TypeError('No method named \"' + n + '\"');\n o[n]();\n }\n });\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.0\";\n }\n }]), t;\n }();\n e(document).on(\"click.bs.tab.data-api\", '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]', function (t) {\n t.preventDefault(), ht._jQueryInterface.call(e(this), \"show\");\n }), e.fn.tab = ht._jQueryInterface, e.fn.tab.Constructor = ht, e.fn.tab.noConflict = function () {\n return e.fn.tab = ct, ht._jQueryInterface;\n };\n var ut = e.fn.toast,\n dt = {\n animation: \"boolean\",\n autohide: \"boolean\",\n delay: \"number\"\n },\n ft = {\n animation: !0,\n autohide: !0,\n delay: 500\n },\n gt = function () {\n function t(t, e) {\n this._element = t, this._config = this._getConfig(e), this._timeout = null, this._setListeners();\n }\n var n = t.prototype;\n return n.show = function () {\n var t = this,\n n = e.Event(\"show.bs.toast\");\n if (e(this._element).trigger(n), !n.isDefaultPrevented()) {\n this._config.animation && this._element.classList.add(\"fade\");\n var i = function () {\n t._element.classList.remove(\"showing\"), t._element.classList.add(\"show\"), e(t._element).trigger(\"shown.bs.toast\"), t._config.autohide && (t._timeout = setTimeout(function () {\n t.hide();\n }, t._config.delay));\n };\n if (this._element.classList.remove(\"hide\"), c.reflow(this._element), this._element.classList.add(\"showing\"), this._config.animation) {\n var o = c.getTransitionDurationFromElement(this._element);\n e(this._element).one(c.TRANSITION_END, i).emulateTransitionEnd(o);\n } else i();\n }\n }, n.hide = function () {\n if (this._element.classList.contains(\"show\")) {\n var t = e.Event(\"hide.bs.toast\");\n e(this._element).trigger(t), t.isDefaultPrevented() || this._close();\n }\n }, n.dispose = function () {\n clearTimeout(this._timeout), this._timeout = null, this._element.classList.contains(\"show\") && this._element.classList.remove(\"show\"), e(this._element).off(\"click.dismiss.bs.toast\"), e.removeData(this._element, \"bs.toast\"), this._element = null, this._config = null;\n }, n._getConfig = function (t) {\n return t = a(a(a({}, ft), e(this._element).data()), \"object\" == typeof t && t ? t : {}), c.typeCheckConfig(\"toast\", t, this.constructor.DefaultType), t;\n }, n._setListeners = function () {\n var t = this;\n e(this._element).on(\"click.dismiss.bs.toast\", '[data-dismiss=\"toast\"]', function () {\n return t.hide();\n });\n }, n._close = function () {\n var t = this,\n n = function () {\n t._element.classList.add(\"hide\"), e(t._element).trigger(\"hidden.bs.toast\");\n };\n if (this._element.classList.remove(\"show\"), this._config.animation) {\n var i = c.getTransitionDurationFromElement(this._element);\n e(this._element).one(c.TRANSITION_END, n).emulateTransitionEnd(i);\n } else n();\n }, t._jQueryInterface = function (n) {\n return this.each(function () {\n var i = e(this),\n o = i.data(\"bs.toast\");\n if (o || (o = new t(this, \"object\" == typeof n && n), i.data(\"bs.toast\", o)), \"string\" == typeof n) {\n if (\"undefined\" == typeof o[n]) throw new TypeError('No method named \"' + n + '\"');\n o[n](this);\n }\n });\n }, o(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.5.0\";\n }\n }, {\n key: \"DefaultType\",\n get: function () {\n return dt;\n }\n }, {\n key: \"Default\",\n get: function () {\n return ft;\n }\n }]), t;\n }();\n e.fn.toast = gt._jQueryInterface, e.fn.toast.Constructor = gt, e.fn.toast.noConflict = function () {\n return e.fn.toast = ut, gt._jQueryInterface;\n }, t.Alert = d, t.Button = g, t.Carousel = E, t.Collapse = D, t.Dropdown = j, t.Modal = R, t.Popover = it, t.Scrollspy = lt, t.Tab = ht, t.Toast = gt, t.Tooltip = $, t.Util = c, Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n});","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","function _setPrototypeOf(t, e) {\n return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _setPrototypeOf(t, e);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport redirects from \"./redirects.json\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@reach/router\"\nimport { globalHistory } from \"@reach/router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\n// Convert to a map for faster lookup in maybeRedirect()\nconst redirectMap = redirects.reduce((map, redirect) => {\n map[redirect.fromPath] = redirect\n return map\n}, {})\n\nfunction maybeRedirect(pathname) {\n const redirect = redirectMap[pathname]\n\n if (redirect != null) {\n if (process.env.NODE_ENV !== `production`) {\n if (!loader.isPageNotFound(pathname)) {\n console.error(\n `The route \"${pathname}\" matches both a page and a redirect; this is probably not intentional.`\n )\n }\n }\n\n window.___replace(redirect.toPath)\n return true\n } else {\n return false\n }\n}\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n let { pathname } = parsePath(to)\n const redirect = redirectMap[pathname]\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath\n pathname = parsePath(to).pathname\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n console.log(`Site has changed on server. Reloading browser`)\n window.location = pathname\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => this._stateStorage.read(args),\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n\n // Check for initial page-load redirect\n maybeRedirect(window.location.pathname)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(prevProps) {\n if (this.props.location.href !== prevProps.location.href) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.location.href !== prevProps.location.href) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources: pageResources || loader.loadPageSync(location.pathname),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(location.pathname)\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (process.env.NODE_ENV !== `production` && !this.state.pageResources) {\n throw new Error(\n `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n )\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@reach/router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport domReady from \"@mikaelkristiansson/domready\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n
\n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). But\n // only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !== browserLoc.pathname &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath === `/404.html` ||\n pagePath.match(/^\\/404\\/?$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(__BASE_PATH__ + pagePath + browserLoc.search + browserLoc.hash, {\n replace: true,\n })\n }\n\n publicLoader.loadPage(browserLoc.pathname).then(page => {\n if (!page || page.status === PageResourceStatus.Error) {\n throw new Error(\n `page resources for ${browserLoc.pathname} not found. Not rendering React`\n )\n }\n\n window.___webpackCompilationHash = page.page.webpackCompilationHash\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = () => {SiteRoot}\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n ReactDOM.hydrate\n )[0]\n\n domReady(() => {\n renderer(\n ,\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : void 0,\n () => {\n apiRunner(`onInitialClientRender`)\n }\n )\n })\n })\n})\n","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context?.[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nfunction unstable_collectionGraphql() {\n // TODO: Strip this out of the component and throw error if it gets called\n return null\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n push, // TODO replace for v3\n replace, // TODO remove replace for v3\n navigateTo, // TODO: remove navigateTo for v3\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n // Experimental API\n unstable_collectionGraphql,\n}\n","\"use strict\";\n\nmodule.exports = Object.assign;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable jsx-a11y/anchor-has-content */\nimport React, { useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"invariant\";\nimport createContext from \"create-react-context\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\";\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\nvar LocationContext = createNamedContext(\"Location\");\n\n// sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(\n LocationContext.Consumer,\n null,\n function (context) {\n return context ? children(context) : React.createElement(\n LocationProvider,\n null,\n children\n );\n }\n );\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: { unlisten: null }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n\n return { navigate: navigate, location: location };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, { replace: true });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n\n history._onTransitionComplete();\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return { context: _this2.getContext() };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n\n return React.createElement(\n LocationContext.Provider,\n { value: context },\n typeof children === \"function\" ? children(context) : children || null\n );\n };\n\n return LocationProvider;\n}(React.Component);\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? LocationProvider.propTypes = {\n history: PropTypes.object.isRequired\n} : void 0;\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n\n return React.createElement(\n LocationContext.Provider,\n {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n },\n children\n );\n};\n////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\nvar BaseContext = createNamedContext(\"Base\", { baseuri: \"/\", basepath: \"/\" });\n\n////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\nvar Router = function Router(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (baseContext) {\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n }\n );\n }\n );\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n\n\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value;\n\n // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(\n Router,\n { location: location, primary: primary },\n element.props.children\n ) : undefined);\n\n // using 'div' for < 16.3 support\n var FocusWrapper = primary ? FocusHandler : component;\n // don't pass any props to 'div'\n var wrapperProps = primary ? _extends({ uri: uri, location: location, component: component }, domProps) : domProps;\n\n return React.createElement(\n BaseContext.Provider,\n { value: { baseuri: uri, basepath: basepath } },\n React.createElement(\n FocusWrapper,\n wrapperProps,\n clone\n )\n );\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
Not Found!
\n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\n\n\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(\n FocusContext.Consumer,\n null,\n function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n }\n );\n};\n\n// don't focus on initial render\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(\n Comp,\n _extends({\n style: _extends({ outline: \"none\" }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps),\n React.createElement(\n FocusContext.Provider,\n { value: this.requestFocus },\n this.props.children\n )\n );\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {};\n\n////////////////////////////////////////////////////////////////////////////////\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({ isCurrent: isCurrent, isPartiallyCurrent: isPartiallyCurrent, href: href, location: location }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n }\n );\n }\n );\n});\n\nLink.displayName = \"Link\";\n\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes = {\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n }\n\n // Support React < 16 with this hook\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), { replace: replace, state: state });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, { baseuri: baseuri }, props));\n }\n );\n }\n );\n};\n\nprocess.env.NODE_ENV !== \"production\" ? Redirect.propTypes = {\n from: PropTypes.string,\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n }\n );\n }\n );\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.location;\n};\n\nvar useNavigate = function useNavigate() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useNavigate hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.navigate;\n};\n\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var results = match(context.basepath, location.pathname);\n\n return results ? results.params : null;\n};\n\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props.default) {\n return { value: element, default: true };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n////////////////////////////////////////////////////////////////////////\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch , BaseContext };","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = path => {\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\nconst toPageResources = (pageData, component = null) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n }\n\n return {\n component,\n json: pageData.result,\n page,\n }\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404 page and it doesn't exist, we're done\n if (pagePath === `/404.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n return Promise.resolve(this.pageDataDb.get(pagePath))\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n return Promise.resolve(page.payload)\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n const componentChunkPromise = this.loadComponent(componentChunkName).then(\n component => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component) {\n finalResult.status = PageResourceStatus.Error\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component)\n }\n // undefined if final result is an error\n return pageResources\n }\n )\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n ).then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return Promise.all([componentChunkPromise, staticQueryBatchPromise]).then(\n ([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n return payload\n }\n )\n })\n\n inFlightPromise\n .then(response => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if loading page ran into errors\n loadPageSync(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath).payload\n return pageData\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return false\n }\n\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return false\n }\n\n const realPath = findPath(pagePath)\n // Todo make doPrefetch logic cacheable\n // eslint-disable-next-line consistent-return\n this.doPrefetch(realPath).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n })\n\n return true\n }\n\n doPrefetch(pagePath) {\n throw new Error(`doPrefetch not implemented`)\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths) {\n const loadComponent = chunkName =>\n asyncRequires.components[chunkName]\n ? asyncRequires.components[chunkName]()\n .then(preferDefault)\n // loader will handle the case when component is null\n .catch(() => null)\n : Promise.resolve()\n\n super(loadComponent, matchPaths)\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n })\n .then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n .then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(\n () => pageData\n )\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n // Deprecated methods. As far as we're aware, these are only used by\n // core gatsby and the offline plugin, however there's a very small\n // chance they're called by others.\n getResourcesForPathname: rawPath => {\n console.warn(\n `Warning: getResourcesForPathname is deprecated. Use loadPage instead`\n )\n return instance.i.loadPage(rawPath)\n },\n getResourcesForPathnameSync: rawPath => {\n console.warn(\n `Warning: getResourcesForPathnameSync is deprecated. Use loadPageSync instead`\n )\n return instance.i.loadPageSync(rawPath)\n },\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n loadPageSync: rawPath => instance.loadPageSync(rawPath),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n return instance.staticQueryDb\n}\n","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollContainer = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _router = require(\"@reach/router\");\n\n// TODO: In Gatsby v3, this file should be removed.\n// We are deprecating this in V2 in favor of useScrollRestoration\nvar propTypes = {\n scrollKey: _propTypes.default.string.isRequired,\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired\n};\nvar hasNotWarnedDeprecation = true;\n\nvar ScrollContainerImplementation = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollContainerImplementation, _React$Component);\n\n function ScrollContainerImplementation(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n\n if (process.env.NODE_ENV !== \"production\" && hasNotWarnedDeprecation) {\n hasNotWarnedDeprecation = false;\n console.log(\"Deprecation Warning:\\n\\n Gatsby is deprecated in Gatsby v2 and will be removed in Gatsby v3.\\n Update to the React hook alternative useScrollRestoration, like this:.\\n \\n ```\\n import React from 'react';\\n import { useScrollRestoration } from 'gatsby-react-router-scroll';\\n\\n function Component() {\\n const scrollRestoration = useScrollRestoration('\" + _this.props.scrollKey + \"');\\n\\n return
    ;\\n }\\n ```\\n \");\n }\n\n return _this;\n }\n\n var _proto = ScrollContainerImplementation.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n // eslint-disable-next-line react/no-find-dom-node\n var node = _reactDom.default.findDOMNode(this);\n\n var _this$props = this.props,\n location = _this$props.location,\n scrollKey = _this$props.scrollKey;\n if (!node) return;\n node.addEventListener(\"scroll\", function () {\n _this2.props.context.save(location, scrollKey, node.scrollTop);\n });\n var position = this.props.context.read(location, scrollKey);\n node.scrollTo(0, position || 0);\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return ScrollContainerImplementation;\n}(React.Component);\n\nvar ScrollContainer = function ScrollContainer(props) {\n return /*#__PURE__*/React.createElement(_router.Location, null, function (_ref) {\n var location = _ref.location;\n return /*#__PURE__*/React.createElement(_scrollHandler.ScrollContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(ScrollContainerImplementation, (0, _extends2.default)({}, props, {\n context: context,\n location: location\n }));\n });\n });\n};\n\nexports.ScrollContainer = ScrollContainer;\nScrollContainer.propTypes = propTypes;","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _gatsby = require(\"gatsby\");\n\nvar _getManifestPathname = _interopRequireDefault(require(\"./get-manifest-pathname\"));\n\n/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\n// when we don't have localisation in our manifest, we tree shake everything away\nif (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n var withPrefix = _gatsby.withAssetPrefix || _gatsby.withPrefix;\n\n exports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n var localize = pluginOptions.localize;\n var manifestFilename = (0, _getManifestPathname.default)(location.pathname, localize);\n var manifestEl = document.head.querySelector(\"link[rel=\\\"manifest\\\"]\");\n\n if (manifestEl) {\n manifestEl.setAttribute(\"href\", withPrefix(manifestFilename));\n }\n };\n}","/*\n Why commonjs and not ES imports/exports?\n\n This module is used to alias `create-react-context` package, but drop the the actual implementation part\n because Gatsby requires version of react that has implementatoin baked in.\n \n Package source is using ES modules:\n - https://github.com/jamiebuilds/create-react-context/blob/v0.3.0/src/index.js\n \n But to build this package `babel-plugin-add-module-exports` is used ( https://www.npmjs.com/package/babel-plugin-add-module-exports).\n Which result in both `module.exports` and `exports.default` being set to same thing.\n\n We don't use that babel plugin so we only have `exports.default`.\n\n This cause problems in various 3rd party react components that rely on `module.exports` being set.\n See https://github.com/gatsbyjs/gatsby/issues/23645 for example of it.\n \n Instead of adding same babel plugin we mimic output here. Adding babel plugin just for this would:\n a) unnecesairly slow down compilation for all other files (if we just apply it everywhere)\n b) or complicate babel-loader configuration with overwrite specifically for this file\n*/\n\nconst { createContext } = require(`react`)\n\nmodule.exports = createContext\nmodule.exports.default = createContext\n","function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const plugins = require(`./api-runner-browser-plugins`)\nconst {\n getResourcesForPathname,\n getResourcesForPathnameSync,\n getResourceURLsForPathname,\n loadPage,\n loadPageSync,\n} = require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n // Deprecated April 2019. Use `loadPageSync` instead\n args.getResourcesForPathnameSync = getResourcesForPathnameSync\n // Deprecated April 2019. Use `loadPage` instead\n args.getResourcesForPathname = getResourcesForPathname\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n"],"sourceRoot":""}