{"version":3,"sources":["webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/simple-swizzle/node_modules/is-arrayish/index.js","webpack:///./node_modules/fuse.js/dist/fuse.js","webpack:///./src/utils/index.ts","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/regenerator-runtime/runtime.js","webpack:///./assets/logo_mobile.inline.svg","webpack:///./node_modules/react-side-effect/lib/index.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/bezier-easing/src/index.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/bowser/es5.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/color/index.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/process/browser.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./src/components/seo.tsx","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/uuid/v4.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/color-convert/index.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/classnames/index.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/simple-swizzle/index.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/color-convert/conversions.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/shallowequal/index.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/react-helmet/lib/Helmet.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/color-convert/route.js","webpack:///./assets/logo_web.inline.svg","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/uuid/lib/bytesToUuid.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/uuid/v1.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/color-convert/node_modules/color-name/index.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/react-fast-compare/index.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/color-string/index.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/uuid/index.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/uuid/lib/rng-browser.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-util/es/raf.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-util/es/Dom/contains.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-util/es/Dom/findDOMNode.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-util/es/ref.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-util/es/Dom/addEventListener.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-util/es/Dom/canUseDom.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-util/es/Portal.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/es/utils/alignUtil.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/node_modules/rc-motion/es/util/motion.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/node_modules/rc-motion/es/hooks/useState.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/node_modules/rc-motion/es/hooks/useStepQueue.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/node_modules/rc-motion/es/interface.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/node_modules/rc-motion/es/hooks/useNextFrame.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/node_modules/rc-motion/es/hooks/useStatus.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/node_modules/rc-motion/es/hooks/useDomMotionEvents.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/node_modules/rc-motion/es/DomWrapper.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/node_modules/rc-motion/es/CSSMotion.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/node_modules/rc-motion/es/util/diff.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/node_modules/rc-motion/es/CSSMotionList.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/dom-align/dist-web/index.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/node_modules/rc-motion/es/index.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/es/utils/legacyUtil.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/es/Popup/Mask.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-align/node_modules/rc-util/es/ref.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-align/es/util.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-align/es/Align.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-align/es/hooks/useBuffer.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-align/node_modules/rc-util/es/Dom/contains.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-align/node_modules/rc-util/es/Dom/addEventListener.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-align/es/index.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/es/Popup/useVisibleStatus.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/es/Popup/PopupInner.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/es/Popup/useStretchStyle.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/es/Popup/index.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/es/context.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/rc-trigger/es/index.js","webpack:///./node_modules/react-helmet/lib/HelmetConstants.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/react-is/cjs/react-is.production.min.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/styled-components/dist/styled-components.browser.esm.js","webpack:///./assets/logo_not_found.inline.svg","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/react-is/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./assets/search.inline.svg","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/gatsby/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/color-name/index.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/compute-scroll-into-view/dist/index.module.js","webpack:////home/compiler/volc_gitrepo/web/targaryen_gitlab/node_modules/downshift/dist/downshift.esm.js","webpack:///./src/utils/browser.ts","webpack:///./src/utils/registSourceMarker.ts","webpack:///./src/components/MenuIcon/MenuIcon.tsx","webpack:///./src/components/MenuIcon/index.ts","webpack:///./src/components/Drawer/Drawer.tsx","webpack:///./src/components/Drawer/index.ts","webpack:///./src/components/HeaderNav/HeaderNav.tsx","webpack:///./src/components/Layout.tsx","webpack:///./node_modules/react-helmet/lib/HelmetUtils.js"],"names":["module","exports","obj","Array","isArray","length","splice","Function","Object","getOwnPropertyDescriptor","constructor","name","e","t","n","r","o","i","l","call","m","c","d","defineProperty","enumerable","get","Symbol","toStringTag","value","__esModule","create","bind","default","prototype","hasOwnProperty","p","s","toString","iterator","configurable","writable","key","a","location","distance","threshold","h","maxPatternLength","u","f","caseSensitive","v","tokenSeparator","g","findAllMatches","y","minMatchCharLength","k","S","id","x","b","keys","M","_","shouldSort","L","w","getFn","A","C","sortFn","I","score","O","tokenize","j","P","matchAllTokens","F","T","includeMatches","z","E","includeScore","K","$","verbose","J","TypeError","this","options","isCaseSensitive","setCollection","list","arguments","limit","_log","concat","_prepareSearchers","tokenSearchers","fullSearcher","_search","weights","results","_computeScore","_sort","slice","_format","split","push","_analyze","record","index","resultMap","weight","Error","arrayIndex","search","pattern","isMatch","output","matchedIndices","item","Math","min","nScore","sort","JSON","stringify","indexOf","matches","indices","console","log","apply","toLowerCase","patternAlphabet","RegExp","replace","match","errors","currentLocation","expectedLocation","lastIndexOf","floor","max","charAt","abs","host","isMobile","window","document","body","process","IS_MOBILE","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","method","arg","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","tryCatch","type","done","makeInvokeMethod","fn","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","resolve","reject","invoke","result","__await","then","unwrapped","error","undefined","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","object","reverse","pop","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","React","LogoMobileInline","props","createElement","defaultProps","_interopDefault","ex","React__default","shallowEqual","_defineProperty","canUseDOM","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","WrappedComponent","mountedInstances","emitChange","map","instance","SideEffect","_Component","subClass","superClass","peek","rewind","recordedState","_proto","shouldComponentUpdate","nextProps","componentWillMount","componentDidUpdate","componentWillUnmount","render","Component","getDisplayName","float32ArraySupported","Float32Array","aA1","aA2","B","calcBezier","aT","getSlope","LinearEasing","mX1","mY1","mX2","mY2","sampleValues","getTForX","aX","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","17","getFirstMatch","getSecondMatch","matchAndReturnConst","test","getWindowsVersionName","getMacOSVersionName","parseInt","getAndroidVersionName","getVersionPrecision","compareVersions","join","find","assign","getBrowserAlias","BROWSER_ALIASES_MAP","getBrowserTypeByAlias","BROWSER_MAP","18","ENGINE_MAP","OS_MAP","PLATFORMS_MAP","Bada","BlackBerry","Chrome","Chromium","Electron","Epiphany","Firefox","Focus","Generic","Googlebot","Maxthon","Opera","PhantomJS","Puffin","QupZilla","QQ","QQLite","Safari","Sailfish","SeaMonkey","Sleipnir","Swing","Tizen","Vivaldi","WeChat","Roku","amazon_silk","android","bada","blackberry","chrome","chromium","electron","epiphany","firefox","focus","generic","googlebot","google_search","ie","k_meleon","maxthon","edge","mz","naver","opera","opera_coast","phantomjs","puffin","qupzilla","qq","qqlite","safari","sailfish","samsung_internet","seamonkey","sleipnir","swing","tizen","uc","vivaldi","webos","wechat","yandex","tablet","mobile","desktop","tv","WindowsPhone","Windows","MacOS","iOS","Android","WebOS","Linux","ChromeOS","PlayStation4","EdgeHTML","Blink","Trident","Presto","Gecko","WebKit","90","getParser","parse","getResult","91","_ua","parsedResult","getUA","parseBrowser","browser","some","describe","getBrowser","getBrowserName","String","getBrowserVersion","version","getOS","os","parseOS","getOSName","getOSVersion","getPlatform","platform","parsePlatform","getPlatformType","getEngine","engine","parseEngine","getEngineName","satisfies","isOS","isPlatform","isBrowser","compareVersion","substr","isEngine","is","92","93","versionName","94","vendor","model","Number","95","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","arr","arrayLikeToArray","len","arr2","colorString","convert","_slice","skippedModels","hashedModelKeys","labels","limiters","Color","channels","color","valpha","newArr","zeroArray","alpha","hashedKeys","freeze","getset","channel","modifier","val","maxfn","assertArray","string","toJSON","places","to","rgb","args","round","percentString","percent","array","unitArray","unitObject","num","toFixed","roundTo","roundToPlace","red","green","blue","hue","saturationl","lightness","saturationv","chroma","gray","white","wblack","cyan","magenta","yellow","black","keyword","hex","rgbNumber","luminosity","lum","chan","pow","contrast","color2","lum1","lum2","level","contrastRatio","isDark","isLight","negate","lighten","ratio","hsl","darken","saturate","desaturate","whiten","hwb","blacken","grayscale","fade","opaquer","rotate","degrees","mix","mixinColor","color1","w1","w2","newAlpha","raw","_assertThisInitialized","ReferenceError","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","nextTick","title","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","from","SEO","site","useStaticQuery","metaDescription","description","siteMetadata","Helmet","defer","htmlAttributes","lang","language","titleTemplate","skipSuffix","defaultTitle","meta","content","property","rng","bytesToUuid","buf","offset","rnds","random","ii","MapShim","Map","getIndex","class_1","__entries__","set","delete","entries","has","clear","callback","ctx","_i","_a","global$1","global","requestAnimationFrame$1","requestAnimationFrame","Date","now","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","delay","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","throttle","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","filter","gatherActive","hasActive","broadcastActive","addEventListener","observe","attributes","childList","characterData","subtree","removeEventListener","disconnect","_b","propertyName","getInstance","instance_","defineConfigurable","target","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","styles","positions","reduce","size","position","getHTMLElementContentRect","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","getPaddings","horizPad","left","right","vertPad","top","bottom","width","height","boxSizing","documentElement","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","Constr","contentRect","DOMRectReadOnly","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","_this","observation","WeakMap","ResizeObserver","conversions","route","fromModel","routes","toModel","wrappedFn","conversion","wrapRounded","wrapRaw","classNames","classes","argType","inner","isArrayish","swizzle","cssKeywords","reverseKeywords","hsv","cmyk","xyz","lab","lch","ansi16","ansi256","hcg","apple","delta","rdif","gdif","bdif","diff","diffc","reversed","currentClosestKeyword","currentClosestDistance","Infinity","t1","t2","t3","smin","lmin","hi","q","sl","vmin","wh","bl","y2","x2","z2","atan2","PI","sqrt","hr","cos","sin","ansi","mult","rem","toUpperCase","substring","char","integer","mg","pure","objA","objB","compare","compareContext","ret","keysA","keysB","bHasOwnProperty","idx","valueA","valueB","_extends","source","_createClass","defineProperties","descriptor","Constructor","protoProps","staticProps","_react2","_interopRequireDefault","_propTypes2","_reactSideEffect2","_reactFastCompare2","_HelmetUtils","_HelmetConstants","_objectWithoutProperties","_classCallCheck","_possibleConstructorReturn","_class","_temp","HelmetSideEffects","handleClientStateChange","HelmetExport","_React$Component","HelmetWrapper","_inherits","mapNestedChildrenToProps","child","nestedChildren","TAG_NAMES","SCRIPT","NOSCRIPT","innerHTML","STYLE","cssText","flattenArrayTypeChildren","_ref","_extends2","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_ref2","_extends3","_extends4","newProps","TITLE","titleAttributes","BODY","bodyAttributes","HTML","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_extends5","warnOnInvalidChildren","mapChildrenToProps","children","_this2","Children","_child$props","childProps","convertReactPropstoHtmlAttributes","LINK","META","_props","propTypes","base","oneOfType","arrayOf","node","bool","encodeSpecialCharacters","link","noscript","onChangeClientState","func","script","style","mappedState","baseTag","linkTags","metaTags","noscriptTags","scriptTags","styleTags","renderStatic","deriveBFS","graph","models","parent","buildGraph","current","adjacents","adjacent","unshift","wrapConversion","path","cur","LogoWebInline","byteToHex","bth","_nodeId","_clockseq","_lastMSecs","_lastNSecs","clockseq","seedBytes","msecs","getTime","nsecs","dt","tl","tmh","keyList","hasProp","hasElementType","equal","arrA","arrB","dateA","dateB","regexpA","regexpB","$$typeof","message","number","warn","colorNames","reverseNames","cs","clamp","hexDouble","str","hexAlpha","i2","rgba","hsla","hwba","v1","v4","uuid","getRandomValues","crypto","msCrypto","rnds8","Uint8Array","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread2","getOwnPropertyDescriptors","_defineProperties","_getPrototypeOf","assertThisInitialized","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","Super","NewTarget","raf","caf","wrapperRaf","contains","root","findDOMNode","HTMLElement","cancelAnimationFrame","cancel","_typeof","fillRef","ref","addEventListenerWrap","eventType","cb","option","unstable_batchedUpdates","remove","canUseDom","didUpdate","getContainer","containerRef","initRef","_containerRef$current","_containerRef$current2","parentNode","removeChild","createPortal","isPointsEq","a1","a2","isAlignPoint","_slicedToArray","_s","_e","_arr","_n","_d","makePrefixMap","styleProp","eventName","prefixes","domSupport","win","vendorPrefixes","animationend","transitionend","animation","transition","_document$createEleme","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","internalAnimationEndName","internalTransitionEndName","supportTransition","animationEndName","transitionEndName","getTransitionName","transitionName","transitionType","useMountStatus","defaultValue","destroyRef","_useState2","setVal","STEP_QUEUE","step","_React$useState2","setStep","_useNextFrame2","nextFrameRef","cancelNextFrame","nextFrame","nextFrameId","isCanceled","useNextFrame","nextStep","doNext","useStatus","supportMotion","visible","getElement","_ref$motionEnter","motionEnter","_ref$motionAppear","motionAppear","_ref$motionLeave","motionLeave","motionDeadline","motionLeaveImmediately","onAppearPrepare","onEnterPrepare","onLeavePrepare","onAppearStart","onEnterStart","onLeaveStart","onAppearActive","onEnterActive","onLeaveActive","onAppearEnd","onEnterEnd","onLeaveEnd","onVisibleChanged","asyncVisible","setAsyncVisible","_useState4","status","setStatus","_useState6","setStyle","mountedRef","deadlineRef","cacheElementRef","getDomElement","activeRef","onInternalMotionEnd","event","canEnd","element","deadline","patchMotionEvents","callbackRef","removeMotionEvents","useDomMotionEvents","eventHandlers","_ref3","_ref4","_useStepQueue2","useStepQueue","newStep","onPrepare","_eventHandlers$step","startStep","active","nextStatus","isMounted","mergedStyle","DomWrapper","_super","config","transitionSupport","isSupportTransition","motionName","CSSMotion","_props$visible","_props$removeOnLeave","removeOnLeave","forceRender","leavedClassName","eventProps","nodeRef","wrapperNodeRef","_useStatus2","statusStep","statusStyle","mergedVisible","originRef","motionChildren","setNodeRef","_classNames","statusSuffix","className","display","excluded","objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","wrapKeyToObject","keyObj","parseKeys","diffKeys","prevKeys","currentKeys","currentIndex","currentLen","prevKeyObjects","currentKeyObjects","hit","currentKeyObj","duplicatedKeys","matchKey","MOTION_PROP_NAMES","CSSMotionList","keyEntities","removeKey","setState","entity","_this$props","component","_onVisibleChanged","restProps","motionProps","prop","changedVisible","parsedKeyObjects","prevEntity","_ref5","vendorPrefix","getMotion","prefixCls","motion","Mask","zIndex","mask","maskMotion","maskAnimation","maskTransitionName","_len","refs","_key","jsCssMap","Webkit","Moz","ms","getVendorPrefix","getTransformName","setTransitionProperty","transitionProperty","setTransform","transform","getComputedStyleX","matrix2d","matrix3d","forceRelayout","elem","originalStyle","offsetHeight","css","el","getScroll","getScrollLeft","getScrollTop","getOffset","pos","box","doc","docElem","getBoundingClientRect","clientLeft","clientTop","getClientPosition","parentWindow","isWindow","nodeType","_RE_NUM_NO_PX","RE_POS","LEFT","getOffsetDirection","useCssRight","useCssBottom","oppositeOffsetDirection","setLeftTop","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","old","preset","_dir","_off","setTransform$1","originalXY","getPropertyValue","matrix","getTransformXY","resultXY","xy","match2d","setTransformXY","each","isBorderBoxFn","computedStyle","rsLeft","pixelLeft","BOX_MODELS","swap","getPBMWidth","which","cssProp","domUtils","getParent","getWH","extra","viewportWidth","viewportHeight","docWidth","docHeight","borderBoxValue","isBorderBox","cssBoxValue","borderBoxValueOrIsBorderBox","refWin","documentElementProp","compatMode","cssShow","visibility","getWHIgnoreDisplay","_key2","offsetWidth","first","includeMargin","utils","getWindow","getDocument","ignoreShake","oriOffset","oLeft","oTop","tLeft","tTop","useCssTransform","setOffset","clone","overflow","getWindowScrollLeft","getWindowScrollTop","merge","getOffsetParent","positionStyle","nodeName","getParent$1","getVisibleRectForElement","alwaysByViewport","visibleRect","navigator","userAgent","originalPosition","scrollX","scrollY","documentWidth","scrollWidth","documentHeight","scrollHeight","bodyStyle","overflowX","innerWidth","overflowY","innerHeight","isAncestorFixed","maxVisibleWidth","maxVisibleHeight","getRegion","outerWidth","outerHeight","getAlignOffset","region","align","V","H","getElFuturePos","elRegion","refNodeRegion","points","targetOffset","p1","p2","isFailX","elFuturePos","isFailY","flip","reg","flipOffset","convertOffset","offsetLen","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","adjustX","adjustY","newPoints","newOffset","newTargetOffset","isCompleteFailX","_newPoints","_newOffset","_newTargetOffset","isCompleteFailY","isStillFailX","isStillFailY","_newPoints2","resizeWidth","resizeHeight","adjustForViewport","alignElement","refNode","targetRegion","isOutOfVisibleRect","tgtPoint","pageX","pageY","clientX","clientY","pointInView","__getOffsetParent","__getVisibleRectForElement","monitorResize","prevWidth","prevHeight","resizeObserver","_target$getBoundingCl","fixedWidth","fixedHeight","getPoint","point","RefAlign","forwardRef","disabled","onAlign","monitorWindowResize","_ref$monitorBufferTim","monitorBufferTime","cacheRef","useRef","childNode","only","forceAlignPropsRef","_useBuffer2","calledRef","timeoutRef","cancelTrigger","trigger","force","buffer","useBuffer","_forceAlignPropsRef$c","latestDisabled","latestTarget","activeElement","container","restoreFocus","_forceAlign","cancelForceAlign","resizeMonitor","sourceResizeMonitor","useEffect","winResizeRef","useImperativeHandle","forceAlign","isValidElement","cloneElement","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","StatusQueue","PopupInner","stretch","destroyPopupOnHide","getRootDomNode","getClassNameFromAlign","onMouseEnter","onMouseLeave","onMouseDown","onTouchStart","alignRef","elementRef","alignedClassName","setAlignedClassName","_useStretchStyle","useState","targetSize","setTargetSize","useMemo","sizeStyle","minHeight","minWidth","useStretchStyle","_useStretchStyle2","stretchStyle","measureStretchStyle","_useVisibleStatus","rafRef","cancelRaf","doMeasure","_callee","_context","useVisibleStatus","_useVisibleStatus2","goNextStatus","prepareResolveRef","_alignRef$current","onInternalAlign","popupDomNode","matchAlign","nextAlignedClassName","_prepareResolveRef$cu","onShowPrepare","originHandler","opacity","pointerEvents","alignDisabled","count","motionRef","motionClassName","motionStyle","mergedClassName","Popup","cloneProps","returnEmptyString","returnDocument","ALL_HANDLERS","generateTrigger","PortalComponent","Trigger","popupVisible","popupRef","createRef","triggerRef","mouseEnterDelay","fireEvents","delaySetPopupVisible","onMouseMove","setPoint","mouseLeaveDelay","onPopupMouseEnter","clearDelayTimer","onPopupMouseLeave","_this$popupRef$curren","relatedTarget","onFocus","isFocusToShow","focusTime","focusDelay","preClickTime","preTouchTime","onBlur","isBlurToHide","blurDelay","onContextMenu","preventDefault","setPopupVisible","onContextMenuClose","isContextMenuToShow","close","onClick","preTime","isClickToShow","isClickToHide","nextVisible","onPopupMouseDown","_this$context","hasPopupMouseDown","mouseDownTimeout","onDocumentClick","maskClosable","popupNode","getPopupDomNode","getTriggerDOMNode","domNode","getPopupClassNameFromAlign","popupPlacement","builtinPlacements","alignPoint","placements","placement","getAlignPopupClassName","getComponent","_this$props2","popupClassName","onPopupAlign","popupMotion","popupAnimation","popupTransitionName","popupStyle","popup","_this$state","getPopupAlign","mouseProps","isMouseEnterToShow","isMouseLeaveToHide","attachParent","popupContainer","attachId","mountNode","_this$props3","getPopupContainer","appendChild","handlePortalUpdate","prevPopupVisible","afterPopupVisibleChange","defaultPopupVisible","currentDocument","clickOutsideHandler","touchOutsideHandler","contextMenuOutsideHandler1","contextMenuOutsideHandler2","clearOutsideHandler","_this$popupRef$curren2","popupAlign","placementStr","getAlignFromPlacement","onPopupVisibleChange","delayS","delayTimer","childPros","_this$props4","action","showAction","_this$props5","_this$props6","hideAction","_this$props7","_this$props8","_this$props9","_this$props10","_this$popupRef$curren3","childCallback","_this$props11","autoDestroy","createTwoChains","childrenClassName","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","composeRef","portal","Provider","prevState","newState","contextType","ATTRIBUTE_NAMES","BASE","HEAD","REACT_TAG_MAP","VALID_TAG_NAMES","TAG_PROPERTIES","CHARSET","CSS_TEXT","HREF","HTTPEQUIV","INNER_HTML","ITEM_PROP","NAME","PROPERTY","REL","SRC","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","DEFAULT_TITLE","DEFER","ENCODE_SPECIAL_CHARACTERS","ON_CHANGE_CLIENT_STATE","TITLE_TEMPLATE","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","for","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","_objectWithoutPropertiesLoose","sourceKeys","N","styledComponentId","REACT_APP_SC_ATTR","SC_ATTR","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","R","D","head","childNodes","hasAttribute","nextSibling","setAttribute","insertBefore","createTextNode","sheet","styleSheets","ownerNode","insertRule","deleteRule","getRule","cssRules","nodes","textContent","rules","groupSizes","Uint32Array","tag","indexOfGroup","insertRules","clearGroup","getGroup","G","Y","W","registerName","U","trim","getTag","X","isServer","useCSSOMInjection","Z","gs","names","querySelectorAll","getAttribute","registerId","reconstructWithOptions","allocateGSInstance","hasNameForId","add","Set","clearNames","clearRules","clearTag","charCodeAt","Q","ee","te","ne","plugins","includes","use","hash","re","createContext","oe","Consumer","se","ae","ce","ue","le","stylisPlugins","disableCSSOMInjection","prefix","disableVendorPrefixes","de","inject","getName","he","pe","fe","me","ye","ve","ge","isReactComponent","Se","we","be","Ne","Ee","Ie","fromCharCode","Ce","Ae","Oe","Pe","staticRulesId","isStatic","componentId","baseHash","baseStyle","generateAndInjectStyles","De","theme","ke","xe","Ve","Me","ze","Ge","Fe","Be","Le","qe","parentComponentId","attrs","shouldForwardProp","componentStyle","foldedComponentIds","$as","as","withComponent","_foldedDefaultProps","He","withConfig","$e","createStyles","removeStyles","renderStyles","Ye","memo","We","Ue","_emitSheetCSS","getStyleTags","sealed","getStyleElement","dangerouslySetInnerHTML","__html","nonce","seal","collectStyles","interleaveWithNodeStream","Je","Xe","Ze","StyleSheet","masterSheet","LogoNotFoundInline","SearchInline","reactIs","REACT_STATICS","childContextTypes","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","getOwnPropertyNames","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","minLen","frameElement","idCounter","menuNode","scrollMode","block","inline","boundary","skipOverflowHiddenElements","scrollingElement","visualViewport","pageXOffset","pageYOffset","borderLeftWidth","borderTopWidth","borderRightWidth","borderBottomWidth","scrollLeft","scrollTop","isOrContainsNode","debounce","time","timeoutId","wrapper","callAllEventHandlers","_len2","fns","_len3","_key3","preventDownshiftDefault","nativeEvent","handleRefs","_len4","_key4","generateId","isOpen","resultCount","getState","isControlledProp","normalizeArrowKey","keyCode","getNextWrappingIndex","moveAmount","baseIndex","itemCount","getItemNodeFromIndex","circular","itemsLastIndex","newIndex","nonDisabledNewIndex","getNextNonDisabledIndex","currentElementNode","_index","targetWithinDownshift","downshiftElements","checkActiveElement","contextNode","cleanupStatus","getStatusDiv","documentProp","div","statusDiv","getElementById","border","clip","margin","padding","defaultStateValues","highlightedIndex","selectedItem","inputValue","getElementIds","labelId","menuId","getItemId","toggleButtonId","uniqueId","getItemIndex","items","capitalizeString","callOnChangeProps","changes","stateKey","propKey","handler","invokeOnChangeHandler","onStateChange","useEnhancedReducer","reducer","initialState","enhancedReducer","stateReduceLocal","stateReducer","_useReducer","dispatch","itemToString","getA11ySelectionMessage","selectionParameters","itemToStringLocal","scrollIntoView","circularNavigation","environment","getDefaultValue","defaultPropKey","getInitialValue","initialPropKey","getInitialState","getHighlightedIndexOnOpen","initialHighlightedIndex","defaultHighlightedIndex","isRequired","any","shape","getA11yStatusMessage","defaultProps$2","stateChangeTypes$2","InputKeyDownArrowDown","InputKeyDownArrowUp","InputKeyDownEscape","InputKeyDownHome","InputKeyDownEnd","InputKeyDownEnter","InputChange","InputBlur","MenuMouseLeave","ItemMouseMove","ItemClick","ToggleButtonClick","FunctionToggleMenu","FunctionOpenMenu","FunctionCloseMenu","FunctionSetHighlightedIndex","FunctionSelectItem","FunctionSetInputValue","FunctionReset","downshiftUseComboboxReducer","shiftKey","useCombobox","userProps","initialIsOpen","defaultIsOpen","_useEnhancedReducer","defaultInputValue","initialInputValue","getInitialState$1","_useEnhancedReducer$","dispatchWithoutProps","menuRef","itemRefs","inputRef","toggleButtonRef","comboboxRef","inputId","rest","shouldScroll","isInitialMount","mouseAndTouchTrackers","isMouseDown","isTouchMove","elementIds","highlightedItem","onMouseUp","onTouchMove","onTouchEnd","inputKeyDownHandlers","ArrowDown","ArrowUp","Home","End","Escape","Enter","inputHandleKeyDown","inputHandleChange","inputHandleBlur","menuHandleMouseLeave","toggleButtonHandleClick","getItemProps","_ref4$refKey","refKey","onPress","itemIndex","customClickHandler","itemNode","role","itemHandleMouseMove","itemHandleClick","getLabelProps","labelProps","htmlFor","getMenuProps","_ref2$refKey","getInputProps","_ref8","_eventHandlers","_ref9","onKeyDown","onChange","onInput","_ref9$refKey","onChangeText","inputNode","autoComplete","getComboboxProps","_ref10","_extends6","_ref11","_ref11$refKey","comboboxNode","getToggleButtonProps","_ref6","_ref7","_ref7$refKey","toggleButtonNode","tabIndex","toggleMenu","openMenu","closeMenu","setHighlightedIndex","newHighlightedIndex","setInputValue","newInputValue","selectItem","newSelectedItem","stateChangeTypes","PlatformType","ua","originBrowser","bowser","osName","isMac","isWin","metaKey","optionKey","isWeixin","Mobile","markRegistSource","registSourcePage","registSourceButton","registSourceId","sessionStorage","removeItem","setItem","MenuIcon","classnames","Drawer","onMaskClick","handleMaskClick","hide","show","PCHeaderNav","navList","Logo","sx","justifyContent","paddingBottom","backgroundImage","marginLeft","marginTop","mx","bg","marginRight","paddingTop","fontSize","nav","href","py","px","textAlign","borderRadius","cursor","label","MobileHeaderNav","setActive","handleIconClick","onNavClick","listRoute","hightlightWord","highlightStr","res","exec","SearchInput","text","setText","data","articles","fuse","Fuse","inputItems","setInputItems","combobox","fields","collection","onInputValueChange","frontmatter","html","fuseSearch","onSelectedItemChange","slug","navigate","searchResult","SearchIconContainerUI","SearchIconUI","SearchInputUI","placeholder","texts","searchPlaceholderText","selectedIndex","jsxArr","htmlContent","lastIndex","lineHeight","lineClamp","WebkitBoxOrient","WebkitLineClamp","background","alignItems","rel","pcListRoute","mobileListRoute","Layout","showLoading","setHtmlOverflow","componentDidMount","teaCustom","device_type","collectEvent","footerRender","ProblemListRender","indexBgImg","isIndexLayout","isNotFound","objectFit","objectPosition","src","onError","isHidden","htmlEle","querySelector","_objectAssign2","clock","encode","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","tagName","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","currentTime","cafPolyfill","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","_helmetCallback","commitTagChanges","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","getElementsByTagName","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","attribute","indexToSave","removeAttribute","tags","headElement","tagNodes","indexToDelete","newElement","styleSheet","existingTag","isEqualNode","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","initAttributes","_ref$title"],"mappings":"8EAAAA,EAAOC,QAAU,SAAoBC,GACnC,SAAKA,GAAsB,iBAARA,KAIZA,aAAeC,OAASA,MAAMC,QAAQF,IAAQA,EAAIG,QAAU,IAAMH,EAAII,kBAAkBC,UAAYC,OAAOC,yBAAyBP,EAAKA,EAAIG,OAAS,IAA+B,WAAzBH,EAAIQ,YAAYC,S,uBCIzHX,EAAOC,QAE1D,SAAUW,GACf,IAAIC,EAAI,GAER,SAASC,EAAEC,GACT,GAAIF,EAAEE,GAAI,OAAOF,EAAEE,GAAGd,QACtB,IAAIe,EAAIH,EAAEE,GAAK,CACbE,EAAGF,EACHG,GAAG,EACHjB,QAAS,IAEX,OAAOW,EAAEG,GAAGI,KAAKH,EAAEf,QAASe,EAAGA,EAAEf,QAASa,GAAIE,EAAEE,GAAI,EAAIF,EAAEf,QAG5D,OAAOa,EAAEM,EAAIR,EAAGE,EAAEO,EAAIR,EAAGC,EAAEQ,EAAI,SAAUV,EAAGC,EAAGE,GAC7CD,EAAEE,EAAEJ,EAAGC,IAAML,OAAOe,eAAeX,EAAGC,EAAG,CACvCW,YAAY,EACZC,IAAKV,KAEND,EAAEC,EAAI,SAAUH,GACjB,oBAAsBc,QAAUA,OAAOC,aAAenB,OAAOe,eAAeX,EAAGc,OAAOC,YAAa,CACjGC,MAAO,WACLpB,OAAOe,eAAeX,EAAG,aAAc,CACzCgB,OAAO,KAERd,EAAED,EAAI,SAAUD,EAAGC,GACpB,GAAI,EAAIA,IAAMD,EAAIE,EAAEF,IAAK,EAAIC,EAAG,OAAOD,EACvC,GAAI,EAAIC,GAAK,iBAAmBD,GAAKA,GAAKA,EAAEiB,WAAY,OAAOjB,EAC/D,IAAIG,EAAIP,OAAOsB,OAAO,MACtB,GAAIhB,EAAEC,EAAEA,GAAIP,OAAOe,eAAeR,EAAG,UAAW,CAC9CS,YAAY,EACZI,MAAOhB,IACL,EAAIC,GAAK,iBAAmBD,EAAG,IAAK,IAAII,KAAKJ,EAC/CE,EAAEQ,EAAEP,EAAGC,EAAG,SAAUH,GAClB,OAAOD,EAAEC,IACTkB,KAAK,KAAMf,IAEf,OAAOD,GACND,EAAEA,EAAI,SAAUF,GACjB,IAAIC,EAAID,GAAKA,EAAEiB,WAAa,WAC1B,OAAOjB,EAAEoB,SACP,WACF,OAAOpB,GAET,OAAOE,EAAEQ,EAAET,EAAG,IAAKA,GAAIA,GACtBC,EAAEE,EAAI,SAAUJ,EAAGC,GACpB,OAAOL,OAAOyB,UAAUC,eAAef,KAAKP,EAAGC,IAC9CC,EAAEqB,EAAI,GAAIrB,EAAEA,EAAEsB,EAAI,GA9ChB,CA+CL,CAAC,SAAUxB,EAAGC,GACdD,EAAEX,QAAU,SAAUW,GACpB,OAAOT,MAAMC,QAAUD,MAAMC,QAAQQ,GAAK,mBAAqBJ,OAAOyB,UAAUI,SAASlB,KAAKP,KAE/F,SAAUA,EAAGC,EAAGC,GACjB,SAASC,EAAEH,GACT,OAAQG,EAAI,mBAAqBW,QAAU,iBAAmBA,OAAOY,SAAW,SAAU1B,GACxF,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAK,mBAAqBc,QAAUd,EAAEF,cAAgBgB,QAAUd,IAAMc,OAAOO,UAAY,gBAAkBrB,IACjHA,GAGL,SAASI,EAAEJ,EAAGC,GACZ,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAER,OAAQS,IAAK,CACjC,IAAIC,EAAIF,EAAEC,GACVC,EAAES,WAAaT,EAAES,aAAc,EAAIT,EAAEwB,cAAe,EAAI,UAAWxB,IAAMA,EAAEyB,UAAW,GAAKhC,OAAOe,eAAeX,EAAGG,EAAE0B,IAAK1B,IAI/H,IAAIE,EAAIH,EAAE,GACN4B,EAAI5B,EAAE,GACNsB,EAAItB,EAAE,GACNO,EAAI,WACN,SAAST,EAAEC,EAAGC,GACZ,IAAIC,EAAID,EAAE6B,SACN3B,OAAI,IAAWD,EAAI,EAAIA,EACvBE,EAAIH,EAAE8B,SACNR,OAAI,IAAWnB,EAAI,IAAMA,EACzBI,EAAIP,EAAE+B,UACNC,OAAI,IAAWzB,EAAI,GAAKA,EACxBH,EAAIJ,EAAEiC,iBACNC,OAAI,IAAW9B,EAAI,GAAKA,EACxB+B,EAAInC,EAAEoC,cACN5B,OAAI,IAAW2B,GAAKA,EACpBE,EAAIrC,EAAEsC,eACNjB,OAAI,IAAWgB,EAAI,MAAQA,EAC3BE,EAAIvC,EAAEwC,eACNC,OAAI,IAAWF,GAAKA,EACpBjC,EAAIN,EAAE0C,mBACNC,OAAI,IAAWrC,EAAI,EAAIA,EACvBsC,EAAI5C,EAAE6C,GACNC,OAAI,IAAWF,EAAI,KAAOA,EAC1BG,EAAI/C,EAAEgD,KACNC,OAAI,IAAWF,EAAI,GAAKA,EACxBG,EAAIlD,EAAEmD,WACNC,OAAI,IAAWF,GAAKA,EACpBG,EAAIrD,EAAEsD,MACNC,OAAI,IAAWF,EAAIzB,EAAIyB,EACvBG,EAAIxD,EAAEyD,OACNC,OAAI,IAAWF,EAAI,SAAU1D,EAAGC,GAClC,OAAOD,EAAE6D,MAAQ5D,EAAE4D,OACjBH,EACAI,EAAI5D,EAAE6D,SACNC,OAAI,IAAWF,GAAKA,EACpBG,EAAI/D,EAAEgE,eACNC,OAAI,IAAWF,GAAKA,EACpBG,EAAIlE,EAAEmE,eACNC,OAAI,IAAWF,GAAKA,EACpBG,EAAIrE,EAAEsE,aACNC,OAAI,IAAWF,GAAKA,EACpBG,EAAIxE,EAAEyE,QACNC,OAAI,IAAWF,GAAKA,GACvB,SAAU1E,EAAGC,GACZ,KAAMD,aAAaC,GAAI,MAAM,IAAI4E,UAAU,qCAD5C,CAECC,KAAM9E,GAAI8E,KAAKC,QAAU,CACzBhD,SAAU3B,EACV4B,SAAUR,EACVS,UAAWC,EACXC,iBAAkBC,EAClB4C,gBAAiBtE,EACjB8B,eAAgBjB,EAChBmB,eAAgBC,EAChBC,mBAAoBC,EACpBE,GAAIC,EACJE,KAAMC,EACNkB,eAAgBC,EAChBE,aAAcC,EACdpB,WAAYC,EACZE,MAAOC,EACPE,OAAQC,EACRe,QAASC,EACTb,SAAUC,EACVE,eAAgBC,GACfW,KAAKG,cAAchF,GAGxB,IAAIA,EAAGC,EACP,OAAOD,EAAID,GAAIE,EAAI,CAAC,CAClB2B,IAAK,gBACLb,MAAO,SAAehB,GACpB,OAAO8E,KAAKI,KAAOlF,EAAGA,IAEvB,CACD6B,IAAK,SACLb,MAAO,SAAehB,GACpB,IAAIC,EAAIkF,UAAU1F,OAAS,QAAK,IAAW0F,UAAU,GAAKA,UAAU,GAAK,CACvEC,OAAO,GAGTN,KAAKO,KAAK,+BAA+BC,OAAOtF,EAAG,MAEnD,IAAIE,EAAI4E,KAAKS,kBAAkBvF,GAC3BG,EAAID,EAAEsF,eACNpF,EAAIF,EAAEuF,aACNpF,EAAIyE,KAAKY,QAAQvF,EAAGC,GACpB0B,EAAIzB,EAAEsF,QACNnE,EAAInB,EAAEuF,QAEV,OAAOd,KAAKe,cAAc/D,EAAGN,GAAIsD,KAAKC,QAAQ1B,YAAcyB,KAAKgB,MAAMtE,GAAIvB,EAAEmF,OAAS,iBAAmBnF,EAAEmF,QAAU5D,EAAIA,EAAEuE,MAAM,EAAG9F,EAAEmF,QAASN,KAAKkB,QAAQxE,KAE7J,CACDK,IAAK,oBACLb,MAAO,WACL,IAAIhB,EAAImF,UAAU1F,OAAS,QAAK,IAAW0F,UAAU,GAAKA,UAAU,GAAK,GACrElF,EAAI,GACR,GAAI6E,KAAKC,QAAQhB,SAAU,IAAK,IAAI7D,EAAIF,EAAEiG,MAAMnB,KAAKC,QAAQvC,gBAAiBrC,EAAI,EAAGC,EAAIF,EAAET,OAAQU,EAAIC,EAAGD,GAAK,EAC7GF,EAAEiG,KAAK,IAAI7F,EAAEH,EAAEC,GAAI2E,KAAKC,UAE1B,MAAO,CACLS,eAAgBvF,EAChBwF,aAAc,IAAIpF,EAAEL,EAAG8E,KAAKC,YAG/B,CACDlD,IAAK,UACLb,MAAO,WACL,IAAIhB,EAAImF,UAAU1F,OAAS,QAAK,IAAW0F,UAAU,GAAKA,UAAU,GAAK,GACrElF,EAAIkF,UAAU1F,OAAS,EAAI0F,UAAU,QAAK,EAC1CjF,EAAI4E,KAAKI,KACT/E,EAAI,GACJC,EAAI,GAER,GAAI,iBAAmBF,EAAE,GAAI,CAC3B,IAAK,IAAIG,EAAI,EAAGyB,EAAI5B,EAAET,OAAQY,EAAIyB,EAAGzB,GAAK,EACxCyE,KAAKqB,SAAS,CACZtE,IAAK,GACLb,MAAOd,EAAEG,GACT+F,OAAQ/F,EACRgG,MAAOhG,GACN,CACDiG,UAAWnG,EACXyF,QAASxF,EACToF,eAAgBxF,EAChByF,aAAcxF,IAIlB,MAAO,CACL0F,QAAS,KACTC,QAASxF,GAIb,IAAK,IAAIoB,EAAI,GAAIf,EAAI,EAAGyB,EAAIhC,EAAET,OAAQgB,EAAIyB,EAAGzB,GAAK,EAChD,IAAK,IAAIH,EAAIJ,EAAEO,GAAI2B,EAAI,EAAGC,EAAIyC,KAAKC,QAAQ7B,KAAKzD,OAAQ2C,EAAIC,EAAGD,GAAK,EAAG,CACrE,IAAI1B,EAAIoE,KAAKC,QAAQ7B,KAAKd,GAE1B,GAAI,iBAAmB1B,EAAG,CACxB,GAAIc,EAAEd,EAAEX,MAAQ,CACdwG,OAAQ,EAAI7F,EAAE6F,QAAU,GACvB7F,EAAE6F,QAAU,GAAK7F,EAAE6F,OAAS,EAAG,MAAM,IAAIC,MAAM,qCAClD9F,EAAIA,EAAEX,UACDyB,EAAEd,GAAK,CACZ6F,OAAQ,GAGVzB,KAAKqB,SAAS,CACZtE,IAAKnB,EACLM,MAAO8D,KAAKC,QAAQvB,MAAMlD,EAAGI,GAC7B0F,OAAQ9F,EACR+F,MAAO5F,GACN,CACD6F,UAAWnG,EACXyF,QAASxF,EACToF,eAAgBxF,EAChByF,aAAcxF,IAKpB,MAAO,CACL0F,QAASnE,EACToE,QAASxF,KAGZ,CACDyB,IAAK,WACLb,MAAO,SAAehB,EAAGC,GACvB,IAAIC,EAAIF,EAAE6B,IACN1B,EAAIH,EAAEyG,WACNrG,OAAI,IAAWD,GAAK,EAAIA,EACxBE,EAAIL,EAAEgB,MACNc,EAAI9B,EAAEoG,OACN3F,EAAIT,EAAEqG,MACNnE,EAAIjC,EAAEuF,eACNlF,OAAI,IAAW4B,EAAI,GAAKA,EACxBE,EAAInC,EAAEwF,aACNpD,OAAI,IAAWD,EAAI,GAAKA,EACxB1B,EAAIT,EAAEqG,UACN/D,OAAI,IAAW7B,EAAI,GAAKA,EACxBa,EAAItB,EAAE2F,QACNnD,OAAI,IAAWlB,EAAI,GAAKA,EAE5B,GAAI,MAAQlB,EAAG,CACb,IAAIsC,GAAI,EACJnC,GAAK,EACLqC,EAAI,EAER,GAAI,iBAAmBxC,EAAG,CACxByE,KAAKO,KAAK,UAAUC,OAAO,KAAOpF,EAAI,IAAMA,IAE5C,IAAI4C,EAAIT,EAAEqE,OAAOrG,GAEjB,GAAIyE,KAAKO,KAAK,eAAeC,OAAOjF,EAAG,cAAciF,OAAOxC,EAAEe,QAASiB,KAAKC,QAAQhB,SAAU,CAC5F,IAAK,IAAIf,EAAI3C,EAAE4F,MAAMnB,KAAKC,QAAQvC,gBAAiBS,EAAI,GAAIE,EAAI,EAAGA,EAAI7C,EAAEb,OAAQ0D,GAAK,EAAG,CACtF,IAAIC,EAAI9C,EAAE6C,GAEV2B,KAAKO,KAAK,eAAeC,OAAOlC,EAAEuD,QAAS,MAE3C,IAAK,IAAIrD,GAAI,EAAIC,EAAI,EAAGA,EAAIP,EAAEvD,OAAQ8D,GAAK,EAAG,CAC5C,IAAIE,EAAIT,EAAEO,GACNG,EAAIN,EAAEsD,OAAOjD,GACbG,EAAI,GAERF,EAAEkD,SAAWhD,EAAEH,GAAKC,EAAEG,MAAOlB,GAAI,EAAIW,GAAI,EAAIL,EAAEiD,KAAKxC,EAAEG,SAAWD,EAAEH,GAAK,EAAGqB,KAAKC,QAAQb,gBAAkBjB,EAAEiD,KAAK,IAAKpB,KAAKO,KAAK,WAAWC,OAAO7B,EAAG,cAAc6B,OAAO1B,EAAEH,KAG9KH,IAAMT,GAAK,GAGbrC,EAAIyC,EAAE,GAEN,IAAK,IAAIa,EAAIb,EAAExD,OAAQuE,EAAI,EAAGA,EAAIF,EAAGE,GAAK,EACxCxD,GAAKyC,EAAEe,GAGTxD,GAAKsD,EAAGgB,KAAKO,KAAK,uBAAwB7E,GAG5C,IAAIyD,EAAInB,EAAEe,MACVrD,GAAK,IAAMyD,GAAKA,EAAIzD,GAAK,GAAIsE,KAAKO,KAAK,iBAAkBpB,GACzD,IAAIE,GAAKW,KAAKC,QAAQhB,WAAae,KAAKC,QAAQb,gBAAkBrB,GAAKvC,EAAEb,OAEzE,GAAIqF,KAAKO,KAAK,oBAAoBC,OAAOnB,KAAMxB,GAAKG,EAAE8D,UAAYzC,EAAG,CACnE,IAAIC,EAAI7B,EAAE9B,GACV2D,EAAIA,EAAEyC,OAAOX,KAAK,CAChBrE,IAAK3B,EACLuG,WAAYrG,EACZY,MAAOX,EACPwD,MAAOI,EACP6C,eAAgBhE,EAAEgE,kBACdvE,EAAE9B,GAAK,CACXsG,KAAMjF,EACN+E,OAAQ,CAAC,CACPhF,IAAK3B,EACLuG,WAAYrG,EACZY,MAAOX,EACPwD,MAAOI,EACP6C,eAAgBhE,EAAEgE,kBAEnBrE,EAAEyD,KAAK3D,EAAE9B,WAET,GAAIe,EAAEnB,GAAI,IAAK,IAAIiE,EAAI,EAAGC,EAAIlE,EAAEZ,OAAQ6E,EAAIC,EAAGD,GAAK,EACzDQ,KAAKqB,SAAS,CACZtE,IAAK3B,EACLuG,WAAYnC,EACZtD,MAAOX,EAAEiE,GACT8B,OAAQtE,EACRuE,MAAO5F,GACN,CACD6F,UAAW/D,EACXqD,QAASnD,EACT+C,eAAgBlF,EAChBmF,aAAcpD,OAKrB,CACDR,IAAK,gBACLb,MAAO,SAAehB,EAAGC,GACvB6E,KAAKO,KAAK,0BAEV,IAAK,IAAInF,EAAI,EAAGC,EAAIF,EAAER,OAAQS,EAAIC,EAAGD,GAAK,EAAG,CAC3C,IAAK,IAAIE,EAAIH,EAAEC,GAAG2G,OAAQxG,EAAID,EAAEX,OAAQqC,EAAI,EAAGN,EAAI,EAAGf,EAAI,EAAGA,EAAIJ,EAAGI,GAAK,EAAG,CAC1E,IAAIyB,EAAIlC,EAAIA,EAAEI,EAAEK,GAAGoB,KAAK0E,OAAS,EAC7BjG,GAAK,IAAM4B,EAAI9B,EAAEK,GAAGoD,MAAQzD,EAAEK,GAAGoD,OAAS,MAAQ3B,EACtD,IAAMA,EAAIV,EAAIwF,KAAKC,IAAIzF,EAAGlB,IAAMF,EAAEK,GAAGyG,OAAS5G,EAAGwB,GAAKxB,GAGxDL,EAAEC,GAAG2D,MAAQ,IAAMrC,EAAIM,EAAIN,EAAGsD,KAAKO,KAAKpF,EAAEC,OAG7C,CACD2B,IAAK,QACLb,MAAO,SAAehB,GACpB8E,KAAKO,KAAK,mBAAoBrF,EAAEmH,KAAKrC,KAAKC,QAAQpB,UAEnD,CACD9B,IAAK,UACLb,MAAO,SAAehB,GACpB,IAAIC,EAAI,GAER,GAAI6E,KAAKC,QAAQJ,QAAS,CACxB,IAAIzE,EAAI,GACR4E,KAAKO,KAAK,kBAAmB+B,KAAKC,UAAUrH,GAAG,SAAUA,EAAGC,GAC1D,GAAI,WAAaE,EAAEF,IAAM,OAASA,EAAG,CACnC,IAAK,IAAMC,EAAEoH,QAAQrH,GAAI,OACzBC,EAAEgG,KAAKjG,GAGT,OAAOA,MACJC,EAAI,KAGX,IAAIE,EAAI,GACR0E,KAAKC,QAAQV,gBAAkBjE,EAAE8F,MAAK,SAAUlG,EAAGC,GACjD,IAAIC,EAAIF,EAAE6G,OACV5G,EAAEsH,QAAU,GAEZ,IAAK,IAAIpH,EAAI,EAAGC,EAAIF,EAAET,OAAQU,EAAIC,EAAGD,GAAK,EAAG,CAC3C,IAAIE,EAAIH,EAAEC,GAEV,GAAI,IAAME,EAAEyG,eAAerH,OAAQ,CACjC,IAAIqC,EAAI,CACN0F,QAASnH,EAAEyG,eACX9F,MAAOX,EAAEW,OAEXX,EAAEwB,MAAQC,EAAED,IAAMxB,EAAEwB,KAAMxB,EAAEiB,eAAe,eAAiBjB,EAAEoG,YAAc,IAAM3E,EAAE2E,WAAapG,EAAEoG,YAAaxG,EAAEsH,QAAQrB,KAAKpE,QAGjIgD,KAAKC,QAAQP,cAAgBpE,EAAE8F,MAAK,SAAUlG,EAAGC,GACnDA,EAAE4D,MAAQ7D,EAAE6D,SAGd,IAAK,IAAIxD,EAAI,EAAGyB,EAAI9B,EAAEP,OAAQY,EAAIyB,EAAGzB,GAAK,EAAG,CAC3C,IAAImB,EAAIxB,EAAEK,GAEV,GAAIyE,KAAKC,QAAQhC,KAAOvB,EAAEuF,KAAOjC,KAAKC,QAAQvB,MAAMhC,EAAEuF,KAAMjC,KAAKC,QAAQhC,IAAI,IAAK3C,EAAEX,OAAQ,CAC1F,IAAK,IAAIgB,EAAI,CACXsG,KAAMvF,EAAEuF,MACP7E,EAAI,EAAG5B,EAAIF,EAAEX,OAAQyC,EAAI5B,EAAG4B,GAAK,EAClC9B,EAAE8B,GAAGV,EAAGf,GAGVR,EAAEiG,KAAKzF,QACFR,EAAEiG,KAAK1E,EAAEuF,MAGlB,OAAO9G,IAER,CACD4B,IAAK,OACLb,MAAO,WACL,IAAIhB,EACJ8E,KAAKC,QAAQJ,UAAY3E,EAAIyH,SAASC,IAAIC,MAAM3H,EAAGmF,gBAEhD/E,EAAEH,EAAEoB,UAAWnB,GAAkBF,EA/UlC,GAkVRA,EAAEX,QAAUoB,GACX,SAAUT,EAAGC,EAAGC,GACjB,SAASC,EAAEH,EAAGC,GACZ,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAER,OAAQS,IAAK,CACjC,IAAIC,EAAIF,EAAEC,GACVC,EAAES,WAAaT,EAAES,aAAc,EAAIT,EAAEwB,cAAe,EAAI,UAAWxB,IAAMA,EAAEyB,UAAW,GAAKhC,OAAOe,eAAeX,EAAGG,EAAE0B,IAAK1B,IAI/H,IAAIC,EAAIF,EAAE,GACNG,EAAIH,EAAE,GACN4B,EAAI5B,EAAE,GACNsB,EAAI,WACN,SAASxB,EAAEC,EAAGC,GACZ,IAAIC,EAAID,EAAE6B,SACN3B,OAAI,IAAWD,EAAI,EAAIA,EACvBE,EAAIH,EAAE8B,SACNR,OAAI,IAAWnB,EAAI,IAAMA,EACzBI,EAAIP,EAAE+B,UACNC,OAAI,IAAWzB,EAAI,GAAKA,EACxBH,EAAIJ,EAAEiC,iBACNC,OAAI,IAAW9B,EAAI,GAAKA,EACxB+B,EAAInC,EAAE8E,gBACNtE,OAAI,IAAW2B,GAAKA,EACpBE,EAAIrC,EAAEsC,eACNjB,OAAI,IAAWgB,EAAI,MAAQA,EAC3BE,EAAIvC,EAAEwC,eACNC,OAAI,IAAWF,GAAKA,EACpBjC,EAAIN,EAAE0C,mBACNC,OAAI,IAAWrC,EAAI,EAAIA,GAC1B,SAAUR,EAAGC,GACZ,KAAMD,aAAaC,GAAI,MAAM,IAAI4E,UAAU,qCAD5C,CAECC,KAAM9E,GAAI8E,KAAKC,QAAU,CACzBhD,SAAU3B,EACV4B,SAAUR,EACVS,UAAWC,EACXC,iBAAkBC,EAClB4C,gBAAiBtE,EACjB8B,eAAgBjB,EAChBmB,eAAgBC,EAChBC,mBAAoBC,GACnBiC,KAAK6B,QAAU7B,KAAKC,QAAQC,gBAAkB/E,EAAIA,EAAE2H,cAAe9C,KAAK6B,QAAQlH,QAAU2C,IAAM0C,KAAK+C,gBAAkB/F,EAAEgD,KAAK6B,UAGnI,IAAI1G,EAAGC,EACP,OAAOD,EAAID,GAAIE,EAAI,CAAC,CAClB2B,IAAK,SACLb,MAAO,SAAehB,GACpB,GAAI8E,KAAKC,QAAQC,kBAAoBhF,EAAIA,EAAE4H,eAAgB9C,KAAK6B,UAAY3G,EAAG,MAAO,CACpF4G,SAAS,EACT/C,MAAO,EACPiD,eAAgB,CAAC,CAAC,EAAG9G,EAAEP,OAAS,KAElC,IAAIQ,EAAI6E,KAAKC,QACT7E,EAAID,EAAEkC,iBACNhC,EAAIF,EAAEuC,eACV,GAAIsC,KAAK6B,QAAQlH,OAASS,EAAG,OAAOE,EAAEJ,EAAG8E,KAAK6B,QAASxG,GACvD,IAAI2B,EAAIgD,KAAKC,QACTvD,EAAIM,EAAEC,SACNtB,EAAIqB,EAAEE,SACNE,EAAIJ,EAAEG,UACN3B,EAAIwB,EAAEY,eACNN,EAAIN,EAAEc,mBACV,OAAOvC,EAAEL,EAAG8E,KAAK6B,QAAS7B,KAAK+C,gBAAiB,CAC9C9F,SAAUP,EACVQ,SAAUvB,EACVwB,UAAWC,EACXQ,eAAgBpC,EAChBsC,mBAAoBR,SAGnBjC,EAAEF,EAAEoB,UAAWnB,GAAkBF,EA3DlC,GA8DRA,EAAEX,QAAUmC,GACX,SAAUxB,EAAGC,GACd,IAAIC,EAAI,sCAERF,EAAEX,QAAU,SAAUW,EAAGC,GACvB,IAAIE,EAAIgF,UAAU1F,OAAS,QAAK,IAAW0F,UAAU,GAAKA,UAAU,GAAK,MACrE/E,EAAI,IAAI0H,OAAO7H,EAAE8H,QAAQ7H,EAAG,QAAQ6H,QAAQ5H,EAAG,MAC/CE,EAAIL,EAAEgI,MAAM5H,GACZ0B,IAAMzB,EACNmB,EAAI,GACR,GAAIM,EAAG,IAAK,IAAIrB,EAAI,EAAGyB,EAAI7B,EAAEZ,OAAQgB,EAAIyB,EAAGzB,GAAK,EAAG,CAClD,IAAIH,EAAID,EAAEI,GACVe,EAAE0E,KAAK,CAAClG,EAAEsH,QAAQhH,GAAIA,EAAEb,OAAS,IAEnC,MAAO,CACLoE,MAAO/B,EAAI,GAAK,EAChB8E,QAAS9E,EACTgF,eAAgBtF,KAGnB,SAAUxB,EAAGC,EAAGC,GACjB,IAAIC,EAAID,EAAE,GACNE,EAAIF,EAAE,GAEVF,EAAEX,QAAU,SAAUW,EAAGC,EAAGC,EAAGG,GAC7B,IAAK,IAAIyB,EAAIzB,EAAE0B,SAAUP,OAAI,IAAWM,EAAI,EAAIA,EAAGrB,EAAIJ,EAAE2B,SAAUE,OAAI,IAAWzB,EAAI,IAAMA,EAAGH,EAAID,EAAE4B,UAAWG,OAAI,IAAW9B,EAAI,GAAKA,EAAG+B,EAAIhC,EAAEqC,eAAgBhC,OAAI,IAAW2B,GAAKA,EAAGE,EAAIlC,EAAEuC,mBAAoBrB,OAAI,IAAWgB,EAAI,EAAIA,EAAGE,EAAIjB,EAAGmB,EAAI3C,EAAEP,OAAQe,EAAI4B,EAAGS,EAAI7C,EAAEsH,QAAQrH,EAAGwC,GAAIK,EAAI7C,EAAER,OAAQuD,EAAI,GAAIC,EAAI,EAAGA,EAAIN,EAAGM,GAAK,EACpUD,EAAEC,GAAK,EAGT,IAAK,IAAMJ,EAAG,CACZ,IAAIM,EAAIhD,EAAEF,EAAG,CACXgI,OAAQ,EACRC,gBAAiBrF,EACjBsF,iBAAkB1F,EAClBT,SAAUE,IAGZ,GAAI1B,EAAIwG,KAAKC,IAAI9D,EAAG3C,IAAK,KAAOqC,EAAI7C,EAAEoI,YAAYnI,EAAGwC,EAAIK,IAAK,CAC5D,IAAIM,EAAIjD,EAAEF,EAAG,CACXgI,OAAQ,EACRC,gBAAiBrF,EACjBsF,iBAAkB1F,EAClBT,SAAUE,IAGZ1B,EAAIwG,KAAKC,IAAI7D,EAAG5C,IAIpBqC,GAAK,EAEL,IAAK,IAAIS,EAAI,GAAIC,EAAI,EAAGE,EAAIX,EAAIH,EAAGe,EAAI,IAAMZ,GAAK,GAAKA,EAAI,EAAI,IAAKc,EAAI,EAAGA,EAAId,EAAGc,GAAK,EAAG,CACxF,IAAK,IAAIE,EAAI,EAAGE,EAAIP,EAAGK,EAAIE,GACzB7D,EAAEF,EAAG,CACHgI,OAAQrE,EACRsE,gBAAiBzF,EAAIuB,EACrBmE,iBAAkB1F,EAClBT,SAAUE,KACN1B,EAAIsD,EAAIE,EAAIP,EAAIO,EAAGA,EAAIgD,KAAKqB,OAAO5E,EAAIK,GAAK,EAAIA,GAGxDL,EAAIO,EACJ,IAAIC,EAAI+C,KAAKsB,IAAI,EAAG7F,EAAIuB,EAAI,GACxBG,EAAIzD,EAAIiC,EAAIqE,KAAKC,IAAIxE,EAAIuB,EAAGrB,GAAKG,EACjCsB,EAAI7E,MAAM4E,EAAI,GAClBC,EAAED,EAAI,IAAM,GAAKP,GAAK,EAEtB,IAAK,IAAIU,EAAIH,EAAGG,GAAKL,EAAGK,GAAK,EAAG,CAC9B,IAAIC,EAAID,EAAI,EACRG,EAAIvE,EAAEF,EAAEuI,OAAOhE,IAEnB,GAAIE,IAAMzB,EAAEuB,GAAK,GAAIH,EAAEE,IAAMF,EAAEE,EAAI,IAAM,EAAI,GAAKG,EAAG,IAAMb,IAAMQ,EAAEE,KAAOhB,EAAEgB,EAAI,GAAKhB,EAAEgB,KAAO,EAAI,EAAIhB,EAAEgB,EAAI,IAAKF,EAAEE,GAAKZ,IAAMH,EAAIpD,EAAEF,EAAG,CACrIgI,OAAQrE,EACRsE,gBAAiB3D,EACjB4D,iBAAkB1F,EAClBT,SAAUE,MACL1B,EAAG,CACR,GAAIA,EAAI+C,GAAIV,EAAI0B,IAAM9B,EAAG,MACzBwB,EAAI+C,KAAKsB,IAAI,EAAG,EAAI7F,EAAII,IAI5B,GAAI1C,EAAEF,EAAG,CACPgI,OAAQrE,EAAI,EACZsE,gBAAiBzF,EACjB0F,iBAAkB1F,EAClBT,SAAUE,IACP1B,EAAG,MACR8C,EAAIc,EAGN,MAAO,CACLwC,QAAS/D,GAAK,EACdgB,MAAO,IAAMN,EAAI,KAAOA,EACxBuD,eAAgB1G,EAAE4C,EAAGzB,MAGxB,SAAUvB,EAAGC,GACdD,EAAEX,QAAU,SAAUW,EAAGC,GACvB,IAAIC,EAAID,EAAEgI,OACN9H,OAAI,IAAWD,EAAI,EAAIA,EACvBE,EAAIH,EAAEiI,gBACN7H,OAAI,IAAWD,EAAI,EAAIA,EACvB0B,EAAI7B,EAAEkI,iBACN3G,OAAI,IAAWM,EAAI,EAAIA,EACvBrB,EAAIR,EAAE+B,SACNE,OAAI,IAAWzB,EAAI,IAAMA,EACzBH,EAAIH,EAAIH,EAAEP,OACV2C,EAAI4E,KAAKwB,IAAIhH,EAAInB,GACrB,OAAO6B,EAAI5B,EAAI8B,EAAIF,EAAIE,EAAI,EAAI9B,IAEhC,SAAUN,EAAGC,GACdD,EAAEX,QAAU,WACV,IAAK,IAAIW,EAAImF,UAAU1F,OAAS,QAAK,IAAW0F,UAAU,GAAKA,UAAU,GAAK,GAAIlF,EAAIkF,UAAU1F,OAAS,QAAK,IAAW0F,UAAU,GAAKA,UAAU,GAAK,EAAGjF,EAAI,GAAIC,GAAK,EAAGC,GAAK,EAAGC,EAAI,EAAGyB,EAAI9B,EAAEP,OAAQY,EAAIyB,EAAGzB,GAAK,EAAG,CACpN,IAAImB,EAAIxB,EAAEK,GACVmB,IAAM,IAAMrB,EAAIA,EAAIE,EAAImB,IAAM,IAAMrB,KAAOC,EAAIC,EAAI,GAAKF,EAAI,GAAKF,GAAKC,EAAEgG,KAAK,CAAC/F,EAAGC,IAAKD,GAAK,GAG7F,OAAOH,EAAEK,EAAI,IAAMA,EAAIF,GAAKF,GAAKC,EAAEgG,KAAK,CAAC/F,EAAGE,EAAI,IAAKH,IAEtD,SAAUF,EAAGC,GACdD,EAAEX,QAAU,SAAUW,GACpB,IAAK,IAAIC,EAAI,GAAIC,EAAIF,EAAEP,OAAQU,EAAI,EAAGA,EAAID,EAAGC,GAAK,EAChDF,EAAED,EAAEuI,OAAOpI,IAAM,EAGnB,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAAGE,GAAK,EAC1BH,EAAED,EAAEuI,OAAOnI,KAAO,GAAKF,EAAIE,EAAI,EAGjC,OAAOH,IAER,SAAUD,EAAGC,EAAGC,GACjB,IAAIC,EAAID,EAAE,GAEVF,EAAEX,QAAU,SAAUW,EAAGC,GACvB,OAAO,SAASD,EAAEC,EAAGC,EAAGE,GACtB,GAAIF,EAAG,CACL,IAAIG,EAAIH,EAAEoH,QAAQ,KACdxF,EAAI5B,EACJsB,EAAI,MACP,IAAMnB,IAAMyB,EAAI5B,EAAE6F,MAAM,EAAG1F,GAAImB,EAAItB,EAAE6F,MAAM1F,EAAI,IAChD,IAAII,EAAIR,EAAE6B,GACV,GAAI,MAAQrB,EAAG,GAAIe,GAAK,iBAAmBf,GAAK,iBAAmBA,EACjE,GAAIN,EAAEM,GAAI,IAAK,IAAIyB,EAAI,EAAG5B,EAAIG,EAAEhB,OAAQyC,EAAI5B,EAAG4B,GAAK,EAClDlC,EAAES,EAAEyB,GAAIV,EAAGpB,QACNoB,GAAKxB,EAAES,EAAGe,EAAGpB,QACfA,EAAE8F,KAAKzF,EAAEgB,iBACXrB,EAAE8F,KAAKjG,GAEd,OAAOG,EAdF,CAeLJ,EAAGC,EAAG,S,oCCpoBd,oEAAO,IAEMwI,EAAO,mBAEb,SAASC,IACd,MAAsB,oBAAXC,QAA2BA,OAAOC,SAGtC,eAAgBA,SAASC,KAFvBC,GAAYC,Y,uBCCvB,IAAIC,EAAW,SAAU3J,GACvB,aAEA,IAAI4J,EAAKrJ,OAAOyB,UACZ6H,EAASD,EAAG3H,eAEZ6H,EAA4B,mBAAXrI,OAAwBA,OAAS,GAClDsI,EAAiBD,EAAQzH,UAAY,aACrC2H,EAAsBF,EAAQG,eAAiB,kBAC/CC,EAAoBJ,EAAQpI,aAAe,gBAE/C,SAASyI,EAAOlK,EAAKuC,EAAKb,GAOxB,OANApB,OAAOe,eAAerB,EAAKuC,EAAK,CAC9Bb,MAAOA,EACPJ,YAAY,EACZe,cAAc,EACdC,UAAU,IAELtC,EAAIuC,GAEb,IAEE2H,EAAO,GAAI,IACX,MAAOC,GACPD,EAAS,SAASlK,EAAKuC,EAAKb,GAC1B,OAAO1B,EAAIuC,GAAOb,GAItB,SAAS0I,EAAKC,EAASC,EAASC,EAAMC,GAEpC,IAAIC,EAAiBH,GAAWA,EAAQvI,qBAAqB2I,EAAYJ,EAAUI,EAC/EC,EAAYrK,OAAOsB,OAAO6I,EAAe1I,WACzC6I,EAAU,IAAIC,EAAQL,GAAe,IAMzC,OAFAG,EAAUG,QAsMZ,SAA0BT,EAASE,EAAMK,GACvC,IAAIG,EA/KuB,iBAiL3B,OAAO,SAAgBC,EAAQC,GAC7B,GAhLoB,cAgLhBF,EACF,MAAM,IAAI7D,MAAM,gCAGlB,GAnLoB,cAmLhB6D,EAA6B,CAC/B,GAAe,UAAXC,EACF,MAAMC,EAKR,OAAOC,IAMT,IAHAN,EAAQI,OAASA,EACjBJ,EAAQK,IAAMA,IAED,CACX,IAAIE,EAAWP,EAAQO,SACvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAUP,GACnD,GAAIQ,EAAgB,CAClB,GAAIA,IAAmBE,EAAkB,SACzC,OAAOF,GAIX,GAAuB,SAAnBR,EAAQI,OAGVJ,EAAQW,KAAOX,EAAQY,MAAQZ,EAAQK,SAElC,GAAuB,UAAnBL,EAAQI,OAAoB,CACrC,GAnNqB,mBAmNjBD,EAEF,MADAA,EAjNc,YAkNRH,EAAQK,IAGhBL,EAAQa,kBAAkBb,EAAQK,SAEN,WAAnBL,EAAQI,QACjBJ,EAAQc,OAAO,SAAUd,EAAQK,KAGnCF,EA5NkB,YA8NlB,IAAIjE,EAAS6E,EAAStB,EAASE,EAAMK,GACrC,GAAoB,WAAhB9D,EAAO8E,KAAmB,CAO5B,GAJAb,EAAQH,EAAQiB,KAjOA,YAFK,iBAuOjB/E,EAAOmE,MAAQK,EACjB,SAGF,MAAO,CACL5J,MAAOoF,EAAOmE,IACdY,KAAMjB,EAAQiB,MAGS,UAAhB/E,EAAO8E,OAChBb,EA/OgB,YAkPhBH,EAAQI,OAAS,QACjBJ,EAAQK,IAAMnE,EAAOmE,OA9QPa,CAAiBzB,EAASE,EAAMK,GAE7CD,EAcT,SAASgB,EAASI,EAAI/L,EAAKiL,GACzB,IACE,MAAO,CAAEW,KAAM,SAAUX,IAAKc,EAAG9K,KAAKjB,EAAKiL,IAC3C,MAAOd,GACP,MAAO,CAAEyB,KAAM,QAASX,IAAKd,IAhBjCpK,EAAQqK,KAAOA,EAoBf,IAOIkB,EAAmB,GAMvB,SAASZ,KACT,SAASsB,KACT,SAASC,KAIT,IAAIC,EAAoB,GACxBA,EAAkBpC,GAAkB,WAClC,OAAOtE,MAGT,IAAI2G,EAAW7L,OAAO8L,eAClBC,EAA0BF,GAAYA,EAASA,EAASG,EAAO,MAC/DD,GACAA,IAA4B1C,GAC5BC,EAAO3I,KAAKoL,EAAyBvC,KAGvCoC,EAAoBG,GAGtB,IAAIE,EAAKN,EAA2BlK,UAClC2I,EAAU3I,UAAYzB,OAAOsB,OAAOsK,GAWtC,SAASM,EAAsBzK,GAC7B,CAAC,OAAQ,QAAS,UAAU0K,SAAQ,SAASzB,GAC3Cd,EAAOnI,EAAWiJ,GAAQ,SAASC,GACjC,OAAOzF,KAAKsF,QAAQE,EAAQC,SAkClC,SAASyB,EAAc/B,EAAWgC,GAgChC,IAAIC,EAgCJpH,KAAKsF,QA9BL,SAAiBE,EAAQC,GACvB,SAAS4B,IACP,OAAO,IAAIF,GAAY,SAASG,EAASC,IAnC7C,SAASC,EAAOhC,EAAQC,EAAK6B,EAASC,GACpC,IAAIjG,EAAS6E,EAAShB,EAAUK,GAASL,EAAWM,GACpD,GAAoB,UAAhBnE,EAAO8E,KAEJ,CACL,IAAIqB,EAASnG,EAAOmE,IAChBvJ,EAAQuL,EAAOvL,MACnB,OAAIA,GACiB,iBAAVA,GACPkI,EAAO3I,KAAKS,EAAO,WACdiL,EAAYG,QAAQpL,EAAMwL,SAASC,MAAK,SAASzL,GACtDsL,EAAO,OAAQtL,EAAOoL,EAASC,MAC9B,SAAS5C,GACV6C,EAAO,QAAS7C,EAAK2C,EAASC,MAI3BJ,EAAYG,QAAQpL,GAAOyL,MAAK,SAASC,GAI9CH,EAAOvL,MAAQ0L,EACfN,EAAQG,MACP,SAASI,GAGV,OAAOL,EAAO,QAASK,EAAOP,EAASC,MAvBzCA,EAAOjG,EAAOmE,KAiCZ+B,CAAOhC,EAAQC,EAAK6B,EAASC,MAIjC,OAAOH,EAaLA,EAAkBA,EAAgBO,KAChCN,EAGAA,GACEA,KAkHV,SAASxB,EAAoBF,EAAUP,GACrC,IAAII,EAASG,EAAS/I,SAASwI,EAAQI,QACvC,QA1TEsC,IA0TEtC,EAAsB,CAKxB,GAFAJ,EAAQO,SAAW,KAEI,UAAnBP,EAAQI,OAAoB,CAE9B,GAAIG,EAAS/I,SAAiB,SAG5BwI,EAAQI,OAAS,SACjBJ,EAAQK,SArUZqC,EAsUIjC,EAAoBF,EAAUP,GAEP,UAAnBA,EAAQI,QAGV,OAAOM,EAIXV,EAAQI,OAAS,QACjBJ,EAAQK,IAAM,IAAI1F,UAChB,kDAGJ,OAAO+F,EAGT,IAAIxE,EAAS6E,EAASX,EAAQG,EAAS/I,SAAUwI,EAAQK,KAEzD,GAAoB,UAAhBnE,EAAO8E,KAIT,OAHAhB,EAAQI,OAAS,QACjBJ,EAAQK,IAAMnE,EAAOmE,IACrBL,EAAQO,SAAW,KACZG,EAGT,IAAIiC,EAAOzG,EAAOmE,IAElB,OAAMsC,EAOFA,EAAK1B,MAGPjB,EAAQO,EAASqC,YAAcD,EAAK7L,MAGpCkJ,EAAQ6C,KAAOtC,EAASuC,QAQD,WAAnB9C,EAAQI,SACVJ,EAAQI,OAAS,OACjBJ,EAAQK,SAzXVqC,GAmYF1C,EAAQO,SAAW,KACZG,GANEiC,GA3BP3C,EAAQI,OAAS,QACjBJ,EAAQK,IAAM,IAAI1F,UAAU,oCAC5BqF,EAAQO,SAAW,KACZG,GAoDX,SAASqC,EAAaC,GACpB,IAAIC,EAAQ,CAAEC,OAAQF,EAAK,IAEvB,KAAKA,IACPC,EAAME,SAAWH,EAAK,IAGpB,KAAKA,IACPC,EAAMG,WAAaJ,EAAK,GACxBC,EAAMI,SAAWL,EAAK,IAGxBpI,KAAK0I,WAAWtH,KAAKiH,GAGvB,SAASM,EAAcN,GACrB,IAAI/G,EAAS+G,EAAMO,YAAc,GACjCtH,EAAO8E,KAAO,gBACP9E,EAAOmE,IACd4C,EAAMO,WAAatH,EAGrB,SAAS+D,EAAQL,GAIfhF,KAAK0I,WAAa,CAAC,CAAEJ,OAAQ,SAC7BtD,EAAYiC,QAAQkB,EAAcnI,MAClCA,KAAK6I,OAAM,GA8Bb,SAAS/B,EAAOgC,GACd,GAAIA,EAAU,CACZ,IAAIC,EAAiBD,EAASxE,GAC9B,GAAIyE,EACF,OAAOA,EAAetN,KAAKqN,GAG7B,GAA6B,mBAAlBA,EAASb,KAClB,OAAOa,EAGT,IAAKE,MAAMF,EAASnO,QAAS,CAC3B,IAAIY,GAAK,EAAG0M,EAAO,SAASA,IAC1B,OAAS1M,EAAIuN,EAASnO,QACpB,GAAIyJ,EAAO3I,KAAKqN,EAAUvN,GAGxB,OAFA0M,EAAK/L,MAAQ4M,EAASvN,GACtB0M,EAAK5B,MAAO,EACL4B,EAOX,OAHAA,EAAK/L,WAzeT4L,EA0eIG,EAAK5B,MAAO,EAEL4B,GAGT,OAAOA,EAAKA,KAAOA,GAKvB,MAAO,CAAEA,KAAMvC,GAIjB,SAASA,IACP,MAAO,CAAExJ,WAzfP4L,EAyfyBzB,MAAM,GA+MnC,OA5mBAG,EAAkBjK,UAAYwK,EAAG/L,YAAcyL,EAC/CA,EAA2BzL,YAAcwL,EACzCA,EAAkByC,YAAcvE,EAC9B+B,EACAhC,EACA,qBAaFlK,EAAQ2O,oBAAsB,SAASC,GACrC,IAAIC,EAAyB,mBAAXD,GAAyBA,EAAOnO,YAClD,QAAOoO,IACHA,IAAS5C,GAG2B,uBAAnC4C,EAAKH,aAAeG,EAAKnO,QAIhCV,EAAQ8O,KAAO,SAASF,GAQtB,OAPIrO,OAAOwO,eACTxO,OAAOwO,eAAeH,EAAQ1C,IAE9B0C,EAAOI,UAAY9C,EACnB/B,EAAOyE,EAAQ1E,EAAmB,sBAEpC0E,EAAO5M,UAAYzB,OAAOsB,OAAO2K,GAC1BoC,GAOT5O,EAAQiP,MAAQ,SAAS/D,GACvB,MAAO,CAAEiC,QAASjC,IAsEpBuB,EAAsBE,EAAc3K,WACpC2K,EAAc3K,UAAUgI,GAAuB,WAC7C,OAAOvE,MAETzF,EAAQ2M,cAAgBA,EAKxB3M,EAAQkP,MAAQ,SAAS5E,EAASC,EAASC,EAAMC,EAAamC,QACxC,IAAhBA,IAAwBA,EAAcuC,SAE1C,IAAIC,EAAO,IAAIzC,EACbtC,EAAKC,EAASC,EAASC,EAAMC,GAC7BmC,GAGF,OAAO5M,EAAQ2O,oBAAoBpE,GAC/B6E,EACAA,EAAK1B,OAAON,MAAK,SAASF,GACxB,OAAOA,EAAOpB,KAAOoB,EAAOvL,MAAQyN,EAAK1B,WAuKjDjB,EAAsBD,GAEtBrC,EAAOqC,EAAItC,EAAmB,aAO9BsC,EAAGzC,GAAkB,WACnB,OAAOtE,MAGT+G,EAAGpK,SAAW,WACZ,MAAO,sBAkCTpC,EAAQ6D,KAAO,SAASwL,GACtB,IAAIxL,EAAO,GACX,IAAK,IAAIrB,KAAO6M,EACdxL,EAAKgD,KAAKrE,GAMZ,OAJAqB,EAAKyL,UAIE,SAAS5B,IACd,KAAO7J,EAAKzD,QAAQ,CAClB,IAAIoC,EAAMqB,EAAK0L,MACf,GAAI/M,KAAO6M,EAGT,OAFA3B,EAAK/L,MAAQa,EACbkL,EAAK5B,MAAO,EACL4B,EAQX,OADAA,EAAK5B,MAAO,EACL4B,IAsCX1N,EAAQuM,OAASA,EAMjBzB,EAAQ9I,UAAY,CAClBvB,YAAaqK,EAEbwD,MAAO,SAASkB,GAcd,GAbA/J,KAAKgK,KAAO,EACZhK,KAAKiI,KAAO,EAGZjI,KAAK+F,KAAO/F,KAAKgG,WApgBjB8B,EAqgBA9H,KAAKqG,MAAO,EACZrG,KAAK2F,SAAW,KAEhB3F,KAAKwF,OAAS,OACdxF,KAAKyF,SAzgBLqC,EA2gBA9H,KAAK0I,WAAWzB,QAAQ0B,IAEnBoB,EACH,IAAK,IAAI9O,KAAQ+E,KAEQ,MAAnB/E,EAAKwI,OAAO,IACZW,EAAO3I,KAAKuE,KAAM/E,KACjB+N,OAAO/N,EAAKgG,MAAM,MACrBjB,KAAK/E,QAnhBX6M,IAyhBFmC,KAAM,WACJjK,KAAKqG,MAAO,EAEZ,IACI6D,EADYlK,KAAK0I,WAAW,GACLE,WAC3B,GAAwB,UAApBsB,EAAW9D,KACb,MAAM8D,EAAWzE,IAGnB,OAAOzF,KAAKmK,MAGdlE,kBAAmB,SAASmE,GAC1B,GAAIpK,KAAKqG,KACP,MAAM+D,EAGR,IAAIhF,EAAUpF,KACd,SAASqK,EAAOC,EAAKC,GAYnB,OAXAjJ,EAAO8E,KAAO,QACd9E,EAAOmE,IAAM2E,EACbhF,EAAQ6C,KAAOqC,EAEXC,IAGFnF,EAAQI,OAAS,OACjBJ,EAAQK,SApjBZqC,KAujBYyC,EAGZ,IAAK,IAAIhP,EAAIyE,KAAK0I,WAAW/N,OAAS,EAAGY,GAAK,IAAKA,EAAG,CACpD,IAAI8M,EAAQrI,KAAK0I,WAAWnN,GACxB+F,EAAS+G,EAAMO,WAEnB,GAAqB,SAAjBP,EAAMC,OAIR,OAAO+B,EAAO,OAGhB,GAAIhC,EAAMC,QAAUtI,KAAKgK,KAAM,CAC7B,IAAIQ,EAAWpG,EAAO3I,KAAK4M,EAAO,YAC9BoC,EAAarG,EAAO3I,KAAK4M,EAAO,cAEpC,GAAImC,GAAYC,EAAY,CAC1B,GAAIzK,KAAKgK,KAAO3B,EAAME,SACpB,OAAO8B,EAAOhC,EAAME,UAAU,GACzB,GAAIvI,KAAKgK,KAAO3B,EAAMG,WAC3B,OAAO6B,EAAOhC,EAAMG,iBAGjB,GAAIgC,GACT,GAAIxK,KAAKgK,KAAO3B,EAAME,SACpB,OAAO8B,EAAOhC,EAAME,UAAU,OAG3B,KAAIkC,EAMT,MAAM,IAAI/I,MAAM,0CALhB,GAAI1B,KAAKgK,KAAO3B,EAAMG,WACpB,OAAO6B,EAAOhC,EAAMG,gBAU9BtC,OAAQ,SAASE,EAAMX,GACrB,IAAK,IAAIlK,EAAIyE,KAAK0I,WAAW/N,OAAS,EAAGY,GAAK,IAAKA,EAAG,CACpD,IAAI8M,EAAQrI,KAAK0I,WAAWnN,GAC5B,GAAI8M,EAAMC,QAAUtI,KAAKgK,MACrB5F,EAAO3I,KAAK4M,EAAO,eACnBrI,KAAKgK,KAAO3B,EAAMG,WAAY,CAChC,IAAIkC,EAAerC,EACnB,OAIAqC,IACU,UAATtE,GACS,aAATA,IACDsE,EAAapC,QAAU7C,GACvBA,GAAOiF,EAAalC,aAGtBkC,EAAe,MAGjB,IAAIpJ,EAASoJ,EAAeA,EAAa9B,WAAa,GAItD,OAHAtH,EAAO8E,KAAOA,EACd9E,EAAOmE,IAAMA,EAETiF,GACF1K,KAAKwF,OAAS,OACdxF,KAAKiI,KAAOyC,EAAalC,WAClB1C,GAGF9F,KAAK2K,SAASrJ,IAGvBqJ,SAAU,SAASrJ,EAAQmH,GACzB,GAAoB,UAAhBnH,EAAO8E,KACT,MAAM9E,EAAOmE,IAcf,MAXoB,UAAhBnE,EAAO8E,MACS,aAAhB9E,EAAO8E,KACTpG,KAAKiI,KAAO3G,EAAOmE,IACM,WAAhBnE,EAAO8E,MAChBpG,KAAKmK,KAAOnK,KAAKyF,IAAMnE,EAAOmE,IAC9BzF,KAAKwF,OAAS,SACdxF,KAAKiI,KAAO,OACa,WAAhB3G,EAAO8E,MAAqBqC,IACrCzI,KAAKiI,KAAOQ,GAGP3C,GAGT8E,OAAQ,SAASpC,GACf,IAAK,IAAIjN,EAAIyE,KAAK0I,WAAW/N,OAAS,EAAGY,GAAK,IAAKA,EAAG,CACpD,IAAI8M,EAAQrI,KAAK0I,WAAWnN,GAC5B,GAAI8M,EAAMG,aAAeA,EAGvB,OAFAxI,KAAK2K,SAAStC,EAAMO,WAAYP,EAAMI,UACtCE,EAAcN,GACPvC,IAKb,MAAS,SAASwC,GAChB,IAAK,IAAI/M,EAAIyE,KAAK0I,WAAW/N,OAAS,EAAGY,GAAK,IAAKA,EAAG,CACpD,IAAI8M,EAAQrI,KAAK0I,WAAWnN,GAC5B,GAAI8M,EAAMC,SAAWA,EAAQ,CAC3B,IAAIhH,EAAS+G,EAAMO,WACnB,GAAoB,UAAhBtH,EAAO8E,KAAkB,CAC3B,IAAIyE,EAASvJ,EAAOmE,IACpBkD,EAAcN,GAEhB,OAAOwC,GAMX,MAAM,IAAInJ,MAAM,0BAGlBoJ,cAAe,SAAShC,EAAUd,EAAYE,GAa5C,OAZAlI,KAAK2F,SAAW,CACd/I,SAAUkK,EAAOgC,GACjBd,WAAYA,EACZE,QAASA,GAGS,SAAhBlI,KAAKwF,SAGPxF,KAAKyF,SA7rBPqC,GAgsBOhC,IAQJvL,EA7sBK,CAotBiBD,EAAOC,SAGtC,IACEwQ,mBAAqB7G,EACrB,MAAO8G,GAUPnQ,SAAS,IAAK,yBAAdA,CAAwCqJ,K,uBC1uB1C,IAAI+G,EAAQ,EAAQ,QAEpB,SAASC,EAAkBC,GACvB,OAAOF,EAAMG,cAAc,MAAMD,EAAM,CAACF,EAAMG,cAAc,QAAQ,CAAC,IAAM,GAAG,WAAWH,EAAMG,cAAc,IAAI,CAAC,GAAK,KAAK,OAAS,OAAO,YAAc,IAAI,KAAO,OAAO,SAAW,UAAU,IAAM,GAAGH,EAAMG,cAAc,IAAI,CAAC,GAAK,UAAU,KAAO,UAAU,SAAW,WAAWH,EAAMG,cAAc,OAAO,CAAC,EAAI,oueAAoue,GAAK,aAGtifF,EAAiBG,aAAe,CAAC,MAAQ,QAAQ,OAAS,OAAO,QAAU,aAAa,QAAU,OAElG/Q,EAAOC,QAAU2Q,EAEjBA,EAAiB5O,QAAU4O,G,oCCR3B,SAASI,EAAgBC,GACvB,OAAOA,GAAoB,iBAAPA,GAAmB,YAAaA,EAAKA,EAAY,QAAIA,EAG3E,IAAIN,EAAQ,EAAQ,QAEhBO,EAAiBF,EAAgBL,GAEjCQ,EAAeH,EAAgB,EAAQ,SAE3C,SAASI,EAAgBlR,EAAKuC,EAAKb,GAYjC,OAXIa,KAAOvC,EACTM,OAAOe,eAAerB,EAAKuC,EAAK,CAC9Bb,MAAOA,EACPJ,YAAY,EACZe,cAAc,EACdC,UAAU,IAGZtC,EAAIuC,GAAOb,EAGN1B,EAST,IAAImR,IAAiC,oBAAX9H,SAA0BA,OAAOC,WAAYD,OAAOC,SAASsH,eAmGvF9Q,EAAOC,QAjGP,SAAwBqR,EAAoBC,EAA2BC,GACrE,GAAkC,mBAAvBF,EACT,MAAM,IAAIlK,MAAM,iDAGlB,GAAyC,mBAA9BmK,EACT,MAAM,IAAInK,MAAM,wDAGlB,QAAgC,IAArBoK,GAAgE,mBAArBA,EACpD,MAAM,IAAIpK,MAAM,mEAOlB,OAAO,SAAcqK,GACnB,GAAgC,mBAArBA,EACT,MAAM,IAAIrK,MAAM,sDAGlB,IACI6D,EADAyG,EAAmB,GAGvB,SAASC,IACP1G,EAAQqG,EAAmBI,EAAiBE,KAAI,SAAUC,GACxD,OAAOA,EAAShB,UAGdiB,EAAWT,UACbE,EAA0BtG,GACjBuG,IACTvG,EAAQuG,EAAiBvG,IAI7B,IAAI6G,EAA0B,SAAUC,GA7C5C,IAAwBC,EAAUC,EAgD5B,SAASH,IACP,OAAOC,EAAWxJ,MAAM7C,KAAMK,YAAcL,KAjDlBuM,EA8CDF,GA9CTC,EA8CHF,GA7CV7P,UAAYzB,OAAOsB,OAAOmQ,EAAWhQ,WAC9C+P,EAAS/P,UAAUvB,YAAcsR,EACjCA,EAAS/C,UAAYgD,EAmDjBH,EAAWI,KAAO,WAChB,OAAOjH,GAGT6G,EAAWK,OAAS,WAClB,GAAIL,EAAWT,UACb,MAAM,IAAIjK,MAAM,oFAGlB,IAAIgL,EAAgBnH,EAGpB,OAFAA,OAAQuC,EACRkE,EAAmB,GACZU,GAGT,IAAIC,EAASP,EAAW7P,UAyBxB,OAvBAoQ,EAAOC,sBAAwB,SAA+BC,GAC5D,OAAQpB,EAAaoB,EAAW7M,KAAKmL,QAGvCwB,EAAOG,mBAAqB,WAC1Bd,EAAiB5K,KAAKpB,MACtBiM,KAGFU,EAAOI,mBAAqB,WAC1Bd,KAGFU,EAAOK,qBAAuB,WAC5B,IAAIzL,EAAQyK,EAAiBxJ,QAAQxC,MACrCgM,EAAiBpR,OAAO2G,EAAO,GAC/B0K,KAGFU,EAAOM,OAAS,WACd,OAAOzB,EAAeJ,cAAcW,EAAkB/L,KAAKmL,QAGtDiB,EAjDqB,CAkD5BnB,EAAMiC,WAMR,OAJAxB,EAAgBU,EAAY,cAAe,cA5E7C,SAAwBL,GACtB,OAAOA,EAAiB9C,aAAe8C,EAAiB9Q,MAAQ,YA2ELkS,CAAepB,GAAoB,KAE9FL,EAAgBU,EAAY,YAAaT,GAElCS,K,qBC1HX,IAMIgB,EAAgD,mBAAjBC,aAEnC,SAAS1O,EAAE2O,EAAKC,GACd,OAAO,EAAM,EAAMA,EAAM,EAAMD,EAGjC,SAASE,EAAEF,EAAKC,GACd,OAAO,EAAMA,EAAM,EAAMD,EAG3B,SAAS1O,EAAE0O,GACT,OAAO,EAAMA,EAIf,SAASG,EAAWC,EAAIJ,EAAKC,GAC3B,QAAS5O,EAAE2O,EAAKC,GAAOG,EAAKF,EAAEF,EAAKC,IAAQG,EAAK9O,EAAE0O,IAAQI,EAI5D,SAASC,EAASD,EAAIJ,EAAKC,GACzB,OAAO,EAAM5O,EAAE2O,EAAKC,GAAOG,EAAKA,EAAK,EAAMF,EAAEF,EAAKC,GAAOG,EAAK9O,EAAE0O,GAqClE,SAASM,EAAa1P,GACpB,OAAOA,EAGT5D,EAAOC,QAAU,SAAgBsT,EAAKC,EAAKC,EAAKC,GAC9C,KAAM,GAAKH,GAAOA,GAAO,GAAK,GAAKE,GAAOA,GAAO,GAC/C,MAAM,IAAIrM,MAAM,2CAGlB,GAAImM,IAAQC,GAAOC,IAAQC,EACzB,OAAOJ,EAMT,IAFA,IAAIK,EAAeb,EAAwB,IAAIC,aA1E1B,IA0E2D,IAAI5S,MA1E/D,IA4EZc,EAAI,EAAGA,EA5EK,KA4EmBA,EACtC0S,EAAa1S,GAAKkS,EA5EA,GA4EWlS,EAAqBsS,EAAKE,GAGzD,SAASG,EAASC,GAKhB,IAJA,IAAIC,EAAgB,EAChBC,EAAgB,EACHC,KAEVD,GAAgCJ,EAAaI,IAAkBF,IAAME,EAC1ED,GArFgB,KAwFhBC,EAEF,IACIE,EAAYH,EA3FE,KA0FND,EAAKF,EAAaI,KAAmBJ,EAAaI,EAAgB,GAAKJ,EAAaI,KAE5FG,EAAeb,EAASY,EAAWV,EAAKE,GAE5C,OAAIS,GAlGe,KAgDvB,SAA8BL,EAAIM,EAASZ,EAAKE,GAC9C,IAAK,IAAIxS,EAAI,EAAGA,EAlDM,IAkDmBA,EAAG,CAC1C,IAAImT,EAAef,EAASc,EAASZ,EAAKE,GAE1C,GAAqB,IAAjBW,EACF,OAAOD,EAITA,IADehB,EAAWgB,EAASZ,EAAKE,GAAOI,GACzBO,EAGxB,OAAOD,EAuCIE,CAAqBR,EAAII,EAAWV,EAAKE,GACtB,IAAjBS,EACFD,EAxEb,SAAyBJ,EAAIS,EAAIC,EAAIhB,EAAKE,GACxC,IAAIe,EACAC,EACAxT,EAAI,EAER,IAEEuT,EAAWrB,EADXsB,EAAWH,GAAMC,EAAKD,GAAM,EACIf,EAAKE,GAAOI,GAE7B,EACbU,EAAKE,EAELH,EAAKG,QAEA7M,KAAKwB,IAAIoL,GA1CQ,QA0C+BvT,EAzC1B,IA2C/B,OAAOwT,EA0DIC,CAAgBb,EAAIC,EAAeA,EAnG1B,GAmG2DP,EAAKE,GAIpF,OAAO,SAAsB7P,GAE3B,OAAU,IAANA,EACK,EAGC,IAANA,EACK,EAGFuP,EAAWS,EAAShQ,GAAI4P,EAAKE,M,4CC3HoB1T,EAAOC,QAE1D,SAAUW,GACf,IAAIC,EAAI,GAER,SAASE,EAAED,GACT,GAAID,EAAEC,GAAI,OAAOD,EAAEC,GAAGb,QACtB,IAAIgB,EAAIJ,EAAEC,GAAK,CACbG,EAAGH,EACHI,GAAG,EACHjB,QAAS,IAEX,OAAOW,EAAEE,GAAGK,KAAKF,EAAEhB,QAASgB,EAAGA,EAAEhB,QAASc,GAAIE,EAAEC,GAAI,EAAID,EAAEhB,QAG5D,OAAOc,EAAEK,EAAIR,EAAGG,EAAEM,EAAIR,EAAGE,EAAEO,EAAI,SAAUV,EAAGC,EAAGC,GAC7CC,EAAEC,EAAEJ,EAAGC,IAAML,OAAOe,eAAeX,EAAGC,EAAG,CACvCW,YAAY,EACZC,IAAKX,KAENC,EAAEA,EAAI,SAAUH,GACjB,oBAAsBc,QAAUA,OAAOC,aAAenB,OAAOe,eAAeX,EAAGc,OAAOC,YAAa,CACjGC,MAAO,WACLpB,OAAOe,eAAeX,EAAG,aAAc,CACzCgB,OAAO,KAERb,EAAEF,EAAI,SAAUD,EAAGC,GACpB,GAAI,EAAIA,IAAMD,EAAIG,EAAEH,IAAK,EAAIC,EAAG,OAAOD,EACvC,GAAI,EAAIC,GAAK,iBAAmBD,GAAKA,GAAKA,EAAEiB,WAAY,OAAOjB,EAC/D,IAAIE,EAAIN,OAAOsB,OAAO,MACtB,GAAIf,EAAEA,EAAED,GAAIN,OAAOe,eAAeT,EAAG,UAAW,CAC9CU,YAAY,EACZI,MAAOhB,IACL,EAAIC,GAAK,iBAAmBD,EAAG,IAAK,IAAIK,KAAKL,EAC/CG,EAAEO,EAAER,EAAGG,EAAG,SAAUJ,GAClB,OAAOD,EAAEC,IACTkB,KAAK,KAAMd,IAEf,OAAOH,GACNC,EAAED,EAAI,SAAUF,GACjB,IAAIC,EAAID,GAAKA,EAAEiB,WAAa,WAC1B,OAAOjB,EAAEoB,SACP,WACF,OAAOpB,GAET,OAAOG,EAAEO,EAAET,EAAG,IAAKA,GAAIA,GACtBE,EAAEC,EAAI,SAAUJ,EAAGC,GACpB,OAAOL,OAAOyB,UAAUC,eAAef,KAAKP,EAAGC,IAC9CE,EAAEoB,EAAI,GAAIpB,EAAEA,EAAEqB,EAAI,IA9ChB,CA+CL,CACAuS,GAAI,SAAW/T,EAAGC,EAAGE,GACnB,aAEAF,EAAEgB,YAAa,EAAIhB,EAAEmB,aAAU,EAE/B,IAAIlB,EAAIC,EAAE,IACNE,EAAI,WACN,SAASL,KAET,OAAOA,EAAEgU,cAAgB,SAAUhU,EAAGC,GACpC,IAAIE,EAAIF,EAAE+H,MAAMhI,GAChB,OAAOG,GAAKA,EAAEV,OAAS,GAAKU,EAAE,IAAM,IACnCH,EAAEiU,eAAiB,SAAUjU,EAAGC,GACjC,IAAIE,EAAIF,EAAE+H,MAAMhI,GAChB,OAAOG,GAAKA,EAAEV,OAAS,GAAKU,EAAE,IAAM,IACnCH,EAAEkU,oBAAsB,SAAUlU,EAAGC,EAAGE,GACzC,GAAIH,EAAEmU,KAAKlU,GAAI,OAAOE,GACrBH,EAAEoU,sBAAwB,SAAUpU,GACrC,OAAQA,GACN,IAAK,KACH,MAAO,KAET,IAAK,KACH,MAAO,KAET,IAAK,SACH,MAAO,OAET,IAAK,SACH,MAAO,KAET,IAAK,SACH,MAAO,OAET,IAAK,SACH,MAAO,QAET,IAAK,SACH,MAAO,IAET,IAAK,SACH,MAAO,IAET,IAAK,SACH,MAAO,MAET,IAAK,UACH,MAAO,KAET,QACE,SAEHA,EAAEqU,oBAAsB,SAAUrU,GACnC,IAAIC,EAAID,EAAEiG,MAAM,KAAKvG,OAAO,EAAG,GAAGsR,KAAI,SAAUhR,GAC9C,OAAOsU,SAAStU,EAAG,KAAO,KAE5B,GAAIC,EAAEiG,KAAK,GAAI,KAAOjG,EAAE,GAAI,OAAQA,EAAE,IACpC,KAAK,EACH,MAAO,UAET,KAAK,EACH,MAAO,eAET,KAAK,EACH,MAAO,OAET,KAAK,EACH,MAAO,gBAET,KAAK,EACH,MAAO,YAET,KAAK,GACH,MAAO,WAET,KAAK,GACH,MAAO,aAET,KAAK,GACH,MAAO,SAET,KAAK,GACH,MAAO,cAET,KAAK,GACH,MAAO,SAET,KAAK,GACH,MAAO,WAET,QACE,SAEHD,EAAEuU,sBAAwB,SAAUvU,GACrC,IAAIC,EAAID,EAAEiG,MAAM,KAAKvG,OAAO,EAAG,GAAGsR,KAAI,SAAUhR,GAC9C,OAAOsU,SAAStU,EAAG,KAAO,KAE5B,GAAIC,EAAEiG,KAAK,KAAM,IAAMjG,EAAE,IAAMA,EAAE,GAAK,GAAI,OAAO,IAAMA,EAAE,IAAMA,EAAE,GAAK,EAAI,UAAY,IAAMA,EAAE,IAAMA,EAAE,IAAM,EAAI,QAAU,IAAMA,EAAE,IAAMA,EAAE,GAAK,EAAI,SAAW,IAAMA,EAAE,IAAM,IAAMA,EAAE,GAAK,QAAU,IAAMA,EAAE,IAAMA,EAAE,GAAK,EAAI,cAAgB,IAAMA,EAAE,GAAK,YAAc,IAAMA,EAAE,IAAMA,EAAE,GAAK,EAAI,qBAAuB,IAAMA,EAAE,IAAMA,EAAE,GAAK,EAAI,aAAe,IAAMA,EAAE,IAAMA,EAAE,IAAM,EAAI,SAAW,IAAMA,EAAE,GAAK,WAAa,IAAMA,EAAE,GAAK,cAAgB,IAAMA,EAAE,GAAK,SAAW,IAAMA,EAAE,GAAK,OAAS,IAAMA,EAAE,GAAK,WAAQ,GAC7fD,EAAEwU,oBAAsB,SAAUxU,GACnC,OAAOA,EAAEiG,MAAM,KAAKxG,QACnBO,EAAEyU,gBAAkB,SAAUxU,EAAGE,EAAGD,QACrC,IAAWA,IAAMA,GAAI,GACrB,IAAIG,EAAIL,EAAEwU,oBAAoBvU,GAC1BuB,EAAIxB,EAAEwU,oBAAoBrU,GAC1B2B,EAAIkF,KAAKsB,IAAIjI,EAAGmB,GAChBpB,EAAI,EACJgC,EAAIpC,EAAEgR,IAAI,CAAC/Q,EAAGE,IAAI,SAAUF,GAC9B,IAAIE,EAAI2B,EAAI9B,EAAEwU,oBAAoBvU,GAC9BC,EAAID,EAAI,IAAIV,MAAMY,EAAI,GAAGuU,KAAK,MAClC,OAAO1U,EAAEgR,IAAI9Q,EAAE+F,MAAM,MAAM,SAAUjG,GACnC,OAAO,IAAIT,MAAM,GAAKS,EAAEP,QAAQiV,KAAK,KAAO1U,KAC3C2O,aAGL,IAAKzO,IAAME,EAAI0B,EAAIkF,KAAKC,IAAI5G,EAAGmB,IAAKM,GAAK,EAAGA,GAAK1B,GAAI,CACnD,GAAIgC,EAAE,GAAGN,GAAKM,EAAE,GAAGN,GAAI,OAAO,EAE9B,GAAIM,EAAE,GAAGN,KAAOM,EAAE,GAAGN,GAAI,CACvB,GAAIA,IAAM1B,EAAG,OAAO,EACpB0B,GAAK,OACA,GAAIM,EAAE,GAAGN,GAAKM,EAAE,GAAGN,GAAI,OAAQ,IAEvC9B,EAAEgR,IAAM,SAAUhR,EAAGC,GACtB,IAAIE,EACAD,EAAI,GACR,GAAIX,MAAM8B,UAAU2P,IAAK,OAAOzR,MAAM8B,UAAU2P,IAAIzQ,KAAKP,EAAGC,GAE5D,IAAKE,EAAI,EAAGA,EAAIH,EAAEP,OAAQU,GAAK,EAC7BD,EAAEgG,KAAKjG,EAAED,EAAEG,KAGb,OAAOD,GACNF,EAAE2U,KAAO,SAAU3U,EAAGC,GACvB,IAAIE,EAAGD,EACP,GAAIX,MAAM8B,UAAUsT,KAAM,OAAOpV,MAAM8B,UAAUsT,KAAKpU,KAAKP,EAAGC,GAE9D,IAAKE,EAAI,EAAGD,EAAIF,EAAEP,OAAQU,EAAID,EAAGC,GAAK,EAAG,CACvC,IAAIE,EAAIL,EAAEG,GACV,GAAIF,EAAEI,EAAGF,GAAI,OAAOE,IAErBL,EAAE4U,OAAS,SAAU5U,GACtB,IAAK,IAAIC,EAAGE,EAAGD,EAAIF,EAAGK,EAAI8E,UAAU1F,OAAQ+B,EAAI,IAAIjC,MAAMc,EAAI,EAAIA,EAAI,EAAI,GAAIyB,EAAI,EAAGA,EAAIzB,EAAGyB,IAC1FN,EAAEM,EAAI,GAAKqD,UAAUrD,GAGvB,GAAIlC,OAAOgV,OAAQ,OAAOhV,OAAOgV,OAAOjN,MAAM/H,OAAQ,CAACI,GAAGsF,OAAO9D,IAEjE,IAAIpB,EAAI,WACN,IAAIJ,EAAIwB,EAAEvB,GACV,iBAAmBD,GAAK,OAASA,GAAKJ,OAAOsD,KAAKlD,GAAG+L,SAAQ,SAAU9L,GACrEC,EAAED,GAAKD,EAAEC,OAIb,IAAKA,EAAI,EAAGE,EAAIqB,EAAE/B,OAAQQ,EAAIE,EAAGF,GAAK,EACpCG,IAGF,OAAOJ,GACNA,EAAE6U,gBAAkB,SAAU7U,GAC/B,OAAOE,EAAE4U,oBAAoB9U,IAC5BA,EAAE+U,sBAAwB,SAAU/U,GACrC,OAAOE,EAAE8U,YAAYhV,IAAM,IAC1BA,EA7JG,GAgKRC,EAAEmB,QAAUf,EAAGL,EAAEX,QAAUY,EAAEmB,SAE/B6T,GAAI,SAAWjV,EAAGC,EAAGE,GACnB,aAEAF,EAAEgB,YAAa,EAAIhB,EAAEiV,WAAajV,EAAEkV,OAASlV,EAAEmV,cAAgBnV,EAAE+U,YAAc/U,EAAE6U,yBAAsB,EACvG7U,EAAE6U,oBAAsB,CACtB,cAAe,cACf,kBAAmB,UACnBO,KAAM,OACNC,WAAY,aACZC,OAAQ,SACRC,SAAU,WACVC,SAAU,WACVC,SAAU,WACVC,QAAS,UACTC,MAAO,QACPC,QAAS,UACT,gBAAiB,gBACjBC,UAAW,YACX,oBAAqB,KACrB,WAAY,WACZC,QAAS,UACT,iBAAkB,OAClB,aAAc,KACd,sBAAuB,QACvBC,MAAO,QACP,cAAe,cACfC,UAAW,YACXC,OAAQ,SACRC,SAAU,WACVC,GAAI,KACJC,OAAQ,SACRC,OAAQ,SACRC,SAAU,WACV,+BAAgC,mBAChCC,UAAW,YACXC,SAAU,WACVC,MAAO,QACPC,MAAO,QACP,aAAc,KACdC,QAAS,UACT,gBAAiB,QACjBC,OAAQ,SACR,iBAAkB,SAClBC,KAAM,QAER7W,EAAE+U,YAAc,CACd+B,YAAa,cACbC,QAAS,kBACTC,KAAM,OACNC,WAAY,aACZC,OAAQ,SACRC,SAAU,WACVC,SAAU,WACVC,SAAU,WACVC,QAAS,UACTC,MAAO,QACPC,QAAS,UACTC,UAAW,YACXC,cAAe,gBACfC,GAAI,oBACJC,SAAU,WACVC,QAAS,UACTC,KAAM,iBACNC,GAAI,aACJC,MAAO,sBACPC,MAAO,QACPC,YAAa,cACbC,UAAW,YACXC,OAAQ,SACRC,SAAU,WACVC,GAAI,aACJC,OAAQ,kBACRC,OAAQ,SACRC,SAAU,WACVC,iBAAkB,+BAClBC,UAAW,YACXC,SAAU,WACVC,MAAO,QACPC,MAAO,QACPC,GAAI,aACJC,QAAS,UACTC,MAAO,gBACPC,OAAQ,SACRC,OAAQ,kBAEVnZ,EAAEmV,cAAgB,CAChBiE,OAAQ,SACRC,OAAQ,SACRC,QAAS,UACTC,GAAI,MAENvZ,EAAEkV,OAAS,CACTsE,aAAc,gBACdC,QAAS,UACTC,MAAO,QACPC,IAAK,MACLC,QAAS,UACTC,MAAO,QACPxE,WAAY,aACZD,KAAM,OACNsB,MAAO,QACPoD,MAAO,QACPC,SAAU,YACVC,aAAc,gBACdnD,KAAM,QAER7W,EAAEiV,WAAa,CACbgF,SAAU,WACVC,MAAO,QACPC,QAAS,UACTC,OAAQ,SACRC,MAAO,QACPC,OAAQ,WAGZC,GAAI,SAAWxa,EAAGC,EAAGE,GACnB,aAEAF,EAAEgB,YAAa,EAAIhB,EAAEmB,aAAU,EAC/B,IAAIlB,EACAG,GAAKH,EAAIC,EAAE,MAAQD,EAAEe,WAAaf,EAAI,CACxCkB,QAASlB,GAEPsB,EAAIrB,EAAE,IAEV,SAAS2B,EAAE9B,EAAGC,GACZ,IAAK,IAAIE,EAAI,EAAGA,EAAIF,EAAER,OAAQU,IAAK,CACjC,IAAID,EAAID,EAAEE,GACVD,EAAEU,WAAaV,EAAEU,aAAc,EAAIV,EAAEyB,cAAe,EAAI,UAAWzB,IAAMA,EAAE0B,UAAW,GAAKhC,OAAOe,eAAeX,EAAGE,EAAE2B,IAAK3B,IAI/H,IAAIE,EAAI,WACN,SAASJ,KAET,IAAIC,EAAMC,EACV,OAAOF,EAAEya,UAAY,SAAUza,EAAGC,GAChC,QAAI,IAAWA,IAAMA,GAAI,GAAK,iBAAmBD,EAAG,MAAM,IAAIwG,MAAM,gCACpE,OAAO,IAAInG,EAAEe,QAAQpB,EAAGC,IACvBD,EAAE0a,MAAQ,SAAU1a,GACrB,OAAO,IAAIK,EAAEe,QAAQpB,GAAG2a,aACvB1a,EAAID,GAAGE,EAAI,CAAC,CACb2B,IAAK,cACLhB,IAAK,WACH,OAAOW,EAAEwT,cAEV,CACDnT,IAAK,aACLhB,IAAK,WACH,OAAOW,EAAE0T,aAEV,CACDrT,IAAK,SACLhB,IAAK,WACH,OAAOW,EAAE2T,SAEV,CACDtT,IAAK,gBACLhB,IAAK,WACH,OAAOW,EAAE4T,mBAE6BtT,EAAE7B,EAAGC,GAAIF,EA7B7C,GAgCRC,EAAEmB,QAAUhB,EAAGJ,EAAEX,QAAUY,EAAEmB,SAE/BwZ,GAAI,SAAW5a,EAAGC,EAAGE,GACnB,aAEAF,EAAEgB,YAAa,EAAIhB,EAAEmB,aAAU,EAC/B,IAAIlB,EAAIkC,EAAEjC,EAAE,KACRE,EAAI+B,EAAEjC,EAAE,KACRqB,EAAIY,EAAEjC,EAAE,KACR2B,EAAIM,EAAEjC,EAAE,KACRC,EAAIgC,EAAEjC,EAAE,KAEZ,SAASiC,EAAEpC,GACT,OAAOA,GAAKA,EAAEiB,WAAajB,EAAI,CAC7BoB,QAASpB,GAIb,IAAIU,EAAI,WACN,SAASV,EAAEA,EAAGC,GACZ,QAAI,IAAWA,IAAMA,GAAI,GAAK,MAAQD,GAAK,KAAOA,EAAG,MAAM,IAAIwG,MAAM,sCACrE1B,KAAK+V,IAAM7a,EAAG8E,KAAKgW,aAAe,IAAI,IAAO7a,GAAK6E,KAAK4V,QAGzD,IAAIza,EAAID,EAAEqB,UACV,OAAOpB,EAAE8a,MAAQ,WACf,OAAOjW,KAAK+V,KACX5a,EAAEkU,KAAO,SAAUnU,GACpB,OAAOA,EAAEmU,KAAKrP,KAAK+V,MAClB5a,EAAE+a,aAAe,WAClB,IAAIhb,EAAI8E,KACRA,KAAKgW,aAAaG,QAAU,GAC5B,IAAIhb,EAAIG,EAAEgB,QAAQuT,KAAKzU,EAAEkB,SAAS,SAAUnB,GAC1C,GAAI,mBAAqBA,EAAEkU,KAAM,OAAOlU,EAAEkU,KAAKnU,GAC/C,GAAIC,EAAEkU,gBAAgB5U,MAAO,OAAOU,EAAEkU,KAAK+G,MAAK,SAAUjb,GACxD,OAAOD,EAAEmU,KAAKlU,MAEhB,MAAM,IAAIuG,MAAM,2CAElB,OAAOvG,IAAM6E,KAAKgW,aAAaG,QAAUhb,EAAEkb,SAASrW,KAAKiW,UAAWjW,KAAKgW,aAAaG,SACrFhb,EAAEmb,WAAa,WAChB,OAAOtW,KAAKgW,aAAaG,QAAUnW,KAAKgW,aAAaG,QAAUnW,KAAKkW,gBACnE/a,EAAEob,eAAiB,SAAUrb,GAC9B,OAAOA,EAAIsb,OAAOxW,KAAKsW,aAAarb,MAAM6H,eAAiB,GAAK9C,KAAKsW,aAAarb,MAAQ,IACzFE,EAAEsb,kBAAoB,WACvB,OAAOzW,KAAKsW,aAAaI,SACxBvb,EAAEwb,MAAQ,WACX,OAAO3W,KAAKgW,aAAaY,GAAK5W,KAAKgW,aAAaY,GAAK5W,KAAK6W,WACzD1b,EAAE0b,QAAU,WACb,IAAI3b,EAAI8E,KACRA,KAAKgW,aAAaY,GAAK,GACvB,IAAIzb,EAAIG,EAAEgB,QAAQuT,KAAKtU,EAAEe,SAAS,SAAUnB,GAC1C,GAAI,mBAAqBA,EAAEkU,KAAM,OAAOlU,EAAEkU,KAAKnU,GAC/C,GAAIC,EAAEkU,gBAAgB5U,MAAO,OAAOU,EAAEkU,KAAK+G,MAAK,SAAUjb,GACxD,OAAOD,EAAEmU,KAAKlU,MAEhB,MAAM,IAAIuG,MAAM,2CAElB,OAAOvG,IAAM6E,KAAKgW,aAAaY,GAAKzb,EAAEkb,SAASrW,KAAKiW,UAAWjW,KAAKgW,aAAaY,IAChFzb,EAAE2b,UAAY,SAAU5b,GACzB,IAAIC,EAAI6E,KAAK2W,QAAQ1b,KACrB,OAAOC,EAAIsb,OAAOrb,GAAG2H,eAAiB,GAAK3H,GAAK,IAC/CA,EAAE4b,aAAe,WAClB,OAAO/W,KAAK2W,QAAQD,SACnBvb,EAAE6b,YAAc,WACjB,OAAOhX,KAAKgW,aAAaiB,SAAWjX,KAAKgW,aAAaiB,SAAWjX,KAAKkX,iBACrE/b,EAAEgc,gBAAkB,SAAUjc,QAC/B,IAAWA,IAAMA,GAAI,GACrB,IAAIC,EAAI6E,KAAKgX,cAAc5Q,KAC3B,OAAOlL,EAAIsb,OAAOrb,GAAG2H,eAAiB,GAAK3H,GAAK,IAC/CA,EAAE+b,cAAgB,WACnB,IAAIhc,EAAI8E,KACRA,KAAKgW,aAAaiB,SAAW,GAC7B,IAAI9b,EAAIG,EAAEgB,QAAQuT,KAAKnT,EAAEJ,SAAS,SAAUnB,GAC1C,GAAI,mBAAqBA,EAAEkU,KAAM,OAAOlU,EAAEkU,KAAKnU,GAC/C,GAAIC,EAAEkU,gBAAgB5U,MAAO,OAAOU,EAAEkU,KAAK+G,MAAK,SAAUjb,GACxD,OAAOD,EAAEmU,KAAKlU,MAEhB,MAAM,IAAIuG,MAAM,2CAElB,OAAOvG,IAAM6E,KAAKgW,aAAaiB,SAAW9b,EAAEkb,SAASrW,KAAKiW,UAAWjW,KAAKgW,aAAaiB,UACtF9b,EAAEic,UAAY,WACf,OAAOpX,KAAKgW,aAAaqB,OAASrX,KAAKgW,aAAaqB,OAASrX,KAAKsX,eACjEnc,EAAEoc,cAAgB,SAAUrc,GAC7B,OAAOA,EAAIsb,OAAOxW,KAAKoX,YAAYnc,MAAM6H,eAAiB,GAAK9C,KAAKoX,YAAYnc,MAAQ,IACvFE,EAAEmc,YAAc,WACjB,IAAIpc,EAAI8E,KACRA,KAAKgW,aAAaqB,OAAS,GAC3B,IAAIlc,EAAIG,EAAEgB,QAAQuT,KAAK7S,EAAEV,SAAS,SAAUnB,GAC1C,GAAI,mBAAqBA,EAAEkU,KAAM,OAAOlU,EAAEkU,KAAKnU,GAC/C,GAAIC,EAAEkU,gBAAgB5U,MAAO,OAAOU,EAAEkU,KAAK+G,MAAK,SAAUjb,GACxD,OAAOD,EAAEmU,KAAKlU,MAEhB,MAAM,IAAIuG,MAAM,2CAElB,OAAOvG,IAAM6E,KAAKgW,aAAaqB,OAASlc,EAAEkb,SAASrW,KAAKiW,UAAWjW,KAAKgW,aAAaqB,QACpFlc,EAAEya,MAAQ,WACX,OAAO5V,KAAKkW,eAAgBlW,KAAK6W,UAAW7W,KAAKkX,gBAAiBlX,KAAKsX,cAAetX,MACrF7E,EAAE0a,UAAY,WACf,OAAOva,EAAEgB,QAAQwT,OAAO,GAAI9P,KAAKgW,eAChC7a,EAAEqc,UAAY,SAAUtc,GACzB,IAAIC,EAAI6E,KACJ3E,EAAI,GACJD,EAAI,EACJG,EAAI,GACJmB,EAAI,EAER,GAAI5B,OAAOsD,KAAKlD,GAAG+L,SAAQ,SAAU9L,GACnC,IAAI6B,EAAI9B,EAAEC,GACV,iBAAmB6B,GAAKzB,EAAEJ,GAAK6B,EAAGN,GAAK,GAAK,iBAAmBM,IAAM3B,EAAEF,GAAK6B,EAAG5B,GAAK,MAClFA,EAAI,EAAG,CACT,IAAI4B,EAAIlC,OAAOsD,KAAK/C,GAChBiC,EAAIhC,EAAEgB,QAAQuT,KAAK7S,GAAG,SAAU9B,GAClC,OAAOC,EAAEsc,KAAKvc,MAGhB,GAAIoC,EAAG,CACL,IAAI1B,EAAIoE,KAAKwX,UAAUnc,EAAEiC,IACzB,QAAI,IAAW1B,EAAG,OAAOA,EAG3B,IAAID,EAAIL,EAAEgB,QAAQuT,KAAK7S,GAAG,SAAU9B,GAClC,OAAOC,EAAEuc,WAAWxc,MAGtB,GAAIS,EAAG,CACL,IAAI4B,EAAIyC,KAAKwX,UAAUnc,EAAEM,IACzB,QAAI,IAAW4B,EAAG,OAAOA,GAI7B,GAAIb,EAAI,EAAG,CACT,IAAIlB,EAAIV,OAAOsD,KAAK7C,GAChB6B,EAAI9B,EAAEgB,QAAQuT,KAAKrU,GAAG,SAAUN,GAClC,OAAOC,EAAEwc,UAAUzc,GAAG,MAExB,QAAI,IAAWkC,EAAG,OAAO4C,KAAK4X,eAAerc,EAAE6B,MAEhDjC,EAAEwc,UAAY,SAAUzc,EAAGC,QAC5B,IAAWA,IAAMA,GAAI,GACrB,IAAIE,EAAI2E,KAAKuW,iBAAiBzT,cAC1B1H,EAAIF,EAAE4H,cACNvH,EAAID,EAAEgB,QAAQ2T,sBAAsB7U,GACxC,OAAOD,GAAKI,IAAMH,EAAIG,EAAEuH,eAAgB1H,IAAMC,GAC7CF,EAAEyc,eAAiB,SAAU1c,GAC9B,IAAIC,EAAI,CAAC,GACLE,EAAIH,EACJE,GAAI,EACJG,EAAIyE,KAAKyW,oBACb,GAAI,iBAAmBlb,EAAG,MAAO,MAAQL,EAAE,IAAM,MAAQA,EAAE,IAAMG,EAAIH,EAAE2c,OAAO,GAAI,MAAQ3c,EAAE,IAAME,GAAI,EAAIC,EAAIH,EAAE2c,OAAO,IAAM1c,EAAI,GAAI,MAAQD,EAAE,GAAKC,EAAEiG,KAAK,GAAKjG,EAAEiG,MAAM,IAAM,MAAQlG,EAAE,GAAKG,EAAIH,EAAE2c,OAAO,GAAK,MAAQ3c,EAAE,KAAOE,GAAI,EAAIC,EAAIH,EAAE2c,OAAO,IAAK1c,EAAEqH,QAAQlH,EAAEgB,QAAQqT,gBAAgBpU,EAAGF,EAAGD,KAAO,GAC1SD,EAAEsc,KAAO,SAAUvc,GACpB,OAAO8E,KAAK8W,WAAU,KAAQN,OAAOtb,GAAG4H,eACvC3H,EAAEuc,WAAa,SAAUxc,GAC1B,OAAO8E,KAAKmX,iBAAgB,KAAQX,OAAOtb,GAAG4H,eAC7C3H,EAAE2c,SAAW,SAAU5c,GACxB,OAAO8E,KAAKuX,eAAc,KAAQf,OAAOtb,GAAG4H,eAC3C3H,EAAE4c,GAAK,SAAU7c,EAAGC,GACrB,YAAO,IAAWA,IAAMA,GAAI,GAAK6E,KAAK2X,UAAUzc,EAAGC,IAAM6E,KAAKyX,KAAKvc,IAAM8E,KAAK0X,WAAWxc,IACxFC,EAAEib,KAAO,SAAUlb,GACpB,IAAIC,EAAI6E,KACR,YAAO,IAAW9E,IAAMA,EAAI,IAAKA,EAAEkb,MAAK,SAAUlb,GAChD,OAAOC,EAAE4c,GAAG7c,OAEbA,EAjJG,GAoJRC,EAAEmB,QAAUV,EAAGV,EAAEX,QAAUY,EAAEmB,SAE/B0b,GAAI,SAAW9c,EAAGC,EAAGE,GACnB,aAEAF,EAAEgB,YAAa,EAAIhB,EAAEmB,aAAU,EAC/B,IAAIlB,EACAG,GAAKH,EAAIC,EAAE,MAAQD,EAAEe,WAAaf,EAAI,CACxCkB,QAASlB,GAEPsB,EAAI,6BACJM,EAAI,CAAC,CACPqS,KAAM,CAAC,cACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,aAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,2BAA4BhU,IAAMK,EAAEe,QAAQ4S,cAAcxS,EAAGxB,GAC7F,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,UACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,SAEJI,EAAIE,EAAEe,QAAQ4S,cAAcxS,EAAGxB,IAAMK,EAAEe,QAAQ4S,cAAc,kCAAmChU,GACpG,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,gBACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,SAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,2BAA4BhU,IAAMK,EAAEe,QAAQ4S,cAAcxS,EAAGxB,GAC7F,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,mBACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,gCAEJI,EAAIE,EAAEe,QAAQ4S,cAAcxS,EAAGxB,IAAMK,EAAEe,QAAQ4S,cAAc,2CAA4ChU,GAC7G,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,UACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,uBAEJI,EAAIE,EAAEe,QAAQ4S,cAAcxS,EAAGxB,IAAMK,EAAEe,QAAQ4S,cAAc,iCAAkChU,GACnG,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,cACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,cAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,qCAAsChU,IAAMK,EAAEe,QAAQ4S,cAAcxS,EAAGxB,GACvG,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,UACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,SAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,iCAAkChU,IAAMK,EAAEe,QAAQ4S,cAAcxS,EAAGxB,GACnG,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,UACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,SAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,iCAAkChU,IAAMK,EAAEe,QAAQ4S,cAAcxS,EAAGxB,GACnG,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,UACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,eAEJI,EAAIE,EAAEe,QAAQ4S,cAAcxS,EAAGxB,IAAMK,EAAEe,QAAQ4S,cAAc,kCAAmChU,GACpG,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,yBACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,eAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,gCAAiChU,IAAMK,EAAEe,QAAQ4S,cAAcxS,EAAGxB,GAClG,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,cACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,kBAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,sCAAuChU,IAAMK,EAAEe,QAAQ4S,cAAcxS,EAAGxB,GACxG,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,cACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,cAEJI,EAAIE,EAAEe,QAAQ4S,cAAcxS,EAAGxB,IAAMK,EAAEe,QAAQ4S,cAAc,sCAAuChU,GACxG,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,kBACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,WAEJI,EAAIE,EAAEe,QAAQ4S,cAAcxS,EAAGxB,IAAMK,EAAEe,QAAQ4S,cAAc,0CAA2ChU,GAC5G,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,aACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,YAEJI,EAAIE,EAAEe,QAAQ4S,cAAcxS,EAAGxB,IAAMK,EAAEe,QAAQ4S,cAAc,qCAAsChU,GACvG,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,WACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,UAEJI,EAAIE,EAAEe,QAAQ4S,cAAcxS,EAAGxB,IAAMK,EAAEe,QAAQ4S,cAAc,mCAAoChU,GACrG,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,aACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,YAEJI,EAAIE,EAAEe,QAAQ4S,cAAcxS,EAAGxB,IAAMK,EAAEe,QAAQ4S,cAAc,qCAAsChU,GACvG,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,aACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,YAEJI,EAAIE,EAAEe,QAAQ4S,cAAcxS,EAAGxB,IAAMK,EAAEe,QAAQ4S,cAAc,qCAAsChU,GACvG,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,mBACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,UAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,2CAA4ChU,IAAMK,EAAEe,QAAQ4S,cAAcxS,EAAGxB,GAC7G,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,cACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,iBAAiBoU,KAAKnU,GAAK,kBAAoB,cAEnDG,EAAIE,EAAEe,QAAQ4S,cAAc,kDAAmDhU,IAAMK,EAAEe,QAAQ4S,cAAcxS,EAAGxB,GACpH,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,iBACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,qBAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,iCAAkChU,GAClE,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,YACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,kBAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,2BAA4BhU,GAC5D,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,kBACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,kBAEJI,EAAIE,EAAEe,QAAQ6S,eAAe,mCAAoCjU,GACrE,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,YACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,WAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,6BAA8BhU,GAC9D,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,cACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,aAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,+BAAgChU,GAChE,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,aACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,YAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,qCAAsChU,GACtE,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,SACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,eAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,0BAA2BhU,GAC3D,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,YACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,aAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,+BAAgChU,GAChE,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,aACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,YAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,8BAA+BhU,GAC/D,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,sBAAuB,gBAC9BgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,cAEJI,EAAIE,EAAEe,QAAQ4S,cAAcxS,EAAGxB,IAAMK,EAAEe,QAAQ4S,cAAc,qCAAsChU,GACvG,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,mBACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,iBAEJI,EAAIE,EAAEe,QAAQ4S,cAAcxS,EAAGxB,IAAMK,EAAEe,QAAQ4S,cAAc,0CAA2ChU,GAC5G,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,SACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,QAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,4BAA6BhU,GAC7D,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,UACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,SAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,0CAA2ChU,IAAMK,EAAEe,QAAQ4S,cAAcxS,EAAGxB,GAC5G,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,aACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,YAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,qCAAsChU,IAAMK,EAAEe,QAAQ4S,cAAcxS,EAAGxB,GACvG,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,4BACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,WAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,oDAAqDhU,GACrF,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,aACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,YAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,kCAAmChU,GACnE,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,gBACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,QAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,wCAAyChU,GACzE,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,aACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,YAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,qCAAsChU,IAAMK,EAAEe,QAAQ4S,cAAcxS,EAAGxB,GACvG,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,sBACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,UAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,2CAA4ChU,GAC5E,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,QACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,iBAEJI,EAAIE,EAAEe,QAAQ4S,cAAc,6BAA8BhU,GAC9D,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,SAAcnU,GAClB,IAAIC,GAAKD,EAAEmU,KAAK,iBACZhU,EAAIH,EAAEmU,KAAK,YACf,OAAOlU,GAAKE,GAEdgb,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,mBAEJI,EAAIE,EAAEe,QAAQ4S,cAAcxS,EAAGxB,GACnC,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,kBACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,iBAEJI,EAAIE,EAAEe,QAAQ4S,cAAcxS,EAAGxB,GACnC,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,uBACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAM,UAEJI,EAAIE,EAAEe,QAAQ4S,cAAcxS,EAAGxB,GACnC,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,OACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,GAAK,IAAMD,EAAE0G,OAAO,OAAS,yBAA2B,eAC5D,MAAO,CACL3G,KAAMM,EAAEe,QAAQ4S,cAAc/T,EAAGD,GACjCwb,QAASnb,EAAEe,QAAQ6S,eAAehU,EAAGD,OAI3CC,EAAEmB,QAAUU,EAAG9B,EAAEX,QAAUY,EAAEmB,SAE/B2b,GAAI,SAAW/c,EAAGC,EAAGE,GACnB,aAEAF,EAAEgB,YAAa,EAAIhB,EAAEmB,aAAU,EAC/B,IAAIlB,EACAG,GAAKH,EAAIC,EAAE,MAAQD,EAAEe,WAAaf,EAAI,CACxCkB,QAASlB,GAEPsB,EAAIrB,EAAE,IACN2B,EAAI,CAAC,CACPqS,KAAM,CAAC,aACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAII,EAAEe,QAAQ4S,cAAc,wBAAyBhU,GACzD,MAAO,CACLD,KAAMyB,EAAE2T,OAAO2B,KACf0E,QAASvb,KAGZ,CACDkU,KAAM,CAAC,kBACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAII,EAAEe,QAAQ4S,cAAc,yCAA0ChU,GAC1E,MAAO,CACLD,KAAMyB,EAAE2T,OAAOsE,aACf+B,QAASvb,KAGZ,CACDkU,KAAM,CAAC,aACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAII,EAAEe,QAAQ4S,cAAc,iCAAkChU,GAC9DG,EAAIE,EAAEe,QAAQgT,sBAAsBnU,GACxC,MAAO,CACLF,KAAMyB,EAAE2T,OAAOuE,QACf8B,QAASvb,EACT+c,YAAa7c,KAGhB,CACDgU,KAAM,CAAC,+BACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAMyB,EAAE2T,OAAOyE,KAEbzZ,EAAIE,EAAEe,QAAQ6S,eAAe,wBAAyBjU,GAC1D,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,cACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAII,EAAEe,QAAQ4S,cAAc,6BAA8BhU,GAAG+H,QAAQ,SAAU,KAC/E5H,EAAIE,EAAEe,QAAQiT,oBAAoBpU,GAClCC,EAAI,CACNH,KAAMyB,EAAE2T,OAAOwE,MACf6B,QAASvb,GAEX,OAAOE,IAAMD,EAAE8c,YAAc7c,GAAID,IAElC,CACDiU,KAAM,CAAC,uBACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAII,EAAEe,QAAQ4S,cAAc,qCAAsChU,GAAG+H,QAAQ,SAAU,KAC3F,MAAO,CACLhI,KAAMyB,EAAE2T,OAAOyE,IACf4B,QAASvb,KAGZ,CACDkU,KAAM,SAAcnU,GAClB,IAAIC,GAAKD,EAAEmU,KAAK,iBACZhU,EAAIH,EAAEmU,KAAK,YACf,OAAOlU,GAAKE,GAEdgb,SAAU,SAAkBnb,GAC1B,IAAIC,EAAII,EAAEe,QAAQ4S,cAAc,8BAA+BhU,GAC3DG,EAAIE,EAAEe,QAAQmT,sBAAsBtU,GACpCC,EAAI,CACNH,KAAMyB,EAAE2T,OAAO0E,QACf2B,QAASvb,GAEX,OAAOE,IAAMD,EAAE8c,YAAc7c,GAAID,IAElC,CACDiU,KAAM,CAAC,mBACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAII,EAAEe,QAAQ4S,cAAc,mCAAoChU,GAChEG,EAAI,CACNJ,KAAMyB,EAAE2T,OAAO2E,OAEjB,OAAO7Z,GAAKA,EAAER,SAAWU,EAAEqb,QAAUvb,GAAIE,IAE1C,CACDgU,KAAM,CAAC,sBAAuB,gBAC9BgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAII,EAAEe,QAAQ4S,cAAc,kCAAmChU,IAAMK,EAAEe,QAAQ4S,cAAc,mCAAoChU,IAAMK,EAAEe,QAAQ4S,cAAc,aAAchU,GACjL,MAAO,CACLD,KAAMyB,EAAE2T,OAAOG,WACfkG,QAASvb,KAGZ,CACDkU,KAAM,CAAC,SACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAII,EAAEe,QAAQ4S,cAAc,uBAAwBhU,GACxD,MAAO,CACLD,KAAMyB,EAAE2T,OAAOE,KACfmG,QAASvb,KAGZ,CACDkU,KAAM,CAAC,UACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAII,EAAEe,QAAQ4S,cAAc,2BAA4BhU,GAC5D,MAAO,CACLD,KAAMyB,EAAE2T,OAAOwB,MACf6E,QAASvb,KAGZ,CACDkU,KAAM,CAAC,UACPgH,SAAU,WACR,MAAO,CACLpb,KAAMyB,EAAE2T,OAAO4E,SAGlB,CACD5F,KAAM,CAAC,QACPgH,SAAU,WACR,MAAO,CACLpb,KAAMyB,EAAE2T,OAAO6E,YAGlB,CACD7F,KAAM,CAAC,iBACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAII,EAAEe,QAAQ4S,cAAc,mCAAoChU,GACpE,MAAO,CACLD,KAAMyB,EAAE2T,OAAO8E,aACfuB,QAASvb,MAIfA,EAAEmB,QAAUU,EAAG9B,EAAEX,QAAUY,EAAEmB,SAE/B6b,GAAI,SAAWjd,EAAGC,EAAGE,GACnB,aAEAF,EAAEgB,YAAa,EAAIhB,EAAEmB,aAAU,EAC/B,IAAIlB,EACAG,GAAKH,EAAIC,EAAE,MAAQD,EAAEe,WAAaf,EAAI,CACxCkB,QAASlB,GAEPsB,EAAIrB,EAAE,IACN2B,EAAI,CAAC,CACPqS,KAAM,CAAC,cACPgH,SAAU,WACR,MAAO,CACLjQ,KAAM,MACNgS,OAAQ,YAGX,CACD/I,KAAM,CAAC,WACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAII,EAAEe,QAAQ4S,cAAc,aAAchU,IAAM,OAChDG,EAAI,CACN+K,KAAM1J,EAAE4T,cAAckE,OACtB4D,OAAQ,UAEV,OAAOjd,IAAME,EAAEgd,MAAQld,GAAIE,IAE5B,CACDgU,KAAM,CAAC,2BACPgH,SAAU,WACR,MAAO,CACLjQ,KAAM1J,EAAE4T,cAAciE,OACtB6D,OAAQ,WAGX,CACD/I,KAAM,CAAC,SACPgH,SAAU,WACR,MAAO,CACLjQ,KAAM1J,EAAE4T,cAAciE,OACtB6D,OAAQ,QACRC,MAAO,UAGV,CACDhJ,KAAM,CAAC,+BACPgH,SAAU,WACR,MAAO,CACLjQ,KAAM1J,EAAE4T,cAAciE,OACtB6D,OAAQ,QACRC,MAAO,UAGV,CACDhJ,KAAM,CAAC,eACPgH,SAAU,WACR,MAAO,CACLjQ,KAAM1J,EAAE4T,cAAciE,OACtB6D,OAAQ,SACRC,MAAO,sBAGV,CACDhJ,KAAM,CAAC,SACPgH,SAAU,WACR,MAAO,CACLjQ,KAAM1J,EAAE4T,cAAciE,OACtB6D,OAAQ,YAGX,CACD/I,KAAM,CAAC,kBACPgH,SAAU,WACR,MAAO,CACLjQ,KAAM1J,EAAE4T,cAAciE,UAGzB,CACDlF,KAAM,SAAcnU,GAClB,IAAIC,EAAID,EAAEmU,KAAK,gBACXhU,EAAIH,EAAEmU,KAAK,uBACf,OAAOlU,IAAME,GAEfgb,SAAU,SAAkBnb,GAC1B,IAAIC,EAAII,EAAEe,QAAQ4S,cAAc,iBAAkBhU,GAClD,MAAO,CACLkL,KAAM1J,EAAE4T,cAAckE,OACtB4D,OAAQ,QACRC,MAAOld,KAGV,CACDkU,KAAM,CAAC,mBAAoB,iBAC3BgH,SAAU,WACR,MAAO,CACLjQ,KAAM1J,EAAE4T,cAAckE,OACtB4D,OAAQ,WAGX,CACD/I,KAAM,CAAC,aACPgH,SAAU,WACR,MAAO,CACLjQ,KAAM1J,EAAE4T,cAAckE,UAGzB,CACDnF,KAAM,SAAcnU,GAClB,MAAO,eAAiBA,EAAEqb,gBAAe,IAE3CF,SAAU,WACR,MAAO,CACLjQ,KAAM1J,EAAE4T,cAAckE,OACtB4D,OAAQ,gBAGX,CACD/I,KAAM,SAAcnU,GAClB,MAAO,SAAWA,EAAEqb,gBAAe,IAErCF,SAAU,WACR,MAAO,CACLjQ,KAAM1J,EAAE4T,cAAckE,UAGzB,CACDnF,KAAM,SAAcnU,GAClB,MAAO,kBAAoBA,EAAEqb,kBAE/BF,SAAU,WACR,MAAO,CACLjQ,KAAM1J,EAAE4T,cAAckE,OACtB4D,OAAQ,eAGX,CACD/I,KAAM,SAAcnU,GAClB,IAAIC,EAAImd,OAAO9B,OAAOtb,EAAE6b,gBAAgB5V,MAAM,KAAK,IACnD,MAAO,YAAcjG,EAAE4b,WAAU,IAAO3b,GAAK,GAE/Ckb,SAAU,WACR,MAAO,CACLjQ,KAAM1J,EAAE4T,cAAciE,UAGzB,CACDlF,KAAM,SAAcnU,GAClB,MAAO,YAAcA,EAAE4b,WAAU,IAEnCT,SAAU,WACR,MAAO,CACLjQ,KAAM1J,EAAE4T,cAAckE,UAGzB,CACDnF,KAAM,SAAcnU,GAClB,MAAO,UAAYA,EAAE4b,WAAU,IAEjCT,SAAU,WACR,MAAO,CACLjQ,KAAM1J,EAAE4T,cAAcmE,QACtB2D,OAAQ,WAGX,CACD/I,KAAM,SAAcnU,GAClB,MAAO,YAAcA,EAAE4b,WAAU,IAEnCT,SAAU,WACR,MAAO,CACLjQ,KAAM1J,EAAE4T,cAAcmE,WAGzB,CACDpF,KAAM,SAAcnU,GAClB,MAAO,UAAYA,EAAE4b,WAAU,IAEjCT,SAAU,WACR,MAAO,CACLjQ,KAAM1J,EAAE4T,cAAcmE,WAGzB,CACDpF,KAAM,SAAcnU,GAClB,MAAO,kBAAoBA,EAAE4b,WAAU,IAEzCT,SAAU,WACR,MAAO,CACLjQ,KAAM1J,EAAE4T,cAAcoE,MAGzB,CACDrF,KAAM,SAAcnU,GAClB,MAAO,SAAWA,EAAE4b,WAAU,IAEhCT,SAAU,WACR,MAAO,CACLjQ,KAAM1J,EAAE4T,cAAcoE,OAI5BvZ,EAAEmB,QAAUU,EAAG9B,EAAEX,QAAUY,EAAEmB,SAE/Bic,GAAI,SAAWrd,EAAGC,EAAGE,GACnB,aAEAF,EAAEgB,YAAa,EAAIhB,EAAEmB,aAAU,EAC/B,IAAIlB,EACAG,GAAKH,EAAIC,EAAE,MAAQD,EAAEe,WAAaf,EAAI,CACxCkB,QAASlB,GAEPsB,EAAIrB,EAAE,IACN2B,EAAI,CAAC,CACPqS,KAAM,SAAcnU,GAClB,MAAO,mBAAqBA,EAAEqb,gBAAe,IAE/CF,SAAU,SAAkBnb,GAC1B,GAAI,WAAWmU,KAAKnU,GAAI,MAAO,CAC7BD,KAAMyB,EAAE0T,WAAWiF,OAErB,IAAIla,EAAII,EAAEe,QAAQ4S,cAAc,0BAA2BhU,GAC3D,MAAO,CACLD,KAAMyB,EAAE0T,WAAWgF,SACnBsB,QAASvb,KAGZ,CACDkU,KAAM,CAAC,YACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAMyB,EAAE0T,WAAWkF,SAEjBja,EAAIE,EAAEe,QAAQ4S,cAAc,6BAA8BhU,GAC9D,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,SAAcnU,GAClB,OAAOA,EAAEmU,KAAK,YAEhBgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAMyB,EAAE0T,WAAWmF,QAEjBla,EAAIE,EAAEe,QAAQ4S,cAAc,4BAA6BhU,GAC7D,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,SAAcnU,GAClB,IAAIC,EAAID,EAAEmU,KAAK,UACXhU,EAAIH,EAAEmU,KAAK,eACf,OAAOlU,IAAME,GAEfgb,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAMyB,EAAE0T,WAAWoF,OAEjBna,EAAIE,EAAEe,QAAQ4S,cAAc,2BAA4BhU,GAC5D,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,IAE9B,CACDkU,KAAM,CAAC,4BACPgH,SAAU,WACR,MAAO,CACLpb,KAAMyB,EAAE0T,WAAWiF,SAGtB,CACDhG,KAAM,CAAC,mBACPgH,SAAU,SAAkBnb,GAC1B,IAAIC,EAAI,CACNF,KAAMyB,EAAE0T,WAAWqF,QAEjBpa,EAAIE,EAAEe,QAAQ4S,cAAc,4BAA6BhU,GAC7D,OAAOG,IAAMF,EAAEub,QAAUrb,GAAIF,KAGjCA,EAAEmB,QAAUU,EAAG9B,EAAEX,QAAUY,EAAEmB,Y,qBC91CnC,IAAIkc,EAAoB,EAAQ,QAE5BC,EAAkB,EAAQ,QAE1BC,EAA6B,EAAQ,QAErCC,EAAoB,EAAQ,QAMhCre,EAAOC,QAJP,SAA4Bqe,GAC1B,OAAOJ,EAAkBI,IAAQH,EAAgBG,IAAQF,EAA2BE,IAAQD,KAI9Fre,EAAOC,QAAiB,QAAID,EAAOC,QAASD,EAAOC,QAAQ4B,YAAa,G,qBCbxE,IAAI0c,EAAmB,EAAQ,QAM/Bve,EAAOC,QAJP,SAA4Bqe,GAC1B,GAAIne,MAAMC,QAAQke,GAAM,OAAOC,EAAiBD,IAIlDte,EAAOC,QAAiB,QAAID,EAAOC,QAASD,EAAOC,QAAQ4B,YAAa,G,mBCGxE7B,EAAOC,QAVP,SAA2Bqe,EAAKE,IACnB,MAAPA,GAAeA,EAAMF,EAAIje,UAAQme,EAAMF,EAAIje,QAE/C,IAAK,IAAIY,EAAI,EAAGwd,EAAO,IAAIte,MAAMqe,GAAMvd,EAAIud,EAAKvd,IAC9Cwd,EAAKxd,GAAKqd,EAAIrd,GAGhB,OAAOwd,GAITze,EAAOC,QAAiB,QAAID,EAAOC,QAASD,EAAOC,QAAQ4B,YAAa,G,kCCTxE,IAAI6c,EAAc,EAAQ,QAEtBC,EAAU,EAAQ,QAElBC,EAAS,GAAGjY,MACZkY,EAAgB,CACpB,UACA,OACA,OACIC,EAAkB,GACtBte,OAAOsD,KAAK6a,GAAShS,SAAQ,SAAUoR,GACrCe,EAAgBF,EAAOzd,KAAKwd,EAAQZ,GAAOgB,QAAQhX,OAAOuN,KAAK,KAAOyI,KAExE,IAAIiB,EAAW,GAEf,SAASC,EAAM/e,EAAK6d,GAClB,KAAMrY,gBAAgBuZ,GACpB,OAAO,IAAIA,EAAM/e,EAAK6d,GAOxB,GAJIA,GAASA,KAASc,IACpBd,EAAQ,MAGNA,KAAWA,KAASY,GACtB,MAAM,IAAIvX,MAAM,kBAAoB2W,GAGtC,IAAI9c,EACAie,EAEJ,GAAW,MAAPhf,EAEFwF,KAAKqY,MAAQ,MACbrY,KAAKyZ,MAAQ,CAAC,EAAG,EAAG,GACpBzZ,KAAK0Z,OAAS,OACT,GAAIlf,aAAe+e,EACxBvZ,KAAKqY,MAAQ7d,EAAI6d,MACjBrY,KAAKyZ,MAAQjf,EAAIif,MAAMxY,QACvBjB,KAAK0Z,OAASlf,EAAIkf,YACb,GAAmB,iBAARlf,EAAkB,CAClC,IAAIiN,EAASuR,EAAYjd,IAAIvB,GAE7B,GAAe,OAAXiN,EACF,MAAM,IAAI/F,MAAM,sCAAwClH,GAG1DwF,KAAKqY,MAAQ5Q,EAAO4Q,MACpBmB,EAAWP,EAAQjZ,KAAKqY,OAAOmB,SAC/BxZ,KAAKyZ,MAAQhS,EAAOvL,MAAM+E,MAAM,EAAGuY,GACnCxZ,KAAK0Z,OAA2C,iBAA3BjS,EAAOvL,MAAMsd,GAAyB/R,EAAOvL,MAAMsd,GAAY,OAC/E,GAAIhf,EAAIG,OAAQ,CACrBqF,KAAKqY,MAAQA,GAAS,MACtBmB,EAAWP,EAAQjZ,KAAKqY,OAAOmB,SAE/B,IAAIG,EAAST,EAAOzd,KAAKjB,EAAK,EAAGgf,GAEjCxZ,KAAKyZ,MAAQG,EAAUD,EAAQH,GAC/BxZ,KAAK0Z,OAAkC,iBAAlBlf,EAAIgf,GAAyBhf,EAAIgf,GAAY,OAC7D,GAAmB,iBAARhf,EAEhBA,GAAO,SACPwF,KAAKqY,MAAQ,MACbrY,KAAKyZ,MAAQ,CAACjf,GAAO,GAAK,IAAMA,GAAO,EAAI,IAAY,IAANA,GACjDwF,KAAK0Z,OAAS,MACT,CACL1Z,KAAK0Z,OAAS,EACd,IAAItb,EAAOtD,OAAOsD,KAAK5D,GAEnB,UAAWA,IACb4D,EAAKxD,OAAOwD,EAAKoE,QAAQ,SAAU,GACnCxC,KAAK0Z,OAA8B,iBAAdlf,EAAIqf,MAAqBrf,EAAIqf,MAAQ,GAG5D,IAAIC,EAAa1b,EAAKiE,OAAOuN,KAAK,IAElC,KAAMkK,KAAcV,GAClB,MAAM,IAAI1X,MAAM,sCAAwCY,KAAKC,UAAU/H,IAGzEwF,KAAKqY,MAAQe,EAAgBU,GAC7B,IAAIT,EAASJ,EAAQjZ,KAAKqY,OAAOgB,OAC7BI,EAAQ,GAEZ,IAAKle,EAAI,EAAGA,EAAI8d,EAAO1e,OAAQY,IAC7Bke,EAAMrY,KAAK5G,EAAI6e,EAAO9d,KAGxByE,KAAKyZ,MAAQG,EAAUH,GAIzB,GAAIH,EAAStZ,KAAKqY,OAGhB,IAFAmB,EAAWP,EAAQjZ,KAAKqY,OAAOmB,SAE1Bje,EAAI,EAAGA,EAAIie,EAAUje,IAAK,CAC7B,IAAI+E,EAAQgZ,EAAStZ,KAAKqY,OAAO9c,GAE7B+E,IACFN,KAAKyZ,MAAMle,GAAK+E,EAAMN,KAAKyZ,MAAMle,KAKvCyE,KAAK0Z,OAASxX,KAAKsB,IAAI,EAAGtB,KAAKC,IAAI,EAAGnC,KAAK0Z,SAEvC5e,OAAOif,QACTjf,OAAOif,OAAO/Z,MAqRlB,SAASga,EAAO3B,EAAO4B,EAASC,GAM9B,OALA7B,EAAQ5d,MAAMC,QAAQ2d,GAASA,EAAQ,CAACA,IAClCpR,SAAQ,SAAUvL,IACrB4d,EAAS5d,KAAO4d,EAAS5d,GAAK,KAAKue,GAAWC,KAEjD7B,EAAQA,EAAM,GACP,SAAU8B,GACf,IAAI1S,EAEJ,OAAIpH,UAAU1F,QACRuf,IACFC,EAAMD,EAASC,KAGjB1S,EAASzH,KAAKqY,MACPoB,MAAMQ,GAAWE,EACjB1S,IAGTA,EAASzH,KAAKqY,KAASoB,MAAMQ,GAEzBC,IACFzS,EAASyS,EAASzS,IAGbA,IAIX,SAAS2S,EAAM5W,GACb,OAAO,SAAU/F,GACf,OAAOyE,KAAKsB,IAAI,EAAGtB,KAAKC,IAAIqB,EAAK/F,KAIrC,SAAS4c,EAAYF,GACnB,OAAO1f,MAAMC,QAAQyf,GAAOA,EAAM,CAACA,GAGrC,SAASP,EAAUhB,EAAKje,GACtB,IAAK,IAAIY,EAAI,EAAGA,EAAIZ,EAAQY,IACJ,iBAAXqd,EAAIrd,KACbqd,EAAIrd,GAAK,GAIb,OAAOqd,EA/TTW,EAAMhd,UAAY,CAChBI,SAAU,WACR,OAAOqD,KAAKsa,UAEdC,OAAQ,WACN,OAAOva,KAAKA,KAAKqY,UAEnBiC,OAAQ,SAAgBE,GACtB,IAAIzV,EAAO/E,KAAKqY,SAASW,EAAYyB,GAAKza,KAAOA,KAAK0a,MAElDC,EAAuB,KAD3B5V,EAAOA,EAAK6V,MAAwB,iBAAXJ,EAAsBA,EAAS,IACxCd,OAAe3U,EAAK0U,MAAQ1U,EAAK0U,MAAMjZ,OAAOR,KAAK0Z,QACnE,OAAOV,EAAYyB,GAAG1V,EAAKsT,OAAOsC,IAEpCE,cAAe,SAAuBL,GACpC,IAAIzV,EAAO/E,KAAK0a,MAAME,MAAwB,iBAAXJ,EAAsBA,EAAS,GAC9DG,EAAuB,IAAhB5V,EAAK2U,OAAe3U,EAAK0U,MAAQ1U,EAAK0U,MAAMjZ,OAAOR,KAAK0Z,QACnE,OAAOV,EAAYyB,GAAGC,IAAII,QAAQH,IAEpCI,MAAO,WACL,OAAuB,IAAhB/a,KAAK0Z,OAAe1Z,KAAKyZ,MAAMxY,QAAUjB,KAAKyZ,MAAMjZ,OAAOR,KAAK0Z,SAEzE9P,OAAQ,WAKN,IAJA,IAAInC,EAAS,GACT+R,EAAWP,EAAQjZ,KAAKqY,OAAOmB,SAC/BH,EAASJ,EAAQjZ,KAAKqY,OAAOgB,OAExB9d,EAAI,EAAGA,EAAIie,EAAUje,IAC5BkM,EAAO4R,EAAO9d,IAAMyE,KAAKyZ,MAAMle,GAOjC,OAJoB,IAAhByE,KAAK0Z,SACPjS,EAAOoS,MAAQ7Z,KAAK0Z,QAGfjS,GAETuT,UAAW,WACT,IAAIN,EAAM1a,KAAK0a,MAAMjB,MASrB,OARAiB,EAAI,IAAM,IACVA,EAAI,IAAM,IACVA,EAAI,IAAM,IAEU,IAAhB1a,KAAK0Z,QACPgB,EAAItZ,KAAKpB,KAAK0Z,QAGTgB,GAETO,WAAY,WACV,IAAIP,EAAM1a,KAAK0a,MAAM9Q,SASrB,OARA8Q,EAAIrf,GAAK,IACTqf,EAAI/c,GAAK,IACT+c,EAAIvc,GAAK,IAEW,IAAhB6B,KAAK0Z,SACPgB,EAAIb,MAAQ7Z,KAAK0Z,QAGZgB,GAETE,MAAO,SAAeJ,GAEpB,OADAA,EAAStY,KAAKsB,IAAIgX,GAAU,EAAG,GACxB,IAAIjB,EAAMvZ,KAAKyZ,MAAMvN,IA6MhC,SAAsBsO,GACpB,OAAO,SAAUU,GACf,OANJ,SAAiBA,EAAKV,GACpB,OAAOlC,OAAO4C,EAAIC,QAAQX,IAKjBY,CAAQF,EAAKV,IA/MYa,CAAab,IAASha,OAAOR,KAAK0Z,QAAS1Z,KAAKqY,QAElFwB,MAAO,SAAeM,GACpB,OAAI9Z,UAAU1F,OACL,IAAI4e,EAAMvZ,KAAKyZ,MAAMjZ,OAAO0B,KAAKsB,IAAI,EAAGtB,KAAKC,IAAI,EAAGgY,KAAQna,KAAKqY,OAGnErY,KAAK0Z,QAGd4B,IAAKtB,EAAO,MAAO,EAAGI,EAAM,MAC5BmB,MAAOvB,EAAO,MAAO,EAAGI,EAAM,MAC9BoB,KAAMxB,EAAO,MAAO,EAAGI,EAAM,MAC7BqB,IAAKzB,EAAO,CAAC,MAAO,MAAO,MAAO,MAAO,OAAQ,GAAG,SAAUG,GAC5D,OAAQA,EAAM,IAAM,KAAO,OAG7BuB,YAAa1B,EAAO,MAAO,EAAGI,EAAM,MACpCuB,UAAW3B,EAAO,MAAO,EAAGI,EAAM,MAClCwB,YAAa5B,EAAO,MAAO,EAAGI,EAAM,MACpCle,MAAO8d,EAAO,MAAO,EAAGI,EAAM,MAC9ByB,OAAQ7B,EAAO,MAAO,EAAGI,EAAM,MAC/B0B,KAAM9B,EAAO,MAAO,EAAGI,EAAM,MAC7B2B,MAAO/B,EAAO,MAAO,EAAGI,EAAM,MAC9B4B,OAAQhC,EAAO,MAAO,EAAGI,EAAM,MAC/B6B,KAAMjC,EAAO,OAAQ,EAAGI,EAAM,MAC9B8B,QAASlC,EAAO,OAAQ,EAAGI,EAAM,MACjC+B,OAAQnC,EAAO,OAAQ,EAAGI,EAAM,MAChCgC,MAAOpC,EAAO,OAAQ,EAAGI,EAAM,MAC/Blc,EAAG8b,EAAO,MAAO,EAAGI,EAAM,MAC1Bvc,EAAGmc,EAAO,MAAO,EAAGI,EAAM,MAC1B5a,EAAGwa,EAAO,MAAO,EAAGI,EAAM,MAC1B5e,EAAGwe,EAAO,MAAO,EAAGI,EAAM,MAC1Bpd,EAAGgd,EAAO,MAAO,GACjB7b,EAAG6b,EAAO,MAAO,GACjBqC,QAAS,SAAiBlC,GACxB,OAAI9Z,UAAU1F,OACL,IAAI4e,EAAMY,GAGZlB,EAAQjZ,KAAKqY,OAAOgE,QAAQrc,KAAKyZ,QAE1C6C,IAAK,SAAanC,GAChB,OAAI9Z,UAAU1F,OACL,IAAI4e,EAAMY,GAGZnB,EAAYyB,GAAG6B,IAAItc,KAAK0a,MAAME,QAAQnB,QAE/C8C,UAAW,WACT,IAAI7B,EAAM1a,KAAK0a,MAAMjB,MACrB,OAAiB,IAATiB,EAAI,KAAc,IAAe,IAATA,EAAI,KAAc,EAAa,IAATA,EAAI,IAE5D8B,WAAY,WAKV,IAHA,IAAI9B,EAAM1a,KAAK0a,MAAMjB,MACjBgD,EAAM,GAEDlhB,EAAI,EAAGA,EAAImf,EAAI/f,OAAQY,IAAK,CACnC,IAAImhB,EAAOhC,EAAInf,GAAK,IACpBkhB,EAAIlhB,GAAKmhB,GAAQ,OAAUA,EAAO,MAAQxa,KAAKya,KAAKD,EAAO,MAAS,MAAO,KAG7E,MAAO,MAASD,EAAI,GAAK,MAASA,EAAI,GAAK,MAASA,EAAI,IAE1DG,SAAU,SAAkBC,GAE1B,IAAIC,EAAO9c,KAAKwc,aACZO,EAAOF,EAAOL,aAElB,OAAIM,EAAOC,GACDD,EAAO,MAASC,EAAO,MAGzBA,EAAO,MAASD,EAAO,MAEjCE,MAAO,SAAeH,GACpB,IAAII,EAAgBjd,KAAK4c,SAASC,GAElC,OAAII,GAAiB,IACZ,MAGFA,GAAiB,IAAM,KAAO,IAEvCC,OAAQ,WAEN,IAAIxC,EAAM1a,KAAK0a,MAAMjB,MAErB,OADoB,IAATiB,EAAI,GAAoB,IAATA,EAAI,GAAoB,IAATA,EAAI,IAAY,IAC5C,KAEfyC,QAAS,WACP,OAAQnd,KAAKkd,UAEfE,OAAQ,WAGN,IAFA,IAAI1C,EAAM1a,KAAK0a,MAENnf,EAAI,EAAGA,EAAI,EAAGA,IACrBmf,EAAIjB,MAAMle,GAAK,IAAMmf,EAAIjB,MAAMle,GAGjC,OAAOmf,GAET2C,QAAS,SAAiBC,GACxB,IAAIC,EAAMvd,KAAKud,MAEf,OADAA,EAAI9D,MAAM,IAAM8D,EAAI9D,MAAM,GAAK6D,EACxBC,GAETC,OAAQ,SAAgBF,GACtB,IAAIC,EAAMvd,KAAKud,MAEf,OADAA,EAAI9D,MAAM,IAAM8D,EAAI9D,MAAM,GAAK6D,EACxBC,GAETE,SAAU,SAAkBH,GAC1B,IAAIC,EAAMvd,KAAKud,MAEf,OADAA,EAAI9D,MAAM,IAAM8D,EAAI9D,MAAM,GAAK6D,EACxBC,GAETG,WAAY,SAAoBJ,GAC9B,IAAIC,EAAMvd,KAAKud,MAEf,OADAA,EAAI9D,MAAM,IAAM8D,EAAI9D,MAAM,GAAK6D,EACxBC,GAETI,OAAQ,SAAgBL,GACtB,IAAIM,EAAM5d,KAAK4d,MAEf,OADAA,EAAInE,MAAM,IAAMmE,EAAInE,MAAM,GAAK6D,EACxBM,GAETC,QAAS,SAAiBP,GACxB,IAAIM,EAAM5d,KAAK4d,MAEf,OADAA,EAAInE,MAAM,IAAMmE,EAAInE,MAAM,GAAK6D,EACxBM,GAETE,UAAW,WAET,IAAIpD,EAAM1a,KAAK0a,MAAMjB,MACjBU,EAAe,GAATO,EAAI,GAAoB,IAATA,EAAI,GAAqB,IAATA,EAAI,GAC7C,OAAOnB,EAAMmB,IAAIP,EAAKA,EAAKA,IAE7B4D,KAAM,SAAcT,GAClB,OAAOtd,KAAK6Z,MAAM7Z,KAAK0Z,OAAS1Z,KAAK0Z,OAAS4D,IAEhDU,QAAS,SAAiBV,GACxB,OAAOtd,KAAK6Z,MAAM7Z,KAAK0Z,OAAS1Z,KAAK0Z,OAAS4D,IAEhDW,OAAQ,SAAgBC,GACtB,IAAIX,EAAMvd,KAAKud,MACX9B,EAAM8B,EAAI9D,MAAM,GAIpB,OAFAgC,GADAA,GAAOA,EAAMyC,GAAW,KACZ,EAAI,IAAMzC,EAAMA,EAC5B8B,EAAI9D,MAAM,GAAKgC,EACR8B,GAETY,IAAK,SAAaC,EAAY3c,GAG5B,IAAK2c,IAAeA,EAAW1D,IAC7B,MAAM,IAAIhZ,MAAM,gFAAkF0c,GAGpG,IAAIC,EAASD,EAAW1D,MACpBmC,EAAS7c,KAAK0a,MACdje,OAAeqL,IAAXrG,EAAuB,GAAMA,EACjChD,EAAI,EAAIhC,EAAI,EACZO,EAAIqhB,EAAOxE,QAAUgD,EAAOhD,QAC5ByE,IAAO7f,EAAIzB,IAAO,EAAIyB,GAAKA,EAAIzB,IAAM,EAAIyB,EAAIzB,IAAM,GAAK,EACxDuhB,EAAK,EAAID,EACb,OAAO/E,EAAMmB,IAAI4D,EAAKD,EAAO/C,MAAQiD,EAAK1B,EAAOvB,MAAOgD,EAAKD,EAAO9C,QAAUgD,EAAK1B,EAAOtB,QAAS+C,EAAKD,EAAO7C,OAAS+C,EAAK1B,EAAOrB,OAAQ6C,EAAOxE,QAAUpd,EAAIogB,EAAOhD,SAAW,EAAIpd,MAI3L3B,OAAOsD,KAAK6a,GAAShS,SAAQ,SAAUoR,GACrC,IAAsC,IAAlCc,EAAc3W,QAAQ6V,GAA1B,CAIA,IAAImB,EAAWP,EAAQZ,GAAOmB,SAE9BD,EAAMhd,UAAU8b,GAAS,WACvB,GAAIrY,KAAKqY,QAAUA,EACjB,OAAO,IAAIkB,EAAMvZ,MAGnB,GAAIK,UAAU1F,OACZ,OAAO,IAAI4e,EAAMlZ,UAAWgY,GAG9B,IAAImG,EAA0C,iBAAxBne,UAAUmZ,GAAyBA,EAAWxZ,KAAK0Z,OACzE,OAAO,IAAIH,EAAMc,EAAYpB,EAAQjZ,KAAKqY,OAAOA,GAAOoG,IAAIze,KAAKyZ,QAAQjZ,OAAOge,GAAWnG,IAI7FkB,EAAMlB,GAAS,SAAUoB,GAKvB,MAJqB,iBAAVA,IACTA,EAAQG,EAAUV,EAAOzd,KAAK4E,WAAYmZ,IAGrC,IAAID,EAAME,EAAOpB,QA+D5B/d,EAAOC,QAAUgf,G,kCCnbF,SAASmF,EAAuB3Z,GAC7C,QAAa,IAATA,EACF,MAAM,IAAI4Z,eAAe,6DAG3B,OAAO5Z,EALT,mC,4CCCA,IAKI6Z,EACAC,EANA7a,EAAU1J,EAAOC,QAAU,GAQ/B,SAASukB,IACP,MAAM,IAAIpd,MAAM,mCAGlB,SAASqd,IACP,MAAM,IAAIrd,MAAM,qCAyBlB,SAASsd,EAAWC,GAClB,GAAIL,IAAqBM,WAEvB,OAAOA,WAAWD,EAAK,GAIzB,IAAKL,IAAqBE,IAAqBF,IAAqBM,WAElE,OADAN,EAAmBM,WACZA,WAAWD,EAAK,GAGzB,IAEE,OAAOL,EAAiBK,EAAK,GAC7B,MAAO/jB,GACP,IAEE,OAAO0jB,EAAiBnjB,KAAK,KAAMwjB,EAAK,GACxC,MAAO/jB,GAEP,OAAO0jB,EAAiBnjB,KAAKuE,KAAMif,EAAK,MA3C9C,WACE,IAEIL,EADwB,mBAAfM,WACUA,WAEAJ,EAErB,MAAO5jB,GACP0jB,EAAmBE,EAGrB,IAEID,EAD0B,mBAAjBM,aACYA,aAEAJ,EAEvB,MAAO7jB,GACP2jB,EAAqBE,GAlBzB,GA2EA,IAEIK,EAFAC,EAAQ,GACRC,GAAW,EAEXC,GAAc,EAElB,SAASC,IACFF,GAAaF,IAIlBE,GAAW,EAEPF,EAAazkB,OACf0kB,EAAQD,EAAa5e,OAAO6e,GAE5BE,GAAc,EAGZF,EAAM1kB,QACR8kB,KAIJ,SAASA,IACP,IAAIH,EAAJ,CAIA,IAAII,EAAUV,EAAWQ,GACzBF,GAAW,EAGX,IAFA,IAAIxG,EAAMuG,EAAM1kB,OAETme,GAAK,CAIV,IAHAsG,EAAeC,EACfA,EAAQ,KAECE,EAAazG,GAChBsG,GACFA,EAAaG,GAAYI,MAI7BJ,GAAc,EACdzG,EAAMuG,EAAM1kB,OAGdykB,EAAe,KACfE,GAAW,EA1Eb,SAAyBM,GACvB,GAAIf,IAAuBM,aAEzB,OAAOA,aAAaS,GAItB,IAAKf,IAAuBE,IAAwBF,IAAuBM,aAEzE,OADAN,EAAqBM,aACdA,aAAaS,GAGtB,IAESf,EAAmBe,GAC1B,MAAO1kB,GACP,IAEE,OAAO2jB,EAAmBpjB,KAAK,KAAMmkB,GACrC,MAAO1kB,GAGP,OAAO2jB,EAAmBpjB,KAAKuE,KAAM4f,KAqDzCC,CAAgBH,IAoBlB,SAASI,EAAKb,EAAKlE,GACjB/a,KAAKif,IAAMA,EACXjf,KAAK+a,MAAQA,EAef,SAASgF,KAlCT/b,EAAQgc,SAAW,SAAUf,GAC3B,IAAItE,EAAO,IAAIlgB,MAAM4F,UAAU1F,OAAS,GAExC,GAAI0F,UAAU1F,OAAS,EACrB,IAAK,IAAIY,EAAI,EAAGA,EAAI8E,UAAU1F,OAAQY,IACpCof,EAAKpf,EAAI,GAAK8E,UAAU9E,GAI5B8jB,EAAMje,KAAK,IAAI0e,EAAKb,EAAKtE,IAEJ,IAAjB0E,EAAM1kB,QAAiB2kB,GACzBN,EAAWS,IAUfK,EAAKvjB,UAAUojB,IAAM,WACnB3f,KAAKif,IAAIpc,MAAM,KAAM7C,KAAK+a,QAG5B/W,EAAQic,MAAQ,UAChBjc,EAAQmS,SAAU,EAClBnS,EAAQkc,IAAM,GACdlc,EAAQmc,KAAO,GACfnc,EAAQ0S,QAAU,GAElB1S,EAAQoc,SAAW,GAInBpc,EAAQqc,GAAKN,EACb/b,EAAQsc,YAAcP,EACtB/b,EAAQuc,KAAOR,EACf/b,EAAQwc,IAAMT,EACd/b,EAAQyc,eAAiBV,EACzB/b,EAAQ0c,mBAAqBX,EAC7B/b,EAAQ2c,KAAOZ,EACf/b,EAAQ4c,gBAAkBb,EAC1B/b,EAAQ6c,oBAAsBd,EAE9B/b,EAAQ8c,UAAY,SAAU7lB,GAC5B,MAAO,IAGT+I,EAAQ+c,QAAU,SAAU9lB,GAC1B,MAAM,IAAIyG,MAAM,qCAGlBsC,EAAQgd,IAAM,WACZ,MAAO,KAGThd,EAAQid,MAAQ,SAAUC,GACxB,MAAM,IAAIxf,MAAM,mCAGlBsC,EAAQmd,MAAQ,WACd,OAAO,I,mBC1MT7mB,EAAOC,QAJP,SAA0BoP,GACxB,GAAsB,oBAAX3N,QAAmD,MAAzB2N,EAAK3N,OAAOY,WAA2C,MAAtB+M,EAAK,cAAuB,OAAOlP,MAAM2mB,KAAKzX,IAItHrP,EAAOC,QAAiB,QAAID,EAAOC,QAASD,EAAOC,QAAQ4B,YAAa,G,kCCLxE,0DAWA,SAASklB,EAAIlW,GAAiB,IACpBmW,EAASC,YAAe,cAAxBD,KAcFE,EAAkBrW,EAAMsW,aAAeH,EAAKI,aAAaD,YAEzDvU,EAAayU,IACnB,OACE,kBAACzU,EAAD,CAKE0U,OAAO,EACPC,eAAgB,CACdC,KAAM3W,EAAM2W,MAAQR,EAAKI,aAAaK,UAAY,MAEpD9B,MAAO9U,EAAM8U,MACb+B,cACE7W,EAAM8W,WAAa,KAAnB,QAAkCX,EAAKI,aAAazB,MAEtDiC,aAAcZ,EAAKI,aAAazB,MAChCkC,KAAO,CACL,CACElnB,KAAM,cACNmnB,QAASZ,GAEX,CACEa,SAAU,WACVD,QAASjX,EAAM8U,OAEjB,CACEoC,SAAU,iBACVD,QAASZ,GAEX,CACEa,SAAU,UACVD,QAAS,YAEK5hB,OAAO2K,EAAMgX,QAKrCd,EAAIhW,aAAe,CACjB8W,KAAM,GACNV,YAAa,IAGAJ,O,qBCvEf,IAAIiB,EAAM,EAAQ,QAEdC,EAAc,EAAQ,QAyB1BjoB,EAAOC,QAvBP,SAAY0F,EAASuiB,EAAKC,GACxB,IAAIlnB,EAAIinB,GAAOC,GAAU,EAEH,iBAAXxiB,IACTuiB,EAAkB,WAAZviB,EAAuB,IAAIxF,MAAM,IAAM,KAC7CwF,EAAU,MAIZ,IAAIyiB,GADJziB,EAAUA,GAAW,IACF0iB,SAAW1iB,EAAQqiB,KAAOA,KAK7C,GAHAI,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,GAAVA,EAAK,GAAY,IAEvBF,EACF,IAAK,IAAII,EAAK,EAAGA,EAAK,KAAMA,EAC1BJ,EAAIjnB,EAAIqnB,GAAMF,EAAKE,GAIvB,OAAOJ,GAAOD,EAAYG,K,mCCxB5B,YAQA,IAAIG,EAAU,WACZ,GAAmB,oBAARC,IACT,OAAOA,IAWT,SAASC,EAASnK,EAAK7b,GACrB,IAAI0K,GAAU,EASd,OARAmR,EAAIxC,MAAK,SAAU/N,EAAO9G,GACxB,OAAI8G,EAAM,KAAOtL,IACf0K,EAASlG,GACF,MAKJkG,EAGT,OAEE,WACE,SAASub,IACPhjB,KAAKijB,YAAc,GAwFrB,OArFAnoB,OAAOe,eAAemnB,EAAQzmB,UAAW,OAAQ,CAI/CR,IAAK,WACH,OAAOiE,KAAKijB,YAAYtoB,QAE1BmB,YAAY,EACZe,cAAc,IAOhBmmB,EAAQzmB,UAAUR,IAAM,SAAUgB,GAChC,IAAIwE,EAAQwhB,EAAS/iB,KAAKijB,YAAalmB,GACnCsL,EAAQrI,KAAKijB,YAAY1hB,GAC7B,OAAO8G,GAASA,EAAM,IASxB2a,EAAQzmB,UAAU2mB,IAAM,SAAUnmB,EAAKb,GACrC,IAAIqF,EAAQwhB,EAAS/iB,KAAKijB,YAAalmB,IAElCwE,EACHvB,KAAKijB,YAAY1hB,GAAO,GAAKrF,EAE7B8D,KAAKijB,YAAY7hB,KAAK,CAACrE,EAAKb,KAShC8mB,EAAQzmB,UAAU4mB,OAAS,SAAUpmB,GACnC,IAAIqmB,EAAUpjB,KAAKijB,YACf1hB,EAAQwhB,EAASK,EAASrmB,IAEzBwE,GACH6hB,EAAQxoB,OAAO2G,EAAO,IAS1ByhB,EAAQzmB,UAAU8mB,IAAM,SAAUtmB,GAChC,SAAUgmB,EAAS/iB,KAAKijB,YAAalmB,IAOvCimB,EAAQzmB,UAAU+mB,MAAQ,WACxBtjB,KAAKijB,YAAYroB,OAAO,IAS1BooB,EAAQzmB,UAAU0K,QAAU,SAAUsc,EAAUC,QAClC,IAARA,IACFA,EAAM,MAGR,IAAK,IAAIC,EAAK,EAAGC,EAAK1jB,KAAKijB,YAAaQ,EAAKC,EAAG/oB,OAAQ8oB,IAAM,CAC5D,IAAIpb,EAAQqb,EAAGD,GACfF,EAAS9nB,KAAK+nB,EAAKnb,EAAM,GAAIA,EAAM,MAIhC2a,EA5FJ,GA1BK,GA+HVrL,EAA8B,oBAAX9T,QAA8C,oBAAbC,UAA4BD,OAAOC,WAAaA,SAEpG6f,OACoB,IAAXC,GAA0BA,EAAO1hB,OAASA,KAC5C0hB,EAGW,oBAAT7e,MAAwBA,KAAK7C,OAASA,KACxC6C,KAGa,oBAAXlB,QAA0BA,OAAO3B,OAASA,KAC5C2B,OAIFhJ,SAAS,cAATA,GAULgpB,EACmC,mBAA1BC,sBAIFA,sBAAsBznB,KAAKsnB,GAG7B,SAAUJ,GACf,OAAOrE,YAAW,WAChB,OAAOqE,EAASQ,KAAKC,SACpB,IAAO,KAkFd,IAGIC,EAAiB,CAAC,MAAO,QAAS,SAAU,OAAQ,QAAS,SAAU,OAAQ,UAE/EC,EAAwD,oBAArBC,iBAKnCC,EAEJ,WAME,SAASA,IAMPpkB,KAAKqkB,YAAa,EAOlBrkB,KAAKskB,sBAAuB,EAO5BtkB,KAAKukB,mBAAqB,KAO1BvkB,KAAKwkB,WAAa,GAClBxkB,KAAKykB,iBAAmBzkB,KAAKykB,iBAAiBpoB,KAAK2D,MACnDA,KAAK0kB,QAlHT,SAAkBnB,EAAUoB,GAC1B,IAAIC,GAAc,EACdC,GAAe,EACfC,EAAe,EAQnB,SAASC,IACHH,IACFA,GAAc,EACdrB,KAGEsB,GACFG,IAYJ,SAASC,IACPpB,EAAwBkB,GAS1B,SAASC,IACP,IAAIE,EAAYnB,KAAKC,MAErB,GAAIY,EAAa,CAEf,GAAIM,EAAYJ,EAvDA,EAwDd,OAOFD,GAAe,OAEfD,GAAc,EACdC,GAAe,EACf3F,WAAW+F,EAAiBN,GAG9BG,EAAeI,EAGjB,OAAOF,EAmDUG,CAASnlB,KAAK0kB,QAAQroB,KAAK2D,MA/C1B,IA8OlB,OArLAokB,EAAyB7nB,UAAU6oB,YAAc,SAAUC,IACnDrlB,KAAKwkB,WAAWhiB,QAAQ6iB,IAC5BrlB,KAAKwkB,WAAWpjB,KAAKikB,GAIlBrlB,KAAKqkB,YACRrkB,KAAKslB,YAWTlB,EAAyB7nB,UAAUgpB,eAAiB,SAAUF,GAC5D,IAAIG,EAAYxlB,KAAKwkB,WACjBjjB,EAAQikB,EAAUhjB,QAAQ6iB,IAEzB9jB,GACHikB,EAAU5qB,OAAO2G,EAAO,IAIrBikB,EAAU7qB,QAAUqF,KAAKqkB,YAC5BrkB,KAAKylB,eAWTrB,EAAyB7nB,UAAUmoB,QAAU,WACrB1kB,KAAK0lB,oBAIzB1lB,KAAK0kB,WAaTN,EAAyB7nB,UAAUmpB,iBAAmB,WAEpD,IAAIC,EAAkB3lB,KAAKwkB,WAAWoB,QAAO,SAAUP,GACrD,OAAOA,EAASQ,eAAgBR,EAASS,eAU3C,OAHAH,EAAgB1e,SAAQ,SAAUoe,GAChC,OAAOA,EAASU,qBAEXJ,EAAgBhrB,OAAS,GAUlCypB,EAAyB7nB,UAAU+oB,SAAW,WAGvC3N,IAAa3X,KAAKqkB,aAOvBvgB,SAASkiB,iBAAiB,gBAAiBhmB,KAAKykB,kBAChD5gB,OAAOmiB,iBAAiB,SAAUhmB,KAAK0kB,SAEnCR,GACFlkB,KAAKukB,mBAAqB,IAAIJ,iBAAiBnkB,KAAK0kB,SACpD1kB,KAAKukB,mBAAmB0B,QAAQniB,SAAU,CACxCoiB,YAAY,EACZC,WAAW,EACXC,eAAe,EACfC,SAAS,MAGXviB,SAASkiB,iBAAiB,qBAAsBhmB,KAAK0kB,SACrD1kB,KAAKskB,sBAAuB,GAG9BtkB,KAAKqkB,YAAa,IAUpBD,EAAyB7nB,UAAUkpB,YAAc,WAG1C9N,GAAc3X,KAAKqkB,aAIxBvgB,SAASwiB,oBAAoB,gBAAiBtmB,KAAKykB,kBACnD5gB,OAAOyiB,oBAAoB,SAAUtmB,KAAK0kB,SAEtC1kB,KAAKukB,oBACPvkB,KAAKukB,mBAAmBgC,aAGtBvmB,KAAKskB,sBACPxgB,SAASwiB,oBAAoB,qBAAsBtmB,KAAK0kB,SAG1D1kB,KAAKukB,mBAAqB,KAC1BvkB,KAAKskB,sBAAuB,EAC5BtkB,KAAKqkB,YAAa,IAWpBD,EAAyB7nB,UAAUkoB,iBAAmB,SAAUf,GAC9D,IAAI8C,EAAK9C,EAAG+C,aACRA,OAAsB,IAAPD,EAAgB,GAAKA,EAEjBvC,EAAe7N,MAAK,SAAUrZ,GACnD,SAAU0pB,EAAajkB,QAAQzF,OAI/BiD,KAAK0kB,WAUTN,EAAyBsC,YAAc,WAKrC,OAJK1mB,KAAK2mB,YACR3mB,KAAK2mB,UAAY,IAAIvC,GAGhBpkB,KAAK2mB,WASdvC,EAAyBuC,UAAY,KAC9BvC,EAlOT,GA6OIwC,EAAqB,SAA4BC,EAAQ1b,GAC3D,IAAK,IAAIsY,EAAK,EAAGC,EAAK5oB,OAAOsD,KAAK+M,GAAQsY,EAAKC,EAAG/oB,OAAQ8oB,IAAM,CAC9D,IAAI1mB,EAAM2mB,EAAGD,GACb3oB,OAAOe,eAAegrB,EAAQ9pB,EAAK,CACjCb,MAAOiP,EAAMpO,GACbjB,YAAY,EACZgB,UAAU,EACVD,cAAc,IAIlB,OAAOgqB,GAULC,EAAc,SAAqBD,GAOrC,OAHkBA,GAAUA,EAAOE,eAAiBF,EAAOE,cAAcC,aAGnDrD,GAIpBsD,EAAYC,EAAe,EAAG,EAAG,EAAG,GAQxC,SAASC,EAAQjrB,GACf,OAAOkrB,WAAWlrB,IAAU,EAW9B,SAASmrB,EAAeC,GAGtB,IAFA,IAAIC,EAAY,GAEP9D,EAAK,EAAGA,EAAKpjB,UAAU1F,OAAQ8oB,IACtC8D,EAAU9D,EAAK,GAAKpjB,UAAUojB,GAGhC,OAAO8D,EAAUC,QAAO,SAAUC,EAAMC,GAEtC,OAAOD,EAAON,EADFG,EAAO,UAAYI,EAAW,aAEzC,GA2CL,SAASC,EAA0Bd,GAGjC,IAAIe,EAAcf,EAAOe,YACrBC,EAAehB,EAAOgB,aAS1B,IAAKD,IAAgBC,EACnB,OAAOZ,EAGT,IAAIK,EAASR,EAAYD,GAAQiB,iBAAiBjB,GAC9CkB,EAnDN,SAAqBT,GAInB,IAHA,IACIS,EAAW,GAENtE,EAAK,EAAGuE,EAHD,CAAC,MAAO,QAAS,SAAU,QAGDvE,EAAKuE,EAAYrtB,OAAQ8oB,IAAM,CACvE,IAAIiE,EAAWM,EAAYvE,GACvBvnB,EAAQorB,EAAO,WAAaI,GAChCK,EAASL,GAAYP,EAAQjrB,GAG/B,OAAO6rB,EAyCQE,CAAYX,GACvBY,EAAWH,EAASI,KAAOJ,EAASK,MACpCC,EAAUN,EAASO,IAAMP,EAASQ,OAKlCC,EAAQrB,EAAQG,EAAOkB,OACvBC,EAAStB,EAAQG,EAAOmB,QAuB5B,GApByB,eAArBnB,EAAOoB,YAOLxmB,KAAK0Y,MAAM4N,EAAQN,KAAcN,IACnCY,GAASnB,EAAeC,EAAQ,OAAQ,SAAWY,GAGjDhmB,KAAK0Y,MAAM6N,EAASJ,KAAaR,IACnCY,GAAUpB,EAAeC,EAAQ,MAAO,UAAYe,KA+D1D,SAA2BxB,GACzB,OAAOA,IAAWC,EAAYD,GAAQ/iB,SAAS6kB,gBAxD1CC,CAAkB/B,GAAS,CAK9B,IAAIgC,EAAgB3mB,KAAK0Y,MAAM4N,EAAQN,GAAYN,EAC/CkB,EAAiB5mB,KAAK0Y,MAAM6N,EAASJ,GAAWR,EAMpB,IAA5B3lB,KAAKwB,IAAImlB,KACXL,GAASK,GAGsB,IAA7B3mB,KAAKwB,IAAIolB,KACXL,GAAUK,GAId,OAAO5B,EAAea,EAASI,KAAMJ,EAASO,IAAKE,EAAOC,GAU5D,IAAIM,EAGgC,oBAAvBC,mBACF,SAAUnC,GACf,OAAOA,aAAkBC,EAAYD,GAAQmC,oBAO1C,SAAUnC,GACf,OAAOA,aAAkBC,EAAYD,GAAQoC,YAAwC,mBAAnBpC,EAAOqC,SAsB7E,SAASC,EAAetC,GACtB,OAAKlP,EAIDoR,EAAqBlC,GApI3B,SAA2BA,GACzB,IAAIuC,EAAOvC,EAAOqC,UAClB,OAAOhC,EAAe,EAAG,EAAGkC,EAAKZ,MAAOY,EAAKX,QAmIpCY,CAAkBxC,GAGpBc,EAA0Bd,GAPxBI,EAmDX,SAASC,EAAehpB,EAAGL,EAAG2qB,EAAOC,GACnC,MAAO,CACLvqB,EAAGA,EACHL,EAAGA,EACH2qB,MAAOA,EACPC,OAAQA,GASZ,IAAIa,EAEJ,WAME,SAASA,EAAkBzC,GAMzB7mB,KAAKupB,eAAiB,EAOtBvpB,KAAKwpB,gBAAkB,EAOvBxpB,KAAKypB,aAAevC,EAAe,EAAG,EAAG,EAAG,GAC5ClnB,KAAK6mB,OAASA,EA8BhB,OApBAyC,EAAkB/sB,UAAUmtB,SAAW,WACrC,IAAIC,EAAOR,EAAenpB,KAAK6mB,QAE/B,OADA7mB,KAAKypB,aAAeE,EACbA,EAAKnB,QAAUxoB,KAAKupB,gBAAkBI,EAAKlB,SAAWzoB,KAAKwpB,iBAUpEF,EAAkB/sB,UAAUqtB,cAAgB,WAC1C,IAAID,EAAO3pB,KAAKypB,aAGhB,OAFAzpB,KAAKupB,eAAiBI,EAAKnB,MAC3BxoB,KAAKwpB,gBAAkBG,EAAKlB,OACrBkB,GAGFL,EAzDT,GA4DIO,EASF,SAA6BhD,EAAQiD,GACnC,IAvHwBpG,EACtBxlB,EACAL,EACA2qB,EACAC,EAEAsB,EACAJ,EAgHEK,GAtHF9rB,GADsBwlB,EAuHaoG,GAtH5B5rB,EACPL,EAAI6lB,EAAG7lB,EACP2qB,EAAQ9E,EAAG8E,MACXC,EAAS/E,EAAG+E,OAEZsB,EAAoC,oBAApBE,gBAAkCA,gBAAkBnvB,OACpE6uB,EAAO7uB,OAAOsB,OAAO2tB,EAAOxtB,WAEhCqqB,EAAmB+C,EAAM,CACvBzrB,EAAGA,EACHL,EAAGA,EACH2qB,MAAOA,EACPC,OAAQA,EACRH,IAAKzqB,EACLuqB,MAAOlqB,EAAIsqB,EACXD,OAAQE,EAAS5qB,EACjBsqB,KAAMjqB,IAEDyrB,GA2GL/C,EAAmB5mB,KAAM,CACvB6mB,OAAQA,EACRmD,YAAaA,KAOfE,EAEJ,WAWE,SAASA,EAAkB3G,EAAU4G,EAAYC,GAgB/C,GATApqB,KAAKqqB,oBAAsB,GAO3BrqB,KAAKsqB,cAAgB,IAAIzH,EAED,mBAAbU,EACT,MAAM,IAAIxjB,UAAU,2DAGtBC,KAAKuqB,UAAYhH,EACjBvjB,KAAKwqB,YAAcL,EACnBnqB,KAAKyqB,aAAeL,EA8ItB,OApIAF,EAAkB3tB,UAAU0pB,QAAU,SAAUY,GAC9C,IAAKxmB,UAAU1F,OACb,MAAM,IAAIoF,UAAU,4CAItB,GAAuB,oBAAZ2qB,SAA6BA,mBAAmB5vB,OAA3D,CAIA,KAAM+rB,aAAkBC,EAAYD,GAAQ6D,SAC1C,MAAM,IAAI3qB,UAAU,yCAGtB,IAAI4qB,EAAe3qB,KAAKsqB,cAEpBK,EAAatH,IAAIwD,KAIrB8D,EAAazH,IAAI2D,EAAQ,IAAIyC,EAAkBzC,IAC/C7mB,KAAKwqB,YAAYpF,YAAYplB,MAE7BA,KAAKwqB,YAAY9F,aAUnBwF,EAAkB3tB,UAAUquB,UAAY,SAAU/D,GAChD,IAAKxmB,UAAU1F,OACb,MAAM,IAAIoF,UAAU,4CAItB,GAAuB,oBAAZ2qB,SAA6BA,mBAAmB5vB,OAA3D,CAIA,KAAM+rB,aAAkBC,EAAYD,GAAQ6D,SAC1C,MAAM,IAAI3qB,UAAU,yCAGtB,IAAI4qB,EAAe3qB,KAAKsqB,cAEnBK,EAAatH,IAAIwD,KAItB8D,EAAaxH,OAAO0D,GAEf8D,EAAalD,MAChBznB,KAAKwqB,YAAYjF,eAAevlB,SAUpCkqB,EAAkB3tB,UAAUgqB,WAAa,WACvCvmB,KAAK6qB,cACL7qB,KAAKsqB,cAAchH,QACnBtjB,KAAKwqB,YAAYjF,eAAevlB,OAUlCkqB,EAAkB3tB,UAAUspB,aAAe,WACzC,IAAIiF,EAAQ9qB,KAEZA,KAAK6qB,cACL7qB,KAAKsqB,cAAcrjB,SAAQ,SAAU8jB,GAC/BA,EAAYrB,YACdoB,EAAMT,oBAAoBjpB,KAAK2pB,OAYrCb,EAAkB3tB,UAAUwpB,gBAAkB,WAE5C,GAAK/lB,KAAK8lB,YAAV,CAIA,IAAItC,EAAMxjB,KAAKyqB,aAEXrH,EAAUpjB,KAAKqqB,oBAAoBne,KAAI,SAAU6e,GACnD,OAAO,IAAIlB,EAAoBkB,EAAYlE,OAAQkE,EAAYnB,oBAEjE5pB,KAAKuqB,UAAU9uB,KAAK+nB,EAAKJ,EAASI,GAClCxjB,KAAK6qB,gBASPX,EAAkB3tB,UAAUsuB,YAAc,WACxC7qB,KAAKqqB,oBAAoBzvB,OAAO,IASlCsvB,EAAkB3tB,UAAUupB,UAAY,WACtC,OAAO9lB,KAAKqqB,oBAAoB1vB,OAAS,GAGpCuvB,EA/KT,GAqLI1E,EAA+B,oBAAZwF,QAA0B,IAAIA,QAAY,IAAInI,EAMjEoI,EASF,SAASA,EAAe1H,GACtB,KAAMvjB,gBAAgBirB,GACpB,MAAM,IAAIlrB,UAAU,sCAGtB,IAAKM,UAAU1F,OACb,MAAM,IAAIoF,UAAU,4CAGtB,IAAIoqB,EAAa/F,EAAyBsC,cACtCrB,EAAW,IAAI6E,EAAkB3G,EAAU4G,EAAYnqB,MAC3DwlB,EAAUtC,IAAIljB,KAAMqlB,IAOxB,CAAC,UAAW,YAAa,cAAcpe,SAAQ,SAAUzB,GACvDylB,EAAe1uB,UAAUiJ,GAAU,WACjC,IAAIke,EAEJ,OAAQA,EAAK8B,EAAUzpB,IAAIiE,OAAOwF,GAAQ3C,MAAM6gB,EAAIrjB,eAIxD,IAAIkB,OAEqC,IAA5BoiB,EAASsH,eACXtH,EAASsH,eAGXA,EAGM,Q,2CCvlCf,IAAIC,EAAc,EAAQ,QAEtBC,EAAQ,EAAQ,QAEhBlS,EAAU,GACDne,OAAOsD,KAAK8sB,GAsDlBjkB,SAAQ,SAAUmkB,GACvBnS,EAAQmS,GAAa,GACrBtwB,OAAOe,eAAeod,EAAQmS,GAAY,WAAY,CACpDlvB,MAAOgvB,EAAYE,GAAW5R,WAEhC1e,OAAOe,eAAeod,EAAQmS,GAAY,SAAU,CAClDlvB,MAAOgvB,EAAYE,GAAW/R,SAEhC,IAAIgS,EAASF,EAAMC,GACDtwB,OAAOsD,KAAKitB,GAClBpkB,SAAQ,SAAUqkB,GAC5B,IAAI/kB,EAAK8kB,EAAOC,GAChBrS,EAAQmS,GAAWE,GA3CvB,SAAqB/kB,GACnB,IAAIglB,EAAY,SAAmB5Q,GACjC,GAAIA,QACF,OAAOA,EAGLta,UAAU1F,OAAS,IACrBggB,EAAOlgB,MAAM8B,UAAU0E,MAAMxF,KAAK4E,YAGpC,IAAIoH,EAASlB,EAAGoU,GAIhB,GAAsB,iBAAXlT,EACT,IAAK,IAAIqR,EAAMrR,EAAO9M,OAAQY,EAAI,EAAGA,EAAIud,EAAKvd,IAC5CkM,EAAOlM,GAAK2G,KAAK0Y,MAAMnT,EAAOlM,IAIlC,OAAOkM,GAQT,MAJI,eAAgBlB,IAClBglB,EAAUC,WAAajlB,EAAGilB,YAGrBD,EAeyBE,CAAYllB,GAC1C0S,EAAQmS,GAAWE,GAAS7M,IAjEhC,SAAiBlY,GACf,IAAIglB,EAAY,SAAmB5Q,GACjC,OAAIA,QACKA,GAGLta,UAAU1F,OAAS,IACrBggB,EAAOlgB,MAAM8B,UAAU0E,MAAMxF,KAAK4E,YAG7BkG,EAAGoU,KAQZ,MAJI,eAAgBpU,IAClBglB,EAAUC,WAAajlB,EAAGilB,YAGrBD,EA+C6BG,CAAQnlB,SAG9CjM,EAAOC,QAAU0e,G,qBC3EjB,OAOA,WACE,aAEA,IAAI7U,EAAS,GAAG5H,eAEhB,SAASmvB,IAGP,IAFA,IAAIC,EAAU,GAELrwB,EAAI,EAAGA,EAAI8E,UAAU1F,OAAQY,IAAK,CACzC,IAAIkK,EAAMpF,UAAU9E,GACpB,GAAKkK,EAAL,CACA,IAAIomB,SAAiBpmB,EAErB,GAAgB,WAAZomB,GAAoC,WAAZA,EAC1BD,EAAQxqB,KAAKqE,QACR,GAAIhL,MAAMC,QAAQ+K,IAAQA,EAAI9K,OAAQ,CAC3C,IAAImxB,EAAQH,EAAW9oB,MAAM,KAAM4C,GAE/BqmB,GACFF,EAAQxqB,KAAK0qB,QAEV,GAAgB,WAAZD,EACT,IAAK,IAAI9uB,KAAO0I,EACVrB,EAAO3I,KAAKgK,EAAK1I,IAAQ0I,EAAI1I,IAC/B6uB,EAAQxqB,KAAKrE,IAMrB,OAAO6uB,EAAQhc,KAAK,KAGetV,EAAOC,SAC1CoxB,EAAWrvB,QAAUqvB,EACrBrxB,EAAOC,QAAUoxB,QAKhB,KAFwB,EAAF,WACrB,OAAOA,GACR,QAFoB,OAEpB,aAxCL,I,kCCLA,IAAII,EAAa,EAAQ,QAErBvrB,EAAS/F,MAAM8B,UAAUiE,OACzBS,EAAQxG,MAAM8B,UAAU0E,MAExB+qB,EAAU1xB,EAAOC,QAAU,SAAiBogB,GAG9C,IAFA,IAAI7Z,EAAU,GAELvF,EAAI,EAAGud,EAAM6B,EAAKhgB,OAAQY,EAAIud,EAAKvd,IAAK,CAC/C,IAAIkK,EAAMkV,EAAKpf,GAEXwwB,EAAWtmB,GAEb3E,EAAUN,EAAO/E,KAAKqF,EAASG,EAAMxF,KAAKgK,IAE1C3E,EAAQM,KAAKqE,GAIjB,OAAO3E,GAGTkrB,EAAQpnB,KAAO,SAAU2B,GACvB,OAAO,WACL,OAAOA,EAAGylB,EAAQ3rB,e,qBCzBtB,IAAI4rB,EAAc,EAAQ,QAKtBC,EAAkB,GAEtB,IAAK,IAAInvB,KAAOkvB,EACVA,EAAYzvB,eAAeO,KAC7BmvB,EAAgBD,EAAYlvB,IAAQA,GAIxC,IAAIkc,EAAU3e,EAAOC,QAAU,CAC7BmgB,IAAK,CACHlB,SAAU,EACVH,OAAQ,OAEVkE,IAAK,CACH/D,SAAU,EACVH,OAAQ,OAEV8S,IAAK,CACH3S,SAAU,EACVH,OAAQ,OAEVuE,IAAK,CACHpE,SAAU,EACVH,OAAQ,OAEV+S,KAAM,CACJ5S,SAAU,EACVH,OAAQ,QAEVgT,IAAK,CACH7S,SAAU,EACVH,OAAQ,OAEViT,IAAK,CACH9S,SAAU,EACVH,OAAQ,OAEVkT,IAAK,CACH/S,SAAU,EACVH,OAAQ,OAEViD,IAAK,CACH9C,SAAU,EACVH,OAAQ,CAAC,QAEXgD,QAAS,CACP7C,SAAU,EACVH,OAAQ,CAAC,YAEXmT,OAAQ,CACNhT,SAAU,EACVH,OAAQ,CAAC,WAEXoT,QAAS,CACPjT,SAAU,EACVH,OAAQ,CAAC,YAEXqT,IAAK,CACHlT,SAAU,EACVH,OAAQ,CAAC,IAAK,IAAK,MAErBsT,MAAO,CACLnT,SAAU,EACVH,OAAQ,CAAC,MAAO,MAAO,QAEzByC,KAAM,CACJtC,SAAU,EACVH,OAAQ,CAAC,UAIb,IAAK,IAAIhB,KAASY,EAChB,GAAIA,EAAQzc,eAAe6b,GAAQ,CACjC,KAAM,aAAcY,EAAQZ,IAC1B,MAAM,IAAI3W,MAAM,8BAAgC2W,GAGlD,KAAM,WAAYY,EAAQZ,IACxB,MAAM,IAAI3W,MAAM,oCAAsC2W,GAGxD,GAAIY,EAAQZ,GAAOgB,OAAO1e,SAAWse,EAAQZ,GAAOmB,SAClD,MAAM,IAAI9X,MAAM,sCAAwC2W,GAG1D,IAAImB,EAAWP,EAAQZ,GAAOmB,SAC1BH,EAASJ,EAAQZ,GAAOgB,cACrBJ,EAAQZ,GAAOmB,gBACfP,EAAQZ,GAAOgB,OACtBve,OAAOe,eAAeod,EAAQZ,GAAQ,WAAY,CAChDnc,MAAOsd,IAET1e,OAAOe,eAAeod,EAAQZ,GAAQ,SAAU,CAC9Cnc,MAAOmd,IAKbJ,EAAQyB,IAAI6C,IAAM,SAAU7C,GAC1B,IAMItd,EAEA5B,EARAH,EAAIqf,EAAI,GAAK,IACb/c,EAAI+c,EAAI,GAAK,IACbvc,EAAIuc,EAAI,GAAK,IACbvY,EAAMD,KAAKC,IAAI9G,EAAGsC,EAAGQ,GACrBqF,EAAMtB,KAAKsB,IAAInI,EAAGsC,EAAGQ,GACrByuB,EAAQppB,EAAMrB,EA+BlB,OA1BIqB,IAAQrB,EACV/E,EAAI,EACK/B,IAAMmI,EACfpG,GAAKO,EAAIQ,GAAKyuB,EACLjvB,IAAM6F,EACfpG,EAAI,GAAKe,EAAI9C,GAAKuxB,EACTzuB,IAAMqF,IACfpG,EAAI,GAAK/B,EAAIsC,GAAKivB,IAGpBxvB,EAAI8E,KAAKC,IAAQ,GAAJ/E,EAAQ,MAEb,IACNA,GAAK,KAGP5B,GAAK2G,EAAMqB,GAAO,EAUX,CAACpG,EAAO,KARXoG,IAAQrB,EACN,EACK3G,GAAK,GACVoxB,GAASppB,EAAMrB,GAEfyqB,GAAS,EAAIppB,EAAMrB,IAGD,IAAJ3G,IAGtByd,EAAQyB,IAAIyR,IAAM,SAAUzR,GAC1B,IAAImS,EACAC,EACAC,EACA3vB,EACAV,EACArB,EAAIqf,EAAI,GAAK,IACb/c,EAAI+c,EAAI,GAAK,IACbvc,EAAIuc,EAAI,GAAK,IACbjd,EAAIyE,KAAKsB,IAAInI,EAAGsC,EAAGQ,GACnB6uB,EAAOvvB,EAAIyE,KAAKC,IAAI9G,EAAGsC,EAAGQ,GAE1B8uB,EAAQ,SAAetxB,GACzB,OAAQ8B,EAAI9B,GAAK,EAAIqxB,EAAO,IA0B9B,OAvBa,IAATA,EACF5vB,EAAIV,EAAI,GAERA,EAAIswB,EAAOvvB,EACXovB,EAAOI,EAAM5xB,GACbyxB,EAAOG,EAAMtvB,GACbovB,EAAOE,EAAM9uB,GAET9C,IAAMoC,EACRL,EAAI2vB,EAAOD,EACFnvB,IAAMF,EACfL,EAAI,EAAI,EAAIyvB,EAAOE,EACV5uB,IAAMV,IACfL,EAAI,EAAI,EAAI0vB,EAAOD,GAGjBzvB,EAAI,EACNA,GAAK,EACIA,EAAI,IACbA,GAAK,IAIF,CAAK,IAAJA,EAAa,IAAJV,EAAa,IAAJe,IAG5Bwb,EAAQyB,IAAIkD,IAAM,SAAUlD,GAC1B,IAAIrf,EAAIqf,EAAI,GACR/c,EAAI+c,EAAI,GACRvc,EAAIuc,EAAI,GAIZ,MAAO,CAHCzB,EAAQyB,IAAI6C,IAAI7C,GAAK,GAGd,KAFP,EAAI,IAAMxY,KAAKC,IAAI9G,EAAG6G,KAAKC,IAAIxE,EAAGQ,KAElB,KADxBA,EAAI,EAAI,EAAI,IAAM+D,KAAKsB,IAAInI,EAAG6G,KAAKsB,IAAI7F,EAAGQ,OAI5C8a,EAAQyB,IAAI0R,KAAO,SAAU1R,GAC3B,IAMI3c,EANA1C,EAAIqf,EAAI,GAAK,IACb/c,EAAI+c,EAAI,GAAK,IACbvc,EAAIuc,EAAI,GAAK,IASjB,MAAO,CAAK,MAHP,EAAIrf,GADT0C,EAAImE,KAAKC,IAAI,EAAI9G,EAAG,EAAIsC,EAAG,EAAIQ,MACZ,EAAIJ,IAAM,GAGR,MAFhB,EAAIJ,EAAII,IAAM,EAAIA,IAAM,GAEC,MADzB,EAAII,EAAIJ,IAAM,EAAIA,IAAM,GACU,IAAJA,IAWrCkb,EAAQyB,IAAI2B,QAAU,SAAU3B,GAC9B,IAAIwS,EAAWhB,EAAgBxR,GAE/B,GAAIwS,EACF,OAAOA,EAGT,IACIC,EAZuBjvB,EAAGL,EAW1BuvB,EAAyBC,IAG7B,IAAK,IAAIhR,KAAW4P,EAClB,GAAIA,EAAYzvB,eAAe6f,GAAU,CACvC,IAAIngB,EAAQ+vB,EAAY5P,GAEpBnf,GAlBmBgB,EAkBYwc,EAlBT7c,EAkBc3B,EAjBrCgG,KAAKya,IAAIze,EAAE,GAAKL,EAAE,GAAI,GAAKqE,KAAKya,IAAIze,EAAE,GAAKL,EAAE,GAAI,GAAKqE,KAAKya,IAAIze,EAAE,GAAKL,EAAE,GAAI,IAmB3EX,EAAWkwB,IACbA,EAAyBlwB,EACzBiwB,EAAwB9Q,GAK9B,OAAO8Q,GAGTlU,EAAQoD,QAAQ3B,IAAM,SAAU2B,GAC9B,OAAO4P,EAAY5P,IAGrBpD,EAAQyB,IAAI2R,IAAM,SAAU3R,GAC1B,IAAIrf,EAAIqf,EAAI,GAAK,IACb/c,EAAI+c,EAAI,GAAK,IACbvc,EAAIuc,EAAI,GAAK,IAQjB,MAAO,CAAK,KAHA,OAHZrf,EAAIA,EAAI,OAAU6G,KAAKya,KAAKthB,EAAI,MAAS,MAAO,KAAOA,EAAI,OAGlC,OAFzBsC,EAAIA,EAAI,OAAUuE,KAAKya,KAAKhf,EAAI,MAAS,MAAO,KAAOA,EAAI,OAErB,OADtCQ,EAAIA,EAAI,OAAU+D,KAAKya,KAAKxe,EAAI,MAAS,MAAO,KAAOA,EAAI,QAItC,KAFT,MAAJ9C,EAAiB,MAAJsC,EAAiB,MAAJQ,GAEJ,KADlB,MAAJ9C,EAAiB,MAAJsC,EAAiB,MAAJQ,KAIpC8a,EAAQyB,IAAI4R,IAAM,SAAU5R,GAC1B,IAAI2R,EAAMpT,EAAQyB,IAAI2R,IAAI3R,GACtBxc,EAAImuB,EAAI,GACRxuB,EAAIwuB,EAAI,GACR7sB,EAAI6sB,EAAI,GAaZ,OARAxuB,GAAK,IACL2B,GAAK,QACLtB,GAHAA,GAAK,QAGG,QAAWgE,KAAKya,IAAIze,EAAG,EAAI,GAAK,MAAQA,EAAI,GAAK,IAMlD,CAHH,KAFJL,EAAIA,EAAI,QAAWqE,KAAKya,IAAI9e,EAAG,EAAI,GAAK,MAAQA,EAAI,GAAK,KAE3C,GACV,KAAOK,EAAIL,GACX,KAAOA,GAHX2B,EAAIA,EAAI,QAAW0C,KAAKya,IAAInd,EAAG,EAAI,GAAK,MAAQA,EAAI,GAAK,QAO3DyZ,EAAQsE,IAAI7C,IAAM,SAAU6C,GAC1B,IAGI+P,EACAC,EACAC,EACA9S,EACAP,EAPA/c,EAAImgB,EAAI,GAAK,IACb7gB,EAAI6gB,EAAI,GAAK,IACb/hB,EAAI+hB,EAAI,GAAK,IAOjB,GAAU,IAAN7gB,EAEF,MAAO,CADPyd,EAAU,IAAJ3e,EACO2e,EAAKA,GASpBmT,EAAK,EAAI9xB,GALP+xB,EADE/xB,EAAI,GACDA,GAAK,EAAIkB,GAETlB,EAAIkB,EAAIlB,EAAIkB,GAInBge,EAAM,CAAC,EAAG,EAAG,GAEb,IAAK,IAAInf,EAAI,EAAGA,EAAI,EAAGA,KACrBiyB,EAAKpwB,EAAI,EAAI,IAAM7B,EAAI,IAEd,GACPiyB,IAGEA,EAAK,GACPA,IAIArT,EADE,EAAIqT,EAAK,EACLF,EAAiB,GAAXC,EAAKD,GAAUE,EAClB,EAAIA,EAAK,EACZD,EACG,EAAIC,EAAK,EACZF,GAAMC,EAAKD,IAAO,EAAI,EAAIE,GAAM,EAEhCF,EAGR5S,EAAInf,GAAW,IAAN4e,EAGX,OAAOO,GAGTzB,EAAQsE,IAAI4O,IAAM,SAAU5O,GAC1B,IAAIngB,EAAImgB,EAAI,GACR7gB,EAAI6gB,EAAI,GAAK,IACb/hB,EAAI+hB,EAAI,GAAK,IACbkQ,EAAO/wB,EACPgxB,EAAOxrB,KAAKsB,IAAIhI,EAAG,KAQvB,OAJAkB,IADAlB,GAAK,IACK,EAAIA,EAAI,EAAIA,EACtBiyB,GAAQC,GAAQ,EAAIA,EAAO,EAAIA,EAGxB,CAACtwB,EAAQ,KADL,IAAN5B,EAAU,EAAIiyB,GAAQC,EAAOD,GAAQ,EAAI/wB,GAAKlB,EAAIkB,IAC9B,MAFpBlB,EAAIkB,GAAK,KAKhBuc,EAAQkT,IAAIzR,IAAM,SAAUyR,GAC1B,IAAI/uB,EAAI+uB,EAAI,GAAK,GACbzvB,EAAIyvB,EAAI,GAAK,IACb1uB,EAAI0uB,EAAI,GAAK,IACbwB,EAAKzrB,KAAKqB,MAAMnG,GAAK,EACrBG,EAAIH,EAAI8E,KAAKqB,MAAMnG,GACnBX,EAAI,IAAMgB,GAAK,EAAIf,GACnBkxB,EAAI,IAAMnwB,GAAK,EAAIf,EAAIa,GACvBpC,EAAI,IAAMsC,GAAK,EAAIf,GAAK,EAAIa,IAGhC,OAFAE,GAAK,IAEGkwB,GACN,KAAK,EACH,MAAO,CAAClwB,EAAGtC,EAAGsB,GAEhB,KAAK,EACH,MAAO,CAACmxB,EAAGnwB,EAAGhB,GAEhB,KAAK,EACH,MAAO,CAACA,EAAGgB,EAAGtC,GAEhB,KAAK,EACH,MAAO,CAACsB,EAAGmxB,EAAGnwB,GAEhB,KAAK,EACH,MAAO,CAACtC,EAAGsB,EAAGgB,GAEhB,KAAK,EACH,MAAO,CAACA,EAAGhB,EAAGmxB,KAIpB3U,EAAQkT,IAAI5O,IAAM,SAAU4O,GAC1B,IAIIuB,EACAG,EACAryB,EANA4B,EAAI+uB,EAAI,GACRzvB,EAAIyvB,EAAI,GAAK,IACb1uB,EAAI0uB,EAAI,GAAK,IACb2B,EAAO5rB,KAAKsB,IAAI/F,EAAG,KAUvB,OANAjC,GAAK,EAAIkB,GAAKe,EAEdowB,EAAKnxB,EAAIoxB,EAIF,CAAC1wB,EAAQ,KAFhBywB,GADAA,IAFAH,GAAQ,EAAIhxB,GAAKoxB,IAEH,EAAIJ,EAAO,EAAIA,IAClB,GAEc,KADzBlyB,GAAK,KAKPyd,EAAQ2E,IAAIlD,IAAM,SAAUkD,GAC1B,IAIIriB,EACAkC,EACAF,EACAnC,EAiBAC,EACAsC,EACAQ,EA1BAf,EAAIwgB,EAAI,GAAK,IACbmQ,EAAKnQ,EAAI,GAAK,IACdoQ,EAAKpQ,EAAI,GAAK,IACdN,EAAQyQ,EAAKC,EAyBjB,OAnBI1Q,EAAQ,IACVyQ,GAAMzQ,EACN0Q,GAAM1Q,GAKR/f,EAAI,EAAIH,GAFR7B,EAAI2G,KAAKqB,MAAM,EAAInG,IAIA,IAAV,EAAJ7B,KACHgC,EAAI,EAAIA,GAGVnC,EAAI2yB,EAAKxwB,IAPTE,EAAI,EAAIuwB,GAOUD,GAMVxyB,GACN,QACA,KAAK,EACL,KAAK,EACHF,EAAIoC,EACJE,EAAIvC,EACJ+C,EAAI4vB,EACJ,MAEF,KAAK,EACH1yB,EAAID,EACJuC,EAAIF,EACJU,EAAI4vB,EACJ,MAEF,KAAK,EACH1yB,EAAI0yB,EACJpwB,EAAIF,EACJU,EAAI/C,EACJ,MAEF,KAAK,EACHC,EAAI0yB,EACJpwB,EAAIvC,EACJ+C,EAAIV,EACJ,MAEF,KAAK,EACHpC,EAAID,EACJuC,EAAIowB,EACJ5vB,EAAIV,EACJ,MAEF,KAAK,EACHpC,EAAIoC,EACJE,EAAIowB,EACJ5vB,EAAI/C,EAIR,MAAO,CAAK,IAAJC,EAAa,IAAJsC,EAAa,IAAJQ,IAG5B8a,EAAQmT,KAAK1R,IAAM,SAAU0R,GAC3B,IAAIzwB,EAAIywB,EAAK,GAAK,IACd1wB,EAAI0wB,EAAK,GAAK,IACdvuB,EAAIuuB,EAAK,GAAK,IACdruB,EAAIquB,EAAK,GAAK,IAOlB,MAAO,CAAK,KAHR,EAAIlqB,KAAKC,IAAI,EAAGxG,GAAK,EAAIoC,GAAKA,IAGb,KAFjB,EAAImE,KAAKC,IAAI,EAAGzG,GAAK,EAAIqC,GAAKA,IAEJ,KAD1B,EAAImE,KAAKC,IAAI,EAAGtE,GAAK,EAAIE,GAAKA,MAIpCkb,EAAQoT,IAAI3R,IAAM,SAAU2R,GAC1B,IAGIhxB,EACAsC,EACAQ,EALAD,EAAImuB,EAAI,GAAK,IACbxuB,EAAIwuB,EAAI,GAAK,IACb7sB,EAAI6sB,EAAI,GAAK,IAcjB,OATA1uB,GAAS,MAALO,EAAkB,OAAJL,EAAiB,MAAJ2B,EAC/BrB,EAAQ,MAAJD,GAAkB,KAALL,EAAkB,MAAJ2B,EAE/BnE,GAJAA,EAAQ,OAAJ6C,GAAkB,OAALL,GAAmB,MAAL2B,GAIvB,SAAY,MAAQ0C,KAAKya,IAAIthB,EAAG,EAAM,KAAO,KAAY,MAAJA,EAC7DsC,EAAIA,EAAI,SAAY,MAAQuE,KAAKya,IAAIhf,EAAG,EAAM,KAAO,KAAY,MAAJA,EAC7DQ,EAAIA,EAAI,SAAY,MAAQ+D,KAAKya,IAAIxe,EAAG,EAAM,KAAO,KAAY,MAAJA,EAItD,CAAK,KAHZ9C,EAAI6G,KAAKC,IAAID,KAAKsB,IAAI,EAAGnI,GAAI,IAGR,KAFrBsC,EAAIuE,KAAKC,IAAID,KAAKsB,IAAI,EAAG7F,GAAI,IAEC,KAD9BQ,EAAI+D,KAAKC,IAAID,KAAKsB,IAAI,EAAGrF,GAAI,MAI/B8a,EAAQoT,IAAIC,IAAM,SAAUD,GAC1B,IAAInuB,EAAImuB,EAAI,GACRxuB,EAAIwuB,EAAI,GACR7sB,EAAI6sB,EAAI,GAaZ,OARAxuB,GAAK,IACL2B,GAAK,QACLtB,GAHAA,GAAK,QAGG,QAAWgE,KAAKya,IAAIze,EAAG,EAAI,GAAK,MAAQA,EAAI,GAAK,IAMlD,CAHH,KAFJL,EAAIA,EAAI,QAAWqE,KAAKya,IAAI9e,EAAG,EAAI,GAAK,MAAQA,EAAI,GAAK,KAE3C,GACV,KAAOK,EAAIL,GACX,KAAOA,GAHX2B,EAAIA,EAAI,QAAW0C,KAAKya,IAAInd,EAAG,EAAI,GAAK,MAAQA,EAAI,GAAK,QAO3DyZ,EAAQqT,IAAID,IAAM,SAAUC,GAC1B,IAGIpuB,EACAL,EACA2B,EALAhE,EAAI8wB,EAAI,GAOZpuB,EANQouB,EAAI,GAMJ,KADRzuB,GAAKrC,EAAI,IAAM,KAEfgE,EAAI3B,EANIyuB,EAAI,GAMA,IACZ,IAAI2B,EAAK/rB,KAAKya,IAAI9e,EAAG,GACjBqwB,EAAKhsB,KAAKya,IAAIze,EAAG,GACjBiwB,EAAKjsB,KAAKya,IAAInd,EAAG,GAOrB,OANA3B,EAAIowB,EAAK,QAAWA,GAAMpwB,EAAI,GAAK,KAAO,MAC1CK,EAAIgwB,EAAK,QAAWA,GAAMhwB,EAAI,GAAK,KAAO,MAC1CsB,EAAI2uB,EAAK,QAAWA,GAAM3uB,EAAI,GAAK,KAAO,MAInC,CAHPtB,GAAK,OACLL,GAAK,IACL2B,GAAK,UAIPyZ,EAAQqT,IAAIC,IAAM,SAAUD,GAC1B,IAIIlvB,EAJA5B,EAAI8wB,EAAI,GACRtvB,EAAIsvB,EAAI,GACRnuB,EAAImuB,EAAI,GAYZ,OAPAlvB,EAAS,IADJ8E,KAAKksB,MAAMjwB,EAAGnB,GACJ,EAAIkF,KAAKmsB,IAEhB,IACNjxB,GAAK,KAIA,CAAC5B,EADJ0G,KAAKosB,KAAKtxB,EAAIA,EAAImB,EAAIA,GACZf,IAGhB6b,EAAQsT,IAAID,IAAM,SAAUC,GAC1B,IAKIgC,EALA/yB,EAAI+wB,EAAI,GACR5wB,EAAI4wB,EAAI,GAQZ,OAHAgC,EAJQhC,EAAI,GAIH,IAAM,EAAIrqB,KAAKmsB,GAGjB,CAAC7yB,EAFJG,EAAIuG,KAAKssB,IAAID,GACb5yB,EAAIuG,KAAKusB,IAAIF,KAInBtV,EAAQyB,IAAI8R,OAAS,SAAU7R,GAC7B,IAAItf,EAAIsf,EAAK,GACThd,EAAIgd,EAAK,GACTxc,EAAIwc,EAAK,GACTze,EAAQ,KAAKmE,UAAYA,UAAU,GAAK4Y,EAAQyB,IAAIyR,IAAIxR,GAAM,GAIlE,GAAc,KAFdze,EAAQgG,KAAK0Y,MAAM1e,EAAQ,KAGzB,OAAO,GAGT,IAAIwyB,EAAO,IAAMxsB,KAAK0Y,MAAMzc,EAAI,MAAQ,EAAI+D,KAAK0Y,MAAMjd,EAAI,MAAQ,EAAIuE,KAAK0Y,MAAMvf,EAAI,MAMtF,OAJc,IAAVa,IACFwyB,GAAQ,IAGHA,GAGTzV,EAAQkT,IAAIK,OAAS,SAAU7R,GAG7B,OAAO1B,EAAQyB,IAAI8R,OAAOvT,EAAQkT,IAAIzR,IAAIC,GAAOA,EAAK,KAGxD1B,EAAQyB,IAAI+R,QAAU,SAAU9R,GAC9B,IAAItf,EAAIsf,EAAK,GACThd,EAAIgd,EAAK,GACTxc,EAAIwc,EAAK,GAGb,OAAItf,IAAMsC,GAAKA,IAAMQ,EACf9C,EAAI,EACC,GAGLA,EAAI,IACC,IAGF6G,KAAK0Y,OAAOvf,EAAI,GAAK,IAAM,IAAM,IAG/B,GAAK,GAAK6G,KAAK0Y,MAAMvf,EAAI,IAAM,GAAK,EAAI6G,KAAK0Y,MAAMjd,EAAI,IAAM,GAAKuE,KAAK0Y,MAAMzc,EAAI,IAAM,IAIpG8a,EAAQuT,OAAO9R,IAAM,SAAUC,GAC7B,IAAIlB,EAAQkB,EAAO,GAEnB,GAAc,IAAVlB,GAAyB,IAAVA,EAMjB,OALIkB,EAAO,KACTlB,GAAS,KAIJ,CADPA,EAAQA,EAAQ,KAAO,IACRA,EAAOA,GAGxB,IAAIkV,EAA6B,IAAL,KAAbhU,EAAO,KAItB,MAAO,EAHU,EAARlB,GAAakV,EAAO,KACpBlV,GAAS,EAAI,GAAKkV,EAAO,KACzBlV,GAAS,EAAI,GAAKkV,EAAO,MAIpC1V,EAAQwT,QAAQ/R,IAAM,SAAUC,GAE9B,GAAIA,GAAQ,IAAK,CACf,IAAIhf,EAAmB,IAAdgf,EAAO,KAAY,EAC5B,MAAO,CAAChf,EAAGA,EAAGA,GAIhB,IAAIizB,EAIJ,OALAjU,GAAQ,GAKD,CAHCzY,KAAKqB,MAAMoX,EAAO,IAAM,EAAI,IAC5BzY,KAAKqB,OAAOqrB,EAAMjU,EAAO,IAAM,GAAK,EAAI,IACxCiU,EAAM,EAAI,EAAI,MAIxB3V,EAAQyB,IAAI4B,IAAM,SAAU3B,GAC1B,IACIL,KADkC,IAAtBpY,KAAK0Y,MAAMD,EAAK,MAAe,MAA8B,IAAtBzY,KAAK0Y,MAAMD,EAAK,MAAe,IAA4B,IAAtBzY,KAAK0Y,MAAMD,EAAK,MACvFhe,SAAS,IAAIkyB,cAClC,MAAO,SAASC,UAAUxU,EAAO3f,QAAU2f,GAG7CrB,EAAQqD,IAAI5B,IAAM,SAAUC,GAC1B,IAAIzX,EAAQyX,EAAKhe,SAAS,IAAIuG,MAAM,4BAEpC,IAAKA,EACH,MAAO,CAAC,EAAG,EAAG,GAGhB,IAAI8V,EAAc9V,EAAM,GAEA,IAApBA,EAAM,GAAGvI,SACXqe,EAAcA,EAAY7X,MAAM,IAAI+K,KAAI,SAAU6iB,GAChD,OAAOA,EAAOA,KACbnf,KAAK,KAGV,IAAIof,EAAUxf,SAASwJ,EAAa,IAIpC,MAAO,CAHCgW,GAAW,GAAK,IAChBA,GAAW,EAAI,IACL,IAAVA,IAIV/V,EAAQyB,IAAIgS,IAAM,SAAUhS,GAC1B,IAOIe,EAPApgB,EAAIqf,EAAI,GAAK,IACb/c,EAAI+c,EAAI,GAAK,IACbvc,EAAIuc,EAAI,GAAK,IACblX,EAAMtB,KAAKsB,IAAItB,KAAKsB,IAAInI,EAAGsC,GAAIQ,GAC/BgE,EAAMD,KAAKC,IAAID,KAAKC,IAAI9G,EAAGsC,GAAIQ,GAC/B0d,EAASrY,EAAMrB,EAsBnB,OAXEsZ,EADEI,GAAU,EACN,EACGrY,IAAQnI,GACVsC,EAAIQ,GAAK0d,EAAS,EAChBrY,IAAQ7F,EACX,GAAKQ,EAAI9C,GAAKwgB,EAEd,GAAKxgB,EAAIsC,GAAKke,EAAS,EAG/BJ,GAAO,EAEA,CAAO,KADdA,GAAO,GACqB,IAATI,EAA0B,KAlBzCA,EAAS,EACC1Z,GAAO,EAAI0Z,GAEX,KAkBhB5C,EAAQsE,IAAImP,IAAM,SAAUnP,GAC1B,IAAI7gB,EAAI6gB,EAAI,GAAK,IACb/hB,EAAI+hB,EAAI,GAAK,IACb5hB,EAAI,EACJ4B,EAAI,EAYR,OATE5B,EADEH,EAAI,GACF,EAAMkB,EAAIlB,EAEV,EAAMkB,GAAK,EAAMlB,IAGf,IACN+B,GAAK/B,EAAI,GAAMG,IAAM,EAAMA,IAGtB,CAAC4hB,EAAI,GAAQ,IAAJ5hB,EAAa,IAAJ4B,IAG3B0b,EAAQkT,IAAIO,IAAM,SAAUP,GAC1B,IAAIzvB,EAAIyvB,EAAI,GAAK,IACb1uB,EAAI0uB,EAAI,GAAK,IACbxwB,EAAIe,EAAIe,EACRF,EAAI,EAMR,OAJI5B,EAAI,IACN4B,GAAKE,EAAI9B,IAAM,EAAIA,IAGd,CAACwwB,EAAI,GAAQ,IAAJxwB,EAAa,IAAJ4B,IAG3B0b,EAAQyT,IAAIhS,IAAM,SAAUgS,GAC1B,IAAItvB,EAAIsvB,EAAI,GAAK,IACb/wB,EAAI+wB,EAAI,GAAK,IACb/uB,EAAI+uB,EAAI,GAAK,IAEjB,GAAU,IAAN/wB,EACF,MAAO,CAAK,IAAJgC,EAAa,IAAJA,EAAa,IAAJA,GAG5B,IAIIsxB,EAJAC,EAAO,CAAC,EAAG,EAAG,GACdvB,EAAKvwB,EAAI,EAAI,EACbK,EAAIkwB,EAAK,EACTlvB,EAAI,EAAIhB,EAGZ,OAAQyE,KAAKqB,MAAMoqB,IACjB,KAAK,EACHuB,EAAK,GAAK,EACVA,EAAK,GAAKzxB,EACVyxB,EAAK,GAAK,EACV,MAEF,KAAK,EACHA,EAAK,GAAKzwB,EACVywB,EAAK,GAAK,EACVA,EAAK,GAAK,EACV,MAEF,KAAK,EACHA,EAAK,GAAK,EACVA,EAAK,GAAK,EACVA,EAAK,GAAKzxB,EACV,MAEF,KAAK,EACHyxB,EAAK,GAAK,EACVA,EAAK,GAAKzwB,EACVywB,EAAK,GAAK,EACV,MAEF,KAAK,EACHA,EAAK,GAAKzxB,EACVyxB,EAAK,GAAK,EACVA,EAAK,GAAK,EACV,MAEF,QACEA,EAAK,GAAK,EACVA,EAAK,GAAK,EACVA,EAAK,GAAKzwB,EAId,OADAwwB,GAAM,EAAMtzB,GAAKgC,EACV,CAAsB,KAApBhC,EAAIuzB,EAAK,GAAKD,GAAgC,KAApBtzB,EAAIuzB,EAAK,GAAKD,GAAgC,KAApBtzB,EAAIuzB,EAAK,GAAKD,KAG7EhW,EAAQyT,IAAIP,IAAM,SAAUO,GAC1B,IAAI/wB,EAAI+wB,EAAI,GAAK,IAEbjvB,EAAI9B,EADA+wB,EAAI,GAAK,KACA,EAAM/wB,GACnB4B,EAAI,EAMR,OAJIE,EAAI,IACNF,EAAI5B,EAAI8B,GAGH,CAACivB,EAAI,GAAQ,IAAJnvB,EAAa,IAAJE,IAG3Bwb,EAAQyT,IAAInP,IAAM,SAAUmP,GAC1B,IAAI/wB,EAAI+wB,EAAI,GAAK,IAEblxB,EADIkxB,EAAI,GAAK,KACJ,EAAM/wB,GAAK,GAAMA,EAC1Be,EAAI,EAQR,OANIlB,EAAI,GAAOA,EAAI,GACjBkB,EAAIf,GAAK,EAAIH,GACJA,GAAK,IAAOA,EAAI,IACzBkB,EAAIf,GAAK,GAAK,EAAIH,KAGb,CAACkxB,EAAI,GAAQ,IAAJhwB,EAAa,IAAJlB,IAG3Byd,EAAQyT,IAAI9O,IAAM,SAAU8O,GAC1B,IAAI/wB,EAAI+wB,EAAI,GAAK,IAEbjvB,EAAI9B,EADA+wB,EAAI,GAAK,KACA,EAAM/wB,GACvB,MAAO,CAAC+wB,EAAI,GAAc,KAATjvB,EAAI9B,GAAoB,KAAT,EAAI8B,KAGtCwb,EAAQ2E,IAAI8O,IAAM,SAAU9O,GAC1B,IAAInf,EAAImf,EAAI,GAAK,IAEbngB,EAAI,EADAmgB,EAAI,GAAK,IAEbjiB,EAAI8B,EAAIgB,EACRd,EAAI,EAMR,OAJIhC,EAAI,IACNgC,GAAKF,EAAI9B,IAAM,EAAIA,IAGd,CAACiiB,EAAI,GAAQ,IAAJjiB,EAAa,IAAJgC,IAG3Bsb,EAAQ0T,MAAMjS,IAAM,SAAUiS,GAC5B,MAAO,CAACA,EAAM,GAAK,MAAQ,IAAKA,EAAM,GAAK,MAAQ,IAAKA,EAAM,GAAK,MAAQ,MAG7E1T,EAAQyB,IAAIiS,MAAQ,SAAUjS,GAC5B,MAAO,CAACA,EAAI,GAAK,IAAM,MAAOA,EAAI,GAAK,IAAM,MAAOA,EAAI,GAAK,IAAM,QAGrEzB,EAAQ6C,KAAKpB,IAAM,SAAUC,GAC3B,MAAO,CAACA,EAAK,GAAK,IAAM,IAAKA,EAAK,GAAK,IAAM,IAAKA,EAAK,GAAK,IAAM,MAGpE1B,EAAQ6C,KAAKyB,IAAMtE,EAAQ6C,KAAKqQ,IAAM,SAAUxR,GAC9C,MAAO,CAAC,EAAG,EAAGA,EAAK,KAGrB1B,EAAQ6C,KAAK8B,IAAM,SAAU9B,GAC3B,MAAO,CAAC,EAAG,IAAKA,EAAK,KAGvB7C,EAAQ6C,KAAKsQ,KAAO,SAAUtQ,GAC5B,MAAO,CAAC,EAAG,EAAG,EAAGA,EAAK,KAGxB7C,EAAQ6C,KAAKwQ,IAAM,SAAUxQ,GAC3B,MAAO,CAACA,EAAK,GAAI,EAAG,IAGtB7C,EAAQ6C,KAAKQ,IAAM,SAAUR,GAC3B,IAAI3B,EAAwC,IAAlCjY,KAAK0Y,MAAMkB,EAAK,GAAK,IAAM,KAEjCxB,IADWH,GAAO,KAAOA,GAAO,GAAKA,GACpBxd,SAAS,IAAIkyB,cAClC,MAAO,SAASC,UAAUxU,EAAO3f,QAAU2f,GAG7CrB,EAAQyB,IAAIoB,KAAO,SAAUpB,GAE3B,MAAO,EADIA,EAAI,GAAKA,EAAI,GAAKA,EAAI,IAAM,EACzB,IAAM,O,mBC73BtBpgB,EAAOC,QAAU,SAAsB40B,EAAMC,EAAMC,EAASC,GAC1D,IAAIC,EAAMF,EAAUA,EAAQ5zB,KAAK6zB,EAAgBH,EAAMC,QAAQ,EAE/D,QAAY,IAARG,EACF,QAASA,EAGX,GAAIJ,IAASC,EACX,OAAO,EAGT,GAAoB,iBAATD,IAAsBA,GAAwB,iBAATC,IAAsBA,EACpE,OAAO,EAGT,IAAII,EAAQ10B,OAAOsD,KAAK+wB,GACpBM,EAAQ30B,OAAOsD,KAAKgxB,GAExB,GAAII,EAAM70B,SAAW80B,EAAM90B,OACzB,OAAO,EAKT,IAFA,IAAI+0B,EAAkB50B,OAAOyB,UAAUC,eAAeH,KAAK+yB,GAElDO,EAAM,EAAGA,EAAMH,EAAM70B,OAAQg1B,IAAO,CAC3C,IAAI5yB,EAAMyyB,EAAMG,GAEhB,IAAKD,EAAgB3yB,GACnB,OAAO,EAGT,IAAI6yB,EAAST,EAAKpyB,GACd8yB,EAAST,EAAKryB,GAGlB,IAAY,KAFZwyB,EAAMF,EAAUA,EAAQ5zB,KAAK6zB,EAAgBM,EAAQC,EAAQ9yB,QAAO,SAEvC,IAARwyB,GAAkBK,IAAWC,EAChD,OAAO,EAIX,OAAO,I,oCCzCM,SAASC,IAetB,OAdAA,EAAWh1B,OAAOgV,QAAU,SAAU+W,GACpC,IAAK,IAAItrB,EAAI,EAAGA,EAAI8E,UAAU1F,OAAQY,IAAK,CACzC,IAAIw0B,EAAS1vB,UAAU9E,GAEvB,IAAK,IAAIwB,KAAOgzB,EACVj1B,OAAOyB,UAAUC,eAAef,KAAKs0B,EAAQhzB,KAC/C8pB,EAAO9pB,GAAOgzB,EAAOhzB,IAK3B,OAAO8pB,IAGOhkB,MAAM7C,KAAMK,WAf9B,mC,qBCAA9F,EAAQ4B,YAAa,EACrB5B,EAAQonB,YAAS7Z,EAEjB,IAAIgoB,EAAWh1B,OAAOgV,QAAU,SAAU+W,GACxC,IAAK,IAAItrB,EAAI,EAAGA,EAAI8E,UAAU1F,OAAQY,IAAK,CACzC,IAAIw0B,EAAS1vB,UAAU9E,GAEvB,IAAK,IAAIwB,KAAOgzB,EACVj1B,OAAOyB,UAAUC,eAAef,KAAKs0B,EAAQhzB,KAC/C8pB,EAAO9pB,GAAOgzB,EAAOhzB,IAK3B,OAAO8pB,GAGLmJ,EAAe,WACjB,SAASC,EAAiBpJ,EAAQ1b,GAChC,IAAK,IAAI5P,EAAI,EAAGA,EAAI4P,EAAMxQ,OAAQY,IAAK,CACrC,IAAI20B,EAAa/kB,EAAM5P,GACvB20B,EAAWp0B,WAAao0B,EAAWp0B,aAAc,EACjDo0B,EAAWrzB,cAAe,EACtB,UAAWqzB,IAAYA,EAAWpzB,UAAW,GACjDhC,OAAOe,eAAegrB,EAAQqJ,EAAWnzB,IAAKmzB,IAIlD,OAAO,SAAUC,EAAaC,EAAYC,GAGxC,OAFID,GAAYH,EAAiBE,EAAY5zB,UAAW6zB,GACpDC,GAAaJ,EAAiBE,EAAaE,GACxCF,GAdQ,GAoBfG,EAAUC,EAFD,EAAQ,SAMjBC,EAAcD,EAFD,EAAQ,SAMrBE,EAAoBF,EAFD,EAAQ,SAM3BG,EAAqBH,EAFD,EAAQ,SAI5BI,EAAe,EAAQ,QAEvBC,EAAmB,EAAQ,QAE/B,SAASL,EAAuB/1B,GAC9B,OAAOA,GAAOA,EAAI2B,WAAa3B,EAAM,CACnC8B,QAAS9B,GAIb,SAASq2B,EAAyBr2B,EAAK4D,GACrC,IAAIyoB,EAAS,GAEb,IAAK,IAAItrB,KAAKf,EACR4D,EAAKoE,QAAQjH,IAAM,GAClBT,OAAOyB,UAAUC,eAAef,KAAKjB,EAAKe,KAC/CsrB,EAAOtrB,GAAKf,EAAIe,IAGlB,OAAOsrB,EAGT,SAASiK,EAAgB3kB,EAAUgkB,GACjC,KAAMhkB,aAAoBgkB,GACxB,MAAM,IAAIpwB,UAAU,qCAIxB,SAASgxB,EAA2BhsB,EAAMtJ,GACxC,IAAKsJ,EACH,MAAM,IAAI4Z,eAAe,6DAG3B,OAAOljB,GAAyB,iBAATA,GAAqC,mBAATA,EAA8BsJ,EAAPtJ,EAmB5E,IAA6ByR,EACvB8jB,EAAQC,EAoPVC,GAAoB,EAAIT,EAAkBn0B,SAASq0B,EAAa/kB,mBAAoB+kB,EAAaQ,wBAAyBR,EAAa7kB,iBAAnH,EAJJ,WAClB,OAAO,QAILslB,GAtPyBlkB,EAsPHgkB,EAnPjBD,EAAQD,EAAS,SAAUK,GAGhC,SAASC,IAGP,OAFAR,EAAgB9wB,KAAMsxB,GAEfP,EAA2B/wB,KAAMqxB,EAAiBxuB,MAAM7C,KAAMK,YA2LvE,OApNJ,SAAmBiM,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIxM,UAAU,kEAAoEwM,GAG1FD,EAAS/P,UAAYzB,OAAOsB,OAAOmQ,GAAcA,EAAWhQ,UAAW,CACrEvB,YAAa,CACXkB,MAAOoQ,EACPxQ,YAAY,EACZgB,UAAU,EACVD,cAAc,KAGd0P,IAAYzR,OAAOwO,eAAiBxO,OAAOwO,eAAegD,EAAUC,GAAcD,EAAS/C,UAAYgD,GAOzGglB,CAAUD,EAAeD,GAQzBC,EAAc/0B,UAAUqQ,sBAAwB,SAA+BC,GAC7E,QAAQ,EAAI6jB,EAAmBp0B,SAAS0D,KAAKmL,MAAO0B,IAGtDykB,EAAc/0B,UAAUi1B,yBAA2B,SAAkCC,EAAOC,GAC1F,IAAKA,EACH,OAAO,KAGT,OAAQD,EAAMrrB,MACZ,KAAKwqB,EAAiBe,UAAUC,OAChC,KAAKhB,EAAiBe,UAAUE,SAC9B,MAAO,CACLC,UAAWJ,GAGf,KAAKd,EAAiBe,UAAUI,MAC9B,MAAO,CACLC,QAASN,GAIf,MAAM,IAAIhwB,MAAM,IAAM+vB,EAAMrrB,KAAO,uGAGrCkrB,EAAc/0B,UAAU01B,yBAA2B,SAAkCC,GACnF,IAAIC,EAEAV,EAAQS,EAAKT,MACbW,EAAoBF,EAAKE,kBACzBC,EAAgBH,EAAKG,cACrBX,EAAiBQ,EAAKR,eAC1B,OAAO5B,EAAS,GAAIsC,IAAoBD,EAAY,IAAcV,EAAMrrB,MAAQ,GAAG5F,OAAO4xB,EAAkBX,EAAMrrB,OAAS,GAAI,CAAC0pB,EAAS,GAAIuC,EAAeryB,KAAKwxB,yBAAyBC,EAAOC,MAAoBS,KAGvNb,EAAc/0B,UAAU+1B,sBAAwB,SAA+BC,GAC7E,IAAIC,EAAWC,EAEXhB,EAAQc,EAAMd,MACdiB,EAAWH,EAAMG,SACjBL,EAAgBE,EAAMF,cACtBX,EAAiBa,EAAMb,eAE3B,OAAQD,EAAMrrB,MACZ,KAAKwqB,EAAiBe,UAAUgB,MAC9B,OAAO7C,EAAS,GAAI4C,IAAWF,EAAY,IAAcf,EAAMrrB,MAAQsrB,EAAgBc,EAAUI,gBAAkB9C,EAAS,GAAIuC,GAAgBG,IAElJ,KAAK5B,EAAiBe,UAAUkB,KAC9B,OAAO/C,EAAS,GAAI4C,EAAU,CAC5BI,eAAgBhD,EAAS,GAAIuC,KAGjC,KAAKzB,EAAiBe,UAAUoB,KAC9B,OAAOjD,EAAS,GAAI4C,EAAU,CAC5B7Q,eAAgBiO,EAAS,GAAIuC,KAInC,OAAOvC,EAAS,GAAI4C,IAAWD,EAAY,IAAchB,EAAMrrB,MAAQ0pB,EAAS,GAAIuC,GAAgBI,KAGtGnB,EAAc/0B,UAAUy2B,4BAA8B,SAAqCZ,EAAmBM,GAC5G,IAAIO,EAAoBnD,EAAS,GAAI4C,GAOrC,OALA53B,OAAOsD,KAAKg0B,GAAmBnrB,SAAQ,SAAUisB,GAC/C,IAAIC,EAEJF,EAAoBnD,EAAS,GAAImD,IAAoBE,EAAY,IAAcD,GAAkBd,EAAkBc,GAAiBC,OAE/HF,GAGT3B,EAAc/0B,UAAU62B,sBAAwB,SAA+B3B,EAAOC,GAmBpF,OAAO,GAGTJ,EAAc/0B,UAAU82B,mBAAqB,SAA4BC,EAAUZ,GACjF,IAAIa,EAASvzB,KAEToyB,EAAoB,GAyCxB,OAvCA9B,EAAQh0B,QAAQk3B,SAASvsB,QAAQqsB,GAAU,SAAU7B,GACnD,GAAKA,GAAUA,EAAMtmB,MAArB,CAIA,IAAIsoB,EAAehC,EAAMtmB,MACrBumB,EAAiB+B,EAAaH,SAC9BI,EAAa7C,EAAyB4C,EAAc,CAAC,aAErDpB,GAAgB,EAAI1B,EAAagD,mCAAmCD,GAIxE,OAFAH,EAAOH,sBAAsB3B,EAAOC,GAE5BD,EAAMrrB,MACZ,KAAKwqB,EAAiBe,UAAUiC,KAChC,KAAKhD,EAAiBe,UAAUkC,KAChC,KAAKjD,EAAiBe,UAAUE,SAChC,KAAKjB,EAAiBe,UAAUC,OAChC,KAAKhB,EAAiBe,UAAUI,MAC9BK,EAAoBmB,EAAOtB,yBAAyB,CAClDR,MAAOA,EACPW,kBAAmBA,EACnBC,cAAeA,EACfX,eAAgBA,IAElB,MAEF,QACEgB,EAAWa,EAAOjB,sBAAsB,CACtCb,MAAOA,EACPiB,SAAUA,EACVL,cAAeA,EACfX,eAAgBA,SAMxBgB,EAAW1yB,KAAKgzB,4BAA4BZ,EAAmBM,IAIjEpB,EAAc/0B,UAAU0Q,OAAS,WAC/B,IAAI6mB,EAAS9zB,KAAKmL,MACdmoB,EAAWQ,EAAOR,SAClBnoB,EAAQ0lB,EAAyBiD,EAAQ,CAAC,aAE1CpB,EAAW5C,EAAS,GAAI3kB,GAM5B,OAJImoB,IACFZ,EAAW1yB,KAAKqzB,mBAAmBC,EAAUZ,IAGxCpC,EAAQh0B,QAAQ8O,cAAc8B,EAAWwlB,IAGlD1C,EAAasB,EAAe,KAAM,CAAC,CACjCv0B,IAAK,YAuBLmmB,IAAK,SAAavX,GAChBuB,EAAUvB,UAAYA,MAInB2lB,EAjMe,CAkMtBhB,EAAQh0B,QAAQ4Q,WAAY8jB,EAAO+C,UAAY,CAC/CC,KAAMxD,EAAYl0B,QAAQsN,OAC1BkpB,eAAgBtC,EAAYl0B,QAAQsN,OACpC0pB,SAAU9C,EAAYl0B,QAAQ23B,UAAU,CAACzD,EAAYl0B,QAAQ43B,QAAQ1D,EAAYl0B,QAAQ63B,MAAO3D,EAAYl0B,QAAQ63B,OACpHjS,aAAcsO,EAAYl0B,QAAQge,OAClCsH,MAAO4O,EAAYl0B,QAAQ83B,KAC3BC,wBAAyB7D,EAAYl0B,QAAQ83B,KAC7CvS,eAAgB2O,EAAYl0B,QAAQsN,OACpC0qB,KAAM9D,EAAYl0B,QAAQ43B,QAAQ1D,EAAYl0B,QAAQsN,QACtDuY,KAAMqO,EAAYl0B,QAAQ43B,QAAQ1D,EAAYl0B,QAAQsN,QACtD2qB,SAAU/D,EAAYl0B,QAAQ43B,QAAQ1D,EAAYl0B,QAAQsN,QAC1D4qB,oBAAqBhE,EAAYl0B,QAAQm4B,KACzCC,OAAQlE,EAAYl0B,QAAQ43B,QAAQ1D,EAAYl0B,QAAQsN,QACxD+qB,MAAOnE,EAAYl0B,QAAQ43B,QAAQ1D,EAAYl0B,QAAQsN,QACvDqW,MAAOuQ,EAAYl0B,QAAQge,OAC3BsY,gBAAiBpC,EAAYl0B,QAAQsN,OACrCoY,cAAewO,EAAYl0B,QAAQge,QAClC0W,EAAO3lB,aAAe,CACvBuW,OAAO,EACPyS,yBAAyB,GACxBrD,EAAOxkB,KAAOU,EAAUV,KAAMwkB,EAAOvkB,OAAS,WAC/C,IAAImoB,EAAc1nB,EAAUT,SAmB5B,OAjBKmoB,IAEHA,GAAc,EAAIjE,EAAa7kB,kBAAkB,CAC/C+oB,QAAS,GACT/B,eAAgB,GAChBuB,yBAAyB,EACzBxS,eAAgB,GAChBiT,SAAU,GACVC,SAAU,GACVC,aAAc,GACdC,WAAY,GACZC,UAAW,GACXjV,MAAO,GACP2S,gBAAiB,MAIdgC,GACN3D,GASLG,EAAa+D,aAAe/D,EAAa3kB,OACzClS,EAAQonB,OAASyP,EACjB72B,EAAQ+B,QAAU80B,G,qBChWlB,IAAIlG,EAAc,EAAQ,QA+B1B,SAASkK,EAAUhK,GACjB,IAAIiK,EAnBN,WAKE,IAJA,IAAIA,EAAQ,GAERC,EAASx6B,OAAOsD,KAAK8sB,GAEhBpS,EAAMwc,EAAO36B,OAAQY,EAAI,EAAGA,EAAIud,EAAKvd,IAC5C85B,EAAMC,EAAO/5B,IAAM,CAGjB2B,UAAW,EACXq4B,OAAQ,MAIZ,OAAOF,EAKKG,GACRnW,EAAQ,CAAC+L,GAIb,IAFAiK,EAAMjK,GAAWluB,SAAW,EAErBmiB,EAAM1kB,QAIX,IAHA,IAAI86B,EAAUpW,EAAMvV,MAChB4rB,EAAY56B,OAAOsD,KAAK8sB,EAAYuK,IAE/B3c,EAAM4c,EAAU/6B,OAAQY,EAAI,EAAGA,EAAIud,EAAKvd,IAAK,CACpD,IAAIo6B,EAAWD,EAAUn6B,GACrB44B,EAAOkB,EAAMM,IAEM,IAAnBxB,EAAKj3B,WACPi3B,EAAKj3B,SAAWm4B,EAAMI,GAASv4B,SAAW,EAC1Ci3B,EAAKoB,OAASE,EACdpW,EAAMuW,QAAQD,IAKpB,OAAON,EAGT,SAASf,EAAKlT,EAAM3G,GAClB,OAAO,SAAUE,GACf,OAAOF,EAAG2G,EAAKzG,KAInB,SAASkb,EAAevK,EAAS+J,GAK/B,IAJA,IAAIS,EAAO,CAACT,EAAM/J,GAASiK,OAAQjK,GAC/B/kB,EAAK2kB,EAAYmK,EAAM/J,GAASiK,QAAQjK,GACxCyK,EAAMV,EAAM/J,GAASiK,OAElBF,EAAMU,GAAKR,QAChBO,EAAKF,QAAQP,EAAMU,GAAKR,QACxBhvB,EAAK+tB,EAAKpJ,EAAYmK,EAAMU,GAAKR,QAAQQ,GAAMxvB,GAC/CwvB,EAAMV,EAAMU,GAAKR,OAInB,OADAhvB,EAAGilB,WAAasK,EACTvvB,EAGTjM,EAAOC,QAAU,SAAU6wB,GAKzB,IAJA,IAAIiK,EAAQD,EAAUhK,GAClBI,EAAa,GACb8J,EAASx6B,OAAOsD,KAAKi3B,GAEhBvc,EAAMwc,EAAO36B,OAAQY,EAAI,EAAGA,EAAIud,EAAKvd,IAAK,CACjD,IAAI+vB,EAAUgK,EAAO/5B,GAGD,OAFT85B,EAAM/J,GAERiK,SAKT/J,EAAWF,GAAWuK,EAAevK,EAAS+J,IAGhD,OAAO7J,I,qBC9FT,IAAIvgB,EAAQ,EAAQ,QAEpB,SAAS+qB,EAAe7qB,GACpB,OAAOF,EAAMG,cAAc,MAAMD,EAAM,CAACF,EAAMG,cAAc,QAAQ,CAAC,IAAM,GAAG,WAAWH,EAAMG,cAAc,IAAI,CAAC,GAAK,KAAK,OAAS,OAAO,YAAc,IAAI,KAAO,OAAO,SAAW,UAAU,IAAM,GAAGH,EAAMG,cAAc,IAAI,CAAC,GAAK,UAAU,KAAO,UAAU,SAAW,WAAWH,EAAMG,cAAc,OAAO,CAAC,EAAI,oueAAoue,GAAK,aAGtif4qB,EAAc3qB,aAAe,CAAC,MAAQ,QAAQ,OAAS,OAAO,QAAU,aAAa,QAAU,OAE/F/Q,EAAOC,QAAUy7B,EAEjBA,EAAc15B,QAAU05B,G,qBCJxB,IAFA,IAAIC,EAAY,GAEP16B,EAAI,EAAGA,EAAI,MAAOA,EACzB06B,EAAU16B,IAAMA,EAAI,KAAOoB,SAAS,IAAIkb,OAAO,GAUjDvd,EAAOC,QAPP,SAAqBioB,EAAKC,GACxB,IAAIlnB,EAAIknB,GAAU,EACdyT,EAAMD,EAEV,MAAO,CAACC,EAAI1T,EAAIjnB,MAAO26B,EAAI1T,EAAIjnB,MAAO26B,EAAI1T,EAAIjnB,MAAO26B,EAAI1T,EAAIjnB,MAAO,IAAK26B,EAAI1T,EAAIjnB,MAAO26B,EAAI1T,EAAIjnB,MAAO,IAAK26B,EAAI1T,EAAIjnB,MAAO26B,EAAI1T,EAAIjnB,MAAO,IAAK26B,EAAI1T,EAAIjnB,MAAO26B,EAAI1T,EAAIjnB,MAAO,IAAK26B,EAAI1T,EAAIjnB,MAAO26B,EAAI1T,EAAIjnB,MAAO26B,EAAI1T,EAAIjnB,MAAO26B,EAAI1T,EAAIjnB,MAAO26B,EAAI1T,EAAIjnB,MAAO26B,EAAI1T,EAAIjnB,OAAOqU,KAAK,M,uBCdnR,IAQIumB,EAEAC,EAVA9T,EAAM,EAAQ,QAEdC,EAAc,EAAQ,QAWtB8T,EAAa,EACbC,EAAa,EAkFjBh8B,EAAOC,QAhFP,SAAY0F,EAASuiB,EAAKC,GACxB,IAAIlnB,EAAIinB,GAAOC,GAAU,EACrBtkB,EAAIqkB,GAAO,GAEX2R,GADJl0B,EAAUA,GAAW,IACFk0B,MAAQgC,EACvBI,OAAgCzuB,IAArB7H,EAAQs2B,SAAyBt2B,EAAQs2B,SAAWH,EAInE,GAAY,MAARjC,GAA4B,MAAZoC,EAAkB,CACpC,IAAIC,EAAYlU,IAEJ,MAAR6R,IAEFA,EAAOgC,EAAU,CAAgB,EAAfK,EAAU,GAAWA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,KAG3F,MAAZD,IAEFA,EAAWH,EAAiD,OAApCI,EAAU,IAAM,EAAIA,EAAU,KAQ1D,IAAIC,OAA0B3uB,IAAlB7H,EAAQw2B,MAAsBx2B,EAAQw2B,OAAQ,IAAI1S,MAAO2S,UAGjEC,OAA0B7uB,IAAlB7H,EAAQ02B,MAAsB12B,EAAQ02B,MAAQL,EAAa,EAEnEM,EAAKH,EAAQJ,GAAcM,EAAQL,GAAc,IAarD,GAXIM,EAAK,QAA0B9uB,IAArB7H,EAAQs2B,WACpBA,EAAWA,EAAW,EAAI,QAKvBK,EAAK,GAAKH,EAAQJ,SAAiCvuB,IAAlB7H,EAAQ02B,QAC5CA,EAAQ,GAINA,GAAS,IACX,MAAM,IAAIj1B,MAAM,mDAGlB20B,EAAaI,EACbH,EAAaK,EACbP,EAAYG,EAIZ,IAAIM,GAA4B,KAAb,WAFnBJ,GAAS,cAE+BE,GAAS,WACjDx4B,EAAE5C,KAAOs7B,IAAO,GAAK,IACrB14B,EAAE5C,KAAOs7B,IAAO,GAAK,IACrB14B,EAAE5C,KAAOs7B,IAAO,EAAI,IACpB14B,EAAE5C,KAAY,IAALs7B,EAET,IAAIC,EAAML,EAAQ,WAAc,IAAQ,UACxCt4B,EAAE5C,KAAOu7B,IAAQ,EAAI,IACrB34B,EAAE5C,KAAa,IAANu7B,EAET34B,EAAE5C,KAAOu7B,IAAQ,GAAK,GAAM,GAE5B34B,EAAE5C,KAAOu7B,IAAQ,GAAK,IAEtB34B,EAAE5C,KAAOg7B,IAAa,EAAI,IAE1Bp4B,EAAE5C,KAAkB,IAAXg7B,EAET,IAAK,IAAIn7B,EAAI,EAAGA,EAAI,IAAKA,EACvB+C,EAAE5C,EAAIH,GAAK+4B,EAAK/4B,GAGlB,OAAOonB,GAAYD,EAAYpkB,K,kCC3FjC7D,EAAOC,QAAU,CACf,UAAa,CAAC,IAAK,IAAK,KACxB,aAAgB,CAAC,IAAK,IAAK,KAC3B,KAAQ,CAAC,EAAG,IAAK,KACjB,WAAc,CAAC,IAAK,IAAK,KACzB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,OAAU,CAAC,IAAK,IAAK,KACrB,MAAS,CAAC,EAAG,EAAG,GAChB,eAAkB,CAAC,IAAK,IAAK,KAC7B,KAAQ,CAAC,EAAG,EAAG,KACf,WAAc,CAAC,IAAK,GAAI,KACxB,MAAS,CAAC,IAAK,GAAI,IACnB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,WAAc,CAAC,IAAK,IAAK,GACzB,UAAa,CAAC,IAAK,IAAK,IACxB,MAAS,CAAC,IAAK,IAAK,IACpB,eAAkB,CAAC,IAAK,IAAK,KAC7B,SAAY,CAAC,IAAK,IAAK,KACvB,QAAW,CAAC,IAAK,GAAI,IACrB,KAAQ,CAAC,EAAG,IAAK,KACjB,SAAY,CAAC,EAAG,EAAG,KACnB,SAAY,CAAC,EAAG,IAAK,KACrB,cAAiB,CAAC,IAAK,IAAK,IAC5B,SAAY,CAAC,IAAK,IAAK,KACvB,UAAa,CAAC,EAAG,IAAK,GACtB,SAAY,CAAC,IAAK,IAAK,KACvB,UAAa,CAAC,IAAK,IAAK,KACxB,YAAe,CAAC,IAAK,EAAG,KACxB,eAAkB,CAAC,GAAI,IAAK,IAC5B,WAAc,CAAC,IAAK,IAAK,GACzB,WAAc,CAAC,IAAK,GAAI,KACxB,QAAW,CAAC,IAAK,EAAG,GACpB,WAAc,CAAC,IAAK,IAAK,KACzB,aAAgB,CAAC,IAAK,IAAK,KAC3B,cAAiB,CAAC,GAAI,GAAI,KAC1B,cAAiB,CAAC,GAAI,GAAI,IAC1B,cAAiB,CAAC,GAAI,GAAI,IAC1B,cAAiB,CAAC,EAAG,IAAK,KAC1B,WAAc,CAAC,IAAK,EAAG,KACvB,SAAY,CAAC,IAAK,GAAI,KACtB,YAAe,CAAC,EAAG,IAAK,KACxB,QAAW,CAAC,IAAK,IAAK,KACtB,QAAW,CAAC,IAAK,IAAK,KACtB,WAAc,CAAC,GAAI,IAAK,KACxB,UAAa,CAAC,IAAK,GAAI,IACvB,YAAe,CAAC,IAAK,IAAK,KAC1B,YAAe,CAAC,GAAI,IAAK,IACzB,QAAW,CAAC,IAAK,EAAG,KACpB,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,KAAQ,CAAC,IAAK,IAAK,GACnB,UAAa,CAAC,IAAK,IAAK,IACxB,KAAQ,CAAC,IAAK,IAAK,KACnB,MAAS,CAAC,EAAG,IAAK,GAClB,YAAe,CAAC,IAAK,IAAK,IAC1B,KAAQ,CAAC,IAAK,IAAK,KACnB,SAAY,CAAC,IAAK,IAAK,KACvB,QAAW,CAAC,IAAK,IAAK,KACtB,UAAa,CAAC,IAAK,GAAI,IACvB,OAAU,CAAC,GAAI,EAAG,KAClB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,SAAY,CAAC,IAAK,IAAK,KACvB,cAAiB,CAAC,IAAK,IAAK,KAC5B,UAAa,CAAC,IAAK,IAAK,GACxB,aAAgB,CAAC,IAAK,IAAK,KAC3B,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,qBAAwB,CAAC,IAAK,IAAK,KACnC,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,YAAe,CAAC,IAAK,IAAK,KAC1B,cAAiB,CAAC,GAAI,IAAK,KAC3B,aAAgB,CAAC,IAAK,IAAK,KAC3B,eAAkB,CAAC,IAAK,IAAK,KAC7B,eAAkB,CAAC,IAAK,IAAK,KAC7B,eAAkB,CAAC,IAAK,IAAK,KAC7B,YAAe,CAAC,IAAK,IAAK,KAC1B,KAAQ,CAAC,EAAG,IAAK,GACjB,UAAa,CAAC,GAAI,IAAK,IACvB,MAAS,CAAC,IAAK,IAAK,KACpB,QAAW,CAAC,IAAK,EAAG,KACpB,OAAU,CAAC,IAAK,EAAG,GACnB,iBAAoB,CAAC,IAAK,IAAK,KAC/B,WAAc,CAAC,EAAG,EAAG,KACrB,aAAgB,CAAC,IAAK,GAAI,KAC1B,aAAgB,CAAC,IAAK,IAAK,KAC3B,eAAkB,CAAC,GAAI,IAAK,KAC5B,gBAAmB,CAAC,IAAK,IAAK,KAC9B,kBAAqB,CAAC,EAAG,IAAK,KAC9B,gBAAmB,CAAC,GAAI,IAAK,KAC7B,gBAAmB,CAAC,IAAK,GAAI,KAC7B,aAAgB,CAAC,GAAI,GAAI,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,SAAY,CAAC,IAAK,IAAK,KACvB,YAAe,CAAC,IAAK,IAAK,KAC1B,KAAQ,CAAC,EAAG,EAAG,KACf,QAAW,CAAC,IAAK,IAAK,KACtB,MAAS,CAAC,IAAK,IAAK,GACpB,UAAa,CAAC,IAAK,IAAK,IACxB,OAAU,CAAC,IAAK,IAAK,GACrB,UAAa,CAAC,IAAK,GAAI,GACvB,OAAU,CAAC,IAAK,IAAK,KACrB,cAAiB,CAAC,IAAK,IAAK,KAC5B,UAAa,CAAC,IAAK,IAAK,KACxB,cAAiB,CAAC,IAAK,IAAK,KAC5B,cAAiB,CAAC,IAAK,IAAK,KAC5B,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,KAAQ,CAAC,IAAK,IAAK,IACnB,KAAQ,CAAC,IAAK,IAAK,KACnB,KAAQ,CAAC,IAAK,IAAK,KACnB,WAAc,CAAC,IAAK,IAAK,KACzB,OAAU,CAAC,IAAK,EAAG,KACnB,cAAiB,CAAC,IAAK,GAAI,KAC3B,IAAO,CAAC,IAAK,EAAG,GAChB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,YAAe,CAAC,IAAK,GAAI,IACzB,OAAU,CAAC,IAAK,IAAK,KACrB,WAAc,CAAC,IAAK,IAAK,IACzB,SAAY,CAAC,GAAI,IAAK,IACtB,SAAY,CAAC,IAAK,IAAK,KACvB,OAAU,CAAC,IAAK,GAAI,IACpB,OAAU,CAAC,IAAK,IAAK,KACrB,QAAW,CAAC,IAAK,IAAK,KACtB,UAAa,CAAC,IAAK,GAAI,KACvB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,KAAQ,CAAC,IAAK,IAAK,KACnB,YAAe,CAAC,EAAG,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,IAAO,CAAC,IAAK,IAAK,KAClB,KAAQ,CAAC,EAAG,IAAK,KACjB,QAAW,CAAC,IAAK,IAAK,KACtB,OAAU,CAAC,IAAK,GAAI,IACpB,UAAa,CAAC,GAAI,IAAK,KACvB,OAAU,CAAC,IAAK,IAAK,KACrB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,WAAc,CAAC,IAAK,IAAK,KACzB,OAAU,CAAC,IAAK,IAAK,GACrB,YAAe,CAAC,IAAK,IAAK,M,qBCtJ5BD,EAAOC,QAAU,EAAQ,S,kCCEzB,IAAIG,EAAUD,MAAMC,QAChBq8B,EAAUj8B,OAAOsD,KACjB44B,EAAUl8B,OAAOyB,UAAUC,eAC3By6B,EAAoC,oBAAZvM,QAsE5BpwB,EAAOC,QAAU,SAAuByC,EAAGmB,GACzC,IACE,OAtEJ,SAAS+4B,EAAMl6B,EAAGmB,GAEhB,GAAInB,IAAMmB,EAAG,OAAO,EAEpB,GAAInB,GAAKmB,GAAiB,iBAALnB,GAA6B,iBAALmB,EAAe,CAC1D,IAEI5C,EACAZ,EACAoC,EAJAo6B,EAAOz8B,EAAQsC,GACfo6B,EAAO18B,EAAQyD,GAKnB,GAAIg5B,GAAQC,EAAM,CAEhB,IADAz8B,EAASqC,EAAErC,SACGwD,EAAExD,OAAQ,OAAO,EAE/B,IAAKY,EAAIZ,EAAgB,GAARY,KACf,IAAK27B,EAAMl6B,EAAEzB,GAAI4C,EAAE5C,IAAK,OAAO,EAGjC,OAAO,EAGT,GAAI47B,GAAQC,EAAM,OAAO,EACzB,IAAIC,EAAQr6B,aAAa+mB,KACrBuT,EAAQn5B,aAAa4lB,KACzB,GAAIsT,GAASC,EAAO,OAAO,EAC3B,GAAID,GAASC,EAAO,OAAOt6B,EAAE05B,WAAav4B,EAAEu4B,UAC5C,IAAIa,EAAUv6B,aAAagG,OACvBw0B,EAAUr5B,aAAa6E,OAC3B,GAAIu0B,GAAWC,EAAS,OAAO,EAC/B,GAAID,GAAWC,EAAS,OAAOx6B,EAAEL,YAAcwB,EAAExB,WACjD,IAAIyB,EAAO24B,EAAQ/5B,GAEnB,IADArC,EAASyD,EAAKzD,UACCo8B,EAAQ54B,GAAGxD,OAAQ,OAAO,EAEzC,IAAKY,EAAIZ,EAAgB,GAARY,KACf,IAAKy7B,EAAQv7B,KAAK0C,EAAGC,EAAK7C,IAAK,OAAO,EAMxC,GAAI07B,GAAkBj6B,aAAa0tB,SAAWvsB,aAAausB,QAAS,OAAO1tB,IAAMmB,EAEjF,IAAK5C,EAAIZ,EAAgB,GAARY,KAGf,KAAY,YAFZwB,EAAMqB,EAAK7C,KAEayB,EAAEy6B,UAQnBP,EAAMl6B,EAAED,GAAMoB,EAAEpB,KAAO,OAAO,EAMvC,OAAO,EAGT,OAAOC,GAAMA,GAAKmB,GAAMA,EAMf+4B,CAAMl6B,EAAGmB,GAChB,MAAO0J,GACP,GAAIA,EAAM6vB,SAAW7vB,EAAM6vB,QAAQx0B,MAAM,sBAAyC,aAAlB2E,EAAM8vB,OAOpE,OADAh1B,QAAQi1B,KAAK,mEAAoE/vB,EAAM5M,KAAM4M,EAAM6vB,UAC5F,EAIT,MAAM7vB,K,qBCzFV,IAAIgwB,EAAa,EAAQ,QAErB7L,EAAU,EAAQ,QAElB8L,EAAe,GAEnB,IAAK,IAAI78B,KAAQ48B,EACXA,EAAWr7B,eAAevB,KAC5B68B,EAAaD,EAAW58B,IAASA,GAIrC,IAAI88B,EAAKz9B,EAAOC,QAAU,CACxBkgB,GAAI,GACJ1e,IAAK,IAoMP,SAASi8B,EAAM9c,EAAK/Y,EAAKqB,GACvB,OAAOtB,KAAKC,IAAID,KAAKsB,IAAIrB,EAAK+Y,GAAM1X,GAGtC,SAASy0B,EAAU/c,GACjB,IAAIgd,EAAMhd,EAAIve,SAAS,IAAIkyB,cAC3B,OAAOqJ,EAAIv9B,OAAS,EAAI,IAAMu9B,EAAMA,EAvMtCH,EAAGh8B,IAAM,SAAUue,GACjB,IACIH,EACA9B,EAEJ,OAJaiC,EAAOwU,UAAU,EAAG,GAAGhsB,eAKlC,IAAK,MACHqX,EAAM4d,EAAGh8B,IAAIwhB,IAAIjD,GACjBjC,EAAQ,MACR,MAEF,IAAK,MACH8B,EAAM4d,EAAGh8B,IAAI6hB,IAAItD,GACjBjC,EAAQ,MACR,MAEF,QACE8B,EAAM4d,EAAGh8B,IAAI2e,IAAIJ,GACjBjC,EAAQ,MAIZ,OAAK8B,EAIE,CACL9B,MAAOA,EACPnc,MAAOie,GALA,MASX4d,EAAGh8B,IAAI2e,IAAM,SAAUJ,GACrB,IAAKA,EACH,OAAO,KAGT,IAMIpX,EACA3H,EACA48B,EAHAzd,EAAM,CAAC,EAAG,EAAG,EAAG,GAKpB,GAAIxX,EAAQoX,EAAOpX,MATT,mCASqB,CAI7B,IAHAi1B,EAAWj1B,EAAM,GACjBA,EAAQA,EAAM,GAET3H,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAEtB,IAAI68B,EAAS,EAAJ78B,EACTmf,EAAInf,GAAKiU,SAAStM,EAAMjC,MAAMm3B,EAAIA,EAAK,GAAI,IAGzCD,IACFzd,EAAI,GAAKxY,KAAK0Y,MAAMpL,SAAS2oB,EAAU,IAAM,IAAM,KAAO,UAEvD,GAAIj1B,EAAQoX,EAAOpX,MAvBf,uBAuB4B,CAIrC,IAFAi1B,GADAj1B,EAAQA,EAAM,IACG,GAEZ3H,EAAI,EAAGA,EAAI,EAAGA,IACjBmf,EAAInf,GAAKiU,SAAStM,EAAM3H,GAAK2H,EAAM3H,GAAI,IAGrC48B,IACFzd,EAAI,GAAKxY,KAAK0Y,MAAMpL,SAAS2oB,EAAWA,EAAU,IAAM,IAAM,KAAO,UAElE,GAAIj1B,EAAQoX,EAAOpX,MAhCf,2FAgC4B,CACrC,IAAK3H,EAAI,EAAGA,EAAI,EAAGA,IACjBmf,EAAInf,GAAKiU,SAAStM,EAAM3H,EAAI,GAAI,GAG9B2H,EAAM,KACRwX,EAAI,GAAK0M,WAAWlkB,EAAM,SAEvB,MAAIA,EAAQoX,EAAOpX,MAvChB,8GA+CH,OAAIA,EAAQoX,EAAOpX,MA9CZ,UA+CK,gBAAbA,EAAM,GACD,CAAC,EAAG,EAAG,EAAG,IAGnBwX,EAAMmd,EAAW30B,EAAM,MAMvBwX,EAAI,GAAK,EACFA,GAJE,KAMF,KArBP,IAAKnf,EAAI,EAAGA,EAAI,EAAGA,IACjBmf,EAAInf,GAAK2G,KAAK0Y,MAAiC,KAA3BwM,WAAWlkB,EAAM3H,EAAI,KAGvC2H,EAAM,KACRwX,EAAI,GAAK0M,WAAWlkB,EAAM,KAmB9B,IAAK3H,EAAI,EAAGA,EAAI,EAAGA,IACjBmf,EAAInf,GAAKy8B,EAAMtd,EAAInf,GAAI,EAAG,KAI5B,OADAmf,EAAI,GAAKsd,EAAMtd,EAAI,GAAI,EAAG,GACnBA,GAGTqd,EAAGh8B,IAAIwhB,IAAM,SAAUjD,GACrB,IAAKA,EACH,OAAO,KAGT,IACIpX,EAAQoX,EAAOpX,MADT,uHAGV,GAAIA,EAAO,CACT,IAAI2W,EAAQuN,WAAWlkB,EAAM,IAK7B,MAAO,EAJEkkB,WAAWlkB,EAAM,IAAM,KAAO,IAC/B80B,EAAM5Q,WAAWlkB,EAAM,IAAK,EAAG,KAC/B80B,EAAM5Q,WAAWlkB,EAAM,IAAK,EAAG,KAC/B80B,EAAMhvB,MAAM6Q,GAAS,EAAIA,EAAO,EAAG,IAI7C,OAAO,MAGTke,EAAGh8B,IAAI6hB,IAAM,SAAUtD,GACrB,IAAKA,EACH,OAAO,KAGT,IACIpX,EAAQoX,EAAOpX,MADT,mHAGV,GAAIA,EAAO,CACT,IAAI2W,EAAQuN,WAAWlkB,EAAM,IAK7B,MAAO,EAJEkkB,WAAWlkB,EAAM,IAAM,IAAM,KAAO,IACrC80B,EAAM5Q,WAAWlkB,EAAM,IAAK,EAAG,KAC/B80B,EAAM5Q,WAAWlkB,EAAM,IAAK,EAAG,KAC/B80B,EAAMhvB,MAAM6Q,GAAS,EAAIA,EAAO,EAAG,IAI7C,OAAO,MAGTke,EAAGtd,GAAG6B,IAAM,WACV,IAAI+b,EAAOrM,EAAQ3rB,WACnB,MAAO,IAAM43B,EAAUI,EAAK,IAAMJ,EAAUI,EAAK,IAAMJ,EAAUI,EAAK,KAAOA,EAAK,GAAK,EAAIJ,EAAU/1B,KAAK0Y,MAAgB,IAAVyd,EAAK,KAAa,KAGpIN,EAAGtd,GAAGC,IAAM,WACV,IAAI2d,EAAOrM,EAAQ3rB,WACnB,OAAOg4B,EAAK19B,OAAS,GAAiB,IAAZ09B,EAAK,GAAW,OAASn2B,KAAK0Y,MAAMyd,EAAK,IAAM,KAAOn2B,KAAK0Y,MAAMyd,EAAK,IAAM,KAAOn2B,KAAK0Y,MAAMyd,EAAK,IAAM,IAAM,QAAUn2B,KAAK0Y,MAAMyd,EAAK,IAAM,KAAOn2B,KAAK0Y,MAAMyd,EAAK,IAAM,KAAOn2B,KAAK0Y,MAAMyd,EAAK,IAAM,KAAOA,EAAK,GAAK,KAGtPN,EAAGtd,GAAGC,IAAII,QAAU,WAClB,IAAIud,EAAOrM,EAAQ3rB,WACfhF,EAAI6G,KAAK0Y,MAAMyd,EAAK,GAAK,IAAM,KAC/B16B,EAAIuE,KAAK0Y,MAAMyd,EAAK,GAAK,IAAM,KAC/Bl6B,EAAI+D,KAAK0Y,MAAMyd,EAAK,GAAK,IAAM,KACnC,OAAOA,EAAK19B,OAAS,GAAiB,IAAZ09B,EAAK,GAAW,OAASh9B,EAAI,MAAQsC,EAAI,MAAQQ,EAAI,KAAO,QAAU9C,EAAI,MAAQsC,EAAI,MAAQQ,EAAI,MAAQk6B,EAAK,GAAK,KAGhJN,EAAGtd,GAAG8C,IAAM,WACV,IAAI+a,EAAOtM,EAAQ3rB,WACnB,OAAOi4B,EAAK39B,OAAS,GAAiB,IAAZ29B,EAAK,GAAW,OAASA,EAAK,GAAK,KAAOA,EAAK,GAAK,MAAQA,EAAK,GAAK,KAAO,QAAUA,EAAK,GAAK,KAAOA,EAAK,GAAK,MAAQA,EAAK,GAAK,MAAQA,EAAK,GAAK,KAKlLP,EAAGtd,GAAGmD,IAAM,WACV,IAAI2a,EAAOvM,EAAQ3rB,WACfrD,EAAI,GAMR,OAJIu7B,EAAK59B,QAAU,GAAiB,IAAZ49B,EAAK,KAC3Bv7B,EAAI,KAAOu7B,EAAK,IAGX,OAASA,EAAK,GAAK,KAAOA,EAAK,GAAK,MAAQA,EAAK,GAAK,IAAMv7B,EAAI,KAGzE+6B,EAAGtd,GAAG4B,QAAU,SAAU3B,GACxB,OAAOod,EAAapd,EAAIzZ,MAAM,EAAG,M,qBC/MnC,IAAIu3B,EAAK,EAAQ,QAEbC,EAAK,EAAQ,QAEbC,EAAOD,EACXC,EAAKF,GAAKA,EACVE,EAAKD,GAAKA,EACVn+B,EAAOC,QAAUm+B,G,mBCDjB,IAAIC,EAAmC,oBAAVC,QAAyBA,OAAOD,iBAAmBC,OAAOD,gBAAgBt8B,KAAKu8B,SAA8B,oBAAZC,UAAqE,mBAAnCh1B,OAAOg1B,SAASF,iBAAiCE,SAASF,gBAAgBt8B,KAAKw8B,UAE/O,GAAIF,EAAiB,CAEnB,IAAIG,EAAQ,IAAIC,WAAW,IAE3Bz+B,EAAOC,QAAU,WAEf,OADAo+B,EAAgBG,GACTA,OAEJ,CAKL,IAAIpW,EAAO,IAAIjoB,MAAM,IAErBH,EAAOC,QAAU,WACf,IAAK,IAAWc,EAAPE,EAAI,EAAMA,EAAI,GAAIA,IACN,IAAV,EAAJA,KAAiBF,EAAoB,WAAhB6G,KAAKygB,UAC/BD,EAAKnnB,GAAKF,MAAY,EAAJE,IAAa,GAAK,IAGtC,OAAOmnB,K,oCC7BI,SAAShX,EAAgBlR,EAAKuC,EAAKb,GAYhD,OAXIa,KAAOvC,EACTM,OAAOe,eAAerB,EAAKuC,EAAK,CAC9Bb,MAAOA,EACPJ,YAAY,EACZe,cAAc,EACdC,UAAU,IAGZtC,EAAIuC,GAAOb,EAGN1B,ECVT,SAASw+B,EAAQpvB,EAAQqvB,GACvB,IAAI76B,EAAOtD,OAAOsD,KAAKwL,GAEvB,GAAI9O,OAAOo+B,sBAAuB,CAChC,IAAIC,EAAUr+B,OAAOo+B,sBAAsBtvB,GACvCqvB,IAAgBE,EAAUA,EAAQvT,QAAO,SAAUwT,GACrD,OAAOt+B,OAAOC,yBAAyB6O,EAAQwvB,GAAKt9B,eAEtDsC,EAAKgD,KAAKyB,MAAMzE,EAAM+6B,GAGxB,OAAO/6B,EAGM,SAASi7B,EAAexS,GACrC,IAAK,IAAItrB,EAAI,EAAGA,EAAI8E,UAAU1F,OAAQY,IAAK,CACzC,IAAIw0B,EAAyB,MAAhB1vB,UAAU9E,GAAa8E,UAAU9E,GAAK,GAE/CA,EAAI,EACNy9B,EAAQl+B,OAAOi1B,IAAS,GAAM9oB,SAAQ,SAAUlK,GAC9C,EAAe8pB,EAAQ9pB,EAAKgzB,EAAOhzB,OAE5BjC,OAAOw+B,0BAChBx+B,OAAOm1B,iBAAiBpJ,EAAQ/rB,OAAOw+B,0BAA0BvJ,IAEjEiJ,EAAQl+B,OAAOi1B,IAAS9oB,SAAQ,SAAUlK,GACxCjC,OAAOe,eAAegrB,EAAQ9pB,EAAKjC,OAAOC,yBAAyBg1B,EAAQhzB,OAKjF,OAAO8pB,ECjCM,SAASiK,EAAgB3kB,EAAUgkB,GAChD,KAAMhkB,aAAoBgkB,GACxB,MAAM,IAAIpwB,UAAU,qCCFxB,SAASw5B,EAAkB1S,EAAQ1b,GACjC,IAAK,IAAI5P,EAAI,EAAGA,EAAI4P,EAAMxQ,OAAQY,IAAK,CACrC,IAAI20B,EAAa/kB,EAAM5P,GACvB20B,EAAWp0B,WAAao0B,EAAWp0B,aAAc,EACjDo0B,EAAWrzB,cAAe,EACtB,UAAWqzB,IAAYA,EAAWpzB,UAAW,GACjDhC,OAAOe,eAAegrB,EAAQqJ,EAAWnzB,IAAKmzB,IAInC,SAASF,EAAaG,EAAaC,EAAYC,GAG5D,OAFID,GAAYmJ,EAAkBpJ,EAAY5zB,UAAW6zB,GACrDC,GAAakJ,EAAkBpJ,EAAaE,GACzCF,E,oFCZM,SAASoB,EAAUjlB,EAAUC,GAC1C,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIxM,UAAU,sDAGtBuM,EAAS/P,UAAYzB,OAAOsB,OAAOmQ,GAAcA,EAAWhQ,UAAW,CACrEvB,YAAa,CACXkB,MAAOoQ,EACPxP,UAAU,EACVD,cAAc,KAGd0P,GAAY,OAAAjD,EAAA,GAAegD,EAAUC,GCb5B,SAASitB,EAAgBl+B,GAItC,OAHAk+B,EAAkB1+B,OAAOwO,eAAiBxO,OAAO8L,eAAiB,SAAyBtL,GACzF,OAAOA,EAAEiO,WAAazO,OAAO8L,eAAetL,KAEvBA,G,yBCFV,SAASy1B,EAA2BhsB,EAAMtJ,GACvD,OAAIA,GAA2B,WAAlB,IAAQA,IAAsC,mBAATA,EAI3C,OAAAg+B,EAAA,GAAsB10B,GAHpBtJ,ECDI,SAASi+B,EAAaC,GACnC,IAAIC,ECJS,WACb,GAAuB,oBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAUC,KAAM,OAAO,EACnC,GAAqB,mBAAVC,MAAsB,OAAO,EAExC,IAEE,OADAC,QAAQ19B,UAAU29B,QAAQz+B,KAAKo+B,QAAQC,UAAUG,QAAS,IAAI,iBACvD,EACP,MAAO/+B,GACP,OAAO,GDLuB,GAChC,OAAO,WACL,IACIuM,EADA0yB,EAAQ,EAAeR,GAG3B,GAAIC,EAA2B,CAC7B,IAAIQ,EAAY,EAAep6B,MAAMhF,YACrCyM,EAASoyB,QAAQC,UAAUK,EAAO95B,UAAW+5B,QAE7C3yB,EAAS0yB,EAAMt3B,MAAM7C,KAAMK,WAG7B,OAAO,EAA0BL,KAAMyH,I,8CEhBvC4yB,EAAM,SAAa9W,GACrB,OAAQrE,WAAWqE,EAAU,KAG3B+W,EAAM,SAAapf,GACrB,OAAOiE,aAAajE,IAaP,SAASqf,EAAWhX,GACjC,OAAO8W,EAAI9W,GCnBE,SAASiX,EAASC,EAAMr/B,GACrC,QAAKq/B,GAIEA,EAAKD,SAASp/B,GCAR,SAASs/B,EAAYvG,GAClC,OAAIA,aAAgBwG,YACXxG,EAGF,IAASuG,YAAYvG,GFFR,oBAAXtwB,QAA0B,0BAA2BA,SAC9Dw2B,EAAM,SAAa9W,GACjB,OAAO1f,OAAOigB,sBAAsBP,IAGtC+W,EAAM,SAAajwB,GACjB,OAAOxG,OAAO+2B,qBAAqBvwB,KAOvCkwB,EAAWM,OAASP,E,gBGrBpB,SAASQ,EAAQtgC,GAaf,OATEsgC,EADoB,mBAAX9+B,QAAoD,iBAApBA,OAAOY,SACtC,SAAiBpC,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,mBAAXwB,QAAyBxB,EAAIQ,cAAgBgB,QAAUxB,IAAQwB,OAAOO,UAAY,gBAAkB/B,IAI9GA,GAIV,SAASugC,EAAQC,EAAK7G,GACR,mBAAR6G,EACTA,EAAI7G,GACsB,WAAjB2G,EAAQE,IAAqBA,GAAO,YAAaA,IAC1DA,EAAIvF,QAAUtB,GCpBH,SAAS8G,EAAqBpU,EAAQqU,EAAWC,EAAIC,GAElE,IAAI7X,EAAW,IAAS8X,wBAA0B,SAAangC,GAC7D,IAASmgC,wBAAwBF,EAAIjgC,IACnCigC,EAMJ,OAJItU,EAAOb,kBACTa,EAAOb,iBAAiBkV,EAAW3X,EAAU6X,GAGxC,CACLE,OAAQ,WACFzU,EAAOP,qBACTO,EAAOP,oBAAoB4U,EAAW3X,KCd/B,SAASgY,IACtB,QAA4B,oBAAX13B,SAA0BA,OAAOC,WAAYD,OAAOC,SAASsH,eCEhF,IAgCe,EAhCF,sBAAW,SAAUD,EAAO6vB,GACvC,IAAIQ,EAAYrwB,EAAMqwB,UAClBC,EAAetwB,EAAMswB,aACrBnI,EAAWnoB,EAAMmoB,SACjBoI,EAAe,mBAEnB,8BAAoBV,GAAK,WACvB,MAAO,MAGT,IAAIW,EAAU,kBAAO,GAoBrB,OAlBKA,EAAQlG,SAAW8F,MACtBG,EAAajG,QAAUgG,IACvBE,EAAQlG,SAAU,GAIpB,qBAAU,WACR+F,SAAsDA,EAAUrwB,MAElE,qBAAU,WACR,OAAO,WACL,IAAIywB,EAAuBC,EAIwB,QAAlDD,EAAwBF,EAAajG,eAA+C,IAA1BmG,GAA4G,QAA/DC,EAAyBD,EAAsBE,kBAAmD,IAA3BD,GAA6CA,EAAuBE,YAAYL,EAAajG,YAE7Q,IACIiG,EAAajG,QAAU,IAASuG,aAAa1I,EAAUoI,EAAajG,SAAW,Q,qBC/BxF,SAASwG,EAAWC,EAAIC,EAAIC,GAC1B,OAAIA,EACKF,EAAG,KAAOC,EAAG,GAGfD,EAAG,KAAOC,EAAG,IAAMD,EAAG,KAAOC,EAAG,G,gCCH1B,SAASE,EAAezjB,EAAKrd,GAC1C,OCLa,SAAyBqd,GACtC,GAAIne,MAAMC,QAAQke,GAAM,OAAOA,EDIxB,CAAeA,IELT,SAA+BA,EAAKrd,GACjD,IAAIkoB,EAAK7K,IAA0B,oBAAX5c,QAA0B4c,EAAI5c,OAAOY,WAAagc,EAAI,eAE9E,GAAU,MAAN6K,EAAJ,CACA,IAII6Y,EAAIC,EAJJC,EAAO,GACPC,GAAK,EACLC,GAAK,EAIT,IACE,IAAKjZ,EAAKA,EAAGhoB,KAAKmd,KAAQ6jB,GAAMH,EAAK7Y,EAAGxb,QAAQ5B,QAC9Cm2B,EAAKp7B,KAAKk7B,EAAGpgC,QAETX,GAAKihC,EAAK7hC,SAAWY,GAH4BkhC,GAAK,IAK5D,MAAO93B,GACP+3B,GAAK,EACLH,EAAK53B,EACL,QACA,IACO83B,GAAsB,MAAhBhZ,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAIiZ,EAAI,MAAMH,GAIlB,OAAOC,GFtBuB,CAAqB5jB,EAAKrd,IAAM,OAAAmd,EAAA,GAA2BE,EAAKrd,IGLjF,WACb,MAAM,IAAIwE,UAAU,6IHIgF,GILvF,SAAS,EAAQvF,GAa9B,OATE,EADoB,mBAAXwB,QAAoD,iBAApBA,OAAOY,SACtC,SAAiBpC,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,mBAAXwB,QAAyBxB,EAAIQ,cAAgBgB,QAAUxB,IAAQwB,OAAOO,UAAY,gBAAkB/B,IAI9GA,GCTjB,SAASmiC,EAAcC,EAAWC,GAChC,IAAIC,EAAW,GAMf,OALAA,EAASF,EAAU95B,eAAiB+5B,EAAU/5B,cAC9Cg6B,EAAS,SAASt8B,OAAOo8B,IAAc,SAASp8B,OAAOq8B,GACvDC,EAAS,MAAMt8B,OAAOo8B,IAAc,MAAMp8B,OAAOq8B,GACjDC,EAAS,KAAKt8B,OAAOo8B,IAAc,KAAKp8B,OAAOq8B,GAC/CC,EAAS,IAAIt8B,OAAOo8B,IAAc,IAAIp8B,OAAOq8B,EAAU/5B,eAChDg6B,EAqBT,IAlBkCC,EAAYC,EACxCF,EAiBFG,GAlB8BF,EAkBK,IAlBOC,EAkBwB,oBAAXn5B,OAAyBA,OAAS,GAjBvFi5B,EAAW,CACbI,aAAcP,EAAc,YAAa,gBACzCQ,cAAeR,EAAc,aAAc,kBAGzCI,IACI,mBAAoBC,UACjBF,EAASI,aAAaE,UAGzB,oBAAqBJ,UAClBF,EAASK,cAAcE,YAI3BP,GAGL,EAAQ,GAEZ,GAAI,IAAa,CACf,IAAIQ,EAAwBx5B,SAASsH,cAAc,OAEnD,EAAQkyB,EAAsB3I,MAGhC,IAAI4I,EAAqB,GAClB,SAASC,EAA2BX,GACzC,GAAIU,EAAmBV,GACrB,OAAOU,EAAmBV,GAG5B,IAAIY,EAAYR,EAAeJ,GAE/B,GAAIY,EAIF,IAHA,IAAIC,EAAgB5iC,OAAOsD,KAAKq/B,GAC5B3kB,EAAM4kB,EAAc/iC,OAEfY,EAAI,EAAGA,EAAIud,EAAKvd,GAAK,EAAG,CAC/B,IAAIqhC,EAAYc,EAAcniC,GAE9B,GAAIT,OAAOyB,UAAUC,eAAef,KAAKgiC,EAAWb,IAAcA,KAAa,EAE7E,OADAW,EAAmBV,GAAaY,EAAUb,GACnCW,EAAmBV,GAKhC,MAAO,GAET,IAAIc,EAA2BH,EAA2B,gBACtDI,EAA4BJ,EAA2B,iBAChDK,KAAuBF,IAA4BC,GACnDE,EAAmBH,GAA4B,eAC/CI,EAAoBH,GAA6B,gBACrD,SAASI,EAAkBC,EAAgBC,GAChD,OAAKD,EAE2B,WAA5B,EAAQA,GAIHA,EAHIC,EAAej7B,QAAQ,QAAQ,SAAUC,GAClD,OAAOA,EAAM,GAAG2rB,kBAKb,GAAGruB,OAAOy9B,EAAgB,KAAKz9B,OAAO09B,GATjB,KCrEf,SAASC,GAAeC,GACrC,IAAIC,EAAa,kBAAO,GAGpBC,EAAajC,EADD,mBAAS+B,GACkB,GACvCjkB,EAAMmkB,EAAW,GACjBC,EAASD,EAAW,GAaxB,OALA,qBAAU,WACR,OAAO,WACLD,EAAW5I,SAAU,KAEtB,IACI,CAACtb,EAXR,SAAkBlS,GACXo2B,EAAW5I,SACd8I,EAAOt2B,KCTb,IACe,GADiBszB,IAAc,kBAAkB,YCE5DiD,GAAa,CCAS,UACF,QACC,SACG,ODIrB,SAAS9U,GAAS+U,GACvB,MCNuB,WDMhBA,GCLmB,QDKKA,EAEjB,mBACd,IACIC,EAAmBrC,EADD,WCZD,QDakC,GACnDoC,EAAOC,EAAiB,GACxBC,EAAUD,EAAiB,GAG3BE,EAAiBvC,EEpBP,WACd,IAAIwC,EAAe,SAAa,MAEhC,SAASC,IACP,EAAIjE,OAAOgE,EAAapJ,SAyB1B,OALA,aAAgB,WACd,OAAO,WACLqJ,OAED,IACI,CAtBP,SAASC,EAAUxb,GACjB,IAAIoB,EAAQtkB,UAAU1F,OAAS,QAAsBmN,IAAjBzH,UAAU,GAAmBA,UAAU,GAAK,EAChFy+B,IACA,IAAIE,EAAc,GAAI,WAChBra,GAAS,EACXpB,EAAS,CACP0b,WAAY,WACV,OAAOD,IAAgBH,EAAapJ,WAIxCsJ,EAAUxb,EAAUoB,EAAQ,MAGhCka,EAAapJ,QAAUuJ,GAQNF,GFVCI,GAC+B,GAC/CH,EAAYH,EAAe,GAC3BE,EAAkBF,EAAe,GAuCrC,OAjCA,IAA0B,WACxB,GC3BmB,SD2BfH,GCvBoB,QDuBEA,EAAyB,CACjD,IAAIl9B,EAAQi9B,GAAWh8B,QAAQi8B,GAC3BU,EAAWX,GAAWj9B,EAAQ,GAC9BkG,EAAS8b,EAASkb,IA1BN,IA4BZh3B,EAEFk3B,EAAQQ,GAGRJ,GAAU,SAAUh3B,GAClB,SAASq3B,IAEHr3B,EAAKk3B,cACTN,EAAQQ,IAGK,IAAX13B,EACF23B,IAGA11B,QAAQpC,QAAQG,GAAQE,KAAKy3B,SAKpC,CAACX,IACJ,aAAgB,WACd,OAAO,WACLK,OAED,IACI,CArCP,WACEH,ECtBsB,YD0DJF,IGrDP,SAASY,GAAUC,EAAeC,EAASC,EAAYtN,GACpE,IAAIuN,EAAmBvN,EAAKwN,YACxBA,OAAmC,IAArBD,GAAqCA,EACnDE,EAAoBzN,EAAK0N,aACzBA,OAAqC,IAAtBD,GAAsCA,EACrDE,EAAmB3N,EAAK4N,YACxBA,OAAmC,IAArBD,GAAqCA,EACnDE,EAAiB7N,EAAK6N,eACtBC,EAAyB9N,EAAK8N,uBAC9BC,EAAkB/N,EAAK+N,gBACvBC,EAAiBhO,EAAKgO,eACtBC,EAAiBjO,EAAKiO,eACtBC,EAAgBlO,EAAKkO,cACrBC,EAAenO,EAAKmO,aACpBC,EAAepO,EAAKoO,aACpBC,EAAiBrO,EAAKqO,eACtBC,EAAgBtO,EAAKsO,cACrBC,EAAgBvO,EAAKuO,cACrBC,EAAcxO,EAAKwO,YACnBC,EAAazO,EAAKyO,WAClBC,EAAa1O,EAAK0O,WAClBC,EAAmB3O,EAAK2O,iBAGxBvC,EAAajC,EADD,KAC2B,GACvCyE,EAAexC,EAAW,GAC1ByC,EAAkBzC,EAAW,GAG7B0C,EAAa3E,EADA,GFtCM,QEuCqB,GACxC4E,EAASD,EAAW,GACpBE,EAAYF,EAAW,GAGvBG,EAAa9E,EADA,GAAS,MACkB,GACxC1H,EAAQwM,EAAW,GACnBC,EAAWD,EAAW,GAEtBE,EAAa,kBAAO,GACpBC,EAAc,iBAAO,MAErBC,EAAkB,iBAAO,MAE7B,SAASC,IAEP,OADchC,KACI+B,EAAgB9L,QAIpC,IAAIgM,EAAY,kBAAO,GAEvB,SAASC,EAAoBC,GAC3B,IASIC,EATAC,EAAUL,IAEVG,IAAUA,EAAMG,UAAYH,EAAM9a,SAAWgb,IF/D1B,WEwEnBZ,GAA4BQ,EAAUhM,QACxCmM,EAASlB,aAAiD,EAASA,EAAYmB,EAASF,GFxEpE,UEyEXV,GAA2BQ,EAAUhM,QAC9CmM,EAASjB,aAA+C,EAASA,EAAWkB,EAASF,GFzEjE,UE0EXV,GAA2BQ,EAAUhM,UAC9CmM,EAAShB,aAA+C,EAASA,EAAWiB,EAASF,KAGxE,IAAXC,IACFV,EFlFmB,QEmFnBE,EAAS,QAIb,IAEIW,EADuB1F,ECrFb,YACd,IAAIkF,EAAkB,mBAElBS,EAAc,iBAAOze,GACzBye,EAAYvM,QAAUlS,EAEtB,IAAIme,EAAsB,eAAkB,SAAUC,GACpDK,EAAYvM,QAAQkM,KACnB,IAEH,SAASM,EAAmBJ,GACtBA,IACFA,EAAQvb,oBAAoByX,EAAmB2D,GAC/CG,EAAQvb,oBAAoBwX,EAAkB4D,IAwBlD,OALA,aAAgB,WACd,OAAO,WACLO,EAAmBV,EAAgB9L,YAEpC,IACI,CAnBP,SAA2BoM,GACrBN,EAAgB9L,SAAW8L,EAAgB9L,UAAYoM,GACzDI,EAAmBV,EAAgB9L,SAGjCoM,GAAWA,IAAYN,EAAgB9L,UACzCoM,EAAQ7b,iBAAiB+X,EAAmB2D,GAC5CG,EAAQ7b,iBAAiB8X,EAAkB4D,GAE3CH,EAAgB9L,QAAUoM,IAUHI,GD+CDC,CAAmBR,GACkB,GAClB,GAGzCS,EAAgB,WAAc,WAChC,IAAI5P,EAAO6P,EAAOC,EAElB,OAAQpB,GACN,IAAK,SACH,OAAmBv1B,EAAZ6mB,EAAQ,GF5FG,UE4FsC0N,GAAkBv0B,EAAgB6mB,EF3F1E,QE2F6F6N,GAAgB10B,EAAgB6mB,EF1F5H,SE0FgJgO,GAAiBhO,EAEpL,IAAK,QACH,OAAmB7mB,EAAZ02B,EAAQ,GF/FG,UE+FsClC,GAAiBx0B,EAAgB02B,EF9FzE,QE8F4F/B,GAAe30B,EAAgB02B,EF7F1H,SE6F8I5B,GAAgB4B,EAEjL,IAAK,QACH,OAAmB12B,EAAZ22B,EAAQ,GFlGG,UEkGsClC,GAAiBz0B,EAAgB22B,EFjGzE,QEiG4F/B,GAAe50B,EAAgB22B,EFhG1H,SEgG8I5B,GAAgB4B,EAEjL,QACE,MAAO,MAEV,CAACpB,IAqCAqB,EAAiBjG,EAnCDkG,IAAa,SAAUC,GAEzC,GF3GsB,YE2GlBA,EAA0B,CAC5B,IAAIC,EAAYN,EAA0B,QAE1C,QAAKM,GAIEA,EAAUjB,KAKjB,IAAIkB,EADFjE,KAAQ0D,GAGVf,GAA0D,QAA/CsB,EAAsBP,EAAc1D,UAA2C,IAAxBiE,OAAiC,EAASA,EAAoBjnC,KAAK0mC,EAAeX,IAAiB,QAAU,MAiBjL,MFxIqB,WE0HjB/C,IAEFsD,EAAkBP,KAEdzB,EAAiB,IACnB5gB,aAAamiB,EAAY7L,SACzB6L,EAAY7L,QAAUvW,YAAW,WAC/BwiB,EAAoB,CAClBI,UAAU,MAEX/B,MHhIS,KGsIiC,GAC/C4C,EAAYL,EAAe,GAC3B7D,EAAO6D,EAAe,GAEtBM,EAASlZ,GAAS+U,GACtBgD,EAAUhM,QAAUmN,EAGpB,IAA0B,WAGxB,GAFA7B,EAAgBxB,GAEXD,EAAL,CAIA,IAEIuD,EAFAC,EAAYzB,EAAW5L,QAC3B4L,EAAW5L,SAAU,GAGhBqN,GAAavD,GAAWK,IAC3BiD,EFpKqB,UEwKnBC,GAAavD,GAAWG,IAC1BmD,EFxKoB,UE4KlBC,IAAcvD,GAAWO,IAAgBgD,GAAa9C,IAA2BT,GAAWO,KAC9F+C,EF5KoB,SEgLlBA,IACF3B,EAAU2B,GACVF,QAED,CAACpD,IAGJ,qBAAU,YFzLe,WE2LvB0B,IAA6BrB,GF1LP,UE2LtBqB,IAA4BvB,GF1LN,UE2LtBuB,IAA4BnB,IAC1BoB,EF/LmB,UEiMpB,CAACtB,EAAcF,EAAaI,IAC/B,qBAAU,WACR,OAAO,WACL3gB,aAAamiB,EAAY7L,YAE1B,IAEH,qBAAU,gBACa3tB,IAAjBg5B,GFzMiB,SEyMaG,IAChCJ,SAAoEA,EAAiBC,MAEtF,CAACA,EAAcG,IAElB,IAAI8B,EAAcpO,EAQlB,OANIwN,EAA0B,SF1MR,UE0Ma1D,IACjCsE,EAAc,EAAc,CAC1B1F,WAAY,QACX0F,IAGE,CAAC9B,EAAQxC,EAAMsE,EAAajC,QAAmDA,EAAevB,GEhNvG,IAqBe,GArBe,SAAUlO,GACtCE,EAAUyR,EAAY3R,GAEtB,IAAI4R,EAASvJ,EAAasJ,GAE1B,SAASA,IAGP,OAFAlS,EAAgB9wB,KAAMgjC,GAEfC,EAAOpgC,MAAM7C,KAAMK,WAU5B,OAPA2vB,EAAagT,EAAY,CAAC,CACxBjmC,IAAK,SACLb,MAAO,WACL,OAAO8D,KAAKmL,MAAMmoB,aAIf0P,EAlBqB,CAmB5B,aCgGa,OApGR,SAAsBE,GAC3B,IAAIC,EAAoBD,EAMxB,SAASE,EAAoBj4B,GAC3B,SAAUA,EAAMk4B,aAAcF,GALR,WAApB,EAAQD,KACVC,EAAoBD,EAAOC,mBAO7B,IAAIG,EAAY,cAAiB,SAAUn4B,EAAO6vB,GAChD,IAAIuI,EAAiBp4B,EAAMo0B,QACvBA,OAA6B,IAAnBgE,GAAmCA,EAC7CC,EAAuBr4B,EAAMs4B,cAC7BA,OAAyC,IAAzBD,GAAyCA,EACzDE,EAAcv4B,EAAMu4B,YACpBpQ,EAAWnoB,EAAMmoB,SACjB+P,EAAal4B,EAAMk4B,WACnBM,EAAkBx4B,EAAMw4B,gBACxBC,EAAaz4B,EAAMy4B,WACnBtE,EAAgB8D,EAAoBj4B,GAEpC04B,EAAU,mBAEVC,EAAiB,mBAWrB,IACIC,EAAc1H,EADDgD,GAAUC,EAAeC,GAT1C,WACE,IACE,OAAO7E,EAAYmJ,EAAQpO,SAAWqO,EAAerO,SACrD,MAAOv6B,GAEP,OAAO,QAIuDiQ,GACrB,GACzC81B,EAAS8C,EAAY,GACrBC,EAAaD,EAAY,GACzBE,EAAcF,EAAY,GAC1BG,EAAgBH,EAAY,GAG5BI,EAAY,iBAAOnJ,GACvBmJ,EAAU1O,QAAUuF,EACpB,IAKIoJ,EALAC,EAAa,eAAkB,SAAUlQ,GAC3C0P,EAAQpO,QAAUtB,EAClB4G,EAAQoJ,EAAU1O,QAAStB,KAC1B,IAIH,GAAKb,EAGE,GL7Ec,SK6EV2N,GAA2BmC,EAAoBj4B,GAiBnD,CACL,IAAIm5B,EAGAC,EL7FgB,YK+FhBP,EACFO,EAAe,UACN7a,GAASsa,GAClBO,EAAe,SLjGC,UKkGPP,IACTO,EAAe,SAGjBH,EAAiB9Q,EAAS,EAAc,EAAc,GAAIsQ,GAAa,GAAI,CACzEY,UAAW,IAAWxG,EAAkBqF,EAAYpC,IAAUqD,EAAc,GAAI54B,EAAgB44B,EAAatG,EAAkBqF,EAAY,GAAG7iC,OAAOygC,EAAQ,KAAKzgC,OAAO+jC,IAAgBA,GAAe74B,EAAgB44B,EAAajB,EAAkC,iBAAfA,GAA0BiB,IAClR3P,MAAOsP,IACLI,QA/BFD,EADEF,EACe5Q,EAAS,EAAc,GAAIsQ,GAAaS,GAC/CZ,EAIDC,EACQpQ,EAAS,EAAc,EAAc,GAAIsQ,GAAa,GAAI,CACzEjP,MAAO,CACL8P,QAAS,UAETJ,GAEa,KAVA/Q,EAAS,EAAc,EAAc,GAAIsQ,GAAa,GAAI,CACzEY,UAAWb,IACTU,QARND,EAAiB,KAsCnB,OAAO,gBAAoB,GAAY,CACrCpJ,IAAK8I,GACJM,MAGL,OADAd,EAAUr6B,YAAc,YACjBq6B,EAEM,CAAazF,G,aCxHb,SAAShN,GAAyBd,EAAQ2U,GACvD,GAAc,MAAV3U,EAAgB,MAAO,GAC3B,IACIhzB,EAAKxB,EADLsrB,EAAS,OAAA8d,GAAA,GAA6B5U,EAAQ2U,GAGlD,GAAI5pC,OAAOo+B,sBAAuB,CAChC,IAAI0L,EAAmB9pC,OAAOo+B,sBAAsBnJ,GAEpD,IAAKx0B,EAAI,EAAGA,EAAIqpC,EAAiBjqC,OAAQY,IACvCwB,EAAM6nC,EAAiBrpC,GACnBmpC,EAASliC,QAAQzF,IAAQ,GACxBjC,OAAOyB,UAAUsoC,qBAAqBppC,KAAKs0B,EAAQhzB,KACxD8pB,EAAO9pB,GAAOgzB,EAAOhzB,IAIzB,OAAO8pB,ECXF,SAASie,GAAgB/nC,GAC9B,IAAIgoC,EAUJ,OAAO,EAAc,EAAc,GAPjCA,EADEhoC,GAAwB,WAAjB,EAAQA,IAAqB,QAASA,EACtCA,EAEA,CACPA,IAAKA,IAIuC,GAAI,CAClDA,IAAKyZ,OAAOuuB,EAAOhoC,OAGhB,SAASioC,KACd,IAAI5mC,EAAOiC,UAAU1F,OAAS,QAAsBmN,IAAjBzH,UAAU,GAAmBA,UAAU,GAAK,GAC/E,OAAOjC,EAAK8N,IAAI44B,IAEX,SAASG,KACd,IAAIC,EAAW7kC,UAAU1F,OAAS,QAAsBmN,IAAjBzH,UAAU,GAAmBA,UAAU,GAAK,GAC/E8kC,EAAc9kC,UAAU1F,OAAS,QAAsBmN,IAAjBzH,UAAU,GAAmBA,UAAU,GAAK,GAClFD,EAAO,GACPglC,EAAe,EACfC,EAAaF,EAAYxqC,OACzB2qC,EAAiBN,GAAUE,GAC3BK,EAAoBP,GAAUG,GAElCG,EAAer+B,SAAQ,SAAU89B,GAG/B,IAFA,IAAIS,GAAM,EAEDjqC,EAAI6pC,EAAc7pC,EAAI8pC,EAAY9pC,GAAK,EAAG,CACjD,IAAIkqC,EAAgBF,EAAkBhqC,GAEtC,GAAIkqC,EAAc1oC,MAAQgoC,EAAOhoC,IAAK,CAEhCqoC,EAAe7pC,IACjB6E,EAAOA,EAAKI,OAAO+kC,EAAkBtkC,MAAMmkC,EAAc7pC,GAAG2Q,KAAI,SAAU1R,GACxE,OAAO,EAAc,EAAc,GAAIA,GAAM,GAAI,CAC/CymC,OA3CU,YA8CdmE,EAAe7pC,GAGjB6E,EAAKgB,KAAK,EAAc,EAAc,GAAIqkC,GAAgB,GAAI,CAC5DxE,OAjDe,UAmDjBmE,GAAgB,EAChBI,GAAM,EACN,OAKCA,GACHplC,EAAKgB,KAAK,EAAc,EAAc,GAAI2jC,GAAS,GAAI,CACrD9D,OA3DmB,eAgErBmE,EAAeC,IACjBjlC,EAAOA,EAAKI,OAAO+kC,EAAkBtkC,MAAMmkC,GAAcl5B,KAAI,SAAU1R,GACrE,OAAO,EAAc,EAAc,GAAIA,GAAM,GAAI,CAC/CymC,OArEgB,aA+EtB,IAAI7iC,EAAO,GACXgC,EAAK6G,SAAQ,SAAUirB,GACrB,IAAIn1B,EAAMm1B,EAAKn1B,IACfqB,EAAKrB,IAAQqB,EAAKrB,IAAQ,GAAK,KAEjC,IAAI2oC,EAAiB5qC,OAAOsD,KAAKA,GAAMwnB,QAAO,SAAU7oB,GACtD,OAAOqB,EAAKrB,GAAO,KAiBrB,OAfA2oC,EAAez+B,SAAQ,SAAU0+B,IAE/BvlC,EAAOA,EAAKwlB,QAAO,SAAU2M,GAC3B,IAAIx1B,EAAMw1B,EAAMx1B,IACZkkC,EAAS1O,EAAM0O,OACnB,OAAOlkC,IAAQ4oC,GA1FM,WA0FM1E,MAGxBh6B,SAAQ,SAAUktB,GACjBA,EAAKp3B,MAAQ4oC,IAEfxR,EAAK8M,OAjGY,cAqGhB7gC,EC5FT,IAAIwlC,GAAoB,CAAC,aAAc,UAAW,WAAY,aAAc,eAAgB,cAAe,cAAe,yBAA0B,iBAAkB,gBAAiB,kBAAmB,gBAAiB,iBAAkB,cAAe,eAAgB,gBAAiB,aAAc,eAAgB,gBAAiB,eAOrU,SAA0BzC,GAC/B,IAAIG,EAAYjjC,UAAU1F,OAAS,QAAsBmN,IAAjBzH,UAAU,GAAmBA,UAAU,GAAK,GAEhFwlC,EAA6B,SAAUxU,GACzCE,EAAUsU,EAAexU,GAEzB,IAAI4R,EAASvJ,EAAamM,GAE1B,SAASA,IACP,IAAI/a,EAuBJ,OArBAgG,EAAgB9wB,KAAM6lC,IAEtB/a,EAAQmY,EAAOpgC,MAAM7C,KAAMK,YACrBkF,MAAQ,CACZugC,YAAa,IAGfhb,EAAMib,UAAY,SAAUA,GAC1Bjb,EAAMkb,UAAS,SAAU9T,GAEvB,MAAO,CACL4T,YAFgB5T,EAAK4T,YAEI55B,KAAI,SAAU+5B,GACrC,OAAIA,EAAOlpC,MAAQgpC,EAAkBE,EAC9B,EAAc,EAAc,GAAIA,GAAS,GAAI,CAClDhF,ODvCY,oBC8CfnW,EAoET,OAjEAkF,EAAa6V,EAAe,CAAC,CAC3B9oC,IAAK,SACLb,MAAO,WACL,IAAIq3B,EAASvzB,KAET8lC,EAAc9lC,KAAKuF,MAAMugC,YAEzBI,EAAclmC,KAAKmL,MACnBg7B,EAAYD,EAAYC,UACxB7S,EAAW4S,EAAY5S,SACvB8S,EAAoBF,EAAYrF,iBAChCwF,EAAYxV,GAAyBqV,EAAa,CAAC,YAAa,WAAY,qBAE5Eh5B,EAAYi5B,GAAa,WACzBG,EAAc,GAMlB,OALAV,GAAkB3+B,SAAQ,SAAUs/B,GAClCD,EAAYC,GAAQF,EAAUE,UACvBF,EAAUE,aAEZF,EAAUjoC,KACV,gBAAoB8O,EAAWpS,OAAOgV,OAAO,GAAIu2B,GAAYP,EAAY55B,KAAI,SAAUqmB,GAC5F,IAAI0O,EAAS1O,EAAM0O,OACf2C,EAAa/S,GAAyB0B,EAAO,CAAC,WAE9CgN,ED5EU,QC4EA0B,GD3EC,SC2EwBA,EACvC,OAAO,gBAAoBqC,EAAWxoC,OAAOgV,OAAO,GAAIw2B,EAAa,CACnEvpC,IAAK6mC,EAAW7mC,IAChBwiC,QAASA,EACTqE,WAAYA,EACZ/C,iBAAkB,SAA0B2F,GAC1CJ,SAAsEA,EAAkBI,EAAgB,CACtGzpC,IAAK6mC,EAAW7mC,MAGbypC,GACHjT,EAAOwS,UAAUnC,EAAW7mC,QAG9Bu2B,UAGN,CAAC,CACHv2B,IAAK,2BACLb,MAAO,SAAkCkmC,EAAOC,GAC9C,IAAIjkC,EAAOgkC,EAAMhkC,KACb0nC,EAAczD,EAAMyD,YACpBW,EAAmBzB,GAAU5mC,GAEjC,MAAO,CACL0nC,YAFqBb,GAASa,EAAaW,GAEb7gB,QAAO,SAAUqgB,GAC7C,IAAIS,EAAaZ,EAAYj2B,MAAK,SAAU82B,GAC1C,IAAI5pC,EAAM4pC,EAAM5pC,IAChB,OAAOkpC,EAAOlpC,MAAQA,KAGxB,OAAI2pC,GDxGY,YCwGEA,EAAWzF,QDzGd,WCyG2CgF,EAAOhF,eAUlE4E,EAjGwB,CAkG/B,aAEFA,EAAcx6B,aAAe,CAC3B86B,UAAW,OAIA,CAAiBtI,GAAjB,IChEX+I,GC5DW,MCHR,SAASC,GAAU3U,GACxB,IAAI4U,EAAY5U,EAAK4U,UACjBC,EAAS7U,EAAK6U,OACd3J,EAAYlL,EAAKkL,UACjBa,EAAiB/L,EAAK+L,eAE1B,OAAI8I,IAIA3J,EACK,CACLiG,WAAY,GAAG7iC,OAAOsmC,EAAW,KAAKtmC,OAAO48B,IAI7Ca,EACK,CACLoF,WAAYpF,GAIT,MCjBM,SAAS+I,GAAK77B,GAC3B,IAAI27B,EAAY37B,EAAM27B,UAClBvH,EAAUp0B,EAAMo0B,QAChB0H,EAAS97B,EAAM87B,OACfC,EAAO/7B,EAAM+7B,KACbC,EAAah8B,EAAMg8B,WACnBC,EAAgBj8B,EAAMi8B,cACtBC,EAAqBl8B,EAAMk8B,mBAE/B,IAAKH,EACH,OAAO,KAGT,IAAIH,EAAS,GAab,OAXII,GAAcE,GAAsBD,KACtCL,EAAS,EAAc,CACrBnH,cAAc,GACbiH,GAAU,CACXE,OAAQI,EACRL,UAAWA,EACX7I,eAAgBoJ,EAChBjK,UAAWgK,MAIR,gBAAoB,GAAWtsC,OAAOgV,OAAO,GAAIi3B,EAAQ,CAC9DxH,QAASA,EACTkE,eAAe,KACb,SAAUvR,GACZ,IAAIsS,EAAYtS,EAAKsS,UACrB,OAAO,gBAAoB,MAAO,CAChC7P,MAAO,CACLsS,OAAQA,GAEVzC,UAAW,IAAW,GAAGhkC,OAAOsmC,EAAW,SAAUtC,QCxC3D,SAAS,GAAQhqC,GAaf,OATE,GADoB,mBAAXwB,QAAoD,iBAApBA,OAAOY,SACtC,SAAiBpC,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,mBAAXwB,QAAyBxB,EAAIQ,cAAgBgB,QAAUxB,IAAQwB,OAAOO,UAAY,gBAAkB/B,IAI9GA,GAIV,SAAS,GAAQwgC,EAAK7G,GACR,mBAAR6G,EACTA,EAAI7G,GACsB,WAAjB,GAAQ6G,IAAqBA,GAAO,YAAaA,IAC1DA,EAAIvF,QAAUtB,GAOX,SAAS,KACd,IAAK,IAAImT,EAAOjnC,UAAU1F,OAAQ4sC,EAAO,IAAI9sC,MAAM6sC,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQnnC,UAAUmnC,GAGzB,OAAO,SAAUrT,GACfoT,EAAKtgC,SAAQ,SAAU+zB,GACrB,GAAQA,EAAK7G,OJnCnB,SAAS,GAAQ35B,GAWf,OATE,GADoB,mBAAXwB,QAAoD,iBAApBA,OAAOY,SACtC,SAAiBpC,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,mBAAXwB,QAAyBxB,EAAIQ,cAAgBgB,QAAUxB,IAAQwB,OAAOO,UAAY,gBAAkB/B,IAI9GA,GAGjB,SAAS,GAAgBA,EAAKuC,EAAKb,GAYjC,OAXIa,KAAOvC,EACTM,OAAOe,eAAerB,EAAKuC,EAAK,CAC9Bb,MAAOA,EACPJ,YAAY,EACZe,cAAc,EACdC,UAAU,IAGZtC,EAAIuC,GAAOb,EAGN1B,EAGT,SAAS,GAAQoP,EAAQqvB,GACvB,IAAI76B,EAAOtD,OAAOsD,KAAKwL,GAEvB,GAAI9O,OAAOo+B,sBAAuB,CAChC,IAAIC,EAAUr+B,OAAOo+B,sBAAsBtvB,GACvCqvB,IAAgBE,EAAUA,EAAQvT,QAAO,SAAUwT,GACrD,OAAOt+B,OAAOC,yBAAyB6O,EAAQwvB,GAAKt9B,eAEtDsC,EAAKgD,KAAKyB,MAAMzE,EAAM+6B,GAGxB,OAAO/6B,EAwBT,IAAIqpC,GAAW,CACbC,OAAQ,WACRC,IAAK,QAELC,GAAI,OACJ5oC,EAAG,OAGL,SAAS6oC,KACP,QAAqB//B,IAAjB8+B,GACF,OAAOA,GAGTA,GAAe,GACf,IAAIjS,EAAQ7wB,SAASsH,cAAc,KAAKupB,MAGxC,IAAK,IAAI53B,KAAO0qC,GACV1qC,EAHS,cAGS43B,IACpBiS,GAAe7pC,GAInB,OAAO6pC,GAGT,SAAS,KACP,OAAOiB,KAAoB,GAAGrnC,OAAOqnC,KAAmB,sBAAwB,qBAGlF,SAASC,KACP,OAAOD,KAAoB,GAAGrnC,OAAOqnC,KAAmB,aAAe,YAGzE,SAASE,GAAsB5T,EAAMj4B,GACnC,IAAIjB,EAAO,KAEPA,IACFk5B,EAAKQ,MAAM15B,GAAQiB,EAEN,uBAATjB,IACFk5B,EAAKQ,MAAMqT,mBAAqB9rC,IAKtC,SAAS+rC,GAAa9T,EAAMj4B,GAC1B,IAAIjB,EAAO6sC,KAEP7sC,IACFk5B,EAAKQ,MAAM15B,GAAQiB,EAEN,cAATjB,IACFk5B,EAAKQ,MAAMuT,UAAYhsC,IA2B7B,IAkCIisC,GAlCAC,GAAW,iBACXC,GAAW,mBAmCf,SAASC,GAAcC,GACrB,IAAIC,EAAgBD,EAAK5T,MAAM8P,QAC/B8D,EAAK5T,MAAM8P,QAAU,OACrB8D,EAAKE,aAELF,EAAK5T,MAAM8P,QAAU+D,EAGvB,SAASE,GAAIC,EAAI1tC,EAAMwC,GACrB,IAAIvB,EAAQuB,EAEZ,GAAsB,WAAlB,GAAQxC,GAUZ,YAAqB,IAAViB,GACY,iBAAVA,IACTA,EAAQ,GAAGsE,OAAOtE,EAAO,YAG3BysC,EAAGhU,MAAM15B,GAAQiB,IAIZisC,GAAkBQ,EAAI1tC,GAlB3B,IAAK,IAAIM,KAAKN,EACRA,EAAKuB,eAAejB,IACtBmtC,GAAIC,EAAIptC,EAAGN,EAAKM,IA0DxB,SAASqtC,GAAUnqC,EAAG6pB,GACpB,IAAIiH,EAAM9wB,EAAE,OAAO+B,OAAO8nB,EAAM,IAAM,IAAK,WACvC9iB,EAAS,SAAShF,OAAO8nB,EAAM,MAAQ,QAE3C,GAAmB,iBAARiH,EAAkB,CAC3B,IAAI3zB,EAAI6C,EAAEqF,SAIS,iBAFnByrB,EAAM3zB,EAAE+sB,gBAAgBnjB,MAItB+pB,EAAM3zB,EAAEmI,KAAKyB,IAIjB,OAAO+pB,EAGT,SAASsZ,GAAcpqC,GACrB,OAAOmqC,GAAUnqC,GAGnB,SAASqqC,GAAarqC,GACpB,OAAOmqC,GAAUnqC,GAAG,GAGtB,SAASsqC,GAAUJ,GACjB,IAAIK,EAlEN,SAA2BT,GACzB,IAAIU,EACA/qC,EACAL,EACAqrC,EAAMX,EAAKxhB,cACXhjB,EAAOmlC,EAAInlC,KACXolC,EAAUD,GAAOA,EAAIvgB,gBA2BzB,OArBAzqB,GAJA+qC,EAAMV,EAAKa,yBAIHjhB,KACRtqB,EAAIorC,EAAI3gB,IAoBD,CACLH,KAHFjqB,GAAKirC,EAAQE,YAActlC,EAAKslC,YAAc,EAI5C/gB,IAHFzqB,GAAKsrC,EAAQG,WAAavlC,EAAKulC,WAAa,GAkClCC,CAAkBZ,GACxBO,EAAMP,EAAG5hB,cACTtoB,EAAIyqC,EAAIliB,aAAekiB,EAAIM,aAG/B,OAFAR,EAAI7gB,MAAQ0gB,GAAcpqC,GAC1BuqC,EAAI1gB,KAAOwgB,GAAarqC,GACjBuqC,EAQT,SAASS,GAASjvC,GAIhB,OAAOA,SAAqCA,GAAOA,EAAIqJ,OAGzD,SAAS,GAAYswB,GACnB,OAAIsV,GAAStV,GACJA,EAAKrwB,SAGQ,IAAlBqwB,EAAKuV,SACAvV,EAGFA,EAAKpN,cAgBd,IAAI4iB,GAAgB,IAAI3mC,OAAO,KAAKxC,OAnJvB,wCAAwCuvB,OAmJF,mBAAoB,KAEnE6Z,GAAS,4BAGTC,GAAO,OAsCX,SAASC,GAAmB5oB,EAAKka,GAC/B,MAAY,SAARla,EACKka,EAAO2O,YAAc,QAAU7oB,EAGjCka,EAAO4O,aAAe,SAAW9oB,EAG1C,SAAS+oB,GAAwB/oB,GAC/B,MAAY,SAARA,EACK,QACU,UAARA,EACF,OACU,QAARA,EACF,SACU,WAARA,EACF,WADF,EAMT,SAASgpB,GAAW3B,EAAM9lB,EAAQ2Y,GAEF,WAA1BsN,GAAIH,EAAM,cACZA,EAAK5T,MAAMjN,SAAW,YAGxB,IAAIyiB,GAAW,IACXC,GAAW,IACXC,EAAqBP,GAAmB,OAAQ1O,GAChDkP,EAAmBR,GAAmB,MAAO1O,GAC7CmP,EAA6BN,GAAwBI,GACrDG,EAA2BP,GAAwBK,GAE5B,SAAvBD,IACFF,EAAU,KAGa,QAArBG,IACFF,EAAU,KAGZ,IA/R6BjW,EA+RzBsW,EAAqB,GACrBC,EAAiB3B,GAAUR,IAE3B,SAAU9lB,GAAU,QAASA,KAC/BgoB,GAnS2BtW,EAmSgBoU,GAlSjC5T,MAAMqT,oBAAsB7T,EAAKQ,MAAM,OAkSG,GACpDoT,GAAsBQ,EAAM,SAG1B,SAAU9lB,IACZ8lB,EAAK5T,MAAM4V,GAA8B,GACzChC,EAAK5T,MAAM0V,GAAsB,GAAG7pC,OAAO2pC,EAAS,OAGlD,QAAS1nB,IACX8lB,EAAK5T,MAAM6V,GAA4B,GACvCjC,EAAK5T,MAAM2V,GAAoB,GAAG9pC,OAAO4pC,EAAS,OAIpD9B,GAAcC,GACd,IAAIoC,EAAM5B,GAAUR,GAChBC,EAAgB,GAEpB,IAAK,IAAIzrC,KAAO0lB,EACd,GAAIA,EAAOjmB,eAAeO,GAAM,CAC9B,IAAImkB,EAAM4oB,GAAmB/sC,EAAKq+B,GAC9BwP,EAAiB,SAAR7tC,EAAiBotC,EAAUC,EACpC5pB,EAAMkqB,EAAe3tC,GAAO4tC,EAAI5tC,GAGlCyrC,EAActnB,GADZA,IAAQnkB,EACW6tC,EAASpqB,EAEToqB,EAASpqB,EAKpCkoB,GAAIH,EAAMC,GAEVF,GAAcC,IAEV,SAAU9lB,GAAU,QAASA,IAC/BslB,GAAsBQ,EAAMkC,GAG9B,IAAIlb,EAAM,GAEV,IAAK,IAAIiY,KAAQ/kB,EACf,GAAIA,EAAOjmB,eAAegrC,GAAO,CAC/B,IAAIqD,EAAOf,GAAmBtC,EAAMpM,GAEhC0P,EAAOroB,EAAO+kB,GAAQkD,EAAelD,GAGvCjY,EAAIsb,GADFrD,IAASqD,EACCrC,EAAcqC,GAAQC,EAEtBtC,EAAcqC,GAAQC,EAKxCpC,GAAIH,EAAMhZ,GAGZ,SAASwb,GAAexC,EAAM9lB,GAC5B,IAAIioB,EAAiB3B,GAAUR,GAC3ByC,EA7VN,SAAwB7W,GACtB,IAAIQ,EAAQ9wB,OAAOikB,iBAAiBqM,EAAM,MACtC+T,EAAYvT,EAAMsW,iBAAiB,cAAgBtW,EAAMsW,iBAAiBnD,MAE9E,GAAII,GAA2B,SAAdA,EAAsB,CACrC,IAAIgD,EAAShD,EAAUjlC,QAAQ,cAAe,IAAI9B,MAAM,KACxD,MAAO,CACLjD,EAAGkpB,WAAW8jB,EAAO,KAAOA,EAAO,GAAI,GACvCrtC,EAAGupB,WAAW8jB,EAAO,KAAOA,EAAO,GAAI,IAI3C,MAAO,CACLhtC,EAAG,EACHL,EAAG,GA+UYstC,CAAe5C,GAC5B6C,EAAW,CACbltC,EAAG8sC,EAAW9sC,EACdL,EAAGmtC,EAAWntC,GAGZ,SAAU4kB,IACZ2oB,EAASltC,EAAI8sC,EAAW9sC,EAAIukB,EAAO0F,KAAOuiB,EAAeviB,MAGvD,QAAS1F,IACX2oB,EAASvtC,EAAImtC,EAAWntC,EAAI4kB,EAAO6F,IAAMoiB,EAAepiB,KAnV5D,SAAwB6L,EAAMkX,GAC5B,IAAI1W,EAAQ9wB,OAAOikB,iBAAiBqM,EAAM,MACtC+T,EAAYvT,EAAMsW,iBAAiB,cAAgBtW,EAAMsW,iBAAiBnD,MAE9E,GAAII,GAA2B,SAAdA,EAAsB,CACrC,IAAItvB,EACA0yB,EAAUpD,EAAUhlC,MAAMklC,IAE9B,GAAIkD,GAEF1yB,GADA0yB,EAAUA,EAAQ,IACJnqC,MAAM,KAAK+K,KAAI,SAAUjK,GACrC,OAAOmlB,WAAWnlB,EAAM,QAEtB,GAAKopC,EAAGntC,EACZ0a,EAAI,GAAKyyB,EAAGxtC,EACZoqC,GAAa9T,EAAM,UAAU3zB,OAAOoY,EAAIhJ,KAAK,KAAM,WAGnDgJ,EADcsvB,EAAUhlC,MAAMmlC,IAAU,GAC1BlnC,MAAM,KAAK+K,KAAI,SAAUjK,GACrC,OAAOmlB,WAAWnlB,EAAM,QAEtB,IAAMopC,EAAGntC,EACb0a,EAAI,IAAMyyB,EAAGxtC,EACboqC,GAAa9T,EAAM,YAAY3zB,OAAOoY,EAAIhJ,KAAK,KAAM,WAGvDq4B,GAAa9T,EAAM,cAAc3zB,OAAO6qC,EAAGntC,EAAG,mBAAmBsC,OAAO6qC,EAAGxtC,EAAG,sBA4ThF0tC,CAAehD,EAAM6C,GAyBvB,SAASI,GAAK5yB,EAAKrS,GACjB,IAAK,IAAIhL,EAAI,EAAGA,EAAIqd,EAAIje,OAAQY,IAC9BgL,EAAGqS,EAAIrd,IAIX,SAASkwC,GAAclD,GACrB,MAAgD,eAAzCJ,GAAkBI,EAAM,aA9JX,oBAAX1kC,SACTskC,GAAoBtkC,OAAOikB,iBArD7B,SAA2BygB,EAAMttC,EAAM88B,GACrC,IAAI2T,EAAgB3T,EAChB5d,EAAM,GACNve,EAAI,GAAY2sC,GAOpB,OANAmD,EAAgBA,GAAiB9vC,EAAEorB,YAAYc,iBAAiBygB,EAAM,SAGpEpuB,EAAMuxB,EAAcT,iBAAiBhwC,IAASywC,EAAczwC,IAGvDkf,GAWT,SAA6BouB,EAAMttC,GAGjC,IAAIs0B,EAAMgZ,EAAkB,cAAKA,EAAkB,aAAEttC,GAUrD,GAAI0uC,GAAct6B,KAAKkgB,KAASqa,GAAOv6B,KAAKpU,GAAO,CAEjD,IAAI05B,EAAQ4T,EAAK5T,MACbxM,EAAOwM,EAAMkV,IACb8B,EAASpD,EAAkB,aAAEsB,IAEjCtB,EAAkB,aAAEsB,IAAQtB,EAAkB,aAAEsB,IAEhDlV,EAAMkV,IAAiB,aAAT5uC,EAAsB,MAAQs0B,GAAO,EACnDA,EAAMoF,EAAMiX,UAxBP,KA0BLjX,EAAMkV,IAAQ1hB,EACdogB,EAAkB,aAAEsB,IAAQ8B,EAG9B,MAAe,KAARpc,EAAa,OAASA,IAoK/B,IAAIsc,GAAa,CAAC,SAAU,SAAU,WAMtC,SAASC,GAAKvD,EAAMtoC,EAASsjB,GAC3B,IAEItoB,EAFA0vC,EAAM,GACNhW,EAAQ4T,EAAK5T,MAGjB,IAAK15B,KAAQgF,EACPA,EAAQzD,eAAevB,KACzB0vC,EAAI1vC,GAAQ05B,EAAM15B,GAClB05B,EAAM15B,GAAQgF,EAAQhF,IAM1B,IAAKA,KAFLsoB,EAAS9nB,KAAK8sC,GAEDtoC,EACPA,EAAQzD,eAAevB,KACzB05B,EAAM15B,GAAQ0vC,EAAI1vC,IAKxB,SAAS8wC,GAAYxD,EAAMp9B,EAAO6gC,GAChC,IACIzF,EACArnC,EACA3D,EAHAW,EAAQ,EAKZ,IAAKgD,EAAI,EAAGA,EAAIiM,EAAMxQ,OAAQuE,IAG5B,GAFAqnC,EAAOp7B,EAAMjM,GAGX,IAAK3D,EAAI,EAAGA,EAAIywC,EAAMrxC,OAAQY,IAAK,CACjC,IAAI0wC,OAAU,EAGZA,EADW,WAAT1F,EACQ,GAAG/lC,OAAO+lC,GAAM/lC,OAAOwrC,EAAMzwC,GAAI,SAEjCgrC,EAAOyF,EAAMzwC,GAGzBW,GAASkrB,WAAW+gB,GAAkBI,EAAM0D,KAAa,EAK/D,OAAO/vC,EAGT,IAAIgwC,GAAW,CACbC,UAAW,SAAmBtK,GAC5B,IAAItM,EAASsM,EAEb,GAEItM,EADsB,KAApBA,EAAOmU,UAAmBnU,EAAO5xB,KAC1B4xB,EAAO5xB,KAEP4xB,EAAOuG,iBAEXvG,GAA8B,IAApBA,EAAOmU,UAAsC,IAApBnU,EAAOmU,UAEnD,OAAOnU,IAiCX,SAAS6W,GAAM7D,EAAMttC,EAAMsQ,GACzB,IAAI8gC,EAAQ9gC,EAEZ,GAAIk+B,GAASlB,GACX,MAAgB,UAATttC,EAAmBixC,GAASI,cAAc/D,GAAQ2D,GAASK,eAAehE,GAC5E,GAAsB,IAAlBA,EAAKmB,SACd,MAAgB,UAATzuC,EAAmBixC,GAASM,SAASjE,GAAQ2D,GAASO,UAAUlE,GAGzE,IAAIyD,EAAiB,UAAT/wC,EAAmB,CAAC,OAAQ,SAAW,CAAC,MAAO,UACvDyxC,EAA0B,UAATzxC,EAAmBstC,EAAKa,wBAAwB5gB,MAAQ+f,EAAKa,wBAAwB3gB,OAEtGkkB,GADgBxE,GAAkBI,GACpBkD,GAAclD,IAC5BqE,EAAc,GAEdF,SAA2DA,GAAkB,KAC/EA,OAAiB5kC,GAIb8kC,OAFJA,EAAczE,GAAkBI,EAAMttC,KAEmBqd,OAAOs0B,GAAe,KAC7EA,EAAcrE,EAAK5T,MAAM15B,IAAS,GAIpC2xC,EAAcxlB,WAAWwlB,IAAgB,QAG7B9kC,IAAVukC,IACFA,EAAQM,EA7HO,GAFC,GAkIlB,IAAIE,OAAiD/kC,IAAnB4kC,GAAgCC,EAC9DxyB,EAAMuyB,GAAkBE,EAE5B,OArIkB,IAqIdP,EACEQ,EACK1yB,EAAM4xB,GAAYxD,EAAM,CAAC,SAAU,WAAYyD,GAGjDY,EACEC,EAzIM,IA0IXR,EACKlyB,EAGFA,GA/IS,IA+IFkyB,GAA2BN,GAAYxD,EAAM,CAAC,UAAWyD,GAASD,GAAYxD,EAAM,CAAC,UAAWyD,IAGzGY,EAAcb,GAAYxD,EAAMsD,GAAW5qC,MAAMorC,GAAQL,GA/ElER,GAAK,CAAC,QAAS,WAAW,SAAUvwC,GAClCixC,GAAS,MAAM1rC,OAAOvF,IAAS,SAAU6xC,GACvC,IAAIlxC,EAAIkxC,EAAOhpC,SACf,OAAO5B,KAAKsB,IAEZ5H,EAAE+sB,gBAAgB,SAASnoB,OAAOvF,IAClCW,EAAEmI,KAAK,SAASvD,OAAOvF,IAAQixC,GAAS,WAAW1rC,OAAOvF,IAAOW,KAGnEswC,GAAS,WAAW1rC,OAAOvF,IAAS,SAAU+hC,GAE5C,IAAIuJ,EAAO,SAAS/lC,OAAOvF,GACvBiuC,EAAMlM,EAAIl5B,SACVC,EAAOmlC,EAAInlC,KAEXgpC,EADkB7D,EAAIvgB,gBACgB4d,GAG1C,MAA0B,eAAnB2C,EAAI8D,YAA+BD,GAAuBhpC,GAAQA,EAAKwiC,IAASwG,MAgE3F,IAAIE,GAAU,CACZvlB,SAAU,WACVwlB,WAAY,SACZzI,QAAS,SAGX,SAAS0I,KACP,IAAK,IAAI7F,EAAOjnC,UAAU1F,OAAQggB,EAAO,IAAIlgB,MAAM6sC,GAAO8F,EAAQ,EAAGA,EAAQ9F,EAAM8F,IACjFzyB,EAAKyyB,GAAS/sC,UAAU+sC,GAG1B,IAAIjzB,EACAouB,EAAO5tB,EAAK,GAWhB,OARyB,IAArB4tB,EAAK8E,YACPlzB,EAAMiyB,GAAMvpC,WAAMiF,EAAW6S,GAE7BmxB,GAAKvD,EAAM0E,IAAS,WAClB9yB,EAAMiyB,GAAMvpC,WAAMiF,EAAW6S,MAI1BR,EAkCT,SAASgE,GAAI1D,EAAI2G,GACf,IAAK,IAAI7lB,KAAK6lB,EACRA,EAAK5kB,eAAejB,KACtBkf,EAAGlf,GAAK6lB,EAAK7lB,IAIjB,OAAOkf,EAtCT+wB,GAAK,CAAC,QAAS,WAAW,SAAUvwC,GAClC,IAAIqyC,EAAQryC,EAAKwI,OAAO,GAAGorB,cAAgB5zB,EAAKgG,MAAM,GAEtDirC,GAAS,QAAQ1rC,OAAO8sC,IAAU,SAAU3E,EAAI4E,GAC9C,OAAO5E,GAAMwE,GAAmBxE,EAAI1tC,EAAMsyC,EAjL3B,EADA,IAqLjB,IAAIvB,EAAiB,UAAT/wC,EAAmB,CAAC,OAAQ,SAAW,CAAC,MAAO,UAE3DixC,GAASjxC,GAAQ,SAAUstC,EAAM9qC,GAC/B,IAAI0c,EAAM1c,EAEV,QAAYqK,IAARqS,EAeJ,OAAOouB,GAAQ4E,GAAmB5E,EAAMttC,GA3MxB,GA6Ld,GAAIstC,EAAM,CACYJ,GAAkBI,GAOtC,OANkBkD,GAAclD,KAG9BpuB,GAAO4xB,GAAYxD,EAAM,CAAC,UAAW,UAAWyD,IAG3CtD,GAAIH,EAAMttC,EAAMkf,QAoB/B,IAAIqzB,GAAQ,CACVC,UAAW,SAAmBtZ,GAC5B,GAAIA,GAAQA,EAAKrwB,UAAYqwB,EAAKjV,WAChC,OAAOiV,EAGT,IAAI+U,EAAM/U,EAAKpN,eAAiBoN,EAChC,OAAO+U,EAAIliB,aAAekiB,EAAIM,cAEhCkE,YAAa,GACbjrB,OAAQ,SAAgBkmB,EAAIzsC,EAAOk/B,GACjC,QAAqB,IAAVl/B,EAGT,OAAO6sC,GAAUJ,IAxQvB,SAAmBJ,EAAM9lB,EAAQ2Y,GAC/B,GAAIA,EAAOuS,YAAa,CACtB,IAAIC,EAAY7E,GAAUR,GACtBsF,EAAQD,EAAUzlB,KAAKhN,QAAQ,GAC/B2yB,EAAOF,EAAUtlB,IAAInN,QAAQ,GAC7B4yB,EAAQtrB,EAAO0F,KAAKhN,QAAQ,GAC5B6yB,EAAOvrB,EAAO6F,IAAInN,QAAQ,GAE9B,GAAI0yB,IAAUE,GAASD,IAASE,EAC9B,OAIA5S,EAAO2O,aAAe3O,EAAO4O,aAC/BE,GAAW3B,EAAM9lB,EAAQ2Y,GAChBA,EAAO6S,iBAAmBnG,OAAsBhkC,SAASC,KAAK4wB,MACvEoW,GAAexC,EAAM9lB,GAErBynB,GAAW3B,EAAM9lB,EAAQ2Y,GAoPvB8S,CAAUvF,EAAIzsC,EAAOk/B,GAAU,KAKnCqO,SAAUA,GACV+B,KAAMA,GACN9C,IAAKA,GACLyF,MAAO,SAAe3zC,GACpB,IAAIe,EACAg0B,EAAM,GAEV,IAAKh0B,KAAKf,EACJA,EAAIgC,eAAejB,KACrBg0B,EAAIh0B,GAAKf,EAAIe,IAMjB,GAFef,EAAI4zC,SAGjB,IAAK7yC,KAAKf,EACJA,EAAIgC,eAAejB,KACrBg0B,EAAI6e,SAAS7yC,GAAKf,EAAI4zC,SAAS7yC,IAKrC,OAAOg0B,GAETpR,IAAKA,GACLkwB,oBAAqB,SAA6B5vC,GAChD,OAAOoqC,GAAcpqC,IAEvB6vC,mBAAoB,SAA4B7vC,GAC9C,OAAOqqC,GAAarqC,IAEtB8vC,MAAO,WAGL,IAFA,IAAIhf,EAAM,GAEDh0B,EAAI,EAAGA,EAAI8E,UAAU1F,OAAQY,IACpCiyC,GAAMrvB,IAAIoR,EAAKh0B,EAAI,GAAK8E,UAAU1F,QAAUY,OAAIuM,EAAYzH,UAAU9E,IAGxE,OAAOg0B,GAET+c,cAAe,EACfC,eAAgB,GAElBpuB,GAAIqvB,GAAOtB,IAKX,IAAIC,GAAYqB,GAAMrB,UAEtB,SAASqC,GAAgB3M,GACvB,GAAI2L,GAAM/D,SAAS5H,IAAiC,IAArBA,EAAQ6H,SACrC,OAAO,KAmBT,IAEInU,EADAxxB,EADMypC,GAAME,YAAY7L,GACb99B,KAEX0qC,EAAgBjB,GAAM9E,IAAI7G,EAAS,YAGvC,KAFmC,UAAlB4M,GAA+C,aAAlBA,GAG5C,MAA0C,SAAnC5M,EAAQ6M,SAAS5rC,cAA2B,KAAOqpC,GAAUtK,GAGtE,IAAKtM,EAAS4W,GAAUtK,GAAUtM,GAAUA,IAAWxxB,GAA4B,IAApBwxB,EAAOmU,SAAgBnU,EAAS4W,GAAU5W,GAGvG,GAAsB,YAFtBkZ,EAAgBjB,GAAM9E,IAAInT,EAAQ,aAGhC,OAAOA,EAIX,OAAO,KAGT,IAAIoZ,GAAcnB,GAAMrB,UA0BxB,SAASyC,GAAyB/M,EAASgN,GAczC,IAbA,IAAIC,EAAc,CAChB3mB,KAAM,EACNC,MAAOiF,IACP/E,IAAK,EACLC,OAAQ8E,KAENsb,EAAK6F,GAAgB3M,GACrBqH,EAAMsE,GAAME,YAAY7L,GACxB7E,EAAMkM,EAAIliB,aAAekiB,EAAIM,aAC7BzlC,EAAOmlC,EAAInlC,KACX4kB,EAAkBugB,EAAIvgB,gBAGnBggB,GAAI,CAET,IAA8C,IAAzCoG,UAAUC,UAAUxsC,QAAQ,SAAqC,IAAnBmmC,EAAG/gB,aAGtD+gB,IAAO5kC,GAAQ4kC,IAAOhgB,GAAiD,YAA9B6kB,GAAM9E,IAAIC,EAAI,aAUhD,GAAIA,IAAO5kC,GAAQ4kC,IAAOhgB,EAC/B,UAXgF,CAChF,IAAIqgB,EAAMwE,GAAM/qB,OAAOkmB,GAEvBK,EAAI7gB,MAAQwgB,EAAGU,WACfL,EAAI1gB,KAAOqgB,EAAGW,UACdwF,EAAYxmB,IAAMpmB,KAAKsB,IAAIsrC,EAAYxmB,IAAK0gB,EAAI1gB,KAChDwmB,EAAY1mB,MAAQlmB,KAAKC,IAAI2sC,EAAY1mB,MACzC4gB,EAAI7gB,KAAOwgB,EAAG/gB,aACdknB,EAAYvmB,OAASrmB,KAAKC,IAAI2sC,EAAYvmB,OAAQygB,EAAI1gB,IAAMqgB,EAAG9gB,cAC/DinB,EAAY3mB,KAAOjmB,KAAKsB,IAAIsrC,EAAY3mB,KAAM6gB,EAAI7gB,MAKpDwgB,EAAK6F,GAAgB7F,GAMvB,IAAIsG,EAAmB,KAElBzB,GAAM/D,SAAS5H,IAAiC,IAArBA,EAAQ6H,WACtCuF,EAAmBpN,EAAQlN,MAAMjN,SAGhB,aAFF8lB,GAAM9E,IAAI7G,EAAS,cAGhCA,EAAQlN,MAAMjN,SAAW,UAI7B,IAAIwnB,EAAU1B,GAAMa,oBAAoBrR,GACpCmS,EAAU3B,GAAMc,mBAAmBtR,GACnCsP,EAAgBkB,GAAMlB,cAActP,GACpCuP,EAAiBiB,GAAMjB,eAAevP,GACtCoS,EAAgBzmB,EAAgB0mB,YAChCC,EAAiB3mB,EAAgB4mB,aAGjCC,EAAY3rC,OAAOikB,iBAAiB/jB,GAexC,GAb4B,WAAxByrC,EAAUC,YACZL,EAAgBpS,EAAI0S,YAGM,WAAxBF,EAAUG,YACZL,EAAiBtS,EAAI4S,aAInB/N,EAAQlN,QACVkN,EAAQlN,MAAMjN,SAAWunB,GAGvBJ,GAjGN,SAAyBhN,GACvB,GAAI2L,GAAM/D,SAAS5H,IAAiC,IAArBA,EAAQ6H,SACrC,OAAO,EAGT,IACI3lC,EADMypC,GAAME,YAAY7L,GACb99B,KACXwxB,EAAS,KAEb,IAAKA,EAASoZ,GAAY9M,GAAUtM,GAAUA,IAAWxxB,EAAMwxB,EAASoZ,GAAYpZ,GAAS,CAG3F,GAAsB,UAFFiY,GAAM9E,IAAInT,EAAQ,YAGpC,OAAO,EAIX,OAAO,EAgFiBsa,CAAgBhO,GAEtCiN,EAAY3mB,KAAOjmB,KAAKsB,IAAIsrC,EAAY3mB,KAAM+mB,GAC9CJ,EAAYxmB,IAAMpmB,KAAKsB,IAAIsrC,EAAYxmB,IAAK6mB,GAC5CL,EAAY1mB,MAAQlmB,KAAKC,IAAI2sC,EAAY1mB,MAAO8mB,EAAU5C,GAC1DwC,EAAYvmB,OAASrmB,KAAKC,IAAI2sC,EAAYvmB,OAAQ4mB,EAAU5C,OACvD,CAEL,IAAIuD,EAAkB5tC,KAAKsB,IAAI4rC,EAAeF,EAAU5C,GACxDwC,EAAY1mB,MAAQlmB,KAAKC,IAAI2sC,EAAY1mB,MAAO0nB,GAChD,IAAIC,EAAmB7tC,KAAKsB,IAAI8rC,EAAgBH,EAAU5C,GAC1DuC,EAAYvmB,OAASrmB,KAAKC,IAAI2sC,EAAYvmB,OAAQwnB,GAGpD,OAAOjB,EAAYxmB,KAAO,GAAKwmB,EAAY3mB,MAAQ,GAAK2mB,EAAYvmB,OAASumB,EAAYxmB,KAAOwmB,EAAY1mB,MAAQ0mB,EAAY3mB,KAAO2mB,EAAc,KA4CvJ,SAASkB,GAAU7b,GACjB,IAAI1R,EACAhkB,EACArB,EAEJ,GAAKowC,GAAM/D,SAAStV,IAA2B,IAAlBA,EAAKuV,SAI3B,CACL,IAAI1M,EAAMwQ,GAAMC,UAAUtZ,GAC1B1R,EAAS,CACP0F,KAAMqlB,GAAMa,oBAAoBrR,GAChC1U,IAAKklB,GAAMc,mBAAmBtR,IAEhCv+B,EAAI+uC,GAAMlB,cAActP,GACxB5/B,EAAIowC,GAAMjB,eAAevP,QAVzBva,EAAS+qB,GAAM/qB,OAAO0R,GACtB11B,EAAI+uC,GAAMyC,WAAW9b,GACrB/2B,EAAIowC,GAAM0C,YAAY/b,GAaxB,OAFA1R,EAAO+F,MAAQ/pB,EACfgkB,EAAOgG,OAASrrB,EACTqlB,EAOT,SAAS0tB,GAAeC,EAAQC,GAC9B,IAAIC,EAAID,EAAM5sC,OAAO,GACjB8sC,EAAIF,EAAM5sC,OAAO,GACjBhF,EAAI2xC,EAAO5nB,MACXprB,EAAIgzC,EAAO3nB,OACXvqB,EAAIkyC,EAAOjoB,KACXtqB,EAAIuyC,EAAO9nB,IAcf,MAZU,MAANgoB,EACFzyC,GAAKT,EAAI,EACM,MAANkzC,IACTzyC,GAAKT,GAGG,MAANmzC,EACFryC,GAAKO,EAAI,EACM,MAAN8xC,IACTryC,GAAKO,GAGA,CACL0pB,KAAMjqB,EACNoqB,IAAKzqB,GAIT,SAAS2yC,GAAeC,EAAUC,EAAeC,EAAQluB,EAAQmuB,GAC/D,IAAIC,EAAKV,GAAeO,EAAeC,EAAO,IAC1CG,EAAKX,GAAeM,EAAUE,EAAO,IACrC3jB,EAAO,CAAC8jB,EAAG3oB,KAAO0oB,EAAG1oB,KAAM2oB,EAAGxoB,IAAMuoB,EAAGvoB,KAC3C,MAAO,CACLH,KAAMjmB,KAAK0Y,MAAM61B,EAAStoB,KAAO6E,EAAK,GAAKvK,EAAO,GAAKmuB,EAAa,IACpEtoB,IAAKpmB,KAAK0Y,MAAM61B,EAASnoB,IAAM0E,EAAK,GAAKvK,EAAO,GAAKmuB,EAAa,KAStE,SAASG,GAAQC,EAAaP,EAAU3B,GACtC,OAAOkC,EAAY7oB,KAAO2mB,EAAY3mB,MAAQ6oB,EAAY7oB,KAAOsoB,EAASjoB,MAAQsmB,EAAY1mB,MAGhG,SAAS6oB,GAAQD,EAAaP,EAAU3B,GACtC,OAAOkC,EAAY1oB,IAAMwmB,EAAYxmB,KAAO0oB,EAAY1oB,IAAMmoB,EAAShoB,OAASqmB,EAAYvmB,OAW9F,SAAS2oB,GAAKP,EAAQQ,EAAKjlC,GACzB,IAAIqjB,EAAM,GAMV,OALAie,GAAMhC,KAAKmF,GAAQ,SAAUl0C,GAC3B8yB,EAAInuB,KAAK3E,EAAEwG,QAAQkuC,GAAK,SAAUz1C,GAChC,OAAOwQ,EAAIxQ,UAGR6zB,EAGT,SAAS6hB,GAAW3uB,EAAQlhB,GAE1B,OADAkhB,EAAOlhB,IAAUkhB,EAAOlhB,GACjBkhB,EAGT,SAAS4uB,GAAcnZ,EAAKoZ,GAS1B,OANI,KAAKjiC,KAAK6oB,GACR1oB,SAAS0oB,EAAIpJ,UAAU,EAAGoJ,EAAIv9B,OAAS,GAAI,IAAM,IAAM22C,EAEvD9hC,SAAS0oB,EAAK,MAGR,EAGd,SAASqZ,GAAgB9uB,EAAQkmB,GAC/BlmB,EAAO,GAAK4uB,GAAc5uB,EAAO,GAAIkmB,EAAGngB,OACxC/F,EAAO,GAAK4uB,GAAc5uB,EAAO,GAAIkmB,EAAGlgB,QAS1C,SAAS+oB,GAAQ7I,EAAI8I,EAAWpB,EAAOqB,GACrC,IAAIf,EAASN,EAAMM,OACfluB,EAAS4tB,EAAM5tB,QAAU,CAAC,EAAG,GAC7BmuB,EAAeP,EAAMO,cAAgB,CAAC,EAAG,GACzCxC,EAAWiC,EAAMjC,SACjBre,EAASsgB,EAAMtgB,QAAU4Y,EAC7BlmB,EAAS,GAAGjiB,OAAOiiB,GACnBmuB,EAAe,GAAGpwC,OAAOowC,GAEzB,IAAIe,EAAiB,GACjBC,EAAO,EAGP9C,EAAcF,GAAyB7e,MAL3Cqe,EAAWA,GAAY,MAGeA,EAASS,mBAI3C4B,EAAWT,GAAUjgB,GAEzBwhB,GAAgB9uB,EAAQguB,GACxBc,GAAgBX,EAAca,GAE9B,IAAIT,EAAcR,GAAeC,EAAUgB,EAAWd,EAAQluB,EAAQmuB,GAElEiB,EAAcrE,GAAMe,MAAMkC,EAAUO,GAExC,GAAIlC,IAAgBV,EAAS0D,SAAW1D,EAAS2D,UAAYL,EAAoB,CAC/E,GAAItD,EAAS0D,SAEPf,GAAQC,EAAaP,EAAU3B,GAAc,CAE/C,IAAIkD,EAAYd,GAAKP,EAAQ,SAAU,CACrCn1C,EAAG,IACHH,EAAG,MAGD42C,EAAYb,GAAW3uB,EAAQ,GAC/ByvB,EAAkBd,GAAWR,EAAc,IAjFvD,SAAyBI,EAAaP,EAAU3B,GAC9C,OAAOkC,EAAY7oB,KAAO2mB,EAAY1mB,OAAS4oB,EAAY7oB,KAAOsoB,EAASjoB,MAAQsmB,EAAY3mB,MAmFpFgqB,CAFgB3B,GAAeC,EAAUgB,EAAWO,EAAWC,EAAWC,GAE1CzB,EAAU3B,KAC7C8C,EAAO,EACPjB,EAASqB,EACTvvB,EAASwvB,EACTrB,EAAesB,GAKrB,GAAI9D,EAAS2D,SAEPd,GAAQD,EAAaP,EAAU3B,GAAc,CAE/C,IAAIsD,EAAalB,GAAKP,EAAQ,SAAU,CACtCx1C,EAAG,IACHgD,EAAG,MAIDk0C,EAAajB,GAAW3uB,EAAQ,GAEhC6vB,EAAmBlB,GAAWR,EAAc,IArGxD,SAAyBI,EAAaP,EAAU3B,GAC9C,OAAOkC,EAAY1oB,IAAMwmB,EAAYvmB,QAAUyoB,EAAY1oB,IAAMmoB,EAAShoB,OAASqmB,EAAYxmB,KAwGpFiqB,CAFiB/B,GAAeC,EAAUgB,EAAWW,EAAYC,EAAYC,GAE5C7B,EAAU3B,KAC9C8C,EAAO,EACPjB,EAASyB,EACT3vB,EAAS4vB,EACTzB,EAAe0B,GAMjBV,IACFZ,EAAcR,GAAeC,EAAUgB,EAAWd,EAAQluB,EAAQmuB,GAClEpD,GAAMrvB,IAAI0zB,EAAab,IAGzB,IAAIwB,EAAezB,GAAQC,EAAaP,EAAU3B,GAC9C2D,EAAexB,GAAQD,EAAaP,EAAU3B,GAGlD,GAAI0D,GAAgBC,EAAc,CAChC,IAAIC,EAAc/B,EAEd6B,IACFE,EAAcxB,GAAKP,EAAQ,SAAU,CACnCn1C,EAAG,IACHH,EAAG,OAIHo3C,IACFC,EAAcxB,GAAKP,EAAQ,SAAU,CACnCx1C,EAAG,IACHgD,EAAG,OAIPwyC,EAAS+B,EACTjwB,EAAS4tB,EAAM5tB,QAAU,CAAC,EAAG,GAC7BmuB,EAAeP,EAAMO,cAAgB,CAAC,EAAG,GAI3Ce,EAAeG,QAAU1D,EAAS0D,SAAWU,EAC7Cb,EAAeI,QAAU3D,EAAS2D,SAAWU,GAEzCd,EAAeG,SAAWH,EAAeI,WAC3CF,EAjRN,SAA2Bb,EAAaP,EAAU3B,EAAaV,GAC7D,IAAIpF,EAAMwE,GAAMW,MAAM6C,GAClBvpB,EAAO,CACTe,MAAOioB,EAASjoB,MAChBC,OAAQgoB,EAAShoB,QAkCnB,OA/BI2lB,EAAS0D,SAAW9I,EAAI7gB,KAAO2mB,EAAY3mB,OAC7C6gB,EAAI7gB,KAAO2mB,EAAY3mB,MAIrBimB,EAASuE,aAAe3J,EAAI7gB,MAAQ2mB,EAAY3mB,MAAQ6gB,EAAI7gB,KAAOV,EAAKe,MAAQsmB,EAAY1mB,QAC9FX,EAAKe,OAASwgB,EAAI7gB,KAAOV,EAAKe,MAAQsmB,EAAY1mB,OAIhDgmB,EAAS0D,SAAW9I,EAAI7gB,KAAOV,EAAKe,MAAQsmB,EAAY1mB,QAE1D4gB,EAAI7gB,KAAOjmB,KAAKsB,IAAIsrC,EAAY1mB,MAAQX,EAAKe,MAAOsmB,EAAY3mB,OAI9DimB,EAAS2D,SAAW/I,EAAI1gB,IAAMwmB,EAAYxmB,MAC5C0gB,EAAI1gB,IAAMwmB,EAAYxmB,KAIpB8lB,EAASwE,cAAgB5J,EAAI1gB,KAAOwmB,EAAYxmB,KAAO0gB,EAAI1gB,IAAMb,EAAKgB,OAASqmB,EAAYvmB,SAC7Fd,EAAKgB,QAAUugB,EAAI1gB,IAAMb,EAAKgB,OAASqmB,EAAYvmB,QAIjD6lB,EAAS2D,SAAW/I,EAAI1gB,IAAMb,EAAKgB,OAASqmB,EAAYvmB,SAE1DygB,EAAI1gB,IAAMpmB,KAAKsB,IAAIsrC,EAAYvmB,OAASd,EAAKgB,OAAQqmB,EAAYxmB,MAG5DklB,GAAMrvB,IAAI6qB,EAAKvhB,GA2OJorB,CAAkB7B,EAAaP,EAAU3B,EAAa6C,IAyBxE,OApBIE,EAAYrpB,QAAUioB,EAASjoB,OACjCglB,GAAM9E,IAAI3Y,EAAQ,QAASyd,GAAMhlB,MAAMuH,GAAU8hB,EAAYrpB,MAAQioB,EAASjoB,OAG5EqpB,EAAYppB,SAAWgoB,EAAShoB,QAClC+kB,GAAM9E,IAAI3Y,EAAQ,SAAUyd,GAAM/kB,OAAOsH,GAAU8hB,EAAYppB,OAASgoB,EAAShoB,QAMnF+kB,GAAM/qB,OAAOsN,EAAQ,CACnB5H,KAAM0pB,EAAY1pB,KAClBG,IAAKupB,EAAYvpB,KAChB,CACDyhB,YAAasG,EAAMtG,YACnBC,aAAcqG,EAAMrG,aACpBiE,gBAAiBoC,EAAMpC,gBACvBN,YAAa0C,EAAM1C,cAEd,CACLgD,OAAQA,EACRluB,OAAQA,EACRmuB,aAAcA,EACdxC,SAAUuD,GAmBd,SAASmB,GAAanK,EAAIoK,EAAS1C,GACjC,IAAIxpB,EAASwpB,EAAMxpB,QAAUksB,EAG7B,OAAOvB,GAAQ7I,EAFKqH,GAAUnpB,GAEIwpB,GAVpC,SAA4BxpB,EAAQgoB,GAClC,IAAIC,EAAcF,GAAyB/nB,EAAQgoB,GAC/CmE,EAAehD,GAAUnpB,GAC7B,OAAQioB,GAAekE,EAAa7qB,KAAO6qB,EAAaxqB,OAASsmB,EAAY3mB,MAAQ6qB,EAAa1qB,IAAM0qB,EAAavqB,QAAUqmB,EAAYxmB,KAAO0qB,EAAa7qB,MAAQ2mB,EAAY1mB,OAAS4qB,EAAa1qB,KAAOwmB,EAAYvmB,OAM7L0qB,CAAmBpsB,EAAQwpB,EAAMjC,UAAYiC,EAAMjC,SAASS,mBAW7F,SAAS,GAAWlG,EAAIuK,EAAU7C,GAChC,IAAI8C,EACAC,EACAlK,EAAMsE,GAAME,YAAY/E,GACxB3L,EAAMkM,EAAIliB,aAAekiB,EAAIM,aAC7B0F,EAAU1B,GAAMa,oBAAoBrR,GACpCmS,EAAU3B,GAAMc,mBAAmBtR,GACnCsP,EAAgBkB,GAAMlB,cAActP,GACpCuP,EAAiBiB,GAAMjB,eAAevP,GAGxCmW,EADE,UAAWD,EACLA,EAASC,MAETjE,EAAUgE,EAASG,QAI3BD,EADE,UAAWF,EACLA,EAASE,MAETjE,EAAU+D,EAASI,QAG7B,IAMIC,EAAcJ,GAAS,GAAKA,GAASjE,EAAU5C,GAAiB8G,GAAS,GAAKA,GAASjE,EAAU5C,EAGrG,OAAOiF,GAAQ7I,EATC,CACdxgB,KAAMgrB,EACN7qB,IAAK8qB,EACL5qB,MAAO,EACPC,OAAQ,GAtwCZ,SAAwB5B,GACtB,IAAK,IAAItrB,EAAI,EAAGA,EAAI8E,UAAU1F,OAAQY,IAAK,CACzC,IAAIw0B,EAAyB,MAAhB1vB,UAAU9E,GAAa8E,UAAU9E,GAAK,GAE/CA,EAAI,EACN,GAAQw0B,GAAQ,GAAM9oB,SAAQ,SAAUlK,GACtC,GAAgB8pB,EAAQ9pB,EAAKgzB,EAAOhzB,OAE7BjC,OAAOw+B,0BAChBx+B,OAAOm1B,iBAAiBpJ,EAAQ/rB,OAAOw+B,0BAA0BvJ,IAEjE,GAAQA,GAAQ9oB,SAAQ,SAAUlK,GAChCjC,OAAOe,eAAegrB,EAAQ9pB,EAAKjC,OAAOC,yBAAyBg1B,EAAQhzB,OAKjF,OAAO8pB,EA0vCuB,CAAe,GAAIwpB,EAAO,CACtDM,OAFW,CAACN,EAAMM,OAAO,GAAI,QAG3B4C,GAxCNT,GAAaU,kBAAoBhF,GACjCsE,GAAaW,2BAA6B7E,G,iBK1vCnC,SAAS8E,GAAc7R,EAASte,GACrC,IAAIowB,EAAY,KACZC,EAAa,KA6BjB,IAAIC,EAAiB,IAAI,MA3BzB,SAAkB3hB,GAChB,IACIrL,EADQwV,EAAenK,EAAM,GACd,GAAGrL,OAEtB,GAAK/iB,SAAS02B,SAAS3T,GAAvB,CAEA,IAAIitB,EAAwBjtB,EAAOuiB,wBAC/B5gB,EAAQsrB,EAAsBtrB,MAC9BC,EAASqrB,EAAsBrrB,OAE/BsrB,EAAa7xC,KAAKqB,MAAMilB,GACxBwrB,EAAc9xC,KAAKqB,MAAMklB,GAEzBkrB,IAAcI,GAAcH,IAAeI,GAE7CtqC,QAAQpC,UAAUK,MAAK,WACrB4b,EAAS,CACPiF,MAAOurB,EACPtrB,OAAQurB,OAKdL,EAAYI,EACZH,EAAaI,MASf,OAJInS,GACFgS,EAAe5tB,QAAQ4b,GAGlB,WACLgS,EAAettB,cC/CnB,SAAS,GAAWkO,GAClB,MAAoB,mBAATA,EAA4B,KAChCA,IAGT,SAASwf,GAASC,GAChB,MAAuB,WAAnB,EAAQA,IAAwBA,EAC7BA,EAD2C,KAIpD,IAsIIC,GAAW,IAAMC,YAtIT,SAAeliB,EAAM8I,GAC/B,IAAI1H,EAAWpB,EAAKoB,SAChB+gB,EAAWniB,EAAKmiB,SAChBxtB,EAASqL,EAAKrL,OACdwpB,EAAQne,EAAKme,MACbiE,EAAUpiB,EAAKoiB,QACfC,EAAsBriB,EAAKqiB,oBAC3BC,EAAwBtiB,EAAKuiB,kBAC7BA,OAA8C,IAA1BD,EAAmC,EAAIA,EAC3DE,EAAW,IAAMC,OAAO,IACxB9Q,EAAU,IAAM8Q,SAChBC,EAAY,IAAMphB,SAASqhB,KAAKvhB,GAGhCwhB,EAAqB,IAAMH,OAAO,IACtCG,EAAmBrf,QAAQ4e,SAAWA,EACtCS,EAAmBrf,QAAQ5O,OAASA,EACpCiuB,EAAmBrf,QAAQ6e,QAAUA,EAErC,IAkCIS,EAAc1Y,EC5EJ,cACd,IAAI2Y,EAAY,IAAML,QAAO,GACzBM,EAAa,IAAMN,OAAO,MAE9B,SAASO,IACPrxC,OAAOsb,aAAa81B,EAAWxf,SAwBjC,MAAO,CArBP,SAAS0f,EAAQC,GACf,GAAKJ,EAAUvf,UAAqB,IAAV2f,EAYxBF,IACAD,EAAWxf,QAAU5xB,OAAOqb,YAAW,WACrC81B,EAAUvf,SAAU,EACpB0f,MACCE,OAhBqC,CACxC,IAAmB,IAAf9xB,IAEF,OAGFyxB,EAAUvf,SAAU,EACpByf,IACAD,EAAWxf,QAAU5xB,OAAOqb,YAAW,WACrC81B,EAAUvf,SAAU,IACnB4f,KAUU,WACfL,EAAUvf,SAAU,EACpByf,MDWeI,EAAU,WACzB,IAAIC,EAAwBT,EAAmBrf,QAC3C+f,EAAiBD,EAAsBlB,SACvCoB,EAAeF,EAAsB1uB,OAEzC,IAAK2uB,GAAkBC,EAAc,CACnC,IACIhuC,EADAsoB,EAAS8T,EAAQpO,QAEjBoM,EAAU,GAAW4T,GACrBvB,EAAQD,GAASwB,GACrBf,EAASjf,QAAQoM,QAAUA,EAC3B6S,EAASjf,QAAQye,MAAQA,EAGzB,IACIwB,EADY5xC,SACc4xC,cAc9B,OAZI7T,EACFp6B,EAASqrC,GAAa/iB,EAAQ8R,EAASwO,GAC9B6D,IACTzsC,EAAS,GAAWsoB,EAAQmkB,EAAO7D,ID9CpC,SAAsBqF,EAAeC,GAEtCD,IAAkB5xC,SAAS4xC,eGnBlB,SAAkBjb,EAAMr/B,GAGrC,IAFA,IAAI+4B,EAAO/4B,EAEJ+4B,GAAM,CACX,GAAIA,IAASsG,EACX,OAAO,EAGTtG,EAAOA,EAAK2H,WAGd,OAAO,EHQyC,CAAS6Z,EAAWD,IAAiD,mBAAxBA,EAAchjC,OACzGgjC,EAAchjC,QC8CZkjC,CAAaF,EAAe3lB,GAExBukB,GACFA,EAAQvkB,EAAQtoB,IAGX,EAGT,OAAO,IACNgtC,GAC0C,GACzCoB,EAAcd,EAAY,GAC1Be,EAAmBf,EAAY,GAI/BgB,EAAgB,IAAMpB,OAAO,CAC/B9Z,OAAQ,eAGNmb,EAAsB,IAAMrB,OAAO,CACrC9Z,OAAQ,eAEV,IAAMob,WAAU,WACd,IDxFwBjsC,EAAM/B,ECwF1B45B,EAAU,GAAWhb,GACrBqtB,EAAQD,GAASptB,GAEjBgd,EAAQpO,UAAYugB,EAAoBvgB,QAAQoM,UAClDmU,EAAoBvgB,QAAQoF,SAC5Bmb,EAAoBvgB,QAAQoM,QAAUgC,EAAQpO,QAC9CugB,EAAoBvgB,QAAQoF,OAAS6Y,GAAc7P,EAAQpO,QAASogB,IAGlEnB,EAASjf,QAAQoM,UAAYA,KDjGT73B,ECiGiC0qC,EAASjf,QAAQye,UDjG5CjsC,ECiGmDisC,ID/F9ElqC,GAAS/B,IAEV,UAAWA,GAAQ,UAAWA,EACzB+B,EAAKmpC,QAAUlrC,EAAKkrC,OAASnpC,EAAKopC,QAAUnrC,EAAKmrC,MAGtD,YAAanrC,GAAQ,YAAaA,GAC7B+B,EAAKqpC,UAAYprC,EAAKorC,SAAWrpC,EAAKspC,UAAYrrC,EAAKqrC,YCyF5DuC,IAGIE,EAActgB,QAAQoM,UAAYA,IACpCkU,EAActgB,QAAQoF,SACtBkb,EAActgB,QAAQoM,QAAUA,EAChCkU,EAActgB,QAAQoF,OAAS6Y,GAAc7R,EAASgU,QAK5D,IAAMI,WAAU,WACT5B,EAGHyB,IAFAD,MAID,CAACxB,IAEJ,IAAI6B,EAAe,IAAMvB,OAAO,MAmChC,OAlCA,IAAMsB,WAAU,WACV1B,EACG2B,EAAazgB,UAChBygB,EAAazgB,QG3HN,SAA8B5O,EAAQqU,EAAWC,EAAIC,GAElE,IAAI7X,EAAW,IAAS8X,wBAA0B,SAAangC,GAC7D,IAASmgC,wBAAwBF,EAAIjgC,IACnCigC,EAMJ,OAJItU,EAAOb,kBACTa,EAAOb,iBAAiBkV,EAAW3X,EAAU6X,GAGxC,CACLE,OAAQ,WACFzU,EAAOP,qBACTO,EAAOP,oBAAoB4U,EAAW3X,KH8Gf,CAAiB1f,OAAQ,SAAUgyC,IAEnDK,EAAazgB,UACtBygB,EAAazgB,QAAQ6F,SACrB4a,EAAazgB,QAAU,QAExB,CAAC8e,IAEJ,IAAM0B,WAAU,WACd,OAAO,WACLF,EAActgB,QAAQoF,SACtBmb,EAAoBvgB,QAAQoF,SACxBqb,EAAazgB,SAASygB,EAAazgB,QAAQ6F,SAC/Cwa,OAED,IAEH,IAAMK,oBAAoBnb,GAAK,WAC7B,MAAO,CACLob,WAAY,WACV,OAAOP,GAAY,QAKrB,IAAMQ,eAAezB,KACvBA,EAAY,IAAM0B,aAAa1B,EAAW,CACxC5Z,IAAK,GAAW4Z,EAAU5Z,IAAK6I,MAI5B+Q,KAITT,GAASlrC,YAAc,QACR,II9JA,GJ8JA,G,wBKhKf,SAASstC,GAAmBC,EAAKlvC,EAASC,EAAQkvC,EAAOC,EAAQ35C,EAAK0I,GACpE,IACE,IAAIsC,EAAOyuC,EAAIz5C,GAAK0I,GAChBvJ,EAAQ6L,EAAK7L,MACjB,MAAO2L,GAEP,YADAN,EAAOM,GAILE,EAAK1B,KACPiB,EAAQpL,GAERwN,QAAQpC,QAAQpL,GAAOyL,KAAK8uC,EAAOC,GAIxB,SAASC,GAAkBpwC,GACxC,OAAO,WACL,IAAIxB,EAAO/E,KACP2a,EAAOta,UACX,OAAO,IAAIqJ,SAAQ,SAAUpC,EAASC,GACpC,IAAIivC,EAAMjwC,EAAG1D,MAAMkC,EAAM4V,GAEzB,SAAS87B,EAAMv6C,GACbq6C,GAAmBC,EAAKlvC,EAASC,EAAQkvC,EAAOC,EAAQ,OAAQx6C,GAGlE,SAASw6C,EAAO/xC,GACd4xC,GAAmBC,EAAKlvC,EAASC,EAAQkvC,EAAOC,EAAQ,QAAS/xC,GAGnE8xC,OAAM3uC,OC1BZ,IAAI8uC,GAAc,CAAC,UAAW,QAAS,KAAM,UCKzCC,GAAa,cAAiB,SAAU1rC,EAAO6vB,GACjD,IAAIuE,EAAUp0B,EAAMo0B,QAChBuH,EAAY37B,EAAM27B,UAClBtC,EAAYr5B,EAAMq5B,UAClB7P,EAAQxpB,EAAMwpB,MACdrB,EAAWnoB,EAAMmoB,SACjB2T,EAAS97B,EAAM87B,OACf6P,EAAU3rC,EAAM2rC,QAChBC,EAAqB5rC,EAAM4rC,mBAC3B1G,EAAQllC,EAAMklC,MACd6D,EAAQ/oC,EAAM+oC,MACd8C,EAAiB7rC,EAAM6rC,eACvBC,EAAwB9rC,EAAM8rC,sBAC9B3C,EAAUnpC,EAAMmpC,QAChB4C,EAAe/rC,EAAM+rC,aACrBC,EAAehsC,EAAMgsC,aACrBC,EAAcjsC,EAAMisC,YACpBC,EAAelsC,EAAMksC,aACrBC,EAAW,mBACXC,EAAa,mBAGbjZ,EAAajC,EADD,qBAC2B,GACvCmb,EAAmBlZ,EAAW,GAC9BmZ,EAAsBnZ,EAAW,GAGjCoZ,ECnCU,YACd,IAIIhZ,EAAmBrC,EAJD,IAAMsb,SAAS,CACnCnvB,MAAO,EACPC,OAAQ,IAE6C,GACnDmvB,EAAalZ,EAAiB,GAC9BmZ,EAAgBnZ,EAAiB,GAgCrC,MAAO,CAtBK,IAAMoZ,SAAQ,WACxB,IAAIC,EAAY,GAEhB,GAAIjB,EAAS,CACX,IAAItuB,EAAQovB,EAAWpvB,MACnBC,EAASmvB,EAAWnvB,QAEW,IAA/BquB,EAAQt0C,QAAQ,WAAoBimB,EACtCsvB,EAAUtvB,OAASA,GACwB,IAAlCquB,EAAQt0C,QAAQ,cAAuBimB,IAChDsvB,EAAUC,UAAYvvB,IAGU,IAA9BquB,EAAQt0C,QAAQ,UAAmBgmB,EACrCuvB,EAAUvvB,MAAQA,GACwB,IAAjCsuB,EAAQt0C,QAAQ,aAAsBgmB,IAC/CuvB,EAAUE,SAAWzvB,GAIzB,OAAOuvB,IACN,CAACjB,EAASc,IA7Bb,SAAwB/V,GACtBgW,EAAc,CACZrvB,MAAOqZ,EAAQwL,YACf5kB,OAAQoZ,EAAQ4G,iBDuBGyP,CAAgBpB,GACnCqB,EAAoB9b,EAAeqb,EAAkB,GACrDU,EAAeD,EAAkB,GACjCE,EAAsBF,EAAkB,GAS5C,IAAIG,ED3CU,cACd,IACIha,EAAajC,EADD,mBAAS,MACkB,GACvC4E,EAAS3C,EAAW,GACpB4C,EAAY5C,EAAW,GAEvBia,EAAS,mBAEb,SAASC,IACP,EAAI3d,OAAO0d,EAAO9iB,SA8DpB,OAvCA,qBAAU,WACRyL,EAAU,aACT,CAAC3B,IAEJ,qBAAU,WACR,OAAQ0B,GACN,IAAK,UACHwX,IAIAxX,IACFsX,EAAO9iB,QAAU,EAAkBkhB,GAAgC,KAAoBttC,MAAK,SAASqvC,IACnG,IAAIn3C,EAAOshC,EACX,OAAO,KAAoBj+B,MAAK,SAAkB+zC,GAChD,OACE,OAAQA,EAAS3uC,KAAO2uC,EAAS1wC,MAC/B,KAAK,EACH1G,EAAQq1C,GAAYp0C,QAAQy+B,IAC5B4B,EAAa+T,GAAYr1C,EAAQ,MAEJ,IAAXA,GAChB2/B,EAAU2B,GAGd,KAAK,EACL,IAAK,MACH,OAAO8V,EAAS1uC,UAGrByuC,WAGN,CAACzX,IACJ,qBAAU,WACR,OAAO,WACLuX,OAED,IACI,CAACvX,EA3DR,SAAsB1d,GACpBi1B,IACAD,EAAO9iB,QAAU,GAAI,WAEnByL,GAAU,SAAUl3B,GAClB,OAAQi3B,GACN,IAAK,QACH,MAAO,SAET,IAAK,SACH,MAAO,SAGX,OAAOj3B,KAETuZ,SAAoDA,SCgBhCq1B,CAAiBrZ,GAPzC,WACMuX,GACFuB,EAAoBrB,QAMpB6B,EAAqBxc,EAAeic,EAAmB,GACvDrX,EAAS4X,EAAmB,GAC5BC,EAAeD,EAAmB,GAGlCE,EAAoB,mBAWxB,SAAS3C,IACP,IAAI4C,EAEuC,QAA1CA,EAAoB1B,EAAS7hB,eAA2C,IAAtBujB,GAAwCA,EAAkB5C,aAG/G,SAAS6C,EAAgBC,EAAcC,GACrC,GAAe,UAAXlY,EAAoB,CACtB,IAAImY,EAAuBnC,EAAsBkC,GACjD1B,EAAoB2B,GAEhB5B,IAAqB4B,EACvB1vC,QAAQpC,UAAUK,MAAK,WACrByuC,OAGF0C,GAAa,WACX,IAAIO,EAEoD,QAAvDA,EAAwBN,EAAkBtjB,eAA+C,IAA1B4jB,GAA4CA,EAAsB59C,KAAKs9C,MAI3IzE,SAAkDA,EAAQ4E,EAAcC,IAK5E,IAAIpS,EAAS,EAAc,GAAIF,GAAU17B,IAWzC,SAASmuC,IACP,OAAO,IAAI5vC,SAAQ,SAAUpC,GAC3ByxC,EAAkBtjB,QAAUnuB,KAXhC,CAAC,cAAe,aAAc,cAAcL,SAAQ,SAAU41B,GAC5D,IAAI0c,EAAgBxS,EAAOlK,GAE3BkK,EAAOlK,GAAa,SAAUgF,EAASF,GAErC,OADAmX,IACOS,aAAqD,EAASA,EAAc1X,EAASF,OAWhG,aAAgB,WACToF,EAAO1D,YAAyB,WAAXpC,GACxB6X,MAED,CAAC/R,EAAO1D,WAAYpC,IAEvB,sBAA0BjG,GAAK,WAC7B,MAAO,CACLob,WAAYA,EACZ5W,WAAY,WACV,OAAO+X,EAAW9hB,aAKxB,IAAIsN,EAAc,EAAc,EAAc,EAAc,GAAIqV,GAAe,GAAI,CACjFnR,OAAQA,GACPtS,GAAQ,GAAI,CACb6kB,QAAoB,WAAXvY,GAAkC,WAAXA,GAAwB1B,EAAsB,OAAZz3B,EAClE2xC,cAA0B,WAAXxY,OAAsBn5B,EAAY,SAI/C4xC,GAAgB,IAEfrJ,aAAqC,EAASA,EAAMM,SAAuB,UAAX1P,GAAiC,WAAXA,IACzFyY,GAAgB,GAGlB,IAAI9E,EAAYthB,EAQhB,OANI,WAAeqmB,MAAMrmB,GAAY,IACnCshB,EAAY,gBAAoB,MAAO,CACrCpQ,UAAW,GAAGhkC,OAAOsmC,EAAW,aAC/BxT,IAGE,gBAAoB,GAAWx4B,OAAOgV,OAAO,CAClDyvB,QAASA,EACTvE,IAAKuc,GACJxQ,EAAQ,CACT9G,gBAAiBqZ,EACjBpZ,eAAgBoZ,EAChB7V,cAAesT,EACfpT,gBAAiB,GAAGnjC,OAAOsmC,EAAW,cACpC,SAAU5U,EAAM0nB,GAClB,IAAIC,EAAkB3nB,EAAKsS,UACvBsV,EAAc5nB,EAAKyC,MACnBolB,EAAkB,IAAWjT,EAAWtC,EAAWgT,EAAkBqC,GACzE,OAAO,gBAAoB,GAAO,CAChChzB,OAvGEqtB,GAIG8C,EAoGLj6C,IAAK,QACLi+B,IAAKsc,EACL/C,qBAAqB,EACrBF,SAAUqF,EACVrJ,MAAOA,EACPiE,QAAS2E,GACR,gBAAoB,MAAO,CAC5Bje,IAAK4e,EACLpV,UAAWuV,EACX7C,aAAcA,EACdC,aAAcA,EACdC,YAAaA,EACbC,aAAcA,EACd1iB,MAAO,EAAc,EAAc,GAAImlB,GAAc/W,IACpD6R,UAGPiC,GAAW5tC,YAAc,aACV,UEjLX+wC,GAAQ,cAAiB,SAAU7uC,EAAO6vB,GAC5C,IAAIif,EAAa,YAAS,GAAI9uC,GAG9B,OAAO,gBAAoB,MAAO,KAAM,gBAAoB67B,GAAMlsC,OAAOgV,OAAO,GAAImqC,IAAc,gBAAoB,GAAYn/C,OAAOgV,OAAO,GAAImqC,EAAY,CAC9Jjf,IAAKA,SAGTgf,GAAM/wC,YAAc,QACL,UCXA,GADM,gBAAoB,MCkBzC,SAAS8W,MAET,SAASm6B,KACP,MAAO,GAGT,SAASC,KACP,OAAOt2C,OAAOC,SAGhB,IAAIs2C,GAAe,CAAC,UAAW,cAAe,eAAgB,eAAgB,eAAgB,UAAW,SAAU,iBAK5G,SAASC,GAAgBC,GAC9B,IAAIC,EAAuB,SAAUlpB,GACnCE,EAAUgpB,EAASlpB,GAEnB,IAAI4R,EAASvJ,EAAa6gB,GAE1B,SAASA,EAAQpvC,GACf,IAAI2f,EAkUA0vB,EAiBJ,OAjVA1pB,EAAgB9wB,KAAMu6C,IAEtBzvB,EAAQmY,EAAOxnC,KAAKuE,KAAMmL,IACpBsvC,SAAW,IAAMC,YACvB5vB,EAAM6vB,WAAa,IAAMD,YAEzB5vB,EAAMosB,aAAe,SAAUh8C,GAC7B,IAAI0/C,EAAkB9vB,EAAM3f,MAAMyvC,gBAElC9vB,EAAM+vB,WAAW,eAAgB3/C,GAEjC4vB,EAAMgwB,sBAAqB,EAAMF,EAAiBA,EAAkB,KAAO1/C,IAG7E4vB,EAAMiwB,YAAc,SAAU7/C,GAC5B4vB,EAAM+vB,WAAW,cAAe3/C,GAEhC4vB,EAAMkwB,SAAS9/C,IAGjB4vB,EAAMqsB,aAAe,SAAUj8C,GAC7B4vB,EAAM+vB,WAAW,eAAgB3/C,GAEjC4vB,EAAMgwB,sBAAqB,EAAOhwB,EAAM3f,MAAM8vC,kBAGhDnwB,EAAMowB,kBAAoB,WACxBpwB,EAAMqwB,mBAGRrwB,EAAMswB,kBAAoB,SAAUlgD,GAClC,IAAImgD,EAIAngD,EAAEogD,gBAAkBpgD,EAAEogD,cAAcp8B,YAAcsb,EAA8D,QAApD6gB,EAAwBvwB,EAAM2vB,SAAShlB,eAA+C,IAA1B4lB,OAAmC,EAASA,EAAsB7b,aAActkC,EAAEogD,gBAI9MxwB,EAAMgwB,sBAAqB,EAAOhwB,EAAM3f,MAAM8vC,kBAGhDnwB,EAAMywB,QAAU,SAAUrgD,GACxB4vB,EAAM+vB,WAAW,UAAW3/C,GAG5B4vB,EAAMqwB,kBAEFrwB,EAAM0wB,kBACR1wB,EAAM2wB,UAAY13B,KAAKC,MAEvB8G,EAAMgwB,sBAAqB,EAAMhwB,EAAM3f,MAAMuwC,cAIjD5wB,EAAMssB,YAAc,SAAUl8C,GAC5B4vB,EAAM+vB,WAAW,cAAe3/C,GAEhC4vB,EAAM6wB,aAAe53B,KAAKC,OAG5B8G,EAAMusB,aAAe,SAAUn8C,GAC7B4vB,EAAM+vB,WAAW,eAAgB3/C,GAEjC4vB,EAAM8wB,aAAe73B,KAAKC,OAG5B8G,EAAM+wB,OAAS,SAAU3gD,GACvB4vB,EAAM+vB,WAAW,SAAU3/C,GAE3B4vB,EAAMqwB,kBAEFrwB,EAAMgxB,gBACRhxB,EAAMgwB,sBAAqB,EAAOhwB,EAAM3f,MAAM4wC,YAIlDjxB,EAAMkxB,cAAgB,SAAU9gD,GAC9BA,EAAE+gD,iBAEFnxB,EAAM+vB,WAAW,gBAAiB3/C,GAElC4vB,EAAMoxB,iBAAgB,EAAMhhD,IAG9B4vB,EAAMqxB,mBAAqB,WACrBrxB,EAAMsxB,uBACRtxB,EAAMuxB,SAIVvxB,EAAMwxB,QAAU,SAAU3a,GAIxB,GAHA7W,EAAM+vB,WAAW,UAAWlZ,GAGxB7W,EAAM2wB,UAAW,CACnB,IAAIc,EAUJ,GARIzxB,EAAM6wB,cAAgB7wB,EAAM8wB,aAC9BW,EAAUr6C,KAAKC,IAAI2oB,EAAM6wB,aAAc7wB,EAAM8wB,cACpC9wB,EAAM6wB,aACfY,EAAUzxB,EAAM6wB,aACP7wB,EAAM8wB,eACfW,EAAUzxB,EAAM8wB,cAGd15C,KAAKwB,IAAI64C,EAAUzxB,EAAM2wB,WAAa,GACxC,OAGF3wB,EAAM2wB,UAAY,EAGpB3wB,EAAM6wB,aAAe,EACrB7wB,EAAM8wB,aAAe,EAIjB9wB,EAAM0xB,kBAAoB1xB,EAAM2xB,iBAAmB3xB,EAAMgxB,iBAAmBna,GAASA,EAAMsa,gBAC7Fta,EAAMsa,iBAGR,IAAIS,GAAe5xB,EAAMvlB,MAAMi1C,cAE3B1vB,EAAM2xB,kBAAoBC,GAAeA,GAAe5xB,EAAM0xB,kBAChE1xB,EAAMoxB,iBAAiBpxB,EAAMvlB,MAAMi1C,aAAc7Y,IAIrD7W,EAAM6xB,iBAAmB,WAQrB,IAAIC,GAPN9xB,EAAM+xB,mBAAoB,EAC1B19B,aAAa2L,EAAMgyB,kBACnBhyB,EAAMgyB,iBAAmBj5C,OAAOqb,YAAW,WACzC4L,EAAM+xB,mBAAoB,IACzB,GAEC/xB,EAAM1lB,WAGPw3C,EAAgB9xB,EAAM1lB,SAASu3C,iBAAiB95C,MAAM+5C,EAAev8C,YAI1EyqB,EAAMiyB,gBAAkB,SAAUpb,GAChC,IAAI7W,EAAM3f,MAAM+7B,MAASpc,EAAM3f,MAAM6xC,aAArC,CAIA,IAAIn2B,EAAS8a,EAAM9a,OAEf4T,EAAO3P,EAAMksB,iBAEbiG,EAAYnyB,EAAMoyB,kBAEjB1iB,EAASC,EAAM5T,IAAY2T,EAASyiB,EAAWp2B,IAAYiE,EAAM+xB,mBACpE/xB,EAAMuxB,UAIVvxB,EAAMksB,eAAiB,WACrB,IAAImG,EAAoBryB,EAAM3f,MAAMgyC,kBAEpC,GAAIA,EACF,OAAOA,EAAkBryB,EAAM6vB,WAAWllB,SAG5C,IACE,IAAI2nB,EAAU1iB,EAAY5P,EAAM6vB,WAAWllB,SAE3C,GAAI2nB,EACF,OAAOA,EAET,MAAOz4C,IAGT,OAAO,IAAS+1B,YAAY,YAAuB5P,KAGrDA,EAAMuyB,2BAA6B,SAAUhN,GAC3C,IAAI7L,EAAY,GACZ0B,EAAcpb,EAAM3f,MACpBmyC,EAAiBpX,EAAYoX,eAC7BC,EAAoBrX,EAAYqX,kBAChCzW,EAAYZ,EAAYY,UACxB0W,EAAatX,EAAYsX,WACzBH,EAA6BnX,EAAYmX,2BAU7C,OARIC,GAAkBC,GACpB/Y,EAAUpjC,KpCzNb,SAAgCm8C,EAAmBzW,EAAWuJ,EAAOjU,GAI1E,IAHA,IAAIuU,EAASN,EAAMM,OACf8M,EAAa3iD,OAAOsD,KAAKm/C,GAEpBhiD,EAAI,EAAGA,EAAIkiD,EAAW9iD,OAAQY,GAAK,EAAG,CAC7C,IAAImiD,EAAYD,EAAWliD,GAE3B,GAAI0gC,EAAWshB,EAAkBG,GAAW/M,OAAQA,EAAQvU,GAC1D,MAAO,GAAG57B,OAAOsmC,EAAW,eAAetmC,OAAOk9C,GAItD,MAAO,GoC6MgBC,CAAuBJ,EAAmBzW,EAAWuJ,EAAOmN,IAGzEH,GACF7Y,EAAUpjC,KAAKi8C,EAA2BhN,IAGrC7L,EAAU50B,KAAK,MAGxBkb,EAAM8yB,aAAe,WACnB,IAAIC,EAAe/yB,EAAM3f,MACrB27B,EAAY+W,EAAa/W,UACzBiQ,EAAqB8G,EAAa9G,mBAClC+G,EAAiBD,EAAaC,eAC9BC,EAAeF,EAAaE,aAC5BC,EAAcH,EAAaG,YAC3BC,EAAiBJ,EAAaI,eAC9BC,EAAsBL,EAAaK,oBACnCC,EAAaN,EAAaM,WAC1BjX,EAAO2W,EAAa3W,KACpBE,EAAgByW,EAAazW,cAC7BC,EAAqBwW,EAAaxW,mBAClCF,EAAa0W,EAAa1W,WAC1BF,EAAS4W,EAAa5W,OACtBmX,EAAQP,EAAaO,MACrBtH,EAAU+G,EAAa/G,QACvB0G,EAAaK,EAAaL,WAC1Ba,EAAcvzB,EAAMvlB,MACpBi1C,EAAe6D,EAAY7D,aAC3BtG,EAAQmK,EAAYnK,MAEpB7D,EAAQvlB,EAAMwzB,gBAEdC,EAAa,GAYjB,OAVIzzB,EAAM0zB,uBACRD,EAAWrH,aAAepsB,EAAMowB,mBAG9BpwB,EAAM2zB,uBACRF,EAAWpH,aAAersB,EAAMswB,mBAGlCmD,EAAWnH,YAActsB,EAAM6xB,iBAC/B4B,EAAWlH,aAAevsB,EAAM6xB,iBACzB,IAAMvxC,cAAc,GAAOtQ,OAAOgV,OAAO,CAC9Cg3B,UAAWA,EACXiQ,mBAAoBA,EACpBxX,QAASib,EACTtG,MAAOsJ,GAActJ,EACrB1P,UAAWsZ,EACXzN,MAAOA,EACPiE,QAASyJ,EACT3gB,UAAW6gB,EACXhH,sBAAuBnsB,EAAMuyB,4BAC5BkB,EAAY,CACbzH,QAASA,EACTE,eAAgBlsB,EAAMksB,eACtBriB,MAAOwpB,EACPjX,KAAMA,EACND,OAAQA,EACRhJ,eAAgBigB,EAChB9W,cAAeA,EACfC,mBAAoBA,EACpBF,WAAYA,EACZnM,IAAKlQ,EAAM2vB,SACX1T,OAAQiX,IACW,mBAAVI,EAAuBA,IAAUA,IAG9CtzB,EAAM4zB,aAAe,SAAUC,GAC7B,EAAI9jB,OAAO/P,EAAM8zB,UACjB,IAMIC,EANAC,EAAeh0B,EAAM3f,MACrB4zC,EAAoBD,EAAaC,kBACjCrR,EAAcoR,EAAapR,YAE3B0P,EAAUtyB,EAAMksB,iBAIf+H,GAEM3B,GAAwC,IAA7B2B,EAAkBpkD,UAItCkkD,EAAYE,EAAkB3B,IAL9ByB,EAAYnR,IAAc3pC,KAQxB86C,EACFA,EAAUG,YAAYL,GAGtB7zB,EAAM8zB,SAAW,GAAI,WACnB9zB,EAAM4zB,aAAaC,OAKzB7zB,EAAM2Q,aAAe,WACnB,IAAIkjB,EAAiB76C,SAASsH,cAAc,OAU5C,OAPAuzC,EAAehqB,MAAMjN,SAAW,WAChCi3B,EAAehqB,MAAMrM,IAAM,IAC3Bq2B,EAAehqB,MAAMxM,KAAO,IAC5Bw2B,EAAehqB,MAAMnM,MAAQ,OAE7BsC,EAAM4zB,aAAaC,GAEZA,GAGT7zB,EAAMkwB,SAAW,SAAU9G,GACRppB,EAAM3f,MAAMqyC,YACTtJ,GAEpBppB,EAAMkb,SAAS,CACbkO,MAAO,CACLf,MAAOe,EAAMf,MACbC,MAAOc,EAAMd,UAKnBtoB,EAAMm0B,mBAAqB,WACrBn0B,EAAMvlB,MAAM25C,mBAAqBp0B,EAAMvlB,MAAMi1C,cAC/C1vB,EAAM3f,MAAMg0C,wBAAwBr0B,EAAMvlB,MAAMi1C,eAOlDA,EADE,iBAAkBrvC,IACHA,EAAMqvC,eAENrvC,EAAMi0C,oBAGzBt0B,EAAMvlB,MAAQ,CACZ25C,iBAAkB1E,EAClBA,aAAcA,GAEhBJ,GAAanzC,SAAQ,SAAU7J,GAC7B0tB,EAAM,OAAOtqB,OAAOpD,IAAM,SAAUlC,GAClC4vB,EAAM+vB,WAAWz9C,EAAGlC,OAGjB4vB,EAqWT,OAlWAkF,EAAauqB,EAAS,CAAC,CACrBx9C,IAAK,oBACLb,MAAO,WACL8D,KAAK+M,uBAEN,CACDhQ,IAAK,qBACLb,MAAO,WACL,IAOMmjD,EAPFl0C,EAAQnL,KAAKmL,MAMjB,GALYnL,KAAKuF,MAKPi1C,aAyBR,OAtBKx6C,KAAKs/C,sBAAwBt/C,KAAKy8C,kBAAmBz8C,KAAKo8C,wBAC7DiD,EAAkBl0C,EAAMuiC,cACxB1tC,KAAKs/C,oBAAsB,EAAiBD,EAAiB,YAAar/C,KAAK+8C,kBAI5E/8C,KAAKu/C,sBACRF,EAAkBA,GAAmBl0C,EAAMuiC,cAC3C1tC,KAAKu/C,oBAAsB,EAAiBF,EAAiB,aAAcr/C,KAAK+8C,mBAI7E/8C,KAAKw/C,4BAA8Bx/C,KAAKo8C,wBAC3CiD,EAAkBA,GAAmBl0C,EAAMuiC,cAC3C1tC,KAAKw/C,2BAA6B,EAAiBH,EAAiB,SAAUr/C,KAAKm8C,2BAIhFn8C,KAAKy/C,4BAA8Bz/C,KAAKo8C,wBAC3Cp8C,KAAKy/C,2BAA6B,EAAiB57C,OAAQ,OAAQ7D,KAAKm8C,sBAM5En8C,KAAK0/C,wBAEN,CACD3iD,IAAK,uBACLb,MAAO,WACL8D,KAAKm7C,kBACLn7C,KAAK0/C,sBACLvgC,aAAanf,KAAK88C,oBAEnB,CACD//C,IAAK,kBACLb,MAAO,WACL,IAAIyjD,EAGJ,OAA6D,QAApDA,EAAyB3/C,KAAKy6C,SAAShlB,eAAgD,IAA3BkqB,OAAoC,EAASA,EAAuBngB,eAAiB,OAE3J,CACDziC,IAAK,gBACLb,MAAO,WACL,IAAIiP,EAAQnL,KAAKmL,MACbmyC,EAAiBnyC,EAAMmyC,eACvBsC,EAAaz0C,EAAMy0C,WACnBrC,EAAoBpyC,EAAMoyC,kBAE9B,OAAID,GAAkBC,EpCxbvB,SAA+BA,EAAmBsC,EAAcxP,GAErE,OAAO,EAAc,EAAc,GADnBkN,EAAkBsC,IAAiB,IACAxP,GoCubpCyP,CAAsBvC,EAAmBD,EAAgBsC,GAG3DA,IAOR,CACD7iD,IAAK,kBACLb,MAAO,SAAyBs+C,EAAc7Y,GAC5C,IAAI6b,EAAax9C,KAAKmL,MAAMqyC,WACxB0B,EAAmBl/C,KAAKuF,MAAMi1C,aAClCx6C,KAAKm7C,kBAED+D,IAAqB1E,IACjB,iBAAkBx6C,KAAKmL,OAC3BnL,KAAKgmC,SAAS,CACZwU,aAAcA,EACd0E,iBAAkBA,IAItBl/C,KAAKmL,MAAM40C,qBAAqBvF,IAI9BgD,GAAc7b,GAChB3hC,KAAKg7C,SAASrZ,KAGjB,CACD5kC,IAAK,uBACLb,MAAO,SAA8BqjC,EAASygB,EAAQre,GACpD,IAAIpO,EAASvzB,KAET2kB,EAAiB,IAATq7B,EAGZ,GAFAhgD,KAAKm7C,kBAEDx2B,EAAO,CACT,IAAIuvB,EAAQvS,EAAQ,CAClBwR,MAAOxR,EAAMwR,MACbC,MAAOzR,EAAMyR,OACX,KACJpzC,KAAKigD,WAAap8C,OAAOqb,YAAW,WAClCqU,EAAO2oB,gBAAgB3c,EAAS2U,GAEhC3gB,EAAO4nB,oBACNx2B,QAEH3kB,KAAKk8C,gBAAgB3c,EAASoC,KAGjC,CACD5kC,IAAK,kBACLb,MAAO,WACD8D,KAAKigD,aACP9gC,aAAanf,KAAKigD,YAClBjgD,KAAKigD,WAAa,QAGrB,CACDljD,IAAK,sBACLb,MAAO,WACD8D,KAAKs/C,sBACPt/C,KAAKs/C,oBAAoBhkB,SACzBt7B,KAAKs/C,oBAAsB,MAGzBt/C,KAAKw/C,6BACPx/C,KAAKw/C,2BAA2BlkB,SAChCt7B,KAAKw/C,2BAA6B,MAGhCx/C,KAAKy/C,6BACPz/C,KAAKy/C,2BAA2BnkB,SAChCt7B,KAAKy/C,2BAA6B,MAGhCz/C,KAAKu/C,sBACPv/C,KAAKu/C,oBAAoBjkB,SACzBt7B,KAAKu/C,oBAAsB,QAG9B,CACDxiD,IAAK,kBACLb,MAAO,SAAyBylC,GAC9B,IAAIue,EAAYlgD,KAAKmL,MAAMmoB,SAASnoB,MAChCA,EAAQnL,KAAKmL,MAEjB,OAAI+0C,EAAUve,IAAUx2B,EAAMw2B,GACrB3hC,KAAK,OAAOQ,OAAOmhC,IAGrBue,EAAUve,IAAUx2B,EAAMw2B,KAElC,CACD5kC,IAAK,gBACLb,MAAO,WACL,IAAIikD,EAAengD,KAAKmL,MACpBi1C,EAASD,EAAaC,OACtBC,EAAaF,EAAaE,WAC9B,OAAoC,IAA7BD,EAAO59C,QAAQ,WAAoD,IAAjC69C,EAAW79C,QAAQ,WAE7D,CACDzF,IAAK,sBACLb,MAAO,WACL,IAAIokD,EAAetgD,KAAKmL,MACpBi1C,EAASE,EAAaF,OACtBC,EAAaC,EAAaD,WAC9B,OAA0C,IAAnCD,EAAO59C,QAAQ,iBAAgE,IAAvC69C,EAAW79C,QAAQ,iBAEnE,CACDzF,IAAK,gBACLb,MAAO,WACL,IAAIqkD,EAAevgD,KAAKmL,MACpBi1C,EAASG,EAAaH,OACtBI,EAAaD,EAAaC,WAC9B,OAAoC,IAA7BJ,EAAO59C,QAAQ,WAAoD,IAAjCg+C,EAAWh+C,QAAQ,WAE7D,CACDzF,IAAK,qBACLb,MAAO,WACL,IAAIukD,EAAezgD,KAAKmL,MACpBi1C,EAASK,EAAaL,OACtBC,EAAaI,EAAaJ,WAC9B,OAAoC,IAA7BD,EAAO59C,QAAQ,WAAyD,IAAtC69C,EAAW79C,QAAQ,gBAE7D,CACDzF,IAAK,qBACLb,MAAO,WACL,IAAIwkD,EAAe1gD,KAAKmL,MACpBi1C,EAASM,EAAaN,OACtBI,EAAaE,EAAaF,WAC9B,OAAoC,IAA7BJ,EAAO59C,QAAQ,WAAyD,IAAtCg+C,EAAWh+C,QAAQ,gBAE7D,CACDzF,IAAK,gBACLb,MAAO,WACL,IAAIykD,EAAe3gD,KAAKmL,MACpBi1C,EAASO,EAAaP,OACtBC,EAAaM,EAAaN,WAC9B,OAAoC,IAA7BD,EAAO59C,QAAQ,WAAoD,IAAjC69C,EAAW79C,QAAQ,WAE7D,CACDzF,IAAK,eACLb,MAAO,WACL,IAAI0kD,EAAgB5gD,KAAKmL,MACrBi1C,EAASQ,EAAcR,OACvBI,EAAaI,EAAcJ,WAC/B,OAAoC,IAA7BJ,EAAO59C,QAAQ,WAAmD,IAAhCg+C,EAAWh+C,QAAQ,UAE7D,CACDzF,IAAK,kBACLb,MAAO,WAEH,IAAI2kD,EADF7gD,KAAKuF,MAAMi1C,eAGwC,QAApDqG,EAAyB7gD,KAAKy6C,SAAShlB,eAAgD,IAA3BorB,GAA6CA,EAAuBzK,gBAGpI,CACDr5C,IAAK,aACLb,MAAO,SAAoBkK,EAAMlL,GAC/B,IAAI4lD,EAAgB9gD,KAAKmL,MAAMmoB,SAASnoB,MAAM/E,GAE1C06C,GACFA,EAAc5lD,GAGhB,IAAIqoB,EAAWvjB,KAAKmL,MAAM/E,GAEtBmd,GACFA,EAASroB,KAGZ,CACD6B,IAAK,QACLb,MAAO,WACL8D,KAAKk8C,iBAAgB,KAEtB,CACDn/C,IAAK,SACLb,MAAO,WACL,IAAIs+C,EAAex6C,KAAKuF,MAAMi1C,aAC1BuG,EAAgB/gD,KAAKmL,MACrBmoB,EAAWytB,EAAcztB,SACzBoQ,EAAcqd,EAAcrd,YAC5B8Z,EAAauD,EAAcvD,WAC3BhZ,EAAYuc,EAAcvc,UAC1Bwc,EAAcD,EAAcC,YAC5BvvB,EAAQ,IAAM+B,SAASqhB,KAAKvhB,GAC5BjB,EAAgB,CAClBt1B,IAAK,WAGHiD,KAAKo8C,sBACP/pB,EAAc2pB,cAAgBh8C,KAAKg8C,cAEnC3pB,EAAc2pB,cAAgBh8C,KAAKihD,gBAAgB,iBAGjDjhD,KAAKy8C,iBAAmBz8C,KAAKw8C,iBAC/BnqB,EAAciqB,QAAUt8C,KAAKs8C,QAC7BjqB,EAAc+kB,YAAcp3C,KAAKo3C,YACjC/kB,EAAcglB,aAAer3C,KAAKq3C,eAElChlB,EAAciqB,QAAUt8C,KAAKihD,gBAAgB,WAC7C5uB,EAAc+kB,YAAcp3C,KAAKihD,gBAAgB,eACjD5uB,EAAcglB,aAAer3C,KAAKihD,gBAAgB,iBAGhDjhD,KAAKw+C,sBACPnsB,EAAc6kB,aAAel3C,KAAKk3C,aAE9BsG,IACFnrB,EAAc0oB,YAAc/6C,KAAK+6C,cAGnC1oB,EAAc6kB,aAAel3C,KAAKihD,gBAAgB,gBAGhDjhD,KAAKy+C,qBACPpsB,EAAc8kB,aAAen3C,KAAKm3C,aAElC9kB,EAAc8kB,aAAen3C,KAAKihD,gBAAgB,gBAGhDjhD,KAAKw7C,iBAAmBx7C,KAAK87C,gBAC/BzpB,EAAckpB,QAAUv7C,KAAKu7C,QAC7BlpB,EAAcwpB,OAAS77C,KAAK67C,SAE5BxpB,EAAckpB,QAAUv7C,KAAKihD,gBAAgB,WAC7C5uB,EAAcwpB,OAAS77C,KAAKihD,gBAAgB,WAG9C,IAAIC,EAAoB,IAAWzvB,GAASA,EAAMtmB,OAASsmB,EAAMtmB,MAAMq5B,UAAWA,GAE9E0c,IACF7uB,EAAcmS,UAAY0c,GAG5B,IxChpBmBC,EACrBC,EAAiBC,EAEjBj7C,EwC6oBM6zC,EAAa,EAAc,GAAI5nB,GxChpBhB8uB,EwCkpBJ1vB,ExC7oBD,mBAFhBrrB,EAAO,iBAAO+6C,GAAmBA,EAAgB/6C,KAAKA,KAAO+6C,EAAgB/6C,SAEN,QAAtCg7C,EAAkBh7C,EAAK7J,iBAA2C,IAApB6kD,OAA6B,EAASA,EAAgBn0C,SAK1G,mBAApBk0C,KAA4F,QAAvDE,EAAwBF,EAAgB5kD,iBAAiD,IAA1B8kD,OAAmC,EAASA,EAAsBp0C,UwCyoBzKgtC,EAAWjf,IxC9pBd,WACL,IAAK,IAAIsM,EAAOjnC,UAAU1F,OAAQ4sC,EAAO,IAAI9sC,MAAM6sC,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQnnC,UAAUmnC,GAGzB,OAAO,SAAUrT,GACfoT,EAAKtgC,SAAQ,SAAU+zB,GACrBD,EAAQC,EAAK7G,OwCupBQmtB,CAAWthD,KAAK26C,WAAYlpB,EAAMuJ,MAGrD,IACIumB,EADApM,EAAU,IAAMmB,aAAa7kB,EAAOwoB,GAexC,OAZIO,GAAgBx6C,KAAKy6C,SAAShlB,SAAWiO,KAC3C6d,EAAS,IAAMn2C,cAAckvC,EAAiB,CAC5Cv9C,IAAK,SACL0+B,aAAcz7B,KAAKy7B,aACnBD,UAAWx7B,KAAKi/C,oBACfj/C,KAAK49C,kBAGLpD,GAAgBwG,IACnBO,EAAS,MAGJ,IAAMn2C,cAAc,GAAeo2C,SAAU,CAClDtlD,MAAO,CACLygD,iBAAkB38C,KAAK28C,mBAExBxH,EAASoM,MAEZ,CAAC,CACHxkD,IAAK,2BACLb,MAAO,SAAkCg2B,EAAMuvB,GAC7C,IAAIjH,EAAetoB,EAAKsoB,aACpBkH,EAAW,GAOf,YALqB55C,IAAjB0yC,GAA8BiH,EAAUjH,eAAiBA,IAC3DkH,EAASlH,aAAeA,EACxBkH,EAASxC,iBAAmBuC,EAAUjH,cAGjCkH,MAIJnH,EA9rBkB,CA+rBzB,IAAMrtC,WA0BR,OAxBAqtC,EAAQoH,YAAc,GACtBpH,EAAQlvC,aAAe,CACrBy7B,UAAW,mBACXuW,2BAA4BnD,GAC5BxM,YAAayM,GACb4F,qBAAsBhgC,GACtBo/B,wBAAyBp/B,GACzBg+B,aAAch+B,GACd+9B,eAAgB,GAChBlD,gBAAiB,EACjBK,gBAAiB,GACjBS,WAAY,EACZK,UAAW,IACXoC,WAAY,GACZpH,oBAAoB,EACpB6I,WAAY,GACZR,qBAAqB,EACrBlY,MAAM,EACN8V,cAAc,EACdoD,OAAQ,GACRC,WAAY,GACZG,WAAY,GACZQ,aAAa,GAERzG,EAEM,UAAAF,GAAgB,I,qBC9vB/B9/C,EAAQ4B,YAAa,EACC5B,EAAQqnD,gBAAkB,CAC9C/uB,KAAM,iBACNE,KAAM,iBACNJ,MAAO,mBAHT,IAKIhB,EAAYp3B,EAAQo3B,UAAY,CAClCkwB,KAAM,OACNhvB,KAAM,OACNivB,KAAM,OACN/uB,KAAM,OACNa,KAAM,OACNC,KAAM,OACNhC,SAAU,WACVD,OAAQ,SACRG,MAAO,QACPY,MAAO,SAiBLovB,GAfkBxnD,EAAQynD,gBAAkBlnD,OAAOsD,KAAKuzB,GAAWzlB,KAAI,SAAUjR,GACnF,OAAO02B,EAAU12B,MAEEV,EAAQ0nD,eAAiB,CAC5CC,QAAS,UACTC,SAAU,UACVC,KAAM,OACNC,UAAW,aACXC,WAAY,YACZC,UAAW,WACXC,KAAM,OACNC,SAAU,WACVC,IAAK,MACLC,IAAK,OAEapoD,EAAQwnD,cAAgB,CAC1Ca,UAAW,YACXC,QAAS,UACTC,MAAO,YACPC,gBAAiB,kBACjBC,YAAa,cACb,aAAc,YACdC,SAAU,WACVC,SAAU,aAEO3oD,EAAQ4oD,aAAe,CACxCC,cAAe,eACfC,MAAO,QACPC,0BAA2B,0BAC3BC,uBAAwB,sBACxBC,eAAgB,iBAECjpD,EAAQkpD,aAAe3oD,OAAOsD,KAAK2jD,GAAev6B,QAAO,SAAUhtB,EAAKuC,GAEzF,OADAvC,EAAIunD,EAAchlD,IAAQA,EACnBvC,IACN,IACqBD,EAAQmpD,kBAAoB,CAAC/xB,EAAUE,SAAUF,EAAUC,OAAQD,EAAUI,OAC9Ex3B,EAAQopD,iBAAmB,qB,kCC7ClD,IAAIxlD,EAAI,mBAAsBnC,QAAUA,OAAO4nD,IAC3CjoD,EAAIwC,EAAInC,OAAO4nD,IAAI,iBAAmB,MACtChoD,EAAIuC,EAAInC,OAAO4nD,IAAI,gBAAkB,MACrC1oD,EAAIiD,EAAInC,OAAO4nD,IAAI,kBAAoB,MACvCrmD,EAAIY,EAAInC,OAAO4nD,IAAI,qBAAuB,MAC1CjmD,EAAIQ,EAAInC,OAAO4nD,IAAI,kBAAoB,MACvCxmD,EAAIe,EAAInC,OAAO4nD,IAAI,kBAAoB,MACvC7lD,EAAII,EAAInC,OAAO4nD,IAAI,iBAAmB,MACtCpoD,EAAI2C,EAAInC,OAAO4nD,IAAI,oBAAsB,MACzCloD,EAAIyC,EAAInC,OAAO4nD,IAAI,yBAA2B,MAC9CxoD,EAAI+C,EAAInC,OAAO4nD,IAAI,qBAAuB,MAC1CnnD,EAAI0B,EAAInC,OAAO4nD,IAAI,kBAAoB,MACvCh2B,EAAIzvB,EAAInC,OAAO4nD,IAAI,uBAAyB,MAC5CvoD,EAAI8C,EAAInC,OAAO4nD,IAAI,cAAgB,MACnCzoD,EAAIgD,EAAInC,OAAO4nD,IAAI,cAAgB,MACnCnmD,EAAIU,EAAInC,OAAO4nD,IAAI,eAAiB,MACpCnlD,EAAIN,EAAInC,OAAO4nD,IAAI,qBAAuB,MAC1C1lD,EAAIC,EAAInC,OAAO4nD,IAAI,mBAAqB,MACxC/lD,EAAIM,EAAInC,OAAO4nD,IAAI,eAAiB,MAExC,SAASpkD,EAAExC,GACT,GAAI,iBAAoBA,GAAK,OAASA,EAAG,CACvC,IAAIM,EAAIN,EAAEy6B,SAEV,OAAQn6B,GACN,KAAK3B,EACH,OAAQqB,EAAIA,EAAEoJ,MACZ,KAAK5K,EACL,KAAKE,EACL,KAAKR,EACL,KAAKyC,EACL,KAAKJ,EACL,KAAKd,EACH,OAAOO,EAET,QACE,OAAQA,EAAIA,GAAKA,EAAEy6B,UACjB,KAAK15B,EACL,KAAK3C,EACL,KAAKD,EACL,KAAKE,EACL,KAAK+B,EACH,OAAOJ,EAET,QACE,OAAOM,GAKjB,KAAK1B,EACH,OAAO0B,IAKf,SAASqB,EAAE3B,GACT,OAAOwC,EAAExC,KAAOtB,EAGlBnB,EAAQspD,UAAYroD,EACpBjB,EAAQupD,eAAiBpoD,EACzBnB,EAAQwpD,gBAAkBhmD,EAC1BxD,EAAQypD,gBAAkB5mD,EAC1B7C,EAAQmwB,QAAU/uB,EAClBpB,EAAQ0pD,WAAa7oD,EACrBb,EAAQ2pD,SAAWhpD,EACnBX,EAAQ4pD,KAAOhpD,EACfZ,EAAQ6pD,KAAO/oD,EACfd,EAAQ8pD,OAASzoD,EACjBrB,EAAQ+pD,SAAW3mD,EACnBpD,EAAQgqD,WAAahnD,EACrBhD,EAAQiqD,SAAW/nD,EAEnBlC,EAAQkqD,YAAc,SAAUznD,GAC9B,OAAO2B,EAAE3B,IAAMwC,EAAExC,KAAOxB,GAG1BjB,EAAQmqD,iBAAmB/lD,EAE3BpE,EAAQoqD,kBAAoB,SAAU3nD,GACpC,OAAOwC,EAAExC,KAAOe,GAGlBxD,EAAQqqD,kBAAoB,SAAU5nD,GACpC,OAAOwC,EAAExC,KAAOI,GAGlB7C,EAAQsqD,UAAY,SAAU7nD,GAC5B,MAAO,iBAAoBA,GAAK,OAASA,GAAKA,EAAEy6B,WAAa97B,GAG/DpB,EAAQuqD,aAAe,SAAU9nD,GAC/B,OAAOwC,EAAExC,KAAO5B,GAGlBb,EAAQwqD,WAAa,SAAU/nD,GAC7B,OAAOwC,EAAExC,KAAO9B,GAGlBX,EAAQyqD,OAAS,SAAUhoD,GACzB,OAAOwC,EAAExC,KAAO7B,GAGlBZ,EAAQ0qD,OAAS,SAAUjoD,GACzB,OAAOwC,EAAExC,KAAO3B,GAGlBd,EAAQ2qD,SAAW,SAAUloD,GAC3B,OAAOwC,EAAExC,KAAOpB,GAGlBrB,EAAQ4qD,WAAa,SAAUnoD,GAC7B,OAAOwC,EAAExC,KAAOW,GAGlBpD,EAAQ6qD,aAAe,SAAUpoD,GAC/B,OAAOwC,EAAExC,KAAOO,GAGlBhD,EAAQ8qD,WAAa,SAAUroD,GAC7B,OAAOwC,EAAExC,KAAOP,GAGlBlC,EAAQ+qD,mBAAqB,SAAUtoD,GACrC,MAAO,iBAAoBA,GAAK,mBAAsBA,GAAKA,IAAM9B,GAAK8B,IAAMtB,GAAKsB,IAAMW,GAAKX,IAAMO,GAAKP,IAAMP,GAAKO,IAAM4wB,GAAK,iBAAoB5wB,GAAK,OAASA,IAAMA,EAAEy6B,WAAat8B,GAAK6B,EAAEy6B,WAAap8B,GAAK2B,EAAEy6B,WAAar6B,GAAKJ,EAAEy6B,WAAa15B,GAAKf,EAAEy6B,WAAar8B,GAAK4B,EAAEy6B,WAAah5B,GAAKzB,EAAEy6B,WAAav5B,GAAKlB,EAAEy6B,WAAa55B,GAAKb,EAAEy6B,WAAah6B,IAGtVlD,EAAQgrD,OAAS/lD,G,kCC1IF,SAASgmD,EAA8Bz1B,EAAQ2U,GAC5D,GAAc,MAAV3U,EAAgB,MAAO,GAC3B,IAEIhzB,EAAKxB,EAFLsrB,EAAS,GACT4+B,EAAa3qD,OAAOsD,KAAK2xB,GAG7B,IAAKx0B,EAAI,EAAGA,EAAIkqD,EAAW9qD,OAAQY,IACjCwB,EAAM0oD,EAAWlqD,GACbmpC,EAASliC,QAAQzF,IAAQ,IAC7B8pB,EAAO9pB,GAAOgzB,EAAOhzB,IAGvB,OAAO8pB,EAZT,mC,2DCAA,2zBAQA,SAASppB,IACP,OAAQA,EAAI3C,OAAOgV,QAAU,SAAU5U,GACrC,IAAK,IAAIC,EAAI,EAAGA,EAAIkF,UAAU1F,OAAQQ,IAAK,CACzC,IAAIC,EAAIiF,UAAUlF,GAElB,IAAK,IAAIE,KAAKD,EACZN,OAAOyB,UAAUC,eAAef,KAAKL,EAAGC,KAAOH,EAAEG,GAAKD,EAAEC,IAI5D,OAAOH,IACN2H,MAAM7C,KAAMK,WAGjB,IAAI1C,EAAI,SAAWzC,EAAGC,GACpB,IAAK,IAAIC,EAAI,CAACF,EAAE,IAAKG,EAAI,EAAGC,EAAIH,EAAER,OAAQU,EAAIC,EAAGD,GAAK,EACpDD,EAAEgG,KAAKjG,EAAEE,GAAIH,EAAEG,EAAI,IAGrB,OAAOD,GAEL4C,EAAI,SAAW7C,GACjB,OAAO,OAASA,GAAK,iBAAmBA,GAAK,qBAAuBA,EAAEwB,SAAWxB,EAAEwB,WAAa7B,OAAOyB,UAAUI,SAASlB,KAAKN,MAAQ,iBAAEA,IAEvIsD,EAAI3D,OAAOif,OAAO,IAClB5b,EAAIrD,OAAOif,OAAO,IAEtB,SAAS2rC,EAAExqD,GACT,MAAO,mBAAqBA,EAG9B,SAASuE,EAAEvE,GACT,OAA6EA,EAAE+N,aAAe/N,EAAED,MAAQ,YAG1G,SAASqD,EAAEpD,GACT,OAAOA,GAAK,iBAAmBA,EAAEyqD,kBAGnC,IAAI7mD,OAAI,IAAsBkF,IAAY,GAAY4hD,mBAAqB,GAAYC,UAAY,cAC/FjnD,EAAI,QACJD,EAAI,oBAAsBkF,QAAU,gBAAiBA,OACrD7E,EAAI,kBAAoB8mD,mBAAqBA,wBAAqB,IAAsB9hD,IAAY,GAAY+hD,6BAA+B,GAAYD,qBAAsB,EACjL3mD,EAAI,GACJ6mD,EAAI,WACN,OAAiD,MAgCnD,SAASC,EAAE/qD,GACT,IAAK,IAAIC,EAAIkF,UAAU1F,OAAQS,EAAI,IAAIX,MAAMU,EAAI,EAAIA,EAAI,EAAI,GAAIE,EAAI,EAAGA,EAAIF,EAAGE,IAC7ED,EAAEC,EAAI,GAAKgF,UAAUhF,GAGvB,MAA8C,IAAIqG,MAAM,+CAAiDxG,EAAI,0BAA4BE,EAAET,OAAS,EAAI,UAAYS,EAAEwU,KAAK,MAAQ,KAGrL,IAAI7R,EAAI,SAAW7C,GACjB,IAAIC,EAAI2I,SAASoiD,KACb9qD,EAAIF,GAAKC,EACTE,EAAIyI,SAASsH,cAAc,SAC3B9P,EAAI,SAAUJ,GAChB,IAAK,IAAIC,EAAID,EAAEirD,WAAY/qD,EAAID,EAAER,OAAQS,GAAK,EAAGA,IAAK,CACpD,IAAIC,EAAIF,EAAEC,GACV,GAAIC,GAAK,IAAMA,EAAEquC,UAAYruC,EAAE+qD,aAAatnD,GAAI,OAAOzD,GAHnD,CAKND,GACEG,OAAI,IAAWD,EAAIA,EAAE+qD,YAAc,KAEvChrD,EAAEirD,aAAaxnD,EAAG,UAAWzD,EAAEirD,aAAa,sBAAuB,SACnE,IAAI5pD,EAAIspD,IACR,OAAOtpD,GAAKrB,EAAEirD,aAAa,QAAS5pD,GAAItB,EAAEmrD,aAAalrD,EAAGE,GAAIF,GAE5D6C,EAAI,WACN,SAAShD,EAAEA,GACT,IAAIC,EAAI6E,KAAK6hC,QAAU9jC,EAAE7C,GACzBC,EAAE6jD,YAAYl7C,SAAS0iD,eAAe,KAAMxmD,KAAKymD,MAAQ,SAAUvrD,GACjE,GAAIA,EAAEurD,MAAO,OAAOvrD,EAAEurD,MAEtB,IAAK,IAAItrD,EAAI2I,SAAS4iD,YAAatrD,EAAI,EAAGC,EAAIF,EAAER,OAAQS,EAAIC,EAAGD,IAAK,CAClE,IAAIE,EAAIH,EAAEC,GACV,GAAIE,EAAEqrD,YAAczrD,EAAG,OAAOI,EAGhC2qD,EAAE,IARqD,CASvD9qD,GAAI6E,KAAKrF,OAAS,EAGtB,IAAIQ,EAAID,EAAEqB,UACV,OAAOpB,EAAEyrD,WAAa,SAAU1rD,EAAGC,GACjC,IACE,OAAO6E,KAAKymD,MAAMG,WAAWzrD,EAAGD,GAAI8E,KAAKrF,UAAU,EACnD,MAAOO,GACP,OAAO,IAERC,EAAE0rD,WAAa,SAAU3rD,GAC1B8E,KAAKymD,MAAMI,WAAW3rD,GAAI8E,KAAKrF,UAC9BQ,EAAE2rD,QAAU,SAAU5rD,GACvB,IAAIC,EAAI6E,KAAKymD,MAAMM,SAAS7rD,GAC5B,YAAO,IAAWC,GAAK,iBAAmBA,EAAE62B,QAAU72B,EAAE62B,QAAU,IACjE92B,EA3BG,GA6BJo1C,EAAI,WACN,SAASp1C,EAAEA,GACT,IAAIC,EAAI6E,KAAK6hC,QAAU9jC,EAAE7C,GACzB8E,KAAKgnD,MAAQ7rD,EAAEgrD,WAAYnmD,KAAKrF,OAAS,EAG3C,IAAIQ,EAAID,EAAEqB,UACV,OAAOpB,EAAEyrD,WAAa,SAAU1rD,EAAGC,GACjC,GAAID,GAAK8E,KAAKrF,QAAUO,GAAK,EAAG,CAC9B,IAAIE,EAAI0I,SAAS0iD,eAAerrD,GAC5BE,EAAI2E,KAAKgnD,MAAM9rD,GACnB,OAAO8E,KAAK6hC,QAAQ0kB,aAAanrD,EAAGC,GAAK,MAAO2E,KAAKrF,UAAU,EAGjE,OAAO,GACNQ,EAAE0rD,WAAa,SAAU3rD,GAC1B8E,KAAK6hC,QAAQ9F,YAAY/7B,KAAKgnD,MAAM9rD,IAAK8E,KAAKrF,UAC7CQ,EAAE2rD,QAAU,SAAU5rD,GACvB,OAAOA,EAAI8E,KAAKrF,OAASqF,KAAKgnD,MAAM9rD,GAAG+rD,YAAc,IACpD/rD,EAnBG,GAqBJmD,EAAI,WACN,SAASnD,EAAEA,GACT8E,KAAKknD,MAAQ,GAAIlnD,KAAKrF,OAAS,EAGjC,IAAIQ,EAAID,EAAEqB,UACV,OAAOpB,EAAEyrD,WAAa,SAAU1rD,EAAGC,GACjC,OAAOD,GAAK8E,KAAKrF,SAAWqF,KAAKknD,MAAMtsD,OAAOM,EAAG,EAAGC,GAAI6E,KAAKrF,UAAU,IACtEQ,EAAE0rD,WAAa,SAAU3rD,GAC1B8E,KAAKknD,MAAMtsD,OAAOM,EAAG,GAAI8E,KAAKrF,UAC7BQ,EAAE2rD,QAAU,SAAU5rD,GACvB,OAAOA,EAAI8E,KAAKrF,OAASqF,KAAKknD,MAAMhsD,GAAK,IACxCA,EAZG,GAcJsE,EAAI,WACN,SAAStE,EAAEA,GACT8E,KAAKmnD,WAAa,IAAIC,YAAY,KAAMpnD,KAAKrF,OAAS,IAAKqF,KAAKqnD,IAAMnsD,EAGxE,IAAIC,EAAID,EAAEqB,UACV,OAAOpB,EAAEmsD,aAAe,SAAUpsD,GAChC,IAAK,IAAIC,EAAI,EAAGC,EAAI,EAAGA,EAAIF,EAAGE,IAC5BD,GAAK6E,KAAKmnD,WAAW/rD,GAGvB,OAAOD,GACNA,EAAEosD,YAAc,SAAUrsD,EAAGC,GAC9B,GAAID,GAAK8E,KAAKmnD,WAAWxsD,OAAQ,CAC/B,IAAK,IAAIS,EAAI4E,KAAKmnD,WAAY9rD,EAAID,EAAET,OAAQW,EAAID,EAAGH,GAAKI,IACrDA,IAAM,GAAK,GAAK2qD,EAAE,GAAI,GAAK/qD,GAG9B8E,KAAKmnD,WAAa,IAAIC,YAAY9rD,GAAI0E,KAAKmnD,WAAWjkC,IAAI9nB,GAAI4E,KAAKrF,OAASW,EAE5E,IAAK,IAAIC,EAAIF,EAAGE,EAAID,EAAGC,IACrByE,KAAKmnD,WAAW5rD,GAAK,EAIzB,IAAK,IAAImB,EAAIsD,KAAKsnD,aAAapsD,EAAI,GAAI8B,EAAI,EAAGrB,EAAIR,EAAER,OAAQqC,EAAIrB,EAAGqB,IACjEgD,KAAKqnD,IAAIT,WAAWlqD,EAAGvB,EAAE6B,MAAQgD,KAAKmnD,WAAWjsD,KAAMwB,MAExDvB,EAAEqsD,WAAa,SAAUtsD,GAC1B,GAAIA,EAAI8E,KAAKrF,OAAQ,CACnB,IAAIQ,EAAI6E,KAAKmnD,WAAWjsD,GACpBE,EAAI4E,KAAKsnD,aAAapsD,GACtBG,EAAID,EAAID,EACZ6E,KAAKmnD,WAAWjsD,GAAK,EAErB,IAAK,IAAII,EAAIF,EAAGE,EAAID,EAAGC,IACrB0E,KAAKqnD,IAAIR,WAAWzrD,KAGvBD,EAAEssD,SAAW,SAAUvsD,GACxB,IAAIC,EAAI,GACR,GAAID,GAAK8E,KAAKrF,QAAU,IAAMqF,KAAKmnD,WAAWjsD,GAAI,OAAOC,EAEzD,IAAK,IAAIC,EAAI4E,KAAKmnD,WAAWjsD,GAAIG,EAAI2E,KAAKsnD,aAAapsD,GAAII,EAAID,EAAID,EAAGG,EAAIF,EAAGE,EAAID,EAAGC,IAClFJ,GAAK6E,KAAKqnD,IAAIP,QAAQvrD,GAAK,YAG7B,OAAOJ,GACND,EAhDG,GAkDJwsD,EAAI,IAAI5kC,IACRzjB,EAAI,IAAIyjB,IACRtV,EAAI,EACJhP,EAAI,SAAWtD,GACjB,GAAIwsD,EAAErkC,IAAInoB,GAAI,OAAOwsD,EAAE3rD,IAAIb,GAC3B,IAAIC,EAAIqS,IACR,OAA+Fk6C,EAAExkC,IAAIhoB,EAAGC,GAAIkE,EAAE6jB,IAAI/nB,EAAGD,GAAIC,GAEvHyyB,EAAI,SAAW1yB,GACjB,OAAOmE,EAAEtD,IAAIb,IAEXq1C,EAAI,SAAWr1C,EAAGC,GACpBA,GAAKqS,IAAMA,EAAIrS,EAAI,GAAIusD,EAAExkC,IAAIhoB,EAAGC,GAAIkE,EAAE6jB,IAAI/nB,EAAGD,IAE3C0E,EAAI,SAAWd,EAAI,iCACnB6oD,EAAI,IAAI3kD,OAAO,IAAMlE,EAAI,gDACzB8oD,EAAI,SAAW1sD,EAAGC,EAAGC,GACvB,IAAK,IAAIC,EAAGC,EAAIF,EAAE+F,MAAM,KAAM5F,EAAI,EAAGmB,EAAIpB,EAAEX,OAAQY,EAAImB,EAAGnB,KACvDF,EAAIC,EAAEC,KAAOL,EAAE2sD,aAAa1sD,EAAGE,IAGhCysD,EAAI,SAAW5sD,EAAGC,GACpB,IAAK,IAAIC,EAAID,EAAE22B,UAAU3wB,MAAM,aAAc9F,EAAI,GAAIC,EAAI,EAAGC,EAAIH,EAAET,OAAQW,EAAIC,EAAGD,IAAK,CACpF,IAAIoB,EAAItB,EAAEE,GAAGysD,OAEb,GAAIrrD,EAAG,CACL,IAAIM,EAAIN,EAAEwG,MAAMykD,GAEhB,GAAI3qD,EAAG,CACL,IAAIrB,EAAI,EAAI6T,SAASxS,EAAE,GAAI,IACvBM,EAAIN,EAAE,GACV,IAAMrB,IAAM40C,EAAEjzC,EAAG3B,GAAIisD,EAAE1sD,EAAGoC,EAAGN,EAAE,IAAK9B,EAAE8sD,SAAST,YAAY5rD,EAAGN,IAAKA,EAAEV,OAAS,OACzEU,EAAE+F,KAAK1E,MAIhBoD,EAAInB,EACJspD,EAAI,CACNC,UAAWvpD,EACXwpD,mBAAoBnpD,GAElBopD,EAAI,WACN,SAASltD,EAAEA,EAAGC,EAAGC,QACf,IAAWF,IAAMA,EAAI+sD,QAAI,IAAW9sD,IAAMA,EAAI,IAAK6E,KAAKC,QAAUxC,EAAE,GAAIwqD,EAAG,GAAI/sD,GAAI8E,KAAKqoD,GAAKltD,EAAG6E,KAAKsoD,MAAQ,IAAIxlC,IAAI1nB,IAAK4E,KAAKC,QAAQioD,UAAYvpD,GAAKmB,IAAMA,GAAI,EAAI,SAAU5E,GAC9K,IAAK,IAAIC,EAAI2I,SAASykD,iBAAiB3oD,GAAIxE,EAAI,EAAGC,EAAIF,EAAER,OAAQS,EAAIC,EAAGD,IAAK,CAC1E,IAAIE,EAAIH,EAAEC,GACVE,GAAK,WAAaA,EAAEktD,aAAa1pD,KAAOgpD,EAAE5sD,EAAGI,GAAIA,EAAEwgC,YAAcxgC,EAAEwgC,WAAWC,YAAYzgC,KAHwE,CAKpK0E,OAGJ9E,EAAEutD,WAAa,SAAUvtD,GACvB,OAAOsD,EAAEtD,IAGX,IAAIC,EAAID,EAAEqB,UACV,OAAOpB,EAAEutD,uBAAyB,SAAUvtD,EAAGC,GAC7C,YAAO,IAAWA,IAAMA,GAAI,GAAK,IAAIF,EAAEuC,EAAE,GAAIuC,KAAKC,QAAS,GAAI9E,GAAI6E,KAAKqoD,GAAIjtD,GAAK4E,KAAKsoD,YAAS,IAC9FntD,EAAEwtD,mBAAqB,SAAUztD,GAClC,OAAO8E,KAAKqoD,GAAGntD,IAAM8E,KAAKqoD,GAAGntD,IAAM,GAAK,GACvCC,EAAE6sD,OAAS,WACZ,OAAOhoD,KAAKqnD,MAAQrnD,KAAKqnD,KAAOjsD,GAAKD,EAAI6E,KAAKC,SAASioD,SAAU7sD,EAAIF,EAAEgtD,kBAAmB7sD,EAAIH,EAAE0rB,OAAQ3rB,EAAIE,EAAI,IAAIiD,EAAE/C,GAAKD,EAAI,IAAI6C,EAAE5C,GAAK,IAAIg1C,EAAEh1C,GAAI,IAAIkE,EAAEtE,KAC1J,IAAIA,EAAGC,EAAGC,EAAGC,EAAGC,GACfH,EAAEytD,aAAe,SAAU1tD,EAAGC,GAC/B,OAAO6E,KAAKsoD,MAAMjlC,IAAInoB,IAAM8E,KAAKsoD,MAAMvsD,IAAIb,GAAGmoB,IAAIloB,IACjDA,EAAE0sD,aAAe,SAAU3sD,EAAGC,GAC/B,GAAIqD,EAAEtD,GAAI8E,KAAKsoD,MAAMjlC,IAAInoB,GAAI8E,KAAKsoD,MAAMvsD,IAAIb,GAAG2tD,IAAI1tD,OAAQ,CACzD,IAAIC,EAAI,IAAI0tD,IACZ1tD,EAAEytD,IAAI1tD,GAAI6E,KAAKsoD,MAAMplC,IAAIhoB,EAAGE,KAE7BD,EAAEosD,YAAc,SAAUrsD,EAAGC,EAAGC,GACjC4E,KAAK6nD,aAAa3sD,EAAGC,GAAI6E,KAAKgoD,SAAST,YAAY/oD,EAAEtD,GAAIE,IACxDD,EAAE4tD,WAAa,SAAU7tD,GAC1B8E,KAAKsoD,MAAMjlC,IAAInoB,IAAM8E,KAAKsoD,MAAMvsD,IAAIb,GAAGooB,SACtCnoB,EAAE6tD,WAAa,SAAU9tD,GAC1B8E,KAAKgoD,SAASR,WAAWhpD,EAAEtD,IAAK8E,KAAK+oD,WAAW7tD,IAC/CC,EAAE8tD,SAAW,WACdjpD,KAAKqnD,SAAM,GACVlsD,EAAEwB,SAAW,WACd,OAAO,SAAUzB,GACf,IAAK,IAAIC,EAAID,EAAE8sD,SAAU5sD,EAAID,EAAER,OAAQU,EAAI,GAAIC,EAAI,EAAGA,EAAIF,EAAGE,IAAK,CAChE,IAAIC,EAAIqyB,EAAEtyB,GAEV,QAAI,IAAWC,EAAG,CAChB,IAAImB,EAAIxB,EAAEotD,MAAMvsD,IAAIR,GAChByB,EAAI7B,EAAEssD,SAASnsD,GAEnB,QAAI,IAAWoB,GAAK,IAAMM,EAAErC,OAAQ,CAClC,IAAIgB,EAAImD,EAAI,KAAOxD,EAAI,QAAUC,EAAI,KACjC+B,EAAI,QACR,IAAWZ,GAAKA,EAAEuK,SAAQ,SAAU/L,GAClCA,EAAEP,OAAS,IAAM2C,GAAKpC,EAAI,QACxBG,GAAK,GAAK2B,EAAIrB,EAAI,aAAe2B,EAAI,gBAK/C,OAAOjC,EAlBF,CAmBL2E,OACD9E,EA1DG,GA4DJyE,EAAI,SAAWzE,EAAGC,GACpB,IAAK,IAAIC,EAAID,EAAER,OAAQS,GACrBF,EAAI,GAAKA,EAAIC,EAAE+tD,aAAa9tD,GAG9B,OAAOF,GAELiuD,EAAI,SAAWjuD,GACjB,OAAOyE,EAAE,KAAMzE,IAEbkuD,EAAK,gBACLC,EAAK,CAAC,IAAK,IAAK,IAAK,KAEzB,SAASC,EAAGpuD,GACV,IAAIC,EACAC,EACAC,EACAC,EACAC,OAAI,IAAWL,EAAIiD,EAAIjD,EACvBwB,EAAInB,EAAE0E,QACNjD,OAAI,IAAWN,EAAIyB,EAAIzB,EACvBf,EAAIJ,EAAEguD,QACNjsD,OAAI,IAAW3B,EAAI8C,EAAI9C,EACvBH,EAAI,IAAI,IAAEwB,GACVpB,EAAI,GACJwB,EAAI,SAAUlC,GAChB,SAASC,EAAEA,GACT,GAAIA,EAAG,IACLD,EAAEC,EAAI,KACN,MAAOD,KAGX,OAAO,SAAUE,EAAGC,EAAGC,EAAGC,EAAGmB,EAAGM,EAAGrB,EAAG2B,EAAG9B,EAAGI,GAC1C,OAAQR,GACN,KAAK,EACH,GAAI,IAAMI,GAAK,KAAOH,EAAE6tD,WAAW,GAAI,OAAOhuD,EAAEG,EAAI,KAAM,GAC1D,MAEF,KAAK,EACH,GAAI,IAAMiC,EAAG,OAAOjC,EAAI,QACxB,MAEF,KAAK,EACH,OAAQiC,GACN,KAAK,IACL,KAAK,IACH,OAAOpC,EAAEI,EAAE,GAAKD,GAAI,GAEtB,QACE,OAAOA,GAAK,IAAMO,EAAI,QAAU,IAGtC,KAAM,EACJP,EAAE8F,MAAM,UAAU8F,QAAQ9L,KA5B1B,EA+BN,SAAUD,GACVU,EAAEwF,KAAKlG,MAELqC,EAAI,SAAWrC,EAAGG,EAAGE,GACvB,OAAO,IAAMF,GAAKguD,EAAGG,SAASjuD,EAAEH,EAAET,UAAYY,EAAE2H,MAAM5H,GAAKJ,EAAI,IAAMC,GAGvE,SAASO,EAAER,EAAGK,EAAGmB,EAAGM,QAClB,IAAWA,IAAMA,EAAI,KACrB,IAAIrB,EAAIT,EAAE+H,QAAQmmD,EAAI,IAClB9rD,EAAI/B,GAAKmB,EAAIA,EAAI,IAAMnB,EAAI,MAAQI,EAAI,KAAOA,EAClD,OAAOR,EAAI6B,EAAG5B,EAAIG,EAAGF,EAAI,IAAI2H,OAAO,KAAO5H,EAAI,MAAO,KAAME,EAAI,IAAI0H,OAAO,MAAQ5H,EAAI,YAAaI,EAAEkB,IAAMnB,EAAI,GAAKA,EAAG+B,GAG1H,OAAO9B,EAAEiuD,IAAI,GAAGjpD,OAAOlD,EAAG,CAAC,SAAUpC,EAAGC,EAAGG,GACzC,IAAMJ,GAAKI,EAAEX,QAAUW,EAAE,GAAGgI,YAAYlI,GAAK,IAAME,EAAE,GAAKA,EAAE,GAAG2H,QAAQ5H,EAAGkC,KACzEH,EAAG,SAAUlC,GACd,IAAK,IAAMA,EAAG,CACZ,IAAIC,EAAIS,EACR,OAAOA,EAAI,GAAIT,OAEbO,EAAEguD,KAAOpsD,EAAE3C,OAAS2C,EAAEkqB,QAAO,SAAUtsB,EAAGC,GAC9C,OAAOA,EAAEF,MAAQgrD,EAAE,IAAKtmD,EAAEzE,EAAGC,EAAEF,QAC9B,MAAM0B,WAAa,GAAIjB,EAG5B,IAAIiuD,EAAK,IAAEC,gBACPC,EAAKF,EAAGG,SACRh3C,EAAK,IAAE82C,gBACPG,IAAMj3C,EAAGg3C,SAAU,IAAI1B,GACvB4B,GAAKV,IAET,SAASW,KACP,OAAO,qBAAEN,IAAOI,GAGlB,SAASG,KACP,OAAO,qBAAEp3C,IAAOk3C,GAGlB,SAASG,GAAGjvD,GACV,IAAIC,EAAI,mBAAED,EAAEkvD,eACRhvD,EAAID,EAAE,GACNI,EAAIJ,EAAE,GACNQ,EAAIsuD,KACJ3sD,EAAI,mBAAE,WACR,IAAInC,EAAIQ,EACR,OAAOT,EAAEurD,MAAQtrD,EAAID,EAAEurD,MAAQvrD,EAAE2rB,SAAW1rB,EAAIA,EAAEutD,uBAAuB,CACvE7hC,OAAQ3rB,EAAE2rB,SACT,IAAM3rB,EAAEmvD,wBAA0BlvD,EAAIA,EAAEutD,uBAAuB,CAChEP,mBAAmB,KAChBhtD,IACJ,CAACD,EAAEmvD,sBAAuBnvD,EAAEurD,MAAOvrD,EAAE2rB,SACpCrrB,EAAI,mBAAE,WACR,OAAO8tD,EAAG,CACRrpD,QAAS,CACPqqD,QAASpvD,EAAEqvD,uBAEbhB,QAASnuD,MAEV,CAACF,EAAEqvD,sBAAuBnvD,IAC7B,OAAO,qBAAE,WACP,IAAEA,EAAGF,EAAEkvD,gBAAkB7uD,EAAEL,EAAEkvD,iBAC5B,CAAClvD,EAAEkvD,gBAAiB,IAAEh/C,cAAcu+C,EAAGnI,SAAU,CAClDtlD,MAAOoB,GACN,IAAE8N,cAAc0H,EAAG0uC,SAAU,CAC9BtlD,MAAOV,GACgEN,EAAEo4B,WAG7E,IAAIk3B,GAAK,WACP,SAAStvD,EAAEA,EAAGC,GACZ,IAAIC,EAAI4E,KACRA,KAAKyqD,OAAS,SAAUvvD,EAAGC,QACzB,IAAWA,IAAMA,EAAI6uD,IACrB,IAAI3uD,EAAID,EAAEH,KAAOE,EAAEuuD,KACnBxuD,EAAE0tD,aAAaxtD,EAAE6C,GAAI5C,IAAMH,EAAEqsD,YAAYnsD,EAAE6C,GAAI5C,EAAGF,EAAEC,EAAE8rD,MAAO7rD,EAAG,gBAC/D2E,KAAKrD,SAAW,WACjB,OAAOspD,EAAE,GAAIzvC,OAAOpb,EAAEH,QACrB+E,KAAK/E,KAAOC,EAAG8E,KAAK/B,GAAK,gBAAkB/C,EAAG8E,KAAKknD,MAAQ/rD,EAGhE,OAAOD,EAAEqB,UAAUmuD,QAAU,SAAUxvD,GACrC,YAAO,IAAWA,IAAMA,EAAI8uD,IAAKhqD,KAAK/E,KAAOC,EAAEwuD,MAC9CxuD,EAdI,GAgBLyvD,GAAK,UACLC,GAAK,IAAI5nD,OAAO2nD,GAAI,KACpBE,GAAK,OACLC,GAAK,SAAY5vD,GACnB,MAAO,IAAMA,EAAE4H,eAGjB,SAASioD,GAAG7vD,GACV,OAAOyvD,GAAGt7C,KAAKnU,GAAKA,EAAE+H,QAAQ2nD,GAAIE,IAAI7nD,QAAQ4nD,GAAI,QAAU3vD,EAG9D,IAAI8vD,GAAK,SAAY9vD,GACnB,OAAO,MAAQA,IAAK,IAAOA,GAAK,KAAOA,GAGzC,SAAS+vD,GAAG/vD,EAAGE,EAAGC,EAAGC,GACnB,GAAIb,MAAMC,QAAQQ,GAAI,CACpB,IAAK,IAAIK,EAAGmB,EAAI,GAAIM,EAAI,EAAGrB,EAAIT,EAAEP,OAAQqC,EAAIrB,EAAGqB,GAAK,EACnD,MAAQzB,EAAI0vD,GAAG/vD,EAAE8B,GAAI5B,EAAGC,EAAGC,MAAQb,MAAMC,QAAQa,GAAKmB,EAAE0E,KAAKyB,MAAMnG,EAAGnB,GAAKmB,EAAE0E,KAAK7F,IAGpF,OAAOmB,EAGT,OAAIsuD,GAAG9vD,GAAW,GACdoD,EAAEpD,GAAW,IAAMA,EAAEyqD,kBAErBD,EAAExqD,GACA,mBAAsBM,EAAIN,IAAMM,EAAEe,WAAaf,EAAEe,UAAU2uD,mBAAqB9vD,EAAUF,EAEmK+vD,GADzP/vD,EAAEE,GAC6PA,EAAGC,EAAGC,GAIxQJ,aAAasvD,GAAKnvD,GAAKH,EAAEuvD,OAAOpvD,EAAGC,GAAIJ,EAAEwvD,QAAQpvD,IAAMJ,EAAI8C,EAAE9C,GAAK,SAASA,EAAEC,EAAGC,GACrF,IAAIC,EACAC,EACAC,EAAI,GAER,IAAK,IAAImB,KAAKvB,EACZA,EAAEqB,eAAeE,KAAOsuD,GAAG7vD,EAAEuB,MAAQsB,EAAE7C,EAAEuB,IAAMnB,EAAE6F,KAAKyB,MAAMtH,EAAGL,EAAEC,EAAEuB,GAAIA,IAAMgpD,EAAEvqD,EAAEuB,IAAMnB,EAAE6F,KAAK2pD,GAAGruD,GAAK,IAAKvB,EAAEuB,GAAI,KAAOnB,EAAE6F,KAAK2pD,GAAGruD,GAAK,MAAQrB,EAAIqB,GAAG,OAASpB,EAAIH,EAAEuB,KAAO,kBAAoBpB,GAAK,KAAOA,EAAI,GAAK,iBAAmBA,GAAK,IAAMA,GAAKD,KAAK,IAAImb,OAAOlb,GAAGysD,OAASzsD,EAAI,MAAQ,OAGlS,OAAOF,EAAI,CAACA,EAAI,MAAMoF,OAAOjF,EAAG,CAAC,MAAQA,EAT8B,CAUvEL,GAAKA,EAAEyB,WAfP,IAIEnB,EAcN,SAAS2vD,GAAGjwD,GACV,IAAK,IAAIC,EAAIkF,UAAU1F,OAAQS,EAAI,IAAIX,MAAMU,EAAI,EAAIA,EAAI,EAAI,GAAIE,EAAI,EAAGA,EAAIF,EAAGE,IAC7ED,EAAEC,EAAI,GAAKgF,UAAUhF,GAGvB,OAAOqqD,EAAExqD,IAAM8C,EAAE9C,GAAK+vD,GAAGttD,EAAEc,EAAG,CAACvD,GAAGsF,OAAOpF,KAAO,IAAMA,EAAET,QAAU,IAAMO,EAAEP,QAAU,iBAAmBO,EAAE,GAAKA,EAAI+vD,GAAGttD,EAAEzC,EAAGE,IAG5H,IAAIgwD,GAAK,SAAYlwD,GACnB,MAAO,mBAAqBA,GAAK,iBAAmBA,GAAK,OAASA,IAAMT,MAAMC,QAAQQ,IAEpFmwD,GAAK,SAAYnwD,GACnB,MAAO,cAAgBA,GAAK,gBAAkBA,GAAK,cAAgBA,GAGrE,SAASowD,GAAGpwD,EAAGC,EAAGC,GAChB,IAAIC,EAAIH,EAAEE,GACVgwD,GAAGjwD,IAAMiwD,GAAG/vD,GAAKkwD,GAAGlwD,EAAGF,GAAKD,EAAEE,GAAKD,EAGrC,SAASowD,GAAGrwD,GACV,IAAK,IAAIC,EAAIkF,UAAU1F,OAAQS,EAAI,IAAIX,MAAMU,EAAI,EAAIA,EAAI,EAAI,GAAIE,EAAI,EAAGA,EAAIF,EAAGE,IAC7ED,EAAEC,EAAI,GAAKgF,UAAUhF,GAGvB,IAAK,IAAIC,EAAI,EAAGC,EAAIH,EAAGE,EAAIC,EAAEZ,OAAQW,IAAK,CACxC,IAAIoB,EAAInB,EAAED,GACV,GAAI8vD,GAAG1uD,GAAI,IAAK,IAAIM,KAAKN,EACvB2uD,GAAGruD,IAAMsuD,GAAGpwD,EAAGwB,EAAEM,GAAIA,GAIzB,OAAO9B,EAGT,IAAIqhC,GAAK,WACLivB,GAAK,SAAYtwD,GACnB,OAAOsb,OAAOi1C,aAAavwD,GAAKA,EAAI,GAAK,GAAK,MAGhD,SAASwwD,GAAGxwD,GACV,IAAIC,EACAC,EAAI,GAER,IAAKD,EAAI+G,KAAKwB,IAAIxI,GAAIC,EAAI,GAAIA,EAAIA,EAAI,GAAK,EACzCC,EAAIowD,GAAGrwD,EAAI,IAAMC,EAGnB,OAAQowD,GAAGrwD,EAAI,IAAMC,GAAG6H,QAAQs5B,GAAI,SAGtC,SAASovB,GAAGzwD,GACV,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAEP,OAAQQ,GAAK,EAAG,CACpC,IAAIC,EAAIF,EAAEC,GACV,GAAIuqD,EAAEtqD,KAAOkD,EAAElD,GAAI,OAAO,EAG5B,OAAO,EAGT,IAAIwwD,GAAKzC,EAAE,SACP0C,GAAK,WACP,SAAS3wD,EAAEA,EAAGC,EAAGC,GACf4E,KAAKknD,MAAQhsD,EAAG8E,KAAK8rD,cAAgB,GAAI9rD,KAAK+rD,eAAqD,IAAW3wD,GAAKA,EAAE2wD,WAAaJ,GAAGzwD,GAAI8E,KAAKgsD,YAAc7wD,EAAG6E,KAAKisD,SAAWtsD,EAAEisD,GAAIzwD,GAAI6E,KAAKksD,UAAY9wD,EAAGgtD,EAAEK,WAAWttD,GAG5N,OAAOD,EAAEqB,UAAU4vD,wBAA0B,SAAUjxD,EAAGC,EAAGC,GAC3D,IAAIC,EAAI2E,KAAKgsD,YACT1wD,EAAI,GACR,GAAI0E,KAAKksD,WAAa5wD,EAAE8F,KAAKpB,KAAKksD,UAAUC,wBAAwBjxD,EAAGC,EAAGC,IAAK4E,KAAK+rD,WAAa3wD,EAAEsuD,KACjG,GAAI1pD,KAAK8rD,eAAiB3wD,EAAEytD,aAAavtD,EAAG2E,KAAK8rD,eAAgBxwD,EAAE8F,KAAKpB,KAAK8rD,mBAAoB,CAC/F,IAAIvwD,EAAI0vD,GAAGjrD,KAAKknD,MAAOhsD,EAAGC,EAAGC,GAAGwU,KAAK,IACjClT,EAAIgvD,GAAG/rD,EAAEK,KAAKisD,SAAU1wD,EAAEZ,UAAY,GAE1C,IAAKQ,EAAEytD,aAAavtD,EAAGqB,GAAI,CACzB,IAAIM,EAAI5B,EAAEG,EAAG,IAAMmB,OAAG,EAAQrB,GAC9BF,EAAEosD,YAAYlsD,EAAGqB,EAAGM,GAGtB1B,EAAE8F,KAAK1E,GAAIsD,KAAK8rD,cAAgBpvD,MAE7B,CACL,IAAK,IAAIf,EAAIqE,KAAKknD,MAAMvsD,OAAQ2C,EAAIqC,EAAEK,KAAKisD,SAAU7wD,EAAEsuD,MAAOluD,EAAI,GAAII,EAAI,EAAGA,EAAID,EAAGC,IAAK,CACvF,IAAIwB,EAAI4C,KAAKknD,MAAMtrD,GACnB,GAAI,iBAAmBwB,EAAG5B,GAAK4B,OAAmE,GAAIA,EAAG,CACvG,IAAIX,EAAIwuD,GAAG7tD,EAAGlC,EAAGC,EAAGC,GAChBmC,EAAI9C,MAAMC,QAAQ+B,GAAKA,EAAEmT,KAAK,IAAMnT,EACxCa,EAAIqC,EAAErC,EAAGC,EAAI3B,GAAIJ,GAAK+B,GAI1B,GAAI/B,EAAG,CACL,IAAIE,EAAIgwD,GAAGpuD,IAAM,GAEjB,IAAKnC,EAAEytD,aAAavtD,EAAGK,GAAI,CACzB,IAAImC,EAAIzC,EAAEI,EAAG,IAAME,OAAG,EAAQL,GAC9BF,EAAEosD,YAAYlsD,EAAGK,EAAGmC,GAGtBvC,EAAE8F,KAAK1F,IAGX,OAAOJ,EAAEsU,KAAK,MACb1U,EA1CI,GAyDLkxD,IAZK,IAAItD,IAYJ,SAAY5tD,EAAGC,EAAGC,GACzB,YAAO,IAAWA,IAAMA,EAAI+C,GAAIjD,EAAEmxD,QAAUjxD,EAAEixD,OAASnxD,EAAEmxD,OAASlxD,GAAKC,EAAEixD,QAEvEC,GAAK,wCACLC,GAAK,WAET,SAASC,GAAGtxD,GACV,OAAOA,EAAE+H,QAAQqpD,GAAI,KAAKrpD,QAAQspD,GAAI,IAGxC,SAASE,GAAGvxD,GACV,MAAO,iBAAmBA,IAAM,EAGlC,IAAIwxD,GAAK,SAAYxxD,GACnB,OAAOwwD,GAAGvC,EAAEjuD,KAAO,IAEjByxD,GAAK,IAAE/C,gBACPgD,GAAKD,GAAG7C,SAEZ,SAAS+C,GAAG3xD,GACV,IAAIC,EAAI,qBAAEwxD,IACNvxD,EAAI,mBAAE,WACR,OAAO,SAAUF,EAAGC,GAClB,OAAKD,EAEDwqD,EAAExqD,GACIA,EAAEC,GAILV,MAAMC,QAAQQ,IAAM,iBAAmBA,EAAI+qD,EAAE,GAAK9qD,EAAIsC,EAAE,GAAItC,EAAG,GAAID,GAAKA,EAPhE+qD,EAAE,IADZ,CASL/qD,EAAEmxD,MAAOlxD,KACV,CAACD,EAAEmxD,MAAOlxD,IACb,OAAOD,EAAEo4B,SAAW,IAAEloB,cAAcuhD,GAAGnL,SAAU,CAC/CtlD,MAAOd,GACNF,EAAEo4B,UAAY,KAGnB,IAAIw5B,GAAK,GAET,SAASC,GAAG7xD,EAAGC,EAAGC,GAChB,IAAIE,EAAIgD,EAAEpD,GACNwB,GAAK+vD,GAAGvxD,GACR8B,EAAI7B,EAAE8N,YACNtN,OAAI,IAAWqB,EAAI,SAAU9B,GAC/B,OAAOuxD,GAAGvxD,GAAK,UAAYA,EAAI,UAAYuE,EAAEvE,GAAK,IAD7B,CAErBA,GAAK8B,EACHpB,EAAIT,EAAE6wD,YACN5uD,OAAI,IAAWxB,EAAI,SAAUV,EAAGC,GAClC,IAAIC,EAAI,iBAAmBF,EAAI,KAAOsxD,GAAGtxD,GACzC4xD,GAAG1xD,IAAM0xD,GAAG1xD,IAAM,GAAK,EACvB,IAAIC,EAAID,EAAI,IAAMsxD,GAAG,QAAUtxD,EAAI0xD,GAAG1xD,IACtC,OAAOD,EAAIA,EAAI,IAAME,EAAIA,EAJJ,CAKrBF,EAAE8N,YAAa9N,EAAE6xD,mBAAqBpxD,EACpCa,EAAItB,EAAE8xD,MACN1vD,OAAI,IAAWd,EAAIgC,EAAIhC,EACvBkB,EAAIxC,EAAE8N,aAAe9N,EAAE6wD,YAAcQ,GAAGrxD,EAAE8N,aAAe,IAAM9N,EAAE6wD,YAAc7wD,EAAE6wD,aAAe5uD,EAChGY,EAAI1C,GAAKJ,EAAE+xD,MAAQxyD,MAAM8B,UAAUiE,OAAOtF,EAAE+xD,MAAO1vD,GAAGqoB,OAAOqU,SAAW18B,EACxEuB,EAAI3D,EAAE+xD,kBAEV5xD,GAAKJ,EAAEgyD,oBAAsBpuD,EAAIA,EAAI,SAAU1D,EAAGC,GAChD,OAAOH,EAAEgyD,kBAAkB9xD,EAAGC,IAAMF,EAAE+xD,kBAAkB9xD,EAAGC,IACzDH,EAAEgyD,mBAEN,IAAItuD,EACAD,EAAI,IAAIktD,GAAGzwD,EAAGuC,EAAGrC,EAAIJ,EAAEiyD,oBAAiB,GACxCnuD,EAAI,SAAW9D,EAAGC,GACpB,OAAO,SAAUD,EAAGC,EAAGC,GACrB,IAAIC,EAAIH,EAAE+xD,MACN3xD,EAAIJ,EAAEiyD,eACNzwD,EAAIxB,EAAEmQ,aACNrO,EAAI9B,EAAEkyD,mBACNzxD,EAAIT,EAAEgyD,kBACNtxD,EAAIV,EAAEyqD,kBACNvoD,EAAIlC,EAAE2rB,OAGNpqB,EAAI,SAAUvB,EAAGC,EAAGC,QACtB,IAAWF,IAAMA,EAAIiD,GACrB,IAAI9C,EAAIoC,EAAE,GAAItC,EAAG,CACfkxD,MAAOnxD,IAELI,EAAI,GACR,OAAOF,EAAE6L,SAAQ,SAAU/L,GACzB,IAAIC,EACAC,EACAG,EACAmB,EAAIxB,EAER,IAAKC,KAAKuqD,EAAEhpD,KAAOA,EAAIA,EAAErB,IAAKqB,EAC5BrB,EAAEF,GAAKG,EAAEH,GAAK,cAAgBA,GAAKC,EAAIE,EAAEH,GAAII,EAAImB,EAAEvB,GAAIC,GAAKG,EAAIH,EAAI,IAAMG,EAAIH,GAAKG,GAAKmB,EAAEvB,MAE1F,CAACE,EAAGC,GAfF,CAgBN8wD,GAAGjxD,EAAG,qBAAEwxD,IAAKjwD,IAAMyB,EAAGhD,EAAGE,GACvBkC,EAAId,EAAE,GACNoB,EAAIpB,EAAE,GACNkB,EAAI,SAAUzC,EAAGC,EAAGC,EAAGC,GACzB,IAAIC,EAAI2uD,KACJ1uD,EAAI2uD,KAGR,OAFQhvD,EAAE6wD,WAAa5wD,EACXD,EAAEixD,wBAAwBhuD,EAAG7C,EAAGC,GAAKL,EAAEixD,wBAAwB/wD,EAAGE,EAAGC,GAJ3E,CAMND,EAAGD,EAAEV,OAAS,EAAG4C,GACfS,EAAI5C,EACJqD,EAAIZ,EAAEwvD,KAAOlyD,EAAEkyD,KAAOxvD,EAAEyvD,IAAMnyD,EAAEmyD,IAAMlwD,EACtCqC,EAAIgtD,GAAGhuD,GACPH,EAAIT,IAAM1C,EAAIsC,EAAE,GAAItC,EAAG,GAAI0C,GAAK1C,EAChC2D,EAAInD,GAAK8D,GAAK,IACdb,EAAI,GAER,IAAK,IAAID,KAAKL,EACZ,MAAQK,EAAE,IAAM,OAASA,IAAM,gBAAkBA,EAAIC,EAAE0uD,GAAKhvD,EAAEK,GAAKG,IAAMA,EAAEH,EAAG,OAAOC,EAAED,GAAKL,EAAEK,KAGhG,OAAOxD,EAAEw5B,OAAS92B,EAAE82B,QAAUx5B,EAAEw5B,QAAU/1B,EAAE+1B,MAAQl3B,EAAE,GAAItC,EAAEw5B,MAAO,GAAI92B,EAAE82B,QAAS/1B,EAAE4lC,UAAY/pC,MAAM8B,UAAUiE,OAAOxD,EAAGpB,EAAG+B,IAAM/B,EAAI+B,EAAI,KAAMxC,EAAEqpC,UAAW3mC,EAAE2mC,WAAW5e,OAAOqU,SAASrqB,KAAK,KAAMhR,EAAEo8B,IAAMh9B,EAAG,wBAAES,EAAGG,GA/CjN,CAgDLA,EAAG1D,EAAGC,IAGV,OAAO6D,EAAEiK,YAActN,GAAIiD,EAAI,IAAEw1C,WAAWp1C,IAAIiuD,MAAQjvD,EAAGY,EAAEuuD,eAAiBxuD,EAAGC,EAAEqK,YAActN,EAAGiD,EAAEsuD,kBAAoBpuD,EAAGF,EAAEwuD,mBAAqB9xD,EAAIb,MAAM8B,UAAUiE,OAAOtF,EAAEkyD,mBAAoBlyD,EAAEyqD,mBAAqBlnD,EAAGG,EAAE+mD,kBAAoBhoD,EAAGiB,EAAEioB,OAASvrB,EAAIJ,EAAE2rB,OAAS3rB,EAAG0D,EAAE2uD,cAAgB,SAAUryD,GAC/S,IAAIG,EAAIF,EAAE6wD,YACN1wD,EAAI,SAAUJ,EAAGC,GACnB,GAAI,MAAQD,EAAG,MAAO,GACtB,IAAIE,EACAC,EACAC,EAAI,GACJC,EAAIT,OAAOsD,KAAKlD,GAEpB,IAAKG,EAAI,EAAGA,EAAIE,EAAEZ,OAAQU,IACxBD,EAAIG,EAAEF,GAAIF,EAAEqH,QAAQpH,IAAM,IAAME,EAAEF,GAAKF,EAAEE,IAG3C,OAAOE,EAXD,CAYNH,EAAG,CAAC,gBACFI,EAAIF,GAAKA,EAAI,KAAOoxD,GAAGvxD,GAAKA,EAAIsxD,GAAG/sD,EAAEvE,KAEzC,OAAO6xD,GAAG7xD,EAAGuC,EAAE,GAAInC,EAAG,CACpB2xD,MAAOjvD,EACPguD,YAAazwD,IACXH,IACHN,OAAOe,eAAe+C,EAAG,eAAgB,CAC1C7C,IAAK,WACH,OAAOiE,KAAKwtD,qBAEdtqC,IAAK,SAAa/nB,GAChB6E,KAAKwtD,oBAAsBlyD,EAAIiwD,GAAG,GAAIrwD,EAAEmQ,aAAclQ,GAAKA,KAWrDyD,EAAEjC,SAAW,WACrB,MAAO,IAAMiC,EAAE+mD,mBACdjpD,GAAK,IAAEkC,EAAG1D,EAAG,CACd+xD,OAAO,EACPE,gBAAgB,EAChBlkD,aAAa,EACbmkD,oBAAoB,EACpBF,mBAAmB,EACnBnoD,MAAM,EACN4gD,mBAAmB,EACnB9+B,QAAQ,EACR0mC,eAAe,IACb3uD,EAGN,IAAI6uD,GAAK,SAAYvyD,GACnB,OAAO,SAASA,EAAEC,EAAGE,EAAGC,GACtB,QAAI,IAAWA,IAAMA,EAAI6C,IAAK,6BAAE9C,GAAI,OAAO4qD,EAAE,EAAGzvC,OAAOnb,IAEvD,IAAIE,EAAI,WACN,OAAOJ,EAAEE,EAAGC,EAAG6vD,GAAGtoD,WAAM,EAAQxC,aAGlC,OAAO9E,EAAEmyD,WAAa,SAAUtyD,GAC9B,OAAOF,EAAEC,EAAGE,EAAGoC,EAAE,GAAInC,EAAG,GAAIF,KAC3BG,EAAE0xD,MAAQ,SAAU7xD,GACrB,OAAOF,EAAEC,EAAGE,EAAGoC,EAAE,GAAInC,EAAG,CACtB2xD,MAAOxyD,MAAM8B,UAAUiE,OAAOlF,EAAE2xD,MAAO7xD,GAAGwqB,OAAOqU,aAElD1+B,EAbE,CAcLwxD,GAAI7xD,IAGR,CAAC,IAAK,OAAQ,UAAW,OAAQ,UAAW,QAAS,QAAS,IAAK,OAAQ,MAAO,MAAO,MAAO,aAAc,OAAQ,KAAM,SAAU,SAAU,UAAW,OAAQ,OAAQ,MAAO,WAAY,OAAQ,WAAY,KAAM,MAAO,UAAW,MAAO,SAAU,MAAO,KAAM,KAAM,KAAM,QAAS,WAAY,aAAc,SAAU,SAAU,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAAQ,SAAU,SAAU,KAAM,OAAQ,IAAK,SAAU,MAAO,QAAS,MAAO,MAAO,SAAU,QAAS,SAAU,KAAM,OAAQ,OAAQ,MAAO,OAAQ,UAAW,OAAQ,WAAY,OAAQ,QAAS,MAAO,WAAY,SAAU,KAAM,WAAY,SAAU,SAAU,IAAK,QAAS,UAAW,MAAO,WAAY,IAAK,KAAM,KAAM,OAAQ,IAAK,OAAQ,SAAU,UAAW,SAAU,QAAS,SAAU,OAAQ,SAAU,QAAS,MAAO,UAAW,MAAO,QAAS,QAAS,KAAM,WAAY,QAAS,KAAM,QAAS,OAAQ,QAAS,KAAM,QAAS,IAAK,KAAM,MAAO,QAAS,MAAO,SAAU,WAAY,OAAQ,UAAW,gBAAiB,IAAK,QAAS,OAAQ,iBAAkB,SAAU,OAAQ,OAAQ,UAAW,UAAW,WAAY,iBAAkB,OAAQ,OAAQ,MAAO,OAAQ,SAAS+L,SAAQ,SAAU/L,GACjqCuyD,GAAGvyD,GAAKuyD,GAAGvyD,MAGb,IAAIyyD,GAAK,WACP,SAASzyD,EAAEA,EAAGC,GACZ6E,KAAKknD,MAAQhsD,EAAG8E,KAAKgsD,YAAc7wD,EAAG6E,KAAK+rD,SAAWJ,GAAGzwD,GAAIktD,EAAEK,WAAWzoD,KAAKgsD,YAAc,GAG/F,IAAI7wD,EAAID,EAAEqB,UACV,OAAOpB,EAAEyyD,aAAe,SAAU1yD,EAAGC,EAAGC,EAAGC,GACzC,IAAIC,EAAID,EAAE4vD,GAAGjrD,KAAKknD,MAAO/rD,EAAGC,EAAGC,GAAGuU,KAAK,IAAK,IACxCrU,EAAIyE,KAAKgsD,YAAc9wD,EAC3BE,EAAEmsD,YAAYhsD,EAAGA,EAAGD,IACnBH,EAAE0yD,aAAe,SAAU3yD,EAAGC,GAC/BA,EAAE6tD,WAAWhpD,KAAKgsD,YAAc9wD,IAC/BC,EAAE2yD,aAAe,SAAU5yD,EAAGC,EAAGC,EAAGC,GACrCH,EAAI,GAAKktD,EAAEK,WAAWzoD,KAAKgsD,YAAc9wD,GAAI8E,KAAK6tD,aAAa3yD,EAAGE,GAAI4E,KAAK4tD,aAAa1yD,EAAGC,EAAGC,EAAGC,IAChGH,EAdI,GAiBT,SAAS6yD,GAAG7yD,GACV,IAAK,IAAIC,EAAIkF,UAAU1F,OAAQS,EAAI,IAAIX,MAAMU,EAAI,EAAIA,EAAI,EAAI,GAAIG,EAAI,EAAGA,EAAIH,EAAGG,IAC7EF,EAAEE,EAAI,GAAK+E,UAAU/E,GAGvB,IAAIoB,EAAIyuD,GAAGtoD,WAAM,EAAQ,CAAC3H,GAAGsF,OAAOpF,IAChC4B,EAAI,aAAe0vD,GAAGpqD,KAAKC,UAAU7F,IACrCY,EAAI,IAAIqwD,GAAGjxD,EAAGM,GAElB,SAASxB,EAAEN,GACT,IAAIC,EAAI8uD,KACJ7uD,EAAI8uD,KACJ5uD,EAAI,qBAAEqxD,IACNnxD,EAAI,iBAAEL,EAAEwtD,mBAAmB3rD,IAAIy4B,QACnC,OAEoW,2BAAE,WACpW,OAAOr4B,EAAE5B,EAAGN,EAAGC,EAAGG,EAAGF,GAAI,WACvB,OAAOkC,EAAEuwD,aAAaryD,EAAGL,MAE1B,CAACK,EAAGN,EAAGC,EAAGG,EAAGF,IAAK,KAGvB,SAASgC,EAAElC,EAAGC,EAAGC,EAAGC,EAAGC,GACrB,GAAIgC,EAAEyuD,SAAUzuD,EAAEwwD,aAAa5yD,EAAGiE,EAAG/D,EAAGE,OAAQ,CAC9C,IAAIC,EAAIkC,EAAE,GAAItC,EAAG,CACfkxD,MAAOD,GAAGjxD,EAAGE,EAAGG,EAAE6P,gBAEpB/N,EAAEwwD,aAAa5yD,EAAGK,EAAGH,EAAGE,IAI5B,OAAuD,IAAE0yD,KAAKxyD,GAGhE,SAASyyD,GAAG/yD,GAGV,IAAK,IAAIC,EAAIkF,UAAU1F,OAAQS,EAAI,IAAIX,MAAMU,EAAI,EAAIA,EAAI,EAAI,GAAIE,EAAI,EAAGA,EAAIF,EAAGE,IAC7ED,EAAEC,EAAI,GAAKgF,UAAUhF,GAGvB,IAAIC,EAAI6vD,GAAGtoD,WAAM,EAAQ,CAAC3H,GAAGsF,OAAOpF,IAAIwU,KAAK,IACzCrU,EAAImxD,GAAGpxD,GACX,OAAO,IAAIkvD,GAAGjvD,EAAGD,GAGnB,IAAI4yD,GAAK,WACP,SAAShzD,IACP,IAAIA,EAAI8E,KACRA,KAAKmuD,cAAgB,WACnB,IAAIhzD,EAAID,EAAEiR,SAASxP,WACfvB,EAAI4qD,IACR,MAAO,UAAY,CAAC5qD,GAAK,UAAYA,EAAI,IAAK0D,EAAI,UAAW,+BAA+B8mB,OAAOqU,SAASrqB,KAAK,KAAO,IAAMzU,EAAI,YACjI6E,KAAKouD,aAAe,WACrB,OAAOlzD,EAAEmzD,OAASpI,EAAE,GAAK/qD,EAAEizD,iBAC1BnuD,KAAKsuD,gBAAkB,WACxB,IAAInzD,EACJ,GAAID,EAAEmzD,OAAQ,OAAOpI,EAAE,GACvB,IAAI7qD,IAAMD,EAAI,IAAI2D,GAAK,GAAI3D,EAAE,uBAAyB,QAASA,EAAEozD,wBAA0B,CACzFC,OAAQtzD,EAAEiR,SAASxP,YAClBxB,GACCG,EAAI0qD,IACR,OAAO1qD,IAAMF,EAAEqzD,MAAQnzD,GAAI,CAAC,IAAE8P,cAAc,QAAS3N,EAAE,GAAIrC,EAAG,CAC5D2B,IAAK,cAENiD,KAAK0uD,KAAO,WACbxzD,EAAEmzD,QAAS,GACVruD,KAAKmM,SAAW,IAAIi8C,EAAE,CACvBF,UAAU,IACRloD,KAAKquD,QAAS,EAGpB,IAAIlzD,EAAID,EAAEqB,UACV,OAAOpB,EAAEwzD,cAAgB,SAAUzzD,GACjC,OAAO8E,KAAKquD,OAASpI,EAAE,GAAK,IAAE76C,cAAc++C,GAAI,CAC9C1D,MAAOzmD,KAAKmM,UACXjR,IACFC,EAAEyzD,yBAA2B,SAAU1zD,GACxC,OAAO+qD,EAAE,IACR/qD,EAjCI,GAmCL2zD,GAAK,SAAY3zD,GACnB,IAAIC,EAAI,IAAEi5C,YAAW,SAAUj5C,EAAGC,GAChC,IAAIE,EAAI,qBAAEqxD,IACNjwD,EAAIxB,EAAEmQ,aACNrO,EAAIovD,GAAGjxD,EAAGG,EAAGoB,GACjB,OAAqN,IAAE0O,cAAclQ,EAAGuC,EAAE,GAAItC,EAAG,CAC/OkxD,MAAOrvD,EACPg+B,IAAK5/B,QAGT,OAAO,IAAED,EAAGD,GAAIC,EAAE8N,YAAc,aAAexJ,EAAEvE,GAAK,IAAKC,GAEzD2zD,GAAK,WACP,OAAO,qBAAEnC,KAEPoC,GAAK,CACPC,WAAY5G,EACZ6G,YAAalF,IAIA,c,2CCh7Bf,IAAI9+C,EAAQ,EAAQ,QAEpB,SAASikD,EAAoB/jD,GACzB,OAAOF,EAAMG,cAAc,MAAMD,EAAM,CAACF,EAAMG,cAAc,QAAQ,CAAC,IAAM,GAAG,gBAAgBH,EAAMG,cAAc,OAAO,CAAC,IAAM,GAAGH,EAAMG,cAAc,OAAO,CAAC,EAAI,KAAK,EAAI,IAAI,MAAQ,KAAK,OAAS,KAAK,GAAK,YAAYH,EAAMG,cAAc,IAAI,CAAC,GAAK,KAAK,OAAS,OAAO,YAAc,IAAI,KAAO,OAAO,SAAW,UAAU,IAAM,GAAGH,EAAMG,cAAc,IAAI,CAAC,GAAK,gBAAgBH,EAAMG,cAAc,IAAI,CAAC,GAAK,mBAAmB,CAACH,EAAMG,cAAc,OAAO,CAAC,EAAI,kzBAAkzB,GAAK,KAAK,KAAO,UAAU,SAAW,UAAU,IAAM,IAAIH,EAAMG,cAAc,OAAO,CAAC,EAAI,21BAA21B,GAAK,KAAK,KAAO,UAAU,SAAW,UAAU,IAAM,IAAIH,EAAMG,cAAc,UAAU,CAAC,GAAK,MAAM,KAAO,UAAU,SAAW,UAAU,GAAK,UAAU,GAAK,aAAa,GAAK,SAAS,GAAK,aAAa,IAAM,IAAIH,EAAMG,cAAc,IAAI,CAAC,GAAK,QAAQ,IAAM,GAAGH,EAAMG,cAAc,QAAQ,CAAC,EAAI,KAAK,EAAI,IAAI,MAAQ,KAAK,OAAS,KAAK,UAAY,0ivHAGjhF8jD,EAAmB7jD,aAAe,CAAC,MAAQ,QAAQ,OAAS,OAAO,QAAU,aAAa,QAAU,OAEpG/Q,EAAOC,QAAU20D,EAEjBA,EAAmB5yD,QAAU4yD,G,mBCN7B50D,EAAOC,QAJP,WACE,MAAM,IAAIwF,UAAU,yIAItBzF,EAAOC,QAAiB,QAAID,EAAOC,QAASD,EAAOC,QAAQ4B,YAAa,G,kCCFtE7B,EAAOC,QAAU,EAAQ,S,mBCH3B,IAAIoD,EAGJA,EAAI,WACH,OAAOqC,KADJ,GAIJ,IAECrC,EAAIA,GAAK,IAAI9C,SAAS,cAAb,GACR,MAAOK,GAEc,iBAAX2I,SAAqBlG,EAAIkG,QAOrCvJ,EAAOC,QAAUoD,G,uBCnBjB,IAAIsN,EAAQ,EAAQ,QAEpB,SAASkkD,EAAchkD,GACnB,OAAOF,EAAMG,cAAc,MAAMD,EAAM,CAACF,EAAMG,cAAc,QAAQ,CAAC,IAAM,GAAG,aAAaH,EAAMG,cAAc,IAAI,CAAC,GAAK,KAAK,OAAS,OAAO,YAAc,IAAI,KAAO,OAAO,SAAW,UAAU,IAAM,GAAGH,EAAMG,cAAc,IAAI,CAAC,GAAK,aAAaH,EAAMG,cAAc,IAAI,CAAC,GAAK,SAAS,CAACH,EAAMG,cAAc,OAAO,CAAC,GAAK,KAAK,EAAI,IAAI,EAAI,IAAI,MAAQ,KAAK,OAAS,KAAK,IAAM,IAAIH,EAAMG,cAAc,OAAO,CAAC,EAAI,+zBAA+zB,GAAK,OAAO,KAAO,UAAU,SAAW,UAAU,IAAM,UAGrxC+jD,EAAa9jD,aAAe,CAAC,MAAQ,OAAO,OAAS,OAAO,QAAU,YAAY,QAAU,OAE5F/Q,EAAOC,QAAU40D,EAEjBA,EAAa7yD,QAAU6yD,G,kCCRvB,IAAIC,EAAU,EAAQ,QAOlBC,EAAgB,CAClBC,mBAAmB,EACnB3N,aAAa,EACb4N,cAAc,EACdlkD,cAAc,EACdpC,aAAa,EACbumD,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,QAAQ,EACR57B,WAAW,EACX3tB,MAAM,GAEJwpD,EAAgB,CAClB30D,MAAM,EACNN,QAAQ,EACR4B,WAAW,EACXszD,QAAQ,EACRC,QAAQ,EACRzvD,WAAW,EACX0vD,OAAO,GASLC,EAAe,CACjB,UAAY,EACZ3gC,SAAS,EACThkB,cAAc,EACdpC,aAAa,EACb8qB,WAAW,EACX3tB,MAAM,GAEJ6pD,EAAe,GAInB,SAASC,EAAW/pB,GAElB,OAAIipB,EAAQnK,OAAO9e,GACV6pB,EAIFC,EAAa9pB,EAAoB,WAAMkpB,EAVhDY,EAAab,EAAQnL,YAhBK,CACxB,UAAY,EACZh3C,QAAQ,EACR5B,cAAc,EACdpC,aAAa,EACb8qB,WAAW,GAYbk8B,EAAab,EAAQhL,MAAQ4L,EAY7B,IAAIn0D,EAAiBf,OAAOe,eACxBs0D,EAAsBr1D,OAAOq1D,oBAC7Bj3B,EAAwBp+B,OAAOo+B,sBAC/Bn+B,EAA2BD,OAAOC,yBAClC6L,EAAiB9L,OAAO8L,eACxBwpD,EAAkBt1D,OAAOyB,UAuC7BjC,EAAOC,QArCP,SAAS81D,EAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,iBAApBD,EAA8B,CAEvC,GAAIH,EAAiB,CACnB,IAAIK,EAAqB7pD,EAAe2pD,GAEpCE,GAAsBA,IAAuBL,GAC/CC,EAAqBC,EAAiBG,EAAoBD,GAI9D,IAAIpyD,EAAO+xD,EAAoBI,GAE3Br3B,IACF96B,EAAOA,EAAKoC,OAAO04B,EAAsBq3B,KAM3C,IAHA,IAAIG,EAAgBR,EAAWI,GAC3BK,EAAgBT,EAAWK,GAEtBh1D,EAAI,EAAGA,EAAI6C,EAAKzD,SAAUY,EAAG,CACpC,IAAIwB,EAAMqB,EAAK7C,GAEf,KAAKq0D,EAAc7yD,IAAUyzD,GAAaA,EAAUzzD,IAAW4zD,GAAiBA,EAAc5zD,IAAW2zD,GAAiBA,EAAc3zD,IAAO,CAC7I,IAAImzB,EAAan1B,EAAyBw1D,EAAiBxzD,GAE3D,IAEElB,EAAey0D,EAAiBvzD,EAAKmzB,GACrC,MAAOh1B,OAKf,OAAOo1D,I,qBCrGT,IAAIz3C,EAAmB,EAAQ,QAW/Bve,EAAOC,QATP,SAAqCe,EAAGs1D,GACtC,GAAKt1D,EAAL,CACA,GAAiB,iBAANA,EAAgB,OAAOud,EAAiBvd,EAAGs1D,GACtD,IAAIx1D,EAAIN,OAAOyB,UAAUI,SAASlB,KAAKH,GAAG2F,MAAM,GAAI,GAEpD,MADU,WAAN7F,GAAkBE,EAAEN,cAAaI,EAAIE,EAAEN,YAAYC,MAC7C,QAANG,GAAqB,QAANA,EAAoBX,MAAM2mB,KAAK9lB,GACxC,cAANF,GAAqB,2CAA2CiU,KAAKjU,GAAWyd,EAAiBvd,EAAGs1D,QAAxG,IAIFt2D,EAAOC,QAAiB,QAAID,EAAOC,QAASD,EAAOC,QAAQ4B,YAAa,G,kCCVxE7B,EAAOC,QAAU,CACf,UAAa,CAAC,IAAK,IAAK,KACxB,aAAgB,CAAC,IAAK,IAAK,KAC3B,KAAQ,CAAC,EAAG,IAAK,KACjB,WAAc,CAAC,IAAK,IAAK,KACzB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,OAAU,CAAC,IAAK,IAAK,KACrB,MAAS,CAAC,EAAG,EAAG,GAChB,eAAkB,CAAC,IAAK,IAAK,KAC7B,KAAQ,CAAC,EAAG,EAAG,KACf,WAAc,CAAC,IAAK,GAAI,KACxB,MAAS,CAAC,IAAK,GAAI,IACnB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,WAAc,CAAC,IAAK,IAAK,GACzB,UAAa,CAAC,IAAK,IAAK,IACxB,MAAS,CAAC,IAAK,IAAK,IACpB,eAAkB,CAAC,IAAK,IAAK,KAC7B,SAAY,CAAC,IAAK,IAAK,KACvB,QAAW,CAAC,IAAK,GAAI,IACrB,KAAQ,CAAC,EAAG,IAAK,KACjB,SAAY,CAAC,EAAG,EAAG,KACnB,SAAY,CAAC,EAAG,IAAK,KACrB,cAAiB,CAAC,IAAK,IAAK,IAC5B,SAAY,CAAC,IAAK,IAAK,KACvB,UAAa,CAAC,EAAG,IAAK,GACtB,SAAY,CAAC,IAAK,IAAK,KACvB,UAAa,CAAC,IAAK,IAAK,KACxB,YAAe,CAAC,IAAK,EAAG,KACxB,eAAkB,CAAC,GAAI,IAAK,IAC5B,WAAc,CAAC,IAAK,IAAK,GACzB,WAAc,CAAC,IAAK,GAAI,KACxB,QAAW,CAAC,IAAK,EAAG,GACpB,WAAc,CAAC,IAAK,IAAK,KACzB,aAAgB,CAAC,IAAK,IAAK,KAC3B,cAAiB,CAAC,GAAI,GAAI,KAC1B,cAAiB,CAAC,GAAI,GAAI,IAC1B,cAAiB,CAAC,GAAI,GAAI,IAC1B,cAAiB,CAAC,EAAG,IAAK,KAC1B,WAAc,CAAC,IAAK,EAAG,KACvB,SAAY,CAAC,IAAK,GAAI,KACtB,YAAe,CAAC,EAAG,IAAK,KACxB,QAAW,CAAC,IAAK,IAAK,KACtB,QAAW,CAAC,IAAK,IAAK,KACtB,WAAc,CAAC,GAAI,IAAK,KACxB,UAAa,CAAC,IAAK,GAAI,IACvB,YAAe,CAAC,IAAK,IAAK,KAC1B,YAAe,CAAC,GAAI,IAAK,IACzB,QAAW,CAAC,IAAK,EAAG,KACpB,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,KAAQ,CAAC,IAAK,IAAK,GACnB,UAAa,CAAC,IAAK,IAAK,IACxB,KAAQ,CAAC,IAAK,IAAK,KACnB,MAAS,CAAC,EAAG,IAAK,GAClB,YAAe,CAAC,IAAK,IAAK,IAC1B,KAAQ,CAAC,IAAK,IAAK,KACnB,SAAY,CAAC,IAAK,IAAK,KACvB,QAAW,CAAC,IAAK,IAAK,KACtB,UAAa,CAAC,IAAK,GAAI,IACvB,OAAU,CAAC,GAAI,EAAG,KAClB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,SAAY,CAAC,IAAK,IAAK,KACvB,cAAiB,CAAC,IAAK,IAAK,KAC5B,UAAa,CAAC,IAAK,IAAK,GACxB,aAAgB,CAAC,IAAK,IAAK,KAC3B,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,qBAAwB,CAAC,IAAK,IAAK,KACnC,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,YAAe,CAAC,IAAK,IAAK,KAC1B,cAAiB,CAAC,GAAI,IAAK,KAC3B,aAAgB,CAAC,IAAK,IAAK,KAC3B,eAAkB,CAAC,IAAK,IAAK,KAC7B,eAAkB,CAAC,IAAK,IAAK,KAC7B,eAAkB,CAAC,IAAK,IAAK,KAC7B,YAAe,CAAC,IAAK,IAAK,KAC1B,KAAQ,CAAC,EAAG,IAAK,GACjB,UAAa,CAAC,GAAI,IAAK,IACvB,MAAS,CAAC,IAAK,IAAK,KACpB,QAAW,CAAC,IAAK,EAAG,KACpB,OAAU,CAAC,IAAK,EAAG,GACnB,iBAAoB,CAAC,IAAK,IAAK,KAC/B,WAAc,CAAC,EAAG,EAAG,KACrB,aAAgB,CAAC,IAAK,GAAI,KAC1B,aAAgB,CAAC,IAAK,IAAK,KAC3B,eAAkB,CAAC,GAAI,IAAK,KAC5B,gBAAmB,CAAC,IAAK,IAAK,KAC9B,kBAAqB,CAAC,EAAG,IAAK,KAC9B,gBAAmB,CAAC,GAAI,IAAK,KAC7B,gBAAmB,CAAC,IAAK,GAAI,KAC7B,aAAgB,CAAC,GAAI,GAAI,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,SAAY,CAAC,IAAK,IAAK,KACvB,YAAe,CAAC,IAAK,IAAK,KAC1B,KAAQ,CAAC,EAAG,EAAG,KACf,QAAW,CAAC,IAAK,IAAK,KACtB,MAAS,CAAC,IAAK,IAAK,GACpB,UAAa,CAAC,IAAK,IAAK,IACxB,OAAU,CAAC,IAAK,IAAK,GACrB,UAAa,CAAC,IAAK,GAAI,GACvB,OAAU,CAAC,IAAK,IAAK,KACrB,cAAiB,CAAC,IAAK,IAAK,KAC5B,UAAa,CAAC,IAAK,IAAK,KACxB,cAAiB,CAAC,IAAK,IAAK,KAC5B,cAAiB,CAAC,IAAK,IAAK,KAC5B,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,KAAQ,CAAC,IAAK,IAAK,IACnB,KAAQ,CAAC,IAAK,IAAK,KACnB,KAAQ,CAAC,IAAK,IAAK,KACnB,WAAc,CAAC,IAAK,IAAK,KACzB,OAAU,CAAC,IAAK,EAAG,KACnB,cAAiB,CAAC,IAAK,GAAI,KAC3B,IAAO,CAAC,IAAK,EAAG,GAChB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,YAAe,CAAC,IAAK,GAAI,IACzB,OAAU,CAAC,IAAK,IAAK,KACrB,WAAc,CAAC,IAAK,IAAK,IACzB,SAAY,CAAC,GAAI,IAAK,IACtB,SAAY,CAAC,IAAK,IAAK,KACvB,OAAU,CAAC,IAAK,GAAI,IACpB,OAAU,CAAC,IAAK,IAAK,KACrB,QAAW,CAAC,IAAK,IAAK,KACtB,UAAa,CAAC,IAAK,GAAI,KACvB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,KAAQ,CAAC,IAAK,IAAK,KACnB,YAAe,CAAC,EAAG,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,IAAO,CAAC,IAAK,IAAK,KAClB,KAAQ,CAAC,EAAG,IAAK,KACjB,QAAW,CAAC,IAAK,IAAK,KACtB,OAAU,CAAC,IAAK,GAAI,IACpB,UAAa,CAAC,GAAI,IAAK,KACvB,OAAU,CAAC,IAAK,IAAK,KACrB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,WAAc,CAAC,IAAK,IAAK,KACzB,OAAU,CAAC,IAAK,IAAK,GACrB,YAAe,CAAC,IAAK,IAAK,M,0ICtJ5B,SAASY,EAAEA,GACT,OAAO,MAAQA,GAAK,iBAAmBA,GAAK,IAAMA,EAAEuuC,SAGtD,SAASxuC,EAAEC,EAAGD,GACZ,QAASA,GAAK,WAAaC,IAAM,YAAcA,GAAK,SAAWA,EAGjE,SAASC,EAAED,EAAGC,GACZ,GAAID,EAAE0sB,aAAe1sB,EAAEo0C,cAAgBp0C,EAAEysB,YAAczsB,EAAEk0C,YAAa,CACpE,IAAIh0C,EAAIysB,iBAAiB3sB,EAAG,MAC5B,OAAOD,EAAEG,EAAEs0C,UAAWv0C,IAAMF,EAAEG,EAAEo0C,UAAWr0C,IAAM,SAAUD,GACzD,IAAID,EAAI,SAAUC,GAChB,IAAKA,EAAE4rB,gBAAkB5rB,EAAE4rB,cAAcC,YAAa,OAAO,KAE7D,IACE,OAAO7rB,EAAE4rB,cAAcC,YAAY6pC,aACnC,MAAO11D,GACP,OAAO,MANH,CAQNA,GAEF,QAASD,IAAMA,EAAE2sB,aAAe1sB,EAAEo0C,cAAgBr0C,EAAE0sB,YAAczsB,EAAEk0C,aAXrB,CAY/Cl0C,GAGJ,OAAO,EAGT,SAASE,EAAEF,EAAGD,EAAGE,EAAGC,EAAGE,EAAGD,EAAGE,EAAGI,GAC9B,OAAON,EAAIH,GAAKK,EAAIN,GAAKI,EAAIH,GAAKK,EAAIN,EAAI,EAAII,GAAKH,GAAKS,GAAKR,GAAKI,GAAKN,GAAKU,GAAKR,EAAIE,EAAIH,EAAIE,EAAIG,EAAIN,GAAKU,EAAIR,GAAKE,EAAIH,GAAKS,EAAIR,EAAII,EAAIN,EAAIK,EAAI,EAGnI,ICzBXu1D,EAAY,EAsBhB,SAAS,EAAe38B,EAAM48B,GACf,OAAT58B,GDES,cACb,IAAI74B,EAAIuI,OACJrI,EAAID,EAAEy1D,WACNp1D,EAAIL,EAAE01D,MACN3zD,EAAI/B,EAAE21D,OACN9zD,EAAI7B,EAAE41D,SACNn0D,EAAIzB,EAAE61D,2BACNz1D,EAAI,mBAAqByB,EAAIA,EAAI,SAAUjC,GAC7C,OAAOA,IAAMiC,GAEf,IAAKjC,EAAED,GAAI,MAAM,IAAI6E,UAAU,kBAE/B,IAAK,IAAIxC,EAAIuG,SAASutD,kBAAoBvtD,SAAS6kB,gBAAiBjsB,EAAI,GAAID,EAAIvB,EAAGC,EAAEsB,IAAMd,EAAEc,IAAK,CAChG,IAAKA,EAAIA,EAAEq/B,cAAgBv+B,EAAG,CAC5Bb,EAAE0E,KAAK3E,GACP,MAGFA,IAAMqH,SAASC,MAAQ3I,EAAEqB,KAAOrB,EAAE0I,SAAS6kB,kBAAoBvtB,EAAEqB,EAAGO,IAAMN,EAAE0E,KAAK3E,GAGnF,IAAK,IAAIkB,EAAIrC,EAAEg2D,eAAiBh2D,EAAEg2D,eAAe9oC,MAAQknB,WAAYh0C,EAAIJ,EAAEg2D,eAAiBh2D,EAAEg2D,eAAe7oC,OAASmnB,YAAanxC,EAAIoF,OAAOqrC,SAAWqiB,YAAa9zD,EAAIoG,OAAOsrC,SAAWqiB,YAAa5J,EAAI1sD,EAAEkuC,wBAAyBjrC,EAAIypD,EAAEn/B,OAAQ8nB,EAAIqX,EAAEp/B,MAAO3qB,EAAI+pD,EAAEt/B,IAAKjqB,EAAIupD,EAAEx/B,MAAO3oB,EAAImoD,EAAEr/B,OAAQ+nB,EAAIsX,EAAEz/B,KAAMjqB,EAAI,UAAYtC,GAAK,YAAcA,EAAIiC,EAAI,QAAUjC,EAAI6D,EAAI5B,EAAIM,EAAI,EAAGW,EAAI,WAAaxB,EAAIgzC,EAAIC,EAAI,EAAI,QAAUjzC,EAAIe,EAAIiyC,EAAG1xC,EAAI,GAAIU,EAAI,EAAGA,EAAI5C,EAAE/B,OAAQ2E,IAAK,CACnd,IAAIvB,EAAIrB,EAAE4C,GACNkO,EAAIzP,EAAEqrC,wBACN6c,EAAIz4C,EAAEib,OACNzpB,EAAIwO,EAAEgb,MACNw9B,EAAIx4C,EAAE8a,IACN2/B,EAAIz6C,EAAE4a,MACNu/B,EAAIn6C,EAAE+a,OACN/pB,EAAIgP,EAAE2a,KACV,GAAI,cAAgB3sB,GAAKqC,GAAK,GAAKyyC,GAAK,GAAK7wC,GAAK/D,GAAK2C,GAAKV,GAAKE,GAAKmoD,GAAKvmD,GAAKkoD,GAAKrX,GAAK9xC,GAAKH,GAAK4pD,EAAG,OAAOrpD,EAC9G,IAAIZ,EAAI8pB,iBAAiB/pB,GACrBmB,EAAIsQ,SAASxR,EAAEyzD,gBAAiB,IAChC/L,EAAIl2C,SAASxR,EAAE0zD,eAAgB,IAC/B9jC,EAAIpe,SAASxR,EAAE2zD,iBAAkB,IACjCnyD,EAAIgQ,SAASxR,EAAE4zD,kBAAmB,IAClCjzD,EAAI,EACJU,EAAI,EACJqoD,EAAI,gBAAiB3pD,EAAIA,EAAEsvC,YAActvC,EAAE6pB,YAAc1oB,EAAI0uB,EAAI,EACjE9tB,EAAI,iBAAkB/B,EAAIA,EAAE0qC,aAAe1qC,EAAE8pB,aAAe69B,EAAIlmD,EAAI,EACxE,GAAIjC,IAAMQ,EAAGY,EAAI,UAAY/C,EAAIsC,EAAI,QAAUtC,EAAIsC,EAAIxC,EAAI,YAAcE,EAAIP,EAAEoC,EAAGA,EAAI/B,EAAGA,EAAGgqD,EAAGlmD,EAAG/B,EAAIS,EAAGT,EAAIS,EAAIC,EAAGA,GAAKD,EAAIxC,EAAI,EAAG2D,EAAI,UAAY/B,EAAIwB,EAAI,WAAaxB,EAAIwB,EAAInB,EAAI,EAAI,QAAUL,EAAIwB,EAAInB,EAAItC,EAAEoD,EAAGA,EAAId,EAAGA,EAAGuB,EAAG0uB,EAAGnvB,EAAIK,EAAGL,EAAIK,EAAIyxC,EAAGA,GAAI5xC,EAAIuD,KAAKsB,IAAI,EAAG7E,EAAIlB,GAAI4B,EAAI6C,KAAKsB,IAAI,EAAGnE,EAAIZ,OAAQ,CAC5SE,EAAI,UAAY/C,EAAIsC,EAAI8nD,EAAIN,EAAI,QAAU9pD,EAAIsC,EAAIypD,EAAInoD,EAAIM,EAAI,YAAclE,EAAIP,EAAE2qD,EAAG2B,EAAG1B,EAAGP,EAAGlmD,EAAIM,EAAG5B,EAAGA,EAAIC,EAAGA,GAAKD,GAAK8nD,EAAIC,EAAI,GAAKnmD,EAAI,EAAGT,EAAI,UAAY/B,EAAIwB,EAAIN,EAAIU,EAAI,WAAa5B,EAAIwB,GAAKN,EAAIQ,EAAI,GAAK0oD,EAAI,EAAI,QAAUpqD,EAAIwB,EAAImpD,EAAIr6B,EAAI85B,EAAIrsD,EAAEmD,EAAGypD,EAAGjpD,EAAGE,EAAG0uB,EAAI85B,EAAG5oD,EAAGA,EAAIyxC,EAAGA,GACrR,IAAI5wC,EAAI5B,EAAE8zD,WACN1yD,EAAIpB,EAAE+zD,UACV5zD,GAAKiB,GAAKR,EAAIuD,KAAKsB,IAAI,EAAGtB,KAAKC,IAAIhD,EAAIR,EAAGZ,EAAEwxC,aAAe0W,EAAInmD,KAAMhB,GAAKa,GAAKN,EAAI6C,KAAKsB,IAAI,EAAGtB,KAAKC,IAAIxC,EAAIN,EAAGtB,EAAEsxC,YAAcrwC,EAAI0oD,KAErI9oD,EAAEwC,KAAK,CACLunC,GAAI5qC,EACJuqB,IAAK3pB,EACLwpB,KAAM9oB,IAIV,OAAOT,ECnDO,CAAsBu1B,EAAM,CACxCg9B,SAAUJ,EACVE,MAAO,UACPD,WAAY,cAEN/pD,SAAQ,SAAUirB,GACxB,IAAIyW,EAAKzW,EAAKyW,GACVrgB,EAAM4J,EAAK5J,IACXH,EAAO+J,EAAK/J,KAChBwgB,EAAGmpB,UAAYxpC,EACfqgB,EAAGkpB,WAAa1pC,KAUpB,SAAS4pC,EAAiBx8B,EAAQ9D,GAChC,OAAO8D,IAAW9D,GAAS8D,EAAOiF,UAAYjF,EAAOiF,SAAS/I,GAYhE,SAASugC,EAASzrD,EAAI0rD,GACpB,IAAIC,EAEJ,SAASr3B,IACHq3B,GACF/yC,aAAa+yC,GAIjB,SAASC,IACP,IAAK,IAAI7qB,EAAOjnC,UAAU1F,OAAQggB,EAAO,IAAIlgB,MAAM6sC,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/E7sB,EAAK6sB,GAAQnnC,UAAUmnC,GAGzB3M,IACAq3B,EAAYhzC,YAAW,WACrBgzC,EAAY,KACZ3rD,EAAG1D,WAAM,EAAQ8X,KAChBs3C,GAIL,OADAE,EAAQt3B,OAASA,EACVs3B,EAWT,SAASC,IACP,IAAK,IAAIC,EAAQhyD,UAAU1F,OAAQ23D,EAAM,IAAI73D,MAAM43D,GAAQjlB,EAAQ,EAAGA,EAAQilB,EAAOjlB,IACnFklB,EAAIllB,GAAS/sC,UAAU+sC,GAGzB,OAAO,SAAUzL,GACf,IAAK,IAAI4wB,EAAQlyD,UAAU1F,OAAQggB,EAAO,IAAIlgB,MAAM83D,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxG73C,EAAK63C,EAAQ,GAAKnyD,UAAUmyD,GAG9B,OAAOF,EAAIl8C,MAAK,SAAU7P,GAKxB,OAJIA,GACFA,EAAG1D,WAAM,EAAQ,CAAC8+B,GAAOnhC,OAAOma,IAG3BgnB,EAAM8wB,yBAA2B9wB,EAAMnlC,eAAe,gBAAkBmlC,EAAM+wB,YAAYD,4BAKvG,SAASE,IACP,IAAK,IAAIC,EAAQvyD,UAAU1F,OAAQ4sC,EAAO,IAAI9sC,MAAMm4D,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFtrB,EAAKsrB,GAASxyD,UAAUwyD,GAG1B,OAAO,SAAU1+B,GACfoT,EAAKtgC,SAAQ,SAAU+zB,GACF,mBAARA,EACTA,EAAI7G,GACK6G,IACTA,EAAIvF,QAAUtB,OAWtB,SAAS2+B,IACP,OAAOt8C,OAAOs6C,KAoBhB,SAAS,EAAqBv+B,GAC5B,IAAIwgC,EAASxgC,EAAMwgC,OACfC,EAAczgC,EAAMygC,YAExB,OAAKD,EAIAC,EAIEA,EAAc,WAA6B,IAAhBA,EAAoB,MAAQ,SAAW,iFAHhE,4BAJA,GA6FX,SAASC,EAAS1tD,EAAO4F,GACvB,OAAOrQ,OAAOsD,KAAKmH,GAAOiiB,QAAO,SAAUi6B,EAAW1kD,GAEpD,OADA0kD,EAAU1kD,GAAOm2D,EAAiB/nD,EAAOpO,GAAOoO,EAAMpO,GAAOwI,EAAMxI,GAC5D0kD,IACN,IAaL,SAASyR,EAAiB/nD,EAAOpO,GAC/B,YAAsB+K,IAAfqD,EAAMpO,GASf,SAASo2D,EAAkBxxB,GACzB,IAAI5kC,EAAM4kC,EAAM5kC,IACZq2D,EAAUzxB,EAAMyxB,QAGpB,OAAIA,GAAW,IAAMA,GAAW,IAA+B,IAAzBr2D,EAAIyF,QAAQ,SACzC,QAAUzF,EAGZA,EAyBT,SAASs2D,EAAqBC,EAAYC,EAAWC,EAAWC,EAAsBC,QACnE,IAAbA,IACFA,GAAW,GAGb,IAAIC,EAAiBH,EAAY,GAER,iBAAdD,GAA0BA,EAAY,GAAKA,GAAaC,KACjED,EAAYD,EAAa,GAAK,EAAIK,EAAiB,GAGrD,IAAIC,EAAWL,EAAYD,EAEvBM,EAAW,EACbA,EAAWF,EAAWC,EAAiB,EAC9BC,EAAWD,IACpBC,EAAWF,EAAW,EAAIC,GAG5B,IAAIE,EAAsBC,EAAwBR,EAAYM,EAAUJ,EAAWC,EAAsBC,GACzG,OAAgC,IAAzBG,EAA6BN,EAAYM,EAclD,SAASC,EAAwBR,EAAYC,EAAWC,EAAWC,EAAsBC,GACvF,IAAIK,EAAqBN,EAAqBF,GAE9C,IAAKQ,IAAuBA,EAAmB3N,aAAa,YAC1D,OAAOmN,EAGT,GAAID,EAAa,GACf,IAAK,IAAI/xD,EAAQgyD,EAAY,EAAGhyD,EAAQiyD,EAAWjyD,IACjD,IAAKkyD,EAAqBlyD,GAAO6kD,aAAa,YAC5C,OAAO7kD,OAIX,IAAK,IAAIyyD,EAAST,EAAY,EAAGS,GAAU,EAAGA,IAC5C,IAAKP,EAAqBO,GAAQ5N,aAAa,YAC7C,OAAO4N,EAKb,OAAIN,EACKJ,EAAa,EAAIQ,EAAwB,EAAG,EAAGN,EAAWC,GAAsB,GAASK,GAAyB,EAAGN,EAAY,EAAGA,EAAWC,GAAsB,IAGtK,EAcV,SAASQ,EAAsBptC,EAAQqtC,EAAmBpwD,EAAUqwD,GAKlE,YAJ2B,IAAvBA,IACFA,GAAqB,GAGhBD,EAAkB99C,MAAK,SAAUg+C,GACtC,OAAOA,IAAgBrC,EAAiBqC,EAAavtC,IAAWstC,GAAsBpC,EAAiBqC,EAAatwD,EAAS4xC,mBAIjI,IAAI2e,EAAgBrC,GAAS,WAC3BsC,IAAerN,YAAc,KAC5B,KAMH,SAAS/lB,EAAUD,EAAQszB,GACzB,IAAIC,EAAMF,EAAaC,GAElBtzB,IAILuzB,EAAIvN,YAAchmB,EAClBozB,KASF,SAASC,EAAaC,QACC,IAAjBA,IACFA,EAAezwD,UAGjB,IAAI2wD,EAAYF,EAAaG,eAAe,uBAE5C,OAAID,KAIJA,EAAYF,EAAanpD,cAAc,QAC7Bk7C,aAAa,KAAM,uBAC7BmO,EAAUnO,aAAa,OAAQ,UAC/BmO,EAAUnO,aAAa,YAAa,UACpCmO,EAAUnO,aAAa,gBAAiB,kBACxCxrD,OAAOgV,OAAO2kD,EAAU9/B,MAAO,CAC7BggC,OAAQ,IACRC,KAAM,gBACNnsC,OAAQ,MACRosC,OAAQ,OACRzmB,SAAU,SACV0mB,QAAS,IACTptC,SAAU,WACVc,MAAO,QAET+rC,EAAaxwD,KAAKi7C,YAAYyV,GACvBA,GAwpCT,IAAIM,EAAqB,CACvBC,kBAAmB,EACnBjC,QAAQ,EACRkC,aAAc,KACdC,WAAY,IAGd,SAASC,EAAcjjC,GACrB,IAAIj0B,EAAKi0B,EAAKj0B,GACVm3D,EAAUljC,EAAKkjC,QACfC,EAASnjC,EAAKmjC,OACdC,EAAYpjC,EAAKojC,UACjBC,EAAiBrjC,EAAKqjC,eACtBC,OAAkB1tD,IAAP7J,EAAmB,aAAe60D,IAAe70D,EAChE,MAAO,CACLm3D,QAASA,GAAWI,EAAW,SAC/BH,OAAQA,GAAUG,EAAW,QAC7BF,UAAWA,GAAa,SAAU/zD,GAChC,OAAOi0D,EAAW,SAAWj0D,GAE/Bg0D,eAAgBA,GAAkBC,EAAW,kBAIjD,SAASC,EAAal0D,EAAOU,EAAMyzD,GACjC,YAAc5tD,IAAVvG,EACKA,EAGY,IAAjBm0D,EAAM/6D,QACA,EAGH+6D,EAAMlzD,QAAQP,GAyBvB,SAAS0zD,EAAiBr7C,GACxB,MAAO,GAAKA,EAAOrZ,MAAM,EAAG,GAAG4tB,cAAgBvU,EAAOrZ,MAAM,GAW9D,SAAS20D,EAAkBzqD,EAAO5F,EAAOswD,GACvC/6D,OAAOsD,KAAKmH,GAAO0B,SAAQ,SAAU6uD,IATvC,SAA+BC,EAAS5qD,EAAO5F,EAAOswD,GACpD,IAAIG,EAAU,KAAOL,EAAiBI,GAAW,SAE7C5qD,EAAM6qD,SAAiCluD,IAArB+tD,EAAQE,IAA0BF,EAAQE,KAAaxwD,EAAMwwD,IACjF5qD,EAAM6qD,GAASH,GAMfI,CAAsBH,EAAU3qD,EAAO5F,EAAOswD,MAG5C1qD,EAAM+qD,oBAA6BpuD,IAAZ+tD,GACzB1qD,EAAM+qD,cAAcL,GAIxB,SAASM,EAAmBC,EAASC,EAAclrD,GACjD,IAAImrD,EAAkB,uBAAY,SAAU/wD,EAAO66C,GACjD76C,EAAQ0tD,EAAS1tD,EAAO66C,EAAOj1C,OAC/B,IAAIorD,EAAmBnW,EAAOj1C,MAAMqrD,aAChCX,EAAUO,EAAQ7wD,EAAO66C,GACzBsB,EAAW6U,EAAiBhxD,EAAO,YAAS,GAAI66C,EAAQ,CAC1DyV,QAASA,KAGX,OADAD,EAAkBxV,EAAOj1C,MAAO5F,EAAOm8C,GAChCA,IACN,CAAC0U,IAEAK,EAAc,qBAAWH,EAAiBD,GAC1C9wD,EAAQkxD,EAAY,GACpBC,EAAWD,EAAY,GAE3B,MAAO,CAACxD,EAAS1tD,EAAO4F,GAAQurD,GA4BlC,IAAIrrD,EAAe,CACjBsrD,aAzFF,SAAsB10D,GACpB,OAAOA,EAAOuU,OAAOvU,GAAQ,IAyF7Bu0D,aAnBF,SAAsB95D,EAAGM,GACvB,OAAOA,EAAE64D,SAmBTe,wBATF,SAAiCC,GAC/B,IAAI5B,EAAe4B,EAAoB5B,aAEvC,OAAO6B,EADiBD,EAAoBF,cACnB1B,GAAgB,uBAOzC8B,eAAgB,EAChBC,oBAAoB,EACpBC,YAA+B,oBAAXpzD,OAElB,GAAKA,QAGT,SAASqzD,EAAgB/rD,EAAO4qD,GAC9B,IAAIoB,EAAiB,UAAYxB,EAAiBI,GAElD,OAAIoB,KAAkBhsD,EACbA,EAAMgsD,GAGRpC,EAAmBgB,GAG5B,SAASqB,EAAgBjsD,EAAO4qD,GAC9B,GAAIA,KAAW5qD,EACb,OAAOA,EAAM4qD,GAGf,IAAIsB,EAAiB,UAAY1B,EAAiBI,GAElD,OAAIsB,KAAkBlsD,EACbA,EAAMksD,GAGRH,EAAgB/rD,EAAO4qD,GAGhC,SAASuB,EAAgBnsD,GACvB,IAAI8pD,EAAemC,EAAgBjsD,EAAO,gBACtC4nD,EAASqE,EAAgBjsD,EAAO,UAChC6pD,EAAmBoC,EAAgBjsD,EAAO,oBAC1C+pD,EAAakC,EAAgBjsD,EAAO,cACxC,MAAO,CACL6pD,iBAAkBA,EAAmB,GAAKC,EAAe9pD,EAAMuqD,MAAMlzD,QAAQyyD,GAAgBD,EAC7FjC,OAAQA,EACRkC,aAAcA,EACdC,WAAYA,GAIhB,SAASqC,EAA0BpsD,EAAO5F,EAAOkd,EAAQgxC,GACvD,IAAIiC,EAAQvqD,EAAMuqD,MACd8B,EAA0BrsD,EAAMqsD,wBAChCC,EAA0BtsD,EAAMssD,wBAChCxC,EAAe1vD,EAAM0vD,aACrBD,EAAmBzvD,EAAMyvD,iBAE7B,YAAgCltD,IAA5B0vD,GAAyCxC,IAAqBwC,EACzDA,OAGuB1vD,IAA5B2vD,EACKA,EAGLxC,EACa,IAAXxyC,EACKizC,EAAMlzD,QAAQyyD,GAGhB5B,EAAqB5wC,EAAQizC,EAAMlzD,QAAQyyD,GAAeS,EAAM/6D,OAAQ84D,GAAsB,GAGxF,IAAXhxC,GACM,EAGHA,EAAS,EAAIizC,EAAM/6D,OAAS,EAAI,EAkChC,IAAUogB,MAAM28C,WACT,IAAUjjC,KACF,IAAUA,KACP,IAAUA,KACf,IAAUL,KACZ,IAAUuD,OACH,IAAUA,OACV,IAAUA,OAC3B,IAAUvD,KACH,IAAUA,KACV,IAAUA,KACX,IAAUujC,IACH,IAAUA,IACV,IAAUA,IAC3B,IAAUr9C,OACL,IAAUA,OACX,IAAUA,OACP,IAAUma,KACL,IAAUna,OACZ,IAAUma,KACF,IAAUA,KACN,IAAUA,KACrB,IAAUA,KACT,IAAUA,KACb,IAAUmjC,MAAM,CAC3B5xC,iBAAkB,IAAUyO,KAC5BnO,oBAAqB,IAAUmO,KAC/B3wB,SAAU,IAAU8zD,MAAM,CACxBlD,eAAgB,IAAUjgC,KAC1BihB,cAAe,IAAUiiB,IACzB5zD,KAAM,IAAU4zD,QA4BD,YAAS,GAAItsD,EAAc,CAC9CwsD,qBAhBF,SAAgC3lC,GAC9B,IAAI6gC,EAAS7gC,EAAK6gC,OACdC,EAAc9gC,EAAK8gC,YAEvB,OAAKD,EAIAC,EAIEA,EAAc,WAA6B,IAAhBA,EAAoB,MAAQ,SAAW,+FAHhE,4BAJA,MAkvBF,IAAUj4C,MAAM28C,WACT,IAAUjjC,KACF,IAAUA,KACP,IAAUA,KACf,IAAUL,KACZ,IAAUuD,OACH,IAAUA,OACV,IAAUA,OAC3B,IAAUvD,KACH,IAAUA,KACV,IAAUA,KACX,IAAUujC,IACH,IAAUA,IACV,IAAUA,IACnB,IAAUr9C,OACH,IAAUA,OACV,IAAUA,OACzB,IAAUA,OACL,IAAUA,OACX,IAAUA,OACP,IAAUma,KACZ,IAAUna,OACH,IAAUA,OACZ,IAAUma,KACF,IAAUA,KACN,IAAUA,KACrB,IAAUA,KACT,IAAUA,KACN,IAAUA,KACjB,IAAUmjC,MAAM,CAC3B5xC,iBAAkB,IAAUyO,KAC5BnO,oBAAqB,IAAUmO,KAC/B3wB,SAAU,IAAU8zD,MAAM,CACxBlD,eAAgB,IAAUjgC,KAC1BihB,cAAe,IAAUiiB,IACzB5zD,KAAM,IAAU4zD,QApCtB,IAyCIG,EAAiB,YAAS,GAAIzsD,EAAc,CAC9CwsD,qBAAsB,EACtBb,oBAAoB,IAsBlBe,EAAkCj9D,OAAOif,OAAO,CAClDxQ,UAAW,KACXyuD,sBArBmG,EAsBnGC,oBArB+F,EAsB/FC,mBArB4F,EAsB5FC,iBArBwF,EAsBxFC,gBArBsF,EAsBtFC,kBArB0F,EAsB1FC,YArB6E,EAsB7EC,UArByE,EAsBzEC,eArBsF,EAsBtFC,cArBoF,EAsBpFC,UArB2E,GAsB3EC,kBArB2F,GAsB3FC,mBArB8F,GAsB9FC,iBArB0F,GAsB1FC,kBArB4F,GAsB5FC,4BArBiH,GAsBjHC,mBArB8F,GAsB9FC,sBArBqG,GAsBrGC,cArBmF,KAyBrF,SAASC,EAA4B5zD,EAAO66C,GAC1C,IAGIyV,EAHAzvD,EAAOg6C,EAAOh6C,KACd+E,EAAQi1C,EAAOj1C,MACfiuD,EAAWhZ,EAAOgZ,SAGtB,OAAQhzD,GACN,KAzCkF,EA0ChFyvD,EAAU,CACRb,iBAAkB5U,EAAO7+C,OAE3B,MAEF,KA9CyE,GA+CvEs0D,EAAU,CACR9C,OAAQmE,EAAgB/rD,EAAO,UAC/B6pD,iBAAkBkC,EAAgB/rD,EAAO,oBACzC8pD,aAAc9pD,EAAMuqD,MAAMtV,EAAO7+C,OACjC2zD,WAAY/pD,EAAMwrD,aAAaxrD,EAAMuqD,MAAMtV,EAAO7+C,SAEpD,MAEF,KAjEiG,EAmE7Fs0D,EADEtwD,EAAMwtD,OACE,CACRiC,iBAAkB3B,EAAqB+F,EAAW,EAAI,EAAG7zD,EAAMyvD,iBAAkB7pD,EAAMuqD,MAAM/6D,OAAQylD,EAAOqT,qBAAsBtoD,EAAM6rD,qBAGhI,CACRhC,iBAAkBuC,EAA0BpsD,EAAO5F,EAAO,EAAG66C,EAAOqT,sBACpEV,QAAQ,GAIZ,MAEF,KA9E6F,EAgFzF8C,EADEtwD,EAAMwtD,OACE,CACRiC,iBAAkB3B,EAAqB+F,GAAY,GAAK,EAAG7zD,EAAMyvD,iBAAkB7pD,EAAMuqD,MAAM/6D,OAAQylD,EAAOqT,qBAAsBtoD,EAAM6rD,qBAGlI,CACRhC,iBAAkBuC,EAA0BpsD,EAAO5F,GAAQ,EAAG66C,EAAOqT,sBACrEV,QAAQ,GAIZ,MAEF,KAxFwF,EAyFtF8C,EAAU,YAAS,GAAItwD,EAAMyvD,kBAAoB,GAAK,CACpDC,aAAc9pD,EAAMuqD,MAAMnwD,EAAMyvD,kBAChCjC,OAAQmE,EAAgB/rD,EAAO,UAC/B6pD,iBAAkBkC,EAAgB/rD,EAAO,oBACzC+pD,WAAY/pD,EAAMwrD,aAAaxrD,EAAMuqD,MAAMnwD,EAAMyvD,qBAEnD,MAEF,KApG0F,EAqGxFa,EAAU,CACR9C,QAAQ,EACRkC,aAAc,KACdD,kBAAmB,EACnBE,WAAY,IAEd,MAEF,KA5GsF,EA6GpFW,EAAU,CACRb,iBAAkBlB,EAAwB,EAAG,EAAG3oD,EAAMuqD,MAAM/6D,OAAQylD,EAAOqT,sBAAsB,IAEnG,MAEF,KAjHoF,EAkHlFoC,EAAU,CACRb,iBAAkBlB,GAAyB,EAAG3oD,EAAMuqD,MAAM/6D,OAAS,EAAGwQ,EAAMuqD,MAAM/6D,OAAQylD,EAAOqT,sBAAsB,IAEzH,MAEF,KApHuE,EAqHrEoC,EAAU,YAAS,CACjB9C,QAAQ,GACPxtD,EAAMyvD,kBAAoB,GAAK,CAChCC,aAAc9pD,EAAMuqD,MAAMnwD,EAAMyvD,kBAChCE,WAAY/pD,EAAMwrD,aAAaxrD,EAAMuqD,MAAMnwD,EAAMyvD,mBACjDA,kBAAmB,IAErB,MAEF,KA/H2E,EAgIzEa,EAAU,CACR9C,QAAQ,EACRiC,iBAAkBkC,EAAgB/rD,EAAO,oBACzC+pD,WAAY9U,EAAO8U,YAErB,MAEF,KArIoF,EAsIlFW,EAAU,CACRb,kBAAmB,GAErB,MAEF,KAxIyF,GAyIzF,KAxI4F,GAyI1Fa,EAAU,CACR9C,QAASxtD,EAAMwtD,OACfiC,iBAAkBzvD,EAAMwtD,QAAU,EAAIwE,EAA0BpsD,EAAO5F,EAAO,IAEhF,MAEF,KA9IwF,GA+ItFswD,EAAU,CACR9C,QAAQ,EACRiC,iBAAkBuC,EAA0BpsD,EAAO5F,EAAO,IAE5D,MAEF,KApJ0F,GAqJxFswD,EAAU,CACR9C,QAAQ,GAEV,MAEF,KAzJ+G,GA0J7G8C,EAAU,CACRb,iBAAkB5U,EAAO4U,kBAE3B,MAEF,KA9J4F,GA+J1Fa,EAAU,CACRZ,aAAc7U,EAAO6U,cAEvB,MAEF,KAnKmG,GAoKjGY,EAAU,CACRX,WAAY9U,EAAO8U,YAErB,MAEF,KAxKiF,GAyK/EW,EAAU,CACRb,iBAAkBkC,EAAgB/rD,EAAO,oBACzC4nD,OAAQmE,EAAgB/rD,EAAO,UAC/B8pD,aAAciC,EAAgB/rD,EAAO,gBACrC+pD,WAAYgC,EAAgB/rD,EAAO,eAErC,MAEF,QACE,MAAM,IAAIzJ,MAAM,8CAGpB,OAAO,YAAS,GAAI6D,EAAO,GAAIswD,GAUjC,SAASwD,EAAYC,QACD,IAAdA,IACFA,EAAY,IAUd,IAAInuD,EAAQ,YAAS,GAAI2sD,EAAgB,GAAIwB,GAEzCC,EAAgBpuD,EAAMouD,cACtBC,EAAgBruD,EAAMquD,cACtB9D,EAAQvqD,EAAMuqD,MACdqB,EAAiB5rD,EAAM4rD,eACvBH,EAA0BzrD,EAAMyrD,wBAChCiB,EAAuB1sD,EAAM0sD,qBAC7BlB,EAAexrD,EAAMwrD,aACrBM,EAAc9rD,EAAM8rD,YAIpBwC,EAAsBtD,EAAmBgD,EAtS/C,SAA2BhuD,GACzB,IAAIkrD,EAAeiB,EAAgBnsD,GAC/B8pD,EAAeoB,EAAapB,aAC5BC,EAAamB,EAAanB,WAM9B,MAJmB,KAAfA,GAAqBD,QAA4CntD,IAA5BqD,EAAMuuD,wBAA+D5xD,IAA5BqD,EAAMwuD,wBAAwD7xD,IAArBqD,EAAM+pD,aAC/HA,EAAa/pD,EAAMwrD,aAAa1B,IAG3B,YAAS,GAAIoB,EAAc,CAChCnB,WAAYA,IA0RK0E,CAAkBzuD,GAEmDA,GACpF0uD,EAAuBJ,EAAoB,GAC3C1G,EAAS8G,EAAqB9G,OAC9BiC,EAAmB6E,EAAqB7E,iBACxCC,EAAe4E,EAAqB5E,aACpCC,EAAa2E,EAAqB3E,WAClC4E,EAAuBL,EAAoB,GAE3C/C,EAAW,SAAkBtW,GAC/B,OAAO0Z,EAAqB,YAAS,CACnC3uD,MAAOA,GACNi1C,KAKD2Z,EAAU,iBAAO,MACjBC,EAAW,mBACXC,EAAW,iBAAO,MAClBC,EAAkB,iBAAO,MACzBC,EAAc,iBAAO,MACzBH,EAASvkC,QAAU,GACnB,IAzUuBvD,EACnBj0B,EACAm8D,EACAC,EAEA7E,EAoUA8E,EAAe,kBAAO,GACtBC,EAAiB,kBAAO,GACxBC,EAAwB,iBAAO,CACjCC,aAAa,EACbC,aAAa,IAEXC,EAAa,kBA9Ub18D,GADmBi0B,EA+UiB/mB,GA9U1BlN,GACVm8D,EAAUloC,EAAKkoC,QACfC,EAAO,YAA8BnoC,EAAM,CAAC,KAAM,YAElDsjC,OAAkB1tD,IAAP7J,EAAmB,aAAe60D,IAAe70D,EACzD,YAAS,CACdm8D,QAASA,GAAW5E,EAAW,UAC9BL,EAAc,YAAS,CACxBl3D,GAAIA,GACHo8D,OA0UH,qBAAU,WACJE,EAAe9kC,SAInByL,EAAU22B,EAAqB,CAC7B7C,iBAAkBA,EAClBE,WAAYA,EACZnC,OAAQA,EACR4D,aAAcA,EACd3D,YAAa0C,EAAM/6D,OACnBigE,gBAAiBlF,EAAMV,GACvBC,aAAcA,IACZgC,EAAYnzD,YACf,CAACivD,IAGJ,qBAAU,WACJwH,EAAe9kC,SAInByL,EAAU01B,EAAwB,CAChC5B,iBAAkBA,EAClBE,WAAYA,EACZnC,OAAQA,EACR4D,aAAcA,EACd3D,YAAa0C,EAAM/6D,OACnBigE,gBAAiBlF,EAAMV,GACvBC,aAAcA,IACZgC,EAAYnzD,YACf,CAACmxD,IAGJ,qBAAU,WACJD,EAAmB,IAAMjC,IAAWiH,EAASvkC,QAAQ96B,UAI5B,IAAzB2/D,EAAa7kC,QACf6kC,EAAa7kC,SAAU,EAEvBshC,EAAeiD,EAASvkC,QAAQu/B,GAAmB+E,EAAQtkC,YAG5D,CAACu/B,IAGJ,qBAAU,WAEJuF,EAAe9kC,UAEb8jC,GAAiBC,GAAiBzG,IAChCkH,EAASxkC,SACXwkC,EAASxkC,QAAQ/iB,UAKtB,CAACqgD,IAGJ,qBAAU,WACRwH,EAAe9kC,SAAU,IACxB,IAGH,qBAAU,WAGR,IAAI2hB,EAAc,WAChBojB,EAAsB/kC,QAAQglC,aAAc,GAG1CI,EAAY,SAAmBl5B,GACjC64B,EAAsB/kC,QAAQglC,aAAc,EAExC1H,IAAWkB,EAAsBtyB,EAAM9a,OAAQ,CAACszC,EAAY1kC,QAASskC,EAAQtkC,QAASykC,EAAgBzkC,SAAUwhC,EAAYnzD,WAC9H4yD,EAAS,CACPtwD,KAnViE,KAwVnEixC,EAAe,WACjBmjB,EAAsB/kC,QAAQilC,aAAc,GAG1CI,EAAc,WAChBN,EAAsB/kC,QAAQilC,aAAc,GAG1CK,EAAa,SAAoBp5B,IAC/BoxB,GAAWyH,EAAsB/kC,QAAQilC,aAAgBzG,EAAsBtyB,EAAM9a,OAAQ,CAACszC,EAAY1kC,QAASskC,EAAQtkC,QAASykC,EAAgBzkC,SAAUwhC,EAAYnzD,UAAU,IACtL4yD,EAAS,CACPtwD,KAnWiE,KA6WvE,OALA6wD,EAAYjxC,iBAAiB,YAAaoxB,GAC1C6f,EAAYjxC,iBAAiB,UAAW60C,GACxC5D,EAAYjxC,iBAAiB,aAAcqxB,GAC3C4f,EAAYjxC,iBAAiB,YAAa80C,GAC1C7D,EAAYjxC,iBAAiB,WAAY+0C,GAClC,WACL9D,EAAY3wC,oBAAoB,YAAa8wB,GAC7C6f,EAAY3wC,oBAAoB,UAAWu0C,GAC3C5D,EAAY3wC,oBAAoB,aAAc+wB,GAC9C4f,EAAY3wC,oBAAoB,YAAaw0C,GAC7C7D,EAAY3wC,oBAAoB,WAAYy0C,OAIhD,IAAItH,EAAuB,SAA8BlyD,GACvD,OAAOy4D,EAASvkC,QAAQl0B,IAKtBy5D,EAAuB,CACzBC,UAAW,SAAmBt5B,GAC5BA,EAAMsa,iBACNya,EAAS,CACPtwD,KAvY6F,EAwY7FgzD,SAAUz3B,EAAMy3B,SAChB3F,qBAAsBA,KAG1ByH,QAAS,SAAiBv5B,GACxBA,EAAMsa,iBACNya,EAAS,CACPtwD,KA9YyF,EA+YzFgzD,SAAUz3B,EAAMy3B,SAChB3F,qBAAsBA,KAG1B0H,KAAM,SAAcx5B,GAClBA,EAAMsa,iBACNya,EAAS,CACPtwD,KApZkF,EAqZlFqtD,qBAAsBA,KAG1B2H,IAAK,SAAaz5B,GAChBA,EAAMsa,iBACNya,EAAS,CACPtwD,KA1ZgF,EA2ZhFqtD,qBAAsBA,KAG1B4H,OAAQ,WACN3E,EAAS,CACPtwD,KAlasF,KAqa1Fk1D,MAAO,SAAe35B,GACpBA,EAAMsa,iBACNya,EAAS,CACPtwD,KAraoF,EAsapFqtD,qBAAsBA,MAKxB8H,EAAqB,SAA4B55B,GACnD,IAAI5kC,EAAMo2D,EAAkBxxB,GAExB5kC,GAAOi+D,EAAqBj+D,IAC9Bi+D,EAAqBj+D,GAAK4kC,IAI1B65B,EAAoB,SAA2B75B,GACjD+0B,EAAS,CACPtwD,KApbyE,EAqbzE8uD,WAAYvzB,EAAM9a,OAAO3qB,SAIzBu/D,EAAkB,WAEfjB,EAAsB/kC,QAAQglC,aACjC/D,EAAS,CACPtwD,KA5bmE,KAicrEs1D,EAAuB,WACzBhF,EAAS,CACPtwD,KAlckF,KAydlFu1D,EAA0B,YACvB5I,GAAUkH,EAASxkC,SACtBwkC,EAASxkC,QAAQ/iB,QAGnBgkD,EAAS,CACPtwD,KA5duF,MAie3F,MAAO,CAELw1D,aAAc,SAAsBx5B,GAClC,IAAI5P,EAAWmU,OAED,IAAVvE,IACFA,EAAQ,IAGV,IAAIC,EAAQD,EACRngC,EAAOogC,EAAMpgC,KACbV,EAAQ8gC,EAAM9gC,MACds6D,EAAex5B,EAAMy5B,OACrBA,OAA0B,IAAjBD,EAA0B,MAAQA,EAC3C7gC,EAAMqH,EAAMrH,IACZ+f,EAAc1Y,EAAM0Y,YACpBuB,EAAUja,EAAMia,QAEhB+d,GADUh4B,EAAM05B,QACT,YAA8B15B,EAAO,CAAC,OAAQ,QAAS,SAAU,MAAO,cAAe,UAAW,aAEzG25B,EAAYvG,EAAal0D,EAAOU,EAAMyzD,GAE1C,GAAIsG,EAAY,EACd,MAAM,IAAIt6D,MAAM,mDAGlB,IACIu6D,EAAqB3f,EACzB,OAAO,cAAU9pB,EAAY,IAAcspC,GAAUnJ,EAAW33B,GAAK,SAAUkhC,GACzEA,GACFlC,EAASvkC,QAAQr0B,KAAK86D,MAEtB1pC,EAAU2pC,KAAO,SAAU3pC,EAAU,iBAAmB,IAAMwpC,IAAchH,GAAmBxiC,EAAUv0B,GAAK08D,EAAWllC,QAAQ6/B,UAAU0G,GAAYxpC,IAAa6nC,EAAKhmB,YAAa1N,EAAQ,CAChMoU,YAAaqX,EAAqBrX,GAAa,YA/D3B,SAA6Bx5C,GACjDA,IAAUyzD,IAIdsF,EAAa7kC,SAAU,EACvBihC,EAAS,CACPtwD,KA5cgF,EA6chF7E,MAAOA,KAwDH66D,CAAoBJ,QAEJ,QAAI5J,EAAqB6J,GAAoB,YAtD/C,SAAyB16D,GAC7Cm1D,EAAS,CACPtwD,KAlduE,GAmdvE7E,MAAOA,IAoDL86D,CAAgBL,MACdr1B,GAAQ,GAAI0zB,IAElBiC,cAAe,SAAuBC,GACpC,OAAO,YAAS,CACdt+D,GAAI08D,EAAWllC,QAAQ2/B,QACvBoH,QAAS7B,EAAWllC,QAAQ2kC,SAC3BmC,IAELE,aAAc,SAAsBvqC,GAClC,IAAIC,OAES,IAATD,IACFA,EAAO,IAGT,IAAIK,EAAQL,EACRilB,EAAe5kB,EAAM4kB,aACrBulB,EAAenqC,EAAMupC,OACrBA,OAA0B,IAAjBY,EAA0B,MAAQA,EAC3C1hC,EAAMzI,EAAMyI,IACZq/B,EAAO,YAA8B9nC,EAAO,CAAC,eAAgB,SAAU,QAE3E,OAAO,cAAUJ,EAAY,IAAc2pC,GAAUnJ,EAAW33B,GAAK,SAAU+1B,GAC7EgJ,EAAQtkC,QAAUs7B,KAChB5+B,EAAUl0B,GAAK08D,EAAWllC,QAAQ4/B,OAAQljC,EAAUgqC,KAAO,UAAWhqC,EAAU,mBAAqBwoC,EAAWllC,QAAQ2/B,QAASjjC,EAAUglB,aAAeib,EAAqBjb,EAAcukB,GAAuBvpC,GAAYkoC,IAEtOsC,cAAe,SAAuBC,GACpC,IAAIzpC,OAEU,IAAVypC,IACFA,EAAQ,IAGV,IAiBMC,EAjBFC,EAAQF,EACRG,EAAYD,EAAMC,UAClBC,EAAWF,EAAME,SACjBC,EAAUH,EAAMG,QAChBphB,EAASihB,EAAMjhB,OAEfqhB,GADeJ,EAAMK,aACNL,EAAMhB,QACrBA,OAA0B,IAAjBoB,EAA0B,MAAQA,EAC3CliC,EAAM8hC,EAAM9hC,IACZq/B,EAAO,YAA8ByC,EAAO,CAAC,YAAa,WAAY,UAAW,SAAU,eAAgB,SAAU,QAKrH36B,EAAgB,GAEfk4B,EAAKhmB,YAGSwoB,EAAiB,IAA8B,SAAIzK,EAAqB4K,EAAUC,EAASzB,GAAoBqB,EAAeE,UAAY3K,EAAqB2K,EAAWxB,GAAqBsB,EAAehhB,OAASuW,EAAqBvW,EAAQ4f,GAArQt5B,EAAuR06B,GAKzR,OAAO,cAAU1pC,EAAY,IAAc2oC,GAAUnJ,EAAW33B,GAAK,SAAUoiC,GAC7EnD,EAASxkC,QAAU2nC,KACjBjqC,EAAUl1B,GAAK08D,EAAWllC,QAAQ2kC,QAASjnC,EAAU,qBAAuB,OAAQA,EAAU,iBAAmBwnC,EAAWllC,QAAQ4/B,OAAQliC,GAAY6hC,GAAoB,GAAK,CACnL,wBAAyB2F,EAAWllC,QAAQ6/B,UAAUN,IACrD,CACD,kBAAmB2F,EAAWllC,QAAQ2/B,QAGtCiI,aAAc,MACdnhE,MAAOg5D,GACN/yB,EAAe,GAAIk4B,IAExBiD,iBAAkB,SAA0BC,GAC1C,IAAIC,OAEW,IAAXD,IACFA,EAAS,IAGX,IAAIE,EAASF,EACTG,EAAgBD,EAAO3B,OACvBA,OAA2B,IAAlB4B,EAA2B,MAAQA,EAC5C1iC,EAAMyiC,EAAOziC,IACbq/B,EAAO,YAA8BoD,EAAQ,CAAC,SAAU,QAE5D,OAAO,cAAUD,EAAY,IAAc1B,GAAUnJ,EAAW33B,GAAK,SAAU2iC,GAC7ExD,EAAY1kC,QAAUkoC,KACpBH,EAAUrB,KAAO,WAAYqB,EAAU,iBAAmB,UAAWA,EAAU,aAAe7C,EAAWllC,QAAQ4/B,OAAQmI,EAAU,iBAAmBzK,EAAQyK,GAAYnD,IAEhLuD,qBAAsB,SAA8BC,GAClD,IAAIprC,OAEU,IAAVorC,IACFA,EAAQ,IAGV,IAAIC,EAAQD,EACRvhB,EAAUwhB,EAAMxhB,QAEhByhB,GADUD,EAAM/B,QACD+B,EAAMhC,QACrBA,OAA0B,IAAjBiC,EAA0B,MAAQA,EAC3C/iC,EAAM8iC,EAAM9iC,IACZq/B,EAAO,YAA8ByD,EAAO,CAAC,UAAW,UAAW,SAAU,QAEjF,OAAO,cAAUrrC,EAAY,IAAcqpC,GAAUnJ,EAAW33B,GAAK,SAAUgjC,GAC7E9D,EAAgBzkC,QAAUuoC,KACxBvrC,EAAUx0B,GAAK08D,EAAWllC,QAAQ8/B,eAAgB9iC,EAAUwrC,UAAY,EAAGxrC,IAAa4nC,EAAKhmB,UAAY,YAAS,GAAI,CACxHiI,QAAS8V,EAAqB9V,EAASqf,KACrC,GAAItB,IAGV6D,WAAY,WACVxH,EAAS,CACPtwD,KApnBwF,MAunB5F+3D,SAAU,WACRzH,EAAS,CACPtwD,KAxnBoF,MA2nBxFg4D,UAAW,WACT1H,EAAS,CACPtwD,KA5nBsF,MA+nB1Fi4D,oBAAqB,SAA6BC,GAChD5H,EAAS,CACPtwD,KAhoB2G,GAioB3G4uD,iBAAkBsJ,KAGtBC,cAAe,SAAuBC,GACpC9H,EAAS,CACPtwD,KApoB+F,GAqoB/F8uD,WAAYsJ,KAGhBC,WAAY,SAAoBC,GAC9BhI,EAAS,CACPtwD,KA3oBwF,GA4oBxF6uD,aAAcyJ,KAGlB71D,MAAO,WACL6tD,EAAS,CACPtwD,KA/oB6E,MAmpBjF4uD,iBAAkBA,EAClBjC,OAAQA,EACRkC,aAAcA,EACdC,WAAYA,GAzdhBmE,EAAYsF,iBAAmB5G,EA6dhB,ICn0GH6G,E,8EAaZ,SAAS3oD,KACP,OAAO84B,UAAUC,UAGJ,SAAS14B,KACtB,IAAMuoD,EAAK5oD,KACL6oD,EAAgBC,IAAOnpD,MAAMipD,GAC7B1oD,EAAUrb,OAAOgV,OAAO,GAAIgvD,GAC5BE,EAAS7oD,EAAQS,GAAG3b,KAAOkb,EAAQS,GAAG3b,KAAK6H,cAAgB,MAQjE,OANAqT,EAAQ8oD,MAAQD,EAAOxV,SAAS,OAChCrzC,EAAQ+oD,OAAS/oD,EAAQ8oD,MACzB9oD,EAAQgpD,QAAUhpD,EAAQ8oD,MAAQ,IAAM,OACxC9oD,EAAQipD,UAAYjpD,EAAQ8oD,MAAQ,IAAM,MAC1C9oD,EAAQijD,SAAWjjD,EAAQ8oD,MAAQ,IAAM,QAElC9oD,EAkBF,SAASa,KACd,IAAIC,EAAW,MACT4nD,EAAK5oD,KAYX,OA5BWA,KACDuzC,SAAS,WAkBfvyC,EADE,WAAW5H,KAAKwvD,GACP,cAEA,WAjBV,WACL,IAAMA,EAAK5oD,KACX,MAAO,kBAAkB5G,KAAKwvD,GAiBnBQ,GAbK/oD,KACDW,SAAS7Q,OAASw4D,EAAaU,SAe5CroD,EAAW,cAFXA,EAAW,aAINA,G,SA7DG2nD,K,kBAAAA,E,gBAAAA,E,iBAAAA,M,sBCKL,SAASW,GACdC,EACAC,EACAC,GA+BAC,eAAeC,WAAW,sBAC1BD,eAAeC,WAAW,wBAC1BD,eAAeC,WAAW,oBA9B1BD,eAAeE,QAAQ,qBAAsBL,GAC7CC,GACEE,eAAeE,QAAQ,uBAAwBJ,GACjDC,GAAkBC,eAAeE,QAAQ,mBAAoBH,G,sCCNhD,SAASI,GAAS30D,GAAsB,IAC7Cy3B,EAAoBz3B,EAApBy3B,OAAQ0Z,EAAYnxC,EAAZmxC,QAChB,OACE,yBACE9X,UAAWu7B,KAAW,YAAa,CACjC,mBAAoBn9B,IAEtB0Z,QAASA,IAKfwjB,GAASz0D,aAAe,CACtBu3B,QAAQ,EACR0Z,QAAS,cCtBIwjB,U,UCmBf,SAASE,GAAO70D,GAAoB,IAC1By3B,EAA6Cz3B,EAA7Cy3B,OAAQq9B,EAAqC90D,EAArC80D,YAAa3sC,EAAwBnoB,EAAxBmoB,SAAUoqB,EAAcvyC,EAAduyC,UAEvC,SAASwiB,IACoB,mBAAhBD,GACTA,IAIJ,OACE,oCACE,yBACEz7B,UAAWu7B,KAAW,OAAQ,CAAEI,MAAOv9B,GAAU8a,GACjDpB,QAAS4jB,IACX,yBAAK17B,UAAWu7B,KAAW,OAAQ,CAAEK,KAAMx9B,GAAU8a,IACnD,yBAAKlZ,UAAU,YAAY8X,QAAS4jB,GAClC,kBAAC,GAAD,CAAUt9B,OAAQA,KAEnBtP,IAMT0sC,GAAO30D,aAAe,CACpB40D,YAAa,aACbr9B,QAAQ,EACR8a,UAtCO,SAyCMsiB,ICjDAA,GDiDAA,G,gDE7BFK,I,UAAb,kGACEpzD,OAAA,WAAS,MACmBjN,KAAKmL,MAAvBm1D,EADD,EACCA,QAASC,EADV,EACUA,KACjB,OACE,mBACEC,GAAI,CACF/7B,QAAS,OACTg8B,eAAgB,gBAChB/4C,SAAU,WACVS,KAAM,EACNG,IAAK,EACLF,MAAO,EACP6e,OAAQ,EACRy5B,cAAe,QACfC,gBACE,0FAEJ,YAAC,IAAD,CACElmD,GAAI9W,IAAO,QACX68D,GAAI,CAAEI,WAAY,MAAOC,UAAW,QACpCr8B,UAAU,qBACT+7B,GAAQ,YAAC,KAAD,MACT,mBACEC,GAAI,CAAEM,GAAI,OAAQt4C,MAAO,MAAOC,OAAQ,OAAQs4C,GAAI,QACpDv8B,UAAU,YAEZ,mCAEF,mBAAKg8B,GAAI,CAAEQ,YAAa,OAAQC,WAAY,OAAQC,SAAU,IAC3DZ,EAAQp0D,KAAI,SAACi1D,GACZ,MAAiB,yBAAbA,EAAIrrC,KAEJ,oBACE/4B,IAAKokE,EAAIrrC,KACTwmB,QAAS,WACPijB,GAAiB,YAAa,YAC9BtiE,SAASmkE,KAAOD,EAAIrrC,MAEtB0qC,GAAI,CACFa,GAAI,MACJC,GAAI,OACJC,UAAW,SACXC,aAAc,EACdR,YAAa,OACbvnD,MAAO,UACPsnD,GAAI,OACJG,SAAU,EACVO,OAAQ,UACR,UAAW,CAAEhoD,MAAO,aAErB0nD,EAAIO,OAKT,YAAC,IAAD,CACE3kE,IAAKokE,EAAIrrC,KACTrb,GAAI0mD,EAAIrrC,KACR0qC,GAAI,CACFQ,YAAa,OACbvnD,MAAO,OACP,UAAW,CAAEA,MAAO,UAErB0nD,EAAIO,aA/DrB,GAAiCz2D,IAAMiC,YAkF1By0D,GAAb,YAIE,WAAYx2D,GAA6B,aACvC,cAAMA,IAAN,MAMFy2D,UAAY,SAACl4C,GACX,EAAKsc,SAAS,CACZpD,OAAQlZ,KAT6B,EAazCw2C,gBAAkB,WAChB,EAAK0B,WAAU,IAdwB,EAiBzCC,gBAAkB,WAChB,EAAKD,WAAU,IAlBwB,EAqBzCE,WAAa,WACX,EAAKF,WAAU,IApBf,EAAKr8D,MAAQ,CACXq9B,QAAQ,GAH6B,EAJ3C,oCA6BE31B,OAAA,WAAS,WACC21B,EAAW5iC,KAAKuF,MAAhBq9B,OADD,EAEwB5iC,KAAKmL,MAA5Bm1D,EAFD,EAECA,QAASyB,EAFV,EAEUA,UACjB,OACE,mBACEvB,GAAI,CACFh4C,MAAO,OACPC,OAAQ,OACRs4C,GAAI,OACJ95B,OAAQ,KACRvf,SAAU,YAEZ8c,UAAU,8BACV,mBACEg8B,GAAI,CACF94C,SAAU,WACVwgB,UAAW,6BACX5f,IAAK,QAEP,YAAC,KAAD,OAEF,mBACEk4C,GAAI,CACF94C,SAAU,WACVY,IAAK,OACLF,MAAO,OACP84C,SAAU,SAEZ,YAAC,IAAD,CAAMzmD,GAAIsnD,EAAUjsC,MAClB,YAAC,UAAD,CAAQwmB,QAAS,kBAAMijB,GAAiB,YAAa,cAClDwC,EAAUL,SAIjB,mBAAKl9B,UAAU,qBACb,YAAC,GAAD,CAAU5B,OAAQA,EAAQ0Z,QAASt8C,KAAK6hE,kBACxC,YAAC,GAAD,CAAQj/B,OAAQA,EAAQq9B,YAAajgE,KAAKkgE,iBACxC,mBAAK17B,UAAU,OACb,sBACG87B,EAAQp0D,KAAI,SAACjK,GAAD,OACX,kBAAIlF,IAAKkF,EAAKy/D,OACZ,YAAC,IAAD,CACEplB,QAAS,WACP,EAAKwlB,cAEPrnD,GAAIxY,EAAK6zB,MACR7zB,EAAKy/D,iBA3E5B,GAAqCz2D,IAAMiC,W,0DCvF3C,SAAS80D,GACPn7C,EACAo7C,EACA9mC,GAIA,IAFA,IAAMgW,EAAM,IAAInuC,OAAO6jB,EAAO5jB,QAAQ,sBAAuB,QAAS,MAClEi/D,EAAM,KACFA,EAAM/wB,EAAIgxB,KAAKF,IACrB9mC,EAAG+mC,GAEL/mC,EAAG,MAGL,SAASinC,KAAc,MACGn3D,IAAM0sC,SAAS,IAAhC0qB,EADc,KACRC,EADQ,KAGfC,EAAOhhD,YAAc,cAmCrBm0C,EAAQ6M,EAAKC,SAASxb,MACtByb,EAAOx3D,IAAM6sC,SACjB,kBACE,IAAI4qB,IAAKhN,EAAO,CACdn3D,YAAY,EACZU,UAAU,EACV9B,UAAW,GACXF,SAAU,EACVC,SAAU,IACVgD,iBAAiB,EACjB7C,iBAAkB,GAClBS,mBAAoB,EACpBM,KAAM,CAAC,oBAAqB,YAEhC,CAACs3D,IApDkB,EAuDezqD,IAAM0sC,SAAuB,IAA1DgrB,EAvDc,KAuDFC,EAvDE,OAwDe33D,IAAM0sC,SAAS,IAA5Cud,EAxDc,KAwDFqJ,EAxDE,KA+EfsE,EAAWxJ,EAAY,CAC3B3D,MAAOiN,EAAW/8C,QAAO,SAACuO,GAAD,OAAUA,EAAK2uC,QAAU3uC,EAAK2uC,OAAOC,cAC9DC,mBAAoB,YAAoB,IAChC9mE,EADgC,EAAjBg5D,YACO,GAC5B0N,EA1Be,SAAC1mE,GAClB,OAAOumE,EAAK7gE,OAAO1F,GAAO0pB,QAAO,SAACuO,GAChC,GAAIA,EAAK8uC,aAAe9uC,EAAK8uC,YAAYhjD,OACpB,IAAIjd,OAAO9G,EAAO,KAAKmT,KAAK8kB,EAAK8uC,YAAYhjD,OAE9D,OAAO,EAKX,GAAIkU,EAAK+uC,KAAM,CACb,IAAMA,EAAO/uC,EAAK+uC,KAAKjgE,QAAQ,WAAY,IAE3C,GADkB,IAAID,OAAO9G,EAAO,KAAKmT,KAAK6zD,GAE5C,OAAO,EAIX,OAAO,KAQOC,CAAWjnE,IACzBqiE,EAAcriE,IAEhBy6D,aAAc,SAACxiC,GAAD,OACXA,GAAQA,EAAK8uC,aAAe9uC,EAAK8uC,YAAYhjD,OAAU,IAC1DmjD,qBAAsB,YAAsB,IAAnBnO,EAAmB,EAAnBA,aACnBA,GAAgBA,EAAa6N,QAAU7N,EAAa6N,OAAOO,OAC7DC,YAASrO,EAAa6N,OAAOO,MAC7B9E,EAAc,QAKdgF,EAAeZ,EAAW/8C,QAC9B,SAACuO,GAAD,OAAUA,EAAK2uC,QAAU3uC,EAAK2uC,OAAOC,cAyJjCS,EAAwB,CAC5Bh7C,MAAO5kB,cAAa,OAAS,GAC7B0kB,IAAK1kB,cAAa,MAAQ,GAC1BukB,KAAMvkB,cAAa,OAAS,GAC5B6kB,OAAQ7kB,cAAa,OAAS,IAG1B6/D,EAAe,CACnBj7C,MAAO5kB,cAAa,OAAS,OAC7B6V,MAAO,UACPgP,OAAQ7kB,cAAa,OAAS,QAG1B8/D,EAAgB,CACpB5O,QAASlxD,eAAc,sBACvBs9D,SAAUt9D,eAAc,QAG1B,OACE,iCAAK48D,GAAI,CAAE94C,SAAU,aAAkBm7C,EAASvF,oBAC9C,mCACEd,QAAQ,UACJqG,EAASvG,cAAc,CACzBE,QAAS,WAHb,CAKEgE,GAAIgD,EACJh/B,UAAU,gBACV,YAAC,KAAD,CAAYg8B,GAAIiD,KAElB,mCACExlE,GAAG,SACHmI,KAAK,OACLlK,MAAOmmE,EACPrF,SAAU,SAACr7B,GAAD,OAAW2gC,EAAQ3gC,EAAM9a,OAAO3qB,QAC1CynE,YACEpB,EAAKjhD,MACLihD,EAAKjhD,KAAKI,cACV6gD,EAAKjhD,KAAKI,aAAakiD,OACvBrB,EAAKjhD,KAAKI,aAAakiD,MAAMC,sBAE/BxG,aAAa,MACb74B,UAAU,eACVg8B,GAAIkD,GACAb,EAASlG,cAAc,CACzB1+D,GAAI,SACJ8+D,UAAW,SAACp7B,GACV,GAAkB,UAAdA,EAAM5kC,IAAiB,CAEzB,IAAM+mE,EAAgBjB,EAAS7N,iBAC/B,IAAuB,IAAnB8O,EAAsB,CACxB,IAAM7O,EAAesO,EAAaO,GAEhC7O,GACAA,EAAa6N,QACb7N,EAAa6N,OAAOO,OAEpBC,YAASrO,EAAa6N,OAAOO,MAC7B9E,EAAc,YAO1B,mCAASsE,EAASpG,eAAlB,CAAkCj4B,UAAU,kBAtH/Bq+B,EAAS9P,SAGrBwQ,EAAa5oE,OACZ,uBAnGJ4oE,EAAar3D,KAAI,SAACioB,EAAM5yB,GACtB,IAAK2zD,EAAY,MAAO,GACxB,IAAM6O,EAAwB,GACxB7rC,EAAM/D,EAAK8uC,aAAe9uC,EAAK8uC,YAAYhjD,MAE3C+jD,EAAc7vC,EAAK+uC,MAAQ/uC,EAAK+uC,KAAKjgE,QAAQ,WAAY,IAC/D,GAAIi1B,EAAK,CACP,IAAI+rC,EAAY,EAChBjC,GAAe9M,EAAYh9B,GAAK,SAACgqC,GAC3BA,IACF6B,EAAO3iE,KAAK,8BAAG82B,EAAIj3B,MAAMgjE,EAAW/B,EAAI3gE,SACxCwiE,EAAO3iE,KACL,wBAAO82B,EAAIj3B,MAAMihE,EAAI3gE,MAAO2gE,EAAI3gE,MAAQ2zD,EAAWv6D,UAErDspE,EAAY/B,EAAI3gE,MAAQ2zD,EAAWv6D,WAMzC,GAAIqpE,EAAa,CACf,IAAIC,EAAY,EACVN,EAAcI,EAAOppE,OAAS,GAAK,MACzCqnE,GAAe9M,EAAY8O,GAAa,SAAC9B,GACnCA,GAEF6B,EAAO3iE,KACL,8BACGuiE,EACAK,EAAY/iE,MACXihE,EAAI3gE,OAAS0iE,EAAY,EAAI/B,EAAI3gE,MAAQ,EACzC2gE,EAAI3gE,OAEN,wBACGyiE,EAAY/iE,MAAMihE,EAAI3gE,MAAO2gE,EAAI3gE,MAAQ2zD,EAAWv6D,WAI3DspE,EAAY/B,EAAI3gE,MAAQ2zD,EAAWv6D,QAGnCopE,EAAO3iE,KAAK,8BAAG4iE,EAAY/iE,MAAMgjE,QAIvC,IAAMx8D,EAAS,CACb,oBAAM1K,IAAKo3B,EAAK2uC,QAAU3uC,EAAK2uC,OAAOO,MACnClvC,EAAK2uC,QACJ3uC,EAAK2uC,OAAOC,YACZ5uC,EAAK2uC,OAAOC,WAAW9iD,OAE3B,mBACEljB,IAAQo3B,EAAKl2B,GAAV,WACH02B,MAAO,CACLksC,UAAW,MACXK,SAAU,OACVznD,MAAO,oBACPyqD,WAAY,OACZ91B,SAAU,SACV+1B,UAAW,EACX1/B,QAAS,cACT2/B,gBAAiB,WACjBC,gBAAiB,IAElBN,IAGL,OACE,iCACEhnE,IAAKo3B,EAAKl2B,IACN4kE,EAASjH,aAAa,CACxB35D,KAAMkyB,EACN5yB,WAEF,YAAC,IAAD,CACEkZ,GAAK0Z,EAAK2uC,QAAU3uC,EAAK2uC,OAAOO,MAAS,GACzC7C,GAAI,CACF8D,WACEzB,EAAS7N,mBAAqBzzD,EAAQ,UAAY,UACpD2/D,SAAWt9D,cAAc,YAAWkE,IAEtC,mBAAK08B,UAAU,yBACb,kBACEg8B,GAAI,CACFU,SAAWt9D,cAAc,YAAWkE,IAErCL,SAeP,mBACEktB,MAAO,CACL4sC,UAAW,SACXzM,QAAS,WACTrwB,QAAS,OACTg8B,eAAgB,SAChB8D,WAAY,SACZrD,SAAU,SAPd,YAUE,iBACEvsC,MAAO,CACLmgC,QAAS,MACT0M,aAAc,OAEhBgD,IAAI,sBACJpD,KAAK,4EACLv6C,OAAO,UAPT,YAYFquC,EAAWv6D,OACb,mBACEg6B,MAAO,CACL4sC,UAAW,SACXzM,QAAS,WACTrwB,QAAS,OACTg8B,eAAgB,SAChB8D,WAAY,SACZrD,SAAU,SAPd,YAUE,iBACEvsC,MAAO,CACLmgC,QAAS,MACT0M,aAAc,OAEhBgD,IAAI,sBACJpD,KAAK,4EACLv6C,OAAO,UAPT,WAWA,QA2EV,IAAMy5C,GAAqB,CACzB,CACExqC,KAAMnyB,IAAO,IACb+9D,MAAO,MAET,CACE5rC,KAAMnyB,IAAO,aACb+9D,MAAO,OAET,CACE5rC,KAAMnyB,IAAO,QACb+9D,MAAO,MAET,CACE5rC,KAAMnyB,IAAO,WACb+9D,MAAO,MAET,CACE5rC,KAAMnyB,IAAO,cACb+9D,MAAO,OAET,CACE5rC,KAAMnyB,IAAO,QACb+9D,MAAO,OAIL+C,GAAuB,CAC3B3uC,KAAMnyB,IAAO,OACb+9D,MAAO,QAGHgD,GAA2B,CAC/B5uC,KAAMnyB,IAAO,QACb+9D,MAAO,QAiBHiD,G,YACJ,WAAYx5D,GAAoB,aAC9B,cAAMA,IAAN,MAEK5F,MAAQ,CACXq/D,aAAa,EACbhhE,WAAYA,eAGd,EAAKihE,iBAAgB,GARS,E,4CAWhCC,kBAAA,WACE,IAEMC,EAAY,CAAE9tD,SAFHD,KAEaguD,YADd1uD,KACmCW,SAAS7Q,MAC5DvC,OAAOohE,aAAa,SAApB,iBACKF,IAEL/kE,KAAKgmC,SAAS,CACZ4+B,aAAa,IAEf5kE,KAAK6kE,iBAAgB,I,EAGvB53D,OAAA,WAAS,MASHjN,KAAKmL,MAPPmoB,EAFK,EAELA,SACA7R,EAHK,EAGLA,YACAyjD,EAJK,EAILA,aACAC,EALK,EAKLA,kBACAC,EANK,EAMLA,WACAC,EAPK,EAOLA,cACAC,EARK,EAQLA,WAEMV,EAAgB5kE,KAAKuF,MAArBq/D,YAER,OACE,mBACEpgC,UAAS,gBAAiB8gC,EAAa,mBAAqB,IAC5D9E,GAAI,CAAEvoB,SAAUr0C,cAAa,UAAY,KAKvC,mBACE4gC,UAAU,iBACV7P,MAAO,CAAEuY,WAAY03B,EAAc,UAAY,WAC/C,mBAAKpgC,UAAU,UAAU7P,MAAO,CAAE6kB,QAAS,MACzC,mBAAKhV,UAAU,eACb,mBAAKA,UAAU,iBACb,4BAOT5gC,cACC,YAAC,GAAD,CAAiB08D,QAASA,GAASyB,UAAW2C,KAE9C,YAAC,GAAD,CACEpE,QAASA,GAAQ9/D,OAAO,CAACikE,KACzBlE,KAAM+E,EAAa,YAAC,KAAD,MAAuB,QAG5CA,GACA,mBACE9E,GACE6E,EACI,CACE58C,OAAQ7kB,cAAa,QAAU,SAEjC,CACE6kB,OAAQ7kB,cAAa,QAAU,SAGvC4gC,UAAU,kBACV,mBACEg8B,GAAI,CACF/3C,OAAQ,OACR2lB,SAAU,WAEXg3B,GACC,mBACE5E,GAAI,CACF+E,UAAW,QACXC,eAAgB,aAChBh9C,MAAO,OACPC,OAAQ,QAEVg9C,IAAKL,EAAWK,IAChBC,QAAS,gBAIf,sBACElhC,UAAU,sBACVg8B,GAAI,CACFl4C,IAAK1kB,cAAa,OAAS,UAE7B,iBAAG4gC,UAAU,2BAA2B/iB,GACxC,YAAC2gD,GAAD,OAEF,mBAAK59B,UAAU,iBAMjB,mBACEvmC,GAAG,gBACHuiE,GAAI,CACFO,GAAI,SAEN,oBACEv8B,UACE,mBAAqB6gC,EAAgB,gBAAkB,KAExD/xC,IAIP,uBAAM6xC,GACN,sBAAQ3gC,UAAU,kBAAkB0gC,K,EAK1CL,gBAAA,SAAgBc,GACd,GAAwB,oBAAb7hE,SAA0B,CACnC,IAAM8hE,EAAU9hE,SAAS+hE,cAAc,QACnCD,GACFA,EAAQtf,aACN,QADF,cAEeqf,EAAW,SAAW,W,GAvIxB16D,IAAMiC,WA8IZy3D,Q,sBChiBf,YAAApqE,EAAA,cACAA,EAAQq9B,KAAOr9B,EAAQupB,sBAAwBvpB,EAAQqR,mBAAqBrR,EAAQuR,iBAAmBvR,EAAQ42B,wBAA0B52B,EAAQo5B,uCAAoC7rB,EAErL,IAAIgzB,EAA4B,mBAAX9+B,QAAoD,iBAApBA,OAAOY,SAAwB,SAAUpC,GAC5F,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAyB,mBAAXwB,QAAyBxB,EAAIQ,cAAgBgB,QAAUxB,IAAQwB,OAAOO,UAAY,gBAAkB/B,GAGvHs1B,EAAWh1B,OAAOgV,QAAU,SAAU+W,GACxC,IAAK,IAAItrB,EAAI,EAAGA,EAAI8E,UAAU1F,OAAQY,IAAK,CACzC,IAAIw0B,EAAS1vB,UAAU9E,GAEvB,IAAK,IAAIwB,KAAOgzB,EACVj1B,OAAOyB,UAAUC,eAAef,KAAKs0B,EAAQhzB,KAC/C8pB,EAAO9pB,GAAOgzB,EAAOhzB,IAK3B,OAAO8pB,GAKLyJ,EAAUC,EAFD,EAAQ,SAMjBu1C,EAAiBv1C,EAFD,EAAQ,SAIxBK,EAAmB,EAAQ,QAE/B,SAASL,EAAuB/1B,GAC9B,OAAOA,GAAOA,EAAI2B,WAAa3B,EAAM,CACnC8B,QAAS9B,GAIb,IAoKMurE,EApKF1xC,EAA0B,SAAiC6D,GAC7D,IAAI8tC,IAAS3lE,UAAU1F,OAAS,QAAsBmN,IAAjBzH,UAAU,KAAmBA,UAAU,GAE5E,OAAe,IAAX2lE,EACKxvD,OAAO0hB,GAGT1hB,OAAO0hB,GAAKj1B,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,UAAUA,QAAQ,KAAM,WAG1HgjE,EAAwB,SAA+BC,GACzD,IAAIC,EAAiBC,EAAqBF,EAAWt1C,EAAiBe,UAAUgB,OAC5E0zC,EAAoBD,EAAqBF,EAAWt1C,EAAiBuyB,aAAaK,gBAEtF,GAAI6iB,GAAqBF,EAEvB,OAAOE,EAAkBpjE,QAAQ,OAAO,WACtC,OAAOkjE,KAIX,IAAIG,EAAwBF,EAAqBF,EAAWt1C,EAAiBuyB,aAAaC,eAC1F,OAAO+iB,GAAkBG,QAAyBx+D,GAGhDy+D,EAAyB,SAAgCL,GAC3D,OAAOE,EAAqBF,EAAWt1C,EAAiBuyB,aAAaI,yBAA2B,cAG9FijB,EAA6B,SAAoCC,EAASP,GAC5E,OAAOA,EAAUtgD,QAAO,SAAUza,GAChC,YAAiC,IAAnBA,EAAMs7D,MACnBv6D,KAAI,SAAUf,GACf,OAAOA,EAAMs7D,MACZj/C,QAAO,SAAUk/C,EAAUjxC,GAC5B,OAAO3F,EAAS,GAAI42C,EAAUjxC,KAC7B,KAGDkxC,EAA0B,SAAiCC,EAAmBV,GAChF,OAAOA,EAAUtgD,QAAO,SAAUza,GAChC,YAAyD,IAA3CA,EAAMylB,EAAiBe,UAAUkwB,SAC9C31C,KAAI,SAAUf,GACf,OAAOA,EAAMylB,EAAiBe,UAAUkwB,SACvCh4C,UAAU2d,QAAO,SAAUq/C,EAAkBxf,GAC9C,IAAKwf,EAAiBlsE,OAGpB,IAFA,IAAIyD,EAAOtD,OAAOsD,KAAKipD,GAEd9rD,EAAI,EAAGA,EAAI6C,EAAKzD,OAAQY,IAAK,CACpC,IACIurE,EADe1oE,EAAK7C,GACiBuH,cAEzC,IAA0D,IAAtD8jE,EAAkBpkE,QAAQskE,IAAiCzf,EAAIyf,GACjE,OAAOD,EAAiBrmE,OAAO6mD,GAKrC,OAAOwf,IACN,KAGDE,EAAuB,SAA8BC,EAASJ,EAAmBV,GAEnF,IAAIe,EAAmB,GACvB,OAAOf,EAAUtgD,QAAO,SAAUza,GAChC,QAAI1Q,MAAMC,QAAQyQ,EAAM67D,WAIM,IAAnB77D,EAAM67D,IACfpvC,EAAK,WAAaovC,EAAU,mDAAwDlsC,EAAQ3vB,EAAM67D,IAAY,MAGzG,MACN96D,KAAI,SAAUf,GACf,OAAOA,EAAM67D,MACZn9D,UAAU2d,QAAO,SAAU0/C,EAAcC,GAC1C,IAAIC,EAAmB,GACvBD,EAAavhD,QAAO,SAAUyhC,GAI5B,IAHA,IAAIggB,OAAsB,EACtBjpE,EAAOtD,OAAOsD,KAAKipD,GAEd9rD,EAAI,EAAGA,EAAI6C,EAAKzD,OAAQY,IAAK,CACpC,IAAI+rE,EAAelpE,EAAK7C,GACpBurE,EAAwBQ,EAAaxkE,eAEiB,IAAtD8jE,EAAkBpkE,QAAQskE,IAAmCO,IAAwBz2C,EAAiBqxB,eAAeS,KAAkD,cAA3C2E,EAAIggB,GAAqBvkE,eAAoCgkE,IAA0Bl2C,EAAiBqxB,eAAeS,KAAoD,eAA7C2E,EAAIyf,GAAuBhkE,gBACvRukE,EAAsBP,IAIyB,IAA7CF,EAAkBpkE,QAAQ8kE,IAAyBA,IAAiB12C,EAAiBqxB,eAAeK,YAAcglB,IAAiB12C,EAAiBqxB,eAAeE,UAAYmlB,IAAiB12C,EAAiBqxB,eAAeM,YAClO8kB,EAAsBC,GAI1B,IAAKD,IAAwBhgB,EAAIggB,GAC/B,OAAO,EAGT,IAAInrE,EAAQmrD,EAAIggB,GAAqBvkE,cAUrC,OARKmkE,EAAiBI,KACpBJ,EAAiBI,GAAuB,IAGrCD,EAAiBC,KACpBD,EAAiBC,GAAuB,KAGrCJ,EAAiBI,GAAqBnrE,KACzCkrE,EAAiBC,GAAqBnrE,IAAS,GACxC,MAIR2N,UAAU5C,SAAQ,SAAUogD,GAC7B,OAAO6f,EAAa9lE,KAAKimD,MAK3B,IAFA,IAAIjpD,EAAOtD,OAAOsD,KAAKgpE,GAEd7rE,EAAI,EAAGA,EAAI6C,EAAKzD,OAAQY,IAAK,CACpC,IAAI+rE,EAAelpE,EAAK7C,GACpBgsE,GAAW,EAAIzB,EAAexpE,SAAS,GAAI2qE,EAAiBK,GAAeF,EAAiBE,IAChGL,EAAiBK,GAAgBC,EAGnC,OAAOL,IACN,IAAIr9D,WAGLu8D,EAAuB,SAA8BF,EAAW7jD,GAClE,IAAK,IAAI9mB,EAAI2qE,EAAUvrE,OAAS,EAAGY,GAAK,EAAGA,IAAK,CAC9C,IAAI4P,EAAQ+6D,EAAU3qE,GAEtB,GAAI4P,EAAM3O,eAAe6lB,GACvB,OAAOlX,EAAMkX,GAIjB,OAAO,MAqBLmlD,GACEzB,EAAQhiD,KAAKC,MACV,SAAUT,GACf,IAAIkkD,EAAc1jD,KAAKC,MAEnByjD,EAAc1B,EAAQ,IACxBA,EAAQ0B,EACRlkD,EAASkkD,IAETvoD,YAAW,WACTsoD,EAAYjkD,KACX,KAKLmkD,EAAc,SAAqBzpE,GACrC,OAAOkhB,aAAalhB,IAGlB6lB,EAA0C,oBAAXjgB,OAAyBA,OAAOigB,uBAAyBjgB,OAAO8jE,6BAA+B9jE,OAAO+jE,0BAA4BJ,EAAc5jD,EAAOE,uBAAyB0jD,EAC/M5sC,EAAyC,oBAAX/2B,OAAyBA,OAAO+2B,sBAAwB/2B,OAAOgkE,4BAA8BhkE,OAAOikE,yBAA2BJ,EAAc9jD,EAAOgX,sBAAwB8sC,EAE1M9vC,EAAO,SAAcmwC,GACvB,OAAOplE,SAAmC,mBAAjBA,QAAQi1B,MAAuBj1B,QAAQi1B,KAAKmwC,IAGnEC,EAAkB,KAmBlBC,EAAmB,SAA0BvmB,EAAUvmB,GACzD,IAAItG,EAAU6sB,EAAS7sB,QACnB/B,EAAiB4uB,EAAS5uB,eAC1BjR,EAAiB6/B,EAAS7/B,eAC1BiT,EAAW4sB,EAAS5sB,SACpBC,EAAW2sB,EAAS3sB,SACpBC,EAAe0sB,EAAS1sB,aACxBR,EAAsBktB,EAASltB,oBAC/BS,EAAaysB,EAASzsB,WACtBC,EAAYwsB,EAASxsB,UACrBjV,EAAQyhC,EAASzhC,MACjB2S,EAAkB8uB,EAAS9uB,gBAC/Bs1C,EAAiBt3C,EAAiBe,UAAUkB,KAAMC,GAClDo1C,EAAiBt3C,EAAiBe,UAAUoB,KAAMlR,GAClDsmD,EAAYloD,EAAO2S,GACnB,IAAIw1C,EAAa,CACfvzC,QAASwzC,EAAWz3C,EAAiBe,UAAUkwB,KAAMhtB,GACrDC,SAAUuzC,EAAWz3C,EAAiBe,UAAUiC,KAAMkB,GACtDC,SAAUszC,EAAWz3C,EAAiBe,UAAUkC,KAAMkB,GACtDC,aAAcqzC,EAAWz3C,EAAiBe,UAAUE,SAAUmD,GAC9DC,WAAYozC,EAAWz3C,EAAiBe,UAAUC,OAAQqD,GAC1DC,UAAWmzC,EAAWz3C,EAAiBe,UAAUI,MAAOmD,IAEtDozC,EAAY,GACZC,EAAc,GAClBztE,OAAOsD,KAAKgqE,GAAYnhE,SAAQ,SAAUw/D,GACxC,IAAI+B,EAAsBJ,EAAW3B,GACjCgC,EAAUD,EAAoBC,QAC9BC,EAAUF,EAAoBE,QAE9BD,EAAQ9tE,SACV2tE,EAAU7B,GAAWgC,GAGnBC,EAAQ/tE,SACV4tE,EAAY9B,GAAW2B,EAAW3B,GAASiC,YAG/CvtC,GAAMA,IACN3G,EAAoBktB,EAAU4mB,EAAWC,IAGvCI,EAAe,SAAsBC,GACvC,OAAOnuE,MAAMC,QAAQkuE,GAAiBA,EAAch5D,KAAK,IAAMg5D,GAG7DT,EAAc,SAAqBloD,EAAOiG,QACvB,IAAVjG,GAAyBnc,SAASmc,QAAUA,IACrDnc,SAASmc,MAAQ0oD,EAAa1oD,IAGhCioD,EAAiBt3C,EAAiBe,UAAUgB,MAAOzM,IAGjDgiD,EAAmB,SAA0BlB,EAAS9gD,GACxD,IAAI2iD,EAAa/kE,SAASglE,qBAAqB9B,GAAS,GAExD,GAAK6B,EAAL,CASA,IALA,IAAIE,EAAwBF,EAAWrgB,aAAa53B,EAAiB+yB,kBACjEqlB,EAAmBD,EAAwBA,EAAsB5nE,MAAM,KAAO,GAC9E8nE,EAAqB,GAAGzoE,OAAOwoE,GAC/BE,EAAgBpuE,OAAOsD,KAAK8nB,GAEvB3qB,EAAI,EAAGA,EAAI2tE,EAAcvuE,OAAQY,IAAK,CAC7C,IAAI4tE,EAAYD,EAAc3tE,GAC1BW,EAAQgqB,EAAWijD,IAAc,GAEjCN,EAAWrgB,aAAa2gB,KAAejtE,GACzC2sE,EAAWviB,aAAa6iB,EAAWjtE,IAGQ,IAAzC8sE,EAAiBxmE,QAAQ2mE,IAC3BH,EAAiB5nE,KAAK+nE,GAGxB,IAAIC,EAAcH,EAAmBzmE,QAAQ2mE,IAExB,IAAjBC,GACFH,EAAmBruE,OAAOwuE,EAAa,GAI3C,IAAK,IAAI3lD,EAAKwlD,EAAmBtuE,OAAS,EAAG8oB,GAAM,EAAGA,IACpDolD,EAAWQ,gBAAgBJ,EAAmBxlD,IAG5CulD,EAAiBruE,SAAWsuE,EAAmBtuE,OACjDkuE,EAAWQ,gBAAgBz4C,EAAiB+yB,kBACnCklB,EAAWrgB,aAAa53B,EAAiB+yB,oBAAsBulB,EAAct5D,KAAK,MAC3Fi5D,EAAWviB,aAAa11B,EAAiB+yB,iBAAkBulB,EAAct5D,KAAK,QAI9Ey4D,EAAa,SAAoBjiE,EAAMkjE,GACzC,IAAIC,EAAczlE,SAASoiD,MAAQpiD,SAAS+hE,cAAcj1C,EAAiBe,UAAUmwB,MACjF0nB,EAAWD,EAAYhhB,iBAAiBniD,EAAO,IAAMwqB,EAAiB+yB,iBAAmB,KACzF+kB,EAAUjuE,MAAM8B,UAAU0E,MAAMxF,KAAK+tE,GACrCf,EAAU,GACVgB,OAAgB,EA0CpB,OAxCIH,GAAQA,EAAK3uE,QACf2uE,EAAKriE,SAAQ,SAAUogD,GACrB,IAAIqiB,EAAa5lE,SAASsH,cAAchF,GAExC,IAAK,IAAI+iE,KAAa9hB,EACpB,GAAIA,EAAI7qD,eAAe2sE,GACrB,GAAIA,IAAcv4C,EAAiBqxB,eAAeK,WAChDonB,EAAW53C,UAAYu1B,EAAIv1B,eACtB,GAAIq3C,IAAcv4C,EAAiBqxB,eAAeE,SACnDunB,EAAWC,WACbD,EAAWC,WAAW33C,QAAUq1B,EAAIr1B,QAEpC03C,EAAW1qB,YAAYl7C,SAAS0iD,eAAea,EAAIr1B,cAEhD,CACL,IAAI91B,OAAkC,IAAnBmrD,EAAI8hB,GAA6B,GAAK9hB,EAAI8hB,GAC7DO,EAAWpjB,aAAa6iB,EAAWjtE,GAKzCwtE,EAAWpjB,aAAa11B,EAAiB+yB,iBAAkB,QAEvD+kB,EAAQtyD,MAAK,SAAUwzD,EAAaroE,GAEtC,OADAkoE,EAAgBloE,EACTmoE,EAAWG,YAAYD,MAE9BlB,EAAQ9tE,OAAO6uE,EAAe,GAE9BhB,EAAQrnE,KAAKsoE,MAKnBhB,EAAQzhE,SAAQ,SAAUogD,GACxB,OAAOA,EAAIvrB,WAAWC,YAAYsrB,MAEpCohB,EAAQxhE,SAAQ,SAAUogD,GACxB,OAAOkiB,EAAYvqB,YAAYqI,MAE1B,CACLqhB,QAASA,EACTD,QAASA,IAITqB,EAAoC,SAA2C5jD,GACjF,OAAOprB,OAAOsD,KAAK8nB,GAAYsB,QAAO,SAAU0Q,EAAKn7B,GACnD,IAAIgtE,OAAkC,IAApB7jD,EAAWnpB,GAAuBA,EAAM,KAAQmpB,EAAWnpB,GAAO,IAAO,GAAKA,EAChG,OAAOm7B,EAAMA,EAAM,IAAM6xC,EAAOA,IAC/B,KAuBDC,EAAuC,SAA8C9jD,GACvF,IAAI+jD,EAAY5pE,UAAU1F,OAAS,QAAsBmN,IAAjBzH,UAAU,GAAmBA,UAAU,GAAK,GACpF,OAAOvF,OAAOsD,KAAK8nB,GAAYsB,QAAO,SAAUhtB,EAAKuC,GAEnD,OADAvC,EAAIo2B,EAAiBmxB,cAAchlD,IAAQA,GAAOmpB,EAAWnpB,GACtDvC,IACNyvE,IA6CDC,EAAmB,SAA0B9jE,EAAMkjE,EAAMtD,GAC3D,OAAQ5/D,GACN,KAAKwqB,EAAiBe,UAAUgB,MAC9B,MAAO,CACLw3C,YAAa,WACX,OAvCuElqD,EAuC5BqpD,EAAKrpD,MAvC8BiG,EAuCvBojD,EAAK12C,iBAnCnDw3C,EAAa,CAC5BrtE,IAAKkjB,IACO2Q,EAAiB+yB,mBAAoB,EAC/Cx4C,EAAQ6+D,EAAqC9jD,EADQkkD,GAElD,CAAC95C,EAAQh0B,QAAQ8O,cAAcwlB,EAAiBe,UAAUgB,MAAOxnB,EAAO8U,IAR7C,IAA6CA,EAAOiG,EAClFkkD,EAMAj/D,GAkCExO,SAAU,WACR,OA9EkB,SAA+ByJ,EAAM6Z,EAAOiG,EAAY8/C,GAClF,IAAIqE,EAAkBP,EAAkC5jD,GACpDokD,EAAiB3B,EAAa1oD,GAClC,OAAOoqD,EAAkB,IAAMjkE,EAAO,IAAMwqB,EAAiB+yB,iBAAmB,WAAe0mB,EAAkB,IAAMh2C,EAAwBi2C,EAAgBtE,GAAU,KAAO5/D,EAAO,IAAM,IAAMA,EAAO,IAAMwqB,EAAiB+yB,iBAAmB,WAAetvB,EAAwBi2C,EAAgBtE,GAAU,KAAO5/D,EAAO,IA2EpTmkE,CAAsBnkE,EAAMkjE,EAAKrpD,MAAOqpD,EAAK12C,gBAAiBozC,KAI3E,KAAKp1C,EAAiBgxB,gBAAgB/uB,KACtC,KAAKjC,EAAiBgxB,gBAAgB7uB,KACpC,MAAO,CACLo3C,YAAa,WACX,OAAOH,EAAqCV,IAE9C3sE,SAAU,WACR,OAAOmtE,EAAkCR,KAI/C,QACE,MAAO,CACLa,YAAa,WACX,OAjDyB,SAAsC/jE,EAAMkjE,GAC7E,OAAOA,EAAKp9D,KAAI,SAAUm7C,EAAK9rD,GAC7B,IAAIivE,EAEAC,IAAaD,EAAa,CAC5BztE,IAAKxB,IACOq1B,EAAiB+yB,mBAAoB,EAAM6mB,GAazD,OAZA1vE,OAAOsD,KAAKipD,GAAKpgD,SAAQ,SAAUkiE,GACjC,IAAIuB,EAAkB95C,EAAiBmxB,cAAconB,IAAcA,EAEnE,GAAIuB,IAAoB95C,EAAiBqxB,eAAeK,YAAcooB,IAAoB95C,EAAiBqxB,eAAeE,SAAU,CAClI,IAAI//B,EAAUilC,EAAIv1B,WAAau1B,EAAIr1B,QACnCy4C,EAAUlc,wBAA0B,CAClCC,OAAQpsC,QAGVqoD,EAAUC,GAAmBrjB,EAAI8hB,MAG9B74C,EAAQh0B,QAAQ8O,cAAchF,EAAMqkE,MA8B9BE,CAA6BvkE,EAAMkjE,IAE5C3sE,SAAU,WACR,OA7FiB,SAA8ByJ,EAAMkjE,EAAMtD,GACnE,OAAOsD,EAAK9hD,QAAO,SAAU0Q,EAAKmvB,GAChC,IAAIujB,EAAgB9vE,OAAOsD,KAAKipD,GAAKzhC,QAAO,SAAUujD,GACpD,QAASA,IAAcv4C,EAAiBqxB,eAAeK,YAAc6mB,IAAcv4C,EAAiBqxB,eAAeE,aAClH36B,QAAO,SAAUlN,EAAQ6uD,GAC1B,IAAIY,OAAiC,IAAnB1iB,EAAI8hB,GAA6BA,EAAYA,EAAY,KAAQ90C,EAAwBgzB,EAAI8hB,GAAYnD,GAAU,IACrI,OAAO1rD,EAASA,EAAS,IAAMyvD,EAAOA,IACrC,IACCc,EAAaxjB,EAAIv1B,WAAau1B,EAAIr1B,SAAW,GAC7C84C,GAAsE,IAAtDl6C,EAAiB8yB,kBAAkBlhD,QAAQ4D,GAC/D,OAAO8xB,EAAM,IAAM9xB,EAAO,IAAMwqB,EAAiB+yB,iBAAmB,WAAeinB,GAAiBE,EAAgB,KAAO,IAAMD,EAAa,KAAOzkE,EAAO,OAC3J,IAkFY2kE,CAAqB3kE,EAAMkjE,EAAMtD,OAmClDzrE,EAAQo5B,kCA1GgC,SAA2CxoB,GACjF,IAAI6/D,EAAiB3qE,UAAU1F,OAAS,QAAsBmN,IAAjBzH,UAAU,GAAmBA,UAAU,GAAK,GACzF,OAAOvF,OAAOsD,KAAK+M,GAAOqc,QAAO,SAAUhtB,EAAKuC,GAE9C,OADAvC,EAAIo2B,EAAiB6yB,aAAa1mD,IAAQA,GAAOoO,EAAMpO,GAChDvC,IACNwwE,IAsGLzwE,EAAQ42B,wBApTsB,SAAiCuwB,GACzDsmB,GACFptC,EAAqBotC,GAGnBtmB,EAAS9/B,MACXomD,EAAkBlkD,GAAsB,WACtCmkD,EAAiBvmB,GAAU,WACzBsmB,EAAkB,YAItBC,EAAiBvmB,GACjBsmB,EAAkB,OAwStBztE,EAAQuR,iBA/Be,SAA0BomB,GAC/C,IAAI2C,EAAU3C,EAAK2C,QACf/B,EAAiBZ,EAAKY,eACtBkzC,EAAS9zC,EAAK8zC,OACdnkD,EAAiBqQ,EAAKrQ,eACtBiT,EAAW5C,EAAK4C,SAChBC,EAAW7C,EAAK6C,SAChBC,EAAe9C,EAAK8C,aACpBC,EAAa/C,EAAK+C,WAClBC,EAAYhD,EAAKgD,UACjB+1C,EAAa/4C,EAAKjS,MAClBA,OAAuBnY,IAAfmjE,EAA2B,GAAKA,EACxCr4C,EAAkBV,EAAKU,gBAC3B,MAAO,CACLoB,KAAMk2C,EAAiBt5C,EAAiBe,UAAUkwB,KAAMhtB,EAASmxC,GACjElzC,eAAgBo3C,EAAiBt5C,EAAiBgxB,gBAAgB/uB,KAAMC,EAAgBkzC,GACxFnkD,eAAgBqoD,EAAiBt5C,EAAiBgxB,gBAAgB7uB,KAAMlR,EAAgBmkD,GACxF1xC,KAAM41C,EAAiBt5C,EAAiBe,UAAUiC,KAAMkB,EAAUkxC,GAClE7jD,KAAM+nD,EAAiBt5C,EAAiBe,UAAUkC,KAAMkB,EAAUixC,GAClEzxC,SAAU21C,EAAiBt5C,EAAiBe,UAAUE,SAAUmD,EAAcgxC,GAC9EtxC,OAAQw1C,EAAiBt5C,EAAiBe,UAAUC,OAAQqD,EAAY+wC,GACxErxC,MAAOu1C,EAAiBt5C,EAAiBe,UAAUI,MAAOmD,EAAW8wC,GACrE/lD,MAAOiqD,EAAiBt5C,EAAiBe,UAAUgB,MAAO,CACxD1S,MAAOA,EACP2S,gBAAiBA,GAChBozC,KAOPzrE,EAAQqR,mBArWiB,SAA4Bs6D,GACnD,MAAO,CACLrxC,QAAS8xC,EAAwB,CAAC/1C,EAAiBqxB,eAAeG,MAAO8jB,GACzEpzC,eAAgB0zC,EAA2B51C,EAAiBgxB,gBAAgB/uB,KAAMqzC,GAClFtkD,MAAOwkD,EAAqBF,EAAWt1C,EAAiBuyB,aAAaE,OACrE2iB,OAAQI,EAAqBF,EAAWt1C,EAAiBuyB,aAAaG,2BACtEzhC,eAAgB2kD,EAA2B51C,EAAiBgxB,gBAAgB7uB,KAAMmzC,GAClFpxC,SAAUiyC,EAAqBn2C,EAAiBe,UAAUiC,KAAM,CAAChD,EAAiBqxB,eAAeS,IAAK9xB,EAAiBqxB,eAAeG,MAAO8jB,GAC7InxC,SAAUgyC,EAAqBn2C,EAAiBe,UAAUkC,KAAM,CAACjD,EAAiBqxB,eAAeO,KAAM5xB,EAAiBqxB,eAAeC,QAAStxB,EAAiBqxB,eAAeI,UAAWzxB,EAAiBqxB,eAAeQ,SAAU7xB,EAAiBqxB,eAAeM,WAAY2jB,GACjRlxC,aAAc+xC,EAAqBn2C,EAAiBe,UAAUE,SAAU,CAACjB,EAAiBqxB,eAAeK,YAAa4jB,GACtH1xC,oBAAqB+xC,EAAuBL,GAC5CjxC,WAAY8xC,EAAqBn2C,EAAiBe,UAAUC,OAAQ,CAAChB,EAAiBqxB,eAAeU,IAAK/xB,EAAiBqxB,eAAeK,YAAa4jB,GACvJhxC,UAAW6xC,EAAqBn2C,EAAiBe,UAAUI,MAAO,CAACnB,EAAiBqxB,eAAeE,UAAW+jB,GAC9GjmD,MAAOgmD,EAAsBC,GAC7BtzC,gBAAiB4zC,EAA2B51C,EAAiBgxB,gBAAgBjvB,MAAOuzC,KAwVxF3rE,EAAQupB,sBAAwBA,EAChCvpB,EAAQq9B,KAAOA,I","file":"commons-e155ccc317b3d45f1c41.js","sourcesContent":["module.exports = function isArrayish(obj) {\n if (!obj || typeof obj === 'string') {\n return false;\n }\n\n return obj instanceof Array || Array.isArray(obj) || obj.length >= 0 && (obj.splice instanceof Function || Object.getOwnPropertyDescriptor(obj, obj.length - 1) && obj.constructor.name !== 'String');\n};","/*!\n * Fuse.js v3.4.6 - Lightweight fuzzy-search (http://fusejs.io)\n * \n * Copyright (c) 2012-2017 Kirollos Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n * \n * http://www.apache.org/licenses/LICENSE-2.0\n */\n!function (e, t) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = t() : \"function\" == typeof define && define.amd ? define(\"Fuse\", [], t) : \"object\" == typeof exports ? exports.Fuse = t() : e.Fuse = t();\n}(this, function () {\n return function (e) {\n var t = {};\n\n function n(r) {\n if (t[r]) return t[r].exports;\n var o = t[r] = {\n i: r,\n l: !1,\n exports: {}\n };\n return e[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports;\n }\n\n return n.m = e, n.c = t, n.d = function (e, t, r) {\n n.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: r\n });\n }, n.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, n.t = function (e, t) {\n if (1 & t && (e = n(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var r = Object.create(null);\n if (n.r(r), Object.defineProperty(r, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var o in e) {\n n.d(r, o, function (t) {\n return e[t];\n }.bind(null, o));\n }\n return r;\n }, n.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return n.d(t, \"a\", t), t;\n }, n.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, n.p = \"\", n(n.s = 1);\n }([function (e, t) {\n e.exports = function (e) {\n return Array.isArray ? Array.isArray(e) : \"[object Array]\" === Object.prototype.toString.call(e);\n };\n }, function (e, t, n) {\n function r(e) {\n return (r = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (e) {\n return typeof e;\n } : function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n })(e);\n }\n\n function o(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);\n }\n }\n\n var i = n(2),\n a = n(8),\n s = n(0),\n c = function () {\n function e(t, n) {\n var r = n.location,\n o = void 0 === r ? 0 : r,\n i = n.distance,\n s = void 0 === i ? 100 : i,\n c = n.threshold,\n h = void 0 === c ? .6 : c,\n l = n.maxPatternLength,\n u = void 0 === l ? 32 : l,\n f = n.caseSensitive,\n d = void 0 !== f && f,\n v = n.tokenSeparator,\n p = void 0 === v ? / +/g : v,\n g = n.findAllMatches,\n y = void 0 !== g && g,\n m = n.minMatchCharLength,\n k = void 0 === m ? 1 : m,\n S = n.id,\n x = void 0 === S ? null : S,\n b = n.keys,\n M = void 0 === b ? [] : b,\n _ = n.shouldSort,\n L = void 0 === _ || _,\n w = n.getFn,\n A = void 0 === w ? a : w,\n C = n.sortFn,\n I = void 0 === C ? function (e, t) {\n return e.score - t.score;\n } : C,\n O = n.tokenize,\n j = void 0 !== O && O,\n P = n.matchAllTokens,\n F = void 0 !== P && P,\n T = n.includeMatches,\n z = void 0 !== T && T,\n E = n.includeScore,\n K = void 0 !== E && E,\n $ = n.verbose,\n J = void 0 !== $ && $;\n !function (e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.options = {\n location: o,\n distance: s,\n threshold: h,\n maxPatternLength: u,\n isCaseSensitive: d,\n tokenSeparator: p,\n findAllMatches: y,\n minMatchCharLength: k,\n id: x,\n keys: M,\n includeMatches: z,\n includeScore: K,\n shouldSort: L,\n getFn: A,\n sortFn: I,\n verbose: J,\n tokenize: j,\n matchAllTokens: F\n }, this.setCollection(t);\n }\n\n var t, n, c;\n return t = e, (n = [{\n key: \"setCollection\",\n value: function value(e) {\n return this.list = e, e;\n }\n }, {\n key: \"search\",\n value: function value(e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {\n limit: !1\n };\n\n this._log('---------\\nSearch pattern: \"'.concat(e, '\"'));\n\n var n = this._prepareSearchers(e),\n r = n.tokenSearchers,\n o = n.fullSearcher,\n i = this._search(r, o),\n a = i.weights,\n s = i.results;\n\n return this._computeScore(a, s), this.options.shouldSort && this._sort(s), t.limit && \"number\" == typeof t.limit && (s = s.slice(0, t.limit)), this._format(s);\n }\n }, {\n key: \"_prepareSearchers\",\n value: function value() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"\",\n t = [];\n if (this.options.tokenize) for (var n = e.split(this.options.tokenSeparator), r = 0, o = n.length; r < o; r += 1) {\n t.push(new i(n[r], this.options));\n }\n return {\n tokenSearchers: t,\n fullSearcher: new i(e, this.options)\n };\n }\n }, {\n key: \"_search\",\n value: function value() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [],\n t = arguments.length > 1 ? arguments[1] : void 0,\n n = this.list,\n r = {},\n o = [];\n\n if (\"string\" == typeof n[0]) {\n for (var i = 0, a = n.length; i < a; i += 1) {\n this._analyze({\n key: \"\",\n value: n[i],\n record: i,\n index: i\n }, {\n resultMap: r,\n results: o,\n tokenSearchers: e,\n fullSearcher: t\n });\n }\n\n return {\n weights: null,\n results: o\n };\n }\n\n for (var s = {}, c = 0, h = n.length; c < h; c += 1) {\n for (var l = n[c], u = 0, f = this.options.keys.length; u < f; u += 1) {\n var d = this.options.keys[u];\n\n if (\"string\" != typeof d) {\n if (s[d.name] = {\n weight: 1 - d.weight || 1\n }, d.weight <= 0 || d.weight > 1) throw new Error(\"Key weight has to be > 0 and <= 1\");\n d = d.name;\n } else s[d] = {\n weight: 1\n };\n\n this._analyze({\n key: d,\n value: this.options.getFn(l, d),\n record: l,\n index: c\n }, {\n resultMap: r,\n results: o,\n tokenSearchers: e,\n fullSearcher: t\n });\n }\n }\n\n return {\n weights: s,\n results: o\n };\n }\n }, {\n key: \"_analyze\",\n value: function value(e, t) {\n var n = e.key,\n r = e.arrayIndex,\n o = void 0 === r ? -1 : r,\n i = e.value,\n a = e.record,\n c = e.index,\n h = t.tokenSearchers,\n l = void 0 === h ? [] : h,\n u = t.fullSearcher,\n f = void 0 === u ? [] : u,\n d = t.resultMap,\n v = void 0 === d ? {} : d,\n p = t.results,\n g = void 0 === p ? [] : p;\n\n if (null != i) {\n var y = !1,\n m = -1,\n k = 0;\n\n if (\"string\" == typeof i) {\n this._log(\"\\nKey: \".concat(\"\" === n ? \"-\" : n));\n\n var S = f.search(i);\n\n if (this._log('Full text: \"'.concat(i, '\", score: ').concat(S.score)), this.options.tokenize) {\n for (var x = i.split(this.options.tokenSeparator), b = [], M = 0; M < l.length; M += 1) {\n var _ = l[M];\n\n this._log('\\nPattern: \"'.concat(_.pattern, '\"'));\n\n for (var L = !1, w = 0; w < x.length; w += 1) {\n var A = x[w],\n C = _.search(A),\n I = {};\n\n C.isMatch ? (I[A] = C.score, y = !0, L = !0, b.push(C.score)) : (I[A] = 1, this.options.matchAllTokens || b.push(1)), this._log('Token: \"'.concat(A, '\", score: ').concat(I[A]));\n }\n\n L && (k += 1);\n }\n\n m = b[0];\n\n for (var O = b.length, j = 1; j < O; j += 1) {\n m += b[j];\n }\n\n m /= O, this._log(\"Token score average:\", m);\n }\n\n var P = S.score;\n m > -1 && (P = (P + m) / 2), this._log(\"Score average:\", P);\n var F = !this.options.tokenize || !this.options.matchAllTokens || k >= l.length;\n\n if (this._log(\"\\nCheck Matches: \".concat(F)), (y || S.isMatch) && F) {\n var T = v[c];\n T ? T.output.push({\n key: n,\n arrayIndex: o,\n value: i,\n score: P,\n matchedIndices: S.matchedIndices\n }) : (v[c] = {\n item: a,\n output: [{\n key: n,\n arrayIndex: o,\n value: i,\n score: P,\n matchedIndices: S.matchedIndices\n }]\n }, g.push(v[c]));\n }\n } else if (s(i)) for (var z = 0, E = i.length; z < E; z += 1) {\n this._analyze({\n key: n,\n arrayIndex: z,\n value: i[z],\n record: a,\n index: c\n }, {\n resultMap: v,\n results: g,\n tokenSearchers: l,\n fullSearcher: f\n });\n }\n }\n }\n }, {\n key: \"_computeScore\",\n value: function value(e, t) {\n this._log(\"\\n\\nComputing score:\\n\");\n\n for (var n = 0, r = t.length; n < r; n += 1) {\n for (var o = t[n].output, i = o.length, a = 1, s = 1, c = 0; c < i; c += 1) {\n var h = e ? e[o[c].key].weight : 1,\n l = (1 === h ? o[c].score : o[c].score || .001) * h;\n 1 !== h ? s = Math.min(s, l) : (o[c].nScore = l, a *= l);\n }\n\n t[n].score = 1 === s ? a : s, this._log(t[n]);\n }\n }\n }, {\n key: \"_sort\",\n value: function value(e) {\n this._log(\"\\n\\nSorting....\"), e.sort(this.options.sortFn);\n }\n }, {\n key: \"_format\",\n value: function value(e) {\n var t = [];\n\n if (this.options.verbose) {\n var n = [];\n this._log(\"\\n\\nOutput:\\n\\n\", JSON.stringify(e, function (e, t) {\n if (\"object\" === r(t) && null !== t) {\n if (-1 !== n.indexOf(t)) return;\n n.push(t);\n }\n\n return t;\n })), n = null;\n }\n\n var o = [];\n this.options.includeMatches && o.push(function (e, t) {\n var n = e.output;\n t.matches = [];\n\n for (var r = 0, o = n.length; r < o; r += 1) {\n var i = n[r];\n\n if (0 !== i.matchedIndices.length) {\n var a = {\n indices: i.matchedIndices,\n value: i.value\n };\n i.key && (a.key = i.key), i.hasOwnProperty(\"arrayIndex\") && i.arrayIndex > -1 && (a.arrayIndex = i.arrayIndex), t.matches.push(a);\n }\n }\n }), this.options.includeScore && o.push(function (e, t) {\n t.score = e.score;\n });\n\n for (var i = 0, a = e.length; i < a; i += 1) {\n var s = e[i];\n\n if (this.options.id && (s.item = this.options.getFn(s.item, this.options.id)[0]), o.length) {\n for (var c = {\n item: s.item\n }, h = 0, l = o.length; h < l; h += 1) {\n o[h](s, c);\n }\n\n t.push(c);\n } else t.push(s.item);\n }\n\n return t;\n }\n }, {\n key: \"_log\",\n value: function value() {\n var e;\n this.options.verbose && (e = console).log.apply(e, arguments);\n }\n }]) && o(t.prototype, n), c && o(t, c), e;\n }();\n\n e.exports = c;\n }, function (e, t, n) {\n function r(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);\n }\n }\n\n var o = n(3),\n i = n(4),\n a = n(7),\n s = function () {\n function e(t, n) {\n var r = n.location,\n o = void 0 === r ? 0 : r,\n i = n.distance,\n s = void 0 === i ? 100 : i,\n c = n.threshold,\n h = void 0 === c ? .6 : c,\n l = n.maxPatternLength,\n u = void 0 === l ? 32 : l,\n f = n.isCaseSensitive,\n d = void 0 !== f && f,\n v = n.tokenSeparator,\n p = void 0 === v ? / +/g : v,\n g = n.findAllMatches,\n y = void 0 !== g && g,\n m = n.minMatchCharLength,\n k = void 0 === m ? 1 : m;\n !function (e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.options = {\n location: o,\n distance: s,\n threshold: h,\n maxPatternLength: u,\n isCaseSensitive: d,\n tokenSeparator: p,\n findAllMatches: y,\n minMatchCharLength: k\n }, this.pattern = this.options.isCaseSensitive ? t : t.toLowerCase(), this.pattern.length <= u && (this.patternAlphabet = a(this.pattern));\n }\n\n var t, n, s;\n return t = e, (n = [{\n key: \"search\",\n value: function value(e) {\n if (this.options.isCaseSensitive || (e = e.toLowerCase()), this.pattern === e) return {\n isMatch: !0,\n score: 0,\n matchedIndices: [[0, e.length - 1]]\n };\n var t = this.options,\n n = t.maxPatternLength,\n r = t.tokenSeparator;\n if (this.pattern.length > n) return o(e, this.pattern, r);\n var a = this.options,\n s = a.location,\n c = a.distance,\n h = a.threshold,\n l = a.findAllMatches,\n u = a.minMatchCharLength;\n return i(e, this.pattern, this.patternAlphabet, {\n location: s,\n distance: c,\n threshold: h,\n findAllMatches: l,\n minMatchCharLength: u\n });\n }\n }]) && r(t.prototype, n), s && r(t, s), e;\n }();\n\n e.exports = s;\n }, function (e, t) {\n var n = /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g;\n\n e.exports = function (e, t) {\n var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : / +/g,\n o = new RegExp(t.replace(n, \"\\\\$&\").replace(r, \"|\")),\n i = e.match(o),\n a = !!i,\n s = [];\n if (a) for (var c = 0, h = i.length; c < h; c += 1) {\n var l = i[c];\n s.push([e.indexOf(l), l.length - 1]);\n }\n return {\n score: a ? .5 : 1,\n isMatch: a,\n matchedIndices: s\n };\n };\n }, function (e, t, n) {\n var r = n(5),\n o = n(6);\n\n e.exports = function (e, t, n, i) {\n for (var a = i.location, s = void 0 === a ? 0 : a, c = i.distance, h = void 0 === c ? 100 : c, l = i.threshold, u = void 0 === l ? .6 : l, f = i.findAllMatches, d = void 0 !== f && f, v = i.minMatchCharLength, p = void 0 === v ? 1 : v, g = s, y = e.length, m = u, k = e.indexOf(t, g), S = t.length, x = [], b = 0; b < y; b += 1) {\n x[b] = 0;\n }\n\n if (-1 !== k) {\n var M = r(t, {\n errors: 0,\n currentLocation: k,\n expectedLocation: g,\n distance: h\n });\n\n if (m = Math.min(M, m), -1 !== (k = e.lastIndexOf(t, g + S))) {\n var _ = r(t, {\n errors: 0,\n currentLocation: k,\n expectedLocation: g,\n distance: h\n });\n\n m = Math.min(_, m);\n }\n }\n\n k = -1;\n\n for (var L = [], w = 1, A = S + y, C = 1 << (S <= 31 ? S - 1 : 30), I = 0; I < S; I += 1) {\n for (var O = 0, j = A; O < j;) {\n r(t, {\n errors: I,\n currentLocation: g + j,\n expectedLocation: g,\n distance: h\n }) <= m ? O = j : A = j, j = Math.floor((A - O) / 2 + O);\n }\n\n A = j;\n var P = Math.max(1, g - j + 1),\n F = d ? y : Math.min(g + j, y) + S,\n T = Array(F + 2);\n T[F + 1] = (1 << I) - 1;\n\n for (var z = F; z >= P; z -= 1) {\n var E = z - 1,\n K = n[e.charAt(E)];\n\n if (K && (x[E] = 1), T[z] = (T[z + 1] << 1 | 1) & K, 0 !== I && (T[z] |= (L[z + 1] | L[z]) << 1 | 1 | L[z + 1]), T[z] & C && (w = r(t, {\n errors: I,\n currentLocation: E,\n expectedLocation: g,\n distance: h\n })) <= m) {\n if (m = w, (k = E) <= g) break;\n P = Math.max(1, 2 * g - k);\n }\n }\n\n if (r(t, {\n errors: I + 1,\n currentLocation: g,\n expectedLocation: g,\n distance: h\n }) > m) break;\n L = T;\n }\n\n return {\n isMatch: k >= 0,\n score: 0 === w ? .001 : w,\n matchedIndices: o(x, p)\n };\n };\n }, function (e, t) {\n e.exports = function (e, t) {\n var n = t.errors,\n r = void 0 === n ? 0 : n,\n o = t.currentLocation,\n i = void 0 === o ? 0 : o,\n a = t.expectedLocation,\n s = void 0 === a ? 0 : a,\n c = t.distance,\n h = void 0 === c ? 100 : c,\n l = r / e.length,\n u = Math.abs(s - i);\n return h ? l + u / h : u ? 1 : l;\n };\n }, function (e, t) {\n e.exports = function () {\n for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, n = [], r = -1, o = -1, i = 0, a = e.length; i < a; i += 1) {\n var s = e[i];\n s && -1 === r ? r = i : s || -1 === r || ((o = i - 1) - r + 1 >= t && n.push([r, o]), r = -1);\n }\n\n return e[i - 1] && i - r >= t && n.push([r, i - 1]), n;\n };\n }, function (e, t) {\n e.exports = function (e) {\n for (var t = {}, n = e.length, r = 0; r < n; r += 1) {\n t[e.charAt(r)] = 0;\n }\n\n for (var o = 0; o < n; o += 1) {\n t[e.charAt(o)] |= 1 << n - o - 1;\n }\n\n return t;\n };\n }, function (e, t, n) {\n var r = n(0);\n\n e.exports = function (e, t) {\n return function e(t, n, o) {\n if (n) {\n var i = n.indexOf(\".\"),\n a = n,\n s = null;\n -1 !== i && (a = n.slice(0, i), s = n.slice(i + 1));\n var c = t[a];\n if (null != c) if (s || \"string\" != typeof c && \"number\" != typeof c) {\n if (r(c)) for (var h = 0, l = c.length; h < l; h += 1) {\n e(c[h], s, o);\n } else s && e(c, s, o);\n } else o.push(c.toString());\n } else o.push(t);\n\n return o;\n }(e, t, []);\n };\n }]);\n});","export const pathPrefix = '/help';\nexport const cdnPath = 'https://assets.mubu.com/';\nexport const host = 'https://mubu.com';\n\nexport function isMobile() {\n if (typeof window === 'undefined' || !window.document) {\n return process.env.IS_MOBILE;\n }\n return 'ontouchend' in document.body;\n}\n\nexport function isLayoutToMobile(width = 980) {\n if (typeof window === 'undefined') {\n return false;\n }\n return window.innerWidth <= width;\n}\n\nexport function shouldShowMobile(width = 980) {\n return isMobile() || isLayoutToMobile();\n}\n\nexport function isServerSide() {\n if (typeof window === 'undefined') {\n return true;\n }\n return false;\n}\n","/**\n * Copyright (c) 2014-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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","var React = require('react');\n\nfunction LogoMobileInline (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"title\",{\"key\":0},\"web-log\"),React.createElement(\"g\",{\"id\":\"控件\",\"stroke\":\"none\",\"strokeWidth\":\"1\",\"fill\":\"none\",\"fillRule\":\"evenodd\",\"key\":1},React.createElement(\"g\",{\"id\":\"web-log\",\"fill\":\"#000000\",\"fillRule\":\"nonzero\"},React.createElement(\"path\",{\"d\":\"M36.745475,2.97047301 C37.6324954,4.83771548 37.3413631,7.05619515 36.0031237,8.62731991 C34.0503909,10.8158782 32.9461358,13.6396772 32.8926702,16.581366 L32.8926702,17.6909983 C32.9493785,20.5250058 34.0385593,23.2391622 35.9530359,25.3171985 C36.7884014,26.264008 37.2515209,27.4855014 37.2553191,28.7520148 C37.2419927,31.5657857 35.0381119,33.8738386 32.2465373,33.9975493 C30.1919724,34.0607566 28.2940229,32.8967695 27.4070025,31.029527 C26.5199821,29.1622845 26.8111144,26.9438049 28.1493538,25.3726801 C30.1028635,23.1846053 31.2072373,20.3605025 31.2598073,17.418634 L31.2598073,16.3090017 C31.203099,13.4749942 30.1139182,10.7608378 28.1994416,8.68280153 C27.3624636,7.73697846 26.8991015,6.51484531 26.8971584,5.24798518 C26.9130197,2.43525016 29.1154929,0.128671485 31.9059402,0.00245066691 C33.9605051,-0.0607566291 35.8584546,1.10323054 36.745475,2.97047301 Z M9.84831667,2.97047301 C10.7353371,4.83771548 10.4442047,7.05619515 9.10596534,8.62731991 C7.17437688,10.8190215 6.08838227,13.6362072 6.04559965,16.5662346 L6.04559965,17.6758669 C6.10047382,20.5093013 7.18790258,23.2235339 9.10095656,25.3020671 C9.93632208,26.2488767 10.3994416,27.47037 10.4032398,28.7368835 C10.4032398,30.6037246 9.4142034,32.328757 7.80869088,33.2621775 C6.20317837,34.1955981 4.22510537,34.1955981 2.61959286,33.2621775 C1.01408035,32.328757 0.02504387,30.6037246 0.0250439091,28.7368835 C0.0240947417,27.486751 0.470409859,26.2781138 1.28224814,25.3323298 C3.21629677,23.1505592 4.30924917,20.3427127 4.36264896,17.418634 L4.36264896,16.3090017 C4.3082771,13.4745127 3.21877255,10.7595496 1.30228327,8.68280153 C0.469311702,7.73453047 0.00655034704,6.51398168 0,5.24798518 C0.0158613143,2.43525016 2.21833454,0.128671485 5.00878182,0.00245066691 C7.06334677,-0.0607566291 8.96129626,1.10323054 9.84831667,2.97047301 Z M93.6932067,16.491963 L93.6936219,25.3630469 C93.6936219,27.9022591 93.260474,28.962159 92.9181118,29.3824481 C92.6898704,29.6626408 92.4357918,29.6626408 92.1558761,29.3824481 C91.9031677,29.0605188 91.7083062,28.5595623 91.5712915,27.8795787 C91.4467326,27.2614117 91.4354091,26.407993 91.5373209,25.3193224 L91.5712915,24.9856636 L91.5712067,16.795963 L91.6229472,16.7868242 C92.1827047,16.682554 92.7783431,16.5945023 93.4098623,16.5226692 L93.6932067,16.491963 Z M62.7882261,9.72598938 C63.4613501,10.1605898 64.3903381,10.9340729 64.6451855,11.2225228 C64.8150838,11.4148228 64.8076306,11.6210278 64.6228259,11.8411379 C63.9543204,12.3793502 63.4734659,12.8995634 63.1802623,13.4017774 C62.4973391,14.6639327 61.9279741,15.4181722 61.4721673,15.6644959 C61.2180386,15.8182314 60.8170745,15.8182314 60.2692752,15.6644959 C59.253159,15.6359612 57.950571,15.7159947 56.3615113,15.9045964 C56.557017,16.08013 56.7694448,16.3093923 56.9407812,16.5808499 C57.1271154,16.8760694 57.0837092,17.0663988 56.9407812,17.285562 C56.8111769,17.5134817 56.6783627,17.7350918 56.5427288,17.9505561 C58.3209448,17.8080718 60.2827781,17.7865 63.5622882,17.6214084 C63.9696588,17.53753 66.4740481,16.4218855 68.2499606,17.9158597 C69.6383827,19.4098339 68.2037705,19.513307 67.6656583,19.3437625 C67.2772991,19.2214011 63.631116,18.4949626 60.1249082,18.3971782 C61.0808862,19.3647109 63.8827627,21.0668929 64.7672543,21.5406598 C65.6441856,22.1117946 68.4735461,23.4258151 69.2633125,24.1335327 C70.0530789,24.8412503 67.2304548,25.1363885 65.0142717,23.9835651 C63.6010071,23.0796416 61.611784,21.3004873 59.0466022,18.6461024 L58.8022067,18.3918895 L58.3643541,18.4079238 C57.7850924,18.4340898 57.2271679,18.4851696 56.7079871,18.5674784 L56.3261379,18.6351642 L56.1141066,18.6773514 C56.8544473,19.0514509 57.4037605,19.3682121 57.7620463,19.627635 C58.1949487,19.9410853 58.3721484,20.34707 58.2936453,20.8455891 C58.2135733,21.1737834 58.1655301,21.4736857 58.1495157,21.745296 L58.1442994,21.9232365 C58.3146273,21.9081714 58.4877742,21.8931452 58.6637403,21.8781579 C59.4901844,21.8781579 60.0261806,21.7908439 60.2717289,21.6162158 C60.444125,21.3906952 60.6877388,21.3155073 61.0025703,21.3906521 C61.5347846,21.715656 62.2115246,22.3748285 63.0327903,23.3681698 C63.1385847,23.6152309 63.1536982,23.7996521 63.0781308,23.9214334 L63.0327903,23.9771041 L62.3647805,24.7573061 C61.8883617,26.2055494 61.4342917,27.1275589 61.0025703,27.5233346 C60.5708489,27.9191103 60.2410371,28.0171696 60.0131348,27.8175124 C59.5683298,27.4058438 59.0033333,26.6989884 58.3181453,25.6969463 C58.2207371,25.420634 58.5005363,25.4619751 58.5005363,25.4619751 C58.8457555,25.4358727 59.3355275,25.6969463 59.6635832,25.4619751 C60.5306241,24.750416 60.6023579,22.6454283 60.6023579,22.6454283 C60.6023579,22.6454283 59.7894226,22.7129372 58.1635521,22.8479549 C58.2080878,25.9404738 58.0088167,27.9870919 57.5650837,28.9888983 C57.3325974,29.535153 57.0706143,29.6422817 56.7791343,29.3102845 C56.1710142,28.7245653 56.2381833,25.3784503 56.281979,23.0631039 C55.5630203,23.1738173 55.0159312,23.2516937 54.6397172,23.2976747 C54.2324565,23.3474503 53.8749098,23.3724443 53.5670771,23.3726569 L53.5262067,23.3708895 L53.5586148,23.4581417 C54.1311707,25.1288232 54.2744704,27.1210058 54.1358073,27.7439715 L54.1151649,27.8202757 C53.9437189,28.3377739 53.539894,28.1318654 53.2898511,27.9274718 C53.0398081,27.7230782 52.4922407,26.5799876 52.1281177,24.8291855 C51.9583324,24.0128114 51.7874144,23.406791 51.615364,23.0111241 C49.4052615,24.4943333 47.5018196,25.0384942 47.133884,25.1608131 C46.9126693,25.2505744 45.9294852,25.2505744 46.854551,24.6889397 C50.56868,22.5879631 52.4059474,20.6775682 53.3189981,19.2916777 C50.9811486,19.8549435 49.4647459,20.3504296 49.1834447,20.4914502 C48.8920023,20.6375548 48.6471924,20.6612493 48.4370171,20.663965 L48.2379423,20.6634445 C47.9867173,20.6634445 46.4648383,19.9722416 45.949933,19.6600356 C45.4350277,19.3478297 45.8732321,19.2503046 46.0680905,19.2503046 C46.2629489,19.2503046 47.4156157,19.2353811 48.4891672,19.1392307 C50.1921006,18.986711 50.1921006,19.0478242 51.6210604,18.7529643 C52.4605396,18.554739 53.19468,18.402516 53.878167,18.2835919 C54.1813392,17.6047784 54.2199548,17.1715848 54.2330339,17.0663988 C54.287571,16.7423939 54.1366142,16.475907 53.7801634,16.266938 L53.5853831,16.2972659 C53.4697593,16.5788761 53.1941839,16.712104 52.758657,16.6969497 C51.6375417,16.5050428 51.498728,14.8194806 51.1277166,13.2583898 C50.7567052,11.697299 50.2572289,11.290012 50.1307409,10.8581369 C50.0042528,10.4262619 50.3678399,10.5151746 50.564773,10.5470169 C50.8163677,10.6406717 51.3715785,10.8883367 52.2304054,11.290012 C52.7806546,11.3268716 53.3323743,11.293477 53.8855644,11.1898281 C54.7153497,11.0343549 60.3291202,10.1862845 60.7252629,10.1862845 C60.989358,10.1862845 61.4106097,9.98201384 61.9890181,9.57347247 C62.1390001,9.42685923 62.4054027,9.4776982 62.7882261,9.72598938 Z M98.0687808,14.7156109 C98.6975011,14.9127878 100.487009,16.4218855 100.819132,16.9352237 C101.040548,17.2774491 100.990291,17.5775524 100.66836,17.8355334 C100.337547,18.1792715 100.144805,18.433583 100.090136,18.598468 C99.0089604,23.5584256 98.0243079,24.5561901 97.2214458,24.8079009 C96.4185836,25.0596117 96.2388989,24.6082394 96.1672639,24.2102603 C96.1195072,23.9449409 95.9697578,23.6543051 95.7180158,23.338353 C95.2036965,22.7239074 94.8217277,22.2841218 94.5721092,22.0189961 C94.3224908,21.7538704 94.4010274,21.6218282 94.8077192,21.6228694 C94.8813571,21.641455 95.3043197,21.6725409 96.076607,21.7161272 C96.8488943,21.7597135 97.3575706,20.2800934 97.6026359,17.2772669 C97.6459584,16.6316859 97.2763778,16.3088954 96.4938941,16.3088954 C95.569942,16.3378672 94.7020538,16.3921805 93.8902293,16.4718353 L93.6932067,16.491963 L93.6932067,15.485963 L93.8288092,15.4738018 C94.6420421,15.400899 95.2957245,15.380104 95.5704643,15.380104 C95.970086,15.380104 96.4621912,15.2151114 97.04678,14.8851263 C97.308967,14.6406648 97.649634,14.5841596 98.0687808,14.7156109 Z M90.1244677,3.5203831 C91.0118168,3.78976497 91.9669128,4.44768648 92.9897556,5.49414762 C93.8665194,6.49491416 93.1113778,6.80260284 92.7750227,7.01784401 C92.4386675,7.23308517 92.427432,7.17529757 92.1822616,7.44416439 C91.8999369,7.75377665 91.4089307,8.58356752 91.2290262,8.91155917 C91.1481331,9.07373188 91.0670917,9.23388742 90.9859088,9.39205 C93.9433892,9.16108783 96.4540207,9.14680392 96.9790881,9.14591833 L97.1397622,9.14497254 C97.4695735,9.13846597 98.0785961,9.09617326 98.96683,9.01809441 C100.255697,8.64542943 101.436924,8.8809254 102.51051,9.72458233 C103.298835,10.514809 103.13496,11.0569688 102.018885,11.3510619 C101.627693,11.3159647 101.388689,11.2860201 101.301875,11.2612282 C98.8914971,10.5728905 97.3607494,10.3948394 94.2664022,10.4780123 C92.8012401,10.4780123 91.5021885,10.514964 90.3510946,10.5785973 C89.096512,12.8512472 87.8114218,14.667537 86.5208904,16.116893 L86.4893187,16.1508887 C86.7556217,16.3263142 87.0972634,16.4935649 87.4775152,16.5814951 C87.4872423,16.5882186 87.4967662,16.5945433 87.5060948,16.6005083 C87.8969689,16.5981675 88.7328787,16.519445 90.6391362,16.0022969 C90.8802077,15.9368967 91.1286971,15.8781248 91.3801541,15.825346 L91.5712067,15.785963 L91.5712067,16.795963 L91.2098567,16.8680678 C90.9389481,16.9242576 90.6770098,16.9845019 90.4240416,17.048801 C89.6026733,17.3545209 88.8906855,17.5268784 88.2880782,17.5658734 C88.2202716,17.5658734 88.1567913,17.5642268 88.097637,17.5609337 C88.4834338,20.1910169 88.6772416,23.2676671 88.3473291,24.0738927 C88.0108217,24.8962347 87.172143,24.1839432 86.9322116,23.6500991 C86.5373,23.0391209 86.0551337,20.0797409 85.7859635,18.6026381 C85.6852195,18.0497936 85.5451744,17.6199215 85.365828,17.3130218 C84.3338185,18.3028143 83.320725,19.0742447 82.4887156,19.6784614 C80.636225,21.0237654 79.3768411,21.5495556 79.258144,21.6289427 C78.8113187,21.8571744 77.4390148,22.1174213 78.3915437,21.3395961 C83.0335519,17.9171834 85.9129841,13.8607569 87.5951362,10.807229 C83.2893737,11.3013345 81.9970342,12.1946707 81.7300986,12.3635297 C81.3572089,12.5994134 81.0021947,12.6615268 80.3644525,12.5234392 C79.7267102,12.3853516 78.906383,11.9340224 78.0158852,11.3510619 C77.8621635,11.2718855 77.0559293,10.4780123 78.0158852,10.4780123 C81.0349941,10.5566158 81.4834843,10.5566158 83.690427,10.4269928 C83.9625266,10.3944089 84.2262219,10.3571287 84.490783,10.2980035 C85.6484316,10.0315127 86.9183973,9.82666125 88.1924388,9.66919193 C89.0968226,7.85742612 89.5185274,6.56821192 89.616876,6.26141847 C89.8848849,5.42537804 89.482591,4.67639524 89.2796822,3.98325669 C89.1444096,3.52116432 89.4260048,3.36687312 90.1244677,3.5203831 Z M55.334215,19.6340956 L55.171019,19.8305767 C54.3454219,20.8120686 53.4719041,21.6224197 52.6159855,22.2891224 C52.7533757,22.3386607 52.8798263,22.415652 52.9953181,22.5188624 C53.86973,22.3769211 54.9707008,22.2367192 56.2961249,22.0996134 C56.302401,21.6751705 56.3007266,21.3303162 56.2853035,21.1040001 C56.2362009,20.3834773 55.9191714,19.8935092 55.334215,19.6340956 Z M18.6376771,11.905779 C21.4233149,11.905779 23.6815204,14.1797649 23.6815204,16.9848687 C23.6815204,19.7899724 21.4233149,22.0639583 18.6376771,22.0639583 C15.8520394,22.0639583 13.5938338,19.7899724 13.5938338,16.9848687 C13.5938338,14.1797649 15.8520394,11.905779 18.6376771,11.905779 Z M91.6116931,11.5642335 C91.6732305,11.5726831 91.7416058,11.5863628 91.784304,11.5959214 C92.6132691,11.7320369 93.5759018,12.4024788 93.9880564,12.7568047 C94.2628261,12.9930219 94.3296975,13.2774135 94.1886705,13.6099794 C93.9372801,14.4183823 93.7903834,14.8760713 93.7479802,14.9830462 C93.7161778,15.0632774 93.698035,15.1266011 93.6935519,15.1730172 L93.6932067,15.485963 L93.6032274,15.4949998 C92.9920064,15.5550985 92.3069443,15.644264 91.6324354,15.7745413 L91.5712067,15.785963 L91.5712915,14.5706208 C91.5712915,13.2443391 91.022167,12.8300141 90.8151988,12.4275404 L90.7824082,12.3564555 C90.3494793,11.4582195 91.1912274,11.5065001 91.6116931,11.5642335 Z M60.49668,10.8297463 C59.4960254,10.8297463 59.3818611,10.8297463 57.5551371,11.1239049 C56.337321,11.3200105 54.7094868,11.5675343 52.6716343,11.8664761 C52.6251999,11.8736864 52.5978049,11.8903098 52.5894493,11.9163464 C52.5810938,11.9423829 52.5846157,11.976918 52.600015,12.0199515 C52.7218824,12.4699254 52.8292198,12.8936038 52.9220273,13.2909867 C54.8303057,13.0660068 56.2626761,12.763124 57.2197766,12.3807208 C58.701163,11.7888427 59.9467222,12.1430801 60.0850372,12.2080082 C60.1416813,12.2080082 60.7902395,12.6449371 60.2115703,13.0190899 C59.3762052,13.5104869 57.3208013,13.3855503 57.172854,13.3855503 C57.0742226,13.3855503 56.9260653,13.3956531 56.7283822,13.4158587 C55.0992932,13.7223776 53.8099163,13.9545793 52.8602515,14.112464 L53.093087,14.0745282 C53.1827895,14.5195742 53.2504294,14.9246923 53.2960067,15.2898826 C53.313907,15.4726913 53.7193884,15.4825331 54.5124509,15.3194081 C57.5574657,14.8603675 59.4770208,14.6583172 60.271116,14.7132572 C60.3764645,14.7132572 60.4516525,14.6666181 60.49668,14.5733399 C61.0144569,13.2933744 61.3592578,12.165585 61.5310826,11.1899718 C61.5310826,11.0275983 61.4120888,10.8866391 60.49668,10.8297463 Z M60.5871583,3.83471033 C60.6143883,3.8426355 60.6473141,3.85306262 60.6859357,3.86599168 C61.4635697,4.10138126 62.205039,4.65736507 62.5133204,4.89664912 C62.8216019,5.13593318 62.718279,5.32438395 62.6156252,5.43143941 C62.5129715,5.53849487 60.994388,6.28985407 60.8652168,6.362974 C60.7883308,6.38917513 60.6752465,6.42385805 60.7654667,6.48311949 L60.7813805,6.49739632 C61.7951947,6.34967021 62.6089544,6.18881679 62.6823925,6.17120849 C62.7748756,6.14903379 63.0748486,6.12709707 63.5823115,6.10539835 C65.1933483,6.19792461 66.1876622,6.47504538 66.5652533,6.93676064 C66.9599855,7.56432132 66.273095,7.90872958 65.9534379,7.82860117 C65.6422168,7.77545393 65.2974176,7.62249872 61.6958508,7.52411459 C61.524559,7.52141213 61.3573724,7.51923475 61.1942274,7.51754668 C61.1682372,7.58118815 61.1294756,7.64664337 61.0810928,7.71486784 C60.7780636,8.14216844 59.3096559,9.67088203 58.8101096,9.82890538 C58.4770787,9.93425428 58.3769978,9.7780644 58.5098669,9.36033575 C58.7981619,8.63808742 59.0433016,8.02470042 59.2452858,7.52017473 C56.7595053,7.5591717 55.6842935,7.720877 55.5576404,7.74632598 C55.5029654,7.75731206 55.2561664,7.80101931 54.9422053,7.85825948 C54.9684794,8.19302515 54.9975809,8.73667145 55.0283058,9.48863708 C54.9695817,10.419572 54.7068531,10.6710674 54.2401198,10.2431232 C53.7326374,9.56558429 53.4958052,8.89484993 53.3000668,8.19399927 L53.2599971,8.20745766 C52.9824105,8.3146015 50.3831775,9.08781199 50.1484322,9.17075815 C49.913687,9.25370431 49.8463566,9.22698895 49.7489424,9.21202514 C49.3485241,9.13485825 47.9546066,7.96787447 47.8877766,7.66284495 C47.8432233,7.45949194 48.0196103,7.37822591 48.4169374,7.41904686 C49.8895543,7.56395318 51.0865217,7.56395318 52.0078395,7.41904686 C52.3507653,7.34947433 52.6954401,7.2845039 53.0400072,7.22452961 C52.9610187,6.94370822 52.8732674,6.65520065 52.7634879,6.35776411 C51.9389556,4.54072605 51.7513442,4.6551396 51.6765879,4.31048674 C51.6267504,4.08071817 51.8594727,3.99754174 52.3747548,4.06095745 C52.4569545,4.07428029 52.5424168,4.09360909 52.6311414,4.11894385 C53.8500219,4.577223 54.8289464,5.16024689 54.8289464,5.71873643 C54.8289464,5.91557073 54.8340338,6.35818646 54.8701415,6.95285416 C55.9631087,6.82158412 57.0199897,6.74887702 57.978687,6.74887702 C58.4675067,6.74887702 59.0310476,6.70802984 59.5945496,6.64802937 C59.7104893,6.36077769 59.7979775,6.14408359 59.8577345,5.99734271 C60.0423474,5.54400259 60.0078944,5.03058954 59.7543754,4.45710356 C59.55215,4.0801129 59.5680412,3.84642461 59.8020491,3.75603869 C60.0169563,3.71758126 60.2786594,3.74380514 60.5871583,3.83471033 Z\",\"id\":\"形状结合\"})))]);\n}\n\nLogoMobileInline.defaultProps = {\"width\":\"103px\",\"height\":\"34px\",\"viewBox\":\"0 0 103 34\",\"version\":\"1.1\"};\n\nmodule.exports = LogoMobileInline;\n\nLogoMobileInline.default = LogoMobileInline;\n","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\n\nvar shallowEqual = _interopDefault(require('shallowequal'));\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_Component) {\n _inheritsLoose(SideEffect, _Component);\n\n function SideEffect() {\n return _Component.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n };\n\n _proto.componentWillMount = function componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.Component);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;","/**\n * https://github.com/gre/bezier-easing\n * BezierEasing - use bezier curve for transition easing function\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\n */\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nvar float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\n\nfunction B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n}\n\nfunction C(aA1) {\n return 3.0 * aA1;\n} // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\nfunction calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n} // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\nfunction getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n}\n\nfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n}\n\nfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n}\n\nfunction LinearEasing(x) {\n return x;\n}\n\nmodule.exports = function bezier(mX1, mY1, mX2, mY2) {\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n }\n\n if (mX1 === mY1 && mX2 === mY2) {\n return LinearEasing;\n } // Precompute samples table\n\n\n var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n\n function getTForX(aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n\n return function BezierEasing(x) {\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n\n if (x === 1) {\n return 1;\n }\n\n return calcBezier(getTForX(x), mY1, mY2);\n };\n};","!function (e, t) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = t() : \"function\" == typeof define && define.amd ? define([], t) : \"object\" == typeof exports ? exports.bowser = t() : e.bowser = t();\n}(this, function () {\n return function (e) {\n var t = {};\n\n function r(n) {\n if (t[n]) return t[n].exports;\n var i = t[n] = {\n i: n,\n l: !1,\n exports: {}\n };\n return e[n].call(i.exports, i, i.exports, r), i.l = !0, i.exports;\n }\n\n return r.m = e, r.c = t, r.d = function (e, t, n) {\n r.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: n\n });\n }, r.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, r.t = function (e, t) {\n if (1 & t && (e = r(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var n = Object.create(null);\n if (r.r(n), Object.defineProperty(n, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var i in e) {\n r.d(n, i, function (t) {\n return e[t];\n }.bind(null, i));\n }\n return n;\n }, r.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return r.d(t, \"a\", t), t;\n }, r.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, r.p = \"\", r(r.s = 90);\n }({\n 17: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n\n var n = r(18),\n i = function () {\n function e() {}\n\n return e.getFirstMatch = function (e, t) {\n var r = t.match(e);\n return r && r.length > 0 && r[1] || \"\";\n }, e.getSecondMatch = function (e, t) {\n var r = t.match(e);\n return r && r.length > 1 && r[2] || \"\";\n }, e.matchAndReturnConst = function (e, t, r) {\n if (e.test(t)) return r;\n }, e.getWindowsVersionName = function (e) {\n switch (e) {\n case \"NT\":\n return \"NT\";\n\n case \"XP\":\n return \"XP\";\n\n case \"NT 5.0\":\n return \"2000\";\n\n case \"NT 5.1\":\n return \"XP\";\n\n case \"NT 5.2\":\n return \"2003\";\n\n case \"NT 6.0\":\n return \"Vista\";\n\n case \"NT 6.1\":\n return \"7\";\n\n case \"NT 6.2\":\n return \"8\";\n\n case \"NT 6.3\":\n return \"8.1\";\n\n case \"NT 10.0\":\n return \"10\";\n\n default:\n return;\n }\n }, e.getMacOSVersionName = function (e) {\n var t = e.split(\".\").splice(0, 2).map(function (e) {\n return parseInt(e, 10) || 0;\n });\n if (t.push(0), 10 === t[0]) switch (t[1]) {\n case 5:\n return \"Leopard\";\n\n case 6:\n return \"Snow Leopard\";\n\n case 7:\n return \"Lion\";\n\n case 8:\n return \"Mountain Lion\";\n\n case 9:\n return \"Mavericks\";\n\n case 10:\n return \"Yosemite\";\n\n case 11:\n return \"El Capitan\";\n\n case 12:\n return \"Sierra\";\n\n case 13:\n return \"High Sierra\";\n\n case 14:\n return \"Mojave\";\n\n case 15:\n return \"Catalina\";\n\n default:\n return;\n }\n }, e.getAndroidVersionName = function (e) {\n var t = e.split(\".\").splice(0, 2).map(function (e) {\n return parseInt(e, 10) || 0;\n });\n if (t.push(0), !(1 === t[0] && t[1] < 5)) return 1 === t[0] && t[1] < 6 ? \"Cupcake\" : 1 === t[0] && t[1] >= 6 ? \"Donut\" : 2 === t[0] && t[1] < 2 ? \"Eclair\" : 2 === t[0] && 2 === t[1] ? \"Froyo\" : 2 === t[0] && t[1] > 2 ? \"Gingerbread\" : 3 === t[0] ? \"Honeycomb\" : 4 === t[0] && t[1] < 1 ? \"Ice Cream Sandwich\" : 4 === t[0] && t[1] < 4 ? \"Jelly Bean\" : 4 === t[0] && t[1] >= 4 ? \"KitKat\" : 5 === t[0] ? \"Lollipop\" : 6 === t[0] ? \"Marshmallow\" : 7 === t[0] ? \"Nougat\" : 8 === t[0] ? \"Oreo\" : 9 === t[0] ? \"Pie\" : void 0;\n }, e.getVersionPrecision = function (e) {\n return e.split(\".\").length;\n }, e.compareVersions = function (t, r, n) {\n void 0 === n && (n = !1);\n var i = e.getVersionPrecision(t),\n s = e.getVersionPrecision(r),\n a = Math.max(i, s),\n o = 0,\n u = e.map([t, r], function (t) {\n var r = a - e.getVersionPrecision(t),\n n = t + new Array(r + 1).join(\".0\");\n return e.map(n.split(\".\"), function (e) {\n return new Array(20 - e.length).join(\"0\") + e;\n }).reverse();\n });\n\n for (n && (o = a - Math.min(i, s)), a -= 1; a >= o;) {\n if (u[0][a] > u[1][a]) return 1;\n\n if (u[0][a] === u[1][a]) {\n if (a === o) return 0;\n a -= 1;\n } else if (u[0][a] < u[1][a]) return -1;\n }\n }, e.map = function (e, t) {\n var r,\n n = [];\n if (Array.prototype.map) return Array.prototype.map.call(e, t);\n\n for (r = 0; r < e.length; r += 1) {\n n.push(t(e[r]));\n }\n\n return n;\n }, e.find = function (e, t) {\n var r, n;\n if (Array.prototype.find) return Array.prototype.find.call(e, t);\n\n for (r = 0, n = e.length; r < n; r += 1) {\n var i = e[r];\n if (t(i, r)) return i;\n }\n }, e.assign = function (e) {\n for (var t, r, n = e, i = arguments.length, s = new Array(i > 1 ? i - 1 : 0), a = 1; a < i; a++) {\n s[a - 1] = arguments[a];\n }\n\n if (Object.assign) return Object.assign.apply(Object, [e].concat(s));\n\n var o = function o() {\n var e = s[t];\n \"object\" == typeof e && null !== e && Object.keys(e).forEach(function (t) {\n n[t] = e[t];\n });\n };\n\n for (t = 0, r = s.length; t < r; t += 1) {\n o();\n }\n\n return e;\n }, e.getBrowserAlias = function (e) {\n return n.BROWSER_ALIASES_MAP[e];\n }, e.getBrowserTypeByAlias = function (e) {\n return n.BROWSER_MAP[e] || \"\";\n }, e;\n }();\n\n t.default = i, e.exports = t.default;\n },\n 18: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.ENGINE_MAP = t.OS_MAP = t.PLATFORMS_MAP = t.BROWSER_MAP = t.BROWSER_ALIASES_MAP = void 0;\n t.BROWSER_ALIASES_MAP = {\n \"Amazon Silk\": \"amazon_silk\",\n \"Android Browser\": \"android\",\n Bada: \"bada\",\n BlackBerry: \"blackberry\",\n Chrome: \"chrome\",\n Chromium: \"chromium\",\n Electron: \"electron\",\n Epiphany: \"epiphany\",\n Firefox: \"firefox\",\n Focus: \"focus\",\n Generic: \"generic\",\n \"Google Search\": \"google_search\",\n Googlebot: \"googlebot\",\n \"Internet Explorer\": \"ie\",\n \"K-Meleon\": \"k_meleon\",\n Maxthon: \"maxthon\",\n \"Microsoft Edge\": \"edge\",\n \"MZ Browser\": \"mz\",\n \"NAVER Whale Browser\": \"naver\",\n Opera: \"opera\",\n \"Opera Coast\": \"opera_coast\",\n PhantomJS: \"phantomjs\",\n Puffin: \"puffin\",\n QupZilla: \"qupzilla\",\n QQ: \"qq\",\n QQLite: \"qqlite\",\n Safari: \"safari\",\n Sailfish: \"sailfish\",\n \"Samsung Internet for Android\": \"samsung_internet\",\n SeaMonkey: \"seamonkey\",\n Sleipnir: \"sleipnir\",\n Swing: \"swing\",\n Tizen: \"tizen\",\n \"UC Browser\": \"uc\",\n Vivaldi: \"vivaldi\",\n \"WebOS Browser\": \"webos\",\n WeChat: \"wechat\",\n \"Yandex Browser\": \"yandex\",\n Roku: \"roku\"\n };\n t.BROWSER_MAP = {\n amazon_silk: \"Amazon Silk\",\n android: \"Android Browser\",\n bada: \"Bada\",\n blackberry: \"BlackBerry\",\n chrome: \"Chrome\",\n chromium: \"Chromium\",\n electron: \"Electron\",\n epiphany: \"Epiphany\",\n firefox: \"Firefox\",\n focus: \"Focus\",\n generic: \"Generic\",\n googlebot: \"Googlebot\",\n google_search: \"Google Search\",\n ie: \"Internet Explorer\",\n k_meleon: \"K-Meleon\",\n maxthon: \"Maxthon\",\n edge: \"Microsoft Edge\",\n mz: \"MZ Browser\",\n naver: \"NAVER Whale Browser\",\n opera: \"Opera\",\n opera_coast: \"Opera Coast\",\n phantomjs: \"PhantomJS\",\n puffin: \"Puffin\",\n qupzilla: \"QupZilla\",\n qq: \"QQ Browser\",\n qqlite: \"QQ Browser Lite\",\n safari: \"Safari\",\n sailfish: \"Sailfish\",\n samsung_internet: \"Samsung Internet for Android\",\n seamonkey: \"SeaMonkey\",\n sleipnir: \"Sleipnir\",\n swing: \"Swing\",\n tizen: \"Tizen\",\n uc: \"UC Browser\",\n vivaldi: \"Vivaldi\",\n webos: \"WebOS Browser\",\n wechat: \"WeChat\",\n yandex: \"Yandex Browser\"\n };\n t.PLATFORMS_MAP = {\n tablet: \"tablet\",\n mobile: \"mobile\",\n desktop: \"desktop\",\n tv: \"tv\"\n };\n t.OS_MAP = {\n WindowsPhone: \"Windows Phone\",\n Windows: \"Windows\",\n MacOS: \"macOS\",\n iOS: \"iOS\",\n Android: \"Android\",\n WebOS: \"WebOS\",\n BlackBerry: \"BlackBerry\",\n Bada: \"Bada\",\n Tizen: \"Tizen\",\n Linux: \"Linux\",\n ChromeOS: \"Chrome OS\",\n PlayStation4: \"PlayStation 4\",\n Roku: \"Roku\"\n };\n t.ENGINE_MAP = {\n EdgeHTML: \"EdgeHTML\",\n Blink: \"Blink\",\n Trident: \"Trident\",\n Presto: \"Presto\",\n Gecko: \"Gecko\",\n WebKit: \"WebKit\"\n };\n },\n 90: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n,\n i = (n = r(91)) && n.__esModule ? n : {\n default: n\n },\n s = r(18);\n\n function a(e, t) {\n for (var r = 0; r < t.length; r++) {\n var n = t[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);\n }\n }\n\n var o = function () {\n function e() {}\n\n var t, r, n;\n return e.getParser = function (e, t) {\n if (void 0 === t && (t = !1), \"string\" != typeof e) throw new Error(\"UserAgent should be a string\");\n return new i.default(e, t);\n }, e.parse = function (e) {\n return new i.default(e).getResult();\n }, t = e, n = [{\n key: \"BROWSER_MAP\",\n get: function get() {\n return s.BROWSER_MAP;\n }\n }, {\n key: \"ENGINE_MAP\",\n get: function get() {\n return s.ENGINE_MAP;\n }\n }, {\n key: \"OS_MAP\",\n get: function get() {\n return s.OS_MAP;\n }\n }, {\n key: \"PLATFORMS_MAP\",\n get: function get() {\n return s.PLATFORMS_MAP;\n }\n }], (r = null) && a(t.prototype, r), n && a(t, n), e;\n }();\n\n t.default = o, e.exports = t.default;\n },\n 91: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n = u(r(92)),\n i = u(r(93)),\n s = u(r(94)),\n a = u(r(95)),\n o = u(r(17));\n\n function u(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n\n var d = function () {\n function e(e, t) {\n if (void 0 === t && (t = !1), null == e || \"\" === e) throw new Error(\"UserAgent parameter can't be empty\");\n this._ua = e, this.parsedResult = {}, !0 !== t && this.parse();\n }\n\n var t = e.prototype;\n return t.getUA = function () {\n return this._ua;\n }, t.test = function (e) {\n return e.test(this._ua);\n }, t.parseBrowser = function () {\n var e = this;\n this.parsedResult.browser = {};\n var t = o.default.find(n.default, function (t) {\n if (\"function\" == typeof t.test) return t.test(e);\n if (t.test instanceof Array) return t.test.some(function (t) {\n return e.test(t);\n });\n throw new Error(\"Browser's test function is not valid\");\n });\n return t && (this.parsedResult.browser = t.describe(this.getUA())), this.parsedResult.browser;\n }, t.getBrowser = function () {\n return this.parsedResult.browser ? this.parsedResult.browser : this.parseBrowser();\n }, t.getBrowserName = function (e) {\n return e ? String(this.getBrowser().name).toLowerCase() || \"\" : this.getBrowser().name || \"\";\n }, t.getBrowserVersion = function () {\n return this.getBrowser().version;\n }, t.getOS = function () {\n return this.parsedResult.os ? this.parsedResult.os : this.parseOS();\n }, t.parseOS = function () {\n var e = this;\n this.parsedResult.os = {};\n var t = o.default.find(i.default, function (t) {\n if (\"function\" == typeof t.test) return t.test(e);\n if (t.test instanceof Array) return t.test.some(function (t) {\n return e.test(t);\n });\n throw new Error(\"Browser's test function is not valid\");\n });\n return t && (this.parsedResult.os = t.describe(this.getUA())), this.parsedResult.os;\n }, t.getOSName = function (e) {\n var t = this.getOS().name;\n return e ? String(t).toLowerCase() || \"\" : t || \"\";\n }, t.getOSVersion = function () {\n return this.getOS().version;\n }, t.getPlatform = function () {\n return this.parsedResult.platform ? this.parsedResult.platform : this.parsePlatform();\n }, t.getPlatformType = function (e) {\n void 0 === e && (e = !1);\n var t = this.getPlatform().type;\n return e ? String(t).toLowerCase() || \"\" : t || \"\";\n }, t.parsePlatform = function () {\n var e = this;\n this.parsedResult.platform = {};\n var t = o.default.find(s.default, function (t) {\n if (\"function\" == typeof t.test) return t.test(e);\n if (t.test instanceof Array) return t.test.some(function (t) {\n return e.test(t);\n });\n throw new Error(\"Browser's test function is not valid\");\n });\n return t && (this.parsedResult.platform = t.describe(this.getUA())), this.parsedResult.platform;\n }, t.getEngine = function () {\n return this.parsedResult.engine ? this.parsedResult.engine : this.parseEngine();\n }, t.getEngineName = function (e) {\n return e ? String(this.getEngine().name).toLowerCase() || \"\" : this.getEngine().name || \"\";\n }, t.parseEngine = function () {\n var e = this;\n this.parsedResult.engine = {};\n var t = o.default.find(a.default, function (t) {\n if (\"function\" == typeof t.test) return t.test(e);\n if (t.test instanceof Array) return t.test.some(function (t) {\n return e.test(t);\n });\n throw new Error(\"Browser's test function is not valid\");\n });\n return t && (this.parsedResult.engine = t.describe(this.getUA())), this.parsedResult.engine;\n }, t.parse = function () {\n return this.parseBrowser(), this.parseOS(), this.parsePlatform(), this.parseEngine(), this;\n }, t.getResult = function () {\n return o.default.assign({}, this.parsedResult);\n }, t.satisfies = function (e) {\n var t = this,\n r = {},\n n = 0,\n i = {},\n s = 0;\n\n if (Object.keys(e).forEach(function (t) {\n var a = e[t];\n \"string\" == typeof a ? (i[t] = a, s += 1) : \"object\" == typeof a && (r[t] = a, n += 1);\n }), n > 0) {\n var a = Object.keys(r),\n u = o.default.find(a, function (e) {\n return t.isOS(e);\n });\n\n if (u) {\n var d = this.satisfies(r[u]);\n if (void 0 !== d) return d;\n }\n\n var c = o.default.find(a, function (e) {\n return t.isPlatform(e);\n });\n\n if (c) {\n var f = this.satisfies(r[c]);\n if (void 0 !== f) return f;\n }\n }\n\n if (s > 0) {\n var l = Object.keys(i),\n h = o.default.find(l, function (e) {\n return t.isBrowser(e, !0);\n });\n if (void 0 !== h) return this.compareVersion(i[h]);\n }\n }, t.isBrowser = function (e, t) {\n void 0 === t && (t = !1);\n var r = this.getBrowserName().toLowerCase(),\n n = e.toLowerCase(),\n i = o.default.getBrowserTypeByAlias(n);\n return t && i && (n = i.toLowerCase()), n === r;\n }, t.compareVersion = function (e) {\n var t = [0],\n r = e,\n n = !1,\n i = this.getBrowserVersion();\n if (\"string\" == typeof i) return \">\" === e[0] || \"<\" === e[0] ? (r = e.substr(1), \"=\" === e[1] ? (n = !0, r = e.substr(2)) : t = [], \">\" === e[0] ? t.push(1) : t.push(-1)) : \"=\" === e[0] ? r = e.substr(1) : \"~\" === e[0] && (n = !0, r = e.substr(1)), t.indexOf(o.default.compareVersions(i, r, n)) > -1;\n }, t.isOS = function (e) {\n return this.getOSName(!0) === String(e).toLowerCase();\n }, t.isPlatform = function (e) {\n return this.getPlatformType(!0) === String(e).toLowerCase();\n }, t.isEngine = function (e) {\n return this.getEngineName(!0) === String(e).toLowerCase();\n }, t.is = function (e, t) {\n return void 0 === t && (t = !1), this.isBrowser(e, t) || this.isOS(e) || this.isPlatform(e);\n }, t.some = function (e) {\n var t = this;\n return void 0 === e && (e = []), e.some(function (e) {\n return t.is(e);\n });\n }, e;\n }();\n\n t.default = d, e.exports = t.default;\n },\n 92: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n,\n i = (n = r(17)) && n.__esModule ? n : {\n default: n\n };\n var s = /version\\/(\\d+(\\.?_?\\d+)+)/i,\n a = [{\n test: [/googlebot/i],\n describe: function describe(e) {\n var t = {\n name: \"Googlebot\"\n },\n r = i.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/opera/i],\n describe: function describe(e) {\n var t = {\n name: \"Opera\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/opr\\/|opios/i],\n describe: function describe(e) {\n var t = {\n name: \"Opera\"\n },\n r = i.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/SamsungBrowser/i],\n describe: function describe(e) {\n var t = {\n name: \"Samsung Internet for Android\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/Whale/i],\n describe: function describe(e) {\n var t = {\n name: \"NAVER Whale Browser\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/MZBrowser/i],\n describe: function describe(e) {\n var t = {\n name: \"MZ Browser\"\n },\n r = i.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/focus/i],\n describe: function describe(e) {\n var t = {\n name: \"Focus\"\n },\n r = i.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/swing/i],\n describe: function describe(e) {\n var t = {\n name: \"Swing\"\n },\n r = i.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/coast/i],\n describe: function describe(e) {\n var t = {\n name: \"Opera Coast\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/opt\\/\\d+(?:.?_?\\d+)+/i],\n describe: function describe(e) {\n var t = {\n name: \"Opera Touch\"\n },\n r = i.default.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/yabrowser/i],\n describe: function describe(e) {\n var t = {\n name: \"Yandex Browser\"\n },\n r = i.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/ucbrowser/i],\n describe: function describe(e) {\n var t = {\n name: \"UC Browser\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/Maxthon|mxios/i],\n describe: function describe(e) {\n var t = {\n name: \"Maxthon\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/epiphany/i],\n describe: function describe(e) {\n var t = {\n name: \"Epiphany\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/puffin/i],\n describe: function describe(e) {\n var t = {\n name: \"Puffin\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/sleipnir/i],\n describe: function describe(e) {\n var t = {\n name: \"Sleipnir\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/k-meleon/i],\n describe: function describe(e) {\n var t = {\n name: \"K-Meleon\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/micromessenger/i],\n describe: function describe(e) {\n var t = {\n name: \"WeChat\"\n },\n r = i.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/qqbrowser/i],\n describe: function describe(e) {\n var t = {\n name: /qqbrowserlite/i.test(e) ? \"QQ Browser Lite\" : \"QQ Browser\"\n },\n r = i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/msie|trident/i],\n describe: function describe(e) {\n var t = {\n name: \"Internet Explorer\"\n },\n r = i.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/\\sedg\\//i],\n describe: function describe(e) {\n var t = {\n name: \"Microsoft Edge\"\n },\n r = i.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/edg([ea]|ios)/i],\n describe: function describe(e) {\n var t = {\n name: \"Microsoft Edge\"\n },\n r = i.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/vivaldi/i],\n describe: function describe(e) {\n var t = {\n name: \"Vivaldi\"\n },\n r = i.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/seamonkey/i],\n describe: function describe(e) {\n var t = {\n name: \"SeaMonkey\"\n },\n r = i.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/sailfish/i],\n describe: function describe(e) {\n var t = {\n name: \"Sailfish\"\n },\n r = i.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/silk/i],\n describe: function describe(e) {\n var t = {\n name: \"Amazon Silk\"\n },\n r = i.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/phantom/i],\n describe: function describe(e) {\n var t = {\n name: \"PhantomJS\"\n },\n r = i.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/slimerjs/i],\n describe: function describe(e) {\n var t = {\n name: \"SlimerJS\"\n },\n r = i.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/blackberry|\\bbb\\d+/i, /rim\\stablet/i],\n describe: function describe(e) {\n var t = {\n name: \"BlackBerry\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/(web|hpw)[o0]s/i],\n describe: function describe(e) {\n var t = {\n name: \"WebOS Browser\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/bada/i],\n describe: function describe(e) {\n var t = {\n name: \"Bada\"\n },\n r = i.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/tizen/i],\n describe: function describe(e) {\n var t = {\n name: \"Tizen\"\n },\n r = i.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/qupzilla/i],\n describe: function describe(e) {\n var t = {\n name: \"QupZilla\"\n },\n r = i.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/firefox|iceweasel|fxios/i],\n describe: function describe(e) {\n var t = {\n name: \"Firefox\"\n },\n r = i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/electron/i],\n describe: function describe(e) {\n var t = {\n name: \"Electron\"\n },\n r = i.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/MiuiBrowser/i],\n describe: function describe(e) {\n var t = {\n name: \"Miui\"\n },\n r = i.default.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/chromium/i],\n describe: function describe(e) {\n var t = {\n name: \"Chromium\"\n },\n r = i.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/chrome|crios|crmo/i],\n describe: function describe(e) {\n var t = {\n name: \"Chrome\"\n },\n r = i.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/GSA/i],\n describe: function describe(e) {\n var t = {\n name: \"Google Search\"\n },\n r = i.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: function test(e) {\n var t = !e.test(/like android/i),\n r = e.test(/android/i);\n return t && r;\n },\n describe: function describe(e) {\n var t = {\n name: \"Android Browser\"\n },\n r = i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/playstation 4/i],\n describe: function describe(e) {\n var t = {\n name: \"PlayStation 4\"\n },\n r = i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/safari|applewebkit/i],\n describe: function describe(e) {\n var t = {\n name: \"Safari\"\n },\n r = i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/.*/i],\n describe: function describe(e) {\n var t = -1 !== e.search(\"\\\\(\") ? /^(.*)\\/(.*)[ \\t]\\((.*)/ : /^(.*)\\/(.*) /;\n return {\n name: i.default.getFirstMatch(t, e),\n version: i.default.getSecondMatch(t, e)\n };\n }\n }];\n t.default = a, e.exports = t.default;\n },\n 93: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n,\n i = (n = r(17)) && n.__esModule ? n : {\n default: n\n },\n s = r(18);\n var a = [{\n test: [/Roku\\/DVP/],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i, e);\n return {\n name: s.OS_MAP.Roku,\n version: t\n };\n }\n }, {\n test: [/windows phone/i],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i, e);\n return {\n name: s.OS_MAP.WindowsPhone,\n version: t\n };\n }\n }, {\n test: [/windows /i],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i, e),\n r = i.default.getWindowsVersionName(t);\n return {\n name: s.OS_MAP.Windows,\n version: t,\n versionName: r\n };\n }\n }, {\n test: [/Macintosh(.*?) FxiOS(.*?)\\//],\n describe: function describe(e) {\n var t = {\n name: s.OS_MAP.iOS\n },\n r = i.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/macintosh/i],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i, e).replace(/[_\\s]/g, \".\"),\n r = i.default.getMacOSVersionName(t),\n n = {\n name: s.OS_MAP.MacOS,\n version: t\n };\n return r && (n.versionName = r), n;\n }\n }, {\n test: [/(ipod|iphone|ipad)/i],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i, e).replace(/[_\\s]/g, \".\");\n return {\n name: s.OS_MAP.iOS,\n version: t\n };\n }\n }, {\n test: function test(e) {\n var t = !e.test(/like android/i),\n r = e.test(/android/i);\n return t && r;\n },\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i, e),\n r = i.default.getAndroidVersionName(t),\n n = {\n name: s.OS_MAP.Android,\n version: t\n };\n return r && (n.versionName = r), n;\n }\n }, {\n test: [/(web|hpw)[o0]s/i],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i, e),\n r = {\n name: s.OS_MAP.WebOS\n };\n return t && t.length && (r.version = t), r;\n }\n }, {\n test: [/blackberry|\\bbb\\d+/i, /rim\\stablet/i],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i, e) || i.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i, e) || i.default.getFirstMatch(/\\bbb(\\d+)/i, e);\n return {\n name: s.OS_MAP.BlackBerry,\n version: t\n };\n }\n }, {\n test: [/bada/i],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i, e);\n return {\n name: s.OS_MAP.Bada,\n version: t\n };\n }\n }, {\n test: [/tizen/i],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i, e);\n return {\n name: s.OS_MAP.Tizen,\n version: t\n };\n }\n }, {\n test: [/linux/i],\n describe: function describe() {\n return {\n name: s.OS_MAP.Linux\n };\n }\n }, {\n test: [/CrOS/],\n describe: function describe() {\n return {\n name: s.OS_MAP.ChromeOS\n };\n }\n }, {\n test: [/PlayStation 4/],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i, e);\n return {\n name: s.OS_MAP.PlayStation4,\n version: t\n };\n }\n }];\n t.default = a, e.exports = t.default;\n },\n 94: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n,\n i = (n = r(17)) && n.__esModule ? n : {\n default: n\n },\n s = r(18);\n var a = [{\n test: [/googlebot/i],\n describe: function describe() {\n return {\n type: \"bot\",\n vendor: \"Google\"\n };\n }\n }, {\n test: [/huawei/i],\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/(can-l01)/i, e) && \"Nova\",\n r = {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"Huawei\"\n };\n return t && (r.model = t), r;\n }\n }, {\n test: [/nexus\\s*(?:7|8|9|10).*/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Nexus\"\n };\n }\n }, {\n test: [/ipad/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Apple\",\n model: \"iPad\"\n };\n }\n }, {\n test: [/Macintosh(.*?) FxiOS(.*?)\\//],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Apple\",\n model: \"iPad\"\n };\n }\n }, {\n test: [/kftt build/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Amazon\",\n model: \"Kindle Fire HD 7\"\n };\n }\n }, {\n test: [/silk/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Amazon\"\n };\n }\n }, {\n test: [/tablet(?! pc)/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet\n };\n }\n }, {\n test: function test(e) {\n var t = e.test(/ipod|iphone/i),\n r = e.test(/like (ipod|iphone)/i);\n return t && !r;\n },\n describe: function describe(e) {\n var t = i.default.getFirstMatch(/(ipod|iphone)/i, e);\n return {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"Apple\",\n model: t\n };\n }\n }, {\n test: [/nexus\\s*[0-6].*/i, /galaxy nexus/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"Nexus\"\n };\n }\n }, {\n test: [/[^-]mobi/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.mobile\n };\n }\n }, {\n test: function test(e) {\n return \"blackberry\" === e.getBrowserName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"BlackBerry\"\n };\n }\n }, {\n test: function test(e) {\n return \"bada\" === e.getBrowserName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.mobile\n };\n }\n }, {\n test: function test(e) {\n return \"windows phone\" === e.getBrowserName();\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"Microsoft\"\n };\n }\n }, {\n test: function test(e) {\n var t = Number(String(e.getOSVersion()).split(\".\")[0]);\n return \"android\" === e.getOSName(!0) && t >= 3;\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet\n };\n }\n }, {\n test: function test(e) {\n return \"android\" === e.getOSName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.mobile\n };\n }\n }, {\n test: function test(e) {\n return \"macos\" === e.getOSName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.desktop,\n vendor: \"Apple\"\n };\n }\n }, {\n test: function test(e) {\n return \"windows\" === e.getOSName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.desktop\n };\n }\n }, {\n test: function test(e) {\n return \"linux\" === e.getOSName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.desktop\n };\n }\n }, {\n test: function test(e) {\n return \"playstation 4\" === e.getOSName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tv\n };\n }\n }, {\n test: function test(e) {\n return \"roku\" === e.getOSName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tv\n };\n }\n }];\n t.default = a, e.exports = t.default;\n },\n 95: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n,\n i = (n = r(17)) && n.__esModule ? n : {\n default: n\n },\n s = r(18);\n var a = [{\n test: function test(e) {\n return \"microsoft edge\" === e.getBrowserName(!0);\n },\n describe: function describe(e) {\n if (/\\sedg\\//i.test(e)) return {\n name: s.ENGINE_MAP.Blink\n };\n var t = i.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return {\n name: s.ENGINE_MAP.EdgeHTML,\n version: t\n };\n }\n }, {\n test: [/trident/i],\n describe: function describe(e) {\n var t = {\n name: s.ENGINE_MAP.Trident\n },\n r = i.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: function test(e) {\n return e.test(/presto/i);\n },\n describe: function describe(e) {\n var t = {\n name: s.ENGINE_MAP.Presto\n },\n r = i.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: function test(e) {\n var t = e.test(/gecko/i),\n r = e.test(/like gecko/i);\n return t && !r;\n },\n describe: function describe(e) {\n var t = {\n name: s.ENGINE_MAP.Gecko\n },\n r = i.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/(apple)?webkit\\/537\\.36/i],\n describe: function describe() {\n return {\n name: s.ENGINE_MAP.Blink\n };\n }\n }, {\n test: [/(apple)?webkit/i],\n describe: function describe(e) {\n var t = {\n name: s.ENGINE_MAP.WebKit\n },\n r = i.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }];\n t.default = a, e.exports = t.default;\n }\n });\n});","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","'use strict';\n\nvar colorString = require('color-string');\n\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\nvar skippedModels = [// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n'keyword', // gray conflicts with some method names, and has its own method defined.\n'gray', // shouldn't really be in color-convert either...\n'hex'];\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n hashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\nvar limiters = {};\n\nfunction Color(obj, model) {\n if (!(this instanceof Color)) {\n return new Color(obj, model);\n }\n\n if (model && model in skippedModels) {\n model = null;\n }\n\n if (model && !(model in convert)) {\n throw new Error('Unknown model: ' + model);\n }\n\n var i;\n var channels;\n\n if (obj == null) {\n // eslint-disable-line no-eq-null,eqeqeq\n this.model = 'rgb';\n this.color = [0, 0, 0];\n this.valpha = 1;\n } else if (obj instanceof Color) {\n this.model = obj.model;\n this.color = obj.color.slice();\n this.valpha = obj.valpha;\n } else if (typeof obj === 'string') {\n var result = colorString.get(obj);\n\n if (result === null) {\n throw new Error('Unable to parse color from string: ' + obj);\n }\n\n this.model = result.model;\n channels = convert[this.model].channels;\n this.color = result.value.slice(0, channels);\n this.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n } else if (obj.length) {\n this.model = model || 'rgb';\n channels = convert[this.model].channels;\n\n var newArr = _slice.call(obj, 0, channels);\n\n this.color = zeroArray(newArr, channels);\n this.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n } else if (typeof obj === 'number') {\n // this is always RGB - can be converted later on.\n obj &= 0xFFFFFF;\n this.model = 'rgb';\n this.color = [obj >> 16 & 0xFF, obj >> 8 & 0xFF, obj & 0xFF];\n this.valpha = 1;\n } else {\n this.valpha = 1;\n var keys = Object.keys(obj);\n\n if ('alpha' in obj) {\n keys.splice(keys.indexOf('alpha'), 1);\n this.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n }\n\n var hashedKeys = keys.sort().join('');\n\n if (!(hashedKeys in hashedModelKeys)) {\n throw new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n }\n\n this.model = hashedModelKeys[hashedKeys];\n var labels = convert[this.model].labels;\n var color = [];\n\n for (i = 0; i < labels.length; i++) {\n color.push(obj[labels[i]]);\n }\n\n this.color = zeroArray(color);\n } // perform limitations (clamping, etc.)\n\n\n if (limiters[this.model]) {\n channels = convert[this.model].channels;\n\n for (i = 0; i < channels; i++) {\n var limit = limiters[this.model][i];\n\n if (limit) {\n this.color[i] = limit(this.color[i]);\n }\n }\n }\n\n this.valpha = Math.max(0, Math.min(1, this.valpha));\n\n if (Object.freeze) {\n Object.freeze(this);\n }\n}\n\nColor.prototype = {\n toString: function toString() {\n return this.string();\n },\n toJSON: function toJSON() {\n return this[this.model]();\n },\n string: function string(places) {\n var self = this.model in colorString.to ? this : this.rgb();\n self = self.round(typeof places === 'number' ? places : 1);\n var args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n return colorString.to[self.model](args);\n },\n percentString: function percentString(places) {\n var self = this.rgb().round(typeof places === 'number' ? places : 1);\n var args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n return colorString.to.rgb.percent(args);\n },\n array: function array() {\n return this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n },\n object: function object() {\n var result = {};\n var channels = convert[this.model].channels;\n var labels = convert[this.model].labels;\n\n for (var i = 0; i < channels; i++) {\n result[labels[i]] = this.color[i];\n }\n\n if (this.valpha !== 1) {\n result.alpha = this.valpha;\n }\n\n return result;\n },\n unitArray: function unitArray() {\n var rgb = this.rgb().color;\n rgb[0] /= 255;\n rgb[1] /= 255;\n rgb[2] /= 255;\n\n if (this.valpha !== 1) {\n rgb.push(this.valpha);\n }\n\n return rgb;\n },\n unitObject: function unitObject() {\n var rgb = this.rgb().object();\n rgb.r /= 255;\n rgb.g /= 255;\n rgb.b /= 255;\n\n if (this.valpha !== 1) {\n rgb.alpha = this.valpha;\n }\n\n return rgb;\n },\n round: function round(places) {\n places = Math.max(places || 0, 0);\n return new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n },\n alpha: function alpha(val) {\n if (arguments.length) {\n return new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n }\n\n return this.valpha;\n },\n // rgb\n red: getset('rgb', 0, maxfn(255)),\n green: getset('rgb', 1, maxfn(255)),\n blue: getset('rgb', 2, maxfn(255)),\n hue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) {\n return (val % 360 + 360) % 360;\n }),\n // eslint-disable-line brace-style\n saturationl: getset('hsl', 1, maxfn(100)),\n lightness: getset('hsl', 2, maxfn(100)),\n saturationv: getset('hsv', 1, maxfn(100)),\n value: getset('hsv', 2, maxfn(100)),\n chroma: getset('hcg', 1, maxfn(100)),\n gray: getset('hcg', 2, maxfn(100)),\n white: getset('hwb', 1, maxfn(100)),\n wblack: getset('hwb', 2, maxfn(100)),\n cyan: getset('cmyk', 0, maxfn(100)),\n magenta: getset('cmyk', 1, maxfn(100)),\n yellow: getset('cmyk', 2, maxfn(100)),\n black: getset('cmyk', 3, maxfn(100)),\n x: getset('xyz', 0, maxfn(100)),\n y: getset('xyz', 1, maxfn(100)),\n z: getset('xyz', 2, maxfn(100)),\n l: getset('lab', 0, maxfn(100)),\n a: getset('lab', 1),\n b: getset('lab', 2),\n keyword: function keyword(val) {\n if (arguments.length) {\n return new Color(val);\n }\n\n return convert[this.model].keyword(this.color);\n },\n hex: function hex(val) {\n if (arguments.length) {\n return new Color(val);\n }\n\n return colorString.to.hex(this.rgb().round().color);\n },\n rgbNumber: function rgbNumber() {\n var rgb = this.rgb().color;\n return (rgb[0] & 0xFF) << 16 | (rgb[1] & 0xFF) << 8 | rgb[2] & 0xFF;\n },\n luminosity: function luminosity() {\n // http://www.w3.org/TR/WCAG20/#relativeluminancedef\n var rgb = this.rgb().color;\n var lum = [];\n\n for (var i = 0; i < rgb.length; i++) {\n var chan = rgb[i] / 255;\n lum[i] = chan <= 0.03928 ? chan / 12.92 : Math.pow((chan + 0.055) / 1.055, 2.4);\n }\n\n return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n },\n contrast: function contrast(color2) {\n // http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n var lum1 = this.luminosity();\n var lum2 = color2.luminosity();\n\n if (lum1 > lum2) {\n return (lum1 + 0.05) / (lum2 + 0.05);\n }\n\n return (lum2 + 0.05) / (lum1 + 0.05);\n },\n level: function level(color2) {\n var contrastRatio = this.contrast(color2);\n\n if (contrastRatio >= 7.1) {\n return 'AAA';\n }\n\n return contrastRatio >= 4.5 ? 'AA' : '';\n },\n isDark: function isDark() {\n // YIQ equation from http://24ways.org/2010/calculating-color-contrast\n var rgb = this.rgb().color;\n var yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n return yiq < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n negate: function negate() {\n var rgb = this.rgb();\n\n for (var i = 0; i < 3; i++) {\n rgb.color[i] = 255 - rgb.color[i];\n }\n\n return rgb;\n },\n lighten: function lighten(ratio) {\n var hsl = this.hsl();\n hsl.color[2] += hsl.color[2] * ratio;\n return hsl;\n },\n darken: function darken(ratio) {\n var hsl = this.hsl();\n hsl.color[2] -= hsl.color[2] * ratio;\n return hsl;\n },\n saturate: function saturate(ratio) {\n var hsl = this.hsl();\n hsl.color[1] += hsl.color[1] * ratio;\n return hsl;\n },\n desaturate: function desaturate(ratio) {\n var hsl = this.hsl();\n hsl.color[1] -= hsl.color[1] * ratio;\n return hsl;\n },\n whiten: function whiten(ratio) {\n var hwb = this.hwb();\n hwb.color[1] += hwb.color[1] * ratio;\n return hwb;\n },\n blacken: function blacken(ratio) {\n var hwb = this.hwb();\n hwb.color[2] += hwb.color[2] * ratio;\n return hwb;\n },\n grayscale: function grayscale() {\n // http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n var rgb = this.rgb().color;\n var val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n return Color.rgb(val, val, val);\n },\n fade: function fade(ratio) {\n return this.alpha(this.valpha - this.valpha * ratio);\n },\n opaquer: function opaquer(ratio) {\n return this.alpha(this.valpha + this.valpha * ratio);\n },\n rotate: function rotate(degrees) {\n var hsl = this.hsl();\n var hue = hsl.color[0];\n hue = (hue + degrees) % 360;\n hue = hue < 0 ? 360 + hue : hue;\n hsl.color[0] = hue;\n return hsl;\n },\n mix: function mix(mixinColor, weight) {\n // ported from sass implementation in C\n // https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n if (!mixinColor || !mixinColor.rgb) {\n throw new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n }\n\n var color1 = mixinColor.rgb();\n var color2 = this.rgb();\n var p = weight === undefined ? 0.5 : weight;\n var w = 2 * p - 1;\n var a = color1.alpha() - color2.alpha();\n var w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n var w2 = 1 - w1;\n return Color.rgb(w1 * color1.red() + w2 * color2.red(), w1 * color1.green() + w2 * color2.green(), w1 * color1.blue() + w2 * color2.blue(), color1.alpha() * p + color2.alpha() * (1 - p));\n }\n}; // model conversion methods and static constructors\n\nObject.keys(convert).forEach(function (model) {\n if (skippedModels.indexOf(model) !== -1) {\n return;\n }\n\n var channels = convert[model].channels; // conversion methods\n\n Color.prototype[model] = function () {\n if (this.model === model) {\n return new Color(this);\n }\n\n if (arguments.length) {\n return new Color(arguments, model);\n }\n\n var newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n return new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n }; // 'static' construction methods\n\n\n Color[model] = function (color) {\n if (typeof color === 'number') {\n color = zeroArray(_slice.call(arguments), channels);\n }\n\n return new Color(color, model);\n };\n});\n\nfunction roundTo(num, places) {\n return Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n return function (num) {\n return roundTo(num, places);\n };\n}\n\nfunction getset(model, channel, modifier) {\n model = Array.isArray(model) ? model : [model];\n model.forEach(function (m) {\n (limiters[m] || (limiters[m] = []))[channel] = modifier;\n });\n model = model[0];\n return function (val) {\n var result;\n\n if (arguments.length) {\n if (modifier) {\n val = modifier(val);\n }\n\n result = this[model]();\n result.color[channel] = val;\n return result;\n }\n\n result = this[model]().color[channel];\n\n if (modifier) {\n result = modifier(result);\n }\n\n return result;\n };\n}\n\nfunction maxfn(max) {\n return function (v) {\n return Math.max(0, Math.min(max, v));\n };\n}\n\nfunction assertArray(val) {\n return Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n for (var i = 0; i < length; i++) {\n if (typeof arr[i] !== 'number') {\n arr[i] = 0;\n }\n }\n\n return arr;\n}\n\nmodule.exports = Color;","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import { graphql, useStaticQuery } from 'gatsby';\nimport React from 'react';\nimport Helmet, { HelmetProps, MetaProps } from 'react-helmet';\n\nexport interface SEOProps {\n skipSuffix?: boolean;\n description: string;\n lang?: string;\n title: string;\n meta: MetaProps[];\n}\nfunction SEO(props: SEOProps) {\n const { site } = useStaticQuery(\n graphql`\n query {\n site {\n siteMetadata {\n title\n description\n language\n }\n }\n }\n `\n );\n\n const metaDescription = props.description || site.siteMetadata.description;\n\n const Component = (Helmet as unknown) as (props: HelmetProps) => JSX.Element;\n return (\n tag.\n // see: https://github.com/gatsbyjs/gatsby/blob/db8755ca13da60f4c4beaaf6542e4ddf6c646578/packages/gatsby-plugin-react-helmet/README.md#titles-dont-appear-when-opening-in-the-background-while-using-gatsby-plugin-offline\n // and https://github.com/nfl/react-helmet/issues/315\n defer={false}\n htmlAttributes={{\n lang: props.lang || site.siteMetadata.language || 'en',\n }}\n title={props.title}\n titleTemplate={\n props.skipSuffix ? '%s' : `%s | ${site.siteMetadata.title}`\n }\n defaultTitle={site.siteMetadata.title}\n meta={([\n {\n name: 'description',\n content: metaDescription,\n },\n {\n property: 'og:title',\n content: props.title,\n },\n {\n property: 'og:description',\n content: metaDescription,\n },\n {\n property: 'og:type',\n content: 'website',\n },\n ] as MetaProps[]).concat(props.meta)}\n />\n );\n}\n\nSEO.defaultProps = {\n meta: [],\n description: '',\n};\n\nexport default SEO;\n","var rng = require('./lib/rng');\n\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof options == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\n\n/* eslint-disable require-jsdoc, valid-jsdoc */\nvar MapShim = function () {\n if (typeof Map !== 'undefined') {\n return Map;\n }\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\n\n\n function getIndex(arr, key) {\n var result = -1;\n arr.some(function (entry, index) {\n if (entry[0] === key) {\n result = index;\n return true;\n }\n\n return false;\n });\n return result;\n }\n\n return (\n /** @class */\n function () {\n function class_1() {\n this.__entries__ = [];\n }\n\n Object.defineProperty(class_1.prototype, \"size\", {\n /**\r\n * @returns {boolean}\r\n */\n get: function get() {\n return this.__entries__.length;\n },\n enumerable: true,\n configurable: true\n });\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\n\n class_1.prototype.get = function (key) {\n var index = getIndex(this.__entries__, key);\n var entry = this.__entries__[index];\n return entry && entry[1];\n };\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.set = function (key, value) {\n var index = getIndex(this.__entries__, key);\n\n if (~index) {\n this.__entries__[index][1] = value;\n } else {\n this.__entries__.push([key, value]);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.delete = function (key) {\n var entries = this.__entries__;\n var index = getIndex(entries, key);\n\n if (~index) {\n entries.splice(index, 1);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.has = function (key) {\n return !!~getIndex(this.__entries__, key);\n };\n /**\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.clear = function () {\n this.__entries__.splice(0);\n };\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.forEach = function (callback, ctx) {\n if (ctx === void 0) {\n ctx = null;\n }\n\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\n var entry = _a[_i];\n callback.call(ctx, entry[1], entry[0]);\n }\n };\n\n return class_1;\n }()\n );\n}();\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\n\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document; // Returns global object of a current environment.\n\nvar global$1 = function () {\n if (typeof global !== 'undefined' && global.Math === Math) {\n return global;\n }\n\n if (typeof self !== 'undefined' && self.Math === Math) {\n return self;\n }\n\n if (typeof window !== 'undefined' && window.Math === Math) {\n return window;\n } // eslint-disable-next-line no-new-func\n\n\n return Function('return this')();\n}();\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\n\n\nvar requestAnimationFrame$1 = function () {\n if (typeof requestAnimationFrame === 'function') {\n // It's required to use a bounded function because IE sometimes throws\n // an \"Invalid calling object\" error if rAF is invoked without the global\n // object on the left hand side.\n return requestAnimationFrame.bind(global$1);\n }\n\n return function (callback) {\n return setTimeout(function () {\n return callback(Date.now());\n }, 1000 / 60);\n };\n}(); // Defines minimum timeout before adding a trailing call.\n\n\nvar trailingTimeout = 2;\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\n\nfunction throttle(callback, delay) {\n var leadingCall = false,\n trailingCall = false,\n lastCallTime = 0;\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\n\n function resolvePending() {\n if (leadingCall) {\n leadingCall = false;\n callback();\n }\n\n if (trailingCall) {\n proxy();\n }\n }\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\n\n\n function timeoutCallback() {\n requestAnimationFrame$1(resolvePending);\n }\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\n\n\n function proxy() {\n var timeStamp = Date.now();\n\n if (leadingCall) {\n // Reject immediately following calls.\n if (timeStamp - lastCallTime < trailingTimeout) {\n return;\n } // Schedule new call to be in invoked when the pending one is resolved.\n // This is important for \"transitions\" which never actually start\n // immediately so there is a chance that we might miss one if change\n // happens amids the pending invocation.\n\n\n trailingCall = true;\n } else {\n leadingCall = true;\n trailingCall = false;\n setTimeout(timeoutCallback, delay);\n }\n\n lastCallTime = timeStamp;\n }\n\n return proxy;\n} // Minimum delay before invoking the update of observers.\n\n\nvar REFRESH_DELAY = 20; // A list of substrings of CSS properties used to find transition events that\n// might affect dimensions of observed elements.\n\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight']; // Check if MutationObserver is available.\n\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\n\nvar ResizeObserverController =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\n function ResizeObserverController() {\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\n this.connected_ = false;\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\n\n this.mutationEventsAdded_ = false;\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\n\n this.mutationsObserver_ = null;\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\n\n this.observers_ = [];\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\n }\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.addObserver = function (observer) {\n if (!~this.observers_.indexOf(observer)) {\n this.observers_.push(observer);\n } // Add listeners if they haven't been added yet.\n\n\n if (!this.connected_) {\n this.connect_();\n }\n };\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.removeObserver = function (observer) {\n var observers = this.observers_;\n var index = observers.indexOf(observer); // Remove observer if it's present in registry.\n\n if (~index) {\n observers.splice(index, 1);\n } // Remove listeners if controller has no connected observers.\n\n\n if (!observers.length && this.connected_) {\n this.disconnect_();\n }\n };\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.refresh = function () {\n var changesDetected = this.updateObservers_(); // Continue running updates if changes have been detected as there might\n // be future ones caused by CSS transitions.\n\n if (changesDetected) {\n this.refresh();\n }\n };\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\n\n\n ResizeObserverController.prototype.updateObservers_ = function () {\n // Collect observers that have active observations.\n var activeObservers = this.observers_.filter(function (observer) {\n return observer.gatherActive(), observer.hasActive();\n }); // Deliver notifications in a separate cycle in order to avoid any\n // collisions between observers, e.g. when multiple instances of\n // ResizeObserver are tracking the same element and the callback of one\n // of them changes content dimensions of the observed target. Sometimes\n // this may result in notifications being blocked for the rest of observers.\n\n activeObservers.forEach(function (observer) {\n return observer.broadcastActive();\n });\n return activeObservers.length > 0;\n };\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.connect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already added.\n if (!isBrowser || this.connected_) {\n return;\n } // Subscription to the \"Transitionend\" event is used as a workaround for\n // delayed transitions. This way it's possible to capture at least the\n // final state of an element.\n\n\n document.addEventListener('transitionend', this.onTransitionEnd_);\n window.addEventListener('resize', this.refresh);\n\n if (mutationObserverSupported) {\n this.mutationsObserver_ = new MutationObserver(this.refresh);\n this.mutationsObserver_.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n } else {\n document.addEventListener('DOMSubtreeModified', this.refresh);\n this.mutationEventsAdded_ = true;\n }\n\n this.connected_ = true;\n };\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.disconnect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already removed.\n if (!isBrowser || !this.connected_) {\n return;\n }\n\n document.removeEventListener('transitionend', this.onTransitionEnd_);\n window.removeEventListener('resize', this.refresh);\n\n if (this.mutationsObserver_) {\n this.mutationsObserver_.disconnect();\n }\n\n if (this.mutationEventsAdded_) {\n document.removeEventListener('DOMSubtreeModified', this.refresh);\n }\n\n this.mutationsObserver_ = null;\n this.mutationEventsAdded_ = false;\n this.connected_ = false;\n };\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\n var _b = _a.propertyName,\n propertyName = _b === void 0 ? '' : _b; // Detect whether transition may affect dimensions of an element.\n\n var isReflowProperty = transitionKeys.some(function (key) {\n return !!~propertyName.indexOf(key);\n });\n\n if (isReflowProperty) {\n this.refresh();\n }\n };\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\n\n\n ResizeObserverController.getInstance = function () {\n if (!this.instance_) {\n this.instance_ = new ResizeObserverController();\n }\n\n return this.instance_;\n };\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\n\n\n ResizeObserverController.instance_ = null;\n return ResizeObserverController;\n}();\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\n\n\nvar defineConfigurable = function defineConfigurable(target, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var key = _a[_i];\n Object.defineProperty(target, key, {\n value: props[key],\n enumerable: false,\n writable: false,\n configurable: true\n });\n }\n\n return target;\n};\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\n\n\nvar getWindowOf = function getWindowOf(target) {\n // Assume that the element is an instance of Node, which means that it\n // has the \"ownerDocument\" property from which we can retrieve a\n // corresponding global object.\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView; // Return the local global object if it's not possible extract one from\n // provided element.\n\n return ownerGlobal || global$1;\n}; // Placeholder of an empty content rectangle.\n\n\nvar emptyRect = createRectInit(0, 0, 0, 0);\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\n\nfunction toFloat(value) {\n return parseFloat(value) || 0;\n}\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\n\n\nfunction getBordersSize(styles) {\n var positions = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n positions[_i - 1] = arguments[_i];\n }\n\n return positions.reduce(function (size, position) {\n var value = styles['border-' + position + '-width'];\n return size + toFloat(value);\n }, 0);\n}\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\n\n\nfunction getPaddings(styles) {\n var positions = ['top', 'right', 'bottom', 'left'];\n var paddings = {};\n\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\n var position = positions_1[_i];\n var value = styles['padding-' + position];\n paddings[position] = toFloat(value);\n }\n\n return paddings;\n}\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getSVGContentRect(target) {\n var bbox = target.getBBox();\n return createRectInit(0, 0, bbox.width, bbox.height);\n}\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getHTMLElementContentRect(target) {\n // Client width & height properties can't be\n // used exclusively as they provide rounded values.\n var clientWidth = target.clientWidth,\n clientHeight = target.clientHeight; // By this condition we can catch all non-replaced inline, hidden and\n // detached elements. Though elements with width & height properties less\n // than 0.5 will be discarded as well.\n //\n // Without it we would need to implement separate methods for each of\n // those cases and it's not possible to perform a precise and performance\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\n // gives wrong results for elements with width & height less than 0.5.\n\n if (!clientWidth && !clientHeight) {\n return emptyRect;\n }\n\n var styles = getWindowOf(target).getComputedStyle(target);\n var paddings = getPaddings(styles);\n var horizPad = paddings.left + paddings.right;\n var vertPad = paddings.top + paddings.bottom; // Computed styles of width & height are being used because they are the\n // only dimensions available to JS that contain non-rounded values. It could\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\n // affected by CSS transformations let alone paddings, borders and scroll bars.\n\n var width = toFloat(styles.width),\n height = toFloat(styles.height); // Width & height include paddings and borders when the 'border-box' box\n // model is applied (except for IE).\n\n if (styles.boxSizing === 'border-box') {\n // Following conditions are required to handle Internet Explorer which\n // doesn't include paddings and borders to computed CSS dimensions.\n //\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\n // properties then it's either IE, and thus we don't need to subtract\n // anything, or an element merely doesn't have paddings/borders styles.\n if (Math.round(width + horizPad) !== clientWidth) {\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\n }\n\n if (Math.round(height + vertPad) !== clientHeight) {\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\n }\n } // Following steps can't be applied to the document's root element as its\n // client[Width/Height] properties represent viewport area of the window.\n // Besides, it's as well not necessary as the itself neither has\n // rendered scroll bars nor it can be clipped.\n\n\n if (!isDocumentElement(target)) {\n // In some browsers (only in Firefox, actually) CSS width & height\n // include scroll bars size which can be removed at this step as scroll\n // bars are the only difference between rounded dimensions + paddings\n // and \"client\" properties, though that is not always true in Chrome.\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\n var horizScrollbar = Math.round(height + vertPad) - clientHeight; // Chrome has a rather weird rounding of \"client\" properties.\n // E.g. for an element with content width of 314.2px it sometimes gives\n // the client width of 315px and for the width of 314.7px it may give\n // 314px. And it doesn't happen all the time. So just ignore this delta\n // as a non-relevant.\n\n if (Math.abs(vertScrollbar) !== 1) {\n width -= vertScrollbar;\n }\n\n if (Math.abs(horizScrollbar) !== 1) {\n height -= horizScrollbar;\n }\n }\n\n return createRectInit(paddings.left, paddings.top, width, height);\n}\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\n\n\nvar isSVGGraphicsElement = function () {\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\n // interface.\n if (typeof SVGGraphicsElement !== 'undefined') {\n return function (target) {\n return target instanceof getWindowOf(target).SVGGraphicsElement;\n };\n } // If it's so, then check that element is at least an instance of the\n // SVGElement and that it has the \"getBBox\" method.\n // eslint-disable-next-line no-extra-parens\n\n\n return function (target) {\n return target instanceof getWindowOf(target).SVGElement && typeof target.getBBox === 'function';\n };\n}();\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\n\n\nfunction isDocumentElement(target) {\n return target === getWindowOf(target).document.documentElement;\n}\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getContentRect(target) {\n if (!isBrowser) {\n return emptyRect;\n }\n\n if (isSVGGraphicsElement(target)) {\n return getSVGContentRect(target);\n }\n\n return getHTMLElementContentRect(target);\n}\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\n\n\nfunction createReadOnlyRect(_a) {\n var x = _a.x,\n y = _a.y,\n width = _a.width,\n height = _a.height; // If DOMRectReadOnly is available use it as a prototype for the rectangle.\n\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\n var rect = Object.create(Constr.prototype); // Rectangle's properties are not writable and non-enumerable.\n\n defineConfigurable(rect, {\n x: x,\n y: y,\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: height + y,\n left: x\n });\n return rect;\n}\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction createRectInit(x, y, width, height) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n}\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\n\n\nvar ResizeObservation =\n/** @class */\nfunction () {\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\n function ResizeObservation(target) {\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\n this.broadcastWidth = 0;\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\n\n this.broadcastHeight = 0;\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\n\n this.contentRect_ = createRectInit(0, 0, 0, 0);\n this.target = target;\n }\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n ResizeObservation.prototype.isActive = function () {\n var rect = getContentRect(this.target);\n this.contentRect_ = rect;\n return rect.width !== this.broadcastWidth || rect.height !== this.broadcastHeight;\n };\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\n\n\n ResizeObservation.prototype.broadcastRect = function () {\n var rect = this.contentRect_;\n this.broadcastWidth = rect.width;\n this.broadcastHeight = rect.height;\n return rect;\n };\n\n return ResizeObservation;\n}();\n\nvar ResizeObserverEntry =\n/** @class */\nfunction () {\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\n function ResizeObserverEntry(target, rectInit) {\n var contentRect = createReadOnlyRect(rectInit); // According to the specification following properties are not writable\n // and are also not enumerable in the native implementation.\n //\n // Property accessors are not being used as they'd require to define a\n // private WeakMap storage which may cause memory leaks in browsers that\n // don't support this type of collections.\n\n defineConfigurable(this, {\n target: target,\n contentRect: contentRect\n });\n }\n\n return ResizeObserverEntry;\n}();\n\nvar ResizeObserverSPI =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\n function ResizeObserverSPI(callback, controller, callbackCtx) {\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\n this.activeObservations_ = [];\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\n\n this.observations_ = new MapShim();\n\n if (typeof callback !== 'function') {\n throw new TypeError('The callback provided as parameter 1 is not a function.');\n }\n\n this.callback_ = callback;\n this.controller_ = controller;\n this.callbackCtx_ = callbackCtx;\n }\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.observe = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n } // Do nothing if current environment doesn't have the Element interface.\n\n\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_; // Do nothing if element is already being observed.\n\n if (observations.has(target)) {\n return;\n }\n\n observations.set(target, new ResizeObservation(target));\n this.controller_.addObserver(this); // Force the update of observations.\n\n this.controller_.refresh();\n };\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.unobserve = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n } // Do nothing if current environment doesn't have the Element interface.\n\n\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_; // Do nothing if element is not being observed.\n\n if (!observations.has(target)) {\n return;\n }\n\n observations.delete(target);\n\n if (!observations.size) {\n this.controller_.removeObserver(this);\n }\n };\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.disconnect = function () {\n this.clearActive();\n this.observations_.clear();\n this.controller_.removeObserver(this);\n };\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.gatherActive = function () {\n var _this = this;\n\n this.clearActive();\n this.observations_.forEach(function (observation) {\n if (observation.isActive()) {\n _this.activeObservations_.push(observation);\n }\n });\n };\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.broadcastActive = function () {\n // Do nothing if observer doesn't have active observations.\n if (!this.hasActive()) {\n return;\n }\n\n var ctx = this.callbackCtx_; // Create ResizeObserverEntry instance for every active observation.\n\n var entries = this.activeObservations_.map(function (observation) {\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\n });\n this.callback_.call(ctx, entries, ctx);\n this.clearActive();\n };\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.clearActive = function () {\n this.activeObservations_.splice(0);\n };\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n ResizeObserverSPI.prototype.hasActive = function () {\n return this.activeObservations_.length > 0;\n };\n\n return ResizeObserverSPI;\n}(); // Registry of internal observers. If WeakMap is not available use current shim\n// for the Map collection as it has all required methods and because WeakMap\n// can't be fully polyfilled anyway.\n\n\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\n\nvar ResizeObserver =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\n function ResizeObserver(callback) {\n if (!(this instanceof ResizeObserver)) {\n throw new TypeError('Cannot call a class as a function.');\n }\n\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n }\n\n var controller = ResizeObserverController.getInstance();\n var observer = new ResizeObserverSPI(callback, controller, this);\n observers.set(this, observer);\n }\n\n return ResizeObserver;\n}(); // Expose public methods of ResizeObserver.\n\n\n['observe', 'unobserve', 'disconnect'].forEach(function (method) {\n ResizeObserver.prototype[method] = function () {\n var _a;\n\n return (_a = observers.get(this))[method].apply(_a, arguments);\n };\n});\n\nvar index = function () {\n // Export existing implementation if available.\n if (typeof global$1.ResizeObserver !== 'undefined') {\n return global$1.ResizeObserver;\n }\n\n return ResizeObserver;\n}();\n\nexport default index;","var conversions = require('./conversions');\n\nvar route = require('./route');\n\nvar convert = {};\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n var wrappedFn = function wrappedFn(args) {\n if (args === undefined || args === null) {\n return args;\n }\n\n if (arguments.length > 1) {\n args = Array.prototype.slice.call(arguments);\n }\n\n return fn(args);\n }; // preserve .conversion property if there is one\n\n\n if ('conversion' in fn) {\n wrappedFn.conversion = fn.conversion;\n }\n\n return wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n var wrappedFn = function wrappedFn(args) {\n if (args === undefined || args === null) {\n return args;\n }\n\n if (arguments.length > 1) {\n args = Array.prototype.slice.call(arguments);\n }\n\n var result = fn(args); // we're assuming the result is an array here.\n // see notice in conversions.js; don't use box types\n // in conversion functions.\n\n if (typeof result === 'object') {\n for (var len = result.length, i = 0; i < len; i++) {\n result[i] = Math.round(result[i]);\n }\n }\n\n return result;\n }; // preserve .conversion property if there is one\n\n\n if ('conversion' in fn) {\n wrappedFn.conversion = fn.conversion;\n }\n\n return wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n convert[fromModel] = {};\n Object.defineProperty(convert[fromModel], 'channels', {\n value: conversions[fromModel].channels\n });\n Object.defineProperty(convert[fromModel], 'labels', {\n value: conversions[fromModel].labels\n });\n var routes = route(fromModel);\n var routeModels = Object.keys(routes);\n routeModels.forEach(function (toModel) {\n var fn = routes[toModel];\n convert[fromModel][toModel] = wrapRounded(fn);\n convert[fromModel][toModel].raw = wrapRaw(fn);\n });\n});\nmodule.exports = convert;","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n\n function classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n var argType = typeof arg;\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg) && arg.length) {\n var inner = classNames.apply(null, arg);\n\n if (inner) {\n classes.push(inner);\n }\n } else if (argType === 'object') {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n\n return classes.join(' ');\n }\n\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n var results = [];\n\n for (var i = 0, len = args.length; i < len; i++) {\n var arg = args[i];\n\n if (isArrayish(arg)) {\n // http://jsperf.com/javascript-array-concat-vs-push/98\n results = concat.call(results, slice.call(arg));\n } else {\n results.push(arg);\n }\n }\n\n return results;\n};\n\nswizzle.wrap = function (fn) {\n return function () {\n return fn(swizzle(arguments));\n };\n};","/* MIT license */\nvar cssKeywords = require('color-name'); // NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\n\nvar reverseKeywords = {};\n\nfor (var key in cssKeywords) {\n if (cssKeywords.hasOwnProperty(key)) {\n reverseKeywords[cssKeywords[key]] = key;\n }\n}\n\nvar convert = module.exports = {\n rgb: {\n channels: 3,\n labels: 'rgb'\n },\n hsl: {\n channels: 3,\n labels: 'hsl'\n },\n hsv: {\n channels: 3,\n labels: 'hsv'\n },\n hwb: {\n channels: 3,\n labels: 'hwb'\n },\n cmyk: {\n channels: 4,\n labels: 'cmyk'\n },\n xyz: {\n channels: 3,\n labels: 'xyz'\n },\n lab: {\n channels: 3,\n labels: 'lab'\n },\n lch: {\n channels: 3,\n labels: 'lch'\n },\n hex: {\n channels: 1,\n labels: ['hex']\n },\n keyword: {\n channels: 1,\n labels: ['keyword']\n },\n ansi16: {\n channels: 1,\n labels: ['ansi16']\n },\n ansi256: {\n channels: 1,\n labels: ['ansi256']\n },\n hcg: {\n channels: 3,\n labels: ['h', 'c', 'g']\n },\n apple: {\n channels: 3,\n labels: ['r16', 'g16', 'b16']\n },\n gray: {\n channels: 1,\n labels: ['gray']\n }\n}; // hide .channels and .labels properties\n\nfor (var model in convert) {\n if (convert.hasOwnProperty(model)) {\n if (!('channels' in convert[model])) {\n throw new Error('missing channels property: ' + model);\n }\n\n if (!('labels' in convert[model])) {\n throw new Error('missing channel labels property: ' + model);\n }\n\n if (convert[model].labels.length !== convert[model].channels) {\n throw new Error('channel and label counts mismatch: ' + model);\n }\n\n var channels = convert[model].channels;\n var labels = convert[model].labels;\n delete convert[model].channels;\n delete convert[model].labels;\n Object.defineProperty(convert[model], 'channels', {\n value: channels\n });\n Object.defineProperty(convert[model], 'labels', {\n value: labels\n });\n }\n}\n\nconvert.rgb.hsl = function (rgb) {\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255;\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n var delta = max - min;\n var h;\n var s;\n var l;\n\n if (max === min) {\n h = 0;\n } else if (r === max) {\n h = (g - b) / delta;\n } else if (g === max) {\n h = 2 + (b - r) / delta;\n } else if (b === max) {\n h = 4 + (r - g) / delta;\n }\n\n h = Math.min(h * 60, 360);\n\n if (h < 0) {\n h += 360;\n }\n\n l = (min + max) / 2;\n\n if (max === min) {\n s = 0;\n } else if (l <= 0.5) {\n s = delta / (max + min);\n } else {\n s = delta / (2 - max - min);\n }\n\n return [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n var rdif;\n var gdif;\n var bdif;\n var h;\n var s;\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255;\n var v = Math.max(r, g, b);\n var diff = v - Math.min(r, g, b);\n\n var diffc = function diffc(c) {\n return (v - c) / 6 / diff + 1 / 2;\n };\n\n if (diff === 0) {\n h = s = 0;\n } else {\n s = diff / v;\n rdif = diffc(r);\n gdif = diffc(g);\n bdif = diffc(b);\n\n if (r === v) {\n h = bdif - gdif;\n } else if (g === v) {\n h = 1 / 3 + rdif - bdif;\n } else if (b === v) {\n h = 2 / 3 + gdif - rdif;\n }\n\n if (h < 0) {\n h += 1;\n } else if (h > 1) {\n h -= 1;\n }\n }\n\n return [h * 360, s * 100, v * 100];\n};\n\nconvert.rgb.hwb = function (rgb) {\n var r = rgb[0];\n var g = rgb[1];\n var b = rgb[2];\n var h = convert.rgb.hsl(rgb)[0];\n var w = 1 / 255 * Math.min(r, Math.min(g, b));\n b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n return [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255;\n var c;\n var m;\n var y;\n var k;\n k = Math.min(1 - r, 1 - g, 1 - b);\n c = (1 - r - k) / (1 - k) || 0;\n m = (1 - g - k) / (1 - k) || 0;\n y = (1 - b - k) / (1 - k) || 0;\n return [c * 100, m * 100, y * 100, k * 100];\n};\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\n\n\nfunction comparativeDistance(x, y) {\n return Math.pow(x[0] - y[0], 2) + Math.pow(x[1] - y[1], 2) + Math.pow(x[2] - y[2], 2);\n}\n\nconvert.rgb.keyword = function (rgb) {\n var reversed = reverseKeywords[rgb];\n\n if (reversed) {\n return reversed;\n }\n\n var currentClosestDistance = Infinity;\n var currentClosestKeyword;\n\n for (var keyword in cssKeywords) {\n if (cssKeywords.hasOwnProperty(keyword)) {\n var value = cssKeywords[keyword]; // Compute comparative distance\n\n var distance = comparativeDistance(rgb, value); // Check if its less, if so set as closest\n\n if (distance < currentClosestDistance) {\n currentClosestDistance = distance;\n currentClosestKeyword = keyword;\n }\n }\n }\n\n return currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n return cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255; // assume sRGB\n\n r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92;\n g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92;\n b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92;\n var x = r * 0.4124 + g * 0.3576 + b * 0.1805;\n var y = r * 0.2126 + g * 0.7152 + b * 0.0722;\n var z = r * 0.0193 + g * 0.1192 + b * 0.9505;\n return [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n var xyz = convert.rgb.xyz(rgb);\n var x = xyz[0];\n var y = xyz[1];\n var z = xyz[2];\n var l;\n var a;\n var b;\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;\n y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;\n z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;\n l = 116 * y - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n return [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n var h = hsl[0] / 360;\n var s = hsl[1] / 100;\n var l = hsl[2] / 100;\n var t1;\n var t2;\n var t3;\n var rgb;\n var val;\n\n if (s === 0) {\n val = l * 255;\n return [val, val, val];\n }\n\n if (l < 0.5) {\n t2 = l * (1 + s);\n } else {\n t2 = l + s - l * s;\n }\n\n t1 = 2 * l - t2;\n rgb = [0, 0, 0];\n\n for (var i = 0; i < 3; i++) {\n t3 = h + 1 / 3 * -(i - 1);\n\n if (t3 < 0) {\n t3++;\n }\n\n if (t3 > 1) {\n t3--;\n }\n\n if (6 * t3 < 1) {\n val = t1 + (t2 - t1) * 6 * t3;\n } else if (2 * t3 < 1) {\n val = t2;\n } else if (3 * t3 < 2) {\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n } else {\n val = t1;\n }\n\n rgb[i] = val * 255;\n }\n\n return rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n var h = hsl[0];\n var s = hsl[1] / 100;\n var l = hsl[2] / 100;\n var smin = s;\n var lmin = Math.max(l, 0.01);\n var sv;\n var v;\n l *= 2;\n s *= l <= 1 ? l : 2 - l;\n smin *= lmin <= 1 ? lmin : 2 - lmin;\n v = (l + s) / 2;\n sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s);\n return [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n var h = hsv[0] / 60;\n var s = hsv[1] / 100;\n var v = hsv[2] / 100;\n var hi = Math.floor(h) % 6;\n var f = h - Math.floor(h);\n var p = 255 * v * (1 - s);\n var q = 255 * v * (1 - s * f);\n var t = 255 * v * (1 - s * (1 - f));\n v *= 255;\n\n switch (hi) {\n case 0:\n return [v, t, p];\n\n case 1:\n return [q, v, p];\n\n case 2:\n return [p, v, t];\n\n case 3:\n return [p, q, v];\n\n case 4:\n return [t, p, v];\n\n case 5:\n return [v, p, q];\n }\n};\n\nconvert.hsv.hsl = function (hsv) {\n var h = hsv[0];\n var s = hsv[1] / 100;\n var v = hsv[2] / 100;\n var vmin = Math.max(v, 0.01);\n var lmin;\n var sl;\n var l;\n l = (2 - s) * v;\n lmin = (2 - s) * vmin;\n sl = s * vmin;\n sl /= lmin <= 1 ? lmin : 2 - lmin;\n sl = sl || 0;\n l /= 2;\n return [h, sl * 100, l * 100];\n}; // http://dev.w3.org/csswg/css-color/#hwb-to-rgb\n\n\nconvert.hwb.rgb = function (hwb) {\n var h = hwb[0] / 360;\n var wh = hwb[1] / 100;\n var bl = hwb[2] / 100;\n var ratio = wh + bl;\n var i;\n var v;\n var f;\n var n; // wh + bl cant be > 1\n\n if (ratio > 1) {\n wh /= ratio;\n bl /= ratio;\n }\n\n i = Math.floor(6 * h);\n v = 1 - bl;\n f = 6 * h - i;\n\n if ((i & 0x01) !== 0) {\n f = 1 - f;\n }\n\n n = wh + f * (v - wh); // linear interpolation\n\n var r;\n var g;\n var b;\n\n switch (i) {\n default:\n case 6:\n case 0:\n r = v;\n g = n;\n b = wh;\n break;\n\n case 1:\n r = n;\n g = v;\n b = wh;\n break;\n\n case 2:\n r = wh;\n g = v;\n b = n;\n break;\n\n case 3:\n r = wh;\n g = n;\n b = v;\n break;\n\n case 4:\n r = n;\n g = wh;\n b = v;\n break;\n\n case 5:\n r = v;\n g = wh;\n b = n;\n break;\n }\n\n return [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n var c = cmyk[0] / 100;\n var m = cmyk[1] / 100;\n var y = cmyk[2] / 100;\n var k = cmyk[3] / 100;\n var r;\n var g;\n var b;\n r = 1 - Math.min(1, c * (1 - k) + k);\n g = 1 - Math.min(1, m * (1 - k) + k);\n b = 1 - Math.min(1, y * (1 - k) + k);\n return [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n var x = xyz[0] / 100;\n var y = xyz[1] / 100;\n var z = xyz[2] / 100;\n var r;\n var g;\n var b;\n r = x * 3.2406 + y * -1.5372 + z * -0.4986;\n g = x * -0.9689 + y * 1.8758 + z * 0.0415;\n b = x * 0.0557 + y * -0.2040 + z * 1.0570; // assume sRGB\n\n r = r > 0.0031308 ? 1.055 * Math.pow(r, 1.0 / 2.4) - 0.055 : r * 12.92;\n g = g > 0.0031308 ? 1.055 * Math.pow(g, 1.0 / 2.4) - 0.055 : g * 12.92;\n b = b > 0.0031308 ? 1.055 * Math.pow(b, 1.0 / 2.4) - 0.055 : b * 12.92;\n r = Math.min(Math.max(0, r), 1);\n g = Math.min(Math.max(0, g), 1);\n b = Math.min(Math.max(0, b), 1);\n return [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n var x = xyz[0];\n var y = xyz[1];\n var z = xyz[2];\n var l;\n var a;\n var b;\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;\n y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;\n z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;\n l = 116 * y - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n return [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n var l = lab[0];\n var a = lab[1];\n var b = lab[2];\n var x;\n var y;\n var z;\n y = (l + 16) / 116;\n x = a / 500 + y;\n z = y - b / 200;\n var y2 = Math.pow(y, 3);\n var x2 = Math.pow(x, 3);\n var z2 = Math.pow(z, 3);\n y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n x *= 95.047;\n y *= 100;\n z *= 108.883;\n return [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n var l = lab[0];\n var a = lab[1];\n var b = lab[2];\n var hr;\n var h;\n var c;\n hr = Math.atan2(b, a);\n h = hr * 360 / 2 / Math.PI;\n\n if (h < 0) {\n h += 360;\n }\n\n c = Math.sqrt(a * a + b * b);\n return [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n var l = lch[0];\n var c = lch[1];\n var h = lch[2];\n var a;\n var b;\n var hr;\n hr = h / 360 * 2 * Math.PI;\n a = c * Math.cos(hr);\n b = c * Math.sin(hr);\n return [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n var r = args[0];\n var g = args[1];\n var b = args[2];\n var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n value = Math.round(value / 50);\n\n if (value === 0) {\n return 30;\n }\n\n var ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));\n\n if (value === 2) {\n ansi += 60;\n }\n\n return ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n // optimization here; we already know the value and don't need to get\n // it converted for us.\n return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n var r = args[0];\n var g = args[1];\n var b = args[2]; // we use the extended greyscale palette here, with the exception of\n // black and white. normal palette only has 4 greyscale shades.\n\n if (r === g && g === b) {\n if (r < 8) {\n return 16;\n }\n\n if (r > 248) {\n return 231;\n }\n\n return Math.round((r - 8) / 247 * 24) + 232;\n }\n\n var ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);\n return ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n var color = args % 10; // handle greyscale\n\n if (color === 0 || color === 7) {\n if (args > 50) {\n color += 3.5;\n }\n\n color = color / 10.5 * 255;\n return [color, color, color];\n }\n\n var mult = (~~(args > 50) + 1) * 0.5;\n var r = (color & 1) * mult * 255;\n var g = (color >> 1 & 1) * mult * 255;\n var b = (color >> 2 & 1) * mult * 255;\n return [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n // handle greyscale\n if (args >= 232) {\n var c = (args - 232) * 10 + 8;\n return [c, c, c];\n }\n\n args -= 16;\n var rem;\n var r = Math.floor(args / 36) / 5 * 255;\n var g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n var b = rem % 6 / 5 * 255;\n return [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n var integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF);\n var string = integer.toString(16).toUpperCase();\n return '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\n if (!match) {\n return [0, 0, 0];\n }\n\n var colorString = match[0];\n\n if (match[0].length === 3) {\n colorString = colorString.split('').map(function (char) {\n return char + char;\n }).join('');\n }\n\n var integer = parseInt(colorString, 16);\n var r = integer >> 16 & 0xFF;\n var g = integer >> 8 & 0xFF;\n var b = integer & 0xFF;\n return [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255;\n var max = Math.max(Math.max(r, g), b);\n var min = Math.min(Math.min(r, g), b);\n var chroma = max - min;\n var grayscale;\n var hue;\n\n if (chroma < 1) {\n grayscale = min / (1 - chroma);\n } else {\n grayscale = 0;\n }\n\n if (chroma <= 0) {\n hue = 0;\n } else if (max === r) {\n hue = (g - b) / chroma % 6;\n } else if (max === g) {\n hue = 2 + (b - r) / chroma;\n } else {\n hue = 4 + (r - g) / chroma + 4;\n }\n\n hue /= 6;\n hue %= 1;\n return [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n var s = hsl[1] / 100;\n var l = hsl[2] / 100;\n var c = 1;\n var f = 0;\n\n if (l < 0.5) {\n c = 2.0 * s * l;\n } else {\n c = 2.0 * s * (1.0 - l);\n }\n\n if (c < 1.0) {\n f = (l - 0.5 * c) / (1.0 - c);\n }\n\n return [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n var s = hsv[1] / 100;\n var v = hsv[2] / 100;\n var c = s * v;\n var f = 0;\n\n if (c < 1.0) {\n f = (v - c) / (1 - c);\n }\n\n return [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n var h = hcg[0] / 360;\n var c = hcg[1] / 100;\n var g = hcg[2] / 100;\n\n if (c === 0.0) {\n return [g * 255, g * 255, g * 255];\n }\n\n var pure = [0, 0, 0];\n var hi = h % 1 * 6;\n var v = hi % 1;\n var w = 1 - v;\n var mg = 0;\n\n switch (Math.floor(hi)) {\n case 0:\n pure[0] = 1;\n pure[1] = v;\n pure[2] = 0;\n break;\n\n case 1:\n pure[0] = w;\n pure[1] = 1;\n pure[2] = 0;\n break;\n\n case 2:\n pure[0] = 0;\n pure[1] = 1;\n pure[2] = v;\n break;\n\n case 3:\n pure[0] = 0;\n pure[1] = w;\n pure[2] = 1;\n break;\n\n case 4:\n pure[0] = v;\n pure[1] = 0;\n pure[2] = 1;\n break;\n\n default:\n pure[0] = 1;\n pure[1] = 0;\n pure[2] = w;\n }\n\n mg = (1.0 - c) * g;\n return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255];\n};\n\nconvert.hcg.hsv = function (hcg) {\n var c = hcg[1] / 100;\n var g = hcg[2] / 100;\n var v = c + g * (1.0 - c);\n var f = 0;\n\n if (v > 0.0) {\n f = c / v;\n }\n\n return [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n var c = hcg[1] / 100;\n var g = hcg[2] / 100;\n var l = g * (1.0 - c) + 0.5 * c;\n var s = 0;\n\n if (l > 0.0 && l < 0.5) {\n s = c / (2 * l);\n } else if (l >= 0.5 && l < 1.0) {\n s = c / (2 * (1 - l));\n }\n\n return [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n var c = hcg[1] / 100;\n var g = hcg[2] / 100;\n var v = c + g * (1.0 - c);\n return [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n var w = hwb[1] / 100;\n var b = hwb[2] / 100;\n var v = 1 - b;\n var c = v - w;\n var g = 0;\n\n if (c < 1) {\n g = (v - c) / (1 - c);\n }\n\n return [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n return [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n return [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n return [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n return [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n var val = Math.round(gray[0] / 100 * 255) & 0xFF;\n var integer = (val << 16) + (val << 8) + val;\n var string = integer.toString(16).toUpperCase();\n return '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n var val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n return [val / 255 * 100];\n};","//\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.\n\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || ret === void 0 && valueA !== valueB) {\n return false;\n }\n }\n\n return true;\n};","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","exports.__esModule = true;\nexports.Helmet = undefined;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactSideEffect = require(\"react-side-effect\");\n\nvar _reactSideEffect2 = _interopRequireDefault(_reactSideEffect);\n\nvar _reactFastCompare = require(\"react-fast-compare\");\n\nvar _reactFastCompare2 = _interopRequireDefault(_reactFastCompare);\n\nvar _HelmetUtils = require(\"./HelmetUtils.js\");\n\nvar _HelmetConstants = require(\"./HelmetConstants.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n _inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n _classCallCheck(this, HelmetWrapper);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !(0, _reactFastCompare2.default)(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.SCRIPT:\n case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case _HelmetConstants.TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _extends2;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n return _extends({}, arrayTypeChildren, (_extends2 = {}, _extends2[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _extends2));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _extends3, _extends4;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.TITLE:\n return _extends({}, newProps, (_extends3 = {}, _extends3[child.type] = nestedChildren, _extends3.titleAttributes = _extends({}, newChildProps), _extends3));\n\n case _HelmetConstants.TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case _HelmetConstants.TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_extends4 = {}, _extends4[child.type] = _extends({}, newChildProps), _extends4));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _extends5;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_extends5 = {}, _extends5[arrayChildName] = arrayTypeChildren[arrayChildName], _extends5));\n });\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!_HelmetConstants.VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return (0, _HelmetUtils.warn)(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return (0, _HelmetUtils.warn)(\"Only elements types \" + _HelmetConstants.VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n _react2.default.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = _objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = (0, _HelmetUtils.convertReactPropstoHtmlAttributes)(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.LINK:\n case _HelmetConstants.TAG_NAMES.META:\n case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n case _HelmetConstants.TAG_NAMES.SCRIPT:\n case _HelmetConstants.TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = _objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return _react2.default.createElement(Component, newProps);\n };\n\n _createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n\n return HelmetWrapper;\n }(_react2.default.Component), _class.propTypes = {\n base: _propTypes2.default.object,\n bodyAttributes: _propTypes2.default.object,\n children: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.node), _propTypes2.default.node]),\n defaultTitle: _propTypes2.default.string,\n defer: _propTypes2.default.bool,\n encodeSpecialCharacters: _propTypes2.default.bool,\n htmlAttributes: _propTypes2.default.object,\n link: _propTypes2.default.arrayOf(_propTypes2.default.object),\n meta: _propTypes2.default.arrayOf(_propTypes2.default.object),\n noscript: _propTypes2.default.arrayOf(_propTypes2.default.object),\n onChangeClientState: _propTypes2.default.func,\n script: _propTypes2.default.arrayOf(_propTypes2.default.object),\n style: _propTypes2.default.arrayOf(_propTypes2.default.object),\n title: _propTypes2.default.string,\n titleAttributes: _propTypes2.default.object,\n titleTemplate: _propTypes2.default.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = (0, _HelmetUtils.mapStateOnServer)({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = (0, _reactSideEffect2.default)(_HelmetUtils.reducePropsToState, _HelmetUtils.handleClientStateChange, _HelmetUtils.mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexports.Helmet = HelmetExport;\nexports.default = HelmetExport;","var conversions = require('./conversions');\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\n\nfunction buildGraph() {\n var graph = {}; // https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\n var models = Object.keys(conversions);\n\n for (var len = models.length, i = 0; i < len; i++) {\n graph[models[i]] = {\n // http://jsperf.com/1-vs-infinity\n // micro-opt, but this is simple.\n distance: -1,\n parent: null\n };\n }\n\n return graph;\n} // https://en.wikipedia.org/wiki/Breadth-first_search\n\n\nfunction deriveBFS(fromModel) {\n var graph = buildGraph();\n var queue = [fromModel]; // unshift -> queue -> pop\n\n graph[fromModel].distance = 0;\n\n while (queue.length) {\n var current = queue.pop();\n var adjacents = Object.keys(conversions[current]);\n\n for (var len = adjacents.length, i = 0; i < len; i++) {\n var adjacent = adjacents[i];\n var node = graph[adjacent];\n\n if (node.distance === -1) {\n node.distance = graph[current].distance + 1;\n node.parent = current;\n queue.unshift(adjacent);\n }\n }\n }\n\n return graph;\n}\n\nfunction link(from, to) {\n return function (args) {\n return to(from(args));\n };\n}\n\nfunction wrapConversion(toModel, graph) {\n var path = [graph[toModel].parent, toModel];\n var fn = conversions[graph[toModel].parent][toModel];\n var cur = graph[toModel].parent;\n\n while (graph[cur].parent) {\n path.unshift(graph[cur].parent);\n fn = link(conversions[graph[cur].parent][cur], fn);\n cur = graph[cur].parent;\n }\n\n fn.conversion = path;\n return fn;\n}\n\nmodule.exports = function (fromModel) {\n var graph = deriveBFS(fromModel);\n var conversion = {};\n var models = Object.keys(graph);\n\n for (var len = models.length, i = 0; i < len; i++) {\n var toModel = models[i];\n var node = graph[toModel];\n\n if (node.parent === null) {\n // no possible conversion, or this node is the source model.\n continue;\n }\n\n conversion[toModel] = wrapConversion(toModel, graph);\n }\n\n return conversion;\n};","var React = require('react');\n\nfunction LogoWebInline (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"title\",{\"key\":0},\"web-log\"),React.createElement(\"g\",{\"id\":\"控件\",\"stroke\":\"none\",\"strokeWidth\":\"1\",\"fill\":\"none\",\"fillRule\":\"evenodd\",\"key\":1},React.createElement(\"g\",{\"id\":\"web-log\",\"fill\":\"#FFFFFF\",\"fillRule\":\"nonzero\"},React.createElement(\"path\",{\"d\":\"M36.745475,2.97047301 C37.6324954,4.83771548 37.3413631,7.05619515 36.0031237,8.62731991 C34.0503909,10.8158782 32.9461358,13.6396772 32.8926702,16.581366 L32.8926702,17.6909983 C32.9493785,20.5250058 34.0385593,23.2391622 35.9530359,25.3171985 C36.7884014,26.264008 37.2515209,27.4855014 37.2553191,28.7520148 C37.2419927,31.5657857 35.0381119,33.8738386 32.2465373,33.9975493 C30.1919724,34.0607566 28.2940229,32.8967695 27.4070025,31.029527 C26.5199821,29.1622845 26.8111144,26.9438049 28.1493538,25.3726801 C30.1028635,23.1846053 31.2072373,20.3605025 31.2598073,17.418634 L31.2598073,16.3090017 C31.203099,13.4749942 30.1139182,10.7608378 28.1994416,8.68280153 C27.3624636,7.73697846 26.8991015,6.51484531 26.8971584,5.24798518 C26.9130197,2.43525016 29.1154929,0.128671485 31.9059402,0.00245066691 C33.9605051,-0.0607566291 35.8584546,1.10323054 36.745475,2.97047301 Z M9.84831667,2.97047301 C10.7353371,4.83771548 10.4442047,7.05619515 9.10596534,8.62731991 C7.17437688,10.8190215 6.08838227,13.6362072 6.04559965,16.5662346 L6.04559965,17.6758669 C6.10047382,20.5093013 7.18790258,23.2235339 9.10095656,25.3020671 C9.93632208,26.2488767 10.3994416,27.47037 10.4032398,28.7368835 C10.4032398,30.6037246 9.4142034,32.328757 7.80869088,33.2621775 C6.20317837,34.1955981 4.22510537,34.1955981 2.61959286,33.2621775 C1.01408035,32.328757 0.02504387,30.6037246 0.0250439091,28.7368835 C0.0240947417,27.486751 0.470409859,26.2781138 1.28224814,25.3323298 C3.21629677,23.1505592 4.30924917,20.3427127 4.36264896,17.418634 L4.36264896,16.3090017 C4.3082771,13.4745127 3.21877255,10.7595496 1.30228327,8.68280153 C0.469311702,7.73453047 0.00655034704,6.51398168 0,5.24798518 C0.0158613143,2.43525016 2.21833454,0.128671485 5.00878182,0.00245066691 C7.06334677,-0.0607566291 8.96129626,1.10323054 9.84831667,2.97047301 Z M93.6932067,16.491963 L93.6936219,25.3630469 C93.6936219,27.9022591 93.260474,28.962159 92.9181118,29.3824481 C92.6898704,29.6626408 92.4357918,29.6626408 92.1558761,29.3824481 C91.9031677,29.0605188 91.7083062,28.5595623 91.5712915,27.8795787 C91.4467326,27.2614117 91.4354091,26.407993 91.5373209,25.3193224 L91.5712915,24.9856636 L91.5712067,16.795963 L91.6229472,16.7868242 C92.1827047,16.682554 92.7783431,16.5945023 93.4098623,16.5226692 L93.6932067,16.491963 Z M62.7882261,9.72598938 C63.4613501,10.1605898 64.3903381,10.9340729 64.6451855,11.2225228 C64.8150838,11.4148228 64.8076306,11.6210278 64.6228259,11.8411379 C63.9543204,12.3793502 63.4734659,12.8995634 63.1802623,13.4017774 C62.4973391,14.6639327 61.9279741,15.4181722 61.4721673,15.6644959 C61.2180386,15.8182314 60.8170745,15.8182314 60.2692752,15.6644959 C59.253159,15.6359612 57.950571,15.7159947 56.3615113,15.9045964 C56.557017,16.08013 56.7694448,16.3093923 56.9407812,16.5808499 C57.1271154,16.8760694 57.0837092,17.0663988 56.9407812,17.285562 C56.8111769,17.5134817 56.6783627,17.7350918 56.5427288,17.9505561 C58.3209448,17.8080718 60.2827781,17.7865 63.5622882,17.6214084 C63.9696588,17.53753 66.4740481,16.4218855 68.2499606,17.9158597 C69.6383827,19.4098339 68.2037705,19.513307 67.6656583,19.3437625 C67.2772991,19.2214011 63.631116,18.4949626 60.1249082,18.3971782 C61.0808862,19.3647109 63.8827627,21.0668929 64.7672543,21.5406598 C65.6441856,22.1117946 68.4735461,23.4258151 69.2633125,24.1335327 C70.0530789,24.8412503 67.2304548,25.1363885 65.0142717,23.9835651 C63.6010071,23.0796416 61.611784,21.3004873 59.0466022,18.6461024 L58.8022067,18.3918895 L58.3643541,18.4079238 C57.7850924,18.4340898 57.2271679,18.4851696 56.7079871,18.5674784 L56.3261379,18.6351642 L56.1141066,18.6773514 C56.8544473,19.0514509 57.4037605,19.3682121 57.7620463,19.627635 C58.1949487,19.9410853 58.3721484,20.34707 58.2936453,20.8455891 C58.2135733,21.1737834 58.1655301,21.4736857 58.1495157,21.745296 L58.1442994,21.9232365 C58.3146273,21.9081714 58.4877742,21.8931452 58.6637403,21.8781579 C59.4901844,21.8781579 60.0261806,21.7908439 60.2717289,21.6162158 C60.444125,21.3906952 60.6877388,21.3155073 61.0025703,21.3906521 C61.5347846,21.715656 62.2115246,22.3748285 63.0327903,23.3681698 C63.1385847,23.6152309 63.1536982,23.7996521 63.0781308,23.9214334 L63.0327903,23.9771041 L62.3647805,24.7573061 C61.8883617,26.2055494 61.4342917,27.1275589 61.0025703,27.5233346 C60.5708489,27.9191103 60.2410371,28.0171696 60.0131348,27.8175124 C59.5683298,27.4058438 59.0033333,26.6989884 58.3181453,25.6969463 C58.2207371,25.420634 58.5005363,25.4619751 58.5005363,25.4619751 C58.8457555,25.4358727 59.3355275,25.6969463 59.6635832,25.4619751 C60.5306241,24.750416 60.6023579,22.6454283 60.6023579,22.6454283 C60.6023579,22.6454283 59.7894226,22.7129372 58.1635521,22.8479549 C58.2080878,25.9404738 58.0088167,27.9870919 57.5650837,28.9888983 C57.3325974,29.535153 57.0706143,29.6422817 56.7791343,29.3102845 C56.1710142,28.7245653 56.2381833,25.3784503 56.281979,23.0631039 C55.5630203,23.1738173 55.0159312,23.2516937 54.6397172,23.2976747 C54.2324565,23.3474503 53.8749098,23.3724443 53.5670771,23.3726569 L53.5262067,23.3708895 L53.5586148,23.4581417 C54.1311707,25.1288232 54.2744704,27.1210058 54.1358073,27.7439715 L54.1151649,27.8202757 C53.9437189,28.3377739 53.539894,28.1318654 53.2898511,27.9274718 C53.0398081,27.7230782 52.4922407,26.5799876 52.1281177,24.8291855 C51.9583324,24.0128114 51.7874144,23.406791 51.615364,23.0111241 C49.4052615,24.4943333 47.5018196,25.0384942 47.133884,25.1608131 C46.9126693,25.2505744 45.9294852,25.2505744 46.854551,24.6889397 C50.56868,22.5879631 52.4059474,20.6775682 53.3189981,19.2916777 C50.9811486,19.8549435 49.4647459,20.3504296 49.1834447,20.4914502 C48.8920023,20.6375548 48.6471924,20.6612493 48.4370171,20.663965 L48.2379423,20.6634445 C47.9867173,20.6634445 46.4648383,19.9722416 45.949933,19.6600356 C45.4350277,19.3478297 45.8732321,19.2503046 46.0680905,19.2503046 C46.2629489,19.2503046 47.4156157,19.2353811 48.4891672,19.1392307 C50.1921006,18.986711 50.1921006,19.0478242 51.6210604,18.7529643 C52.4605396,18.554739 53.19468,18.402516 53.878167,18.2835919 C54.1813392,17.6047784 54.2199548,17.1715848 54.2330339,17.0663988 C54.287571,16.7423939 54.1366142,16.475907 53.7801634,16.266938 L53.5853831,16.2972659 C53.4697593,16.5788761 53.1941839,16.712104 52.758657,16.6969497 C51.6375417,16.5050428 51.498728,14.8194806 51.1277166,13.2583898 C50.7567052,11.697299 50.2572289,11.290012 50.1307409,10.8581369 C50.0042528,10.4262619 50.3678399,10.5151746 50.564773,10.5470169 C50.8163677,10.6406717 51.3715785,10.8883367 52.2304054,11.290012 C52.7806546,11.3268716 53.3323743,11.293477 53.8855644,11.1898281 C54.7153497,11.0343549 60.3291202,10.1862845 60.7252629,10.1862845 C60.989358,10.1862845 61.4106097,9.98201384 61.9890181,9.57347247 C62.1390001,9.42685923 62.4054027,9.4776982 62.7882261,9.72598938 Z M98.0687808,14.7156109 C98.6975011,14.9127878 100.487009,16.4218855 100.819132,16.9352237 C101.040548,17.2774491 100.990291,17.5775524 100.66836,17.8355334 C100.337547,18.1792715 100.144805,18.433583 100.090136,18.598468 C99.0089604,23.5584256 98.0243079,24.5561901 97.2214458,24.8079009 C96.4185836,25.0596117 96.2388989,24.6082394 96.1672639,24.2102603 C96.1195072,23.9449409 95.9697578,23.6543051 95.7180158,23.338353 C95.2036965,22.7239074 94.8217277,22.2841218 94.5721092,22.0189961 C94.3224908,21.7538704 94.4010274,21.6218282 94.8077192,21.6228694 C94.8813571,21.641455 95.3043197,21.6725409 96.076607,21.7161272 C96.8488943,21.7597135 97.3575706,20.2800934 97.6026359,17.2772669 C97.6459584,16.6316859 97.2763778,16.3088954 96.4938941,16.3088954 C95.569942,16.3378672 94.7020538,16.3921805 93.8902293,16.4718353 L93.6932067,16.491963 L93.6932067,15.485963 L93.8288092,15.4738018 C94.6420421,15.400899 95.2957245,15.380104 95.5704643,15.380104 C95.970086,15.380104 96.4621912,15.2151114 97.04678,14.8851263 C97.308967,14.6406648 97.649634,14.5841596 98.0687808,14.7156109 Z M90.1244677,3.5203831 C91.0118168,3.78976497 91.9669128,4.44768648 92.9897556,5.49414762 C93.8665194,6.49491416 93.1113778,6.80260284 92.7750227,7.01784401 C92.4386675,7.23308517 92.427432,7.17529757 92.1822616,7.44416439 C91.8999369,7.75377665 91.4089307,8.58356752 91.2290262,8.91155917 C91.1481331,9.07373188 91.0670917,9.23388742 90.9859088,9.39205 C93.9433892,9.16108783 96.4540207,9.14680392 96.9790881,9.14591833 L97.1397622,9.14497254 C97.4695735,9.13846597 98.0785961,9.09617326 98.96683,9.01809441 C100.255697,8.64542943 101.436924,8.8809254 102.51051,9.72458233 C103.298835,10.514809 103.13496,11.0569688 102.018885,11.3510619 C101.627693,11.3159647 101.388689,11.2860201 101.301875,11.2612282 C98.8914971,10.5728905 97.3607494,10.3948394 94.2664022,10.4780123 C92.8012401,10.4780123 91.5021885,10.514964 90.3510946,10.5785973 C89.096512,12.8512472 87.8114218,14.667537 86.5208904,16.116893 L86.4893187,16.1508887 C86.7556217,16.3263142 87.0972634,16.4935649 87.4775152,16.5814951 C87.4872423,16.5882186 87.4967662,16.5945433 87.5060948,16.6005083 C87.8969689,16.5981675 88.7328787,16.519445 90.6391362,16.0022969 C90.8802077,15.9368967 91.1286971,15.8781248 91.3801541,15.825346 L91.5712067,15.785963 L91.5712067,16.795963 L91.2098567,16.8680678 C90.9389481,16.9242576 90.6770098,16.9845019 90.4240416,17.048801 C89.6026733,17.3545209 88.8906855,17.5268784 88.2880782,17.5658734 C88.2202716,17.5658734 88.1567913,17.5642268 88.097637,17.5609337 C88.4834338,20.1910169 88.6772416,23.2676671 88.3473291,24.0738927 C88.0108217,24.8962347 87.172143,24.1839432 86.9322116,23.6500991 C86.5373,23.0391209 86.0551337,20.0797409 85.7859635,18.6026381 C85.6852195,18.0497936 85.5451744,17.6199215 85.365828,17.3130218 C84.3338185,18.3028143 83.320725,19.0742447 82.4887156,19.6784614 C80.636225,21.0237654 79.3768411,21.5495556 79.258144,21.6289427 C78.8113187,21.8571744 77.4390148,22.1174213 78.3915437,21.3395961 C83.0335519,17.9171834 85.9129841,13.8607569 87.5951362,10.807229 C83.2893737,11.3013345 81.9970342,12.1946707 81.7300986,12.3635297 C81.3572089,12.5994134 81.0021947,12.6615268 80.3644525,12.5234392 C79.7267102,12.3853516 78.906383,11.9340224 78.0158852,11.3510619 C77.8621635,11.2718855 77.0559293,10.4780123 78.0158852,10.4780123 C81.0349941,10.5566158 81.4834843,10.5566158 83.690427,10.4269928 C83.9625266,10.3944089 84.2262219,10.3571287 84.490783,10.2980035 C85.6484316,10.0315127 86.9183973,9.82666125 88.1924388,9.66919193 C89.0968226,7.85742612 89.5185274,6.56821192 89.616876,6.26141847 C89.8848849,5.42537804 89.482591,4.67639524 89.2796822,3.98325669 C89.1444096,3.52116432 89.4260048,3.36687312 90.1244677,3.5203831 Z M55.334215,19.6340956 L55.171019,19.8305767 C54.3454219,20.8120686 53.4719041,21.6224197 52.6159855,22.2891224 C52.7533757,22.3386607 52.8798263,22.415652 52.9953181,22.5188624 C53.86973,22.3769211 54.9707008,22.2367192 56.2961249,22.0996134 C56.302401,21.6751705 56.3007266,21.3303162 56.2853035,21.1040001 C56.2362009,20.3834773 55.9191714,19.8935092 55.334215,19.6340956 Z M18.6376771,11.905779 C21.4233149,11.905779 23.6815204,14.1797649 23.6815204,16.9848687 C23.6815204,19.7899724 21.4233149,22.0639583 18.6376771,22.0639583 C15.8520394,22.0639583 13.5938338,19.7899724 13.5938338,16.9848687 C13.5938338,14.1797649 15.8520394,11.905779 18.6376771,11.905779 Z M91.6116931,11.5642335 C91.6732305,11.5726831 91.7416058,11.5863628 91.784304,11.5959214 C92.6132691,11.7320369 93.5759018,12.4024788 93.9880564,12.7568047 C94.2628261,12.9930219 94.3296975,13.2774135 94.1886705,13.6099794 C93.9372801,14.4183823 93.7903834,14.8760713 93.7479802,14.9830462 C93.7161778,15.0632774 93.698035,15.1266011 93.6935519,15.1730172 L93.6932067,15.485963 L93.6032274,15.4949998 C92.9920064,15.5550985 92.3069443,15.644264 91.6324354,15.7745413 L91.5712067,15.785963 L91.5712915,14.5706208 C91.5712915,13.2443391 91.022167,12.8300141 90.8151988,12.4275404 L90.7824082,12.3564555 C90.3494793,11.4582195 91.1912274,11.5065001 91.6116931,11.5642335 Z M60.49668,10.8297463 C59.4960254,10.8297463 59.3818611,10.8297463 57.5551371,11.1239049 C56.337321,11.3200105 54.7094868,11.5675343 52.6716343,11.8664761 C52.6251999,11.8736864 52.5978049,11.8903098 52.5894493,11.9163464 C52.5810938,11.9423829 52.5846157,11.976918 52.600015,12.0199515 C52.7218824,12.4699254 52.8292198,12.8936038 52.9220273,13.2909867 C54.8303057,13.0660068 56.2626761,12.763124 57.2197766,12.3807208 C58.701163,11.7888427 59.9467222,12.1430801 60.0850372,12.2080082 C60.1416813,12.2080082 60.7902395,12.6449371 60.2115703,13.0190899 C59.3762052,13.5104869 57.3208013,13.3855503 57.172854,13.3855503 C57.0742226,13.3855503 56.9260653,13.3956531 56.7283822,13.4158587 C55.0992932,13.7223776 53.8099163,13.9545793 52.8602515,14.112464 L53.093087,14.0745282 C53.1827895,14.5195742 53.2504294,14.9246923 53.2960067,15.2898826 C53.313907,15.4726913 53.7193884,15.4825331 54.5124509,15.3194081 C57.5574657,14.8603675 59.4770208,14.6583172 60.271116,14.7132572 C60.3764645,14.7132572 60.4516525,14.6666181 60.49668,14.5733399 C61.0144569,13.2933744 61.3592578,12.165585 61.5310826,11.1899718 C61.5310826,11.0275983 61.4120888,10.8866391 60.49668,10.8297463 Z M60.5871583,3.83471033 C60.6143883,3.8426355 60.6473141,3.85306262 60.6859357,3.86599168 C61.4635697,4.10138126 62.205039,4.65736507 62.5133204,4.89664912 C62.8216019,5.13593318 62.718279,5.32438395 62.6156252,5.43143941 C62.5129715,5.53849487 60.994388,6.28985407 60.8652168,6.362974 C60.7883308,6.38917513 60.6752465,6.42385805 60.7654667,6.48311949 L60.7813805,6.49739632 C61.7951947,6.34967021 62.6089544,6.18881679 62.6823925,6.17120849 C62.7748756,6.14903379 63.0748486,6.12709707 63.5823115,6.10539835 C65.1933483,6.19792461 66.1876622,6.47504538 66.5652533,6.93676064 C66.9599855,7.56432132 66.273095,7.90872958 65.9534379,7.82860117 C65.6422168,7.77545393 65.2974176,7.62249872 61.6958508,7.52411459 C61.524559,7.52141213 61.3573724,7.51923475 61.1942274,7.51754668 C61.1682372,7.58118815 61.1294756,7.64664337 61.0810928,7.71486784 C60.7780636,8.14216844 59.3096559,9.67088203 58.8101096,9.82890538 C58.4770787,9.93425428 58.3769978,9.7780644 58.5098669,9.36033575 C58.7981619,8.63808742 59.0433016,8.02470042 59.2452858,7.52017473 C56.7595053,7.5591717 55.6842935,7.720877 55.5576404,7.74632598 C55.5029654,7.75731206 55.2561664,7.80101931 54.9422053,7.85825948 C54.9684794,8.19302515 54.9975809,8.73667145 55.0283058,9.48863708 C54.9695817,10.419572 54.7068531,10.6710674 54.2401198,10.2431232 C53.7326374,9.56558429 53.4958052,8.89484993 53.3000668,8.19399927 L53.2599971,8.20745766 C52.9824105,8.3146015 50.3831775,9.08781199 50.1484322,9.17075815 C49.913687,9.25370431 49.8463566,9.22698895 49.7489424,9.21202514 C49.3485241,9.13485825 47.9546066,7.96787447 47.8877766,7.66284495 C47.8432233,7.45949194 48.0196103,7.37822591 48.4169374,7.41904686 C49.8895543,7.56395318 51.0865217,7.56395318 52.0078395,7.41904686 C52.3507653,7.34947433 52.6954401,7.2845039 53.0400072,7.22452961 C52.9610187,6.94370822 52.8732674,6.65520065 52.7634879,6.35776411 C51.9389556,4.54072605 51.7513442,4.6551396 51.6765879,4.31048674 C51.6267504,4.08071817 51.8594727,3.99754174 52.3747548,4.06095745 C52.4569545,4.07428029 52.5424168,4.09360909 52.6311414,4.11894385 C53.8500219,4.577223 54.8289464,5.16024689 54.8289464,5.71873643 C54.8289464,5.91557073 54.8340338,6.35818646 54.8701415,6.95285416 C55.9631087,6.82158412 57.0199897,6.74887702 57.978687,6.74887702 C58.4675067,6.74887702 59.0310476,6.70802984 59.5945496,6.64802937 C59.7104893,6.36077769 59.7979775,6.14408359 59.8577345,5.99734271 C60.0423474,5.54400259 60.0078944,5.03058954 59.7543754,4.45710356 C59.55215,4.0801129 59.5680412,3.84642461 59.8020491,3.75603869 C60.0169563,3.71758126 60.2786594,3.74380514 60.5871583,3.83471033 Z\",\"id\":\"形状结合\"})))]);\n}\n\nLogoWebInline.defaultProps = {\"width\":\"103px\",\"height\":\"34px\",\"viewBox\":\"0 0 103 34\",\"version\":\"1.1\"};\n\nmodule.exports = LogoWebInline;\n\nLogoWebInline.default = LogoWebInline;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\nmodule.exports = bytesToUuid;","var rng = require('./lib/rng');\n\nvar bytesToUuid = require('./lib/bytesToUuid'); // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\n\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;","'use strict';\n\nmodule.exports = {\n \"aliceblue\": [240, 248, 255],\n \"antiquewhite\": [250, 235, 215],\n \"aqua\": [0, 255, 255],\n \"aquamarine\": [127, 255, 212],\n \"azure\": [240, 255, 255],\n \"beige\": [245, 245, 220],\n \"bisque\": [255, 228, 196],\n \"black\": [0, 0, 0],\n \"blanchedalmond\": [255, 235, 205],\n \"blue\": [0, 0, 255],\n \"blueviolet\": [138, 43, 226],\n \"brown\": [165, 42, 42],\n \"burlywood\": [222, 184, 135],\n \"cadetblue\": [95, 158, 160],\n \"chartreuse\": [127, 255, 0],\n \"chocolate\": [210, 105, 30],\n \"coral\": [255, 127, 80],\n \"cornflowerblue\": [100, 149, 237],\n \"cornsilk\": [255, 248, 220],\n \"crimson\": [220, 20, 60],\n \"cyan\": [0, 255, 255],\n \"darkblue\": [0, 0, 139],\n \"darkcyan\": [0, 139, 139],\n \"darkgoldenrod\": [184, 134, 11],\n \"darkgray\": [169, 169, 169],\n \"darkgreen\": [0, 100, 0],\n \"darkgrey\": [169, 169, 169],\n \"darkkhaki\": [189, 183, 107],\n \"darkmagenta\": [139, 0, 139],\n \"darkolivegreen\": [85, 107, 47],\n \"darkorange\": [255, 140, 0],\n \"darkorchid\": [153, 50, 204],\n \"darkred\": [139, 0, 0],\n \"darksalmon\": [233, 150, 122],\n \"darkseagreen\": [143, 188, 143],\n \"darkslateblue\": [72, 61, 139],\n \"darkslategray\": [47, 79, 79],\n \"darkslategrey\": [47, 79, 79],\n \"darkturquoise\": [0, 206, 209],\n \"darkviolet\": [148, 0, 211],\n \"deeppink\": [255, 20, 147],\n \"deepskyblue\": [0, 191, 255],\n \"dimgray\": [105, 105, 105],\n \"dimgrey\": [105, 105, 105],\n \"dodgerblue\": [30, 144, 255],\n \"firebrick\": [178, 34, 34],\n \"floralwhite\": [255, 250, 240],\n \"forestgreen\": [34, 139, 34],\n \"fuchsia\": [255, 0, 255],\n \"gainsboro\": [220, 220, 220],\n \"ghostwhite\": [248, 248, 255],\n \"gold\": [255, 215, 0],\n \"goldenrod\": [218, 165, 32],\n \"gray\": [128, 128, 128],\n \"green\": [0, 128, 0],\n \"greenyellow\": [173, 255, 47],\n \"grey\": [128, 128, 128],\n \"honeydew\": [240, 255, 240],\n \"hotpink\": [255, 105, 180],\n \"indianred\": [205, 92, 92],\n \"indigo\": [75, 0, 130],\n \"ivory\": [255, 255, 240],\n \"khaki\": [240, 230, 140],\n \"lavender\": [230, 230, 250],\n \"lavenderblush\": [255, 240, 245],\n \"lawngreen\": [124, 252, 0],\n \"lemonchiffon\": [255, 250, 205],\n \"lightblue\": [173, 216, 230],\n \"lightcoral\": [240, 128, 128],\n \"lightcyan\": [224, 255, 255],\n \"lightgoldenrodyellow\": [250, 250, 210],\n \"lightgray\": [211, 211, 211],\n \"lightgreen\": [144, 238, 144],\n \"lightgrey\": [211, 211, 211],\n \"lightpink\": [255, 182, 193],\n \"lightsalmon\": [255, 160, 122],\n \"lightseagreen\": [32, 178, 170],\n \"lightskyblue\": [135, 206, 250],\n \"lightslategray\": [119, 136, 153],\n \"lightslategrey\": [119, 136, 153],\n \"lightsteelblue\": [176, 196, 222],\n \"lightyellow\": [255, 255, 224],\n \"lime\": [0, 255, 0],\n \"limegreen\": [50, 205, 50],\n \"linen\": [250, 240, 230],\n \"magenta\": [255, 0, 255],\n \"maroon\": [128, 0, 0],\n \"mediumaquamarine\": [102, 205, 170],\n \"mediumblue\": [0, 0, 205],\n \"mediumorchid\": [186, 85, 211],\n \"mediumpurple\": [147, 112, 219],\n \"mediumseagreen\": [60, 179, 113],\n \"mediumslateblue\": [123, 104, 238],\n \"mediumspringgreen\": [0, 250, 154],\n \"mediumturquoise\": [72, 209, 204],\n \"mediumvioletred\": [199, 21, 133],\n \"midnightblue\": [25, 25, 112],\n \"mintcream\": [245, 255, 250],\n \"mistyrose\": [255, 228, 225],\n \"moccasin\": [255, 228, 181],\n \"navajowhite\": [255, 222, 173],\n \"navy\": [0, 0, 128],\n \"oldlace\": [253, 245, 230],\n \"olive\": [128, 128, 0],\n \"olivedrab\": [107, 142, 35],\n \"orange\": [255, 165, 0],\n \"orangered\": [255, 69, 0],\n \"orchid\": [218, 112, 214],\n \"palegoldenrod\": [238, 232, 170],\n \"palegreen\": [152, 251, 152],\n \"paleturquoise\": [175, 238, 238],\n \"palevioletred\": [219, 112, 147],\n \"papayawhip\": [255, 239, 213],\n \"peachpuff\": [255, 218, 185],\n \"peru\": [205, 133, 63],\n \"pink\": [255, 192, 203],\n \"plum\": [221, 160, 221],\n \"powderblue\": [176, 224, 230],\n \"purple\": [128, 0, 128],\n \"rebeccapurple\": [102, 51, 153],\n \"red\": [255, 0, 0],\n \"rosybrown\": [188, 143, 143],\n \"royalblue\": [65, 105, 225],\n \"saddlebrown\": [139, 69, 19],\n \"salmon\": [250, 128, 114],\n \"sandybrown\": [244, 164, 96],\n \"seagreen\": [46, 139, 87],\n \"seashell\": [255, 245, 238],\n \"sienna\": [160, 82, 45],\n \"silver\": [192, 192, 192],\n \"skyblue\": [135, 206, 235],\n \"slateblue\": [106, 90, 205],\n \"slategray\": [112, 128, 144],\n \"slategrey\": [112, 128, 144],\n \"snow\": [255, 250, 250],\n \"springgreen\": [0, 255, 127],\n \"steelblue\": [70, 130, 180],\n \"tan\": [210, 180, 140],\n \"teal\": [0, 128, 128],\n \"thistle\": [216, 191, 216],\n \"tomato\": [255, 99, 71],\n \"turquoise\": [64, 224, 208],\n \"violet\": [238, 130, 238],\n \"wheat\": [245, 222, 179],\n \"white\": [255, 255, 255],\n \"whitesmoke\": [245, 245, 245],\n \"yellow\": [255, 255, 0],\n \"yellowgreen\": [154, 205, 50]\n};","module.exports = require(\"regenerator-runtime\");\n","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a),\n arrB = isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n }\n\n if (arrA != arrB) return false;\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n var keys = keyList(a);\n length = keys.length;\n if (length !== keyList(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!hasProp.call(b, keys[i])) return false;\n } // end fast-deep-equal\n // start react-fast-compare\n // custom handling for DOM elements\n\n\n if (hasElementType && a instanceof Element && b instanceof Element) return a === b; // custom handling for React\n\n for (i = length; i-- !== 0;) {\n key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n } // end react-fast-compare\n // fast-deep-equal index.js 2.0.1\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nmodule.exports = function exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (error.message && error.message.match(/stack|recursion/i) || error.number === -2146828260) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n};","/* MIT license */\nvar colorNames = require('color-name');\n\nvar swizzle = require('simple-swizzle');\n\nvar reverseNames = {}; // create a list of reverse color names\n\nfor (var name in colorNames) {\n if (colorNames.hasOwnProperty(name)) {\n reverseNames[colorNames[name]] = name;\n }\n}\n\nvar cs = module.exports = {\n to: {},\n get: {}\n};\n\ncs.get = function (string) {\n var prefix = string.substring(0, 3).toLowerCase();\n var val;\n var model;\n\n switch (prefix) {\n case 'hsl':\n val = cs.get.hsl(string);\n model = 'hsl';\n break;\n\n case 'hwb':\n val = cs.get.hwb(string);\n model = 'hwb';\n break;\n\n default:\n val = cs.get.rgb(string);\n model = 'rgb';\n break;\n }\n\n if (!val) {\n return null;\n }\n\n return {\n model: model,\n value: val\n };\n};\n\ncs.get.rgb = function (string) {\n if (!string) {\n return null;\n }\n\n var abbr = /^#([a-f0-9]{3,4})$/i;\n var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n var rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n var per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n var keyword = /(\\D+)/;\n var rgb = [0, 0, 0, 1];\n var match;\n var i;\n var hexAlpha;\n\n if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n\n for (i = 0; i < 3; i++) {\n // https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n var i2 = i * 2;\n rgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n }\n\n if (hexAlpha) {\n rgb[3] = Math.round(parseInt(hexAlpha, 16) / 255 * 100) / 100;\n }\n } else if (match = string.match(abbr)) {\n match = match[1];\n hexAlpha = match[3];\n\n for (i = 0; i < 3; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n\n if (hexAlpha) {\n rgb[3] = Math.round(parseInt(hexAlpha + hexAlpha, 16) / 255 * 100) / 100;\n }\n } else if (match = string.match(rgba)) {\n for (i = 0; i < 3; i++) {\n rgb[i] = parseInt(match[i + 1], 0);\n }\n\n if (match[4]) {\n rgb[3] = parseFloat(match[4]);\n }\n } else if (match = string.match(per)) {\n for (i = 0; i < 3; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n\n if (match[4]) {\n rgb[3] = parseFloat(match[4]);\n }\n } else if (match = string.match(keyword)) {\n if (match[1] === 'transparent') {\n return [0, 0, 0, 0];\n }\n\n rgb = colorNames[match[1]];\n\n if (!rgb) {\n return null;\n }\n\n rgb[3] = 1;\n return rgb;\n } else {\n return null;\n }\n\n for (i = 0; i < 3; i++) {\n rgb[i] = clamp(rgb[i], 0, 255);\n }\n\n rgb[3] = clamp(rgb[3], 0, 1);\n return rgb;\n};\n\ncs.get.hsl = function (string) {\n if (!string) {\n return null;\n }\n\n var hsl = /^hsla?\\(\\s*([+-]?(?:\\d*\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n var match = string.match(hsl);\n\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = (parseFloat(match[1]) + 360) % 360;\n var s = clamp(parseFloat(match[2]), 0, 100);\n var l = clamp(parseFloat(match[3]), 0, 100);\n var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n\n return null;\n};\n\ncs.get.hwb = function (string) {\n if (!string) {\n return null;\n }\n\n var hwb = /^hwb\\(\\s*([+-]?\\d*[\\.]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n var match = string.match(hwb);\n\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = (parseFloat(match[1]) % 360 + 360) % 360;\n var w = clamp(parseFloat(match[2]), 0, 100);\n var b = clamp(parseFloat(match[3]), 0, 100);\n var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n\n return null;\n};\n\ncs.to.hex = function () {\n var rgba = swizzle(arguments);\n return '#' + hexDouble(rgba[0]) + hexDouble(rgba[1]) + hexDouble(rgba[2]) + (rgba[3] < 1 ? hexDouble(Math.round(rgba[3] * 255)) : '');\n};\n\ncs.to.rgb = function () {\n var rgba = swizzle(arguments);\n return rgba.length < 4 || rgba[3] === 1 ? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')' : 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n var rgba = swizzle(arguments);\n var r = Math.round(rgba[0] / 255 * 100);\n var g = Math.round(rgba[1] / 255 * 100);\n var b = Math.round(rgba[2] / 255 * 100);\n return rgba.length < 4 || rgba[3] === 1 ? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)' : 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n var hsla = swizzle(arguments);\n return hsla.length < 4 || hsla[3] === 1 ? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)' : 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n}; // hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\n\n\ncs.to.hwb = function () {\n var hwba = swizzle(arguments);\n var a = '';\n\n if (hwba.length >= 4 && hwba[3] !== 1) {\n a = ', ' + hwba[3];\n }\n\n return 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}; // helpers\n\n\nfunction clamp(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return str.length < 2 ? '0' + str : str;\n}","var v1 = require('./v1');\n\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\nmodule.exports = uuid;","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\n\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\n\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\n\nexport default function wrapperRaf(callback) {\n return raf(callback);\n}\nwrapperRaf.cancel = caf;","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n return root.contains(n);\n}","import ReactDOM from 'react-dom';\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\n\nexport default function findDOMNode(node) {\n if (node instanceof HTMLElement) {\n return node;\n }\n\n return ReactDOM.findDOMNode(node);\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nimport { isMemo } from 'react-is';\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n/**\n * Merge refs into one ref function to support ref passing.\n */\n\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type; // Function component node\n\n if (typeof type === 'function' && !((_type$prototype = type.prototype) === null || _type$prototype === void 0 ? void 0 : _type$prototype.render)) {\n return false;\n } // Class component\n\n\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) === null || _nodeOrComponent$prot === void 0 ? void 0 : _nodeOrComponent$prot.render)) {\n return false;\n }\n\n return true;\n}\n/* eslint-enable */","import ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, option);\n }\n\n return {\n remove: function remove() {\n if (target.removeEventListener) {\n target.removeEventListener(eventType, callback);\n }\n }\n };\n}","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import { useRef, useEffect, forwardRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\nimport canUseDom from './Dom/canUseDom';\nvar Portal = forwardRef(function (props, ref) {\n var didUpdate = props.didUpdate,\n getContainer = props.getContainer,\n children = props.children;\n var containerRef = useRef(); // Ref return nothing, only for wrapper check exist\n\n useImperativeHandle(ref, function () {\n return {};\n }); // Create container in client side with sync to avoid useEffect not get ref\n\n var initRef = useRef(false);\n\n if (!initRef.current && canUseDom()) {\n containerRef.current = getContainer();\n initRef.current = true;\n } // [Legacy] Used by `rc-trigger`\n\n\n useEffect(function () {\n didUpdate === null || didUpdate === void 0 ? void 0 : didUpdate(props);\n });\n useEffect(function () {\n return function () {\n var _containerRef$current, _containerRef$current2; // [Legacy] This should not be handle by Portal but parent PortalWrapper instead.\n // Since some component use `Portal` directly, we have to keep the logic here.\n\n\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : (_containerRef$current2 = _containerRef$current.parentNode) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.removeChild(containerRef.current);\n };\n }, []);\n return containerRef.current ? ReactDOM.createPortal(children, containerRef.current) : null;\n});\nexport default Portal;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _objectSpread(_objectSpread({}, baseAlign), align);\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n\n for (var i = 0; i < placements.length; i += 1) {\n var placement = placements[i];\n\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n\n return '';\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\"; // ================= Transition =================\n// Event wrapper. Copy from react source code\n\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\n\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\n\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n\n style = _document$createEleme.style;\n}\n\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useState, useRef } from 'react';\nexport default function useMountStatus(defaultValue) {\n var destroyRef = useRef(false);\n\n var _useState = useState(defaultValue),\n _useState2 = _slicedToArray(_useState, 2),\n val = _useState2[0],\n setVal = _useState2[1];\n\n function setValue(next) {\n if (!destroyRef.current) {\n setVal(next);\n }\n }\n\n useEffect(function () {\n return function () {\n destroyRef.current = true;\n };\n }, []);\n return [val, setValue];\n}","import { useEffect, useLayoutEffect } from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\"; // It's safe to use `useLayoutEffect` but the warning is annoying\n\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { STEP_PREPARE, STEP_ACTIVE, STEP_START, STEP_ACTIVATED, STEP_NONE } from '../interface';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nimport useNextFrame from './useNextFrame';\nvar STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\n/** Skip current step */\n\nexport var SkipStep = false;\n/** Current step should be update in */\n\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (callback) {\n var _React$useState = React.useState(STEP_NONE),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n step = _React$useState2[0],\n setStep = _React$useState2[1];\n\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n\n function startQueue() {\n setStep(STEP_PREPARE);\n }\n\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep);\n } else {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep);\n }\n\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';","import * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport { STATUS_APPEAR, STATUS_NONE, STATUS_LEAVE, STATUS_ENTER, STEP_PREPARE, STEP_START, STEP_ACTIVE } from '../interface';\nimport useState from './useState';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nimport useStepQueue, { DoStep, SkipStep, isActive } from './useStepQueue';\nimport useDomMotionEvents from './useDomMotionEvents';\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged; // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n\n var _useState3 = useState(STATUS_NONE),\n _useState4 = _slicedToArray(_useState3, 2),\n status = _useState4[0],\n setStatus = _useState4[1];\n\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n style = _useState6[0],\n setStyle = _useState6[1];\n\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null); // =========================== Dom Node ===========================\n\n var cacheElementRef = useRef(null);\n\n function getDomElement() {\n var element = getElement();\n return element || cacheElementRef.current;\n } // ========================== Motion End ==========================\n\n\n var activeRef = useRef(false);\n\n function onInternalMotionEnd(event) {\n var element = getDomElement();\n\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n\n var canEnd;\n\n if (status === STATUS_APPEAR && activeRef.current) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && activeRef.current) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && activeRef.current) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n }\n\n if (canEnd !== false) {\n setStatus(STATUS_NONE);\n setStyle(null);\n }\n }\n\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0]; // ============================= Step =============================\n\n\n var eventHandlers = React.useMemo(function () {\n var _ref2, _ref3, _ref4;\n\n switch (status) {\n case 'appear':\n return _ref2 = {}, _defineProperty(_ref2, STEP_PREPARE, onAppearPrepare), _defineProperty(_ref2, STEP_START, onAppearStart), _defineProperty(_ref2, STEP_ACTIVE, onAppearActive), _ref2;\n\n case 'enter':\n return _ref3 = {}, _defineProperty(_ref3, STEP_PREPARE, onEnterPrepare), _defineProperty(_ref3, STEP_START, onEnterStart), _defineProperty(_ref3, STEP_ACTIVE, onEnterActive), _ref3;\n\n case 'leave':\n return _ref4 = {}, _defineProperty(_ref4, STEP_PREPARE, onLeavePrepare), _defineProperty(_ref4, STEP_START, onLeaveStart), _defineProperty(_ref4, STEP_ACTIVE, onLeaveActive), _ref4;\n\n default:\n return {};\n }\n }, [status]);\n\n var _useStepQueue = useStepQueue(function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n\n if (!onPrepare) {\n return SkipStep;\n }\n\n return onPrepare(getDomElement());\n } // Rest step is sync update\n\n\n if (step in eventHandlers) {\n var _eventHandlers$step;\n\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n\n if (step === STEP_ACTIVE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n\n var active = isActive(step);\n activeRef.current = active; // ============================ Status ============================\n // Update with new status\n\n useIsomorphicLayoutEffect(function () {\n setAsyncVisible(visible);\n\n if (!supportMotion) {\n return;\n }\n\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n var nextStatus; // Appear\n\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n } // Enter\n\n\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n } // Leave\n\n\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n } // Update to next status\n\n\n if (nextStatus) {\n setStatus(nextStatus);\n startStep();\n }\n }, [visible]); // ============================ Effect ============================\n // Reset when motion changed\n\n useEffect(function () {\n if ( // Cancel appear\n status === STATUS_APPEAR && !motionAppear || // Cancel enter\n status === STATUS_ENTER && !motionEnter || // Cancel leave\n status === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n clearTimeout(deadlineRef.current);\n };\n }, []); // Trigger `onVisibleChanged`\n\n useEffect(function () {\n if (asyncVisible !== undefined && status === STATUS_NONE) {\n onVisibleChanged === null || onVisibleChanged === void 0 ? void 0 : onVisibleChanged(asyncVisible);\n }\n }, [asyncVisible, status]); // ============================ Styles ============================\n\n var mergedStyle = style;\n\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n\n return [status, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from '../util/motion';\nexport default (function (callback) {\n var cacheElementRef = useRef(); // Cache callback\n\n var callbackRef = useRef(callback);\n callbackRef.current = callback; // Internal motion event handler\n\n var onInternalMotionEnd = React.useCallback(function (event) {\n callbackRef.current(event);\n }, []); // Remove events\n\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n } // Patch events\n\n\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd); // Save as cache in case dom removed trigger by `motionDeadline`\n\n cacheElementRef.current = element;\n }\n } // Clean up when removed\n\n\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n\n var _super = _createSuper(DomWrapper);\n\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return DomWrapper;\n}(React.Component);\n\nexport default DomWrapper;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\n\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef } from \"rc-util/es/ref\";\nimport classNames from 'classnames';\nimport { getTransitionName, supportTransition } from './util/motion';\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from './interface';\nimport useStatus from './hooks/useStatus';\nimport DomWrapper from './DomWrapper';\nimport { isActive } from './hooks/useStepQueue';\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\n\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n\n function isSupportTransition(props) {\n return !!(props.motionName && transitionSupport);\n }\n\n var CSSMotion = React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var supportMotion = isSupportTransition(props); // Ref to the react node, it may be a HTMLElement\n\n var nodeRef = useRef(); // Ref to the dom wrapper in case ref can not pass to HTMLElement\n\n var wrapperNodeRef = useRef();\n\n function getDomElement() {\n try {\n return findDOMNode(nodeRef.current || wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3]; // ====================== Refs ======================\n\n\n var originRef = useRef(ref);\n originRef.current = ref;\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(originRef.current, node);\n }, []); // ===================== Render =====================\n\n var motionChildren;\n\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE || !isSupportTransition(props)) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, eventProps), setNodeRef);\n } else if (!removeOnLeave) {\n motionChildren = children(_objectSpread(_objectSpread({}, eventProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender) {\n motionChildren = children(_objectSpread(_objectSpread({}, eventProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n var _classNames; // In motion\n\n\n var statusSuffix;\n\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n\n motionChildren = children(_objectSpread(_objectSpread({}, eventProps), {}, {\n className: classNames(getTransitionName(motionName, status), (_classNames = {}, _defineProperty(_classNames, getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix)), statusSuffix), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n style: statusStyle\n }), setNodeRef);\n }\n\n return React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n var keyObj;\n\n if (key && _typeof(key) === 'object' && 'key' in key) {\n keyObj = key;\n } else {\n keyObj = {\n key: key\n };\n }\n\n return _objectSpread(_objectSpread({}, keyObj), {}, {\n key: String(keyObj.key)\n });\n}\nexport function parseKeys() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var list = [];\n var currentIndex = 0;\n var currentLen = currentKeys.length;\n var prevKeyObjects = parseKeys(prevKeys);\n var currentKeyObjects = parseKeys(currentKeys); // Check prev keys to insert or keep\n\n prevKeyObjects.forEach(function (keyObj) {\n var hit = false;\n\n for (var i = currentIndex; i < currentLen; i += 1) {\n var currentKeyObj = currentKeyObjects[i];\n\n if (currentKeyObj.key === keyObj.key) {\n // New added keys should add before current key\n if (currentIndex < i) {\n list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n currentIndex = i;\n }\n\n list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n status: STATUS_KEEP\n }));\n currentIndex += 1;\n hit = true;\n break;\n }\n } // If not hit, it means key is removed\n\n\n if (!hit) {\n list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n status: STATUS_REMOVE\n }));\n }\n }); // Add rest to the list\n\n if (currentIndex < currentLen) {\n list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n }\n /**\n * Merge same key when it remove and add again:\n * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n */\n\n\n var keys = {};\n list.forEach(function (_ref) {\n var key = _ref.key;\n keys[key] = (keys[key] || 0) + 1;\n });\n var duplicatedKeys = Object.keys(keys).filter(function (key) {\n return keys[key] > 1;\n });\n duplicatedKeys.forEach(function (matchKey) {\n // Remove `STATUS_REMOVE` node.\n list = list.filter(function (_ref2) {\n var key = _ref2.key,\n status = _ref2.status;\n return key !== matchKey || status !== STATUS_REMOVE;\n }); // Update `STATUS_ADD` to `STATUS_KEEP`\n\n list.forEach(function (node) {\n if (node.key === matchKey) {\n // eslint-disable-next-line no-param-reassign\n node.status = STATUS_KEEP;\n }\n });\n });\n return list;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n/* eslint react/prop-types: 0 */\n\nimport * as React from 'react';\nimport OriginCSSMotion from './CSSMotion';\nimport { supportTransition } from './util/motion';\nimport { STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED, diffKeys, parseKeys } from './util/diff';\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\n\nexport function genCSSMotionList(transitionSupport) {\n var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n\n var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n _inherits(CSSMotionList, _React$Component);\n\n var _super = _createSuper(CSSMotionList);\n\n function CSSMotionList() {\n var _this;\n\n _classCallCheck(this, CSSMotionList);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n keyEntities: []\n };\n\n _this.removeKey = function (removeKey) {\n _this.setState(function (_ref) {\n var keyEntities = _ref.keyEntities;\n return {\n keyEntities: keyEntities.map(function (entity) {\n if (entity.key !== removeKey) return entity;\n return _objectSpread(_objectSpread({}, entity), {}, {\n status: STATUS_REMOVED\n });\n })\n };\n });\n };\n\n return _this;\n }\n\n _createClass(CSSMotionList, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var keyEntities = this.state.keyEntities;\n\n var _this$props = this.props,\n component = _this$props.component,\n children = _this$props.children,\n _onVisibleChanged = _this$props.onVisibleChanged,\n restProps = _objectWithoutProperties(_this$props, [\"component\", \"children\", \"onVisibleChanged\"]);\n\n var Component = component || React.Fragment;\n var motionProps = {};\n MOTION_PROP_NAMES.forEach(function (prop) {\n motionProps[prop] = restProps[prop];\n delete restProps[prop];\n });\n delete restProps.keys;\n return React.createElement(Component, Object.assign({}, restProps), keyEntities.map(function (_ref2) {\n var status = _ref2.status,\n eventProps = _objectWithoutProperties(_ref2, [\"status\"]);\n\n var visible = status === STATUS_ADD || status === STATUS_KEEP;\n return React.createElement(CSSMotion, Object.assign({}, motionProps, {\n key: eventProps.key,\n visible: visible,\n eventProps: eventProps,\n onVisibleChanged: function onVisibleChanged(changedVisible) {\n _onVisibleChanged === null || _onVisibleChanged === void 0 ? void 0 : _onVisibleChanged(changedVisible, {\n key: eventProps.key\n });\n\n if (!changedVisible) {\n _this2.removeKey(eventProps.key);\n }\n }\n }), children);\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var keys = _ref3.keys;\n var keyEntities = _ref4.keyEntities;\n var parsedKeyObjects = parseKeys(keys);\n var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n return {\n keyEntities: mixedKeyEntities.filter(function (entity) {\n var prevEntity = keyEntities.find(function (_ref5) {\n var key = _ref5.key;\n return entity.key === key;\n }); // Remove if already mark as removed\n\n if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n return false;\n }\n\n return true;\n })\n };\n }\n }]);\n\n return CSSMotionList;\n }(React.Component);\n\n CSSMotionList.defaultProps = {\n component: 'div'\n };\n return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar vendorPrefix;\nvar jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-'\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n\n vendorPrefix = '';\n var style = document.createElement('p').style;\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"TransitionProperty\") : 'transitionProperty';\n}\n\nfunction getTransformName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"Transform\") : 'transform';\n}\n\nfunction setTransitionProperty(node, value) {\n var name = getTransitionName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n var name = getTransformName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nfunction getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\n\nfunction getTransformXY(node) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0)\n };\n }\n\n return {\n x: 0,\n y: 0\n };\n}\n\nvar matrix2d = /matrix\\((.*)\\)/;\nvar matrix3d = /matrix3d\\((.*)\\)/;\n\nfunction setTransformXY(node, xy) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var arr;\n var match2d = transform.match(matrix2d);\n\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, \"matrix(\".concat(arr.join(','), \")\"));\n } else {\n var match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, \"matrix3d(\".concat(arr.join(','), \")\"));\n }\n } else {\n setTransform(node, \"translateX(\".concat(xy.x, \"px) translateY(\").concat(xy.y, \"px) translateZ(0)\"));\n }\n}\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\nvar getComputedStyleX; // https://stackoverflow.com/a/3485654/3040605\n\nfunction forceRelayout(elem) {\n var originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n var value = v;\n\n if (_typeof(name) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n\n return undefined;\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = \"\".concat(value, \"px\");\n }\n\n el.style[name] = value;\n return undefined;\n }\n\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n var box;\n var x;\n var y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement; // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n\n box = elem.getBoundingClientRect(); // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top; // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\n\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n\n if (typeof ret !== 'number') {\n var d = w.document; // ie6,7,8 standard mode\n\n ret = d.documentElement[method];\n\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\n\n\nfunction isWindow(obj) {\n // must use == for ie8\n\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n\n if (node.nodeType === 9) {\n return node;\n }\n\n return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n var computedStyle = cs;\n var val = '';\n var d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null); // https://github.com/kissyteam/kissy/issues/61\n\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp(\"^(\".concat(RE_NUM, \")(?!px)[a-z%]+$\"), 'i');\n\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name]; // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT]; // prevent flashing of content\n\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT]; // Put in the new values to get a computed value out\n\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX; // Revert the changed values\n\n style[LEFT] = left;\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n} // 设置 elem 相对 elem.ownerDocument 的坐标\n\n\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n\n var presetH = -999;\n var presetV = -999;\n var horizontalProperty = getOffsetDirection('left', option);\n var verticalProperty = getOffsetDirection('top', option);\n var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);\n var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n\n var originalTransition = '';\n var originalOffset = getOffset(elem);\n\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = \"\".concat(presetH, \"px\");\n }\n\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = \"\".concat(presetV, \"px\");\n } // force relayout\n\n\n forceRelayout(elem);\n var old = getOffset(elem);\n var originalStyle = {};\n\n for (var key in offset) {\n if (offset.hasOwnProperty(key)) {\n var dir = getOffsetDirection(key, option);\n var preset = key === 'left' ? presetH : presetV;\n var off = originalOffset[key] - old[key];\n\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n\n css(elem, originalStyle); // force relayout\n\n forceRelayout(elem);\n\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n\n var ret = {};\n\n for (var _key in offset) {\n if (offset.hasOwnProperty(_key)) {\n var _dir = getOffsetDirection(_key, option);\n\n var _off = offset[_key] - originalOffset[_key];\n\n if (_key === _dir) {\n ret[_dir] = originalStyle[_dir] + _off;\n } else {\n ret[_dir] = originalStyle[_dir] - _off;\n }\n }\n }\n\n css(elem, ret);\n}\n\nfunction setTransform$1(elem, offset) {\n var originalOffset = getOffset(elem);\n var originalXY = getTransformXY(elem);\n var resultXY = {\n x: originalXY.x,\n y: originalXY.y\n };\n\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n\n setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n var oriOffset = getOffset(elem);\n var oLeft = oriOffset.left.toFixed(0);\n var oTop = oriOffset.top.toFixed(0);\n var tLeft = offset.left.toFixed(0);\n var tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (option.useCssTransform && getTransformName() in document.body.style) {\n setTransform$1(elem, offset);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name; // Remember the old values, and insert the new ones\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem); // Revert the old values\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop;\n var j;\n var i;\n\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = void 0;\n\n if (prop === 'border') {\n cssProp = \"\".concat(prop).concat(which[i], \"Width\");\n } else {\n cssProp = prop + which[i];\n }\n\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n\n return value;\n}\n\nvar domUtils = {\n getParent: function getParent(element) {\n var parent = element;\n\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n\n return parent;\n }\n};\neach(['Width', 'Height'], function (name) {\n domUtils[\"doc\".concat(name)] = function (refWin) {\n var d = refWin.document;\n return Math.max( // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[\"scroll\".concat(name)], // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[\"scroll\".concat(name)], domUtils[\"viewport\".concat(name)](d));\n };\n\n domUtils[\"viewport\".concat(name)] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = \"client\".concat(name);\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop]; // 标准模式取 documentElement\n // backcompat 取 body\n\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\n\nfunction getWH(elem, name, ex) {\n var extra = ex;\n\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? elem.getBoundingClientRect().width : elem.getBoundingClientRect().height;\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n var cssBoxValue = 0;\n\n if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {\n borderBoxValue = undefined; // Fall back to computed then un computed css if necessary\n\n cssBoxValue = getComputedStyleX(elem, name);\n\n if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n } // Normalize '', auto, and prepare for extra\n\n\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n\n return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which) : getPBMWidth(elem, ['margin'], which));\n }\n\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n}; // fix #119 : https://github.com/kissyteam/kissy/issues/119\n\nfunction getWHIgnoreDisplay() {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var val;\n var elem = args[0]; // in case elem is window\n // elem.offsetWidth === undefined\n\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n\n return val;\n}\n\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n\n domUtils[\"outer\".concat(first)] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = function (elem, v) {\n var val = v;\n\n if (val !== undefined) {\n if (elem) {\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n\n return css(elem, name, val);\n }\n\n return undefined;\n }\n\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (var i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n\n return to;\n}\n\nvar utils = {\n getWindow: function getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument: getDocument,\n offset: function offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var i;\n var ret = {};\n\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n\n var overflow = obj.overflow;\n\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n\n return ret;\n },\n mix: mix,\n getWindowScrollLeft: function getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop: function getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge: function merge() {\n var ret = {};\n\n for (var i = 0; i < arguments.length; i++) {\n utils.mix(ret, i < 0 || arguments.length <= i ? undefined : arguments[i]);\n }\n\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0\n};\nmix(utils, domUtils);\n/**\n * 得到会导致元素显示不全的祖先元素\n */\n\nvar getParent = utils.getParent;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n } // ie 这个也不是完全可行\n\n /*\n
\n
\n 元素 6 高 100px 宽 50px
\n
\n
\n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent;\n var positionStyle = utils.css(element, 'position');\n var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html' ? null : getParent(element);\n }\n\n for (parent = getParent(element); parent && parent !== body && parent.nodeType !== 9; parent = getParent(parent)) {\n positionStyle = utils.css(parent, 'position');\n\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n\n return null;\n}\n\nvar getParent$1 = utils.getParent;\n\nfunction isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent = null;\n\n for (parent = getParent$1(element); parent && parent !== body; parent = getParent$1(parent)) {\n var positionStyle = utils.css(parent, 'position');\n\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n\n return false;\n}\n/**\n * 获得元素的显示部分的区域\n */\n\n\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n var visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity\n };\n var el = getOffsetParent(element);\n var doc = utils.getDocument(element);\n var win = doc.defaultView || doc.parentWindow;\n var body = doc.body;\n var documentElement = doc.documentElement; // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) && // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n el !== body && el !== documentElement && utils.css(el, 'overflow') !== 'visible') {\n var pos = utils.offset(el); // add border\n\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(visibleRect.right, // consider area without scrollBar\n pos.left + el.clientWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n\n el = getOffsetParent(el);\n } // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n\n\n var originalPosition = null;\n\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n var position = utils.css(element, 'position');\n\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n var documentWidth = documentElement.scrollWidth;\n var documentHeight = documentElement.scrollHeight; // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n\n var bodyStyle = window.getComputedStyle(body);\n\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n } // Reset element position after calculate the visible area\n\n\n if (element.style) {\n element.style.position = originalPosition;\n }\n\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n\n return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;\n}\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n var pos = utils.clone(elFuturePos);\n var size = {\n width: elRegion.width,\n height: elRegion.height\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n } // Left edge inside and right edge outside viewport, try to resize it.\n\n\n if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {\n size.width -= pos.left + size.width - visibleRect.right;\n } // Right edge outside viewport, try to move it.\n\n\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n } // Top edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n } // Top edge inside and bottom edge outside viewport, try to resize it.\n\n\n if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n } // Bottom edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return utils.mix(pos, size);\n}\n\nfunction getRegion(node) {\n var offset;\n var w;\n var h;\n\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n var win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win)\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n\n offset.width = w;\n offset.height = h;\n return offset;\n}\n/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\n\n\nfunction getAlignOffset(region, align) {\n var V = align.charAt(0);\n var H = align.charAt(1);\n var w = region.width;\n var h = region.height;\n var x = region.left;\n var y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y\n };\n}\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n var p1 = getAlignOffset(refNodeRegion, points[1]);\n var p2 = getAlignOffset(elRegion, points[0]);\n var diff = [p2.left - p1.left, p2.top - p1.top];\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1])\n };\n}\n/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;\n}\n\nfunction flip(points, reg, map) {\n var ret = [];\n utils.each(points, function (p) {\n ret.push(p.replace(reg, function (m) {\n return map[m];\n }));\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n var n;\n\n if (/%$/.test(str)) {\n n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\n\n\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n var points = align.points;\n var offset = align.offset || [0, 0];\n var targetOffset = align.targetOffset || [0, 0];\n var overflow = align.overflow;\n var source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n var newOverflowCfg = {};\n var fail = 0;\n var alwaysByViewport = !!(overflow && overflow.alwaysByViewport); // 当前节点可以被放置的显示区域\n\n var visibleRect = getVisibleRectForElement(source, alwaysByViewport); // 当前节点所占的区域, left/top/width/height\n\n var elRegion = getRegion(source); // 将 offset 转换成数值,支持百分比\n\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion); // 当前节点将要被放置的位置\n\n var elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset); // 当前节点将要所处的区域\n\n var newElRegion = utils.merge(elRegion, elFuturePos); // 如果可视区域不能完全放置当前节点时允许调整\n\n if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTgtRegionVisible) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n }); // 偏移量也反下\n\n var newOffset = flipOffset(offset, 0);\n var newTargetOffset = flipOffset(targetOffset, 0);\n var newElFuturePos = getElFuturePos(elRegion, tgtRegion, newPoints, newOffset, newTargetOffset);\n\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var _newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n }); // 偏移量也反下\n\n\n var _newOffset = flipOffset(offset, 1);\n\n var _newTargetOffset = flipOffset(targetOffset, 1);\n\n var _newElFuturePos = getElFuturePos(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset);\n\n if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = _newPoints;\n offset = _newOffset;\n targetOffset = _newTargetOffset;\n }\n }\n } // 如果失败,重新计算当前节点将要被放置的位置\n\n\n if (fail) {\n elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n utils.mix(newElRegion, elFuturePos);\n }\n\n var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect); // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n\n if (isStillFailX || isStillFailY) {\n var _newPoints2 = points; // 重置对应部分的翻转逻辑\n\n if (isStillFailX) {\n _newPoints2 = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n });\n }\n\n if (isStillFailY) {\n _newPoints2 = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n });\n }\n\n points = _newPoints2;\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n } // 2. 只有指定了可以调整当前方向才调整\n\n\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY; // 确实要调整,甚至可能会调整高度宽度\n\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n }\n } // need judge to in case set fixed with in css on height auto element\n\n\n if (newElRegion.width !== elRegion.width) {\n utils.css(source, 'width', utils.width(source) + newElRegion.width - elRegion.width);\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(source, 'height', utils.height(source) + newElRegion.height - elRegion.height);\n } // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如
\n\n\n utils.offset(source, {\n left: newElRegion.left,\n top: newElRegion.top\n }, {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake\n });\n return {\n points: points,\n offset: offset,\n targetOffset: targetOffset,\n overflow: newOverflowCfg\n };\n}\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n var visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n var targetRegion = getRegion(target);\n return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom;\n}\n\nfunction alignElement(el, refNode, align) {\n var target = align.target || refNode;\n var refNodeRegion = getRegion(target);\n var isTargetNotOutOfVisible = !isOutOfVisibleRect(target, align.overflow && align.overflow.alwaysByViewport);\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n var pageX;\n var pageY;\n var doc = utils.getDocument(el);\n var win = doc.defaultView || doc.parentWindow;\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n var tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0\n };\n var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight; // Provide default target point\n\n var points = [align.points[0], 'cc'];\n return doAlign(el, tgtRegion, _objectSpread2({}, align, {\n points: points\n }), pointInView);\n}\n\nexport default alignElement;\nexport { alignElement, alignPoint };","import CSSMotion from './CSSMotion';\nimport CSSMotionList from './CSSMotionList';\nexport { CSSMotionList };\nexport default CSSMotion;","export function getMotion(_ref) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n animation = _ref.animation,\n transitionName = _ref.transitionName;\n\n if (motion) {\n return motion;\n }\n\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n\n return null;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from '../utils/legacyUtil';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n mask = props.mask,\n maskMotion = props.maskMotion,\n maskAnimation = props.maskAnimation,\n maskTransitionName = props.maskTransitionName;\n\n if (!mask) {\n return null;\n }\n\n var motion = {};\n\n if (maskMotion || maskTransitionName || maskAnimation) {\n motion = _objectSpread({\n motionAppear: true\n }, getMotion({\n motion: maskMotion,\n prefixCls: prefixCls,\n transitionName: maskTransitionName,\n animation: maskAnimation\n }));\n }\n\n return React.createElement(CSSMotion, Object.assign({}, motion, {\n visible: visible,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nimport { isMemo } from 'react-is';\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n/**\n * Merge refs into one ref function to support ref passing.\n */\n\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type; // Function component node\n\n if (typeof type === 'function' && !((_type$prototype = type.prototype) === null || _type$prototype === void 0 ? void 0 : _type$prototype.render)) {\n return false;\n } // Class component\n\n\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) === null || _nodeOrComponent$prot === void 0 ? void 0 : _nodeOrComponent$prot.render)) {\n return false;\n }\n\n return true;\n}\n/* eslint-enable */","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ResizeObserver from 'resize-observer-polyfill';\nimport contains from \"rc-util/es/Dom/contains\";\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement) && typeof activeElement.focus === 'function') {\n activeElement.focus();\n }\n}\nexport function monitorResize(element, callback) {\n var prevWidth = null;\n var prevHeight = null;\n\n function onResize(_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n target = _ref2[0].target;\n\n if (!document.contains(target)) return;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n // https://webkit.org/blog/9997/resizeobserver-in-webkit/\n Promise.resolve().then(function () {\n callback({\n width: fixedWidth,\n height: fixedHeight\n });\n });\n }\n\n prevWidth = fixedWidth;\n prevHeight = fixedHeight;\n }\n\n var resizeObserver = new ResizeObserver(onResize);\n\n if (element) {\n resizeObserver.observe(element);\n }\n\n return function () {\n resizeObserver.disconnect();\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/**\n * Removed props:\n * - childrenProps\n */\n\nimport React from 'react';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport { isSamePoint, restoreFocus, monitorResize } from './util';\nimport useBuffer from './hooks/useBuffer';\n\nfunction getElement(func) {\n if (typeof func !== 'function') return null;\n return func();\n}\n\nfunction getPoint(point) {\n if (_typeof(point) !== 'object' || !point) return null;\n return point;\n}\n\nvar Align = function Align(_ref, ref) {\n var children = _ref.children,\n disabled = _ref.disabled,\n target = _ref.target,\n align = _ref.align,\n onAlign = _ref.onAlign,\n monitorWindowResize = _ref.monitorWindowResize,\n _ref$monitorBufferTim = _ref.monitorBufferTime,\n monitorBufferTime = _ref$monitorBufferTim === void 0 ? 0 : _ref$monitorBufferTim;\n var cacheRef = React.useRef({});\n var nodeRef = React.useRef();\n var childNode = React.Children.only(children); // ===================== Align ======================\n // We save the props here to avoid closure makes props ood\n\n var forceAlignPropsRef = React.useRef({});\n forceAlignPropsRef.current.disabled = disabled;\n forceAlignPropsRef.current.target = target;\n forceAlignPropsRef.current.onAlign = onAlign;\n\n var _useBuffer = useBuffer(function () {\n var _forceAlignPropsRef$c = forceAlignPropsRef.current,\n latestDisabled = _forceAlignPropsRef$c.disabled,\n latestTarget = _forceAlignPropsRef$c.target;\n\n if (!latestDisabled && latestTarget) {\n var source = nodeRef.current;\n var result;\n var element = getElement(latestTarget);\n var point = getPoint(latestTarget);\n cacheRef.current.element = element;\n cacheRef.current.point = point; // IE lose focus after element realign\n // We should record activeElement and restore later\n\n var _document = document,\n activeElement = _document.activeElement;\n\n if (element) {\n result = alignElement(source, element, align);\n } else if (point) {\n result = alignPoint(source, point, align);\n }\n\n restoreFocus(activeElement, source);\n\n if (onAlign) {\n onAlign(source, result);\n }\n\n return true;\n }\n\n return false;\n }, monitorBufferTime),\n _useBuffer2 = _slicedToArray(_useBuffer, 2),\n _forceAlign = _useBuffer2[0],\n cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n // Listen for target updated\n\n\n var resizeMonitor = React.useRef({\n cancel: function cancel() {}\n }); // Listen for source updated\n\n var sourceResizeMonitor = React.useRef({\n cancel: function cancel() {}\n });\n React.useEffect(function () {\n var element = getElement(target);\n var point = getPoint(target);\n\n if (nodeRef.current !== sourceResizeMonitor.current.element) {\n sourceResizeMonitor.current.cancel();\n sourceResizeMonitor.current.element = nodeRef.current;\n sourceResizeMonitor.current.cancel = monitorResize(nodeRef.current, _forceAlign);\n }\n\n if (cacheRef.current.element !== element || !isSamePoint(cacheRef.current.point, point)) {\n _forceAlign(); // Add resize observer\n\n\n if (resizeMonitor.current.element !== element) {\n resizeMonitor.current.cancel();\n resizeMonitor.current.element = element;\n resizeMonitor.current.cancel = monitorResize(element, _forceAlign);\n }\n }\n }); // Listen for disabled change\n\n React.useEffect(function () {\n if (!disabled) {\n _forceAlign();\n } else {\n cancelForceAlign();\n }\n }, [disabled]); // Listen for window resize\n\n var winResizeRef = React.useRef(null);\n React.useEffect(function () {\n if (monitorWindowResize) {\n if (!winResizeRef.current) {\n winResizeRef.current = addEventListener(window, 'resize', _forceAlign);\n }\n } else if (winResizeRef.current) {\n winResizeRef.current.remove();\n winResizeRef.current = null;\n }\n }, [monitorWindowResize]); // Clear all if unmount\n\n React.useEffect(function () {\n return function () {\n resizeMonitor.current.cancel();\n sourceResizeMonitor.current.cancel();\n if (winResizeRef.current) winResizeRef.current.remove();\n cancelForceAlign();\n };\n }, []); // ====================== Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {\n return _forceAlign(true);\n }\n };\n }); // ===================== Render =====================\n\n if (React.isValidElement(childNode)) {\n childNode = React.cloneElement(childNode, {\n ref: composeRef(childNode.ref, nodeRef)\n });\n }\n\n return childNode;\n};\n\nvar RefAlign = React.forwardRef(Align);\nRefAlign.displayName = 'Align';\nexport default RefAlign;","import React from 'react';\nexport default (function (callback, buffer) {\n var calledRef = React.useRef(false);\n var timeoutRef = React.useRef(null);\n\n function cancelTrigger() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function trigger(force) {\n if (!calledRef.current || force === true) {\n if (callback() === false) {\n // Not delay since callback cancelled self\n return;\n }\n\n calledRef.current = true;\n cancelTrigger();\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n }, buffer);\n } else {\n cancelTrigger();\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n trigger();\n }, buffer);\n }\n }\n\n return [trigger, function () {\n calledRef.current = false;\n cancelTrigger();\n }];\n});","export default function contains(root, n) {\n var node = n;\n\n while (node) {\n if (node === root) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n}","import ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, option);\n }\n\n return {\n remove: function remove() {\n if (target.removeEventListener) {\n target.removeEventListener(eventType, callback);\n }\n }\n };\n}","// export this package's api\nimport Align from './Align';\nexport default Align;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useEffect, useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nvar StatusQueue = ['measure', 'align', null, 'motion'];\nexport default (function (visible, doMeasure) {\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setStatus = _useState2[1];\n\n var rafRef = useRef();\n\n function cancelRaf() {\n raf.cancel(rafRef.current);\n }\n\n function goNextStatus(callback) {\n cancelRaf();\n rafRef.current = raf(function () {\n // Only align should be manually trigger\n setStatus(function (prev) {\n switch (status) {\n case 'align':\n return 'motion';\n\n case 'motion':\n return 'stable';\n }\n\n return prev;\n });\n callback === null || callback === void 0 ? void 0 : callback();\n });\n } // Init status\n\n\n useEffect(function () {\n setStatus('measure');\n }, [visible]); // Go next status\n\n useEffect(function () {\n switch (status) {\n case 'measure':\n doMeasure();\n break;\n }\n\n if (status) {\n rafRef.current = raf( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var index, nextStatus;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n index = StatusQueue.indexOf(status);\n nextStatus = StatusQueue[index + 1];\n\n if (nextStatus && index !== -1) {\n setStatus(nextStatus);\n }\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n })));\n }\n }, [status]);\n useEffect(function () {\n return function () {\n cancelRaf();\n };\n }, []);\n return [status, goNextStatus];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport Align from 'rc-align';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport useVisibleStatus from './useVisibleStatus';\nimport { getMotion } from '../utils/legacyUtil';\nimport useStretchStyle from './useStretchStyle';\nvar PopupInner = React.forwardRef(function (props, ref) {\n var visible = props.visible,\n prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n children = props.children,\n zIndex = props.zIndex,\n stretch = props.stretch,\n destroyPopupOnHide = props.destroyPopupOnHide,\n align = props.align,\n point = props.point,\n getRootDomNode = props.getRootDomNode,\n getClassNameFromAlign = props.getClassNameFromAlign,\n onAlign = props.onAlign,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onMouseDown = props.onMouseDown,\n onTouchStart = props.onTouchStart;\n var alignRef = useRef();\n var elementRef = useRef();\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n alignedClassName = _useState2[0],\n setAlignedClassName = _useState2[1]; // ======================= Measure ========================\n\n\n var _useStretchStyle = useStretchStyle(stretch),\n _useStretchStyle2 = _slicedToArray(_useStretchStyle, 2),\n stretchStyle = _useStretchStyle2[0],\n measureStretchStyle = _useStretchStyle2[1];\n\n function doMeasure() {\n if (stretch) {\n measureStretchStyle(getRootDomNode());\n }\n } // ======================== Status ========================\n\n\n var _useVisibleStatus = useVisibleStatus(visible, doMeasure),\n _useVisibleStatus2 = _slicedToArray(_useVisibleStatus, 2),\n status = _useVisibleStatus2[0],\n goNextStatus = _useVisibleStatus2[1]; // ======================== Aligns ========================\n\n\n var prepareResolveRef = useRef(); // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n\n function getAlignTarget() {\n if (point) {\n return point;\n }\n\n return getRootDomNode;\n }\n\n function forceAlign() {\n var _alignRef$current;\n\n (_alignRef$current = alignRef.current) === null || _alignRef$current === void 0 ? void 0 : _alignRef$current.forceAlign();\n }\n\n function onInternalAlign(popupDomNode, matchAlign) {\n if (status === 'align') {\n var nextAlignedClassName = getClassNameFromAlign(matchAlign);\n setAlignedClassName(nextAlignedClassName); // Repeat until not more align needed\n\n if (alignedClassName !== nextAlignedClassName) {\n Promise.resolve().then(function () {\n forceAlign();\n });\n } else {\n goNextStatus(function () {\n var _prepareResolveRef$cu;\n\n (_prepareResolveRef$cu = prepareResolveRef.current) === null || _prepareResolveRef$cu === void 0 ? void 0 : _prepareResolveRef$cu.call(prepareResolveRef);\n });\n }\n\n onAlign === null || onAlign === void 0 ? void 0 : onAlign(popupDomNode, matchAlign);\n }\n } // ======================== Motion ========================\n\n\n var motion = _objectSpread({}, getMotion(props));\n\n ['onAppearEnd', 'onEnterEnd', 'onLeaveEnd'].forEach(function (eventName) {\n var originHandler = motion[eventName];\n\n motion[eventName] = function (element, event) {\n goNextStatus();\n return originHandler === null || originHandler === void 0 ? void 0 : originHandler(element, event);\n };\n });\n\n function onShowPrepare() {\n return new Promise(function (resolve) {\n prepareResolveRef.current = resolve;\n });\n } // Go to stable directly when motion not provided\n\n\n React.useEffect(function () {\n if (!motion.motionName && status === 'motion') {\n goNextStatus();\n }\n }, [motion.motionName, status]); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: forceAlign,\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread(_objectSpread(_objectSpread({}, stretchStyle), {}, {\n zIndex: zIndex\n }, style), {}, {\n opacity: status === 'motion' || status === 'stable' || !visible ? undefined : 0,\n pointerEvents: status === 'stable' ? undefined : 'none'\n }); // Align status\n\n\n var alignDisabled = true;\n\n if ((align === null || align === void 0 ? void 0 : align.points) && (status === 'align' || status === 'stable')) {\n alignDisabled = false;\n }\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n }\n\n return React.createElement(CSSMotion, Object.assign({\n visible: visible,\n ref: elementRef\n }, motion, {\n onAppearPrepare: onShowPrepare,\n onEnterPrepare: onShowPrepare,\n removeOnLeave: destroyPopupOnHide,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, className, alignedClassName, motionClassName);\n return React.createElement(Align, {\n target: getAlignTarget(),\n key: \"popup\",\n ref: alignRef,\n monitorWindowResize: true,\n disabled: alignDisabled,\n align: align,\n onAlign: onInternalAlign\n }, React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDown: onMouseDown,\n onTouchStart: onTouchStart,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode));\n });\n});\nPopupInner.displayName = 'PopupInner';\nexport default PopupInner;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport React from 'react';\nexport default (function (stretch) {\n var _React$useState = React.useState({\n width: 0,\n height: 0\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n targetSize = _React$useState2[0],\n setTargetSize = _React$useState2[1];\n\n function measureStretch(element) {\n setTargetSize({\n width: element.offsetWidth,\n height: element.offsetHeight\n });\n } // Merge stretch style\n\n\n var style = React.useMemo(function () {\n var sizeStyle = {};\n\n if (stretch) {\n var width = targetSize.width,\n height = targetSize.height; // Stretch with target\n\n if (stretch.indexOf('height') !== -1 && height) {\n sizeStyle.height = height;\n } else if (stretch.indexOf('minHeight') !== -1 && height) {\n sizeStyle.minHeight = height;\n }\n\n if (stretch.indexOf('width') !== -1 && width) {\n sizeStyle.width = width;\n } else if (stretch.indexOf('minWidth') !== -1 && width) {\n sizeStyle.minWidth = width;\n }\n }\n\n return sizeStyle;\n }, [stretch, targetSize]);\n return [style, measureStretch];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Mask from './Mask';\nimport PopupInner from './PopupInner';\nvar Popup = React.forwardRef(function (props, ref) {\n var cloneProps = _extends({}, props); // We can use fragment directly but this may failed some selector usage. Keep as origin logic\n\n\n return React.createElement(\"div\", null, React.createElement(Mask, Object.assign({}, cloneProps)), React.createElement(PopupInner, Object.assign({}, cloneProps, {\n ref: ref\n })));\n});\nPopup.displayName = 'Popup';\nexport default Popup;","import * as React from 'react';\nvar TriggerContext = React.createContext(null);\nexport default TriggerContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport raf from \"rc-util/es/raf\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Portal from \"rc-util/es/Portal\";\nimport classNames from 'classnames';\nimport { getAlignFromPlacement, getAlignPopupClassName } from './utils/alignUtil';\nimport Popup from './Popup';\nimport TriggerContext from './context';\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument() {\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n/**\n * Internal usage. Do not use in your code since this will be removed.\n */\n\nexport function generateTrigger(PortalComponent) {\n var Trigger = /*#__PURE__*/function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n var _super = _createSuper(Trigger);\n\n function Trigger(props) {\n var _this;\n\n _classCallCheck(this, Trigger);\n\n _this = _super.call(this, props);\n _this.popupRef = React.createRef();\n _this.triggerRef = React.createRef();\n\n _this.onMouseEnter = function (e) {\n var mouseEnterDelay = _this.props.mouseEnterDelay;\n\n _this.fireEvents('onMouseEnter', e);\n\n _this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n };\n\n _this.onMouseMove = function (e) {\n _this.fireEvents('onMouseMove', e);\n\n _this.setPoint(e);\n };\n\n _this.onMouseLeave = function (e) {\n _this.fireEvents('onMouseLeave', e);\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onPopupMouseEnter = function () {\n _this.clearDelayTimer();\n };\n\n _this.onPopupMouseLeave = function (e) {\n var _this$popupRef$curren; // https://github.com/react-component/trigger/pull/13\n // react bug?\n\n\n if (e.relatedTarget && !e.relatedTarget.setTimeout && contains((_this$popupRef$curren = _this.popupRef.current) === null || _this$popupRef$curren === void 0 ? void 0 : _this$popupRef$curren.getElement(), e.relatedTarget)) {\n return;\n }\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onFocus = function (e) {\n _this.fireEvents('onFocus', e); // incase focusin and focusout\n\n\n _this.clearDelayTimer();\n\n if (_this.isFocusToShow()) {\n _this.focusTime = Date.now();\n\n _this.delaySetPopupVisible(true, _this.props.focusDelay);\n }\n };\n\n _this.onMouseDown = function (e) {\n _this.fireEvents('onMouseDown', e);\n\n _this.preClickTime = Date.now();\n };\n\n _this.onTouchStart = function (e) {\n _this.fireEvents('onTouchStart', e);\n\n _this.preTouchTime = Date.now();\n };\n\n _this.onBlur = function (e) {\n _this.fireEvents('onBlur', e);\n\n _this.clearDelayTimer();\n\n if (_this.isBlurToHide()) {\n _this.delaySetPopupVisible(false, _this.props.blurDelay);\n }\n };\n\n _this.onContextMenu = function (e) {\n e.preventDefault();\n\n _this.fireEvents('onContextMenu', e);\n\n _this.setPopupVisible(true, e);\n };\n\n _this.onContextMenuClose = function () {\n if (_this.isContextMenuToShow()) {\n _this.close();\n }\n };\n\n _this.onClick = function (event) {\n _this.fireEvents('onClick', event); // focus will trigger click\n\n\n if (_this.focusTime) {\n var preTime;\n\n if (_this.preClickTime && _this.preTouchTime) {\n preTime = Math.min(_this.preClickTime, _this.preTouchTime);\n } else if (_this.preClickTime) {\n preTime = _this.preClickTime;\n } else if (_this.preTouchTime) {\n preTime = _this.preTouchTime;\n }\n\n if (Math.abs(preTime - _this.focusTime) < 20) {\n return;\n }\n\n _this.focusTime = 0;\n }\n\n _this.preClickTime = 0;\n _this.preTouchTime = 0; // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n\n if (_this.isClickToShow() && (_this.isClickToHide() || _this.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n\n var nextVisible = !_this.state.popupVisible;\n\n if (_this.isClickToHide() && !nextVisible || nextVisible && _this.isClickToShow()) {\n _this.setPopupVisible(!_this.state.popupVisible, event);\n }\n };\n\n _this.onPopupMouseDown = function () {\n _this.hasPopupMouseDown = true;\n clearTimeout(_this.mouseDownTimeout);\n _this.mouseDownTimeout = window.setTimeout(function () {\n _this.hasPopupMouseDown = false;\n }, 0);\n\n if (_this.context) {\n var _this$context;\n\n (_this$context = _this.context).onPopupMouseDown.apply(_this$context, arguments);\n }\n };\n\n _this.onDocumentClick = function (event) {\n if (_this.props.mask && !_this.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n\n var root = _this.getRootDomNode();\n\n var popupNode = _this.getPopupDomNode();\n\n if (!contains(root, target) && !contains(popupNode, target) && !_this.hasPopupMouseDown) {\n _this.close();\n }\n };\n\n _this.getRootDomNode = function () {\n var getTriggerDOMNode = _this.props.getTriggerDOMNode;\n\n if (getTriggerDOMNode) {\n return getTriggerDOMNode(_this.triggerRef.current);\n }\n\n try {\n var domNode = findDOMNode(_this.triggerRef.current);\n\n if (domNode) {\n return domNode;\n }\n } catch (err) {// Do nothing\n }\n\n return ReactDOM.findDOMNode(_assertThisInitialized(_this));\n };\n\n _this.getPopupClassNameFromAlign = function (align) {\n var className = [];\n var _this$props = _this.props,\n popupPlacement = _this$props.popupPlacement,\n builtinPlacements = _this$props.builtinPlacements,\n prefixCls = _this$props.prefixCls,\n alignPoint = _this$props.alignPoint,\n getPopupClassNameFromAlign = _this$props.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n\n return className.join(' ');\n };\n\n _this.getComponent = function () {\n var _this$props2 = _this.props,\n prefixCls = _this$props2.prefixCls,\n destroyPopupOnHide = _this$props2.destroyPopupOnHide,\n popupClassName = _this$props2.popupClassName,\n onPopupAlign = _this$props2.onPopupAlign,\n popupMotion = _this$props2.popupMotion,\n popupAnimation = _this$props2.popupAnimation,\n popupTransitionName = _this$props2.popupTransitionName,\n popupStyle = _this$props2.popupStyle,\n mask = _this$props2.mask,\n maskAnimation = _this$props2.maskAnimation,\n maskTransitionName = _this$props2.maskTransitionName,\n maskMotion = _this$props2.maskMotion,\n zIndex = _this$props2.zIndex,\n popup = _this$props2.popup,\n stretch = _this$props2.stretch,\n alignPoint = _this$props2.alignPoint;\n var _this$state = _this.state,\n popupVisible = _this$state.popupVisible,\n point = _this$state.point;\n\n var align = _this.getPopupAlign();\n\n var mouseProps = {};\n\n if (_this.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this.onPopupMouseEnter;\n }\n\n if (_this.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this.onPopupMouseDown;\n mouseProps.onTouchStart = _this.onPopupMouseDown;\n return React.createElement(Popup, Object.assign({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n maskMotion: maskMotion,\n ref: _this.popupRef,\n motion: popupMotion\n }), typeof popup === 'function' ? popup() : popup);\n };\n\n _this.attachParent = function (popupContainer) {\n raf.cancel(_this.attachId);\n var _this$props3 = _this.props,\n getPopupContainer = _this$props3.getPopupContainer,\n getDocument = _this$props3.getDocument;\n\n var domNode = _this.getRootDomNode();\n\n var mountNode;\n\n if (!getPopupContainer) {\n mountNode = getDocument().body;\n } else if (domNode || getPopupContainer.length === 0) {\n // Compatible for legacy getPopupContainer with domNode argument.\n // If no need `domNode` argument, will call directly.\n // https://codesandbox.io/s/eloquent-mclean-ss93m?file=/src/App.js\n mountNode = getPopupContainer(domNode);\n }\n\n if (mountNode) {\n mountNode.appendChild(popupContainer);\n } else {\n // Retry after frame render in case parent not ready\n _this.attachId = raf(function () {\n _this.attachParent(popupContainer);\n });\n }\n };\n\n _this.getContainer = function () {\n var popupContainer = document.createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n\n _this.attachParent(popupContainer);\n\n return popupContainer;\n };\n\n _this.setPoint = function (point) {\n var alignPoint = _this.props.alignPoint;\n if (!alignPoint || !point) return;\n\n _this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n };\n\n _this.handlePortalUpdate = function () {\n if (_this.state.prevPopupVisible !== _this.state.popupVisible) {\n _this.props.afterPopupVisibleChange(_this.state.popupVisible);\n }\n };\n\n var popupVisible;\n\n if ('popupVisible' in props) {\n popupVisible = !!props.popupVisible;\n } else {\n popupVisible = !!props.defaultPopupVisible;\n }\n\n _this.state = {\n prevPopupVisible: popupVisible,\n popupVisible: popupVisible\n };\n ALL_HANDLERS.forEach(function (h) {\n _this[\"fire\".concat(h)] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n _createClass(Trigger, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var props = this.props;\n var state = this.state; // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n\n if (state.popupVisible) {\n var currentDocument;\n\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument();\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n } // always hide on mobile\n\n\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument();\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n } // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n\n\n if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n currentDocument = currentDocument || props.getDocument();\n this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n } // close popup when trigger type contains 'onContextMenu' and window is blur.\n\n\n if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n }\n\n return;\n }\n\n this.clearOutsideHandler();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n }\n }, {\n key: \"getPopupDomNode\",\n value: function getPopupDomNode() {\n var _this$popupRef$curren2; // for test\n\n\n return ((_this$popupRef$curren2 = this.popupRef.current) === null || _this$popupRef$curren2 === void 0 ? void 0 : _this$popupRef$curren2.getElement()) || null;\n }\n }, {\n key: \"getPopupAlign\",\n value: function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n\n return popupAlign;\n }\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n\n }, {\n key: \"setPopupVisible\",\n value: function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible: popupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n\n this.props.onPopupVisibleChange(popupVisible);\n } // Always record the point position since mouseEnterDelay will delay the show\n\n\n if (alignPoint && event) {\n this.setPoint(event);\n }\n }\n }, {\n key: \"delaySetPopupVisible\",\n value: function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n\n if (delay) {\n var point = event ? {\n pageX: event.pageX,\n pageY: event.pageY\n } : null;\n this.delayTimer = window.setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n }\n }, {\n key: \"clearDelayTimer\",\n value: function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n }, {\n key: \"clearOutsideHandler\",\n value: function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n }\n }, {\n key: \"createTwoChains\",\n value: function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n\n if (childPros[event] && props[event]) {\n return this[\"fire\".concat(event)];\n }\n\n return childPros[event] || props[event];\n }\n }, {\n key: \"isClickToShow\",\n value: function isClickToShow() {\n var _this$props4 = this.props,\n action = _this$props4.action,\n showAction = _this$props4.showAction;\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isContextMenuToShow\",\n value: function isContextMenuToShow() {\n var _this$props5 = this.props,\n action = _this$props5.action,\n showAction = _this$props5.showAction;\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n }\n }, {\n key: \"isClickToHide\",\n value: function isClickToHide() {\n var _this$props6 = this.props,\n action = _this$props6.action,\n hideAction = _this$props6.hideAction;\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isMouseEnterToShow\",\n value: function isMouseEnterToShow() {\n var _this$props7 = this.props,\n action = _this$props7.action,\n showAction = _this$props7.showAction;\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n }\n }, {\n key: \"isMouseLeaveToHide\",\n value: function isMouseLeaveToHide() {\n var _this$props8 = this.props,\n action = _this$props8.action,\n hideAction = _this$props8.hideAction;\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n }\n }, {\n key: \"isFocusToShow\",\n value: function isFocusToShow() {\n var _this$props9 = this.props,\n action = _this$props9.action,\n showAction = _this$props9.showAction;\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n }\n }, {\n key: \"isBlurToHide\",\n value: function isBlurToHide() {\n var _this$props10 = this.props,\n action = _this$props10.action,\n hideAction = _this$props10.hideAction;\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n }\n }, {\n key: \"forcePopupAlign\",\n value: function forcePopupAlign() {\n if (this.state.popupVisible) {\n var _this$popupRef$curren3;\n\n (_this$popupRef$curren3 = this.popupRef.current) === null || _this$popupRef$curren3 === void 0 ? void 0 : _this$popupRef$curren3.forceAlign();\n }\n }\n }, {\n key: \"fireEvents\",\n value: function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n\n if (childCallback) {\n childCallback(e);\n }\n\n var callback = this.props[type];\n\n if (callback) {\n callback(e);\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n this.setPopupVisible(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var popupVisible = this.state.popupVisible;\n var _this$props11 = this.props,\n children = _this$props11.children,\n forceRender = _this$props11.forceRender,\n alignPoint = _this$props11.alignPoint,\n className = _this$props11.className,\n autoDestroy = _this$props11.autoDestroy;\n var child = React.Children.only(children);\n var newChildProps = {\n key: 'trigger'\n };\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n }\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n }\n\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter;\n\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n }\n\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n }\n\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n }\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n\n var cloneProps = _objectSpread({}, newChildProps);\n\n if (supportRef(child)) {\n cloneProps.ref = composeRef(this.triggerRef, child.ref);\n }\n\n var trigger = React.cloneElement(child, cloneProps);\n var portal; // prevent unmounting after it's rendered\n\n if (popupVisible || this.popupRef.current || forceRender) {\n portal = React.createElement(PortalComponent, {\n key: \"portal\",\n getContainer: this.getContainer,\n didUpdate: this.handlePortalUpdate\n }, this.getComponent());\n }\n\n if (!popupVisible && autoDestroy) {\n portal = null;\n }\n\n return React.createElement(TriggerContext.Provider, {\n value: {\n onPopupMouseDown: this.onPopupMouseDown\n }\n }, trigger, portal);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n var newState = {};\n\n if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n newState.popupVisible = popupVisible;\n newState.prevPopupVisible = prevState.popupVisible;\n }\n\n return newState;\n }\n }]);\n\n return Trigger;\n }(React.Component);\n\n Trigger.contextType = TriggerContext;\n Trigger.defaultProps = {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: [],\n autoDestroy: false\n };\n return Trigger;\n}\nexport default generateTrigger(Portal);","exports.__esModule = true;\nvar ATTRIBUTE_NAMES = exports.ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\nvar TAG_NAMES = exports.TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\nvar VALID_TAG_NAMES = exports.VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\nvar TAG_PROPERTIES = exports.TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\"\n};\nvar REACT_TAG_MAP = exports.REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HELMET_PROPS = exports.HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\nvar HTML_TAG_MAP = exports.HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\nvar SELF_CLOSING_TAGS = exports.SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\nvar HELMET_ATTRIBUTE = exports.HELMET_ATTRIBUTE = \"data-react-helmet\";","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\n\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n\n default:\n return u;\n }\n\n }\n\n case d:\n return u;\n }\n }\n}\n\nfunction A(a) {\n return z(a) === m;\n}\n\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\n\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\n\nexports.isConcurrentMode = A;\n\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\n\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\n\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\n\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\n\nexports.isFragment = function (a) {\n return z(a) === e;\n};\n\nexports.isLazy = function (a) {\n return z(a) === t;\n};\n\nexports.isMemo = function (a) {\n return z(a) === r;\n};\n\nexports.isPortal = function (a) {\n return z(a) === d;\n};\n\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\n\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\n\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\n\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n};\n\nexports.typeOf = z;","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import { typeOf as e, isElement as t, isValidElementType as n } from \"react-is\";\nimport r, { useState as o, useContext as i, useMemo as s, useEffect as a, useRef as c, createElement as u, useDebugValue as l, useLayoutEffect as d } from \"react\";\nimport h from \"shallowequal\";\nimport p from \"@emotion/stylis\";\nimport f from \"@emotion/unitless\";\nimport m from \"@emotion/is-prop-valid\";\nimport y from \"hoist-non-react-statics\";\n\nfunction v() {\n return (v = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n\n for (var r in n) {\n Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n}\n\nvar g = function g(e, t) {\n for (var n = [e[0]], r = 0, o = t.length; r < o; r += 1) {\n n.push(t[r], e[r + 1]);\n }\n\n return n;\n},\n S = function S(t) {\n return null !== t && \"object\" == typeof t && \"[object Object]\" === (t.toString ? t.toString() : Object.prototype.toString.call(t)) && !e(t);\n},\n w = Object.freeze([]),\n b = Object.freeze({});\n\nfunction N(e) {\n return \"function\" == typeof e;\n}\n\nfunction E(e) {\n return \"production\" !== process.env.NODE_ENV && \"string\" == typeof e && e || e.displayName || e.name || \"Component\";\n}\n\nfunction _(e) {\n return e && \"string\" == typeof e.styledComponentId;\n}\n\nvar I = \"undefined\" != typeof process && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || \"data-styled\",\n C = \"5.2.0\",\n A = \"undefined\" != typeof window && \"HTMLElement\" in window,\n O = \"boolean\" == typeof SC_DISABLE_SPEEDY && SC_DISABLE_SPEEDY || \"undefined\" != typeof process && (process.env.REACT_APP_SC_DISABLE_SPEEDY || process.env.SC_DISABLE_SPEEDY) || \"production\" !== process.env.NODE_ENV,\n P = {},\n R = function R() {\n return \"undefined\" != typeof __webpack_nonce__ ? __webpack_nonce__ : null;\n},\n j = \"production\" !== process.env.NODE_ENV ? {\n 1: \"Cannot create styled-component for component: %s.\\n\\n\",\n 2: \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n 3: \"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",\n 4: \"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",\n 5: \"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",\n 6: \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n 7: 'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',\n 8: 'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',\n 9: \"Missing document ``\\n\\n\",\n 10: \"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",\n 11: \"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",\n 12: \"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",\n 13: \"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",\n 14: 'ThemeProvider: \"theme\" prop is required.\\n\\n',\n 15: \"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to ``, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",\n 16: \"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",\n 17: \"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\"\n} : {};\n\nfunction T() {\n for (var e = arguments.length <= 0 ? void 0 : arguments[0], t = [], n = 1, r = arguments.length; n < r; n += 1) {\n t.push(n < 0 || arguments.length <= n ? void 0 : arguments[n]);\n }\n\n return t.forEach(function (t) {\n e = e.replace(/%[a-z]/, t);\n }), e;\n}\n\nfunction D(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) {\n n[r - 1] = arguments[r];\n }\n\n throw \"production\" === process.env.NODE_ENV ? new Error(\"An error occurred. See https://git.io/JUIaE#\" + e + \" for more information.\" + (n.length > 0 ? \" Args: \" + n.join(\", \") : \"\")) : new Error(T.apply(void 0, [j[e]].concat(n)).trim());\n}\n\nvar k = function k(e) {\n var t = document.head,\n n = e || t,\n r = document.createElement(\"style\"),\n o = function (e) {\n for (var t = e.childNodes, n = t.length; n >= 0; n--) {\n var r = t[n];\n if (r && 1 === r.nodeType && r.hasAttribute(I)) return r;\n }\n }(n),\n i = void 0 !== o ? o.nextSibling : null;\n\n r.setAttribute(I, \"active\"), r.setAttribute(\"data-styled-version\", \"5.2.0\");\n var s = R();\n return s && r.setAttribute(\"nonce\", s), n.insertBefore(r, i), r;\n},\n x = function () {\n function e(e) {\n var t = this.element = k(e);\n t.appendChild(document.createTextNode(\"\")), this.sheet = function (e) {\n if (e.sheet) return e.sheet;\n\n for (var t = document.styleSheets, n = 0, r = t.length; n < r; n++) {\n var o = t[n];\n if (o.ownerNode === e) return o;\n }\n\n D(17);\n }(t), this.length = 0;\n }\n\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n try {\n return this.sheet.insertRule(t, e), this.length++, !0;\n } catch (e) {\n return !1;\n }\n }, t.deleteRule = function (e) {\n this.sheet.deleteRule(e), this.length--;\n }, t.getRule = function (e) {\n var t = this.sheet.cssRules[e];\n return void 0 !== t && \"string\" == typeof t.cssText ? t.cssText : \"\";\n }, e;\n}(),\n V = function () {\n function e(e) {\n var t = this.element = k(e);\n this.nodes = t.childNodes, this.length = 0;\n }\n\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n if (e <= this.length && e >= 0) {\n var n = document.createTextNode(t),\n r = this.nodes[e];\n return this.element.insertBefore(n, r || null), this.length++, !0;\n }\n\n return !1;\n }, t.deleteRule = function (e) {\n this.element.removeChild(this.nodes[e]), this.length--;\n }, t.getRule = function (e) {\n return e < this.length ? this.nodes[e].textContent : \"\";\n }, e;\n}(),\n M = function () {\n function e(e) {\n this.rules = [], this.length = 0;\n }\n\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n return e <= this.length && (this.rules.splice(e, 0, t), this.length++, !0);\n }, t.deleteRule = function (e) {\n this.rules.splice(e, 1), this.length--;\n }, t.getRule = function (e) {\n return e < this.length ? this.rules[e] : \"\";\n }, e;\n}(),\n z = function () {\n function e(e) {\n this.groupSizes = new Uint32Array(512), this.length = 512, this.tag = e;\n }\n\n var t = e.prototype;\n return t.indexOfGroup = function (e) {\n for (var t = 0, n = 0; n < e; n++) {\n t += this.groupSizes[n];\n }\n\n return t;\n }, t.insertRules = function (e, t) {\n if (e >= this.groupSizes.length) {\n for (var n = this.groupSizes, r = n.length, o = r; e >= o;) {\n (o <<= 1) < 0 && D(16, \"\" + e);\n }\n\n this.groupSizes = new Uint32Array(o), this.groupSizes.set(n), this.length = o;\n\n for (var i = r; i < o; i++) {\n this.groupSizes[i] = 0;\n }\n }\n\n for (var s = this.indexOfGroup(e + 1), a = 0, c = t.length; a < c; a++) {\n this.tag.insertRule(s, t[a]) && (this.groupSizes[e]++, s++);\n }\n }, t.clearGroup = function (e) {\n if (e < this.length) {\n var t = this.groupSizes[e],\n n = this.indexOfGroup(e),\n r = n + t;\n this.groupSizes[e] = 0;\n\n for (var o = n; o < r; o++) {\n this.tag.deleteRule(n);\n }\n }\n }, t.getGroup = function (e) {\n var t = \"\";\n if (e >= this.length || 0 === this.groupSizes[e]) return t;\n\n for (var n = this.groupSizes[e], r = this.indexOfGroup(e), o = r + n, i = r; i < o; i++) {\n t += this.tag.getRule(i) + \"/*!sc*/\\n\";\n }\n\n return t;\n }, e;\n}(),\n G = new Map(),\n F = new Map(),\n B = 1,\n L = function L(e) {\n if (G.has(e)) return G.get(e);\n var t = B++;\n return \"production\" !== process.env.NODE_ENV && ((0 | t) < 0 || t > 1 << 30) && D(16, \"\" + t), G.set(e, t), F.set(t, e), t;\n},\n q = function q(e) {\n return F.get(e);\n},\n H = function H(e, t) {\n t >= B && (B = t + 1), G.set(e, t), F.set(t, e);\n},\n $ = \"style[\" + I + '][data-styled-version=\"5.2.0\"]',\n Y = new RegExp(\"^\" + I + '\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)'),\n W = function W(e, t, n) {\n for (var r, o = n.split(\",\"), i = 0, s = o.length; i < s; i++) {\n (r = o[i]) && e.registerName(t, r);\n }\n},\n U = function U(e, t) {\n for (var n = t.innerHTML.split(\"/*!sc*/\\n\"), r = [], o = 0, i = n.length; o < i; o++) {\n var s = n[o].trim();\n\n if (s) {\n var a = s.match(Y);\n\n if (a) {\n var c = 0 | parseInt(a[1], 10),\n u = a[2];\n 0 !== c && (H(u, c), W(e, u, a[3]), e.getTag().insertRules(c, r)), r.length = 0;\n } else r.push(s);\n }\n }\n},\n J = A,\n X = {\n isServer: !A,\n useCSSOMInjection: !O\n},\n Z = function () {\n function e(e, t, n) {\n void 0 === e && (e = X), void 0 === t && (t = {}), this.options = v({}, X, {}, e), this.gs = t, this.names = new Map(n), !this.options.isServer && A && J && (J = !1, function (e) {\n for (var t = document.querySelectorAll($), n = 0, r = t.length; n < r; n++) {\n var o = t[n];\n o && \"active\" !== o.getAttribute(I) && (U(e, o), o.parentNode && o.parentNode.removeChild(o));\n }\n }(this));\n }\n\n e.registerId = function (e) {\n return L(e);\n };\n\n var t = e.prototype;\n return t.reconstructWithOptions = function (t, n) {\n return void 0 === n && (n = !0), new e(v({}, this.options, {}, t), this.gs, n && this.names || void 0);\n }, t.allocateGSInstance = function (e) {\n return this.gs[e] = (this.gs[e] || 0) + 1;\n }, t.getTag = function () {\n return this.tag || (this.tag = (n = (t = this.options).isServer, r = t.useCSSOMInjection, o = t.target, e = n ? new M(o) : r ? new x(o) : new V(o), new z(e)));\n var e, t, n, r, o;\n }, t.hasNameForId = function (e, t) {\n return this.names.has(e) && this.names.get(e).has(t);\n }, t.registerName = function (e, t) {\n if (L(e), this.names.has(e)) this.names.get(e).add(t);else {\n var n = new Set();\n n.add(t), this.names.set(e, n);\n }\n }, t.insertRules = function (e, t, n) {\n this.registerName(e, t), this.getTag().insertRules(L(e), n);\n }, t.clearNames = function (e) {\n this.names.has(e) && this.names.get(e).clear();\n }, t.clearRules = function (e) {\n this.getTag().clearGroup(L(e)), this.clearNames(e);\n }, t.clearTag = function () {\n this.tag = void 0;\n }, t.toString = function () {\n return function (e) {\n for (var t = e.getTag(), n = t.length, r = \"\", o = 0; o < n; o++) {\n var i = q(o);\n\n if (void 0 !== i) {\n var s = e.names.get(i),\n a = t.getGroup(o);\n\n if (void 0 !== s && 0 !== a.length) {\n var c = I + \".g\" + o + '[id=\"' + i + '\"]',\n u = \"\";\n void 0 !== s && s.forEach(function (e) {\n e.length > 0 && (u += e + \",\");\n }), r += \"\" + a + c + '{content:\"' + u + '\"}/*!sc*/\\n';\n }\n }\n }\n\n return r;\n }(this);\n }, e;\n}(),\n K = function K(e, t) {\n for (var n = t.length; n;) {\n e = 33 * e ^ t.charCodeAt(--n);\n }\n\n return e;\n},\n Q = function Q(e) {\n return K(5381, e);\n},\n ee = /^\\s*\\/\\/.*$/gm,\n te = [\":\", \"[\", \".\", \"#\"];\n\nfunction ne(e) {\n var t,\n n,\n r,\n o,\n i = void 0 === e ? b : e,\n s = i.options,\n a = void 0 === s ? b : s,\n c = i.plugins,\n u = void 0 === c ? w : c,\n l = new p(a),\n d = [],\n h = function (e) {\n function t(t) {\n if (t) try {\n e(t + \"}\");\n } catch (e) {}\n }\n\n return function (n, r, o, i, s, a, c, u, l, d) {\n switch (n) {\n case 1:\n if (0 === l && 64 === r.charCodeAt(0)) return e(r + \";\"), \"\";\n break;\n\n case 2:\n if (0 === u) return r + \"/*|*/\";\n break;\n\n case 3:\n switch (u) {\n case 102:\n case 112:\n return e(o[0] + r), \"\";\n\n default:\n return r + (0 === d ? \"/*|*/\" : \"\");\n }\n\n case -2:\n r.split(\"/*|*/}\").forEach(t);\n }\n };\n }(function (e) {\n d.push(e);\n }),\n f = function f(e, r, i) {\n return 0 === r && te.includes(i[n.length]) || i.match(o) ? e : \".\" + t;\n };\n\n function m(e, i, s, a) {\n void 0 === a && (a = \"&\");\n var c = e.replace(ee, \"\"),\n u = i && s ? s + \" \" + i + \" { \" + c + \" }\" : c;\n return t = a, n = i, r = new RegExp(\"\\\\\" + n + \"\\\\b\", \"g\"), o = new RegExp(\"(\\\\\" + n + \"\\\\b){2,}\"), l(s || !i ? \"\" : i, u);\n }\n\n return l.use([].concat(u, [function (e, t, o) {\n 2 === e && o.length && o[0].lastIndexOf(n) > 0 && (o[0] = o[0].replace(r, f));\n }, h, function (e) {\n if (-2 === e) {\n var t = d;\n return d = [], t;\n }\n }])), m.hash = u.length ? u.reduce(function (e, t) {\n return t.name || D(15), K(e, t.name);\n }, 5381).toString() : \"\", m;\n}\n\nvar re = r.createContext(),\n oe = re.Consumer,\n ie = r.createContext(),\n se = (ie.Consumer, new Z()),\n ae = ne();\n\nfunction ce() {\n return i(re) || se;\n}\n\nfunction ue() {\n return i(ie) || ae;\n}\n\nfunction le(e) {\n var t = o(e.stylisPlugins),\n n = t[0],\n i = t[1],\n c = ce(),\n u = s(function () {\n var t = c;\n return e.sheet ? t = e.sheet : e.target && (t = t.reconstructWithOptions({\n target: e.target\n }, !1)), e.disableCSSOMInjection && (t = t.reconstructWithOptions({\n useCSSOMInjection: !1\n })), t;\n }, [e.disableCSSOMInjection, e.sheet, e.target]),\n l = s(function () {\n return ne({\n options: {\n prefix: !e.disableVendorPrefixes\n },\n plugins: n\n });\n }, [e.disableVendorPrefixes, n]);\n return a(function () {\n h(n, e.stylisPlugins) || i(e.stylisPlugins);\n }, [e.stylisPlugins]), r.createElement(re.Provider, {\n value: u\n }, r.createElement(ie.Provider, {\n value: l\n }, \"production\" !== process.env.NODE_ENV ? r.Children.only(e.children) : e.children));\n}\n\nvar de = function () {\n function e(e, t) {\n var n = this;\n this.inject = function (e, t) {\n void 0 === t && (t = ae);\n var r = n.name + t.hash;\n e.hasNameForId(n.id, r) || e.insertRules(n.id, r, t(n.rules, r, \"@keyframes\"));\n }, this.toString = function () {\n return D(12, String(n.name));\n }, this.name = e, this.id = \"sc-keyframes-\" + e, this.rules = t;\n }\n\n return e.prototype.getName = function (e) {\n return void 0 === e && (e = ae), this.name + e.hash;\n }, e;\n}(),\n he = /([A-Z])/,\n pe = new RegExp(he, \"g\"),\n fe = /^ms-/,\n me = function me(e) {\n return \"-\" + e.toLowerCase();\n};\n\nfunction ye(e) {\n return he.test(e) ? e.replace(pe, me).replace(fe, \"-ms-\") : e;\n}\n\nvar ve = function ve(e) {\n return null == e || !1 === e || \"\" === e;\n};\n\nfunction ge(e, n, r, o) {\n if (Array.isArray(e)) {\n for (var i, s = [], a = 0, c = e.length; a < c; a += 1) {\n \"\" !== (i = ge(e[a], n, r, o)) && (Array.isArray(i) ? s.push.apply(s, i) : s.push(i));\n }\n\n return s;\n }\n\n if (ve(e)) return \"\";\n if (_(e)) return \".\" + e.styledComponentId;\n\n if (N(e)) {\n if (\"function\" != typeof (l = e) || l.prototype && l.prototype.isReactComponent || !n) return e;\n var u = e(n);\n return \"production\" !== process.env.NODE_ENV && t(u) && console.warn(E(e) + \" is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\"), ge(u, n, r, o);\n }\n\n var l;\n return e instanceof de ? r ? (e.inject(r, o), e.getName(o)) : e : S(e) ? function e(t, n) {\n var r,\n o,\n i = [];\n\n for (var s in t) {\n t.hasOwnProperty(s) && !ve(t[s]) && (S(t[s]) ? i.push.apply(i, e(t[s], s)) : N(t[s]) ? i.push(ye(s) + \":\", t[s], \";\") : i.push(ye(s) + \": \" + (r = s, null == (o = t[s]) || \"boolean\" == typeof o || \"\" === o ? \"\" : \"number\" != typeof o || 0 === o || r in f ? String(o).trim() : o + \"px\") + \";\"));\n }\n\n return n ? [n + \" {\"].concat(i, [\"}\"]) : i;\n }(e) : e.toString();\n}\n\nfunction Se(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) {\n n[r - 1] = arguments[r];\n }\n\n return N(e) || S(e) ? ge(g(w, [e].concat(n))) : 0 === n.length && 1 === e.length && \"string\" == typeof e[0] ? e : ge(g(e, n));\n}\n\nvar we = function we(e) {\n return \"function\" == typeof e || \"object\" == typeof e && null !== e && !Array.isArray(e);\n},\n be = function be(e) {\n return \"__proto__\" !== e && \"constructor\" !== e && \"prototype\" !== e;\n};\n\nfunction Ne(e, t, n) {\n var r = e[n];\n we(t) && we(r) ? Ee(r, t) : e[n] = t;\n}\n\nfunction Ee(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) {\n n[r - 1] = arguments[r];\n }\n\n for (var o = 0, i = n; o < i.length; o++) {\n var s = i[o];\n if (we(s)) for (var a in s) {\n be(a) && Ne(e, s[a], a);\n }\n }\n\n return e;\n}\n\nvar _e = /(a)(d)/gi,\n Ie = function Ie(e) {\n return String.fromCharCode(e + (e > 25 ? 39 : 97));\n};\n\nfunction Ce(e) {\n var t,\n n = \"\";\n\n for (t = Math.abs(e); t > 52; t = t / 52 | 0) {\n n = Ie(t % 52) + n;\n }\n\n return (Ie(t % 52) + n).replace(_e, \"$1-$2\");\n}\n\nfunction Ae(e) {\n for (var t = 0; t < e.length; t += 1) {\n var n = e[t];\n if (N(n) && !_(n)) return !1;\n }\n\n return !0;\n}\n\nvar Oe = Q(\"5.2.0\"),\n Pe = function () {\n function e(e, t, n) {\n this.rules = e, this.staticRulesId = \"\", this.isStatic = \"production\" === process.env.NODE_ENV && (void 0 === n || n.isStatic) && Ae(e), this.componentId = t, this.baseHash = K(Oe, t), this.baseStyle = n, Z.registerId(t);\n }\n\n return e.prototype.generateAndInjectStyles = function (e, t, n) {\n var r = this.componentId,\n o = [];\n if (this.baseStyle && o.push(this.baseStyle.generateAndInjectStyles(e, t, n)), this.isStatic && !n.hash) {\n if (this.staticRulesId && t.hasNameForId(r, this.staticRulesId)) o.push(this.staticRulesId);else {\n var i = ge(this.rules, e, t, n).join(\"\"),\n s = Ce(K(this.baseHash, i.length) >>> 0);\n\n if (!t.hasNameForId(r, s)) {\n var a = n(i, \".\" + s, void 0, r);\n t.insertRules(r, s, a);\n }\n\n o.push(s), this.staticRulesId = s;\n }\n } else {\n for (var c = this.rules.length, u = K(this.baseHash, n.hash), l = \"\", d = 0; d < c; d++) {\n var h = this.rules[d];\n if (\"string\" == typeof h) l += h, \"production\" !== process.env.NODE_ENV && (u = K(u, h + d));else if (h) {\n var p = ge(h, e, t, n),\n f = Array.isArray(p) ? p.join(\"\") : p;\n u = K(u, f + d), l += f;\n }\n }\n\n if (l) {\n var m = Ce(u >>> 0);\n\n if (!t.hasNameForId(r, m)) {\n var y = n(l, \".\" + m, void 0, r);\n t.insertRules(r, m, y);\n }\n\n o.push(m);\n }\n }\n return o.join(\" \");\n }, e;\n}(),\n Re = /invalid hook call/i,\n je = new Set(),\n Te = function Te(e, t) {\n if (\"production\" !== process.env.NODE_ENV) {\n var n = \"The component \" + e + (t ? ' with the id of \"' + t + '\"' : \"\") + \" has been created dynamically.\\nYou may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\";\n\n try {\n c(), je.has(n) || (console.warn(n), je.add(n));\n } catch (e) {\n Re.test(e.message) && je.delete(n);\n }\n }\n},\n De = function De(e, t, n) {\n return void 0 === n && (n = b), e.theme !== n.theme && e.theme || t || n.theme;\n},\n ke = /[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,\n xe = /(^-|-$)/g;\n\nfunction Ve(e) {\n return e.replace(ke, \"-\").replace(xe, \"\");\n}\n\nfunction Me(e) {\n return \"string\" == typeof e && (\"production\" === process.env.NODE_ENV || e.charAt(0) === e.charAt(0).toLowerCase());\n}\n\nvar ze = function ze(e) {\n return Ce(Q(e) >>> 0);\n},\n Ge = r.createContext(),\n Fe = Ge.Consumer;\n\nfunction Be(e) {\n var t = i(Ge),\n n = s(function () {\n return function (e, t) {\n if (!e) return D(14);\n\n if (N(e)) {\n var n = e(t);\n return \"production\" === process.env.NODE_ENV || null !== n && !Array.isArray(n) && \"object\" == typeof n ? n : D(7);\n }\n\n return Array.isArray(e) || \"object\" != typeof e ? D(8) : t ? v({}, t, {}, e) : e;\n }(e.theme, t);\n }, [e.theme, t]);\n return e.children ? r.createElement(Ge.Provider, {\n value: n\n }, e.children) : null;\n}\n\nvar Le = {};\n\nfunction qe(e, t, n) {\n var o = _(e),\n s = !Me(e),\n a = t.displayName,\n c = void 0 === a ? function (e) {\n return Me(e) ? \"styled.\" + e : \"Styled(\" + E(e) + \")\";\n }(e) : a,\n d = t.componentId,\n h = void 0 === d ? function (e, t) {\n var n = \"string\" != typeof e ? \"sc\" : Ve(e);\n Le[n] = (Le[n] || 0) + 1;\n var r = n + \"-\" + ze(\"5.2.0\" + n + Le[n]);\n return t ? t + \"-\" + r : r;\n }(t.displayName, t.parentComponentId) : d,\n p = t.attrs,\n f = void 0 === p ? w : p,\n g = t.displayName && t.componentId ? Ve(t.displayName) + \"-\" + t.componentId : t.componentId || h,\n S = o && e.attrs ? Array.prototype.concat(e.attrs, f).filter(Boolean) : f,\n I = t.shouldForwardProp;\n\n o && e.shouldForwardProp && (I = I ? function (n, r) {\n return e.shouldForwardProp(n, r) && t.shouldForwardProp(n, r);\n } : e.shouldForwardProp);\n\n var C,\n A = new Pe(n, g, o ? e.componentStyle : void 0),\n O = function O(e, t) {\n return function (e, t, n) {\n var r = e.attrs,\n o = e.componentStyle,\n s = e.defaultProps,\n a = e.foldedComponentIds,\n c = e.shouldForwardProp,\n d = e.styledComponentId,\n h = e.target;\n \"production\" !== process.env.NODE_ENV && l(d);\n\n var p = function (e, t, n) {\n void 0 === e && (e = b);\n var r = v({}, t, {\n theme: e\n }),\n o = {};\n return n.forEach(function (e) {\n var t,\n n,\n i,\n s = e;\n\n for (t in N(s) && (s = s(r)), s) {\n r[t] = o[t] = \"className\" === t ? (n = o[t], i = s[t], n && i ? n + \" \" + i : n || i) : s[t];\n }\n }), [r, o];\n }(De(t, i(Ge), s) || b, t, r),\n f = p[0],\n y = p[1],\n g = function (e, t, n, r) {\n var o = ce(),\n i = ue(),\n s = e.isStatic && !t,\n a = s ? e.generateAndInjectStyles(b, o, i) : e.generateAndInjectStyles(n, o, i);\n return \"production\" !== process.env.NODE_ENV && l(a), \"production\" !== process.env.NODE_ENV && !s && r && r(a), a;\n }(o, r.length > 0, f, \"production\" !== process.env.NODE_ENV ? e.warnTooManyClasses : void 0),\n S = n,\n w = y.$as || t.$as || y.as || t.as || h,\n E = Me(w),\n _ = y !== t ? v({}, t, {}, y) : t,\n I = c || E && m,\n C = {};\n\n for (var A in _) {\n \"$\" !== A[0] && \"as\" !== A && (\"forwardedAs\" === A ? C.as = _[A] : I && !I(A, m) || (C[A] = _[A]));\n }\n\n return t.style && y.style !== t.style && (C.style = v({}, t.style, {}, y.style)), C.className = Array.prototype.concat(a, d, g !== d ? g : null, t.className, y.className).filter(Boolean).join(\" \"), C.ref = S, u(w, C);\n }(C, e, t);\n };\n\n return O.displayName = c, (C = r.forwardRef(O)).attrs = S, C.componentStyle = A, C.displayName = c, C.shouldForwardProp = I, C.foldedComponentIds = o ? Array.prototype.concat(e.foldedComponentIds, e.styledComponentId) : w, C.styledComponentId = g, C.target = o ? e.target : e, C.withComponent = function (e) {\n var r = t.componentId,\n o = function (e, t) {\n if (null == e) return {};\n var n,\n r,\n o = {},\n i = Object.keys(e);\n\n for (r = 0; r < i.length; r++) {\n n = i[r], t.indexOf(n) >= 0 || (o[n] = e[n]);\n }\n\n return o;\n }(t, [\"componentId\"]),\n i = r && r + \"-\" + (Me(e) ? e : Ve(E(e)));\n\n return qe(e, v({}, o, {\n attrs: S,\n componentId: i\n }), n);\n }, Object.defineProperty(C, \"defaultProps\", {\n get: function get() {\n return this._foldedDefaultProps;\n },\n set: function set(t) {\n this._foldedDefaultProps = o ? Ee({}, e.defaultProps, t) : t;\n }\n }), \"production\" !== process.env.NODE_ENV && (Te(c, g), C.warnTooManyClasses = function (e, t) {\n var n = {},\n r = !1;\n return function (o) {\n if (!r && (n[o] = !0, Object.keys(n).length >= 200)) {\n var i = t ? ' with the id of \"' + t + '\"' : \"\";\n console.warn(\"Over 200 classes were generated for component \" + e + i + \".\\nConsider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n \"), r = !0, n = {};\n }\n };\n }(c, g)), C.toString = function () {\n return \".\" + C.styledComponentId;\n }, s && y(C, e, {\n attrs: !0,\n componentStyle: !0,\n displayName: !0,\n foldedComponentIds: !0,\n shouldForwardProp: !0,\n self: !0,\n styledComponentId: !0,\n target: !0,\n withComponent: !0\n }), C;\n}\n\nvar He = function He(e) {\n return function e(t, r, o) {\n if (void 0 === o && (o = b), !n(r)) return D(1, String(r));\n\n var i = function i() {\n return t(r, o, Se.apply(void 0, arguments));\n };\n\n return i.withConfig = function (n) {\n return e(t, r, v({}, o, {}, n));\n }, i.attrs = function (n) {\n return e(t, r, v({}, o, {\n attrs: Array.prototype.concat(o.attrs, n).filter(Boolean)\n }));\n }, i;\n }(qe, e);\n};\n\n[\"a\", \"abbr\", \"address\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"base\", \"bdi\", \"bdo\", \"big\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"cite\", \"code\", \"col\", \"colgroup\", \"data\", \"datalist\", \"dd\", \"del\", \"details\", \"dfn\", \"dialog\", \"div\", \"dl\", \"dt\", \"em\", \"embed\", \"fieldset\", \"figcaption\", \"figure\", \"footer\", \"form\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"iframe\", \"img\", \"input\", \"ins\", \"kbd\", \"keygen\", \"label\", \"legend\", \"li\", \"link\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meta\", \"meter\", \"nav\", \"noscript\", \"object\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"param\", \"picture\", \"pre\", \"progress\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"script\", \"section\", \"select\", \"small\", \"source\", \"span\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"title\", \"tr\", \"track\", \"u\", \"ul\", \"var\", \"video\", \"wbr\", \"circle\", \"clipPath\", \"defs\", \"ellipse\", \"foreignObject\", \"g\", \"image\", \"line\", \"linearGradient\", \"marker\", \"mask\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialGradient\", \"rect\", \"stop\", \"svg\", \"text\", \"tspan\"].forEach(function (e) {\n He[e] = He(e);\n});\n\nvar $e = function () {\n function e(e, t) {\n this.rules = e, this.componentId = t, this.isStatic = Ae(e), Z.registerId(this.componentId + 1);\n }\n\n var t = e.prototype;\n return t.createStyles = function (e, t, n, r) {\n var o = r(ge(this.rules, t, n, r).join(\"\"), \"\"),\n i = this.componentId + e;\n n.insertRules(i, i, o);\n }, t.removeStyles = function (e, t) {\n t.clearRules(this.componentId + e);\n }, t.renderStyles = function (e, t, n, r) {\n e > 2 && Z.registerId(this.componentId + e), this.removeStyles(e, n), this.createStyles(e, t, n, r);\n }, e;\n}();\n\nfunction Ye(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), o = 1; o < t; o++) {\n n[o - 1] = arguments[o];\n }\n\n var s = Se.apply(void 0, [e].concat(n)),\n a = \"sc-global-\" + ze(JSON.stringify(s)),\n u = new $e(s, a);\n\n function l(e) {\n var t = ce(),\n n = ue(),\n o = i(Ge),\n l = c(t.allocateGSInstance(a)).current;\n return \"production\" !== process.env.NODE_ENV && r.Children.count(e.children) && console.warn(\"The global style component \" + a + \" was given child JSX. createGlobalStyle does not render children.\"), \"production\" !== process.env.NODE_ENV && s.some(function (e) {\n return \"string\" == typeof e && -1 !== e.indexOf(\"@import\");\n }) && console.warn(\"Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical meta tag to the stylesheet, or simply embedding it manually in your index.html section for a simpler app.\"), d(function () {\n return h(l, e, t, o, n), function () {\n return u.removeStyles(l, t);\n };\n }, [l, e, t, o, n]), null;\n }\n\n function h(e, t, n, r, o) {\n if (u.isStatic) u.renderStyles(e, P, n, o);else {\n var i = v({}, t, {\n theme: De(t, r, l.defaultProps)\n });\n u.renderStyles(e, i, n, o);\n }\n }\n\n return \"production\" !== process.env.NODE_ENV && Te(a), r.memo(l);\n}\n\nfunction We(e) {\n \"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");\n\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) {\n n[r - 1] = arguments[r];\n }\n\n var o = Se.apply(void 0, [e].concat(n)).join(\"\"),\n i = ze(o);\n return new de(i, o);\n}\n\nvar Ue = function () {\n function e() {\n var e = this;\n this._emitSheetCSS = function () {\n var t = e.instance.toString(),\n n = R();\n return \"\";\n }, this.getStyleTags = function () {\n return e.sealed ? D(2) : e._emitSheetCSS();\n }, this.getStyleElement = function () {\n var t;\n if (e.sealed) return D(2);\n var n = ((t = {})[I] = \"\", t[\"data-styled-version\"] = \"5.2.0\", t.dangerouslySetInnerHTML = {\n __html: e.instance.toString()\n }, t),\n o = R();\n return o && (n.nonce = o), [r.createElement(\"style\", v({}, n, {\n key: \"sc-0-0\"\n }))];\n }, this.seal = function () {\n e.sealed = !0;\n }, this.instance = new Z({\n isServer: !0\n }), this.sealed = !1;\n }\n\n var t = e.prototype;\n return t.collectStyles = function (e) {\n return this.sealed ? D(2) : r.createElement(le, {\n sheet: this.instance\n }, e);\n }, t.interleaveWithNodeStream = function (e) {\n return D(3);\n }, e;\n}(),\n Je = function Je(e) {\n var t = r.forwardRef(function (t, n) {\n var o = i(Ge),\n s = e.defaultProps,\n a = De(t, o, s);\n return \"production\" !== process.env.NODE_ENV && void 0 === a && console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + E(e) + '\"'), r.createElement(e, v({}, t, {\n theme: a,\n ref: n\n }));\n });\n return y(t, e), t.displayName = \"WithTheme(\" + E(e) + \")\", t;\n},\n Xe = function Xe() {\n return i(Ge);\n},\n Ze = {\n StyleSheet: Z,\n masterSheet: se\n};\n\n\"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\"), \"production\" !== process.env.NODE_ENV && \"test\" !== process.env.NODE_ENV && (window[\"__styled-components-init__\"] = window[\"__styled-components-init__\"] || 0, 1 === window[\"__styled-components-init__\"] && console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles not rendering properly, errors happening during rehydration process, missing theme prop, and makes your application bigger without a good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"), window[\"__styled-components-init__\"] += 1);\nexport default He;\nexport { Ue as ServerStyleSheet, oe as StyleSheetConsumer, re as StyleSheetContext, le as StyleSheetManager, Fe as ThemeConsumer, Ge as ThemeContext, Be as ThemeProvider, Ze as __PRIVATE__, Ye as createGlobalStyle, Se as css, _ as isStyledComponent, We as keyframes, Xe as useTheme, C as version, Je as withTheme };","var React = require('react');\n\nfunction LogoNotFoundInline (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"title\",{\"key\":0},\"web_logo_103\"),React.createElement(\"defs\",{\"key\":1},React.createElement(\"rect\",{\"x\":\"50\",\"y\":\"4\",\"width\":\"53\",\"height\":\"25\",\"id\":\"rect-1\"})),React.createElement(\"g\",{\"id\":\"控件\",\"stroke\":\"none\",\"strokeWidth\":\"1\",\"fill\":\"none\",\"fillRule\":\"evenodd\",\"key\":2},React.createElement(\"g\",{\"id\":\"web_logo_103\"},React.createElement(\"g\",{\"id\":\"SVG_MuBuLogo_无边\"},[React.createElement(\"path\",{\"d\":\"M4.1808,16.9973913 L4.1808,15.9452174 C4.12734977,13.2577765 3.08344561,10.6838578 1.248,8.71391304 C0.447455148,7.81613067 0.00363994984,6.65788804 0,5.45695652 C0.0150772843,2.78899626 2.12510376,0.600417166 4.8,0.47826087 C6.76892421,0.41832654 8.58776118,1.52204075 9.43780779,3.29259467 C10.2878544,5.06314858 10.0088573,7.16675212 8.7264,8.65652174 C6.86103417,10.7342921 5.80812184,13.4113579 5.76,16.1986957 L5.76,17.2556522 C5.81565503,19.9435454 6.8611763,22.5172391 8.6976,24.4869565 C9.4989806,25.382337 9.94300983,26.5394366 9.9456,27.7391304 C9.93052272,30.4070907 7.82049624,32.5956698 5.1456,32.7178261 C3.17319409,32.7856846 1.3471745,31.6849266 0.492130167,29.9126295 C-0.362914163,28.1403324 -0.0851463404,26.0319442 1.2,24.5395652 C3.07133676,22.4643337 4.12956296,19.7867552 4.1808,16.9973913 Z\",\"id\":\"路径\",\"fill\":\"#000000\",\"fillRule\":\"nonzero\",\"key\":0}),React.createElement(\"path\",{\"d\":\"M29.952,16.9973913 L29.952,15.9452174 C29.900308,13.2583204 28.8580829,10.6843291 27.024,8.71391304 C26.2234551,7.81613067 25.7796399,6.65788804 25.7759852,5.45695652 C25.7693726,2.72050565 27.9903984,0.496820796 30.7368,0.490202652 C33.4832016,0.483613987 35.7149726,2.6965926 35.7216019,5.43304348 C35.7226472,6.61702798 35.2948459,7.76162306 34.5168,8.65652174 C32.6475779,10.7326767 31.5911422,13.4100361 31.5408,16.1986957 L31.5408,17.2556522 C31.5929055,19.9433672 32.636996,22.5177455 34.4736,24.4869565 C35.2707655,25.3848873 35.7141624,26.5403389 35.7216019,27.7391304 C35.7065227,30.4070907 33.5964962,32.5956698 30.9216,32.7178261 C28.9526758,32.7777604 27.1338388,31.6740462 26.2837922,29.9034923 C25.4337456,28.1329384 25.7127427,26.0293348 26.9952,24.5395652 C28.8581964,22.4610913 29.9078113,19.7837449 29.952,16.9973913 L29.952,16.9973913 Z\",\"id\":\"路径\",\"fill\":\"#000000\",\"fillRule\":\"nonzero\",\"key\":1}),React.createElement(\"ellipse\",{\"id\":\"椭圆形\",\"fill\":\"#000000\",\"fillRule\":\"nonzero\",\"cx\":\"17.8608\",\"cy\":\"16.6004348\",\"rx\":\"4.8336\",\"ry\":\"4.81608696\",\"key\":2}),React.createElement(\"g\",{\"id\":\"幕布正楷字\",\"key\":3},React.createElement(\"image\",{\"x\":\"50\",\"y\":\"4\",\"width\":\"53\",\"height\":\"25\",\"xlinkHref\":\"data:image/png;base64,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aK8P4Xb/TFPC7Qu7j6yfBEiABEiABEiABKqMgLM2e9Aptx39lkCwpZT9yrpt2ezwsVIq4bkkEBUBCthRkWY7sSUgORvhK/Q8Ovh6gZ08hahoz2vtdXIntUBiPIwESIAESIAESKCuCHR3d1/QTj2llW4vYeAjMA1/0k+qp+DbnS+hHp5KApERoIAdGWo2FFcCkrNRKW8TzI9+gj6evkY/B/D9M57W/5JK2ZPXOJZfkwAJkAAJkAAJkEDdEsjlxnY7Z58DgL0zgCCWhdtgMfj0ju3bj8/gfJ5CAhUh4FWkVTZKAjEjcPz44eGlN91yAT7VKZh/X4/uzcULf14sDu/OwokIwrX6TkfHtq4jR47MPL3XxWr5BwmQAAmQAAmQAAnUJoHTp0/bm2++fXRqQXUHRinrq0IKlB+uUzn99Vwu1XX69CHGuymEGo+JBQEK2LGYBnYiDgTuuOPW/sDX+5G6Czd1NQ+vBXiJlYekg9iDh8MTnjFfz2RGXpUHBj5jIQESIAESIAESIAESuAoBUWLcdNOyk3DHk7XVTXjNucrhk19hzbUFwWT/wQXZF3bsaCs608u16uf3JBAmgUs1dGG2w7pJoGoIrFy5fplKuA/qwC2BsO057bLQbJ+zKtjX094u0TBZSIAESIAESIAESIAEiiCwYsXae43xPqaM+xSCyz6IU5suOz3A+25812GNetHPJHt6e18avuwYviWB2BOggB37KWIHSYAESIAESIAESIAESKD6CaxYsWKOTjSsN05/Gm53t0OYTiGIGeQRLSbgJ/BHq+fZl5Dm61oxcaofBkdQswQoYNfs1HJgJEACJEACJEACJEACJBAvAsuXL08q9Z5ZCBbb7Jw/B6bjCaUSAw0NdqypqWkCwWfpbx2vKWNvSIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAEykDg/wMBy10PAz/+KwAAAABJRU5ErkJggg==\"}))])))]);\n}\n\nLogoNotFoundInline.defaultProps = {\"width\":\"103px\",\"height\":\"33px\",\"viewBox\":\"0 0 103 33\",\"version\":\"1.1\"};\n\nmodule.exports = LogoNotFoundInline;\n\nLogoNotFoundInline.default = LogoNotFoundInline;\n","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}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\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","var React = require('react');\n\nfunction SearchInline (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"title\",{\"key\":0},\"web_搜索_40\"),React.createElement(\"g\",{\"id\":\"控件\",\"stroke\":\"none\",\"strokeWidth\":\"1\",\"fill\":\"none\",\"fillRule\":\"evenodd\",\"key\":1},React.createElement(\"g\",{\"id\":\"web_搜索_40\"},React.createElement(\"g\",{\"id\":\"编组-14\"},[React.createElement(\"rect\",{\"id\":\"矩形\",\"x\":\"0\",\"y\":\"0\",\"width\":\"40\",\"height\":\"40\",\"key\":0}),React.createElement(\"path\",{\"d\":\"M18.5005383,6.99531317 C24.5756706,6.99531317 29.5005383,11.9201809 29.5005383,17.9953132 C29.5005383,21.0313567 28.2705554,23.7801223 26.2817057,25.7704938 L32.3060757,32.2439598 C32.5787194,32.5444594 32.5627244,33.015226 32.2703498,33.2954465 C31.9779753,33.5756669 31.5199375,33.5592274 31.2472938,33.2587278 L25.1771623,26.7380408 C23.3257606,28.1540616 21.0113919,28.9953132 18.5005383,28.9953132 C12.4254061,28.9953132 7.5005383,24.0704454 7.5005383,17.9953132 C7.5005383,11.9201809 12.4254061,6.99531317 18.5005383,6.99531317 Z M18.5005383,8.46197984 C13.2354237,8.46197984 8.96720497,12.7301986 8.96720497,17.9953132 C8.96720497,23.2604278 13.2354237,27.5286465 18.5005383,27.5286465 C23.7656529,27.5286465 28.0338716,23.2604278 28.0338716,17.9953132 C28.0338716,12.7301986 23.7656529,8.46197984 18.5005383,8.46197984 Z\",\"id\":\"形状结合\",\"fill\":\"#26282A\",\"fillRule\":\"nonzero\",\"key\":1})])))]);\n}\n\nSearchInline.defaultProps = {\"width\":\"40px\",\"height\":\"40px\",\"viewBox\":\"0 0 40 40\",\"version\":\"1.1\"};\n\nmodule.exports = SearchInline;\n\nSearchInline.default = SearchInline;\n","'use strict';\n\nvar reactIs = require('react-is');\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","'use strict';\n\nmodule.exports = {\n \"aliceblue\": [240, 248, 255],\n \"antiquewhite\": [250, 235, 215],\n \"aqua\": [0, 255, 255],\n \"aquamarine\": [127, 255, 212],\n \"azure\": [240, 255, 255],\n \"beige\": [245, 245, 220],\n \"bisque\": [255, 228, 196],\n \"black\": [0, 0, 0],\n \"blanchedalmond\": [255, 235, 205],\n \"blue\": [0, 0, 255],\n \"blueviolet\": [138, 43, 226],\n \"brown\": [165, 42, 42],\n \"burlywood\": [222, 184, 135],\n \"cadetblue\": [95, 158, 160],\n \"chartreuse\": [127, 255, 0],\n \"chocolate\": [210, 105, 30],\n \"coral\": [255, 127, 80],\n \"cornflowerblue\": [100, 149, 237],\n \"cornsilk\": [255, 248, 220],\n \"crimson\": [220, 20, 60],\n \"cyan\": [0, 255, 255],\n \"darkblue\": [0, 0, 139],\n \"darkcyan\": [0, 139, 139],\n \"darkgoldenrod\": [184, 134, 11],\n \"darkgray\": [169, 169, 169],\n \"darkgreen\": [0, 100, 0],\n \"darkgrey\": [169, 169, 169],\n \"darkkhaki\": [189, 183, 107],\n \"darkmagenta\": [139, 0, 139],\n \"darkolivegreen\": [85, 107, 47],\n \"darkorange\": [255, 140, 0],\n \"darkorchid\": [153, 50, 204],\n \"darkred\": [139, 0, 0],\n \"darksalmon\": [233, 150, 122],\n \"darkseagreen\": [143, 188, 143],\n \"darkslateblue\": [72, 61, 139],\n \"darkslategray\": [47, 79, 79],\n \"darkslategrey\": [47, 79, 79],\n \"darkturquoise\": [0, 206, 209],\n \"darkviolet\": [148, 0, 211],\n \"deeppink\": [255, 20, 147],\n \"deepskyblue\": [0, 191, 255],\n \"dimgray\": [105, 105, 105],\n \"dimgrey\": [105, 105, 105],\n \"dodgerblue\": [30, 144, 255],\n \"firebrick\": [178, 34, 34],\n \"floralwhite\": [255, 250, 240],\n \"forestgreen\": [34, 139, 34],\n \"fuchsia\": [255, 0, 255],\n \"gainsboro\": [220, 220, 220],\n \"ghostwhite\": [248, 248, 255],\n \"gold\": [255, 215, 0],\n \"goldenrod\": [218, 165, 32],\n \"gray\": [128, 128, 128],\n \"green\": [0, 128, 0],\n \"greenyellow\": [173, 255, 47],\n \"grey\": [128, 128, 128],\n \"honeydew\": [240, 255, 240],\n \"hotpink\": [255, 105, 180],\n \"indianred\": [205, 92, 92],\n \"indigo\": [75, 0, 130],\n \"ivory\": [255, 255, 240],\n \"khaki\": [240, 230, 140],\n \"lavender\": [230, 230, 250],\n \"lavenderblush\": [255, 240, 245],\n \"lawngreen\": [124, 252, 0],\n \"lemonchiffon\": [255, 250, 205],\n \"lightblue\": [173, 216, 230],\n \"lightcoral\": [240, 128, 128],\n \"lightcyan\": [224, 255, 255],\n \"lightgoldenrodyellow\": [250, 250, 210],\n \"lightgray\": [211, 211, 211],\n \"lightgreen\": [144, 238, 144],\n \"lightgrey\": [211, 211, 211],\n \"lightpink\": [255, 182, 193],\n \"lightsalmon\": [255, 160, 122],\n \"lightseagreen\": [32, 178, 170],\n \"lightskyblue\": [135, 206, 250],\n \"lightslategray\": [119, 136, 153],\n \"lightslategrey\": [119, 136, 153],\n \"lightsteelblue\": [176, 196, 222],\n \"lightyellow\": [255, 255, 224],\n \"lime\": [0, 255, 0],\n \"limegreen\": [50, 205, 50],\n \"linen\": [250, 240, 230],\n \"magenta\": [255, 0, 255],\n \"maroon\": [128, 0, 0],\n \"mediumaquamarine\": [102, 205, 170],\n \"mediumblue\": [0, 0, 205],\n \"mediumorchid\": [186, 85, 211],\n \"mediumpurple\": [147, 112, 219],\n \"mediumseagreen\": [60, 179, 113],\n \"mediumslateblue\": [123, 104, 238],\n \"mediumspringgreen\": [0, 250, 154],\n \"mediumturquoise\": [72, 209, 204],\n \"mediumvioletred\": [199, 21, 133],\n \"midnightblue\": [25, 25, 112],\n \"mintcream\": [245, 255, 250],\n \"mistyrose\": [255, 228, 225],\n \"moccasin\": [255, 228, 181],\n \"navajowhite\": [255, 222, 173],\n \"navy\": [0, 0, 128],\n \"oldlace\": [253, 245, 230],\n \"olive\": [128, 128, 0],\n \"olivedrab\": [107, 142, 35],\n \"orange\": [255, 165, 0],\n \"orangered\": [255, 69, 0],\n \"orchid\": [218, 112, 214],\n \"palegoldenrod\": [238, 232, 170],\n \"palegreen\": [152, 251, 152],\n \"paleturquoise\": [175, 238, 238],\n \"palevioletred\": [219, 112, 147],\n \"papayawhip\": [255, 239, 213],\n \"peachpuff\": [255, 218, 185],\n \"peru\": [205, 133, 63],\n \"pink\": [255, 192, 203],\n \"plum\": [221, 160, 221],\n \"powderblue\": [176, 224, 230],\n \"purple\": [128, 0, 128],\n \"rebeccapurple\": [102, 51, 153],\n \"red\": [255, 0, 0],\n \"rosybrown\": [188, 143, 143],\n \"royalblue\": [65, 105, 225],\n \"saddlebrown\": [139, 69, 19],\n \"salmon\": [250, 128, 114],\n \"sandybrown\": [244, 164, 96],\n \"seagreen\": [46, 139, 87],\n \"seashell\": [255, 245, 238],\n \"sienna\": [160, 82, 45],\n \"silver\": [192, 192, 192],\n \"skyblue\": [135, 206, 235],\n \"slateblue\": [106, 90, 205],\n \"slategray\": [112, 128, 144],\n \"slategrey\": [112, 128, 144],\n \"snow\": [255, 250, 250],\n \"springgreen\": [0, 255, 127],\n \"steelblue\": [70, 130, 180],\n \"tan\": [210, 180, 140],\n \"teal\": [0, 128, 128],\n \"thistle\": [216, 191, 216],\n \"tomato\": [255, 99, 71],\n \"turquoise\": [64, 224, 208],\n \"violet\": [238, 130, 238],\n \"wheat\": [245, 222, 179],\n \"white\": [255, 255, 255],\n \"whitesmoke\": [245, 245, 245],\n \"yellow\": [255, 255, 0],\n \"yellowgreen\": [154, 205, 50]\n};","function t(t) {\n return null != t && \"object\" == typeof t && 1 === t.nodeType;\n}\n\nfunction e(t, e) {\n return (!e || \"hidden\" !== t) && \"visible\" !== t && \"clip\" !== t;\n}\n\nfunction n(t, n) {\n if (t.clientHeight < t.scrollHeight || t.clientWidth < t.scrollWidth) {\n var r = getComputedStyle(t, null);\n return e(r.overflowY, n) || e(r.overflowX, n) || function (t) {\n var e = function (t) {\n if (!t.ownerDocument || !t.ownerDocument.defaultView) return null;\n\n try {\n return t.ownerDocument.defaultView.frameElement;\n } catch (t) {\n return null;\n }\n }(t);\n\n return !!e && (e.clientHeight < t.scrollHeight || e.clientWidth < t.scrollWidth);\n }(t);\n }\n\n return !1;\n}\n\nfunction r(t, e, n, r, i, o, l, d) {\n return o < t && l > e || o > t && l < e ? 0 : o <= t && d <= n || l >= e && d >= n ? o - t - r : l > e && d < n || o < t && d > n ? l - e + i : 0;\n}\n\nexport default function (e, i) {\n var o = window,\n l = i.scrollMode,\n d = i.block,\n u = i.inline,\n h = i.boundary,\n a = i.skipOverflowHiddenElements,\n c = \"function\" == typeof h ? h : function (t) {\n return t !== h;\n };\n if (!t(e)) throw new TypeError(\"Invalid target\");\n\n for (var f = document.scrollingElement || document.documentElement, s = [], p = e; t(p) && c(p);) {\n if ((p = p.parentNode) === f) {\n s.push(p);\n break;\n }\n\n p === document.body && n(p) && !n(document.documentElement) || n(p, a) && s.push(p);\n }\n\n for (var g = o.visualViewport ? o.visualViewport.width : innerWidth, m = o.visualViewport ? o.visualViewport.height : innerHeight, w = window.scrollX || pageXOffset, v = window.scrollY || pageYOffset, W = e.getBoundingClientRect(), b = W.height, H = W.width, y = W.top, M = W.right, E = W.bottom, V = W.left, x = \"start\" === d || \"nearest\" === d ? y : \"end\" === d ? E : y + b / 2, I = \"center\" === u ? V + H / 2 : \"end\" === u ? M : V, C = [], T = 0; T < s.length; T++) {\n var k = s[T],\n B = k.getBoundingClientRect(),\n D = B.height,\n O = B.width,\n R = B.top,\n X = B.right,\n Y = B.bottom,\n L = B.left;\n if (\"if-needed\" === l && y >= 0 && V >= 0 && E <= m && M <= g && y >= R && E <= Y && V >= L && M <= X) return C;\n var S = getComputedStyle(k),\n j = parseInt(S.borderLeftWidth, 10),\n N = parseInt(S.borderTopWidth, 10),\n q = parseInt(S.borderRightWidth, 10),\n z = parseInt(S.borderBottomWidth, 10),\n A = 0,\n F = 0,\n G = \"offsetWidth\" in k ? k.offsetWidth - k.clientWidth - j - q : 0,\n J = \"offsetHeight\" in k ? k.offsetHeight - k.clientHeight - N - z : 0;\n if (f === k) A = \"start\" === d ? x : \"end\" === d ? x - m : \"nearest\" === d ? r(v, v + m, m, N, z, v + x, v + x + b, b) : x - m / 2, F = \"start\" === u ? I : \"center\" === u ? I - g / 2 : \"end\" === u ? I - g : r(w, w + g, g, j, q, w + I, w + I + H, H), A = Math.max(0, A + v), F = Math.max(0, F + w);else {\n A = \"start\" === d ? x - R - N : \"end\" === d ? x - Y + z + J : \"nearest\" === d ? r(R, Y, D, N, z + J, x, x + b, b) : x - (R + D / 2) + J / 2, F = \"start\" === u ? I - L - j : \"center\" === u ? I - (L + O / 2) + G / 2 : \"end\" === u ? I - X + q + G : r(L, X, O, j, q + G, I, I + H, H);\n var K = k.scrollLeft,\n P = k.scrollTop;\n x += P - (A = Math.max(0, Math.min(P + A, k.scrollHeight - D + J))), I += K - (F = Math.max(0, Math.min(K + F, k.scrollWidth - O + G)));\n }\n C.push({\n el: k,\n top: A,\n left: F\n });\n }\n\n return C;\n}","import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport { cloneElement, Component, useCallback, useReducer, useRef, useEffect } from 'react';\nimport { isForwardRef } from 'react-is';\nimport computeScrollIntoView from 'compute-scroll-into-view';\nvar idCounter = 0;\n/**\n * Accepts a parameter and returns it if it's a function\n * or a noop function if it's not. This allows us to\n * accept a callback, but not worry about it if it's not\n * passed.\n * @param {Function} cb the callback\n * @return {Function} a function\n */\n\nfunction cbToCb(cb) {\n return typeof cb === 'function' ? cb : noop;\n}\n\nfunction noop() {}\n/**\n * Scroll node into view if necessary\n * @param {HTMLElement} node the element that should scroll into view\n * @param {HTMLElement} menuNode the menu element of the component\n */\n\n\nfunction scrollIntoView(node, menuNode) {\n if (node === null) {\n return;\n }\n\n var actions = computeScrollIntoView(node, {\n boundary: menuNode,\n block: 'nearest',\n scrollMode: 'if-needed'\n });\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n el.scrollTop = top;\n el.scrollLeft = left;\n });\n}\n/**\n * @param {HTMLElement} parent the parent node\n * @param {HTMLElement} child the child node\n * @return {Boolean} whether the parent is the child or the child is in the parent\n */\n\n\nfunction isOrContainsNode(parent, child) {\n return parent === child || parent.contains && parent.contains(child);\n}\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\n\n\nfunction debounce(fn, time) {\n var timeoutId;\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n\n function wrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n cancel();\n timeoutId = setTimeout(function () {\n timeoutId = null;\n fn.apply(void 0, args);\n }, time);\n }\n\n wrapper.cancel = cancel;\n return wrapper;\n}\n/**\n * This is intended to be used to compose event handlers.\n * They are executed in order until one of them sets\n * `event.preventDownshiftDefault = true`.\n * @param {...Function} fns the event handler functions\n * @return {Function} the event handler to add to an element\n */\n\n\nfunction callAllEventHandlers() {\n for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n fns[_key2] = arguments[_key2];\n }\n\n return function (event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return fns.some(function (fn) {\n if (fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return event.preventDownshiftDefault || event.hasOwnProperty('nativeEvent') && event.nativeEvent.preventDownshiftDefault;\n });\n };\n}\n\nfunction handleRefs() {\n for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n refs[_key4] = arguments[_key4];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n });\n };\n}\n/**\n * This generates a unique ID for an instance of Downshift\n * @return {String} the unique ID\n */\n\n\nfunction generateId() {\n return String(idCounter++);\n}\n/**\n * Resets idCounter to 0. Used for SSR.\n */\n\n\nfunction resetIdCounter() {\n idCounter = 0;\n}\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specift if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\n\n\nfunction getA11yStatusMessage(_ref2) {\n var isOpen = _ref2.isOpen,\n resultCount = _ref2.resultCount;\n\n if (!isOpen) {\n return '';\n }\n\n if (!resultCount) {\n return 'No results are available.';\n }\n\n return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter key to select.\";\n}\n/**\n * Takes an argument and if it's an array, returns the first item in the array\n * otherwise returns the argument\n * @param {*} arg the maybe-array\n * @param {*} defaultValue the value if arg is falsey not defined\n * @return {*} the arg or it's first item\n */\n\n\nfunction unwrapArray(arg, defaultValue) {\n arg = Array.isArray(arg) ?\n /* istanbul ignore next (preact) */\n arg[0] : arg;\n\n if (!arg && defaultValue) {\n return defaultValue;\n } else {\n return arg;\n }\n}\n/**\n * @param {Object} element (P)react element\n * @return {Boolean} whether it's a DOM element\n */\n\n\nfunction isDOMElement(element) {\n // then we assume this is react\n return typeof element.type === 'string';\n}\n/**\n * @param {Object} element (P)react element\n * @return {Object} the props\n */\n\n\nfunction getElementProps(element) {\n return element.props;\n}\n/**\n * Throws a helpful error message for required properties. Useful\n * to be used as a default in destructuring or object params.\n * @param {String} fnName the function name\n * @param {String} propName the prop name\n */\n\n\nfunction requiredProp(fnName, propName) {\n // eslint-disable-next-line no-console\n console.error(\"The property \\\"\" + propName + \"\\\" is required in \\\"\" + fnName + \"\\\"\");\n}\n\nvar stateKeys = ['highlightedIndex', 'inputValue', 'isOpen', 'selectedItem', 'type'];\n/**\n * @param {Object} state the state object\n * @return {Object} state that is relevant to downshift\n */\n\nfunction pickState(state) {\n if (state === void 0) {\n state = {};\n }\n\n var result = {};\n stateKeys.forEach(function (k) {\n if (state.hasOwnProperty(k)) {\n result[k] = state[k];\n }\n });\n return result;\n}\n/**\n * This will perform a shallow merge of the given state object\n * with the state coming from props\n * (for the controlled component scenario)\n * This is used in state updater functions so they're referencing\n * the right state regardless of where it comes from.\n *\n * @param {Object} state The state of the component/hook.\n * @param {Object} props The props that may contain controlled values.\n * @returns {Object} The merged controlled state.\n */\n\n\nfunction getState(state, props) {\n return Object.keys(state).reduce(function (prevState, key) {\n prevState[key] = isControlledProp(props, key) ? props[key] : state[key];\n return prevState;\n }, {});\n}\n/**\n * This determines whether a prop is a \"controlled prop\" meaning it is\n * state which is controlled by the outside of this component rather\n * than within this component.\n *\n * @param {Object} props The props that may contain controlled values.\n * @param {String} key the key to check\n * @return {Boolean} whether it is a controlled controlled prop\n */\n\n\nfunction isControlledProp(props, key) {\n return props[key] !== undefined;\n}\n/**\n * Normalizes the 'key' property of a KeyboardEvent in IE/Edge\n * @param {Object} event a keyboardEvent object\n * @return {String} keyboard key\n */\n\n\nfunction normalizeArrowKey(event) {\n var key = event.key,\n keyCode = event.keyCode;\n /* istanbul ignore next (ie) */\n\n if (keyCode >= 37 && keyCode <= 40 && key.indexOf('Arrow') !== 0) {\n return \"Arrow\" + key;\n }\n\n return key;\n}\n/**\n * Simple check if the value passed is object literal\n * @param {*} obj any things\n * @return {Boolean} whether it's object literal\n */\n\n\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n/**\n * Returns the new index in the list, in a circular way. If next value is out of bonds from the total,\n * it will wrap to either 0 or itemCount - 1.\n *\n * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.\n * @param {number} baseIndex The initial position to move from.\n * @param {number} itemCount The total number of items.\n * @param {Function} getItemNodeFromIndex Used to check if item is disabled.\n * @param {boolean} circular Specify if navigation is circular. Default is true.\n * @returns {number} The new index after the move.\n */\n\n\nfunction getNextWrappingIndex(moveAmount, baseIndex, itemCount, getItemNodeFromIndex, circular) {\n if (circular === void 0) {\n circular = true;\n }\n\n var itemsLastIndex = itemCount - 1;\n\n if (typeof baseIndex !== 'number' || baseIndex < 0 || baseIndex >= itemCount) {\n baseIndex = moveAmount > 0 ? -1 : itemsLastIndex + 1;\n }\n\n var newIndex = baseIndex + moveAmount;\n\n if (newIndex < 0) {\n newIndex = circular ? itemsLastIndex : 0;\n } else if (newIndex > itemsLastIndex) {\n newIndex = circular ? 0 : itemsLastIndex;\n }\n\n var nonDisabledNewIndex = getNextNonDisabledIndex(moveAmount, newIndex, itemCount, getItemNodeFromIndex, circular);\n return nonDisabledNewIndex === -1 ? baseIndex : nonDisabledNewIndex;\n}\n/**\n * Returns the next index in the list of an item that is not disabled.\n *\n * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.\n * @param {number} baseIndex The initial position to move from.\n * @param {number} itemCount The total number of items.\n * @param {Function} getItemNodeFromIndex Used to check if item is disabled.\n * @param {boolean} circular Specify if navigation is circular. Default is true.\n * @returns {number} The new index. Returns baseIndex if item is not disabled. Returns next non-disabled item otherwise. If no non-disabled found it will return -1.\n */\n\n\nfunction getNextNonDisabledIndex(moveAmount, baseIndex, itemCount, getItemNodeFromIndex, circular) {\n var currentElementNode = getItemNodeFromIndex(baseIndex);\n\n if (!currentElementNode || !currentElementNode.hasAttribute('disabled')) {\n return baseIndex;\n }\n\n if (moveAmount > 0) {\n for (var index = baseIndex + 1; index < itemCount; index++) {\n if (!getItemNodeFromIndex(index).hasAttribute('disabled')) {\n return index;\n }\n }\n } else {\n for (var _index = baseIndex - 1; _index >= 0; _index--) {\n if (!getItemNodeFromIndex(_index).hasAttribute('disabled')) {\n return _index;\n }\n }\n }\n\n if (circular) {\n return moveAmount > 0 ? getNextNonDisabledIndex(1, 0, itemCount, getItemNodeFromIndex, false) : getNextNonDisabledIndex(-1, itemCount - 1, itemCount, getItemNodeFromIndex, false);\n }\n\n return -1;\n}\n/**\n * Checks if event target is within the downshift elements.\n *\n * @param {EventTarget} target Target to check.\n * @param {HTMLElement[]} downshiftElements The elements that form downshift (list, toggle button etc).\n * @param {Document} document The document.\n * @param {boolean} checkActiveElement Whether to also check activeElement.\n *\n * @returns {boolean} Whether or not the target is within downshift elements.\n */\n\n\nfunction targetWithinDownshift(target, downshiftElements, document, checkActiveElement) {\n if (checkActiveElement === void 0) {\n checkActiveElement = true;\n }\n\n return downshiftElements.some(function (contextNode) {\n return contextNode && (isOrContainsNode(contextNode, target) || checkActiveElement && isOrContainsNode(contextNode, document.activeElement));\n });\n}\n\nvar cleanupStatus = debounce(function () {\n getStatusDiv().textContent = '';\n}, 500);\n/**\n * @param {String} status the status message\n * @param {Object} documentProp document passed by the user.\n */\n\nfunction setStatus(status, documentProp) {\n var div = getStatusDiv(documentProp);\n\n if (!status) {\n return;\n }\n\n div.textContent = status;\n cleanupStatus();\n}\n/**\n * Get the status node or create it if it does not already exist.\n * @param {Object} documentProp document passed by the user.\n * @return {HTMLElement} the status node.\n */\n\n\nfunction getStatusDiv(documentProp) {\n if (documentProp === void 0) {\n documentProp = document;\n }\n\n var statusDiv = documentProp.getElementById('a11y-status-message');\n\n if (statusDiv) {\n return statusDiv;\n }\n\n statusDiv = documentProp.createElement('div');\n statusDiv.setAttribute('id', 'a11y-status-message');\n statusDiv.setAttribute('role', 'status');\n statusDiv.setAttribute('aria-live', 'polite');\n statusDiv.setAttribute('aria-relevant', 'additions text');\n Object.assign(statusDiv.style, {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n width: '1px'\n });\n documentProp.body.appendChild(statusDiv);\n return statusDiv;\n}\n\nvar unknown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_unknown__' : 0;\nvar mouseUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_mouseup__' : 1;\nvar itemMouseEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_item_mouseenter__' : 2;\nvar keyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_up__' : 3;\nvar keyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_down__' : 4;\nvar keyDownEscape = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_escape__' : 5;\nvar keyDownEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_enter__' : 6;\nvar keyDownHome = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_home__' : 7;\nvar keyDownEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_end__' : 8;\nvar clickItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_item__' : 9;\nvar blurInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_input__' : 10;\nvar changeInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_change_input__' : 11;\nvar keyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_space_button__' : 12;\nvar clickButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_button__' : 13;\nvar blurButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_button__' : 14;\nvar controlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_controlled_prop_updated_selected_item__' : 15;\nvar touchEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_touchend__' : 16;\nvar stateChangeTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n unknown: unknown,\n mouseUp: mouseUp,\n itemMouseEnter: itemMouseEnter,\n keyDownArrowUp: keyDownArrowUp,\n keyDownArrowDown: keyDownArrowDown,\n keyDownEscape: keyDownEscape,\n keyDownEnter: keyDownEnter,\n keyDownHome: keyDownHome,\n keyDownEnd: keyDownEnd,\n clickItem: clickItem,\n blurInput: blurInput,\n changeInput: changeInput,\n keyDownSpaceButton: keyDownSpaceButton,\n clickButton: clickButton,\n blurButton: blurButton,\n controlledPropUpdatedSelectedItem: controlledPropUpdatedSelectedItem,\n touchEnd: touchEnd\n});\n\nvar Downshift = /*#__PURE__*/function () {\n var Downshift = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Downshift, _Component);\n\n function Downshift(_props) {\n var _this = _Component.call(this, _props) || this;\n\n _this.id = _this.props.id || \"downshift-\" + generateId();\n _this.menuId = _this.props.menuId || _this.id + \"-menu\";\n _this.labelId = _this.props.labelId || _this.id + \"-label\";\n _this.inputId = _this.props.inputId || _this.id + \"-input\";\n\n _this.getItemId = _this.props.getItemId || function (index) {\n return _this.id + \"-item-\" + index;\n };\n\n _this.input = null;\n _this.items = [];\n _this.itemCount = null;\n _this.previousResultCount = 0;\n _this.timeoutIds = [];\n\n _this.internalSetTimeout = function (fn, time) {\n var id = setTimeout(function () {\n _this.timeoutIds = _this.timeoutIds.filter(function (i) {\n return i !== id;\n });\n fn();\n }, time);\n\n _this.timeoutIds.push(id);\n };\n\n _this.setItemCount = function (count) {\n _this.itemCount = count;\n };\n\n _this.unsetItemCount = function () {\n _this.itemCount = null;\n };\n\n _this.setHighlightedIndex = function (highlightedIndex, otherStateToSet) {\n if (highlightedIndex === void 0) {\n highlightedIndex = _this.props.defaultHighlightedIndex;\n }\n\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n highlightedIndex: highlightedIndex\n }, otherStateToSet));\n };\n\n _this.clearSelection = function (cb) {\n _this.internalSetState({\n selectedItem: null,\n inputValue: '',\n highlightedIndex: _this.props.defaultHighlightedIndex,\n isOpen: _this.props.defaultIsOpen\n }, cb);\n };\n\n _this.selectItem = function (item, otherStateToSet, cb) {\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n selectedItem: item,\n inputValue: _this.props.itemToString(item)\n }, otherStateToSet), cb);\n };\n\n _this.selectItemAtIndex = function (itemIndex, otherStateToSet, cb) {\n var item = _this.items[itemIndex];\n\n if (item == null) {\n return;\n }\n\n _this.selectItem(item, otherStateToSet, cb);\n };\n\n _this.selectHighlightedItem = function (otherStateToSet, cb) {\n return _this.selectItemAtIndex(_this.getState().highlightedIndex, otherStateToSet, cb);\n };\n\n _this.internalSetState = function (stateToSet, cb) {\n var isItemSelected, onChangeArg;\n var onStateChangeArg = {};\n var isStateToSetFunction = typeof stateToSet === 'function'; // we want to call `onInputValueChange` before the `setState` call\n // so someone controlling the `inputValue` state gets notified of\n // the input change as soon as possible. This avoids issues with\n // preserving the cursor position.\n // See https://github.com/downshift-js/downshift/issues/217 for more info.\n\n if (!isStateToSetFunction && stateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(stateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), {}, stateToSet));\n }\n\n return _this.setState(function (state) {\n state = _this.getState(state);\n var newStateToSet = isStateToSetFunction ? stateToSet(state) : stateToSet; // Your own function that could modify the state that will be set.\n\n newStateToSet = _this.props.stateReducer(state, newStateToSet); // checks if an item is selected, regardless of if it's different from\n // what was selected before\n // used to determine if onSelect and onChange callbacks should be called\n\n isItemSelected = newStateToSet.hasOwnProperty('selectedItem'); // this keeps track of the object we want to call with setState\n\n var nextState = {}; // this is just used to tell whether the state changed\n\n var nextFullState = {}; // we need to call on change if the outside world is controlling any of our state\n // and we're trying to update that state. OR if the selection has changed and we're\n // trying to update the selection\n\n if (isItemSelected && newStateToSet.selectedItem !== state.selectedItem) {\n onChangeArg = newStateToSet.selectedItem;\n }\n\n newStateToSet.type = newStateToSet.type || unknown;\n Object.keys(newStateToSet).forEach(function (key) {\n // onStateChangeArg should only have the state that is\n // actually changing\n if (state[key] !== newStateToSet[key]) {\n onStateChangeArg[key] = newStateToSet[key];\n } // the type is useful for the onStateChangeArg\n // but we don't actually want to set it in internal state.\n // this is an undocumented feature for now... Not all internalSetState\n // calls support it and I'm not certain we want them to yet.\n // But it enables users controlling the isOpen state to know when\n // the isOpen state changes due to mouseup events which is quite handy.\n\n\n if (key === 'type') {\n return;\n }\n\n nextFullState[key] = newStateToSet[key]; // if it's coming from props, then we don't care to set it internally\n\n if (!isControlledProp(_this.props, key)) {\n nextState[key] = newStateToSet[key];\n }\n }); // if stateToSet is a function, then we weren't able to call onInputValueChange\n // earlier, so we'll call it now that we know what the inputValue state will be.\n\n if (isStateToSetFunction && newStateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(newStateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), {}, newStateToSet));\n }\n\n return nextState;\n }, function () {\n // call the provided callback if it's a function\n cbToCb(cb)(); // only call the onStateChange and onChange callbacks if\n // we have relevant information to pass them.\n\n var hasMoreStateThanType = Object.keys(onStateChangeArg).length > 1;\n\n if (hasMoreStateThanType) {\n _this.props.onStateChange(onStateChangeArg, _this.getStateAndHelpers());\n }\n\n if (isItemSelected) {\n _this.props.onSelect(stateToSet.selectedItem, _this.getStateAndHelpers());\n }\n\n if (onChangeArg !== undefined) {\n _this.props.onChange(onChangeArg, _this.getStateAndHelpers());\n } // this is currently undocumented and therefore subject to change\n // We'll try to not break it, but just be warned.\n\n\n _this.props.onUserAction(onStateChangeArg, _this.getStateAndHelpers());\n });\n };\n\n _this.rootRef = function (node) {\n return _this._rootNode = node;\n };\n\n _this.getRootProps = function (_ref, _temp) {\n var _extends2;\n\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _temp === void 0 ? {} : _temp,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n var _ref3 = _ref,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n rest = _objectWithoutPropertiesLoose(_ref3, [\"refKey\", \"ref\"]); // this is used in the render to know whether the user has called getRootProps.\n // It uses that to know whether to apply the props automatically\n\n\n _this.getRootProps.called = true;\n _this.getRootProps.refKey = refKey;\n _this.getRootProps.suppressRefError = suppressRefError;\n\n var _this$getState = _this.getState(),\n isOpen = _this$getState.isOpen;\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, _this.rootRef), _extends2.role = 'combobox', _extends2['aria-expanded'] = isOpen, _extends2['aria-haspopup'] = 'listbox', _extends2['aria-owns'] = isOpen ? _this.menuId : null, _extends2['aria-labelledby'] = _this.labelId, _extends2), rest);\n };\n\n _this.keyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n var _this2 = this;\n\n event.preventDefault();\n\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? 5 : 1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowDown\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowDown\n }, function () {\n var itemCount = _this2.getItemCount();\n\n if (itemCount > 0) {\n var _this2$getState = _this2.getState(),\n highlightedIndex = _this2$getState.highlightedIndex;\n\n var nextHighlightedIndex = getNextWrappingIndex(1, highlightedIndex, itemCount, function (index) {\n return _this2.getItemNodeFromIndex(index);\n });\n\n _this2.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowDown\n });\n }\n });\n }\n },\n ArrowUp: function ArrowUp(event) {\n var _this3 = this;\n\n event.preventDefault();\n\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? -5 : -1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowUp\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowUp\n }, function () {\n var itemCount = _this3.getItemCount();\n\n if (itemCount > 0) {\n var _this3$getState = _this3.getState(),\n highlightedIndex = _this3$getState.highlightedIndex;\n\n var nextHighlightedIndex = getNextWrappingIndex(-1, highlightedIndex, itemCount, function (index) {\n return _this3.getItemNodeFromIndex(index);\n });\n\n _this3.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowUp\n });\n }\n });\n }\n },\n Enter: function Enter(event) {\n var _this$getState2 = this.getState(),\n isOpen = _this$getState2.isOpen,\n highlightedIndex = _this$getState2.highlightedIndex;\n\n if (isOpen && highlightedIndex != null) {\n event.preventDefault();\n var item = this.items[highlightedIndex];\n var itemNode = this.getItemNodeFromIndex(highlightedIndex);\n\n if (item == null || itemNode && itemNode.hasAttribute('disabled')) {\n return;\n }\n\n this.selectHighlightedItem({\n type: keyDownEnter\n });\n }\n },\n Escape: function Escape(event) {\n event.preventDefault();\n this.reset({\n type: keyDownEscape,\n selectedItem: null,\n inputValue: ''\n });\n }\n };\n _this.buttonKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n ' ': function _(event) {\n event.preventDefault();\n this.toggleMenu({\n type: keyDownSpaceButton\n });\n }\n });\n _this.inputKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n Home: function Home(event) {\n var _this4 = this;\n\n event.preventDefault();\n var itemCount = this.getItemCount();\n\n var _this$getState3 = this.getState(),\n isOpen = _this$getState3.isOpen;\n\n if (itemCount <= 0 || !isOpen) {\n return;\n } // get next non-disabled starting downwards from 0 if that's disabled.\n\n\n var newHighlightedIndex = getNextNonDisabledIndex(1, 0, itemCount, function (index) {\n return _this4.getItemNodeFromIndex(index);\n }, false);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownHome\n });\n },\n End: function End(event) {\n var _this5 = this;\n\n event.preventDefault();\n var itemCount = this.getItemCount();\n\n var _this$getState4 = this.getState(),\n isOpen = _this$getState4.isOpen;\n\n if (itemCount <= 0 || !isOpen) {\n return;\n } // get next non-disabled starting upwards from last index if that's disabled.\n\n\n var newHighlightedIndex = getNextNonDisabledIndex(-1, itemCount - 1, itemCount, function (index) {\n return _this5.getItemNodeFromIndex(index);\n }, false);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownEnd\n });\n }\n });\n\n _this.getToggleButtonProps = function (_ref4) {\n if (_ref4 === void 0) {\n _ref4 = {};\n }\n\n var _ref5 = _ref4,\n onClick = _ref5.onClick,\n onPress = _ref5.onPress,\n onKeyDown = _ref5.onKeyDown,\n onKeyUp = _ref5.onKeyUp,\n onBlur = _ref5.onBlur,\n rest = _objectWithoutPropertiesLoose(_ref5, [\"onClick\", \"onPress\", \"onKeyDown\", \"onKeyUp\", \"onBlur\"]);\n\n var _this$getState5 = _this.getState(),\n isOpen = _this$getState5.isOpen;\n\n var enabledEventHandlers = {\n onClick: callAllEventHandlers(onClick, _this.buttonHandleClick),\n onKeyDown: callAllEventHandlers(onKeyDown, _this.buttonHandleKeyDown),\n onKeyUp: callAllEventHandlers(onKeyUp, _this.buttonHandleKeyUp),\n onBlur: callAllEventHandlers(onBlur, _this.buttonHandleBlur)\n };\n var eventHandlers = rest.disabled ? {} : enabledEventHandlers;\n return _extends({\n type: 'button',\n role: 'button',\n 'aria-label': isOpen ? 'close menu' : 'open menu',\n 'aria-haspopup': true,\n 'data-toggle': true\n }, eventHandlers, {}, rest);\n };\n\n _this.buttonHandleKeyUp = function (event) {\n // Prevent click event from emitting in Firefox\n event.preventDefault();\n };\n\n _this.buttonHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (_this.buttonKeyDownHandlers[key]) {\n _this.buttonKeyDownHandlers[key].call(_assertThisInitialized(_this), event);\n }\n };\n\n _this.buttonHandleClick = function (event) {\n event.preventDefault(); // handle odd case for Safari and Firefox which\n // don't give the button the focus properly.\n\n /* istanbul ignore if (can't reasonably test this) */\n\n if (_this.props.environment.document.activeElement === _this.props.environment.document.body) {\n event.target.focus();\n } // to simplify testing components that use downshift, we'll not wrap this in a setTimeout\n // if the NODE_ENV is test. With the proper build system, this should be dead code eliminated\n // when building for production and should therefore have no impact on production code.\n\n\n if (process.env.NODE_ENV === 'test') {\n _this.toggleMenu({\n type: clickButton\n });\n } else {\n // Ensure that toggle of menu occurs after the potential blur event in iOS\n _this.internalSetTimeout(function () {\n return _this.toggleMenu({\n type: clickButton\n });\n });\n }\n };\n\n _this.buttonHandleBlur = function (event) {\n var blurTarget = event.target; // Save blur target for comparison with activeElement later\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not body element\n\n _this.internalSetTimeout(function () {\n if (!_this.isMouseDown && (_this.props.environment.document.activeElement == null || _this.props.environment.document.activeElement.id !== _this.inputId) && _this.props.environment.document.activeElement !== blurTarget // Do nothing if we refocus the same element again (to solve issue in Safari on iOS)\n ) {\n _this.reset({\n type: blurButton\n });\n }\n });\n };\n\n _this.getLabelProps = function (props) {\n return _extends({\n htmlFor: _this.inputId,\n id: _this.labelId\n }, props);\n };\n\n _this.getInputProps = function (_ref6) {\n if (_ref6 === void 0) {\n _ref6 = {};\n }\n\n var _ref7 = _ref6,\n onKeyDown = _ref7.onKeyDown,\n onBlur = _ref7.onBlur,\n onChange = _ref7.onChange,\n onInput = _ref7.onInput,\n onChangeText = _ref7.onChangeText,\n rest = _objectWithoutPropertiesLoose(_ref7, [\"onKeyDown\", \"onBlur\", \"onChange\", \"onInput\", \"onChangeText\"]);\n\n var onChangeKey;\n var eventHandlers = {};\n /* istanbul ignore next (preact) */\n\n onChangeKey = 'onChange';\n\n var _this$getState6 = _this.getState(),\n inputValue = _this$getState6.inputValue,\n isOpen = _this$getState6.isOpen,\n highlightedIndex = _this$getState6.highlightedIndex;\n\n if (!rest.disabled) {\n var _eventHandlers;\n\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, _this.inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, _this.inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, _this.inputHandleBlur), _eventHandlers);\n }\n /* istanbul ignore if (react-native) */\n\n\n return _extends({\n 'aria-autocomplete': 'list',\n 'aria-activedescendant': isOpen && typeof highlightedIndex === 'number' && highlightedIndex >= 0 ? _this.getItemId(highlightedIndex) : null,\n 'aria-controls': isOpen ? _this.menuId : null,\n 'aria-labelledby': _this.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: inputValue,\n id: _this.inputId\n }, eventHandlers, {}, rest);\n };\n\n _this.inputHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (key && _this.inputKeyDownHandlers[key]) {\n _this.inputKeyDownHandlers[key].call(_assertThisInitialized(_this), event);\n }\n };\n\n _this.inputHandleChange = function (event) {\n _this.internalSetState({\n type: changeInput,\n isOpen: true,\n inputValue: event.target.value,\n highlightedIndex: _this.props.defaultHighlightedIndex\n });\n };\n\n _this.inputHandleBlur = function () {\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not the body element\n _this.internalSetTimeout(function () {\n var downshiftButtonIsActive = _this.props.environment.document && !!_this.props.environment.document.activeElement && !!_this.props.environment.document.activeElement.dataset && _this.props.environment.document.activeElement.dataset.toggle && _this._rootNode && _this._rootNode.contains(_this.props.environment.document.activeElement);\n\n if (!_this.isMouseDown && !downshiftButtonIsActive) {\n _this.reset({\n type: blurInput\n });\n }\n });\n };\n\n _this.menuRef = function (node) {\n _this._menuNode = node;\n };\n\n _this.getMenuProps = function (_ref8, _temp2) {\n var _extends3;\n\n if (_ref8 === void 0) {\n _ref8 = {};\n }\n\n var _ref9 = _temp2 === void 0 ? {} : _temp2,\n _ref9$suppressRefErro = _ref9.suppressRefError,\n suppressRefError = _ref9$suppressRefErro === void 0 ? false : _ref9$suppressRefErro;\n\n var _ref10 = _ref8,\n _ref10$refKey = _ref10.refKey,\n refKey = _ref10$refKey === void 0 ? 'ref' : _ref10$refKey,\n ref = _ref10.ref,\n props = _objectWithoutPropertiesLoose(_ref10, [\"refKey\", \"ref\"]);\n\n _this.getMenuProps.called = true;\n _this.getMenuProps.refKey = refKey;\n _this.getMenuProps.suppressRefError = suppressRefError;\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, _this.menuRef), _extends3.role = 'listbox', _extends3['aria-labelledby'] = props && props['aria-label'] ? null : _this.labelId, _extends3.id = _this.menuId, _extends3), props);\n };\n\n _this.getItemProps = function (_ref11) {\n var _enabledEventHandlers;\n\n if (_ref11 === void 0) {\n _ref11 = {};\n }\n\n var _ref12 = _ref11,\n onMouseMove = _ref12.onMouseMove,\n onMouseDown = _ref12.onMouseDown,\n onClick = _ref12.onClick,\n onPress = _ref12.onPress,\n index = _ref12.index,\n _ref12$item = _ref12.item,\n item = _ref12$item === void 0 ? process.env.NODE_ENV === 'production' ?\n /* istanbul ignore next */\n undefined : requiredProp('getItemProps', 'item') : _ref12$item,\n rest = _objectWithoutPropertiesLoose(_ref12, [\"onMouseMove\", \"onMouseDown\", \"onClick\", \"onPress\", \"index\", \"item\"]);\n\n if (index === undefined) {\n _this.items.push(item);\n\n index = _this.items.indexOf(item);\n } else {\n _this.items[index] = item;\n }\n\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n var enabledEventHandlers = (_enabledEventHandlers = {\n // onMouseMove is used over onMouseEnter here. onMouseMove\n // is only triggered on actual mouse movement while onMouseEnter\n // can fire on DOM changes, interrupting keyboard navigation\n onMouseMove: callAllEventHandlers(onMouseMove, function () {\n if (index === _this.getState().highlightedIndex) {\n return;\n }\n\n _this.setHighlightedIndex(index, {\n type: itemMouseEnter\n }); // We never want to manually scroll when changing state based\n // on `onMouseMove` because we will be moving the element out\n // from under the user which is currently scrolling/moving the\n // cursor\n\n\n _this.avoidScrolling = true;\n\n _this.internalSetTimeout(function () {\n return _this.avoidScrolling = false;\n }, 250);\n }),\n onMouseDown: callAllEventHandlers(onMouseDown, function (event) {\n // This prevents the activeElement from being changed\n // to the item so it can remain with the current activeElement\n // which is a more common use case.\n event.preventDefault();\n })\n }, _enabledEventHandlers[onSelectKey] = callAllEventHandlers(customClickHandler, function () {\n _this.selectItemAtIndex(index, {\n type: clickItem\n });\n }), _enabledEventHandlers); // Passing down the onMouseDown handler to prevent redirect\n // of the activeElement if clicking on disabled items\n\n var eventHandlers = rest.disabled ? {\n onMouseDown: enabledEventHandlers.onMouseDown\n } : enabledEventHandlers;\n return _extends({\n id: _this.getItemId(index),\n role: 'option',\n 'aria-selected': _this.getState().highlightedIndex === index\n }, eventHandlers, {}, rest);\n };\n\n _this.clearItems = function () {\n _this.items = [];\n };\n\n _this.reset = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref13) {\n var selectedItem = _ref13.selectedItem;\n return _extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n inputValue: _this.props.itemToString(selectedItem)\n }, otherStateToSet);\n }, cb);\n };\n\n _this.toggleMenu = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref14) {\n var isOpen = _ref14.isOpen;\n return _extends({\n isOpen: !isOpen\n }, isOpen && {\n highlightedIndex: _this.props.defaultHighlightedIndex\n }, {}, otherStateToSet);\n }, function () {\n var _this$getState7 = _this.getState(),\n isOpen = _this$getState7.isOpen,\n highlightedIndex = _this$getState7.highlightedIndex;\n\n if (isOpen) {\n if (_this.getItemCount() > 0 && typeof highlightedIndex === 'number') {\n _this.setHighlightedIndex(highlightedIndex, otherStateToSet);\n }\n }\n\n cbToCb(cb)();\n });\n };\n\n _this.openMenu = function (cb) {\n _this.internalSetState({\n isOpen: true\n }, cb);\n };\n\n _this.closeMenu = function (cb) {\n _this.internalSetState({\n isOpen: false\n }, cb);\n };\n\n _this.updateStatus = debounce(function () {\n var state = _this.getState();\n\n var item = _this.items[state.highlightedIndex];\n\n var resultCount = _this.getItemCount();\n\n var status = _this.props.getA11yStatusMessage(_extends({\n itemToString: _this.props.itemToString,\n previousResultCount: _this.previousResultCount,\n resultCount: resultCount,\n highlightedItem: item\n }, state));\n\n _this.previousResultCount = resultCount;\n setStatus(status, _this.props.environment.document);\n }, 200); // fancy destructuring + defaults + aliases\n // this basically says each value of state should either be set to\n // the initial value or the default value if the initial value is not provided\n\n var _this$props = _this.props,\n defaultHighlightedIndex = _this$props.defaultHighlightedIndex,\n _this$props$initialHi = _this$props.initialHighlightedIndex,\n _highlightedIndex = _this$props$initialHi === void 0 ? defaultHighlightedIndex : _this$props$initialHi,\n defaultIsOpen = _this$props.defaultIsOpen,\n _this$props$initialIs = _this$props.initialIsOpen,\n _isOpen = _this$props$initialIs === void 0 ? defaultIsOpen : _this$props$initialIs,\n _this$props$initialIn = _this$props.initialInputValue,\n _inputValue = _this$props$initialIn === void 0 ? '' : _this$props$initialIn,\n _this$props$initialSe = _this$props.initialSelectedItem,\n _selectedItem = _this$props$initialSe === void 0 ? null : _this$props$initialSe;\n\n var _state = _this.getState({\n highlightedIndex: _highlightedIndex,\n isOpen: _isOpen,\n inputValue: _inputValue,\n selectedItem: _selectedItem\n });\n\n if (_state.selectedItem != null && _this.props.initialInputValue === undefined) {\n _state.inputValue = _this.props.itemToString(_state.selectedItem);\n }\n\n _this.state = _state;\n return _this;\n }\n\n var _proto = Downshift.prototype;\n /**\n * Clear all running timeouts\n */\n\n _proto.internalClearTimeouts = function internalClearTimeouts() {\n this.timeoutIds.forEach(function (id) {\n clearTimeout(id);\n });\n this.timeoutIds = [];\n }\n /**\n * Gets the state based on internal state or props\n * If a state value is passed via props, then that\n * is the value given, otherwise it's retrieved from\n * stateToMerge\n *\n * @param {Object} stateToMerge defaults to this.state\n * @return {Object} the state\n */\n ;\n\n _proto.getState = function getState$1(stateToMerge) {\n if (stateToMerge === void 0) {\n stateToMerge = this.state;\n }\n\n return getState(stateToMerge, this.props);\n };\n\n _proto.getItemCount = function getItemCount() {\n // things read better this way. They're in priority order:\n // 1. `this.itemCount`\n // 2. `this.props.itemCount`\n // 3. `this.items.length`\n var itemCount = this.items.length;\n\n if (this.itemCount != null) {\n itemCount = this.itemCount;\n } else if (this.props.itemCount !== undefined) {\n itemCount = this.props.itemCount;\n }\n\n return itemCount;\n };\n\n _proto.getItemNodeFromIndex = function getItemNodeFromIndex(index) {\n return this.props.environment.document.getElementById(this.getItemId(index));\n };\n\n _proto.scrollHighlightedItemIntoView = function scrollHighlightedItemIntoView() {\n /* istanbul ignore else (react-native) */\n {\n var node = this.getItemNodeFromIndex(this.getState().highlightedIndex);\n this.props.scrollIntoView(node, this._menuNode);\n }\n };\n\n _proto.moveHighlightedIndex = function moveHighlightedIndex(amount, otherStateToSet) {\n var _this6 = this;\n\n var itemCount = this.getItemCount();\n\n var _this$getState8 = this.getState(),\n highlightedIndex = _this$getState8.highlightedIndex;\n\n if (itemCount > 0) {\n var nextHighlightedIndex = getNextWrappingIndex(amount, highlightedIndex, itemCount, function (index) {\n return _this6.getItemNodeFromIndex(index);\n });\n this.setHighlightedIndex(nextHighlightedIndex, otherStateToSet);\n }\n };\n\n _proto.getStateAndHelpers = function getStateAndHelpers() {\n var _this$getState9 = this.getState(),\n highlightedIndex = _this$getState9.highlightedIndex,\n inputValue = _this$getState9.inputValue,\n selectedItem = _this$getState9.selectedItem,\n isOpen = _this$getState9.isOpen;\n\n var itemToString = this.props.itemToString;\n var id = this.id;\n var getRootProps = this.getRootProps,\n getToggleButtonProps = this.getToggleButtonProps,\n getLabelProps = this.getLabelProps,\n getMenuProps = this.getMenuProps,\n getInputProps = this.getInputProps,\n getItemProps = this.getItemProps,\n openMenu = this.openMenu,\n closeMenu = this.closeMenu,\n toggleMenu = this.toggleMenu,\n selectItem = this.selectItem,\n selectItemAtIndex = this.selectItemAtIndex,\n selectHighlightedItem = this.selectHighlightedItem,\n setHighlightedIndex = this.setHighlightedIndex,\n clearSelection = this.clearSelection,\n clearItems = this.clearItems,\n reset = this.reset,\n setItemCount = this.setItemCount,\n unsetItemCount = this.unsetItemCount,\n setState = this.internalSetState;\n return {\n // prop getters\n getRootProps: getRootProps,\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getItemProps: getItemProps,\n // actions\n reset: reset,\n openMenu: openMenu,\n closeMenu: closeMenu,\n toggleMenu: toggleMenu,\n selectItem: selectItem,\n selectItemAtIndex: selectItemAtIndex,\n selectHighlightedItem: selectHighlightedItem,\n setHighlightedIndex: setHighlightedIndex,\n clearSelection: clearSelection,\n clearItems: clearItems,\n setItemCount: setItemCount,\n unsetItemCount: unsetItemCount,\n setState: setState,\n // props\n itemToString: itemToString,\n // derived\n id: id,\n // state\n highlightedIndex: highlightedIndex,\n inputValue: inputValue,\n isOpen: isOpen,\n selectedItem: selectedItem\n };\n } //////////////////////////// ROOT\n ;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this7 = this;\n /* istanbul ignore if (react-native) */\n\n\n if (process.env.NODE_ENV !== 'production' && !false && this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n /* istanbul ignore if (react-native) */\n\n\n {\n // this.isMouseDown helps us track whether the mouse is currently held down.\n // This is useful when the user clicks on an item in the list, but holds the mouse\n // down long enough for the list to disappear (because the blur event fires on the input)\n // this.isMouseDown is used in the blur handler on the input to determine whether the blur event should\n // trigger hiding the menu.\n var onMouseDown = function onMouseDown() {\n _this7.isMouseDown = true;\n };\n\n var onMouseUp = function onMouseUp(event) {\n _this7.isMouseDown = false; // if the target element or the activeElement is within a downshift node\n // then we don't want to reset downshift\n\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this7._rootNode, _this7._menuNode], _this7.props.environment.document);\n\n if (!contextWithinDownshift && _this7.getState().isOpen) {\n _this7.reset({\n type: mouseUp\n }, function () {\n return _this7.props.onOuterClick(_this7.getStateAndHelpers());\n });\n }\n }; // Touching an element in iOS gives focus and hover states, but touching out of\n // the element will remove hover, and persist the focus state, resulting in the\n // blur event not being triggered.\n // this.isTouchMove helps us track whether the user is tapping or swiping on a touch screen.\n // If the user taps outside of Downshift, the component should be reset,\n // but not if the user is swiping\n\n\n var onTouchStart = function onTouchStart() {\n _this7.isTouchMove = false;\n };\n\n var onTouchMove = function onTouchMove() {\n _this7.isTouchMove = true;\n };\n\n var onTouchEnd = function onTouchEnd(event) {\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this7._rootNode, _this7._menuNode], _this7.props.environment.document, false);\n\n if (!_this7.isTouchMove && !contextWithinDownshift && _this7.getState().isOpen) {\n _this7.reset({\n type: touchEnd\n }, function () {\n return _this7.props.onOuterClick(_this7.getStateAndHelpers());\n });\n }\n };\n\n var environment = this.props.environment;\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n\n this.cleanup = function () {\n _this7.internalClearTimeouts();\n\n _this7.updateStatus.cancel();\n\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n };\n }\n };\n\n _proto.shouldScroll = function shouldScroll(prevState, prevProps) {\n var _ref15 = this.props.highlightedIndex === undefined ? this.getState() : this.props,\n currentHighlightedIndex = _ref15.highlightedIndex;\n\n var _ref16 = prevProps.highlightedIndex === undefined ? prevState : prevProps,\n prevHighlightedIndex = _ref16.highlightedIndex;\n\n var scrollWhenOpen = currentHighlightedIndex && this.getState().isOpen && !prevState.isOpen;\n return scrollWhenOpen || currentHighlightedIndex !== prevHighlightedIndex;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged(prevProps, this.props);\n /* istanbul ignore if (react-native) */\n\n if (this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n }\n\n if (isControlledProp(this.props, 'selectedItem') && this.props.selectedItemChanged(prevProps.selectedItem, this.props.selectedItem)) {\n this.internalSetState({\n type: controlledPropUpdatedSelectedItem,\n inputValue: this.props.itemToString(this.props.selectedItem)\n });\n }\n\n if (!this.avoidScrolling && this.shouldScroll(prevState, prevProps)) {\n this.scrollHighlightedItemIntoView();\n }\n /* istanbul ignore else (react-native) */\n\n\n this.updateStatus();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cleanup(); // avoids memory leak\n };\n\n _proto.render = function render() {\n var children = unwrapArray(this.props.children, noop); // because the items are rerendered every time we call the children\n // we clear this out each render and it will be populated again as\n // getItemProps is called.\n\n this.clearItems(); // we reset this so we know whether the user calls getRootProps during\n // this render. If they do then we don't need to do anything,\n // if they don't then we need to clone the element they return and\n // apply the props for them.\n\n this.getRootProps.called = false;\n this.getRootProps.refKey = undefined;\n this.getRootProps.suppressRefError = undefined; // we do something similar for getMenuProps\n\n this.getMenuProps.called = false;\n this.getMenuProps.refKey = undefined;\n this.getMenuProps.suppressRefError = undefined; // we do something similar for getLabelProps\n\n this.getLabelProps.called = false; // and something similar for getInputProps\n\n this.getInputProps.called = false;\n var element = unwrapArray(children(this.getStateAndHelpers()));\n\n if (!element) {\n return null;\n }\n\n if (this.getRootProps.called || this.props.suppressRefError) {\n if (process.env.NODE_ENV !== 'production' && !this.getRootProps.suppressRefError && !this.props.suppressRefError) {\n validateGetRootPropsCalledCorrectly(element, this.getRootProps);\n }\n\n return element;\n } else if (isDOMElement(element)) {\n // they didn't apply the root props, but we can clone\n // this and apply the props ourselves\n return cloneElement(element, this.getRootProps(getElementProps(element)));\n }\n /* istanbul ignore else */\n\n\n if (process.env.NODE_ENV !== 'production') {\n // they didn't apply the root props, but they need to\n // otherwise we can't query around the autocomplete\n throw new Error('downshift: If you return a non-DOM element, you must apply the getRootProps function');\n }\n /* istanbul ignore next */\n\n\n return undefined;\n };\n\n return Downshift;\n }(Component);\n\n Downshift.defaultProps = {\n defaultHighlightedIndex: null,\n defaultIsOpen: false,\n getA11yStatusMessage: getA11yStatusMessage,\n itemToString: function itemToString(i) {\n if (i == null) {\n return '';\n }\n\n if (process.env.NODE_ENV !== 'production' && isPlainObject(i) && !i.hasOwnProperty('toString')) {\n // eslint-disable-next-line no-console\n console.warn('downshift: An object was passed to the default implementation of `itemToString`. You should probably provide your own `itemToString` implementation. Please refer to the `itemToString` API documentation.', 'The object that was passed:', i);\n }\n\n return String(i);\n },\n onStateChange: noop,\n onInputValueChange: noop,\n onUserAction: noop,\n onChange: noop,\n onSelect: noop,\n onOuterClick: noop,\n selectedItemChanged: function selectedItemChanged(prevItem, item) {\n return prevItem !== item;\n },\n environment: typeof window === 'undefined'\n /* istanbul ignore next (ssr) */\n ? {} : window,\n stateReducer: function stateReducer(state, stateToSet) {\n return stateToSet;\n },\n suppressRefError: false,\n scrollIntoView: scrollIntoView\n };\n Downshift.stateChangeTypes = stateChangeTypes;\n return Downshift;\n}();\n\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\nfunction validateGetMenuPropsCalledCorrectly(node, _ref17) {\n var refKey = _ref17.refKey;\n\n if (!node) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from getMenuProps was not applied correctly on your menu element.\");\n }\n}\n\nfunction validateGetRootPropsCalledCorrectly(element, _ref18) {\n var refKey = _ref18.refKey;\n var refKeySpecified = refKey !== 'ref';\n var isComposite = !isDOMElement(element);\n\n if (isComposite && !refKeySpecified && !isForwardRef(element)) {\n // eslint-disable-next-line no-console\n console.error('downshift: You returned a non-DOM element. You must specify a refKey in getRootProps');\n } else if (!isComposite && refKeySpecified) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You returned a DOM element. You should not specify a refKey in getRootProps. You specified \\\"\" + refKey + \"\\\"\");\n }\n\n if (!isForwardRef(element) && !getElementProps(element)[refKey]) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You must apply the ref prop \\\"\" + refKey + \"\\\" from getRootProps onto your root element.\");\n }\n}\n\nfunction validateControlledUnchanged(prevProps, nextProps) {\n var warningDescription = \"This prop should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled Downshift element for the lifetime of the component. More info: https://github.com/downshift-js/downshift#control-props\";\n ['selectedItem', 'isOpen', 'inputValue', 'highlightedIndex'].forEach(function (propKey) {\n if (prevProps[propKey] !== undefined && nextProps[propKey] === undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the controlled prop \\\"\" + propKey + \"\\\" to be uncontrolled. \" + warningDescription);\n } else if (prevProps[propKey] === undefined && nextProps[propKey] !== undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the uncontrolled prop \\\"\" + propKey + \"\\\" to be controlled. \" + warningDescription);\n }\n });\n}\n\nvar defaultStateValues = {\n highlightedIndex: -1,\n isOpen: false,\n selectedItem: null,\n inputValue: ''\n};\n\nfunction getElementIds(_ref) {\n var id = _ref.id,\n labelId = _ref.labelId,\n menuId = _ref.menuId,\n getItemId = _ref.getItemId,\n toggleButtonId = _ref.toggleButtonId;\n var uniqueId = id === undefined ? \"downshift-\" + generateId() : id;\n return {\n labelId: labelId || uniqueId + \"-label\",\n menuId: menuId || uniqueId + \"-menu\",\n getItemId: getItemId || function (index) {\n return uniqueId + \"-item-\" + index;\n },\n toggleButtonId: toggleButtonId || uniqueId + \"-toggle-button\"\n };\n}\n\nfunction getItemIndex(index, item, items) {\n if (index !== undefined) {\n return index;\n }\n\n if (items.length === 0) {\n return -1;\n }\n\n return items.indexOf(item);\n}\n\nfunction itemToString(item) {\n return item ? String(item) : '';\n}\n\nfunction getPropTypesValidator(caller, propTypes) {\n // istanbul ignore next\n return function (options) {\n if (options === void 0) {\n options = {};\n }\n\n Object.entries(propTypes).forEach(function (_ref2) {\n var key = _ref2[0];\n PropTypes.checkPropTypes(propTypes, options, key, caller.name);\n });\n };\n}\n\nfunction isAcceptedCharacterKey(key) {\n return /^\\S{1}$/.test(key);\n}\n\nfunction capitalizeString(string) {\n return \"\" + string.slice(0, 1).toUpperCase() + string.slice(1);\n}\n\nfunction invokeOnChangeHandler(propKey, props, state, changes) {\n var handler = \"on\" + capitalizeString(propKey) + \"Change\";\n\n if (props[handler] && changes[propKey] !== undefined && changes[propKey] !== state[propKey]) {\n props[handler](changes);\n }\n}\n\nfunction callOnChangeProps(props, state, changes) {\n Object.keys(state).forEach(function (stateKey) {\n invokeOnChangeHandler(stateKey, props, state, changes);\n });\n\n if (props.onStateChange && changes !== undefined) {\n props.onStateChange(changes);\n }\n}\n\nfunction useEnhancedReducer(reducer, initialState, props) {\n var enhancedReducer = useCallback(function (state, action) {\n state = getState(state, action.props);\n var stateReduceLocal = action.props.stateReducer;\n var changes = reducer(state, action);\n var newState = stateReduceLocal(state, _extends({}, action, {\n changes: changes\n }));\n callOnChangeProps(action.props, state, newState);\n return newState;\n }, [reducer]);\n\n var _useReducer = useReducer(enhancedReducer, initialState),\n state = _useReducer[0],\n dispatch = _useReducer[1];\n\n return [getState(state, props), dispatch];\n}\n/**\n * Default state reducer that returns the changes.\n *\n * @param {Object} s state.\n * @param {Object} a action with changes.\n * @returns {Object} changes.\n */\n\n\nfunction stateReducer(s, a) {\n return a.changes;\n}\n/**\n * Returns a message to be added to aria-live region when item is selected.\n *\n * @param {Object} selectionParameters Parameters required to build the message.\n * @returns {string} The a11y message.\n */\n\n\nfunction getA11ySelectionMessage(selectionParameters) {\n var selectedItem = selectionParameters.selectedItem,\n itemToStringLocal = selectionParameters.itemToString;\n return itemToStringLocal(selectedItem) + \" has been selected.\";\n}\n\nvar defaultProps = {\n itemToString: itemToString,\n stateReducer: stateReducer,\n getA11ySelectionMessage: getA11ySelectionMessage,\n scrollIntoView: scrollIntoView,\n circularNavigation: false,\n environment: typeof window === 'undefined'\n /* istanbul ignore next (ssr) */\n ? {} : window\n};\n\nfunction getDefaultValue(props, propKey) {\n var defaultPropKey = \"default\" + capitalizeString(propKey);\n\n if (defaultPropKey in props) {\n return props[defaultPropKey];\n }\n\n return defaultStateValues[propKey];\n}\n\nfunction getInitialValue(props, propKey) {\n if (propKey in props) {\n return props[propKey];\n }\n\n var initialPropKey = \"initial\" + capitalizeString(propKey);\n\n if (initialPropKey in props) {\n return props[initialPropKey];\n }\n\n return getDefaultValue(props, propKey);\n}\n\nfunction getInitialState(props) {\n var selectedItem = getInitialValue(props, 'selectedItem');\n var isOpen = getInitialValue(props, 'isOpen');\n var highlightedIndex = getInitialValue(props, 'highlightedIndex');\n var inputValue = getInitialValue(props, 'inputValue');\n return {\n highlightedIndex: highlightedIndex < 0 && selectedItem ? props.items.indexOf(selectedItem) : highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nfunction getHighlightedIndexOnOpen(props, state, offset, getItemNodeFromIndex) {\n var items = props.items,\n initialHighlightedIndex = props.initialHighlightedIndex,\n defaultHighlightedIndex = props.defaultHighlightedIndex;\n var selectedItem = state.selectedItem,\n highlightedIndex = state.highlightedIndex; // initialHighlightedIndex will give value to highlightedIndex on initial state only.\n\n if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex) {\n return initialHighlightedIndex;\n }\n\n if (defaultHighlightedIndex !== undefined) {\n return defaultHighlightedIndex;\n }\n\n if (selectedItem) {\n if (offset === 0) {\n return items.indexOf(selectedItem);\n }\n\n return getNextWrappingIndex(offset, items.indexOf(selectedItem), items.length, getItemNodeFromIndex, false);\n }\n\n if (offset === 0) {\n return -1;\n }\n\n return offset < 0 ? items.length - 1 : 0;\n}\n\nfunction getItemIndexByCharacterKey(keysSoFar, highlightedIndex, items, itemToStringParam, getItemNodeFromIndex) {\n var lowerCasedItemStrings = items.map(function (item) {\n return itemToStringParam(item).toLowerCase();\n });\n var lowerCasedKeysSoFar = keysSoFar.toLowerCase();\n\n var isValid = function isValid(itemString, index) {\n var element = getItemNodeFromIndex(index);\n return itemString.startsWith(lowerCasedKeysSoFar) && !(element && element.hasAttribute('disabled'));\n };\n\n for (var index = highlightedIndex + 1; index < lowerCasedItemStrings.length; index++) {\n var itemString = lowerCasedItemStrings[index];\n\n if (isValid(itemString, index)) {\n return index;\n }\n }\n\n for (var _index = 0; _index < highlightedIndex; _index++) {\n var _itemString = lowerCasedItemStrings[_index];\n\n if (isValid(_itemString, _index)) {\n return _index;\n }\n }\n\n return highlightedIndex;\n}\n\nvar propTypes = {\n items: PropTypes.array.isRequired,\n itemToString: PropTypes.func,\n getA11yStatusMessage: PropTypes.func,\n getA11ySelectionMessage: PropTypes.func,\n circularNavigation: PropTypes.bool,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n toggleButtonId: PropTypes.string,\n stateReducer: PropTypes.func,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specift if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\n\nfunction getA11yStatusMessage$1(_ref) {\n var isOpen = _ref.isOpen,\n resultCount = _ref.resultCount;\n\n if (!isOpen) {\n return '';\n }\n\n if (!resultCount) {\n return 'No results are available.';\n }\n\n return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter or Space Bar keys to select.\";\n}\n\nvar defaultProps$1 = _extends({}, defaultProps, {\n getA11yStatusMessage: getA11yStatusMessage$1\n});\n\nvar MenuKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_arrow_down__' : 0;\nvar MenuKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_arrow_up__' : 1;\nvar MenuKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_escape__' : 2;\nvar MenuKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_home__' : 3;\nvar MenuKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_end__' : 4;\nvar MenuKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_enter__' : 5;\nvar MenuKeyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_space_button__' : 6;\nvar MenuKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_character__' : 7;\nvar MenuBlur = process.env.NODE_ENV !== \"production\" ? '__menu_blur__' : 8;\nvar MenuMouseLeave = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 9;\nvar ItemMouseMove = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 10;\nvar ItemClick = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 11;\nvar ToggleButtonClick = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 12;\nvar ToggleButtonKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_down__' : 13;\nvar ToggleButtonKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_up__' : 14;\nvar ToggleButtonKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_character__' : 15;\nvar FunctionToggleMenu = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 16;\nvar FunctionOpenMenu = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 17;\nvar FunctionCloseMenu = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 18;\nvar FunctionSetHighlightedIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 19;\nvar FunctionSelectItem = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 20;\nvar FunctionSetInputValue = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 21;\nvar FunctionReset = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 22;\nvar stateChangeTypes$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MenuKeyDownArrowDown: MenuKeyDownArrowDown,\n MenuKeyDownArrowUp: MenuKeyDownArrowUp,\n MenuKeyDownEscape: MenuKeyDownEscape,\n MenuKeyDownHome: MenuKeyDownHome,\n MenuKeyDownEnd: MenuKeyDownEnd,\n MenuKeyDownEnter: MenuKeyDownEnter,\n MenuKeyDownSpaceButton: MenuKeyDownSpaceButton,\n MenuKeyDownCharacter: MenuKeyDownCharacter,\n MenuBlur: MenuBlur,\n MenuMouseLeave: MenuMouseLeave,\n ItemMouseMove: ItemMouseMove,\n ItemClick: ItemClick,\n ToggleButtonClick: ToggleButtonClick,\n ToggleButtonKeyDownArrowDown: ToggleButtonKeyDownArrowDown,\n ToggleButtonKeyDownArrowUp: ToggleButtonKeyDownArrowUp,\n ToggleButtonKeyDownCharacter: ToggleButtonKeyDownCharacter,\n FunctionToggleMenu: FunctionToggleMenu,\n FunctionOpenMenu: FunctionOpenMenu,\n FunctionCloseMenu: FunctionCloseMenu,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex,\n FunctionSelectItem: FunctionSelectItem,\n FunctionSetInputValue: FunctionSetInputValue,\n FunctionReset: FunctionReset\n});\n/* eslint-disable complexity */\n\nfunction downshiftSelectReducer(state, action) {\n var type = action.type,\n props = action.props,\n shiftKey = action.shiftKey;\n var changes;\n\n switch (type) {\n case ItemMouseMove:\n changes = {\n highlightedIndex: action.index\n };\n break;\n\n case ItemClick:\n changes = {\n isOpen: getDefaultValue(props, 'isOpen'),\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n selectedItem: props.items[action.index]\n };\n break;\n\n case ToggleButtonKeyDownCharacter:\n {\n var lowercasedKey = action.key;\n var inputValue = \"\" + state.inputValue + lowercasedKey;\n var itemIndex = getItemIndexByCharacterKey(inputValue, state.selectedItem ? props.items.indexOf(state.selectedItem) : -1, props.items, props.itemToString, action.getItemNodeFromIndex);\n changes = _extends({\n inputValue: inputValue\n }, itemIndex >= 0 && {\n selectedItem: props.items[itemIndex]\n });\n }\n break;\n\n case ToggleButtonKeyDownArrowDown:\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 1, action.getItemNodeFromIndex),\n isOpen: true\n };\n break;\n\n case ToggleButtonKeyDownArrowUp:\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1, action.getItemNodeFromIndex),\n isOpen: true\n };\n break;\n\n case MenuKeyDownEnter:\n case MenuKeyDownSpaceButton:\n changes = _extends({\n isOpen: getDefaultValue(props, 'isOpen'),\n highlightedIndex: getDefaultValue(props, 'highlightedIndex')\n }, state.highlightedIndex >= 0 && {\n selectedItem: props.items[state.highlightedIndex]\n });\n break;\n\n case MenuKeyDownHome:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(1, 0, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case MenuKeyDownEnd:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(-1, props.items.length - 1, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case MenuKeyDownEscape:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n\n case MenuBlur:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n\n case MenuKeyDownCharacter:\n {\n var _lowercasedKey = action.key;\n\n var _inputValue = \"\" + state.inputValue + _lowercasedKey;\n\n var highlightedIndex = getItemIndexByCharacterKey(_inputValue, state.highlightedIndex, props.items, props.itemToString, action.getItemNodeFromIndex);\n changes = _extends({\n inputValue: _inputValue\n }, highlightedIndex >= 0 && {\n highlightedIndex: highlightedIndex\n });\n }\n break;\n\n case MenuKeyDownArrowDown:\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n break;\n\n case MenuKeyDownArrowUp:\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n break;\n\n case MenuMouseLeave:\n changes = {\n highlightedIndex: -1\n };\n break;\n\n case ToggleButtonClick:\n case FunctionToggleMenu:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case FunctionOpenMenu:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case FunctionCloseMenu:\n changes = {\n isOpen: false\n };\n break;\n\n case FunctionSetHighlightedIndex:\n changes = {\n highlightedIndex: action.highlightedIndex\n };\n break;\n\n case FunctionSelectItem:\n changes = {\n selectedItem: action.selectedItem\n };\n break;\n\n case FunctionSetInputValue:\n changes = {\n inputValue: action.inputValue\n };\n break;\n\n case FunctionReset:\n changes = {\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n isOpen: getDefaultValue(props, 'isOpen'),\n selectedItem: getDefaultValue(props, 'selectedItem'),\n inputValue: getDefaultValue(props, 'inputValue')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return _extends({}, state, {}, changes);\n}\n/* eslint-enable complexity */\n\n\nvar validatePropTypes = process.env.NODE_ENV === 'production' ?\n/* istanbul ignore next */\nnull : getPropTypesValidator(useSelect, propTypes);\nuseSelect.stateChangeTypes = stateChangeTypes$1;\n\nfunction useSelect(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n /* istanbul ignore else */\n\n\n if (process.env.NODE_ENV !== 'production') {\n validatePropTypes(userProps);\n } // Props defaults and destructuring.\n\n\n var props = _extends({}, defaultProps$1, {}, userProps);\n\n var items = props.items,\n itemToString = props.itemToString,\n getA11yStatusMessage = props.getA11yStatusMessage,\n getA11ySelectionMessage = props.getA11ySelectionMessage,\n scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n initialIsOpen = props.initialIsOpen,\n defaultIsOpen = props.defaultIsOpen; // Initial state depending on controlled props.\n\n var initialState = getInitialState(props); // Reducer init.\n\n var _useEnhancedReducer = useEnhancedReducer(downshiftSelectReducer, initialState, props),\n _useEnhancedReducer$ = _useEnhancedReducer[0],\n isOpen = _useEnhancedReducer$.isOpen,\n highlightedIndex = _useEnhancedReducer$.highlightedIndex,\n selectedItem = _useEnhancedReducer$.selectedItem,\n inputValue = _useEnhancedReducer$.inputValue,\n dispatchWithoutProps = _useEnhancedReducer[1];\n\n var dispatch = function dispatch(action) {\n return dispatchWithoutProps(_extends({\n props: props\n }, action));\n };\n /* Refs */\n\n\n var toggleButtonRef = useRef(null);\n var menuRef = useRef(null);\n var isInitialMount = useRef(true);\n var shouldScroll = useRef(true);\n var clearTimeout = useRef(null);\n var mouseAndTouchTrackers = useRef({\n isMouseDown: false,\n isTouchMove: false\n });\n var elementIds = useRef(getElementIds(props)); // Some utils.\n\n var getItemNodeFromIndex = function getItemNodeFromIndex(index) {\n return environment.document.getElementById(elementIds.current.getItemId(index));\n };\n /* Effects */\n\n /* Sets a11y status message on changes in isOpen. */\n\n\n useEffect(function () {\n if (isInitialMount.current) {\n return;\n }\n\n setStatus(getA11yStatusMessage({\n highlightedIndex: highlightedIndex,\n inputValue: inputValue,\n isOpen: isOpen,\n itemToString: itemToString,\n resultCount: items.length,\n highlightedItem: items[highlightedIndex],\n selectedItem: selectedItem\n }), environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n /* Sets a11y status message on changes in selectedItem. */\n\n useEffect(function () {\n if (isInitialMount.current) {\n return;\n }\n\n setStatus(getA11ySelectionMessage({\n highlightedIndex: highlightedIndex,\n inputValue: inputValue,\n isOpen: isOpen,\n itemToString: itemToString,\n resultCount: items.length,\n highlightedItem: items[highlightedIndex],\n selectedItem: selectedItem\n }), environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedItem]);\n /* Sets cleanup for the keysSoFar after 500ms. */\n\n useEffect(function () {\n // init the clean function here as we need access to dispatch.\n if (isInitialMount.current) {\n clearTimeout.current = debounce(function (outerDispatch) {\n outerDispatch({\n type: FunctionSetInputValue,\n inputValue: ''\n });\n }, 500);\n }\n\n if (!inputValue) {\n return;\n }\n\n clearTimeout.current(dispatch); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [inputValue]);\n /* Controls the focus on the menu or the toggle button. */\n\n useEffect(function () {\n // Don't focus menu on first render.\n if (isInitialMount.current) {\n // Unless it was initialised as open.\n if ((initialIsOpen || defaultIsOpen || isOpen) && menuRef.current) {\n menuRef.current.focus();\n }\n\n return;\n } // Focus menu on open.\n // istanbul ignore next\n\n\n if (isOpen && menuRef.current) {\n menuRef.current.focus(); // Focus toggleButton on close.\n } else if (environment.document.activeElement === menuRef.current && toggleButtonRef.current) {\n toggleButtonRef.current.focus();\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [isOpen]);\n /* Scroll on highlighted item if change comes from keyboard. */\n\n useEffect(function () {\n if (highlightedIndex < 0 || !isOpen || !items.length) {\n return;\n }\n\n if (shouldScroll.current === false) {\n shouldScroll.current = true;\n } else {\n scrollIntoView(getItemNodeFromIndex(highlightedIndex), menuRef.current);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [highlightedIndex]);\n /* Make initial ref false. */\n\n useEffect(function () {\n isInitialMount.current = false;\n }, []);\n /* Add mouse/touch events to document. */\n\n useEffect(function () {\n // The same strategy for checking if a click occurred inside or outside downsift\n // as in downshift.js.\n var onMouseDown = function onMouseDown() {\n mouseAndTouchTrackers.current.isMouseDown = true;\n };\n\n var onMouseUp = function onMouseUp(event) {\n mouseAndTouchTrackers.current.isMouseDown = false;\n\n if (isOpen && !targetWithinDownshift(event.target, [toggleButtonRef.current, menuRef.current], environment.document)) {\n dispatch({\n type: MenuBlur\n });\n }\n };\n\n var onTouchStart = function onTouchStart() {\n mouseAndTouchTrackers.current.isTouchMove = false;\n };\n\n var onTouchMove = function onTouchMove() {\n mouseAndTouchTrackers.current.isTouchMove = true;\n };\n\n var onTouchEnd = function onTouchEnd(event) {\n if (isOpen && !mouseAndTouchTrackers.current.isTouchMove && !targetWithinDownshift(event.target, [toggleButtonRef.current, menuRef.current], environment.document, false)) {\n dispatch({\n type: MenuBlur\n });\n }\n };\n\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n return function () {\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n };\n }); // Event handler functions.\n\n var toggleButtonKeyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowDown,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowUp,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n }\n };\n var menuKeyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownArrowDown,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownArrowUp,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n },\n Home: function Home(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownHome,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n End: function End(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownEnd,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n Escape: function Escape() {\n dispatch({\n type: MenuKeyDownEscape\n });\n },\n Enter: function Enter(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownEnter\n });\n },\n ' ': function _(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownSpaceButton\n });\n }\n }; // Event handlers.\n\n var menuHandleKeyDown = function menuHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && menuKeyDownHandlers[key]) {\n menuKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: MenuKeyDownCharacter,\n key: key,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n }\n };\n\n var menuHandleBlur = function menuHandleBlur() {\n var shouldBlur = !mouseAndTouchTrackers.current.isMouseDown;\n /* istanbul ignore else */\n\n if (shouldBlur) {\n dispatch({\n type: MenuBlur\n });\n }\n };\n\n var menuHandleMouseLeave = function menuHandleMouseLeave() {\n dispatch({\n type: MenuMouseLeave\n });\n };\n\n var toggleButtonHandleClick = function toggleButtonHandleClick() {\n dispatch({\n type: ToggleButtonClick\n });\n };\n\n var toggleButtonHandleKeyDown = function toggleButtonHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && toggleButtonKeyDownHandlers[key]) {\n toggleButtonKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: ToggleButtonKeyDownCharacter,\n key: key,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n }\n };\n\n var itemHandleMouseMove = function itemHandleMouseMove(index) {\n if (index === highlightedIndex) {\n return;\n }\n\n shouldScroll.current = false;\n dispatch({\n type: ItemMouseMove,\n index: index\n });\n };\n\n var itemHandleClick = function itemHandleClick(index) {\n dispatch({\n type: ItemClick,\n index: index\n });\n }; // Action functions.\n\n\n return {\n // prop getters.\n getToggleButtonProps: function getToggleButtonProps(_ref3) {\n var _extends3;\n\n if (_ref3 === void 0) {\n _ref3 = {};\n }\n\n var _ref4 = _ref3,\n onClick = _ref4.onClick,\n onKeyDown = _ref4.onKeyDown,\n _ref4$refKey = _ref4.refKey,\n refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,\n ref = _ref4.ref,\n rest = _objectWithoutPropertiesLoose(_ref4, [\"onClick\", \"onKeyDown\", \"refKey\", \"ref\"]);\n\n var toggleProps = _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends3.id = elementIds.current.toggleButtonId, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-expanded'] = isOpen, _extends3['aria-labelledby'] = elementIds.current.labelId + \" \" + elementIds.current.toggleButtonId, _extends3), rest);\n\n if (!rest.disabled) {\n toggleProps.onClick = callAllEventHandlers(onClick, toggleButtonHandleClick);\n toggleProps.onKeyDown = callAllEventHandlers(onKeyDown, toggleButtonHandleKeyDown);\n }\n\n return toggleProps;\n },\n getLabelProps: function getLabelProps(labelProps) {\n return _extends({\n id: elementIds.current.labelId,\n htmlFor: elementIds.current.toggleButtonId\n }, labelProps);\n },\n getMenuProps: function getMenuProps(_ref) {\n var _extends2;\n\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n onMouseLeave = _ref2.onMouseLeave,\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n onKeyDown = _ref2.onKeyDown,\n onBlur = _ref2.onBlur,\n ref = _ref2.ref,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"onMouseLeave\", \"refKey\", \"onKeyDown\", \"onBlur\", \"ref\"]);\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = elementIds.current.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = elementIds.current.labelId, _extends2.tabIndex = -1, _extends2), highlightedIndex > -1 && {\n 'aria-activedescendant': elementIds.current.getItemId(highlightedIndex)\n }, {\n onMouseLeave: callAllEventHandlers(onMouseLeave, menuHandleMouseLeave),\n onKeyDown: callAllEventHandlers(onKeyDown, menuHandleKeyDown),\n onBlur: callAllEventHandlers(onBlur, menuHandleBlur)\n }, rest);\n },\n getItemProps: function getItemProps(_ref5) {\n if (_ref5 === void 0) {\n _ref5 = {};\n }\n\n var _ref6 = _ref5,\n item = _ref6.item,\n index = _ref6.index,\n onMouseMove = _ref6.onMouseMove,\n onClick = _ref6.onClick,\n rest = _objectWithoutPropertiesLoose(_ref6, [\"item\", \"index\", \"onMouseMove\", \"onClick\"]);\n\n var itemIndex = getItemIndex(index, item, items);\n\n if (itemIndex < 0) {\n throw new Error('Pass either item or item index in getItemProps!');\n }\n\n var itemProps = _extends({\n role: 'option',\n 'aria-selected': \"\" + (itemIndex === highlightedIndex),\n id: elementIds.current.getItemId(itemIndex)\n }, rest);\n\n if (!rest.disabled) {\n itemProps.onMouseMove = callAllEventHandlers(onMouseMove, function () {\n return itemHandleMouseMove(itemIndex);\n });\n itemProps.onClick = callAllEventHandlers(onClick, function () {\n return itemHandleClick(itemIndex);\n });\n }\n\n return itemProps;\n },\n // actions.\n toggleMenu: function toggleMenu() {\n dispatch({\n type: FunctionToggleMenu\n });\n },\n openMenu: function openMenu() {\n dispatch({\n type: FunctionOpenMenu\n });\n },\n closeMenu: function closeMenu() {\n dispatch({\n type: FunctionCloseMenu\n });\n },\n setHighlightedIndex: function setHighlightedIndex(newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex,\n highlightedIndex: newHighlightedIndex\n });\n },\n selectItem: function selectItem(newSelectedItem) {\n dispatch({\n type: FunctionSelectItem,\n selectedItem: newSelectedItem\n });\n },\n reset: function reset() {\n dispatch({\n type: FunctionReset\n });\n },\n setInputValue: function setInputValue(newInputValue) {\n dispatch({\n type: FunctionSetInputValue,\n inputValue: newInputValue\n });\n },\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nfunction getElementIds$1(_ref) {\n var id = _ref.id,\n inputId = _ref.inputId,\n rest = _objectWithoutPropertiesLoose(_ref, [\"id\", \"inputId\"]);\n\n var uniqueId = id === undefined ? \"downshift-\" + generateId() : id;\n return _extends({\n inputId: inputId || uniqueId + \"-input\"\n }, getElementIds(_extends({\n id: id\n }, rest)));\n}\n\nfunction getInitialState$1(props) {\n var initialState = getInitialState(props);\n var selectedItem = initialState.selectedItem;\n var inputValue = initialState.inputValue;\n\n if (inputValue === '' && selectedItem && props.defaultInputValue === undefined && props.initialInputValue === undefined && props.inputValue === undefined) {\n inputValue = props.itemToString(selectedItem);\n }\n\n return _extends({}, initialState, {\n inputValue: inputValue\n });\n}\n\nvar propTypes$1 = {\n items: PropTypes.array.isRequired,\n itemToString: PropTypes.func,\n getA11yStatusMessage: PropTypes.func,\n getA11ySelectionMessage: PropTypes.func,\n circularNavigation: PropTypes.bool,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n inputValue: PropTypes.string,\n defaultInputValue: PropTypes.string,\n initialInputValue: PropTypes.string,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n inputId: PropTypes.string,\n toggleButtonId: PropTypes.string,\n stateReducer: PropTypes.func,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\n\nvar defaultProps$2 = _extends({}, defaultProps, {\n getA11yStatusMessage: getA11yStatusMessage,\n circularNavigation: true\n});\n\nvar InputKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_down__' : 0;\nvar InputKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_up__' : 1;\nvar InputKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__input_keydown_escape__' : 2;\nvar InputKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__input_keydown_home__' : 3;\nvar InputKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__input_keydown_end__' : 4;\nvar InputKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__input_keydown_enter__' : 5;\nvar InputChange = process.env.NODE_ENV !== \"production\" ? '__input_change__' : 6;\nvar InputBlur = process.env.NODE_ENV !== \"production\" ? '__input_blur__' : 7;\nvar MenuMouseLeave$1 = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 8;\nvar ItemMouseMove$1 = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 9;\nvar ItemClick$1 = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 10;\nvar ToggleButtonClick$1 = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 11;\nvar FunctionToggleMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 12;\nvar FunctionOpenMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 13;\nvar FunctionCloseMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 14;\nvar FunctionSetHighlightedIndex$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 15;\nvar FunctionSelectItem$1 = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 16;\nvar FunctionSetInputValue$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 17;\nvar FunctionReset$1 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 18;\nvar stateChangeTypes$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n InputKeyDownArrowDown: InputKeyDownArrowDown,\n InputKeyDownArrowUp: InputKeyDownArrowUp,\n InputKeyDownEscape: InputKeyDownEscape,\n InputKeyDownHome: InputKeyDownHome,\n InputKeyDownEnd: InputKeyDownEnd,\n InputKeyDownEnter: InputKeyDownEnter,\n InputChange: InputChange,\n InputBlur: InputBlur,\n MenuMouseLeave: MenuMouseLeave$1,\n ItemMouseMove: ItemMouseMove$1,\n ItemClick: ItemClick$1,\n ToggleButtonClick: ToggleButtonClick$1,\n FunctionToggleMenu: FunctionToggleMenu$1,\n FunctionOpenMenu: FunctionOpenMenu$1,\n FunctionCloseMenu: FunctionCloseMenu$1,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex$1,\n FunctionSelectItem: FunctionSelectItem$1,\n FunctionSetInputValue: FunctionSetInputValue$1,\n FunctionReset: FunctionReset$1\n});\n/* eslint-disable complexity */\n\nfunction downshiftUseComboboxReducer(state, action) {\n var type = action.type,\n props = action.props,\n shiftKey = action.shiftKey;\n var changes;\n\n switch (type) {\n case ItemMouseMove$1:\n changes = {\n highlightedIndex: action.index\n };\n break;\n\n case ItemClick$1:\n changes = {\n isOpen: getDefaultValue(props, 'isOpen'),\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n selectedItem: props.items[action.index],\n inputValue: props.itemToString(props.items[action.index])\n };\n break;\n\n case InputKeyDownArrowDown:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 1, action.getItemNodeFromIndex),\n isOpen: true\n };\n }\n\n break;\n\n case InputKeyDownArrowUp:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1, action.getItemNodeFromIndex),\n isOpen: true\n };\n }\n\n break;\n\n case InputKeyDownEnter:\n changes = _extends({}, state.highlightedIndex >= 0 && {\n selectedItem: props.items[state.highlightedIndex],\n isOpen: getDefaultValue(props, 'isOpen'),\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n inputValue: props.itemToString(props.items[state.highlightedIndex])\n });\n break;\n\n case InputKeyDownEscape:\n changes = {\n isOpen: false,\n selectedItem: null,\n highlightedIndex: -1,\n inputValue: ''\n };\n break;\n\n case InputKeyDownHome:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(1, 0, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case InputKeyDownEnd:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(-1, props.items.length - 1, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case InputBlur:\n changes = _extends({\n isOpen: false\n }, state.highlightedIndex >= 0 && {\n selectedItem: props.items[state.highlightedIndex],\n inputValue: props.itemToString(props.items[state.highlightedIndex]),\n highlightedIndex: -1\n });\n break;\n\n case InputChange:\n changes = {\n isOpen: true,\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n inputValue: action.inputValue\n };\n break;\n\n case MenuMouseLeave$1:\n changes = {\n highlightedIndex: -1\n };\n break;\n\n case ToggleButtonClick$1:\n case FunctionToggleMenu$1:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case FunctionOpenMenu$1:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case FunctionCloseMenu$1:\n changes = {\n isOpen: false\n };\n break;\n\n case FunctionSetHighlightedIndex$1:\n changes = {\n highlightedIndex: action.highlightedIndex\n };\n break;\n\n case FunctionSelectItem$1:\n changes = {\n selectedItem: action.selectedItem\n };\n break;\n\n case FunctionSetInputValue$1:\n changes = {\n inputValue: action.inputValue\n };\n break;\n\n case FunctionReset$1:\n changes = {\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n isOpen: getDefaultValue(props, 'isOpen'),\n selectedItem: getDefaultValue(props, 'selectedItem'),\n inputValue: getDefaultValue(props, 'inputValue')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return _extends({}, state, {}, changes);\n}\n/* eslint-enable complexity */\n\n\nvar validatePropTypes$1 = process.env.NODE_ENV === 'production' ?\n/* istanbul ignore next */\nnull : getPropTypesValidator(useCombobox, propTypes$1);\nuseCombobox.stateChangeTypes = stateChangeTypes$2;\n\nfunction useCombobox(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n /* istanbul ignore else */\n\n\n if (process.env.NODE_ENV !== 'production') {\n validatePropTypes$1(userProps);\n } // Props defaults and destructuring.\n\n\n var props = _extends({}, defaultProps$2, {}, userProps);\n\n var initialIsOpen = props.initialIsOpen,\n defaultIsOpen = props.defaultIsOpen,\n items = props.items,\n scrollIntoView = props.scrollIntoView,\n getA11ySelectionMessage = props.getA11ySelectionMessage,\n getA11yStatusMessage = props.getA11yStatusMessage,\n itemToString = props.itemToString,\n environment = props.environment; // Initial state depending on controlled props.\n\n var initialState = getInitialState$1(props); // Reducer init.\n\n var _useEnhancedReducer = useEnhancedReducer(downshiftUseComboboxReducer, initialState, props),\n _useEnhancedReducer$ = _useEnhancedReducer[0],\n isOpen = _useEnhancedReducer$.isOpen,\n highlightedIndex = _useEnhancedReducer$.highlightedIndex,\n selectedItem = _useEnhancedReducer$.selectedItem,\n inputValue = _useEnhancedReducer$.inputValue,\n dispatchWithoutProps = _useEnhancedReducer[1];\n\n var dispatch = function dispatch(action) {\n return dispatchWithoutProps(_extends({\n props: props\n }, action));\n };\n /* Refs */\n\n\n var menuRef = useRef(null);\n var itemRefs = useRef();\n var inputRef = useRef(null);\n var toggleButtonRef = useRef(null);\n var comboboxRef = useRef(null);\n itemRefs.current = [];\n var shouldScroll = useRef(true);\n var isInitialMount = useRef(true);\n var mouseAndTouchTrackers = useRef({\n isMouseDown: false,\n isTouchMove: false\n });\n var elementIds = useRef(getElementIds$1(props));\n /* Effects */\n\n /* Sets a11y status message on changes in isOpen. */\n\n useEffect(function () {\n if (isInitialMount.current) {\n return;\n }\n\n setStatus(getA11yStatusMessage({\n highlightedIndex: highlightedIndex,\n inputValue: inputValue,\n isOpen: isOpen,\n itemToString: itemToString,\n resultCount: items.length,\n highlightedItem: items[highlightedIndex],\n selectedItem: selectedItem\n }), environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n /* Sets a11y status message on changes in selectedItem. */\n\n useEffect(function () {\n if (isInitialMount.current) {\n return;\n }\n\n setStatus(getA11ySelectionMessage({\n highlightedIndex: highlightedIndex,\n inputValue: inputValue,\n isOpen: isOpen,\n itemToString: itemToString,\n resultCount: items.length,\n highlightedItem: items[highlightedIndex],\n selectedItem: selectedItem\n }), environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedItem]);\n /* Scroll on highlighted item if change comes from keyboard. */\n\n useEffect(function () {\n if (highlightedIndex < 0 || !isOpen || !itemRefs.current.length) {\n return;\n }\n\n if (shouldScroll.current === false) {\n shouldScroll.current = true;\n } else {\n scrollIntoView(itemRefs.current[highlightedIndex], menuRef.current);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [highlightedIndex]);\n /* Controls the focus on the menu or the toggle button. */\n\n useEffect(function () {\n // Don't focus menu on first render.\n if (isInitialMount.current) {\n // Unless it was initialised as open.\n if (initialIsOpen || defaultIsOpen || isOpen) {\n if (inputRef.current) {\n inputRef.current.focus();\n }\n }\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [isOpen]);\n /* Make initial ref false. */\n\n useEffect(function () {\n isInitialMount.current = false;\n }, []);\n /* Add mouse/touch events to document. */\n\n useEffect(function () {\n // The same strategy for checking if a click occurred inside or outside downsift\n // as in downshift.js.\n var onMouseDown = function onMouseDown() {\n mouseAndTouchTrackers.current.isMouseDown = true;\n };\n\n var onMouseUp = function onMouseUp(event) {\n mouseAndTouchTrackers.current.isMouseDown = false;\n\n if (isOpen && !targetWithinDownshift(event.target, [comboboxRef.current, menuRef.current, toggleButtonRef.current], environment.document)) {\n dispatch({\n type: InputBlur\n });\n }\n };\n\n var onTouchStart = function onTouchStart() {\n mouseAndTouchTrackers.current.isTouchMove = false;\n };\n\n var onTouchMove = function onTouchMove() {\n mouseAndTouchTrackers.current.isTouchMove = true;\n };\n\n var onTouchEnd = function onTouchEnd(event) {\n if (isOpen && !mouseAndTouchTrackers.current.isTouchMove && !targetWithinDownshift(event.target, [comboboxRef.current, menuRef.current, toggleButtonRef.current], environment.document, false)) {\n dispatch({\n type: InputBlur\n });\n }\n };\n\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n return function () {\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n };\n });\n\n var getItemNodeFromIndex = function getItemNodeFromIndex(index) {\n return itemRefs.current[index];\n };\n /* Event handler functions */\n\n\n var inputKeyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowDown,\n shiftKey: event.shiftKey,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowUp,\n shiftKey: event.shiftKey,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n Home: function Home(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownHome,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n End: function End(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnd,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n Escape: function Escape() {\n dispatch({\n type: InputKeyDownEscape\n });\n },\n Enter: function Enter(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnter,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n }\n }; // Event handlers.\n\n var inputHandleKeyDown = function inputHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && inputKeyDownHandlers[key]) {\n inputKeyDownHandlers[key](event);\n }\n };\n\n var inputHandleChange = function inputHandleChange(event) {\n dispatch({\n type: InputChange,\n inputValue: event.target.value\n });\n };\n\n var inputHandleBlur = function inputHandleBlur() {\n /* istanbul ignore else */\n if (!mouseAndTouchTrackers.current.isMouseDown) {\n dispatch({\n type: InputBlur\n });\n }\n };\n\n var menuHandleMouseLeave = function menuHandleMouseLeave() {\n dispatch({\n type: MenuMouseLeave$1\n });\n };\n\n var itemHandleMouseMove = function itemHandleMouseMove(index) {\n if (index === highlightedIndex) {\n return;\n }\n\n shouldScroll.current = false;\n dispatch({\n type: ItemMouseMove$1,\n index: index\n });\n };\n\n var itemHandleClick = function itemHandleClick(index) {\n dispatch({\n type: ItemClick$1,\n index: index\n });\n };\n\n var toggleButtonHandleClick = function toggleButtonHandleClick() {\n if (!isOpen && inputRef.current) {\n inputRef.current.focus();\n }\n\n dispatch({\n type: ToggleButtonClick$1\n });\n }; // returns\n\n\n return {\n // prop getters.\n getItemProps: function getItemProps(_ref3) {\n var _extends3, _ref5;\n\n if (_ref3 === void 0) {\n _ref3 = {};\n }\n\n var _ref4 = _ref3,\n item = _ref4.item,\n index = _ref4.index,\n _ref4$refKey = _ref4.refKey,\n refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,\n ref = _ref4.ref,\n onMouseMove = _ref4.onMouseMove,\n onClick = _ref4.onClick,\n onPress = _ref4.onPress,\n rest = _objectWithoutPropertiesLoose(_ref4, [\"item\", \"index\", \"refKey\", \"ref\", \"onMouseMove\", \"onClick\", \"onPress\"]);\n\n var itemIndex = getItemIndex(index, item, items);\n\n if (itemIndex < 0) {\n throw new Error('Pass either item or item index in getItemProps!');\n }\n\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current.push(itemNode);\n }\n }), _extends3.role = 'option', _extends3['aria-selected'] = \"\" + (itemIndex === highlightedIndex), _extends3.id = elementIds.current.getItemId(itemIndex), _extends3), !rest.disabled && (_ref5 = {\n onMouseMove: callAllEventHandlers(onMouseMove, function () {\n itemHandleMouseMove(itemIndex);\n })\n }, _ref5[onSelectKey] = callAllEventHandlers(customClickHandler, function () {\n itemHandleClick(itemIndex);\n }), _ref5), {}, rest);\n },\n getLabelProps: function getLabelProps(labelProps) {\n return _extends({\n id: elementIds.current.labelId,\n htmlFor: elementIds.current.inputId\n }, labelProps);\n },\n getMenuProps: function getMenuProps(_ref) {\n var _extends2;\n\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n onMouseLeave = _ref2.onMouseLeave,\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n ref = _ref2.ref,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"onMouseLeave\", \"refKey\", \"ref\"]);\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = elementIds.current.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = elementIds.current.labelId, _extends2.onMouseLeave = callAllEventHandlers(onMouseLeave, menuHandleMouseLeave), _extends2), rest);\n },\n getInputProps: function getInputProps(_ref8) {\n var _extends5;\n\n if (_ref8 === void 0) {\n _ref8 = {};\n }\n\n var _ref9 = _ref8,\n onKeyDown = _ref9.onKeyDown,\n onChange = _ref9.onChange,\n onInput = _ref9.onInput,\n onBlur = _ref9.onBlur,\n onChangeText = _ref9.onChangeText,\n _ref9$refKey = _ref9.refKey,\n refKey = _ref9$refKey === void 0 ? 'ref' : _ref9$refKey,\n ref = _ref9.ref,\n rest = _objectWithoutPropertiesLoose(_ref9, [\"onKeyDown\", \"onChange\", \"onInput\", \"onBlur\", \"onChangeText\", \"refKey\", \"ref\"]);\n /* istanbul ignore next (preact) */\n\n\n var onChangeKey = 'onChange';\n var eventHandlers = {};\n\n if (!rest.disabled) {\n var _eventHandlers;\n\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, inputHandleBlur), _eventHandlers);\n }\n /* istanbul ignore if (react-native) */\n\n\n return _extends((_extends5 = {}, _extends5[refKey] = handleRefs(ref, function (inputNode) {\n inputRef.current = inputNode;\n }), _extends5.id = elementIds.current.inputId, _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.current.menuId, _extends5), highlightedIndex > -1 && {\n 'aria-activedescendant': elementIds.current.getItemId(highlightedIndex)\n }, {\n 'aria-labelledby': elementIds.current.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: inputValue\n }, eventHandlers, {}, rest);\n },\n getComboboxProps: function getComboboxProps(_ref10) {\n var _extends6;\n\n if (_ref10 === void 0) {\n _ref10 = {};\n }\n\n var _ref11 = _ref10,\n _ref11$refKey = _ref11.refKey,\n refKey = _ref11$refKey === void 0 ? 'ref' : _ref11$refKey,\n ref = _ref11.ref,\n rest = _objectWithoutPropertiesLoose(_ref11, [\"refKey\", \"ref\"]);\n\n return _extends((_extends6 = {}, _extends6[refKey] = handleRefs(ref, function (comboboxNode) {\n comboboxRef.current = comboboxNode;\n }), _extends6.role = 'combobox', _extends6['aria-haspopup'] = 'listbox', _extends6['aria-owns'] = elementIds.current.menuId, _extends6['aria-expanded'] = isOpen, _extends6), rest);\n },\n getToggleButtonProps: function getToggleButtonProps(_ref6) {\n var _extends4;\n\n if (_ref6 === void 0) {\n _ref6 = {};\n }\n\n var _ref7 = _ref6,\n onClick = _ref7.onClick,\n onPress = _ref7.onPress,\n _ref7$refKey = _ref7.refKey,\n refKey = _ref7$refKey === void 0 ? 'ref' : _ref7$refKey,\n ref = _ref7.ref,\n rest = _objectWithoutPropertiesLoose(_ref7, [\"onClick\", \"onPress\", \"refKey\", \"ref\"]);\n\n return _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends4.id = elementIds.current.toggleButtonId, _extends4.tabIndex = -1, _extends4), !rest.disabled && _extends({}, {\n onClick: callAllEventHandlers(onClick, toggleButtonHandleClick)\n }), {}, rest);\n },\n // actions.\n toggleMenu: function toggleMenu() {\n dispatch({\n type: FunctionToggleMenu$1\n });\n },\n openMenu: function openMenu() {\n dispatch({\n type: FunctionOpenMenu$1\n });\n },\n closeMenu: function closeMenu() {\n dispatch({\n type: FunctionCloseMenu$1\n });\n },\n setHighlightedIndex: function setHighlightedIndex(newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex$1,\n highlightedIndex: newHighlightedIndex\n });\n },\n setInputValue: function setInputValue(newInputValue) {\n dispatch({\n type: FunctionSetInputValue$1,\n inputValue: newInputValue\n });\n },\n selectItem: function selectItem(newSelectedItem) {\n dispatch({\n type: FunctionSelectItem$1,\n selectedItem: newSelectedItem\n });\n },\n reset: function reset() {\n dispatch({\n type: FunctionReset$1\n });\n },\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nexport default Downshift;\nexport { resetIdCounter, useCombobox, useSelect };","import bowser, { Parser } from 'bowser';\n\nexport enum PlatformType {\n Desktop = 'desktop',\n Mobile = 'mobile',\n Tablet = 'tablet',\n}\n\nexport interface Browser extends Parser.ParsedResult {\n isWin: boolean;\n isMac: boolean;\n metaKey: string;\n optionKey: string;\n shiftKey: string;\n}\nfunction getUA() {\n return navigator.userAgent;\n}\n\nexport default function getBrowser() {\n const ua = getUA();\n const originBrowser = bowser.parse(ua);\n const browser = Object.assign({}, originBrowser) as Browser;\n const osName = browser.os.name ? browser.os.name.toLowerCase() : 'mac';\n\n browser.isMac = osName.includes('mac');\n browser.isWin = !browser.isMac;\n browser.metaKey = browser.isMac ? '⌘' : 'Ctrl';\n browser.optionKey = browser.isMac ? '⌥' : 'Alt';\n browser.shiftKey = browser.isMac ? '⇧' : 'Shift';\n\n return browser;\n}\n\nexport function getIsfromApp() {\n const ua = getUA();\n return ua.includes('MubuApp');\n}\n\nexport function isWeixin() {\n const ua = getUA();\n return /micromessenger/i.test(ua);\n}\n\nexport function isMobile() {\n const browser = getBrowser();\n return browser.platform.type === PlatformType.Mobile;\n}\n\nexport function getPlatform() {\n let platform = 'web';\n const ua = getUA();\n if (getIsfromApp()) {\n if (/Android/i.test(ua)) {\n platform = 'app_android';\n } else {\n platform = 'app_ios';\n }\n } else if (isWeixin()) {\n platform = 'web_weixin';\n } else if (isMobile()) {\n platform = 'web_mobile';\n }\n return platform;\n}\n","/* eslint-disable @typescript-eslint/camelcase */\n/*\n * 记录触发注册的源头\n * 记录在sessionStorage\n *\n\n * */\nexport function markRegistSource(\n registSourcePage: string,\n registSourceButton?: string,\n registSourceId?: string\n) {\n clearRegistSource();\n sessionStorage.setItem('regist_source_page', registSourcePage);\n registSourceButton &&\n sessionStorage.setItem('regist_source_button', registSourceButton);\n registSourceId && sessionStorage.setItem('regist_source_id', registSourceId);\n}\n\n/*\n * 获取tea数据对象\n *\n * */\nexport function getRegistSource() {\n const regist_source_page =\n sessionStorage.getItem('regist_source_page') || 'register_page';\n const regist_source_button = sessionStorage.getItem('regist_source_button');\n const regist_source_id = sessionStorage.getItem('regist_source_id');\n\n return {\n regist_source_button,\n regist_source_id,\n regist_source_page,\n };\n}\n\n/*\n * 清除注册源头数据\n *\n * */\nexport function clearRegistSource() {\n sessionStorage.removeItem('regist_source_page');\n sessionStorage.removeItem('regist_source_button');\n sessionStorage.removeItem('regist_source_id');\n}\n","import React from 'react';\nimport classnames from 'classnames';\n\nimport './style.css';\n\nexport interface MenuIconProps {\n onClick: () => void;\n active: boolean;\n}\n\nexport default function MenuIcon(props: MenuIconProps) {\n const { active, onClick } = props;\n return (\n \n );\n}\n\nMenuIcon.defaultProps = {\n active: false,\n onClick: () => {},\n};\n","import MenuIcon from './MenuIcon';\n\nexport default MenuIcon;\n","import classnames from 'classnames';\nimport React from 'react';\n\nimport MenuIcon from '../MenuIcon';\n\nimport './style.css';\n\n// 因为考虑SEO问题,不使用createPortal,直接考虑渲染模板出来\n\nconst placements = {\n right: 'right',\n left: 'left',\n};\n\nexport interface DrawerProps {\n children: React.ReactNode;\n active: boolean;\n onMaskClick?: () => void;\n placement?: typeof placements;\n}\n\nfunction Drawer(props: DrawerProps) {\n const { active, onMaskClick, children, placement } = props;\n\n function handleMaskClick() {\n if (typeof onMaskClick === 'function') {\n onMaskClick();\n }\n }\n\n return (\n <>\n \n
\n
\n \n
\n {children}\n
\n \n );\n}\n\nDrawer.defaultProps = {\n onMaskClick: () => {},\n active: false,\n placement: placements.right,\n};\n\nexport default Drawer;\n","import Drawer from './Drawer';\n\nexport default Drawer;\n","import { Button } from '@transno/mt-design';\nimport { Link } from 'gatsby';\nimport React from 'react';\n/** @jsx jsx */\nimport { jsx } from 'theme-ui';\n\nimport { NavList } from '$interface';\n\nimport { host } from '../../utils';\nimport { markRegistSource } from '../../utils/registSourceMarker';\nimport Drawer from '../Drawer';\nimport MenuIcon from '../MenuIcon';\n\nimport LogoMobileIcon from '../../../assets/logo_mobile.inline.svg';\nimport LogoWebIcon from '../../../assets/logo_web.inline.svg';\nimport '../../styles/headerNav.css';\n\nexport interface PCHeaderNavProps {\n navList: NavList[];\n Logo: React.ReactNode;\n}\n\nexport class PCHeaderNav extends React.Component {\n render() {\n const { navList, Logo } = this.props;\n return (\n \n \n {Logo || }\n \n 幕布帮助中心\n \n
\n {navList.map((nav) => {\n if (nav.path === 'https://mubu.com/app') {\n return (\n {\n markRegistSource('help_page', 'register');\n location.href = nav.path;\n }}\n sx={{\n py: '6px',\n px: '17px',\n textAlign: 'center',\n borderRadius: 2,\n marginRight: '36px',\n color: '#26282a',\n bg: '#fff',\n fontSize: 1,\n cursor: 'pointer',\n '&:hover': { color: '#26282a' },\n }}>\n {nav.label}\n \n );\n }\n return (\n \n {nav.label}\n \n );\n })}\n
\n \n );\n }\n}\n\nexport interface MobileHeaderNavProps {\n listRoute: NavList;\n navList: NavList[];\n}\n\nexport interface MobileHeaderNavState {\n active: boolean;\n}\n\nexport class MobileHeaderNav extends React.Component<\n MobileHeaderNavProps,\n MobileHeaderNavState\n> {\n constructor(props: MobileHeaderNavProps) {\n super(props);\n this.state = {\n active: false,\n };\n }\n\n setActive = (isActive: boolean) => {\n this.setState({\n active: isActive,\n });\n };\n\n handleMaskClick = () => {\n this.setActive(false);\n };\n\n handleIconClick = () => {\n this.setActive(true);\n };\n\n onNavClick = () => {\n this.setActive(false);\n };\n\n render() {\n const { active } = this.state;\n const { navList, listRoute } = this.props;\n return (\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n
\n \n );\n }\n}\n","import { useCombobox } from 'downshift';\nimport Fuse from 'fuse.js';\nimport { graphql, Link, navigate, useStaticQuery } from 'gatsby';\nimport React from 'react';\n/** @jsx jsx */\nimport { jsx } from 'theme-ui';\n\nimport { NavList } from '$interface';\n\nimport { host, isMobile } from '../utils';\nimport getBrowser, { getPlatform } from '../utils/browser';\nimport { MobileHeaderNav, PCHeaderNav } from './HeaderNav';\n\nimport LogoNotFoundIcon from '../../assets/logo_not_found.inline.svg';\nimport SearchIcon from '../../assets/search.inline.svg';\nimport '../styles/layout.css';\n\nfunction hightlightWord(\n target: string,\n highlightStr: string,\n cb: (res: RegExpExecArray | null) => void\n) {\n const reg = new RegExp(target.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'gi');\n let res = null;\n while ((res = reg.exec(highlightStr))) {\n cb(res);\n }\n cb(null);\n}\n\nfunction SearchInput() {\n const [text, setText] = React.useState('');\n\n const data = useStaticQuery(graphql`\n query LayoutQuery {\n articles: allMarkdownRemark {\n nodes {\n id\n fields {\n slug\n collection {\n icon\n id\n title\n }\n }\n frontmatter {\n title\n }\n headings {\n # depth\n value\n }\n html\n excerpt\n }\n }\n site {\n siteMetadata {\n title\n texts {\n searchPlaceholderText\n }\n }\n }\n }\n `);\n\n const items = data.articles.nodes;\n const fuse = React.useMemo(\n () =>\n new Fuse(items, {\n shouldSort: true,\n tokenize: true,\n threshold: 0.6,\n location: 0,\n distance: 100,\n isCaseSensitive: true,\n maxPatternLength: 32,\n minMatchCharLength: 1,\n keys: ['frontmatter.title', 'html'],\n }),\n [items]\n );\n\n const [inputItems, setInputItems] = React.useState([]);\n const [inputValue, setInputValue] = React.useState('');\n const fuseSearch = (value: string) => {\n return fuse.search(value).filter((node) => {\n if (node.frontmatter && node.frontmatter.title) {\n const titleMatch = new RegExp(value, 'i').test(node.frontmatter.title);\n if (titleMatch) {\n return true; // 匹配到了 title\n }\n }\n\n // 如果 title 没有匹配成功,尝试匹配 html\n if (node.html) {\n const html = node.html.replace(/<[^>]+>/g, '');\n const htmlMatch = new RegExp(value, 'i').test(html);\n if (htmlMatch) {\n return true; // 匹配到了 html\n }\n }\n\n return false; // 没有匹配到 title 或 html\n });\n };\n\n const combobox = useCombobox({\n items: inputItems.filter((node) => node.fields && node.fields.collection),\n onInputValueChange: ({ inputValue }) => {\n const value = inputValue || '';\n setInputItems(fuseSearch(value));\n setInputValue(value);\n },\n itemToString: (node) =>\n (node && node.frontmatter && node.frontmatter.title) || '',\n onSelectedItemChange: ({ selectedItem }) => {\n if (selectedItem && selectedItem.fields && selectedItem.fields.slug) {\n navigate(selectedItem.fields.slug);\n setInputValue('');\n }\n },\n });\n\n const searchResult = inputItems.filter(\n (node) => node.fields && node.fields.collection\n );\n\n const renderResult = () =>\n searchResult.map((node, index) => {\n if (!inputValue) return [];\n const jsxArr: JSX.Element[] = [];\n const str = node.frontmatter && node.frontmatter.title;\n // 过滤掉富文本中的 html 标签\n const htmlContent = node.html && node.html.replace(/<[^>]+>/g, '');\n if (str) {\n let lastIndex = 0;\n hightlightWord(inputValue, str, (res) => {\n if (res) {\n jsxArr.push(<>{str.slice(lastIndex, res.index)});\n jsxArr.push(\n {str.slice(res.index, res.index + inputValue.length)}\n );\n lastIndex = res.index + inputValue.length;\n }\n });\n }\n\n // 如果存在 htmlContent,则处理 htmlContent 的匹配和高亮显示\n if (htmlContent) {\n let lastIndex = 0;\n const placeholder = jsxArr.length ? '' : '...';\n hightlightWord(inputValue, htmlContent, (res) => {\n if (res) {\n // 匹配到关键词,将匹配内容包裹在
中\n jsxArr.push(\n <>\n {placeholder}\n {htmlContent.slice(\n res.index == lastIndex ? 0 : res.index - 3,\n res.index\n )}\n \n {htmlContent.slice(res.index, res.index + inputValue.length)}\n \n \n );\n lastIndex = res.index + inputValue.length;\n } else {\n // 没有匹配到关键词的部分\n jsxArr.push(<>{htmlContent.slice(lastIndex)});\n }\n });\n }\n const result = [\n \n {node.fields &&\n node.fields.collection &&\n node.fields.collection.title}\n ,\n \n {jsxArr}\n
,\n ];\n return (\n \n \n
\n \n {result}\n \n
\n \n \n );\n });\n\n const renderSearchResult = () => {\n const isOpen = combobox.isOpen;\n return (\n isOpen &&\n (searchResult.length ? (\n
\n {renderResult()}\n \n 没有找到解决方案?\n \n 点此提交反馈\n \n
\n \n ) : inputValue.length ? (\n \n 没有找到解决方案?\n \n 点此提交反馈\n \n \n ) : null)\n );\n };\n\n const SearchIconContainerUI = {\n width: isMobile() ? '32px' : '',\n top: isMobile() ? '4px' : '',\n left: isMobile() ? '10px' : '',\n height: isMobile() ? '32px' : '',\n };\n\n const SearchIconUI = {\n width: isMobile() ? '32px' : '36px',\n color: '#828A97',\n height: isMobile() ? '32px' : '36px',\n };\n\n const SearchInputUI = {\n padding: isMobile() && '10px 20px 10px 55px',\n fontSize: isMobile() && '14px',\n };\n\n return (\n
\n \n \n \n setText(event.target.value)}\n placeholder={\n data.site &&\n data.site.siteMetadata &&\n data.site.siteMetadata.texts &&\n data.site.siteMetadata.texts.searchPlaceholderText\n }\n autoComplete=\"off\"\n className=\"search-input\"\n sx={SearchInputUI}\n {...combobox.getInputProps({\n id: 'search',\n onKeyDown: (event) => {\n if (event.key === 'Enter') {\n // event.nativeEvent.preventDownshiftDefault = true;\n const selectedIndex = combobox.highlightedIndex;\n if (selectedIndex !== -1) {\n const selectedItem = searchResult[selectedIndex];\n if (\n selectedItem &&\n selectedItem.fields &&\n selectedItem.fields.slug\n ) {\n navigate(selectedItem.fields.slug);\n setInputValue('');\n }\n }\n }\n },\n })}\n />\n
\n {renderSearchResult()}\n
\n
\n );\n}\n\nconst navList: NavList[] = [\n {\n path: host + '/',\n label: '首页',\n },\n {\n path: host + '/about-pro',\n label: '高级版',\n },\n {\n path: host + '/apps',\n label: '下载',\n },\n {\n path: host + '/explore',\n label: '精选',\n },\n {\n path: host + '/update_log',\n label: '新功能',\n },\n {\n path: host + '/help',\n label: '帮助',\n },\n];\n\nconst pcListRoute: NavList = {\n path: host + '/app',\n label: '进入幕布',\n};\n\nconst mobileListRoute: NavList = {\n path: host + '/list',\n label: '进入幕布',\n};\n\nexport interface LayoutProps {\n isIndexLayout?: boolean;\n description?: string;\n footerRender?: React.ReactNode;\n ProblemListRender?: React.ReactNode;\n indexBgImg?: { src: string };\n isNotFound?: boolean;\n title: string;\n}\nexport interface LayoutState {\n showLoading: boolean;\n isMobile: boolean;\n}\n\nclass Layout extends React.Component {\n constructor(props: LayoutProps) {\n super(props);\n\n this.state = {\n showLoading: true,\n isMobile: !!isMobile(),\n };\n\n this.setHtmlOverflow(true);\n }\n\n componentDidMount() {\n const platform = getPlatform();\n const browser = getBrowser();\n const teaCustom = { platform, device_type: browser.platform.type };\n window.collectEvent('config', {\n ...teaCustom,\n });\n this.setState({\n showLoading: false,\n });\n this.setHtmlOverflow(false);\n }\n\n render() {\n const {\n children,\n description,\n footerRender,\n ProblemListRender,\n indexBgImg,\n isIndexLayout,\n isNotFound,\n } = this.props;\n const { showLoading } = this.state;\n\n return (\n \n {/* {showLoading && ( */}\n {\n /** html.js 文件中的逻辑依赖 layout-loading、dot-box 的\n className,修改时需要同步修改 */\n \n
\n
\n
\n
\n
\n
\n
\n \n }\n {/* )} */}\n {isMobile() ? (\n \n ) : (\n : null}\n />\n )}\n {!isNotFound && (\n \n \n {indexBgImg && (\n {}}\n />\n )}\n \n \n

{description}

\n \n \n
\n
\n )}\n {\n /** gatsby-browser.js 文件中的逻辑依赖 scroll-anchor 的\n className,修改时需要同步修改 */\n \n \n {children}\n \n \n }\n
{ProblemListRender}
\n
{footerRender}
\n \n );\n }\n\n setHtmlOverflow(isHidden: boolean) {\n if (typeof document !== 'undefined') {\n const htmlEle = document.querySelector('html');\n if (htmlEle) {\n htmlEle.setAttribute(\n 'style',\n `overflow: ${isHidden ? 'hidden' : 'auto'}`\n );\n }\n }\n }\n}\n\nexport default Layout;\n","exports.__esModule = true;\nexports.warn = exports.requestAnimationFrame = exports.reducePropsToState = exports.mapStateOnServer = exports.handleClientStateChange = exports.convertReactPropstoHtmlAttributes = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _objectAssign = require(\"object-assign\");\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar _HelmetConstants = require(\"./HelmetConstants.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, _HelmetConstants.TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[_HelmetConstants.TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[_HelmetConstants.TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase(); // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n } // Special case for innerHTML which doesn't work lowercased\n\n\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attributeKey === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT || attributeKey === _HelmetConstants.TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n }); // Update seen tags with tags from this instance\n\n var keys = Object.keys(instanceSeenTags);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = (0, _objectAssign2.default)({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([_HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n bodyAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.LINK, [_HelmetConstants.TAG_PROPERTIES.REL, _HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.META, [_HelmetConstants.TAG_PROPERTIES.NAME, _HelmetConstants.TAG_PROPERTIES.CHARSET, _HelmetConstants.TAG_PROPERTIES.HTTPEQUIV, _HelmetConstants.TAG_PROPERTIES.PROPERTY, _HelmetConstants.TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.NOSCRIPT, [_HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.SCRIPT, [_HelmetConstants.TAG_PROPERTIES.SRC, _HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.STYLE, [_HelmetConstants.TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n updateAttributes(_HelmetConstants.TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(_HelmetConstants.TAG_NAMES.HTML, htmlAttributes);\n updateTitle(title, titleAttributes);\n var tagUpdates = {\n baseTag: updateTags(_HelmetConstants.TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(_HelmetConstants.TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(_HelmetConstants.TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(_HelmetConstants.TAG_NAMES.STYLE, styleTags)\n };\n var addedTags = {};\n var removedTags = {};\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(_HelmetConstants.TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(_HelmetConstants.TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + _HelmetConstants.HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, \"true\"); // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n var isSelfClosing = _HelmetConstants.SELF_CLOSING_TAGS.indexOf(type) === -1;\n return str + \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[_HelmetConstants.REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(props).reduce(function (obj, key) {\n obj[_HelmetConstants.HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps; // assigning into an array to define toString function on it\n\n\n var initProps = (_initProps = {\n key: title\n }, _initProps[_HelmetConstants.HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n return [_react2.default.createElement(_HelmetConstants.TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[_HelmetConstants.HELMET_ATTRIBUTE] = true, _mappedTag);\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = _HelmetConstants.REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || mappedAttribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = {\n __html: content\n };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return _react2.default.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case _HelmetConstants.TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n\n case _HelmetConstants.ATTRIBUTE_NAMES.BODY:\n case _HelmetConstants.ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(_HelmetConstants.TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(_HelmetConstants.TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(_HelmetConstants.TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(_HelmetConstants.TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(_HelmetConstants.TAG_NAMES.TITLE, {\n title: title,\n titleAttributes: titleAttributes\n }, encode)\n };\n};\n\nexports.convertReactPropstoHtmlAttributes = convertReactPropstoHtmlAttributes;\nexports.handleClientStateChange = handleClientStateChange;\nexports.mapStateOnServer = mapStateOnServer;\nexports.reducePropsToState = reducePropsToState;\nexports.requestAnimationFrame = requestAnimationFrame;\nexports.warn = warn;"],"sourceRoot":""}