{"version":3,"sources":["src/js/utils/is.js","src/js/utils/events.js","src/js/utils/elements.js","src/js/utils/animation.js","src/js/utils/browser.js","src/js/support.js","src/js/html5.js","src/js/utils/objects.js","src/js/utils/strings.js","src/js/i18n.js","src/js/utils/arrays.js","src/js/storage.js","src/js/utils/fetch.js","src/js/utils/loadSprite.js","src/js/utils/time.js","src/js/controls.js","src/js/utils/urls.js","src/js/captions.js","src/js/config/defaults.js","src/js/config/types.js","src/js/console.js","src/js/fullscreen.js","src/js/utils/loadImage.js","src/js/ui.js","src/js/listeners.js","node_modules/loadjs/dist/loadjs.umd.js","src/js/utils/loadScript.js","src/js/plugins/vimeo.js","src/js/plugins/youtube.js","src/js/media.js","src/js/plugins/ads.js","src/js/source.js","src/js/plyr.js"],"names":["getConstructor","input","constructor","instanceOf","Boolean","isNullOrUndefined","isObject","Object","isString","String","isArray","Array","isNodeList","NodeList","isEmpty","length","keys","is","nullOrUndefined","object","number","Number","isNaN","string","boolean","function","Function","array","weakMap","WeakMap","nodeList","element","Element","textNode","Text","event","Event","keyboardEvent","KeyboardEvent","cue","window","TextTrackCue","VTTCue","track","TextTrack","kind","url","URL","startsWith","hostname","e","empty","supportsPassiveListeners","supported","options","defineProperty","get","addEventListener","removeEventListener","toggleListener","callback","toggle","arguments","undefined","_this","this","passive","capture","events","split","forEach","type","eventListeners","push","on","call","off","once","onceCallback","_len","args","_key","apply","triggerEvent","bubbles","detail","CustomEvent","assign","plyr","dispatchEvent","wrap","elements","wrapper","targets","from","reverse","index","child","cloneNode","parent","parentNode","sibling","nextSibling","appendChild","insertBefore","setAttributes","attributes","entries","filter","_ref","value","slicedToArray","_ref3","_ref4","key","setAttribute","createElement","text","document","innerText","insertElement","removeElement","removeChild","emptyElement","childNodes","lastChild","replaceElement","newChild","oldChild","replaceChild","getAttributesFromSelector","sel","existingAttributes","existing","s","selector","trim","className","replace","parts","charAt","class","id","toggleHidden","hidden","hide","removeAttribute","toggleClass","force","map","method","classList","contains","hasClass","matches","prototype","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","querySelectorAll","includes","getElements","container","getElement","querySelector","setFocus","tabFocus","focus","config","classNames","transitionEndEvent","WebkitTransition","MozTransition","OTransition","transition","find","style","repaint","setTimeout","offsetHeight","range","browser","isIE","documentMode","isWebkit","documentElement","test","navigator","userAgent","isIPhone","platform","isIos","defaultCodecs","audio/ogg","audio/wav","video/webm","video/mp4","video/ogg","support","audio","video","check","provider","playsinline","canPlayInline","api","ui","rangeInput","pip","webkitSetPresentationMode","airplay","WebKitPlaybackTargetAvailabilityEvent","mime","inputType","_inputType$split","mediaType","isHTML5","media","canPlayType","err","textTracks","touch","transitions","reducedMotion","matchMedia","html5","getSources","source","getAttribute","getQualityOptions","extend","player","set","_player$media","currentTime","paused","preload","readyState","src","play","load","quality","cancelRequests","blankVideo","debug","log","getDeep","path","reduce","obj","target","sources","shift","concat","format","toString","match","i","replaceAll","RegExp","toTitleCase","toUpperCase","substr","toLowerCase","toCamelCase","toPascalCase","slice","getHTML","innerHTML","i18n","{seektime}","seekTime","{title}","title","_ref2","dedupe","item","indexOf","Storage","classCallCheck","enabled","storage","store","localStorage","getItem","json","JSON","parse","setItem","stringify","removeItem","fetch","responseType","Promise","resolve","reject","request","XMLHttpRequest","responseText","response","Error","status","open","send","loadSprite","hasId","exists","getElementById","update","data","body","insertAdjacentElement","useStorage","cached","prefix","content","then","result","catch","getHours","parseInt","getMinutes","getSeconds","formatTime","time","displayHours","inverted","hours","mins","secs","controls","getIconUrl","cors","iconUrl","location","host","svg4everybody","findElements","selectors","buttons","pause","restart","rewind","fastForward","mute","settings","captions","fullscreen","progress","inputs","seek","volume","display","buffer","duration","seekTooltip","tooltip","error","warn","toggleNativeControls","createIcon","iconPath","iconPrefix","icon","createElementNS","role","focusable","use","setAttributeNS","createLabel","attr","join","createBadge","badge","menu","createButton","buttonType","button","label","labelPressed","iconPressed","control","controlPressed","enumerable","pressed","createRange","min","max","step","autocomplete","aria-label","aria-valuemin","aria-valuemax","aria-valuenow","updateRangeFill","createProgress","aria-hidden","suffixKey","played","suffix","createTime","bindMenuItemShortcuts","menuItem","which","preventDefault","stopPropagation","isRadioButton","showMenuPanel","nextElementSibling","firstElementChild","previousElementSibling","lastElementChild","focusFirstMenuItem","createMenuItem","_this2","list","_ref$badge","_ref$checked","checked","aria-checked","flex","children","node","listeners","bind","currentTrack","speed","parseFloat","updateTimeDisplay","updateVolume","setRange","muted","updateProgress","_this3","current","toFixed","getElementsByTagName","nodeValue","setProgress","buffered","percent","setProperty","updateSeekTooltip","_this4","tooltips","clientRect","getBoundingClientRect","visible","_toggle","width","pageX","left","timeUpdate","invert","invertTime","seeking","durationUpdate","Math","pow","hasDuration","displayDuration","toggleMenuButton","setting","updateSetting","pane","panels","default","getLabel","setQualityMenu","_this5","checkMenu","sort","a","b","sorting","getBadge","setCaptionsMenu","_this6","tracks","getTracks","toggled","language","unshift","setSpeedMenu","_this7","isVimeo","values","some","popup","firstItem","toggleMenu","show","isMenuItem","getMenuSize","tab","clone","position","opacity","scrollWidth","height","scrollHeight","_this8","size","restore","propertyName","create","_this9","aria-haspopup","aria-controls","aria-expanded","inner","home","backButton","inject","_this10","floor","random","props","seektime","_config","labels","parseUrl","parser","href","buildUrlParams","params","URLSearchParams","setup","isVideo","isYouTube","protocol","blob","createObjectURL","languages","userLanguage","active","trackEvents","_captions","meta","currentTrackNode","languageExists","mode","updateCues","setLanguage","activeClass","findTrack","toConsumableArray","embed","enableTextTrack","has","sortIsDefault","sorted","every","getCurrentTrack","cues","activeCues","getCueAsHTML","cueText","caption","defaults","autoplay","autopause","toggleInvert","ratio","clickToPlay","hideControls","resetOnEnd","disableContextMenu","loop","selected","keyboard","focused","global","fallback","iosNative","seekLabel","unmute","enableCaptions","disableCaptions","enterFullscreen","exitFullscreen","frameTitle","menuBack","normal","start","end","all","reset","disabled","advertisement","qualityBadge","2160","1440","1080","720","576","480","urls","vimeo","sdk","iframe","youtube","googleIMA","editable","embedContainer","poster","posterEnabled","ads","playing","stopped","loading","hover","isTouch","uiSupported","noTransition","google","publisherId","providers","types","noop","Console","console","onChange","first","last","keyCode","activeElement","shiftKey","toggleFallback","scrollPosition","x","scrollX","y","scrollY","scrollTo","overflow","Fullscreen","property","native","webkitEnterFullscreen","requestFullscreen","webkitExitFullscreen","action","cancelFullScreen","exit","enter","fullscreenElement","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","pre","loadImage","minWidth","image","Image","handler","onload","onerror","naturalWidth","addStyleHook","build","checkPlaying","ready","setTitle","setPoster","isEmbed","togglePoster","enable","backgroundImage","backgroundSize","toggleControls","checkLoading","clearTimeout","timers","Listeners","lastKey","focusTimer","lastKeyDown","handleKey","setTabFocus","firstTouch","code","repeat","altKey","ctrlKey","metaKey","togglePlay","increaseVolume","decreaseVolume","forward","toggleCaptions","timeStamp","wasKeyDown","delay","hasAudio","initialized","managerPromise","isAudio","ended","proxyEvents","_event$detail","defaultHandler","customHandlerKey","customHandler","returned","hasCustomHandler","proxy","inputEvent","rect","currentTarget","hasAttribute","done","seekTo","isFocusIn","webkitDirectionInvertedFromDevice","_map","deltaX","deltaY","_map2","direction","sign","abs","factory","devnull","bundleIdCache","bundleResultCache","bundleCallbackQueue","publish","bundleId","pathsNotFound","q","splice","executeCallbacks","depsNotFound","success","loadFile","callbackFn","numTries","isCss","doc","async","maxTries","numRetries","beforeCallbackFn","before","pathStripped","rel","onbeforeload","ev","sheet","cssText","defaultPrevented","head","loadjs","paths","arg1","arg2","fn","numWaiting","loadFiles","deps","bundleIds","r","subscribe","isDefined","module","exports","loadScript","assurePlaybackState","hasPlayed","setAspectRatio","Vimeo","_split","_split2","padding","paddingBottom","offset","transform","byline","portrait","transparent","gesture","$2","thumbnail_large","pathname","Player","disableTextTrack","stop","restorePause","setVolume","setCurrentTime","setPlaybackRate","name","setLoop","currentSrc","getVideoUrl","getVideoWidth","getVideoHeight","dimensions","getRatio","w","h","getAspectRatio","setAutopause","state","getVideoTitle","getCurrentTime","getDuration","getTextTracks","_ref$cues","strippedCues","fragment","createDocumentFragment","firstChild","getPaused","seconds","mapQualityUnit","entry","hd2160","hd1440","hd1080","hd720","large","medium","small","tiny","YT","onYouTubeReadyCallbacks","onYouTubeIframeAPIReady","getTitle","videoId","getVideoData","items","snippet","currentId","posterSrc","format$$1","playerVars","hl","showinfo","iv_load_policy","modestbranding","disablekb","widget_referrer","cc_load_policy","cc_lang_pref","onError","message","2","5","100","101","150","onPlaybackQualityChange","onPlaybackRateChange","instance","playbackRate","getPlaybackRate","onReady","playVideo","pauseVideo","stopVideo","getPlaybackQuality","setPlaybackQuality","getAvailablePlaybackRates","clearInterval","buffering","setInterval","getVideoLoadedFraction","lastBuffered","onStateChange","levels","getAvailableQualityLevels","level","unMute","Ads","displayContainer","manager","loader","cuePoints","safetyTimer","countdownTimer","ima","trigger","startSafetyTimer","clearSafetyTimer","setupIMA","setVpaidMode","ImaSdkSettings","VpaidMode","ENABLED","setLocale","AdDisplayContainer","requestAds","AdsLoader","AdsManagerLoadedEvent","Type","ADS_MANAGER_LOADED","onAdsManagerLoaded","AdErrorEvent","AD_ERROR","onAdError","AdsRequest","adTagUrl","tagUrl","linearAdSlotWidth","offsetWidth","linearAdSlotHeight","nonLinearAdSlotWidth","nonLinearAdSlotHeight","forceNonLinearFullSlot","setAdWillPlayMuted","getRemainingTime","AdsRenderingSettings","restoreCustomPlaybackStateOnAdBreakComplete","enablePreloading","getAdsManager","getCuePoints","cuePoint","seekElement","cuePercentage","AdEvent","onAdEvent","ad","getAd","LOADED","pollCountdown","isLinear","ALL_ADS_COMPLETED","loadAds","CONTENT_PAUSE_REQUESTED","pauseContent","CONTENT_RESUME_REQUESTED","resumeContent","STARTED","MIDPOINT","COMPLETE","IMPRESSION","CLICK","cancel","contentComplete","seekedTime","discardAdBreak","resize","ViewMode","NORMAL","initialize","init","adError","zIndex","destroy","_this11","handlers","_this12","base","AV_PUBLISHERID","AV_CHANNELID","AV_URL","cb","Date","now","AV_WIDTH","AV_HEIGHT","AV_CDIM2","insertElements","attribute","change","_sources$","_sources$$provider","tagName","crossorigin","Plyr","failed","jQuery","original","getProviderByUrl","search","truthy","searchParams","webkitShowPlaybackTargetPicker","isHidden","hiding","eventName","soft","unload","inputIsValid","fauxDuration","realDuration","Infinity","mozHasAudio","webkitAudioDecodedByteCount","audioTracks","prev","curr","closest","states","webkitPresentationMode","inline","t"],"mappings":"kNAIA,IAAMA,EAAiB,SAAAC,GAAA,OAAUA,MAAAA,EAAiDA,EAAMC,YAAc,MAChGC,EAAa,SAACF,EAAOC,GAAR,OAAwBE,QAAQH,GAASC,GAAeD,aAAiBC,IACtFG,EAAoB,SAAAJ,GAAA,OAASA,MAAAA,GAC7BK,EAAW,SAAAL,GAAA,OAASD,EAAeC,KAAWM,QAE9CC,EAAW,SAAAP,GAAA,OAASD,EAAeC,KAAWQ,QAG9CC,EAAU,SAAAT,GAAA,OAASU,MAAMD,QAAQT,IAEjCW,EAAa,SAAAX,GAAA,OAASE,EAAWF,EAAOY,WAQxCC,EAAU,SAAAb,GAAA,OACZI,EAAkBJ,KAChBO,EAASP,IAAUS,EAAQT,IAAUW,EAAWX,MAAYA,EAAMc,QACnET,EAASL,KAAWM,OAAOS,KAAKf,GAAOc,QAqB5CE,GACIC,gBAAiBb,EACjBc,OAAQb,EACRc,OAzCa,SAAAnB,GAAA,OAASD,EAAeC,KAAWoB,SAAWA,OAAOC,MAAMrB,IA0CxEsB,OAAQf,EACRgB,QAzCc,SAAAvB,GAAA,OAASD,EAAeC,KAAWG,SA0CjDqB,SAzCe,SAAAxB,GAAA,OAASD,EAAeC,KAAWyB,UA0ClDC,MAAOjB,EACPkB,QAzCc,SAAA3B,GAAA,OAASE,EAAWF,EAAO4B,UA0CzCC,SAAUlB,EACVmB,QAzCc,SAAA9B,GAAA,OAASE,EAAWF,EAAO+B,UA0CzCC,SAzCe,SAAAhC,GAAA,OAASD,EAAeC,KAAWiC,MA0ClDC,MAzCY,SAAAlC,GAAA,OAASE,EAAWF,EAAOmC,QA0CvCC,cAzCoB,SAAApC,GAAA,OAASE,EAAWF,EAAOqC,gBA0C/CC,IAzCU,SAAAtC,GAAA,OAASE,EAAWF,EAAOuC,OAAOC,eAAiBtC,EAAWF,EAAOuC,OAAOE,SA0CtFC,MAzCY,SAAA1C,GAAA,OAASE,EAAWF,EAAO2C,aAAgBvC,EAAkBJ,IAAUO,EAASP,EAAM4C,OA0ClGC,IAnCU,SAAA7C,GAEV,GAAIE,EAAWF,EAAOuC,OAAOO,KACzB,OAAO,EAIX,IAAIxB,EAAStB,EACRA,EAAM+C,WAAW,YAAe/C,EAAM+C,WAAW,cAClDzB,EAAAA,UAAmBtB,GAGvB,IACI,OAAQa,EAAQ,IAAIiC,IAAIxB,GAAQ0B,UAClC,MAAOC,GACL,OAAO,IAqBXC,MAAOrC,GCtDLsC,EAA4B,WAE9B,IAAIC,GAAY,EAChB,IACI,IAAMC,EAAU/C,OAAOgD,kBAAmB,WACtCC,IADiD,WAG7C,OADAH,GAAY,EACL,QAGfb,OAAOiB,iBAAiB,OAAQ,KAAMH,GACtCd,OAAOkB,oBAAoB,OAAQ,KAAMJ,GAC3C,MAAOJ,IAIT,OAAOG,EAhBuB,GAoB3B,SAASM,EAAe5B,EAASI,EAAOyB,GAA2D,IAAjDC,EAAiDC,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GAAAE,EAAAC,KAAjCC,IAAiCJ,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,KAAAA,UAAA,GAAjBK,EAAiBL,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GAEtG,GAAK/B,GAAa,qBAAsBA,IAAYd,EAAGkC,MAAMhB,IAAWlB,EAAGQ,SAASmC,GAApF,CAKA,IAAMQ,EAASjC,EAAMkC,MAAM,KAIvBf,EAAUa,EAGVf,IACAE,GAEIY,QAAAA,EAEAC,QAAAA,IAKRC,EAAOE,QAAQ,SAAAC,GACPP,GAAQA,EAAKQ,gBAAkBX,GAE/BG,EAAKQ,eAAeC,MAAO1C,QAAAA,EAASwC,KAAAA,EAAMX,SAAAA,EAAUN,QAAAA,IAGxDvB,EAAQ8B,EAAS,mBAAqB,uBAAuBU,EAAMX,EAAUN,MAK9E,SAASoB,EAAG3C,GAAiE,IAAxDqC,EAAwDN,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAA/C,GAAIF,EAA2CE,UAAA,GAAjCI,IAAiCJ,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,KAAAA,UAAA,GAAjBK,EAAiBL,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GAChFH,EAAegB,KAAKV,KAAMlC,EAASqC,EAAQR,GAAU,EAAMM,EAASC,GAIjE,SAASS,EAAI7C,GAAiE,IAAxDqC,EAAwDN,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAA/C,GAAIF,EAA2CE,UAAA,GAAjCI,IAAiCJ,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,KAAAA,UAAA,GAAjBK,EAAiBL,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GACjFH,EAAegB,KAAKV,KAAMlC,EAASqC,EAAQR,GAAU,EAAOM,EAASC,GAIlE,SAASU,EAAK9C,GAAiE,IAAxDqC,EAAwDN,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAA/C,GAAIF,EAA2CE,UAAA,GAAjCI,IAAiCJ,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,KAAAA,UAAA,GAAjBK,EAAiBL,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GAMlFH,EAAegB,KAAKV,KAAMlC,EAASqC,EALnC,SAASU,IACLF,EAAI7C,EAASqC,EAAQU,EAAcZ,EAASC,GADjB,IAAA,IAAAY,EAAAjB,UAAA/C,OAANiE,EAAMrE,MAAAoE,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAND,EAAMC,GAAAnB,UAAAmB,GAE3BrB,EAASsB,MAAMjB,KAAMe,KAGgC,EAAMd,EAASC,GAIrE,SAASgB,EAAapD,GAAkD,IAAzCwC,EAAyCT,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAAlC,GAAIsB,EAA8BtB,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GAAbuB,EAAavB,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,MAE3E,GAAK7C,EAAGc,QAAQA,KAAYd,EAAGkC,MAAMoB,GAArC,CAKA,IAAMpC,EAAQ,IAAImD,YAAYf,GAC1Ba,QAAAA,EACAC,OAAQ9E,OAAOgF,UAAWF,GACtBG,KAAMvB,SAKdlC,EAAQ0D,cAActD,w3BC3FnB,SAASuD,EAAKC,EAAUC,GAE3B,IAAMC,EAAUF,EAAS5E,OAAS4E,GAAYA,GAI9ChF,MAAMmF,KAAKD,GACNE,UACAzB,QAAQ,SAACvC,EAASiE,GACf,IAAMC,EAAQD,EAAQ,EAAIJ,EAAQM,WAAU,GAAQN,EAG9CO,EAASpE,EAAQqE,WACjBC,EAAUtE,EAAQuE,YAIxBL,EAAMM,YAAYxE,GAKdsE,EACAF,EAAOK,aAAaP,EAAOI,GAE3BF,EAAOI,YAAYN,KAM5B,SAASQ,EAAc1E,EAAS2E,GAC9BzF,EAAGc,QAAQA,KAAYd,EAAGkC,MAAMuD,IAMrCnG,OAAOoG,QAAQD,GACVE,OAAO,SAAAC,GAAA,IAAIC,EAAJC,EAAAF,EAAA,GAAA,GAAA,OAAgB5F,EAAGC,gBAAgB4F,KAC1CxC,QAAQ,SAAA0C,GAAA,IAAAC,EAAAF,EAAAC,EAAA,GAAEE,EAAFD,EAAA,GAAOH,EAAPG,EAAA,GAAA,OAAkBlF,EAAQoF,aAAaD,EAAKJ,KAItD,SAASM,EAAc7C,EAAMmC,EAAYW,GAE5C,IAAMtF,EAAUuF,SAASF,cAAc7C,GAavC,OAVItD,EAAGE,OAAOuF,IACVD,EAAc1E,EAAS2E,GAIvBzF,EAAGM,OAAO8F,KACVtF,EAAQwF,UAAYF,GAIjBtF,EAaJ,SAASyF,EAAcjD,EAAM4B,EAAQO,EAAYW,GAC/CpG,EAAGc,QAAQoE,IAIhBA,EAAOI,YAAYa,EAAc7C,EAAMmC,EAAYW,IAIhD,SAASI,EAAc1F,GACtBd,EAAGa,SAASC,IAAYd,EAAGU,MAAMI,GACjCpB,MAAMmF,KAAK/D,GAASuC,QAAQmD,GAI3BxG,EAAGc,QAAQA,IAAad,EAAGc,QAAQA,EAAQqE,aAIhDrE,EAAQqE,WAAWsB,YAAY3F,GAI5B,SAAS4F,EAAa5F,GACzB,GAAKd,EAAGc,QAAQA,GAMhB,IAPkC,IAK5BhB,EAAWgB,EAAQ6F,WAAnB7G,OAECA,EAAS,GACZgB,EAAQ2F,YAAY3F,EAAQ8F,WAC5B9G,GAAU,EAKX,SAAS+G,EAAeC,EAAUC,GACrC,OAAK/G,EAAGc,QAAQiG,IAAc/G,EAAGc,QAAQiG,EAAS5B,aAAgBnF,EAAGc,QAAQgG,IAI7EC,EAAS5B,WAAW6B,aAAaF,EAAUC,GAEpCD,GALI,KASR,SAASG,EAA0BC,EAAKC,GAM3C,IAAKnH,EAAGM,OAAO4G,IAAQlH,EAAGkC,MAAMgF,GAC5B,SAGJ,IAAMzB,KACA2B,EAAWD,EA0CjB,OAxCAD,EAAI9D,MAAM,KAAKC,QAAQ,SAAAgE,GAEnB,IAAMC,EAAWD,EAAEE,OACbC,EAAYF,EAASG,QAAQ,IAAK,IAIlCC,EAHWJ,EAASG,QAAQ,SAAU,IAGrBrE,MAAM,KACvB6C,EAAMyB,EAAM,GACZ7B,EAAQ6B,EAAM5H,OAAS,EAAI4H,EAAM,GAAGD,QAAQ,QAAS,IAAM,GAKjE,OAFcH,EAASK,OAAO,IAG1B,IAAK,IAEG3H,EAAGE,OAAOkH,IAAapH,EAAGM,OAAO8G,EAASQ,SAC1CR,EAASQ,OAAT,IAAsBJ,GAG1B/B,EAAWmC,MAAQJ,EACnB,MAEJ,IAAK,IAED/B,EAAWoC,GAAKP,EAASG,QAAQ,IAAK,IACtC,MAEJ,IAAK,IAEDhC,EAAWQ,GAAOJ,KASvBJ,EAIJ,SAASqC,EAAahH,EAASiH,GAClC,GAAK/H,EAAGc,QAAQA,GAAhB,CAIA,IAAIkH,EAAOD,EAEN/H,EAAGO,QAAQyH,KACZA,GAAQlH,EAAQiH,QAGhBC,EACAlH,EAAQoF,aAAa,SAAU,IAE/BpF,EAAQmH,gBAAgB,WAKzB,SAASC,EAAYpH,EAAS0G,EAAWW,GAC5C,GAAInI,EAAGa,SAASC,GACZ,OAAOpB,MAAMmF,KAAK/D,GAASsH,IAAI,SAAAnG,GAAA,OAAKiG,EAAYjG,EAAGuF,EAAWW,KAGlE,GAAInI,EAAGc,QAAQA,GAAU,CACrB,IAAIuH,EAAS,SAMb,YALqB,IAAVF,IACPE,EAASF,EAAQ,MAAQ,UAG7BrH,EAAQwH,UAAUD,GAAQb,GACnB1G,EAAQwH,UAAUC,SAASf,GAGtC,OAAO,EAIJ,SAASgB,EAAS1H,EAAS0G,GAC9B,OAAOxH,EAAGc,QAAQA,IAAYA,EAAQwH,UAAUC,SAASf,GAItD,SAASiB,EAAQ3H,EAASwG,GAC7B,IAAMoB,GAAc3H,QAAAA,SAapB,OANI2H,EAAUD,SACVC,EAAUC,uBACVD,EAAUE,oBACVF,EAAUG,mBARd,WACI,OAAOnJ,MAAMmF,KAAKwB,SAASyC,iBAAiBxB,IAAWyB,SAAS/F,QAUrDU,KAAK5C,EAASwG,GAI1B,SAAS0B,EAAY1B,GACxB,OAAOtE,KAAK0B,SAASuE,UAAUH,iBAAiBxB,GAI7C,SAAS4B,EAAW5B,GACvB,OAAOtE,KAAK0B,SAASuE,UAAUE,cAAc7B,GAqC1C,SAAS8B,IAA2C,IAAlCtI,EAAkC+B,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAAxB,KAAMwG,EAAkBxG,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GAClD7C,EAAGc,QAAQA,KAKhBA,EAAQwI,QAGJD,GACAnB,EAAYpH,EAASkC,KAAKuG,OAAOC,WAAWH,WCpS7C,IACGvI,EAEAqC,EAOAG,EAVGmG,GACH3I,EAAUuF,SAASF,cAAc,QAEjChD,GACFuG,iBAAkB,sBAClBC,cAAe,gBACfC,YAAa,gCACbC,WAAY,iBAGVvG,EAAOhE,OAAOS,KAAKoD,GAAQ2G,KAC7B,SAAA5I,GAAA,YAAkC4B,IAAzBhC,EAAQiJ,MAAM7I,OAGpBlB,EAAGM,OAAOgD,IAAQH,EAAOG,IAI7B,SAAS0G,EAAQlJ,GACpBmJ,WAAW,WACP,IACInC,EAAahH,GAAS,GACtBA,EAAQoJ,aACRpC,EAAahH,GAAS,GACxB,MAAOmB,MAGV,GC7BP,IC6EckI,ED7ERC,GACFC,OAAgChE,SAASiE,aACzCC,SAAU,qBAAsBlE,SAASmE,gBAAgBT,QAAU,OAAOU,KAAKC,UAAUC,WACzFC,SAAU,kBAAkBH,KAAKC,UAAUG,UAC3CC,MAAO,uBAAuBL,KAAKC,UAAUG,WCC3CE,GACFC,YAAa,SACbC,YAAa,IACbC,aAAc,cACdC,YAAa,yBACbC,YAAa,UAIXC,GAEFC,MAAO,gBAAiBjF,SAASF,cAAc,SAC/CoF,MAAO,gBAAiBlF,SAASF,cAAc,SAI/CqF,MAPY,SAONlI,EAAMmI,EAAUC,GAClB,IAAMC,EAAgBvB,EAAQQ,UAAYc,GAAeL,EAAQK,YAC3DE,EAAMP,EAAQ/H,IAAsB,UAAbmI,EAG7B,OACIG,IAAAA,EACAC,GAJOD,GAAOP,EAAQS,aAAwB,UAATxI,IAAqB8G,EAAQQ,UAAYe,KAUtFI,KAAa3B,EAAQQ,UAAY5K,EAAGQ,SAAS2F,EAAc,SAAS6F,2BAIpEC,QAASjM,EAAGQ,SAASe,OAAO2K,uCAI5BR,YAAa,gBAAiBrF,SAASF,cAAc,SAKrDgG,KAjCY,SAiCPC,GAAW,IAAAC,EACQD,EAAUhJ,MAAM,KAA7BkJ,EADKxG,EAAAuG,EAAA,GAAA,GAEZ,IAAKrJ,KAAKuJ,SAAWD,IAActJ,KAAKM,KACpC,OAAO,EAGX,IAAIA,OAAAA,EACA8I,GAAaA,EAAUrD,SAAS,WAEhCzF,EAAO8I,EACc,eAAdA,EAEP9I,EAAO,cACA8I,KAAarB,IAEpBzH,EAAU8I,EAAV,aAAgCrB,EAAcqB,GAA9C,KAGJ,IACI,OAAOjN,QAAQmE,GAAQN,KAAKwJ,MAAMC,YAAYnJ,GAAMmE,QAAQ,KAAM,KACpE,MAAOiF,GACL,OAAO,IAKfC,WAAY,eAAgBtG,SAASF,cAAc,SAGnD2F,YACU3B,EAAQ9D,SAASF,cAAc,SACrCgE,EAAM7G,KAAO,QACS,UAAf6G,EAAM7G,MAKjBsJ,MAAO,iBAAkBvG,SAASmE,gBAGlCqC,aAAoC,IAAvBpD,EAIbqD,cAAe,eAAgBvL,QAAUA,OAAOwL,WAAW,4BAA4BtE,SCxFrFuE,GACFC,WADU,WACG,IAAAlK,EAAAC,KACT,OAAKA,KAAKuJ,QAIM7M,MAAMmF,KAAK7B,KAAKwJ,MAAM1D,iBAAiB,WAGxCnD,OAAO,SAAAuH,GAAA,OAAU7B,EAAQc,KAAKzI,KAAKX,EAAMmK,EAAOC,aAAa,eAIhFC,kBAbU,WAeN,OAAOJ,EAAMC,WACRvJ,KAAKV,MACLoF,IAAI,SAAA8E,GAAA,OAAU9M,OAAO8M,EAAOC,aAAa,WACzCxH,OAAOxG,UAGhBkO,OArBU,WAsBN,GAAKrK,KAAKuJ,QAAV,CAIA,IAAMe,EAAStK,KAGf1D,OAAOgD,eAAegL,EAAOd,MAAO,WAChCjK,IAD2C,WAGvC,IACM2K,EADUF,EAAMC,WAAWvJ,KAAK4J,GACfxD,KAAK,SAAAoD,GAAA,OAAUA,EAAOC,aAAa,SAAWG,EAAOJ,SAG5E,OAAOA,GAAU9M,OAAO8M,EAAOC,aAAa,UAEhDI,IAT2C,SASvCvO,GAEA,IAGMkO,EAHUF,EAAMC,WAAWvJ,KAAK4J,GAGfxD,KAAK,SAAAoD,GAAA,OAAU9M,OAAO8M,EAAOC,aAAa,WAAanO,IAG9E,GAAKkO,EAAL,CARO,IAAAM,EAa8CF,EAAOd,MAApDiB,EAbDD,EAaCC,YAAaC,EAbdF,EAacE,OAAQC,EAbtBH,EAasBG,QAASC,EAb/BJ,EAa+BI,WAGtCN,EAAOd,MAAMqB,IAAMX,EAAOC,aAAa,QAGvB,SAAZQ,GAAsBC,KAEtBN,EAAO1J,KAAK,iBAAkB,WAC1B0J,EAAOG,YAAcA,EAGhBC,GACDJ,EAAOQ,SAKfR,EAAOd,MAAMuB,QAIjB7J,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,iBAAiB,GACrDwB,QAAShP,UAQzBiP,eAlFU,WAmFDjL,KAAKuJ,UAKV/F,EAAcwG,EAAMC,WAAWvJ,KAAKV,OAKpCA,KAAKwJ,MAAMtG,aAAa,MAAOlD,KAAKuG,OAAO2E,YAK3ClL,KAAKwJ,MAAMuB,OAGX/K,KAAKmL,MAAMC,IAAI,iCCjGhB,SAASC,EAAQnO,EAAQoO,GAC5B,OAAOA,EAAKlL,MAAM,KAAKmL,OAAO,SAACC,EAAKvI,GAAN,OAAcuI,GAAOA,EAAIvI,IAAM/F,GAI1D,SAASmN,IAAgC,IAAA,IAAzBoB,EAAyB5L,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,MAAAiB,EAAAjB,UAAA/C,OAAT4O,EAAShP,MAAAoE,EAAA,EAAAA,EAAA,EAAA,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAT0K,EAAS1K,EAAA,GAAAnB,UAAAmB,GAC5C,IAAK0K,EAAQ5O,OACT,OAAO2O,EAGX,IAAMvB,EAASwB,EAAQC,QAEvB,OAAK3O,EAAGE,OAAOgN,IAIf5N,OAAOS,KAAKmN,GAAQ7J,QAAQ,SAAA4C,GACpBjG,EAAGE,OAAOgN,EAAOjH,KACZ3G,OAAOS,KAAK0O,GAAQ1F,SAAS9C,IAC9B3G,OAAOgF,OAAOmK,EAAdnM,KAAyB2D,OAG7BoH,EAAOoB,EAAOxI,GAAMiH,EAAOjH,KAE3B3G,OAAOgF,OAAOmK,EAAdnM,KAAyB2D,EAAMiH,EAAOjH,OAIvCoH,EAAAA,WAAAA,GAAOoB,GAAPG,OAAkBF,KAfdD,ECbR,SAASI,EAAO7P,GAAgB,IAAA,IAAA8E,EAAAjB,UAAA/C,OAANiE,EAAMrE,MAAAoE,EAAA,EAAAA,EAAA,EAAA,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAND,EAAMC,EAAA,GAAAnB,UAAAmB,GACnC,OAAIhE,EAAGkC,MAAMlD,GACFA,EAGJA,EAAM8P,WAAWrH,QAAQ,WAAY,SAACsH,EAAOC,GAAR,OAAcjL,EAAKiL,GAAGF,aAa/D,SAASG,IAAgD,IAArCjQ,EAAqC6D,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAA7B,GAAIiH,EAAyBjH,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAAlB,GAAI4E,EAAc5E,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAAJ,GACxD,OAAO7D,EAAMyI,QACT,IAAIyH,OAAOpF,EAAKgF,WAAWrH,QAAQ,4BAA6B,QAAS,KACzEA,EAAQqH,YAKT,SAASK,IACZ,OADoCtM,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAAJ,IACnBiM,WAAWrH,QAAQ,SAAU,SAAArB,GAAA,OAAQA,EAAKuB,OAAO,GAAGyH,cAAgBhJ,EAAKiJ,OAAO,GAAGC,gBAqB7F,SAASC,IAAwB,IAChCjP,GADgCuC,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAAJ,IACbiM,WAMnB,OAHAxO,EArBG,WAAkC,IACjCA,GADiCuC,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAAJ,IACdiM,WAYnB,OATAxO,EAAS2O,EAAW3O,EAAQ,IAAK,KAGjCA,EAAS2O,EAAW3O,EAAQ,IAAK,KAM1B2O,EAHP3O,EAAS6O,EAAY7O,GAGK,IAAK,IAQtBkP,CAAalP,IAGRqH,OAAO,GAAG2H,cAAgBhP,EAAOmP,MAAM,GAalD,SAASC,EAAQ5O,GACpB,IAAM6D,EAAU0B,SAASF,cAAc,OAEvC,OADAxB,EAAQW,YAAYxE,GACb6D,EAAQgL,UC3EnB,IAAMC,EAAO,WACkB,IAAvB3J,EAAuBpD,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAAjB,GAAI0G,EAAa1G,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,MACvB,GAAI7C,EAAGkC,MAAM+D,IAAQjG,EAAGkC,MAAMqH,GAC1B,MAAO,GAGX,IAAIjJ,EAAS+N,EAAQ9E,EAAOqG,KAAM3J,GAElC,GAAIjG,EAAGkC,MAAM5B,GACT,MAAO,GAGX,IAAMmH,GACFoI,aAActG,EAAOuG,SACrBC,UAAWxG,EAAOyG,OAOtB,OAJA1Q,OAAOoG,QAAQ+B,GAASpE,QAAQ,SAAAuC,GAAkB,IAAAqK,EAAAnK,EAAAF,EAAA,GAAhBK,EAAgBgK,EAAA,GAAXpK,EAAWoK,EAAA,GAC9C3P,EAAS2O,EAAW3O,EAAQ2F,EAAKJ,KAG9BvF,GCtBR,SAAS4P,EAAOxP,GACnB,OAAKV,EAAGU,MAAMA,GAIPA,EAAMiF,OAAO,SAACwK,EAAMpL,GAAP,OAAiBrE,EAAM0P,QAAQD,KAAUpL,IAHlDrE,MCFT2P,EAAAA,WACF,SAAAA,EAAY/C,GAAQgD,EAAAtN,KAAAqN,GAChBrN,KAAKuN,QAAUjD,EAAO/D,OAAOiH,QAAQD,QACrCvN,KAAKiD,IAAMqH,EAAO/D,OAAOiH,QAAQvK,0CAuBjCA,GACA,IAAKoK,EAAQjO,YAAcY,KAAKuN,QAC5B,OAAO,KAGX,IAAME,EAAQlP,OAAOmP,aAAaC,QAAQ3N,KAAKiD,KAE/C,GAAIjG,EAAGkC,MAAMuO,GACT,OAAO,KAGX,IAAMG,EAAOC,KAAKC,MAAML,GAExB,OAAOzQ,EAAGM,OAAO2F,IAAQA,EAAInG,OAAS8Q,EAAK3K,GAAO2K,8BAGlD1Q,GAEA,GAAKmQ,EAAQjO,WAAcY,KAAKuN,SAK3BvQ,EAAGE,OAAOA,GAAf,CAKA,IAAIsQ,EAAUxN,KAAKT,MAGfvC,EAAGkC,MAAMsO,KACTA,MAIJnD,EAAOmD,EAAStQ,GAGhBqB,OAAOmP,aAAaK,QAAQ/N,KAAKiD,IAAK4K,KAAKG,UAAUR,yCAzDrD,IACI,KAAM,iBAAkBjP,QACpB,OAAO,EAUX,OAHAA,OAAOmP,aAAaK,QAJP,UAAA,WAKbxP,OAAOmP,aAAaO,WALP,YAON,EACT,MAAOhP,GACL,OAAO,SAtBboO,GCFS,SAASa,GAAMrP,GAA4B,IAAvBsP,EAAuBtO,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAAR,OAC9C,OAAO,IAAIuO,QAAQ,SAACC,EAASC,GACzB,IACI,IAAMC,EAAU,IAAIC,eAGpB,KAAM,oBAAqBD,GACvB,OAGJA,EAAQ/O,iBAAiB,OAAQ,WAC7B,GAAqB,SAAjB2O,EACA,IACIE,EAAQR,KAAKC,MAAMS,EAAQE,eAC7B,MAAOxP,GACLoP,EAAQE,EAAQE,mBAGpBJ,EAAQE,EAAQG,YAIxBH,EAAQ/O,iBAAiB,QAAS,WAC9B,MAAM,IAAImP,MAAMJ,EAAQK,UAG5BL,EAAQM,KAAK,MAAOhQ,GAAK,GAGzB0P,EAAQJ,aAAeA,EAEvBI,EAAQO,OACV,MAAO7P,GACLqP,EAAOrP,MC7BJ,SAAS8P,GAAWlQ,EAAKgG,GACpC,GAAK7H,EAAGM,OAAOuB,GAAf,CAIA,IACMmQ,EAAQhS,EAAGM,OAAOuH,GAGlBoK,EAAS,WAAA,OAAsC,OAAhC5L,SAAS6L,eAAerK,IAEvCsK,EAAS,SAAClJ,EAAWmJ,GACvBnJ,EAAU0G,UAAYyC,EAGlBJ,GAASC,KAKb5L,SAASgM,KAAKC,sBAAsB,aAAcrJ,IAItD,IAAK+I,IAAUC,IAAU,CACrB,IAAMM,EAAalC,EAAQjO,UAGrB6G,EAAY5C,SAASF,cAAc,OAQzC,GAPA8C,EAAU/C,aAAa,SAAU,IAE7B8L,GACA/I,EAAU/C,aAAa,KAAM2B,GAI7B0K,EAAY,CACZ,IAAMC,EAASjR,OAAOmP,aAAaC,QAAW8B,SAAU5K,GAGxD,GAFsB,OAAX2K,EAEG,CACV,IAAMJ,EAAOvB,KAAKC,MAAM0B,GACxBL,EAAOlJ,EAAWmJ,EAAKM,UAK/BxB,GAAMrP,GACD8Q,KAAK,SAAAC,GACE5S,EAAGkC,MAAM0Q,KAITL,GACAhR,OAAOmP,aAAaK,QACb0B,SAAU5K,EACbgJ,KAAKG,WACD0B,QAASE,KAKrBT,EAAOlJ,EAAW2J,MAErBC,MAAM,gBClEZ,IAAMC,GAAW,SAAAjN,GAAA,OAASkN,SAAUlN,EAAQ,GAAK,GAAM,GAAI,KACrDmN,GAAa,SAAAnN,GAAA,OAASkN,SAAUlN,EAAQ,GAAM,GAAI,KAClDoN,GAAa,SAAApN,GAAA,OAASkN,SAASlN,EAAQ,GAAI,KAGjD,SAASqN,KAA6D,IAAlDC,EAAkDtQ,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAA3C,EAAGuQ,EAAwCvQ,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GAAlBwQ,EAAkBxQ,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GAEzE,IAAK7C,EAAGG,OAAOgT,GACX,OAAOD,GAAW,KAAME,EAAcC,GAI1C,IAAMxE,EAAS,SAAAhJ,GAAA,OAAS,IAAIA,GAAQ4J,OAAO,IAGvC6D,EAAQR,GAASK,GACfI,EAAOP,GAAWG,GAClBK,EAAOP,GAAWE,GAUxB,OAPIC,GAAgBE,EAAQ,EACxBA,GAAA,IAEAA,EAAQ,IAIFD,GAAYF,EAAO,EAAI,IAAM,IAAKG,EAAQzE,EAAO0E,GAA3D,IAAoE1E,EAAO2E,GCb/E,IAAMC,IAEFC,WAFa,WAGT,IACMC,EADM,IAAI7R,IAAIkB,KAAKuG,OAAOqK,QAASrS,OAAOsS,UAC/BC,OAASvS,OAAOsS,SAASC,MAAS1J,EAAQC,OAAS9I,OAAOwS,cAE3E,OACIlS,IAAKmB,KAAKuG,OAAOqK,QACjBD,KAAAA,IAKRK,aAba,WAcT,IAyCI,OAxCAhR,KAAK0B,SAAS+O,SAAWvK,EAAWxF,KAAKV,KAAMA,KAAKuG,OAAO0K,UAAUR,SAAS9O,SAG9E3B,KAAK0B,SAASwP,SACVpG,KAAM9E,EAAYtF,KAAKV,KAAMA,KAAKuG,OAAO0K,UAAUC,QAAQpG,MAC3DqG,MAAOjL,EAAWxF,KAAKV,KAAMA,KAAKuG,OAAO0K,UAAUC,QAAQC,OAC3DC,QAASlL,EAAWxF,KAAKV,KAAMA,KAAKuG,OAAO0K,UAAUC,QAAQE,SAC7DC,OAAQnL,EAAWxF,KAAKV,KAAMA,KAAKuG,OAAO0K,UAAUC,QAAQG,QAC5DC,YAAapL,EAAWxF,KAAKV,KAAMA,KAAKuG,OAAO0K,UAAUC,QAAQI,aACjEC,KAAMrL,EAAWxF,KAAKV,KAAMA,KAAKuG,OAAO0K,UAAUC,QAAQK,MAC1DxI,IAAK7C,EAAWxF,KAAKV,KAAMA,KAAKuG,OAAO0K,UAAUC,QAAQnI,KACzDE,QAAS/C,EAAWxF,KAAKV,KAAMA,KAAKuG,OAAO0K,UAAUC,QAAQjI,SAC7DuI,SAAUtL,EAAWxF,KAAKV,KAAMA,KAAKuG,OAAO0K,UAAUC,QAAQM,UAC9DC,SAAUvL,EAAWxF,KAAKV,KAAMA,KAAKuG,OAAO0K,UAAUC,QAAQO,UAC9DC,WAAYxL,EAAWxF,KAAKV,KAAMA,KAAKuG,OAAO0K,UAAUC,QAAQQ,aAIpE1R,KAAK0B,SAASiQ,SAAWzL,EAAWxF,KAAKV,KAAMA,KAAKuG,OAAO0K,UAAUU,UAGrE3R,KAAK0B,SAASkQ,QACVC,KAAM3L,EAAWxF,KAAKV,KAAMA,KAAKuG,OAAO0K,UAAUW,OAAOC,MACzDC,OAAQ5L,EAAWxF,KAAKV,KAAMA,KAAKuG,OAAO0K,UAAUW,OAAOE,SAI/D9R,KAAK0B,SAASqQ,SACVC,OAAQ9L,EAAWxF,KAAKV,KAAMA,KAAKuG,OAAO0K,UAAUc,QAAQC,QAC5DvH,YAAavE,EAAWxF,KAAKV,KAAMA,KAAKuG,OAAO0K,UAAUc,QAAQtH,aACjEwH,SAAU/L,EAAWxF,KAAKV,KAAMA,KAAKuG,OAAO0K,UAAUc,QAAQE,WAI9DjV,EAAGc,QAAQkC,KAAK0B,SAASiQ,YACzB3R,KAAK0B,SAASqQ,QAAQG,YAAclS,KAAK0B,SAASiQ,SAASxL,cAAvB,IAC5BnG,KAAKuG,OAAOC,WAAW2L,WAI5B,EACT,MAAOC,GAOL,OALApS,KAAKmL,MAAMkH,KAAK,kEAAmED,GAGnFpS,KAAKsS,sBAAqB,IAEnB,IAKfC,WApEa,SAoEFjS,EAAMmC,GACb,IACMmO,EAAUH,GAASC,WAAWhQ,KAAKV,MACnCwS,GAAe5B,EAAQD,KAAqB,GAAdC,EAAQ/R,KAAtC,IAAkDmB,KAAKuG,OAAOkM,WAG9DC,EAAOrP,SAASsP,gBALJ,6BAK+B,OACjDnQ,EACIkQ,EACArI,EAAO5H,GACHmQ,KAAM,eACNC,UAAW,WAKnB,IAAMC,EAAMzP,SAASsP,gBAfH,6BAe8B,OAC1CrH,EAAUkH,EAAV,IAAsBlS,EAc5B,MATI,SAAUwS,EACVA,EAAIC,eAAe,+BAAgC,OAAQzH,GAE3DwH,EAAIC,eAAe,+BAAgC,aAAczH,GAIrEoH,EAAKpQ,YAAYwQ,GAEVJ,GAIXM,YAvGa,SAuGD1S,GAAiB,IAAX2S,EAAWpT,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,MAMnBuD,GAHF2F,IAAK,MACLE,QAAS,WAEW3I,IAASsM,EAAStM,EAAMN,KAAKuG,QAKrD,OAAOpD,EAAc,OAHF7G,OAAOgF,UAAW2R,GACjCrO,OAAQqO,EAAKrO,MAAO5E,KAAKuG,OAAOC,WAAWzB,QAAQpC,OAAOxG,SAAS+W,KAAK,OAEnC9P,IAI7C+P,YAtHa,SAsHD/P,GACR,GAAIpG,EAAGkC,MAAMkE,GACT,OAAO,KAGX,IAAMgQ,EAAQjQ,EAAc,QACxByB,MAAO5E,KAAKuG,OAAOC,WAAW6M,KAAKxQ,QAavC,OAVAuQ,EAAM9Q,YACFa,EACI,QAEIyB,MAAO5E,KAAKuG,OAAOC,WAAW6M,KAAKD,OAEvChQ,IAIDgQ,GAIXE,aA7Ia,SA6IAC,EAAYN,GACrB,IAAMO,EAASrQ,EAAc,UACvBV,EAAanG,OAAOgF,UAAW2R,GACjC3S,EAAOiM,EAAYgH,GAEnB3T,GAAS,EACT6T,OAAAA,EACAf,OAAAA,EACAgB,OAAAA,EACAC,OAAAA,EAeJ,OAbM,SAAUlR,IACZA,EAAWnC,KAAO,UAGlB,UAAWmC,EACNA,EAAWmC,MAAMmB,SAAS/F,KAAKuG,OAAOC,WAAWoN,WAClDnR,EAAWmC,OAAX,IAAwB5E,KAAKuG,OAAOC,WAAWoN,SAGnDnR,EAAWmC,MAAQ5E,KAAKuG,OAAOC,WAAWoN,QAItCL,GACJ,IAAK,OACD3T,GAAS,EACT6T,EAAQ,OACRC,EAAe,QACfhB,EAAO,OACPiB,EAAc,QACd,MAEJ,IAAK,OACD/T,GAAS,EACT6T,EAAQ,OACRC,EAAe,SACfhB,EAAO,SACPiB,EAAc,QACd,MAEJ,IAAK,WACD/T,GAAS,EACT6T,EAAQ,iBACRC,EAAe,kBACfhB,EAAO,eACPiB,EAAc,cACd,MAEJ,IAAK,aACD/T,GAAS,EACT6T,EAAQ,kBACRC,EAAe,iBACfhB,EAAO,mBACPiB,EAAc,kBACd,MAEJ,IAAK,aACDlR,EAAWmC,OAAX,IAAwB5E,KAAKuG,OAAOC,WAAWoN,QAA/C,aACAtT,EAAO,OACPmT,EAAQ,OACRf,EAAO,OACP,MAEJ,QACIe,EAAQnT,EACRoS,EAAOa,EAIX3T,GAEA4T,EAAOlR,YACHmO,GAAS8B,WAAW7R,KAAKV,KAAM2T,GAC3B/O,MAAO,mBAGf4O,EAAOlR,YACHmO,GAAS8B,WAAW7R,KAAKV,KAAM0S,GAC3B9N,MAAO,uBAKf4O,EAAOlR,YACHmO,GAASuC,YAAYtS,KAAKV,KAAM0T,GAC5B9O,MAAO,oBAGf4O,EAAOlR,YACHmO,GAASuC,YAAYtS,KAAKV,KAAMyT,GAC5B7O,MAAO,0BAIf4O,EAAOlR,YAAYmO,GAAS8B,WAAW7R,KAAKV,KAAM0S,IAClDc,EAAOlR,YAAYmO,GAASuC,YAAYtS,KAAKV,KAAMyT,KAIvDpJ,EAAO5H,EAAYwB,EAA0BjE,KAAKuG,OAAO0K,UAAUC,QAAQ5Q,GAAOmC,IAElFD,EAAcgR,EAAQ/Q,GAGT,SAATnC,GACKtD,EAAGU,MAAMsC,KAAK0B,SAASwP,QAAQ5Q,MAChCN,KAAK0B,SAASwP,QAAQ5Q,OAG1BN,KAAK0B,SAASwP,QAAQ5Q,GAAME,KAAKgT,IAEjCxT,KAAK0B,SAASwP,QAAQ5Q,GAAQkT,EAIlC,IAAMhP,EAAYxE,KAAKuG,OAAOC,WAAWqN,eAWzC,OAVAvX,OAAOgD,eAAekU,EAAQ,WAC1BM,YAAY,EACZvU,IAFqC,WAGjC,OAAOiG,EAASgO,EAAQhP,IAE5B+F,IALqC,WAKhB,IAAjBwJ,EAAiBlU,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GACjBqF,EAAYsO,EAAQhP,EAAWuP,MAIhCP,GAIXQ,YAhRa,SAgRD1T,EAAMmC,GAEd,IAAMzG,EAAQmH,EACV,QACAkH,EACIpG,EAA0BjE,KAAKuG,OAAO0K,UAAUW,OAAOtR,KAEnDA,KAAM,QACN2T,IAAK,EACLC,IAAK,IACLC,KAAM,IACNtR,MAAO,EACPuR,aAAc,MAEdxB,KAAM,SACNyB,aAAczH,EAAStM,EAAMN,KAAKuG,QAClC+N,gBAAiB,EACjBC,gBAAiB,IACjBC,gBAAiB,GAErB/R,IASR,OALAzC,KAAK0B,SAASkQ,OAAOtR,GAAQtE,EAG7ByU,GAASgE,gBAAgB/T,KAAKV,KAAMhE,GAE7BA,GAIX0Y,eAjTa,SAiTEpU,EAAMmC,GACjB,IAAMkP,EAAWxO,EACb,WACAkH,EACIpG,EAA0BjE,KAAKuG,OAAO0K,UAAUc,QAAQzR,KAEpD2T,IAAK,EACLC,IAAK,IACLrR,MAAO,EACP+P,KAAM,eACN+B,eAAe,GAEnBlS,IAKR,GAAa,WAATnC,EAAmB,CACnBqR,EAASrP,YAAYa,EAAc,OAAQ,KAAM,MAEjD,IAAMyR,GACFC,OAAQ,SACR7C,OAAQ,YACV1R,GACIwU,EAASF,EAAYhI,EAASgI,EAAW5U,KAAKuG,QAAU,GAE9DoL,EAASrO,UAAT,KAA0BwR,EAAOxI,cAKrC,OAFAtM,KAAK0B,SAASqQ,QAAQzR,GAAQqR,EAEvBA,GAIXoD,WApVa,SAoVFzU,GACP,IAAMmC,EAAawB,EAA0BjE,KAAKuG,OAAO0K,UAAUc,QAAQzR,IAErE2F,EAAY9C,EACd,MACAkH,EAAO5H,GACHmC,OAAU5E,KAAKuG,OAAOC,WAAWuL,QAAQ5B,KAAlC,KAA0C1N,EAAWmC,MAAQnC,EAAWmC,MAAQ,KAAKL,OAC5F8P,aAAczH,EAAStM,EAAMN,KAAKuG,UAEtC,SAMJ,OAFAvG,KAAK0B,SAASqQ,QAAQzR,GAAQ2F,EAEvBA,GAMX+O,sBAzWa,SAyWSC,EAAU3U,GAAM,IAAAP,EAAAC,KAElCS,EACIwU,EACA,gBACA,SAAA/W,GAEI,IAAM,GAAI,GAAI,GAAI,IAAI6H,SAAS7H,EAAMgX,SAKrChX,EAAMiX,iBACNjX,EAAMkX,kBAGa,YAAflX,EAAMoC,MAAV,CAIA,IAAM+U,EAAgB5P,EAAQwP,EAAU,0BAGxC,IAAKI,IAAkB,GAAI,IAAItP,SAAS7H,EAAMgX,OAC1CzE,GAAS6E,cAAc5U,KAAKX,EAAMO,GAAM,OACrC,CACH,IAAImL,OAAAA,EAEgB,KAAhBvN,EAAMgX,QACc,KAAhBhX,EAAMgX,OAAiBG,GAAiC,KAAhBnX,EAAMgX,OAC9CzJ,EAASwJ,EAASM,mBAEbvY,EAAGc,QAAQ2N,KACZA,EAASwJ,EAAS9S,WAAWqT,qBAGjC/J,EAASwJ,EAASQ,uBAEbzY,EAAGc,QAAQ2N,KACZA,EAASwJ,EAAS9S,WAAWuT,mBAIrCtP,EAAS1F,KAAKX,EAAM0L,GAAQ,QAIxC,GAKJhL,EAAGwU,EAAU,QAAS,SAAA/W,GACE,KAAhBA,EAAMgX,OAIVzE,GAASkF,mBAAmBjV,KAAKX,EAAM,MAAM,MAKrD6V,eAvaa,SAAAhT,GAua+D,IAAAiT,EAAA7V,KAA3D6C,EAA2DD,EAA3DC,MAAOiT,EAAoDlT,EAApDkT,KAAMxV,EAA8CsC,EAA9CtC,KAAM0M,EAAwCpK,EAAxCoK,MAAwC+I,EAAAnT,EAAjCwQ,MAAAA,OAAiCtT,IAAAiW,EAAzB,KAAyBA,EAAAC,EAAApT,EAAnBqT,QAAAA,OAAmBnW,IAAAkW,GAAAA,EAClEvT,EAAawB,EAA0BjE,KAAKuG,OAAO0K,UAAUW,OAAOtR,IAEpE2U,EAAW9R,EACb,SACAkH,EAAO5H,GACHnC,KAAM,SACNsS,KAAM,gBACNhO,OAAU5E,KAAKuG,OAAOC,WAAWoN,QAA1B,KAAqCnR,EAAWmC,MAAQnC,EAAWmC,MAAQ,KAAKL,OACvF2R,eAAgBD,EAChBpT,MAAAA,KAIFsT,EAAOhT,EAAc,QAG3BgT,EAAKxJ,UAAYK,EAEbhQ,EAAGc,QAAQsV,IACX+C,EAAK7T,YAAY8Q,GAGrB6B,EAAS3S,YAAY6T,GAGrB7Z,OAAOgD,eAAe2V,EAAU,WAC5BnB,YAAY,EACZvU,IAFuC,WAGnC,MAAiD,SAA1C0V,EAAS9K,aAAa,iBAEjCI,IALuC,SAKnC0L,GAEIA,GACAvZ,MAAMmF,KAAKoT,EAAS9S,WAAWiU,UAC1BzT,OAAO,SAAA0T,GAAA,OAAQ5Q,EAAQ4Q,EAAM,4BAC7BhW,QAAQ,SAAAgW,GAAA,OAAQA,EAAKnT,aAAa,eAAgB,WAG3D+R,EAAS/R,aAAa,eAAgB+S,EAAU,OAAS,YAIjEjW,KAAKsW,UAAUC,KACXtB,EACA,cACA,SAAA/W,GACI,IAAIlB,EAAGoB,cAAcF,IAA0B,KAAhBA,EAAMgX,MAArC,CASA,OALAhX,EAAMiX,iBACNjX,EAAMkX,kBAENH,EAASgB,SAAU,EAEX3V,GACJ,IAAK,WACDuV,EAAKW,aAAepZ,OAAOyF,GAC3B,MAEJ,IAAK,UACDgT,EAAK7K,QAAUnI,EACf,MAEJ,IAAK,QACDgT,EAAKY,MAAQC,WAAW7T,GAOhC4N,GAAS6E,cAAc5U,KAAKmV,EAAM,OAAQ7Y,EAAGoB,cAAcF,MAE/DoC,GACA,GAGJmQ,GAASuE,sBAAsBtU,KAAKV,KAAMiV,EAAU3U,GAEpDwV,EAAKxT,YAAY2S,IAIrB/E,WA5fa,WA4f0B,IAA5BC,EAA4BtQ,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAArB,EAAGwQ,EAAkBxQ,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GAEnC,OAAK7C,EAAGG,OAAOgT,GAORD,GAAWC,EAFCL,GAAS9P,KAAKiS,UAAY,EAET5B,GANzBF,GAUfwG,kBAzgBa,WAygBgD,IAA3ClL,EAA2C5L,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAAlC,KAAMsQ,EAA4BtQ,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAArB,EAAGwQ,EAAkBxQ,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GAEpD7C,EAAGc,QAAQ2N,IAAYzO,EAAGG,OAAOgT,KAKtC1E,EAAOnI,UAAYmN,GAASP,WAAWC,EAAME,KAIjDuG,aAphBa,WAqhBJ5W,KAAKZ,UAAUyJ,KAKhB7L,EAAGc,QAAQkC,KAAK0B,SAASkQ,OAAOE,SAChCrB,GAASoG,SAASnW,KAAKV,KAAMA,KAAK0B,SAASkQ,OAAOE,OAAQ9R,KAAK8W,MAAQ,EAAI9W,KAAK8R,QAIhF9U,EAAGc,QAAQkC,KAAK0B,SAASwP,QAAQK,QACjCvR,KAAK0B,SAASwP,QAAQK,KAAKwC,QAAU/T,KAAK8W,OAAyB,IAAhB9W,KAAK8R,UAKhE+E,SAriBa,SAqiBJpL,GAAmB,IAAX5I,EAAWhD,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAAH,EAChB7C,EAAGc,QAAQ2N,KAKhBA,EAAO5I,MAAQA,EAGf4N,GAASgE,gBAAgB/T,KAAKV,KAAMyL,KAIxCsL,eAljBa,SAkjBE7Y,GAAO,IAAA8Y,EAAAhX,KAClB,GAAKA,KAAKZ,UAAUyJ,IAAO7L,EAAGkB,MAAMA,GAApC,CAIA,IPvjBsB+Y,EAAS/C,EOujB3BrR,EAAQ,EAkBZ,GAAI3E,EACA,OAAQA,EAAMoC,MAEV,IAAK,aACL,IAAK,UACL,IAAK,SP9kBS2W,EO+kBYjX,KAAKyK,YP/kBRyJ,EO+kBqBlU,KAAKiS,SAA7CpP,EP9kBA,IAAZoU,GAAyB,IAAR/C,GAAa9W,OAAOC,MAAM4Z,IAAY7Z,OAAOC,MAAM6W,GAC7D,GAGH+C,EAAU/C,EAAM,KAAKgD,QAAQ,GO6kBF,eAAfhZ,EAAMoC,MACNmQ,GAASoG,SAASnW,KAAKV,KAAMA,KAAK0B,SAASkQ,OAAOC,KAAMhP,GAG5D,MAGJ,IAAK,UACL,IAAK,YAjCO,SAAC4I,EAAQzP,GACzB,IAAM6G,EAAQ7F,EAAGG,OAAOnB,GAASA,EAAQ,EACnC2V,EAAW3U,EAAGc,QAAQ2N,GAAUA,EAASuL,EAAKtV,SAASqQ,QAAQC,OAGrE,GAAIhV,EAAGc,QAAQ6T,GAAW,CACtBA,EAAS9O,MAAQA,EAGjB,IAAM4Q,EAAQ9B,EAASwF,qBAAqB,QAAQ,GAChDna,EAAGc,QAAQ2V,KACXA,EAAM9P,WAAW,GAAGyT,UAAYvU,IAuBhCwU,CAAYrX,KAAK0B,SAASqQ,QAAQC,OAAwB,IAAhBhS,KAAKsX,aAW/D7C,gBAtmBa,SAsmBGhJ,GAEZ,IAAMtE,EAAQnK,EAAGkB,MAAMuN,GAAUA,EAAOA,OAASA,EAGjD,GAAKzO,EAAGc,QAAQqJ,IAAyC,UAA/BA,EAAMgD,aAAa,QAA7C,CAKA,GAAI1E,EAAQ0B,EAAOnH,KAAKuG,OAAO0K,UAAUW,OAAOC,MAAO,CACnD1K,EAAMjE,aAAa,gBAAiBlD,KAAKyK,aACzC,IAAMA,EAAcgG,GAASP,WAAWlQ,KAAKyK,aACvCwH,EAAWxB,GAASP,WAAWlQ,KAAKiS,UACpCpG,EAASe,EAAS,YAAa5M,KAAKuG,QAC1CY,EAAMjE,aACF,iBACA2I,EAAOpH,QAAQ,gBAAiBgG,GAAahG,QAAQ,aAAcwN,SAEpE,GAAIxM,EAAQ0B,EAAOnH,KAAKuG,OAAO0K,UAAUW,OAAOE,QAAS,CAC5D,IAAMyF,EAAwB,IAAdpQ,EAAMtE,MACtBsE,EAAMjE,aAAa,gBAAiBqU,GACpCpQ,EAAMjE,aAAa,iBAAqBqU,EAAQL,QAAQ,GAAxD,UAEA/P,EAAMjE,aAAa,gBAAiBiE,EAAMtE,OAIzCuE,EAAQG,UAKbJ,EAAMJ,MAAMyQ,YAAY,UAAcrQ,EAAMtE,MAAQsE,EAAM+M,IAAM,IAAhE,OAIJuD,kBA3oBa,SA2oBKvZ,GAAO,IAAAwZ,EAAA1X,KAErB,GACKA,KAAKuG,OAAOoR,SAAS9F,MACrB7U,EAAGc,QAAQkC,KAAK0B,SAASkQ,OAAOC,OAChC7U,EAAGc,QAAQkC,KAAK0B,SAASqQ,QAAQG,cAChB,IAAlBlS,KAAKiS,SAJT,CAUA,IAAIsF,EAAU,EACRK,EAAa5X,KAAK0B,SAASiQ,SAASkG,wBACpCC,EAAa9X,KAAKuG,OAAOC,WAAW2L,QAApC,YAEAvS,EAAS,SAAAmY,GACX7S,EAAYwS,EAAKhW,SAASqQ,QAAQG,YAAa4F,EAASlY,IAI5D,GAAII,KAAK4J,MACLhK,GAAO,OADX,CAMA,GAAI5C,EAAGkB,MAAMA,GACTqZ,EAAU,IAAMK,EAAWI,OAAS9Z,EAAM+Z,MAAQL,EAAWM,UAC1D,CAAA,IAAI1S,EAASxF,KAAK0B,SAASqQ,QAAQG,YAAa4F,GAGnD,OAFAP,EAAUb,WAAW1W,KAAK0B,SAASqQ,QAAQG,YAAYnL,MAAMmR,KAAM,IAMnEX,EAAU,EACVA,EAAU,EACHA,EAAU,MACjBA,EAAU,KAId9G,GAASkG,kBAAkBjW,KAAKV,KAAMA,KAAK0B,SAASqQ,QAAQG,YAAalS,KAAKiS,SAAW,IAAMsF,GAG/FvX,KAAK0B,SAASqQ,QAAQG,YAAYnL,MAAMmR,KAAUX,EAAlD,IAIIva,EAAGkB,MAAMA,KAAW,aAAc,cAAc6H,SAAS7H,EAAMoC,OAC/DV,EAAsB,eAAf1B,EAAMoC,SAKrB6X,WAnsBa,SAmsBFja,GAEP,IAAMka,GAAUpb,EAAGc,QAAQkC,KAAK0B,SAASqQ,QAAQE,WAAajS,KAAKuG,OAAO8R,WAG1E5H,GAASkG,kBAAkBjW,KACvBV,KACAA,KAAK0B,SAASqQ,QAAQtH,YACtB2N,EAASpY,KAAKiS,SAAWjS,KAAKyK,YAAczK,KAAKyK,YACjD2N,GAIAla,GAAwB,eAAfA,EAAMoC,MAAyBN,KAAKwJ,MAAM8O,SAKvD7H,GAASsG,eAAerW,KAAKV,KAAM9B,IAIvCqa,eAztBa,WA2tBT,GAAKvY,KAAKZ,UAAUyJ,KAAQ7I,KAAKuG,OAAO8R,aAAcrY,KAAKyK,aAA3D,CAQA,GAAIzK,KAAKiS,UAALuG,KAAAC,IAAiB,EAAK,IAGtB,OAFA3T,EAAa9E,KAAK0B,SAASqQ,QAAQtH,aAAa,QAChD3F,EAAa9E,KAAK0B,SAASiQ,UAAU,GAKrC3U,EAAGc,QAAQkC,KAAK0B,SAASkQ,OAAOC,OAChC7R,KAAK0B,SAASkQ,OAAOC,KAAK3O,aAAa,gBAAiBlD,KAAKiS,UAIjE,IAAMyG,EAAc1b,EAAGc,QAAQkC,KAAK0B,SAASqQ,QAAQE,WAGhDyG,GAAe1Y,KAAKuG,OAAOoS,iBAAmB3Y,KAAK0K,QACpD+F,GAASkG,kBAAkBjW,KAAKV,KAAMA,KAAK0B,SAASqQ,QAAQtH,YAAazK,KAAKiS,UAI9EyG,GACAjI,GAASkG,kBAAkBjW,KAAKV,KAAMA,KAAK0B,SAASqQ,QAAQE,SAAUjS,KAAKiS,UAI/ExB,GAASgH,kBAAkB/W,KAAKV,QAIpC4Y,iBAhwBa,SAgwBIC,EAASjZ,GACtBkF,EAAa9E,KAAK0B,SAAS8P,SAASN,QAAQ2H,IAAWjZ,IAI3DkZ,cArwBa,SAqwBCD,EAAS5S,EAAWjK,GAC9B,IAAM+c,EAAO/Y,KAAK0B,SAAS8P,SAASwH,OAAOH,GACvChW,EAAQ,KACRiT,EAAO7P,EAEX,GAAgB,aAAZ4S,EACAhW,EAAQ7C,KAAKwW,iBACV,CASH,GARA3T,EAAS7F,EAAGkC,MAAMlD,GAAiBgE,KAAK6Y,GAAb7c,EAGvBgB,EAAGkC,MAAM2D,KACTA,EAAQ7C,KAAKuG,OAAOsS,GAASI,UAI5Bjc,EAAGkC,MAAMc,KAAKX,QAAQwZ,MAAc7Y,KAAKX,QAAQwZ,GAAS9S,SAASlD,GAEpE,YADA7C,KAAKmL,MAAMkH,KAAX,yBAAyCxP,EAAzC,SAAuDgW,GAK3D,IAAK7Y,KAAKuG,OAAOsS,GAASxZ,QAAQ0G,SAASlD,GAEvC,YADA7C,KAAKmL,MAAMkH,KAAX,sBAAsCxP,EAAtC,SAAoDgW,GAW5D,GALK7b,EAAGc,QAAQgY,KACZA,EAAOiD,GAAQA,EAAK5S,cAAc,kBAIjCnJ,EAAGc,QAAQgY,GAAhB,CAKc9V,KAAK0B,SAAS8P,SAASN,QAAQ2H,GAAS1S,cAAxC,IAA0DnG,KAAKuG,OAAOC,WAAW6M,KAAKxQ,OAC9F8J,UAAY8D,GAASyI,SAASxY,KAAKV,KAAM6Y,EAAShW,GAGxD,IAAM4I,EAASqK,GAAQA,EAAK3P,cAAL,WAA8BtD,EAA9B,MAEnB7F,EAAGc,QAAQ2N,KACXA,EAAOwK,SAAU,KAKzBiD,SAxzBa,SAwzBJL,EAAShW,GACd,OAAQgW,GACJ,IAAK,QACD,OAAiB,IAAVhW,EAAc+J,EAAS,SAAU5M,KAAKuG,QAAa1D,EAAnD,UAEX,IAAK,UACD,GAAI7F,EAAGG,OAAO0F,GAAQ,CAClB,IAAM4Q,EAAQ7G,EAAA,gBAAyB/J,EAAS7C,KAAKuG,QAErD,OAAKkN,EAAM3W,OAIJ2W,EAHO5Q,EAAV,IAMR,OAAOsJ,EAAYtJ,GAEvB,IAAK,WACD,OAAO4O,GAASyH,SAASxY,KAAKV,MAElC,QACI,OAAO,OAKnBmZ,eAn1Ba,SAm1BE9Z,GAAS,IAAA+Z,EAAApZ,KAEpB,GAAKhD,EAAGc,QAAQkC,KAAK0B,SAAS8P,SAASwH,OAAOhO,SAA9C,CAIA,IACM8K,EAAO9V,KAAK0B,SAAS8P,SAASwH,OAAOhO,QAAQ7E,cAAc,iBAG7DnJ,EAAGU,MAAM2B,KACTW,KAAKX,QAAQ2L,QAAUkC,EAAO7N,GAASsD,OAAO,SAAAqI,GAAA,OAAWoO,EAAK7S,OAAOyE,QAAQ3L,QAAQ0G,SAASiF,MAIlG,IAAMpL,GAAU5C,EAAGkC,MAAMc,KAAKX,QAAQ2L,UAAYhL,KAAKX,QAAQ2L,QAAQlO,OAAS,EAUhF,GATA2T,GAASmI,iBAAiBlY,KAAKV,KAVlB,UAU8BJ,GAG3C8D,EAAaoS,GAGbrF,GAAS4I,UAAU3Y,KAAKV,MAGnBJ,EAAL,CAgBAI,KAAKX,QAAQ2L,QACRsO,KAAK,SAACC,EAAGC,GACN,IAAMC,EAAUL,EAAK7S,OAAOyE,QAAQ3L,QACpC,OAAOoa,EAAQrM,QAAQmM,GAAKE,EAAQrM,QAAQoM,GAAK,GAAK,IAEzDnZ,QAAQ,SAAA2K,GACLyF,GAASmF,eAAelV,KAAK0Y,GACzBvW,MAAOmI,EACP8K,KAAAA,EACAxV,KA5CC,UA6CD0M,MAAOyD,GAASyI,SAASxY,KAAK0Y,EAAM,UAAWpO,GAC/CoI,MAtBK,SAAApI,GACb,IAAMyI,EAAQ7G,EAAA,gBAAyB5B,EAAWoO,EAAK7S,QAEvD,OAAKkN,EAAM3W,OAIJ2T,GAAS0C,YAAYzS,KAAK0Y,EAAM3F,GAH5B,KAkBIiG,CAAS1O,OAI5ByF,GAASqI,cAAcpY,KAAKV,KAlDf,UAkD2B8V,MAmD5C6D,gBA97Ba,WA87BK,IAAAC,EAAA5Z,KAEd,GAAKhD,EAAGc,QAAQkC,KAAK0B,SAAS8P,SAASwH,OAAOvH,UAA9C,CAKA,IACMqE,EAAO9V,KAAK0B,SAAS8P,SAASwH,OAAOvH,SAAStL,cAAc,iBAC5D0T,EAASpI,GAASqI,UAAUpZ,KAAKV,MACjCJ,EAASzD,QAAQ0d,EAAO/c,QAY9B,GATA2T,GAASmI,iBAAiBlY,KAAKV,KANlB,WAM8BJ,GAG3C8D,EAAaoS,GAGbrF,GAAS4I,UAAU3Y,KAAKV,MAGnBJ,EAAL,CAKA,IAAMP,EAAUwa,EAAOzU,IAAI,SAAC1G,EAAOmE,GAAR,OACvBA,MAAAA,EACAoT,QAAS2D,EAAKnI,SAASsI,SAAWH,EAAKpD,eAAiB3T,EACxDmK,MAAOyE,GAASyH,SAASxY,KAAKkZ,EAAMlb,GACpC0U,MAAO1U,EAAMsb,UAAYvJ,GAAS0C,YAAYzS,KAAKkZ,EAAMlb,EAAMsb,SAAS5N,eACxE0J,KAAAA,EACAxV,KAAM,cAIVjB,EAAQ4a,SACJpX,OAAQ,EACRoT,SAAUjW,KAAKyR,SAASsI,QACxB/M,MAAOJ,EAAS,WAAY5M,KAAKuG,QACjCuP,KAAAA,EACAxV,KAAM,aAIVjB,EAAQgB,QAAQoQ,GAASmF,eAAeW,KAAKvW,OAE7CyQ,GAASqI,cAAcpY,KAAKV,KAzCf,WAyC2B8V,MAI5CoE,aAl/Ba,SAk/BA7a,GAAS,IAAA8a,EAAAna,KAElB,GAAKhD,EAAGc,QAAQkC,KAAK0B,SAAS8P,SAASwH,OAAOvC,OAA9C,CAIA,IACMX,EAAO9V,KAAK0B,SAAS8P,SAASwH,OAAOvC,MAAMtQ,cAAc,iBAG3DnJ,EAAGU,MAAM2B,GACTW,KAAKX,QAAQoX,MAAQpX,GACdW,KAAKuJ,SAAWvJ,KAAKoa,WAC5Bpa,KAAKX,QAAQoX,OAAS,GAAK,IAAM,EAAG,KAAM,IAAK,KAAM,IAIzDzW,KAAKX,QAAQoX,MAAQzW,KAAKX,QAAQoX,MAAM9T,OAAO,SAAA8T,GAAA,OAAS0D,EAAK5T,OAAOkQ,MAAMpX,QAAQ0G,SAAS0Q,KAG3F,IAAM7W,GAAU5C,EAAGkC,MAAMc,KAAKX,QAAQoX,QAAUzW,KAAKX,QAAQoX,MAAM3Z,OAAS,EAC5E2T,GAASmI,iBAAiBlY,KAAKV,KAflB,QAe8BJ,GAG3C8D,EAAaoS,GAGbrF,GAAS4I,UAAU3Y,KAAKV,MAGnBJ,IAKLI,KAAKX,QAAQoX,MAAMpW,QAAQ,SAAAoW,GACvBhG,GAASmF,eAAelV,KAAKyZ,GACzBtX,MAAO4T,EACPX,KAAAA,EACAxV,KAjCK,QAkCL0M,MAAOyD,GAASyI,SAASxY,KAAKyZ,EAAM,QAAS1D,OAIrDhG,GAASqI,cAAcpY,KAAKV,KAtCf,QAsC2B8V,MAI5CuD,UAliCa,WAkiCD,IACAnI,EAAYlR,KAAK0B,SAAS8P,SAA1BN,QACF4G,GAAW9a,EAAGkC,MAAMgS,IAAY5U,OAAO+d,OAAOnJ,GAASoJ,KAAK,SAAA9G,GAAA,OAAWA,EAAOzO,SAEpFD,EAAa9E,KAAK0B,SAAS8P,SAAS6B,MAAOyE,IAI/CnC,mBA1iCa,SA0iCMoD,GAAwB,IAAlB1S,EAAkBxG,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GACvC,IAAIG,KAAK0B,SAAS8P,SAAS+I,MAAMxV,OAAjC,CAIA,IAAI0G,EAASsN,EAER/b,EAAGc,QAAQ2N,KACZA,EAASnP,OAAO+d,OAAOra,KAAK0B,SAAS8P,SAASwH,QAAQlS,KAAK,SAAAiS,GAAA,OAASA,EAAKhU,UAG7E,IAAMyV,EAAY/O,EAAOtF,cAAc,sBAEvCC,EAAS1F,KAAKV,KAAMwa,EAAWnU,KAInCoU,WA3jCa,SA2jCFze,GAAO,IACNue,EAAUva,KAAK0B,SAAS8P,SAAxB+I,MACF/G,EAASxT,KAAK0B,SAASwP,QAAQM,SAGrC,GAAKxU,EAAGc,QAAQyc,IAAWvd,EAAGc,QAAQ0V,GAAtC,CALc,IAUNzO,EAAWwV,EAAXxV,OACJ2V,EAAO3V,EAEX,GAAI/H,EAAGO,QAAQvB,GACX0e,EAAO1e,OACJ,GAAIgB,EAAGoB,cAAcpC,IAA0B,KAAhBA,EAAMkZ,MACxCwF,GAAO,OACJ,GAAI1d,EAAGkB,MAAMlC,GAAQ,CACxB,IAAM2e,EAAaJ,EAAMhV,SAASvJ,EAAMyP,QAKxC,GAAIkP,IAAgBA,GAAc3e,EAAMyP,SAAW+H,GAAUkH,EACzD,OAKRlH,EAAOtQ,aAAa,gBAAiBwX,GAGrC5V,EAAayV,GAAQG,GAGrBxV,EAAYlF,KAAK0B,SAASuE,UAAWjG,KAAKuG,OAAOC,WAAW6M,KAAKxE,KAAM6L,GAGnEA,GAAQ1d,EAAGoB,cAAcpC,GACzByU,GAASkF,mBAAmBjV,KAAKV,KAAM,MAAM,GAGvC0a,GAAS3V,GACfqB,EAAS1F,KAAKV,KAAMwT,EAAQxW,EAAGoB,cAAcpC,MAKrD4e,YA3mCa,SA2mCDC,GACR,IAAMC,EAAQD,EAAI5Y,WAAU,GAC5B6Y,EAAM/T,MAAMgU,SAAW,WACvBD,EAAM/T,MAAMiU,QAAU,EACtBF,EAAM7V,gBAAgB,UAGtB4V,EAAI1Y,WAAWG,YAAYwY,GAG3B,IAAM9C,EAAQ8C,EAAMG,YACdC,EAASJ,EAAMK,aAKrB,OAFA3X,EAAcsX,IAGV9C,MAAAA,EACAkD,OAAAA,IAKR5F,cAloCa,WAkoC8B,IAAA8F,EAAApb,KAA7BM,EAA6BT,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAAtB,GAAIwG,EAAkBxG,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GACjC4L,EAASpI,SAAS6L,eAAT,iBAAyClP,KAAK6E,GAA9C,IAAoDvE,GAGnE,GAAKtD,EAAGc,QAAQ2N,GAAhB,CAKA,IAAMxF,EAAYwF,EAAOtJ,WACnB8U,EAAUva,MAAMmF,KAAKoE,EAAUmQ,UAAUtP,KAAK,SAAAuP,GAAA,OAASA,EAAKtR,SAGlE,GAAIsD,EAAQwB,cAAgBxB,EAAQyB,cAAe,CAE/C7D,EAAUc,MAAMiR,MAAWf,EAAQgE,YAAnC,KACAhV,EAAUc,MAAMmU,OAAYjE,EAAQkE,aAApC,KAGA,IAAME,EAAO5K,GAASmK,YAAYla,KAAKV,KAAMyL,GAkB7ChL,EAAGC,KAAKV,KAAMiG,EAAWQ,EAfT,SAAV6U,EAAUpd,GAERA,EAAMuN,SAAWxF,IAAe,QAAS,UAAUF,SAAS7H,EAAMqd,gBAKtEtV,EAAUc,MAAMiR,MAAQ,GACxB/R,EAAUc,MAAMmU,OAAS,GAGzBva,EAAID,KAAK0a,EAAMnV,EAAWQ,EAAoB6U,MAOlDrV,EAAUc,MAAMiR,MAAWqD,EAAKrD,MAAhC,KACA/R,EAAUc,MAAMmU,OAAYG,EAAKH,OAAjC,KAIJpW,EAAamS,GAAS,GAGtBnS,EAAa2G,GAAQ,GAGrBgF,GAASkF,mBAAmBjV,KAAKV,KAAMyL,EAAQpF,KAKnDmV,OA1rCa,SA0rCNpM,GAAM,IAAAqM,EAAAzb,KAEHiG,EAAY9C,EAAc,MAAOc,EAA0BjE,KAAKuG,OAAO0K,UAAUR,SAAS9O,UAuBhG,GApBI3B,KAAKuG,OAAOkK,SAAS1K,SAAS,YAC9BE,EAAU3D,YAAYmO,GAAS6C,aAAa5S,KAAKV,KAAM,YAIvDA,KAAKuG,OAAOkK,SAAS1K,SAAS,WAC9BE,EAAU3D,YAAYmO,GAAS6C,aAAa5S,KAAKV,KAAM,WAIvDA,KAAKuG,OAAOkK,SAAS1K,SAAS,SAC9BE,EAAU3D,YAAYmO,GAAS6C,aAAa5S,KAAKV,KAAM,SAIvDA,KAAKuG,OAAOkK,SAAS1K,SAAS,iBAC9BE,EAAU3D,YAAYmO,GAAS6C,aAAa5S,KAAKV,KAAM,iBAIvDA,KAAKuG,OAAOkK,SAAS1K,SAAS,YAAa,CAC3C,IAAM4L,EAAWxO,EAAc,MAAOc,EAA0BjE,KAAKuG,OAAO0K,UAAUU,WAetF,GAZAA,EAASrP,YACLmO,GAASuD,YAAYtT,KAAKV,KAAM,QAC5B6E,GAAAA,aAAiBuK,EAAKvK,MAK9B8M,EAASrP,YAAYmO,GAASiE,eAAehU,KAAKV,KAAM,WAKpDA,KAAKuG,OAAOoR,SAAS9F,KAAM,CAC3B,IAAMM,EAAUhP,EACZ,QAEIyB,MAAO5E,KAAKuG,OAAOC,WAAW2L,SAElC,SAGJR,EAASrP,YAAY6P,GACrBnS,KAAK0B,SAASqQ,QAAQG,YAAcC,EAGxCnS,KAAK0B,SAASiQ,SAAWA,EACzB1L,EAAU3D,YAAYtC,KAAK0B,SAASiQ,UAmBxC,GAfI3R,KAAKuG,OAAOkK,SAAS1K,SAAS,iBAC9BE,EAAU3D,YAAYmO,GAASsE,WAAWrU,KAAKV,KAAM,gBAIrDA,KAAKuG,OAAOkK,SAAS1K,SAAS,aAC9BE,EAAU3D,YAAYmO,GAASsE,WAAWrU,KAAKV,KAAM,aAIrDA,KAAKuG,OAAOkK,SAAS1K,SAAS,SAC9BE,EAAU3D,YAAYmO,GAAS6C,aAAa5S,KAAKV,KAAM,SAIvDA,KAAKuG,OAAOkK,SAAS1K,SAAS,UAAW,CACzC,IAAM+L,EAAS3O,EAAc,OACzByB,MAAO,iBAILnC,GACFyR,IAAK,EACLC,KAAM,IACNtR,MAAO7C,KAAKuG,OAAOuL,QAIvBA,EAAOxP,YACHmO,GAASuD,YAAYtT,KACjBV,KACA,SACAqK,EAAO5H,GACHoC,GAAAA,eAAmBuK,EAAKvK,OAKpC7E,KAAK0B,SAASoQ,OAASA,EAEvB7L,EAAU3D,YAAYwP,GAS1B,GALI9R,KAAKuG,OAAOkK,SAAS1K,SAAS,aAC9BE,EAAU3D,YAAYmO,GAAS6C,aAAa5S,KAAKV,KAAM,aAIvDA,KAAKuG,OAAOkK,SAAS1K,SAAS,cAAgB/I,EAAGkC,MAAMc,KAAKuG,OAAOiL,UAAW,CAC9E,IAAMoC,EAAUzQ,EAAc,OAC1ByB,MAAO,aACPG,OAAQ,KAGZ6O,EAAQtR,YACJmO,GAAS6C,aAAa5S,KAAKV,KAAM,YAC7B0b,iBAAiB,EACjBC,gBAAA,iBAAkCvM,EAAKvK,GACvC+W,iBAAiB,KAIzB,IAAMrB,EAAQpX,EAAc,OACxByB,MAAO,wBACPC,GAAAA,iBAAqBuK,EAAKvK,GAC1BE,OAAQ,KAGN8W,EAAQ1Y,EAAc,OAEtB2Y,EAAO3Y,EAAc,OACvB0B,GAAAA,iBAAqBuK,EAAKvK,GAA1B,UAIEwO,EAAOlQ,EAAc,OACvByP,KAAM,SAGVkJ,EAAKxZ,YAAY+Q,GACjBwI,EAAMvZ,YAAYwZ,GAClB9b,KAAK0B,SAAS8P,SAASwH,OAAO8C,KAAOA,EAGrC9b,KAAKuG,OAAOiL,SAASnR,QAAQ,SAAAC,GAEzB,IAAM2U,EAAW9R,EACb,SACAkH,EAAOpG,EAA0BwX,EAAKlV,OAAO0K,UAAUC,QAAQM,WAC3DlR,KAAM,SACNsE,MAAU6W,EAAKlV,OAAOC,WAAWoN,QAAjC,IAA4C6H,EAAKlV,OAAOC,WAAWoN,QAAnE,YACAhB,KAAM,WACN8I,iBAAiB,EACjB3W,OAAQ,MAKhB0L,GAASuE,sBAAsBtU,KAAK+a,EAAMxG,EAAU3U,GAGpDG,EAAGwU,EAAU,QAAS,WAClBxE,GAAS6E,cAAc5U,KAAK+a,EAAMnb,GAAM,KAG5C,IAAM6V,EAAOhT,EAAc,OAAQ,KAAMyJ,EAAStM,EAAMmb,EAAKlV,SAEvD1D,EAAQM,EAAc,QACxByB,MAAO6W,EAAKlV,OAAOC,WAAW6M,KAAKxQ,QAIvCA,EAAM8J,UAAYyC,EAAK9O,GAEvB6V,EAAK7T,YAAYO,GACjBoS,EAAS3S,YAAY6T,GACrB9C,EAAK/Q,YAAY2S,GAGjB,IAAM8D,EAAO5V,EAAc,OACvB0B,GAAAA,iBAAqBuK,EAAKvK,GAA1B,IAAgCvE,EAChCyE,OAAQ,KAINgX,EAAa5Y,EAAc,UAC7B7C,KAAM,SACNsE,MAAU6W,EAAKlV,OAAOC,WAAWoN,QAAjC,IAA4C6H,EAAKlV,OAAOC,WAAWoN,QAAnE,WAIJmI,EAAWzZ,YACPa,EACI,QAEIwR,eAAe,GAEnB/H,EAAStM,EAAMmb,EAAKlV,UAK5BwV,EAAWzZ,YACPa,EACI,QAEIyB,MAAO6W,EAAKlV,OAAOC,WAAWzB,QAElC6H,EAAS,WAAY6O,EAAKlV,UAKlC9F,EACIsY,EACA,UACA,SAAA7a,GAEwB,KAAhBA,EAAMgX,QAKVhX,EAAMiX,iBACNjX,EAAMkX,kBAGN3E,GAAS6E,cAAc5U,KAAK+a,EAAM,QAAQ,MAE9C,GAIJhb,EAAGsb,EAAY,QAAS,WACpBtL,GAAS6E,cAAc5U,KAAK+a,EAAM,QAAQ,KAI9C1C,EAAKzW,YAAYyZ,GAGjBhD,EAAKzW,YACDa,EAAc,OACVyP,KAAM,UAIdiJ,EAAMvZ,YAAYyW,GAElB0C,EAAK/Z,SAAS8P,SAASN,QAAQ5Q,GAAQ2U,EACvCwG,EAAK/Z,SAAS8P,SAASwH,OAAO1Y,GAAQyY,IAG1CwB,EAAMjY,YAAYuZ,GAClBjI,EAAQtR,YAAYiY,GACpBtU,EAAU3D,YAAYsR,GAEtB5T,KAAK0B,SAAS8P,SAAS+I,MAAQA,EAC/Bva,KAAK0B,SAAS8P,SAAS6B,KAAOO,EA+BlC,OA3BI5T,KAAKuG,OAAOkK,SAAS1K,SAAS,QAAUsC,EAAQU,KAChD9C,EAAU3D,YAAYmO,GAAS6C,aAAa5S,KAAKV,KAAM,QAIvDA,KAAKuG,OAAOkK,SAAS1K,SAAS,YAAcsC,EAAQY,SACpDhD,EAAU3D,YAAYmO,GAAS6C,aAAa5S,KAAKV,KAAM,YAIvDA,KAAKuG,OAAOkK,SAAS1K,SAAS,eAC9BE,EAAU3D,YAAYmO,GAAS6C,aAAa5S,KAAKV,KAAM,eAIvDA,KAAKuG,OAAOkK,SAAS1K,SAAS,eAC9B/F,KAAK0B,SAASuE,UAAU3D,YAAYmO,GAAS6C,aAAa5S,KAAKV,KAAM,eAGzEA,KAAK0B,SAAS+O,SAAWxK,EAErBjG,KAAKuJ,SACLkH,GAAS0I,eAAezY,KAAKV,KAAMgK,EAAMI,kBAAkB1J,KAAKV,OAGpEyQ,GAASyJ,aAAaxZ,KAAKV,MAEpBiG,GAIX+V,OA/9Ca,WA+9CJ,IAAAC,EAAAjc,KAEL,GAAIA,KAAKuG,OAAOwI,WAAY,CACxB,IAAM2D,EAAOjC,GAASC,WAAWhQ,KAAKV,MAGlC0S,EAAK/B,MACL5B,GAAW2D,EAAK7T,IAAK,eAK7BmB,KAAK6E,GAAK2T,KAAK0D,MAAsB,IAAhB1D,KAAK2D,UAG1B,IAAIlW,EAAY,KAChBjG,KAAK0B,SAAS+O,SAAW,KAGzB,IAAM2L,GACFvX,GAAI7E,KAAK6E,GACTwX,SAAUrc,KAAKuG,OAAOuG,SACtBE,MAAOhN,KAAKuG,OAAOyG,OAEnBmC,GAAS,EAGTnS,EAAGQ,SAASwC,KAAKuG,OAAOkK,YACxBzQ,KAAKuG,OAAOkK,SAAWzQ,KAAKuG,OAAOkK,SAAS/P,KAAKV,KAAKoc,QAIrDpc,KAAKuG,OAAOkK,WACbzQ,KAAKuG,OAAOkK,aAGZzT,EAAGc,QAAQkC,KAAKuG,OAAOkK,WAAazT,EAAGM,OAAO0C,KAAKuG,OAAOkK,UAE1DxK,EAAYjG,KAAKuG,OAAOkK,UAGxBxK,EAAYwK,GAAS+K,OAAO9a,KAAKV,MAC7B6E,GAAI7E,KAAK6E,GACTwX,SAAUrc,KAAKuG,OAAOuG,SACtB2J,MAAOzW,KAAKyW,MACZzL,QAAShL,KAAKgL,QACdyG,SAAUA,GAASyH,SAASxY,KAAKV,QAIrCmP,GAAS,GAIb,IAAM1K,EAAU,SAAAzI,GACZ,IAAI4T,EAAS5T,EAMb,OAJAM,OAAOoG,QAAQ0Z,GAAO/b,QAAQ,SAAA4M,GAAkB,IAAAlK,EAAAD,EAAAmK,EAAA,GAAhBhK,EAAgBF,EAAA,GAAXF,EAAWE,EAAA,GAC5C6M,EAAS3D,EAAW2D,EAAX,IAAuB3M,EAAvB,IAA+BJ,KAGrC+M,GAIPT,IACInS,EAAGM,OAAO0C,KAAKuG,OAAOkK,UACtBxK,EAAYxB,EAAQwB,GACbjJ,EAAGc,QAAQmI,KAClBA,EAAU0G,UAAYlI,EAAQwB,EAAU0G,aAKhD,IAAIlB,OAAAA,EA2BJ,GAxBIzO,EAAGM,OAAO0C,KAAKuG,OAAO0K,UAAUR,SAASxK,aACzCwF,EAASpI,SAAS8C,cAAcnG,KAAKuG,OAAO0K,UAAUR,SAASxK,YAI9DjJ,EAAGc,QAAQ2N,KACZA,EAASzL,KAAK0B,SAASuE,WAK3BwF,EADqBzO,EAAGc,QAAQmI,GAAa,wBAA0B,sBAClD,aAAcA,GAG9BjJ,EAAGc,QAAQkC,KAAK0B,SAAS+O,WAC1BA,GAASO,aAAatQ,KAAKV,MAI3BzB,OAAOmJ,UAAUC,UAAU5B,SAAS,SACpCiB,EAAQyE,GAIRzL,KAAKuG,OAAOoR,SAASlH,SAAU,CAAA,IAAA6L,EACGtc,KAAKuG,OAA/BC,EADuB8V,EACvB9V,WAAYyK,EADWqL,EACXrL,UACd3M,EAAc2M,EAAUR,SAAS9O,QAAjC,IAA4CsP,EAAUsL,OAAtD,KAAiE/V,EAAWzB,OAC5EwX,EAASvW,EAAYtF,KAAKV,KAAMsE,GAEtC5H,MAAMmF,KAAK0a,GAAQlc,QAAQ,SAAAoT,GACvBvO,EAAYuO,EAAOwI,EAAK1V,OAAOC,WAAWzB,QAAQ,GAClDG,EAAYuO,EAAOwI,EAAK1V,OAAOC,WAAW2L,SAAS,QCrlD5D,SAASqK,GAASxgB,GAAoB,IACrC6C,EAAM7C,EAEV,KAHyC6D,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,KAAAA,UAAA,GAG/B,CACN,IAAM4c,EAASpZ,SAASF,cAAc,KACtCsZ,EAAOC,KAAO7d,EACdA,EAAM4d,EAAOC,KAGjB,IACI,OAAO,IAAI5d,IAAID,GACjB,MAAOI,GACL,OAAO,MAKR,SAAS0d,GAAe3gB,GAC3B,IAAM4gB,EAAS,IAAIC,gBAQnB,OANI7f,EAAGE,OAAOlB,IACVM,OAAOoG,QAAQ1G,GAAOqE,QAAQ,SAAAuC,GAAkB,IAAAqK,EAAAnK,EAAAF,EAAA,GAAhBK,EAAgBgK,EAAA,GAAXpK,EAAWoK,EAAA,GAC5C2P,EAAOrS,IAAItH,EAAKJ,KAIjB+Z,ECbX,IAAMnL,IAEFqL,MAFa,WAIT,GAAK9c,KAAKZ,UAAUyJ,GAKpB,IAAK7I,KAAK+c,SAAW/c,KAAKgd,WAAchd,KAAKuJ,UAAYlB,EAAQsB,WAGzD3M,EAAGU,MAAMsC,KAAKuG,OAAOkK,WACrBzQ,KAAKuG,OAAOkK,SAAS1K,SAAS,aAC9B/F,KAAKuG,OAAOiL,SAASzL,SAAS,aAE9B0K,GAASkJ,gBAAgBjZ,KAAKV,UAPtC,CfsCD,IAAqBlC,EAAS2N,EehB7B,GARKzO,EAAGc,QAAQkC,KAAK0B,SAAS+P,YAC1BzR,KAAK0B,SAAS+P,SAAWtO,EAAc,MAAOc,EAA0BjE,KAAKuG,OAAO0K,UAAUQ,WfuB9E3T,EerBJkC,KAAK0B,SAAS+P,SfqBDhG,EerBWzL,KAAK0B,SAASC,QfsBrD3E,EAAGc,QAAQA,IAAad,EAAGc,QAAQ2N,IAIxCA,EAAOtJ,WAAWI,aAAazE,EAAS2N,EAAOpJ,cerBvC+E,EAAQC,MAAQ9I,OAAOO,IAAK,CAC5B,IAAM4C,EAAW1B,KAAKwJ,MAAM1D,iBAAiB,SAE7CpJ,MAAMmF,KAAKH,GAAUrB,QAAQ,SAAA3B,GACzB,IAAMmM,EAAMnM,EAAMyL,aAAa,OACzBtL,EAAM2d,GAAS3R,GAGT,OAARhM,GACAA,EAAIG,WAAaT,OAAOsS,SAAS6L,KAAK1d,WACrC,QAAS,UAAU+G,SAASlH,EAAIoe,WAEjC/O,GAAMrD,EAAK,QACN8E,KAAK,SAAAuN,GACFxe,EAAMwE,aAAa,MAAO3E,OAAOO,IAAIqe,gBAAgBD,MAExDrN,MAAM,WACHrM,EAAc9E,OAalC,IAAM0e,EAAYlQ,EACdxQ,MAAMmF,KAAK6F,UAAU0V,WAAa1V,UAAUsS,UAAYtS,UAAU2V,cAAcjY,IAC5E,SAAA4U,GAAA,OAAYA,EAAS5Z,MAAM,KAAK,MAIpC4Z,GAAYha,KAAKwN,QAAQjO,IAAI,aAAeS,KAAKuG,OAAOkL,SAASuI,UAAY,QAAQ1N,cAGzF,GAAiB,SAAb0N,EACCA,EADoBlX,EACRsa,EADQ,GAAA,GAIzB,IAAIE,EAAStd,KAAKwN,QAAQjO,IAAI,YAa9B,GAZKvC,EAAGO,QAAQ+f,KACTA,EAAWtd,KAAKuG,OAAOkL,SAAvB6L,QAGPhhB,OAAOgF,OAAOtB,KAAKyR,UACfsI,SAAS,EACTuD,OAAAA,EACAtD,SAAAA,EACAoD,UAAAA,IAIApd,KAAKuJ,QAAS,CACd,IAAMgU,EAAcvd,KAAKuG,OAAOkL,SAAStC,OAAS,uBAAyB,cAC3E1O,EAAGC,KAAKV,KAAMA,KAAKwJ,MAAMG,WAAY4T,EAAa9L,GAAStC,OAAOoH,KAAKvW,OAI3EiH,WAAWwK,GAAStC,OAAOoH,KAAKvW,MAAO,KAI3CmP,OAjGa,WAiGJ,IAAApP,EAAAC,KACC6Z,EAASpI,GAASqI,UAAUpZ,KAAKV,MAAM,GADxCwd,EAGgDxd,KAAKyR,SAAlD6L,EAHHE,EAGGF,OAAQtD,EAHXwD,EAGWxD,SAAUyD,EAHrBD,EAGqBC,KAAMC,EAH3BF,EAG2BE,iBAC1BC,EAAiBxhB,QAAQ0d,EAAO/S,KAAK,SAAApI,GAAA,OAASA,EAAMsb,WAAaA,KAGnEha,KAAKuJ,SAAWvJ,KAAK+c,SACrBlD,EAAOlX,OAAO,SAAAjE,GAAA,OAAU+e,EAAKle,IAAIb,KAAQ2B,QAAQ,SAAA3B,GAC7CqB,EAAKoL,MAAMC,IAAI,cAAe1M,GAE9B+e,EAAKlT,IAAI7L,GACLua,QAAwB,YAAfva,EAAMkf,OAInBlf,EAAMkf,KAAO,SAGbnd,EAAGC,KAAKX,EAAMrB,EAAO,YAAa,WAAA,OAAM+S,GAASoM,WAAWnd,KAAKX,QAKpE4d,GAAkB3d,KAAKga,WAAaA,IAAcH,EAAO9T,SAAS2X,MACnEjM,GAASqM,YAAYpd,KAAKV,KAAMga,GAChCvI,GAAS7R,OAAOc,KAAKV,KAAMsd,GAAUK,IAIzCzY,EAAYlF,KAAK0B,SAASuE,UAAWjG,KAAKuG,OAAOC,WAAWiL,SAASlE,SAAUvQ,EAAGkC,MAAM2a,KAGnF7Z,KAAKuG,OAAOkK,cAAgB1K,SAAS,aAAe/F,KAAKuG,OAAOiL,SAASzL,SAAS,aACnF0K,GAASkJ,gBAAgBjZ,KAAKV,OAMtCJ,OAzIa,SAyIN5D,GAAuB,IAAhBiE,IAAgBJ,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,KAAAA,UAAA,GAE1B,GAAKG,KAAKZ,UAAUyJ,GAApB,CAF0B,IAMlBkR,EAAY/Z,KAAKyR,SAAjBsI,QACFgE,EAAc/d,KAAKuG,OAAOC,WAAWiL,SAAS6L,OAI9CA,EAAStgB,EAAGC,gBAAgBjB,IAAU+d,EAAU/d,EAGtD,GAAIshB,IAAWvD,EAAS,CAQpB,GANK9Z,IACDD,KAAKyR,SAAS6L,OAASA,EACvBtd,KAAKwN,QAAQjD,KAAMkH,SAAU6L,MAI5Btd,KAAKga,UAAYsD,IAAWrd,EAAS,CACtC,IAAM4Z,EAASpI,GAASqI,UAAUpZ,KAAKV,MACjCtB,EAAQ+S,GAASuM,UAAUtd,KAAKV,MAAOA,KAAKyR,SAASuI,UAA7CpO,6HAAAqS,CAA0Dje,KAAKyR,SAAS2L,aAAY,GAOlG,OAJApd,KAAKyR,SAASuI,SAAWtb,EAAMsb,cAG/BvI,GAASlH,IAAI7J,KAAKV,KAAM6Z,EAAOzM,QAAQ1O,IAKvCsB,KAAK0B,SAASwP,QAAQO,WACtBzR,KAAK0B,SAASwP,QAAQO,SAASsC,QAAUuJ,GAI7CpY,EAAYlF,KAAK0B,SAASuE,UAAW8X,EAAaT,GAElDtd,KAAKyR,SAASsI,QAAUuD,EAGxB7M,GAASqI,cAAcpY,KAAKV,KAAM,YAGlCkB,EAAaR,KAAKV,KAAMA,KAAKwJ,MAAO8T,EAAS,kBAAoB,uBAMzE/S,IA/La,SA+LTxI,GAAuB,IAAhB9B,IAAgBJ,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,KAAAA,UAAA,GACjBga,EAASpI,GAASqI,UAAUpZ,KAAKV,MAGvC,IAAe,IAAX+B,EAKJ,GAAK/E,EAAGG,OAAO4E,GAKf,GAAMA,KAAS8X,EAAf,CAKA,GAAI7Z,KAAKyR,SAAS+E,eAAiBzU,EAAO,CACtC/B,KAAKyR,SAAS+E,aAAezU,EAC7B,IAAMrD,EAAQmb,EAAO9X,GACbiY,GAAatb,OAAbsb,SAGRha,KAAKyR,SAASiM,iBAAmBhf,EAGjC+R,GAASqI,cAAcpY,KAAKV,KAAM,YAG7BC,IACDD,KAAKyR,SAASuI,SAAWA,EACzBha,KAAKwN,QAAQjD,KAAMyP,SAAAA,KAInBha,KAAKoa,SACLpa,KAAKke,MAAMC,gBAAgBnE,GAI/B9Y,EAAaR,KAAKV,KAAMA,KAAKwJ,MAAO,kBAIxCiI,GAAS7R,OAAOc,KAAKV,MAAM,EAAMC,GAE7BD,KAAKuJ,SAAWvJ,KAAK+c,SAErBtL,GAASoM,WAAWnd,KAAKV,WAnCzBA,KAAKmL,MAAMkH,KAAK,kBAAmBtQ,QALnC/B,KAAKmL,MAAMkH,KAAK,2BAA4BtQ,QAL5C0P,GAAS7R,OAAOc,KAAKV,MAAM,EAAOC,IAmD1C6d,YAvPa,SAuPD9hB,GAAuB,IAAhBiE,IAAgBJ,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,KAAAA,UAAA,GAC/B,GAAK7C,EAAGM,OAAOtB,GAAf,CAKA,IAAMge,EAAWhe,EAAMsQ,cACvBtM,KAAKyR,SAASuI,SAAWA,EAGzB,IAAMH,EAASpI,GAASqI,UAAUpZ,KAAKV,MACjCtB,EAAQ+S,GAASuM,UAAUtd,KAAKV,MAAOga,IAC7CvI,GAASlH,IAAI7J,KAAKV,KAAM6Z,EAAOzM,QAAQ1O,GAAQuB,QAV3CD,KAAKmL,MAAMkH,KAAK,4BAA6BrW,IAgBrD8d,UAzQa,WAyQa,IAAAjE,EAAA7V,KAAhBmP,EAAgBtP,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GAKtB,OAHenD,MAAMmF,MAAM7B,KAAKwJ,WAAaG,gBAIxChH,OAAO,SAAAjE,GAAA,OAAUmX,EAAKtM,SAAW4F,GAAU0G,EAAKpE,SAASgM,KAAKW,IAAI1f,KAClEiE,OAAO,SAAAjE,GAAA,OAAU,WAAY,aAAaqH,SAASrH,EAAME,SAIlEof,UApRa,SAoRHZ,GAA0B,IAAApG,EAAAhX,KAAfmF,EAAetF,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GAC1Bga,EAASpI,GAASqI,UAAUpZ,KAAKV,MACjCqe,EAAgB,SAAA3f,GAAA,OAAStB,QAAQ4Z,EAAKvF,SAASgM,KAAKle,IAAIb,QAAcua,UACtEqF,EAAS5hB,MAAMmF,KAAKgY,GAAQP,KAAK,SAACC,EAAGC,GAAJ,OAAU6E,EAAc7E,GAAK6E,EAAc9E,KAC9E7a,OAAAA,EAMJ,OALA0e,EAAUmB,MAAM,SAAAvE,GAEZ,QADAtb,EAAQ4f,EAAOxX,KAAK,SAAApI,GAAA,OAASA,EAAMsb,WAAaA,OAI7Ctb,IAAUyG,EAAQmZ,EAAO,QAAKxe,IAIzC0e,gBAlSa,WAmST,OAAO/M,GAASqI,UAAUpZ,KAAKV,MAAMA,KAAKwW,eAI9C0C,SAvSa,SAuSJxa,GACL,IAAI8X,EAAe9X,EAMnB,OAJK1B,EAAG0B,MAAM8X,IAAiBnO,EAAQsB,YAAc3J,KAAKyR,SAASsI,UAC/DvD,EAAe/E,GAAS+M,gBAAgB9d,KAAKV,OAG7ChD,EAAG0B,MAAM8X,GACJxZ,EAAGkC,MAAMsX,EAAa/C,OAItBzW,EAAGkC,MAAMsX,EAAawD,UAIpBpN,EAAS,UAAW5M,KAAKuG,QAHrB7H,EAAMsb,SAAS5N,cAJfoK,EAAa/C,MAUrB7G,EAAS,WAAY5M,KAAKuG,SAKrCsX,WA/Ta,SA+TF7hB,GAEP,GAAKgE,KAAKZ,UAAUyJ,GAIpB,GAAK7L,EAAGc,QAAQkC,KAAK0B,SAAS+P,UAM9B,GAAKzU,EAAGC,gBAAgBjB,IAAWU,MAAMD,QAAQT,GAAjD,CAKA,IAAIyiB,EAAOziB,EAGX,IAAKyiB,EAAM,CACP,IAAM/f,EAAQ+S,GAAS+M,gBAAgB9d,KAAKV,MAC5Cye,EAAO/hB,MAAMmF,MAAMnD,OAAaggB,gBAC3BtZ,IAAI,SAAA9G,GAAA,OAAOA,EAAIqgB,iBACfvZ,IAAIsH,GAIb,IAAMgD,EAAU+O,EAAKrZ,IAAI,SAAAwZ,GAAA,OAAWA,EAAQra,SAAQ2O,KAAK,MAGzD,GAFgBxD,IAAY1P,KAAK0B,SAAS+P,SAAS9E,UAEtC,CAETjJ,EAAa1D,KAAK0B,SAAS+P,UAC3B,IAAMoN,EAAU1b,EAAc,OAAQc,EAA0BjE,KAAKuG,OAAO0K,UAAU4N,UACtFA,EAAQlS,UAAY+C,EACpB1P,KAAK0B,SAAS+P,SAASnP,YAAYuc,GAGnC3d,EAAaR,KAAKV,KAAMA,KAAKwJ,MAAO,mBA1BpCxJ,KAAKmL,MAAMkH,KAAK,4BAA6BrW,QAN7CgE,KAAKmL,MAAMkH,KAAK,sCC1VtByM,IAEFvR,SAAS,EAGTP,MAAO,GAGP7B,OAAO,EAGP4T,UAAU,EAGVC,WAAW,EAIXtW,aAAa,EAGboE,SAAU,GAGVgF,OAAQ,EACRgF,OAAO,EAGP7E,SAAU,KAIV0G,iBAAiB,EAGjBN,YAAY,EAGZ4G,cAAc,EAGdC,MAAO,OAGPC,aAAa,EAGbC,cAAc,EAGdC,YAAY,EAGZC,oBAAoB,EAGpBvQ,YAAY,EACZ0D,WAAY,OACZ7B,QAAS,sCAGT1F,WAAY,uCAGZF,SACIiO,QAAS,IACT5Z,SACI,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,YAKRkgB,MACIjC,QAAQ,GAMZ7G,OACI+I,SAAU,EACVngB,SAAU,GAAK,IAAM,EAAG,KAAM,IAAK,KAAM,IAI7CogB,UACIC,SAAS,EACTC,QAAQ,GAIZhI,UACIlH,UAAU,EACVoB,MAAM,GAIVJ,UACI6L,QAAQ,EACRtD,SAAU,OAGV7K,QAAQ,GAIZuC,YACInE,SAAS,EACTqS,UAAU,EACVC,WAAW,GAIfrS,SACID,SAAS,EACTtK,IAAK,QAITwN,UACI,aAGA,OAEA,WACA,eACA,OACA,SACA,WACA,WACA,MACA,UACA,cAEJe,UAAW,WAAY,UAAW,SAGlC5E,MACIwE,QAAS,UACTC,OAAQ,qBACRvG,KAAM,OACNqG,MAAO,QACPG,YAAa,sBACbO,KAAM,OACNiO,UAAW,8BACXjL,OAAQ,SACRyC,SAAU,WACV7M,YAAa,eACbwH,SAAU,WACVH,OAAQ,SACRP,KAAM,OACNwO,OAAQ,SACRC,eAAgB,kBAChBC,gBAAiB,mBACjBC,gBAAiB,mBACjBC,eAAgB,kBAChBC,WAAY,qBACZ3O,SAAU,WACVD,SAAU,WACV6O,SAAU,2BACV5J,MAAO,QACP6J,OAAQ,SACRtV,QAAS,UACTuU,KAAM,OACNgB,MAAO,QACPC,IAAK,MACLC,IAAK,MACLC,MAAO,QACPC,SAAU,WACVpT,QAAS,UACTqT,cAAe,KACfC,cACIC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,IAAK,KACLC,IAAK,KACLC,IAAK,OAKbC,MACIC,OACIC,IAAK,yCACLC,OAAQ,yCACR3Y,IAAK,2CAET4Y,SACIF,IAAK,qCACL1Y,IACI,yGAER6Y,WACIH,IAAK,uDAKbhL,WACIzE,KAAM,KACN/G,KAAM,KACNqG,MAAO,KACPC,QAAS,KACTC,OAAQ,KACRC,YAAa,KACbC,KAAM,KACNO,OAAQ,KACRL,SAAU,KACVC,WAAY,KACZ3I,IAAK,KACLE,QAAS,KACTwN,MAAO,KACPzL,QAAS,KACTuU,KAAM,KACNvF,SAAU,MAId7Z,QAGI,QACA,WACA,UACA,UACA,UACA,UACA,iBACA,YACA,aACA,iBACA,aACA,eACA,OACA,QACA,QACA,UACA,SACA,UACA,aACA,YAGA,kBACA,iBACA,kBACA,mBACA,iBACA,iBACA,gBACA,QAGA,cACA,gBACA,mBAGA,YACA,kBACA,mBACA,YACA,cACA,cACA,iBACA,gBACA,YAKJ8Q,WACIyQ,SAAU,6CACVzb,UAAW,QACXwK,UACIxK,UAAW,KACXtE,QAAS,mBAEb4a,OAAQ,cACRrL,SACIpG,KAAM,qBACNqG,MAAO,sBACPC,QAAS,wBACTC,OAAQ,uBACRC,YAAa,6BACbC,KAAM,qBACNE,SAAU,yBACVC,WAAY,2BACZ3I,IAAK,oBACLE,QAAS,wBACTuI,SAAU,yBACV+N,KAAM,sBAEV3N,QACIC,KAAM,qBACNC,OAAQ,uBACR2E,MAAO,sBACPuD,SAAU,yBACVhP,QAAS,yBAEb+G,SACItH,YAAa,uBACbwH,SAAU,wBACVD,OAAQ,0BACRuN,KAAM,wBACNzN,OAAQ,0BAEZH,SAAU,kBACVF,SAAU,kBACVoN,QAAS,iBACTxL,MACIrI,QAAS,kCAKjBxE,YACIlG,KAAM,YACNmI,SAAU,YACVF,MAAO,sBACP2V,MAAO,oBACPyD,eAAgB,+BAChBC,OAAQ,eACRC,cAAe,uBACfC,IAAK,YACLlO,QAAS,gBACTC,eAAgB,yBAChBkO,QAAS,gBACTrX,OAAQ,eACRsX,QAAS,gBACTC,QAAS,gBACTC,MAAO,cACP/P,QAAS,gBACTsM,KAAM,aACN1Z,OAAQ,gBACRqa,aAAc,sBACdtX,MAAO,eACPqa,QAAS,iBACTC,YAAa,gBACbC,aAAc,sBACdtQ,SACI5B,KAAM,cAEVkD,MACIxQ,MAAO,oBACPuQ,MAAO,cACPvE,KAAM,mBAEV4C,UACIlE,QAAS,yBACT+P,OAAQ,yBAEZ5L,YACInE,QAAS,2BACTqS,SAAU,6BAEd7W,KACI3J,UAAW,sBACXke,OAAQ,oBAEZrU,SACI7J,UAAW,0BACXke,OAAQ,wBAEZjX,SAAU,mBAId5D,YACIyb,OACIzV,SAAU,qBACV5D,GAAI,uBAKZ9H,MACIulB,OAAQ,MAKZR,KACIvU,SAAS,EACTgV,YAAa,KC5YRC,IACTxY,MAAO,QACPwX,QAAS,UACTH,MAAO,SAGEoB,IACTna,MAAO,QACPC,MAAO,SCRX,IAAMma,GAAO,aAEQC,GAAAA,WACjB,SAAAA,IAA6B,IAAjBpV,EAAiB1N,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GAAAyN,EAAAtN,KAAA2iB,GACzB3iB,KAAKuN,QAAUhP,OAAOqkB,SAAWrV,EAE7BvN,KAAKuN,SACLvN,KAAKoL,IAAI,2DAMb,OAAOpL,KAAKuN,QAAU9P,SAASiI,UAAU6Q,KAAK7V,KAAKkiB,QAAQxX,IAAKwX,SAAWF,gCAK3E,OAAO1iB,KAAKuN,QAAU9P,SAASiI,UAAU6Q,KAAK7V,KAAKkiB,QAAQvQ,KAAMuQ,SAAWF,iCAK5E,OAAO1iB,KAAKuN,QAAU9P,SAASiI,UAAU6Q,KAAK7V,KAAKkiB,QAAQxQ,MAAOwQ,SAAWF,SArBhEC,GCIrB,SAASE,KACL,GAAK7iB,KAAKuN,QAAV,CAKA,IAAMiG,EAASxT,KAAKsK,OAAO5I,SAASwP,QAAQQ,WACxC1U,EAAGc,QAAQ0V,KACXA,EAAOO,QAAU/T,KAAKsd,QAI1Bpc,EAAaR,KAAKV,KAAKsK,OAAQtK,KAAKyL,OAAQzL,KAAKsd,OAAS,kBAAoB,kBAAkB,GAG3FlW,EAAQU,OnBuOV,WAAmD,IAAhChK,EAAgC+B,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAAtB,KAAMD,EAAgBC,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GACtD,GAAK7C,EAAGc,QAAQA,GAAhB,CAIA,IAAM+U,EAAY7M,EAAYtF,KAAKV,KAAM,2DACnC8iB,EAAQjQ,EAAU,GAClBkQ,EAAOlQ,EAAUA,EAAU/V,OAAS,GAsB1C4C,EAAegB,KAAKV,KAAMA,KAAK0B,SAASuE,UAAW,UApBtC,SAAA/H,GAET,GAAkB,QAAdA,EAAM+E,KAAmC,IAAlB/E,EAAM8kB,QAAjC,CAKA,IAAMtD,EAAUrc,SAAS4f,cAErBvD,IAAYqD,GAAS7kB,EAAMglB,SAIpBxD,IAAYoD,GAAS5kB,EAAMglB,WAElCH,EAAKzc,QACLpI,EAAMiX,mBALN2N,EAAMxc,QACNpI,EAAMiX,oBAQsDvV,GAAQ,KmBnQ9Dc,KAAKV,KAAKsK,OAAQtK,KAAKyL,OAAQzL,KAAKsd,SAItD,SAAS6F,KAA+B,IAAhBvjB,EAAgBC,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GAEhCD,EACAI,KAAKojB,gBACDC,EAAG9kB,OAAO+kB,SAAW,EACrBC,EAAGhlB,OAAOilB,SAAW,GAGzBjlB,OAAOklB,SAASzjB,KAAKojB,eAAeC,EAAGrjB,KAAKojB,eAAeG,GAI/DlgB,SAASgM,KAAKtI,MAAM2c,SAAW9jB,EAAS,SAAW,GAGnDsF,EAAYlF,KAAKyL,OAAQzL,KAAKsK,OAAO/D,OAAOC,WAAWkL,WAAWkO,SAAUhgB,GAG5EijB,GAASniB,KAAKV,UAGZ2jB,GAAAA,WACF,SAAAA,EAAYrZ,GAAQ,IAAAvK,EAAAC,KAAAsN,EAAAtN,KAAA2jB,GAEhB3jB,KAAKsK,OAASA,EAGdtK,KAAKyP,OAASkU,EAAWlU,OACzBzP,KAAK4jB,SAAWD,EAAWC,SAG3B5jB,KAAKojB,gBAAmBC,EAAG,EAAGE,EAAG,GAIjC9iB,EAAGC,KACCV,KAAKsK,OACLjH,SACgB,OAAhBrD,KAAKyP,OAAkB,qBAA0BzP,KAAKyP,OAAtD,mBACA,WAEIoT,GAASniB,KAAKX,KAKtBU,EAAGC,KAAKV,KAAKsK,OAAQtK,KAAKsK,OAAO5I,SAASuE,UAAW,WAAY,SAAA/H,GAEzDlB,EAAGc,QAAQiC,EAAKuK,OAAO5I,SAAS+O,WAAa1Q,EAAKuK,OAAO5I,SAAS+O,SAASlL,SAASrH,EAAMuN,SAI9F1L,EAAKH,WAITI,KAAKmP,oDA2EDnP,KAAKuN,QACLvN,KAAKsK,OAAOa,MAAMC,KAAOuY,EAAWE,OAAS,SAAW,YAAxD,uBAEA7jB,KAAKsK,OAAOa,MAAMC,IAAI,kDAI1BlG,EAAYlF,KAAKsK,OAAO5I,SAASuE,UAAWjG,KAAKsK,OAAO/D,OAAOC,WAAWkL,WAAWnE,QAASvN,KAAKuN,yCAK9FvN,KAAKuN,UAKNnG,EAAQU,OAAS9H,KAAKsK,OAAO/D,OAAOmL,WAAWmO,UAC3C7f,KAAKsK,OAAOyX,SACZ/hB,KAAKyL,OAAOqY,wBAERH,EAAWE,OAEX7jB,KAAKyP,OAELzS,EAAGkC,MAAMc,KAAKyP,SACtBzP,KAAKyL,OAAUzL,KAAKyP,OAApB,UAAoCzP,KAAK4jB,YAFzC5jB,KAAKyL,OAAOsY,oBAFZZ,GAAeziB,KAAKV,MAAM,mCAU9B,GAAKA,KAAKuN,QAKV,GAAInG,EAAQU,OAAS9H,KAAKsK,OAAO/D,OAAOmL,WAAWmO,UAC/C7f,KAAKyL,OAAOuY,uBACZhkB,KAAKsK,OAAOQ,YACT,GAAK6Y,EAAWE,OAEhB,GAAK7jB,KAAKyP,QAEV,IAAKzS,EAAGkC,MAAMc,KAAKyP,QAAS,CAC/B,IAAMwU,EAAyB,QAAhBjkB,KAAKyP,OAAmB,SAAW,OAClDpM,SAAAA,GAAYrD,KAAKyP,OAASwU,EAASjkB,KAAK4jB,kBAHvCvgB,SAAS6gB,kBAAoB7gB,SAAS8c,gBAAgBzf,KAAK2C,eAF5D8f,GAAeziB,KAAKV,MAAM,oCAWzBA,KAAKsd,OAGNtd,KAAKmkB,OAFLnkB,KAAKokB,wCAtFT,OACKT,EAAWE,QAAU7jB,KAAKsK,OAAO/D,OAAOmL,WAAWkO,WACpD5f,KAAKsK,OAAO/D,OAAOmL,WAAWnE,SAC9BvN,KAAKsK,OAAOlL,UAAUyJ,IACtB7I,KAAKsK,OAAOyS,uCAMhB,QAAK/c,KAAKuN,UAKLoW,EAAWE,QAIC7jB,KAAKyP,OAAsCpM,SAAAA,GAAYrD,KAAKyP,OAASzP,KAAK4jB,SAA/B,WAA7BvgB,SAASghB,qBAErBrkB,KAAKyL,OALbjG,EAASxF,KAAKyL,OAAQzL,KAAKsK,OAAO/D,OAAOC,WAAWkL,WAAWkO,0CAU1E,OAAOxY,EAAQU,OAAS9H,KAAKsK,OAAO/D,OAAOmL,WAAWmO,UAChD7f,KAAKsK,OAAOd,MACZxJ,KAAKsK,OAAO5I,SAASuE,2CAjE3B,SACI5C,SAASihB,mBACTjhB,SAASkhB,yBACTlhB,SAASmhB,sBACTnhB,SAASohB,oDAOb,GAAIznB,EAAGQ,SAAS6F,SAAS8c,gBACrB,MAAO,GAIX,IAAItd,EAAQ,GAYZ,OAXkB,SAAU,MAAO,MAE1ByX,KAAK,SAAAoK,GACV,SAAI1nB,EAAGQ,SAAS6F,SAAYqhB,EAAZ,qBAAqC1nB,EAAGQ,SAAS6F,SAAYqhB,EAAZ,wBAC7D7hB,EAAQ6hB,GACD,KAMR7hB,mCAIP,MAAuB,QAAhB7C,KAAKyP,OAAmB,aAAe,mBAxEhDkU,GC7CS,SAASgB,GAAU9Z,GAAmB,IAAd+Z,EAAc/kB,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,GAAH,EAC9C,OAAO,IAAIuO,QAAQ,SAACC,EAASC,GACzB,IAAMuW,EAAQ,IAAIC,MAEZC,EAAU,kBACLF,EAAMG,cACNH,EAAMI,SACZJ,EAAMK,cAAgBN,EAAWvW,EAAUC,GAAQuW,IAGxDvoB,OAAOgF,OAAOujB,GAASG,OAAQD,EAASE,QAASF,EAASla,IAAAA,MCFlE,IAAMhC,IACFsc,aADO,WAEHjgB,EAAYlF,KAAK0B,SAASuE,UAAWjG,KAAKuG,OAAO0K,UAAUhL,UAAUxB,QAAQ,IAAK,KAAK,GACvFS,EAAYlF,KAAK0B,SAASuE,UAAWjG,KAAKuG,OAAOC,WAAW4b,YAAapiB,KAAKZ,UAAUyJ,KAI5FyJ,qBAPO,WAO8BzS,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,IACnBG,KAAKuJ,QACfvJ,KAAKwJ,MAAMtG,aAAa,WAAY,IAEpClD,KAAKwJ,MAAMvE,gBAAgB,aAKnCmgB,MAhBO,WAgBC,IAAArlB,EAAAC,KAMJ,GAHAA,KAAKsW,UAAU9M,SAGVxJ,KAAKZ,UAAUyJ,GAOhB,OANA7I,KAAKmL,MAAMkH,KAAX,0BAA0CrS,KAAKyI,SAA/C,IAA2DzI,KAAKM,WAGhEuI,GAAGyJ,qBAAqB5R,KAAKV,MAAM,GAOlChD,EAAGc,QAAQkC,KAAK0B,SAAS+O,YAE1BA,GAASuL,OAAOtb,KAAKV,MAGrBA,KAAKsW,UAAU7F,YAInB5H,GAAGyJ,qBAAqB5R,KAAKV,MAGzBA,KAAKuJ,SACLkI,GAASqL,MAAMpc,KAAKV,MAIxBA,KAAK8R,OAAS,KAGd9R,KAAK8W,MAAQ,KAGb9W,KAAKyW,MAAQ,KAGbzW,KAAKuf,KAAO,KAGZvf,KAAKgL,QAAU,KAGfyF,GAASmG,aAAalW,KAAKV,MAG3ByQ,GAAS0H,WAAWzX,KAAKV,MAGzB6I,GAAGwc,aAAa3kB,KAAKV,MAGrBkF,EACIlF,KAAK0B,SAASuE,UACdjG,KAAKuG,OAAOC,WAAWuC,IAAI3J,UAC3BiJ,EAAQU,KAAO/I,KAAKuJ,SAAWvJ,KAAK+c,SAIxC7X,EAAYlF,KAAK0B,SAASuE,UAAWjG,KAAKuG,OAAOC,WAAWyC,QAAQ7J,UAAWiJ,EAAQY,SAAWjJ,KAAKuJ,SAGvGrE,EAAYlF,KAAK0B,SAASuE,UAAWjG,KAAKuG,OAAOC,WAAWsB,MAAOV,EAAQU,OAG3E5C,EAAYlF,KAAK0B,SAASuE,UAAWjG,KAAKuG,OAAOC,WAAW2b,QAASniB,KAAK4J,OAG1E5J,KAAKslB,OAAQ,EAGbre,WAAW,WACP/F,EAAaR,KAAKX,EAAMA,EAAKyJ,MAAO,UACrC,GAGHX,GAAG0c,SAAS7kB,KAAKV,MAGbA,KAAK4hB,QACL/Y,GAAG2c,UAAU9kB,KAAKV,KAAMA,KAAK4hB,QAAQ,GAAO/R,MAAM,cAKlD7P,KAAKuG,OAAO0L,UACZxB,GAAS8H,eAAe7X,KAAKV,OAKrCulB,SAjHO,WAmHH,IAAI9R,EAAQ7G,EAAS,OAAQ5M,KAAKuG,QAclC,GAXIvJ,EAAGM,OAAO0C,KAAKuG,OAAOyG,SAAWhQ,EAAGkC,MAAMc,KAAKuG,OAAOyG,SACtDyG,GAAAA,KAAczT,KAAKuG,OAAOyG,OAI9BtQ,MAAMmF,KAAK7B,KAAK0B,SAASwP,QAAQpG,UAAYzK,QAAQ,SAAAmT,GACjDA,EAAOtQ,aAAa,aAAcuQ,KAKlCzT,KAAKylB,QAAS,CACd,IAAMlE,EAASrb,EAAWxF,KAAKV,KAAM,UAErC,IAAKhD,EAAGc,QAAQyjB,GACZ,OAIJ,IAAMvU,EAAShQ,EAAGkC,MAAMc,KAAKuG,OAAOyG,OAA6B,QAApBhN,KAAKuG,OAAOyG,MACnDnB,EAASe,EAAS,aAAc5M,KAAKuG,QAE3Cgb,EAAOre,aAAa,QAAS2I,EAAOpH,QAAQ,UAAWuI,MAK/D0Y,aAjJO,SAiJMC,GACTzgB,EAAYlF,KAAK0B,SAASuE,UAAWjG,KAAKuG,OAAOC,WAAWqb,cAAe8D,IAK/EH,UAvJO,SAuJG5D,GAAwB,IAAA/L,EAAA7V,KAE9B,OAF8BH,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,KAAAA,UAAA,KAEfG,KAAK4hB,QAKpB5hB,KAAKwJ,MAAMtG,aAAa,SAAU0e,GtBzDnC,WAAiB,IAAA/L,EAAA7V,KACpB,OAAO,IAAIoO,QACP,SAAAC,GAAA,OAAYwH,EAAKyP,MAAQre,WAAWoH,EAAS,GAAK5N,EAAGC,KAAKmV,EAAMA,EAAKnU,SAASuE,UAAW,QAASoI,KACpGsB,KAAK,esB2DMjP,KAAKV,MAEL2P,KAAK,WAAA,OAAMgV,GAAU/C,KACrB/R,MAAM,SAAAnG,GAMH,MAJIkY,IAAW/L,EAAK+L,QAChB/Y,GAAG6c,aAAahlB,KAAKmV,GAAM,GAGzBnM,IAETiG,KAAK,WAEF,GAAIiS,IAAW/L,EAAK+L,OAChB,MAAM,IAAIjT,MAAM,oDAGvBgB,KAAK,WAOF,OANArT,OAAOgF,OAAOuU,EAAKnU,SAASkgB,OAAO7a,OAC/B6e,gBAAAA,QAAyBhE,EAAzB,KAEAiE,eAAgB,KAEpBhd,GAAG6c,aAAahlB,KAAKmV,GAAM,GACpB+L,KAjCRxT,QAAQE,OAAO,IAAIK,MAAM,wBAuCxC0W,aAjMO,SAiMMnnB,GAAO,IAAA8Y,EAAAhX,KAEhBkF,EAAYlF,KAAK0B,SAASuE,UAAWjG,KAAKuG,OAAOC,WAAWub,QAAS/hB,KAAK+hB,SAC1E7c,EAAYlF,KAAK0B,SAASuE,UAAWjG,KAAKuG,OAAOC,WAAWkE,OAAQ1K,KAAK0K,QACzExF,EAAYlF,KAAK0B,SAASuE,UAAWjG,KAAKuG,OAAOC,WAAWwb,QAAShiB,KAAKgiB,SAG1EtlB,MAAMmF,KAAK7B,KAAK0B,SAASwP,QAAQpG,UAAYzK,QAAQ,SAAAoL,GACjDA,EAAOsI,QAAUiD,EAAK+K,UAItB/kB,EAAGkB,MAAMA,IAAyB,eAAfA,EAAMoC,MAK7BuI,GAAGid,eAAeplB,KAAKV,OAI3B+lB,aAtNO,SAsNM7nB,GAAO,IAAAwZ,EAAA1X,KAChBA,KAAKiiB,SAAW,UAAW,WAAWlc,SAAS7H,EAAMoC,MAGrD0lB,aAAahmB,KAAKimB,OAAOhE,SAGzBjiB,KAAKimB,OAAOhE,QAAUhb,WAAW,WAE7B/B,EAAYwS,EAAKhW,SAASuE,UAAWyR,EAAKnR,OAAOC,WAAWyb,QAASvK,EAAKuK,SAG1EpZ,GAAGid,eAAeplB,KAAKgX,IACxB1X,KAAKiiB,QAAU,IAAM,IAI5B6D,eAvOO,SAuOQ3gB,GAAO,IACVsL,EAAazQ,KAAK0B,SAAlB+O,SAEJA,GAAYzQ,KAAKuG,OAAO6Y,cAExBpf,KAAK8lB,eAAe3pB,QAAQgJ,GAASnF,KAAKiiB,SAAWjiB,KAAK0K,QAAU+F,EAASsD,SAAWtD,EAASyR,UC9OvGgE,GAAAA,WACF,SAAAA,EAAY5b,GAAQgD,EAAAtN,KAAAkmB,GAChBlmB,KAAKsK,OAASA,EACdtK,KAAKmmB,QAAU,KACfnmB,KAAKomB,WAAa,KAClBpmB,KAAKqmB,YAAc,KAEnBrmB,KAAKsmB,UAAYtmB,KAAKsmB,UAAU/P,KAAKvW,MACrCA,KAAKya,WAAaza,KAAKya,WAAWlE,KAAKvW,MACvCA,KAAKumB,YAAcvmB,KAAKumB,YAAYhQ,KAAKvW,MACzCA,KAAKwmB,WAAaxmB,KAAKwmB,WAAWjQ,KAAKvW,kDAIjC9B,GAAO,IACLoM,EAAWtK,KAAXsK,OACA5I,EAAa4I,EAAb5I,SACF+kB,EAAOvoB,EAAM8kB,QAAU9kB,EAAM8kB,QAAU9kB,EAAMgX,MAC7CnB,EAAyB,YAAf7V,EAAMoC,KAChBomB,EAAS3S,GAAW0S,IAASzmB,KAAKmmB,QAGxC,KAAIjoB,EAAMyoB,QAAUzoB,EAAM0oB,SAAW1oB,EAAM2oB,SAAW3oB,EAAMglB,WAMvDlmB,EAAGG,OAAOspB,GAAf,CAYA,GAAI1S,EAAS,CAIT,IAAM2L,EAAUrc,SAAS4f,cACzB,GAAIjmB,EAAGc,QAAQ4hB,GAAU,CAAA,IACbgC,EAAapX,EAAO/D,OAAO0K,UAA3ByQ,SAGR,GAAIhC,IAFahe,EAASkQ,OAAlBC,MAEgBpM,EAAQia,EAASgC,GACrC,OAGJ,GAAoB,KAAhBxjB,EAAMgX,OAAgBzP,EAAQia,EAAS,8BACvC,OAaR,QARwB,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrF3Z,SAAS0gB,KACxBvoB,EAAMiX,iBACNjX,EAAMkX,mBAGFqR,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GAEIC,IA5Cbpc,EAAOG,YAAcH,EAAO2H,SAAW,IAAMwU,EAAO,KA+C5C,MAEJ,KAAK,GACL,KAAK,GAEIC,GACDpc,EAAOwc,aAEX,MAEJ,KAAK,GAEDxc,EAAOyc,eAAe,IACtB,MAEJ,KAAK,GAEDzc,EAAO0c,eAAe,IACtB,MAEJ,KAAK,GAEIN,IACDpc,EAAOwM,OAASxM,EAAOwM,OAE3B,MAEJ,KAAK,GAEDxM,EAAO2c,UACP,MAEJ,KAAK,GAED3c,EAAO+G,SACP,MAEJ,KAAK,GAED/G,EAAOoH,WAAW9R,SAClB,MAEJ,KAAK,GAEI8mB,GACDpc,EAAO4c,iBAEX,MAEJ,KAAK,GAED5c,EAAOiV,MAAQjV,EAAOiV,MAqBzBjV,EAAOoH,WAAWnE,SAAWjD,EAAOoH,WAAW4L,QAAmB,KAATmJ,GAC1Dnc,EAAOoH,WAAW9R,SAItBI,KAAKmmB,QAAUM,OAEfzmB,KAAKmmB,QAAU,yCAKZjoB,GACPuS,GAASgK,WAAW/Z,KAAKV,KAAKsK,OAAQpM,wCAI7B,IACDoM,EAAWtK,KAAXsK,OACA5I,EAAa4I,EAAb5I,SAER4I,EAAOV,OAAQ,EAGf1E,EAAYxD,EAASuE,UAAWqE,EAAO/D,OAAOC,WAAW2b,SAAS,uCAG1DjkB,GAAO,IACPoM,EAAWtK,KAAXsK,OACA5I,EAAa4I,EAAb5I,SAKR,GAHAskB,aAAahmB,KAAKomB,YAGC,YAAfloB,EAAMoC,MAAsC,IAAhBpC,EAAMgX,MAAtC,CAKmB,YAAfhX,EAAMoC,OACNN,KAAKqmB,YAAcnoB,EAAMipB,WAI7B,IACU3iB,EAMJ4iB,EAAalpB,EAAMipB,UAAYnnB,KAAKqmB,aAAe,GAGzD,GAAmB,UAAfnoB,EAAMoC,MAAqB8mB,EATrB5iB,EAAY8F,EAAO/D,OAAOC,WAAWH,SAE3CnB,EADgBc,EAAYtF,KAAK4J,EAAjB,IAA6B9F,GACxBA,GAAW,GAgBpCxE,KAAKomB,WAAanf,WAAW,WACzB,IAAMyY,EAAUrc,SAAS4f,cAGpBvhB,EAASuE,UAAUV,SAASma,IAIjCxa,EAAY7B,SAAS4f,cAAe3Y,EAAO/D,OAAOC,WAAWH,UAAU,IACxE,sCAIe,IAAfzG,IAAeC,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,KAAAA,UAAA,GACVyK,EAAWtK,KAAXsK,OAGJA,EAAO/D,OAAOkZ,SAASE,QACvBjgB,EAAegB,KAAK4J,EAAQ/L,OAAQ,gBAAiByB,KAAKsmB,UAAW1mB,GAAQ,GAIjFF,EAAegB,KAAK4J,EAAQjH,SAASgM,KAAM,QAASrP,KAAKya,WAAY7a,GAGrEgB,EAAKF,KAAK4J,EAAQjH,SAASgM,KAAM,aAAcrP,KAAKwmB,YAGpD9mB,EAAegB,KAAK4J,EAAQjH,SAASgM,KAAM,qBAAsBrP,KAAKumB,YAAa3mB,GAAQ,GAAO,uCAI1F,IACA0K,EAAWtK,KAAXsK,OACA5I,EAAa4I,EAAb5I,UAGH4I,EAAO/D,OAAOkZ,SAASE,QAAUrV,EAAO/D,OAAOkZ,SAASC,SACzDjf,EAAGC,KAAK4J,EAAQ5I,EAASuE,UAAW,gBAAiBjG,KAAKsmB,WAAW,GAIzE7lB,EAAGC,KACC4J,EACA5I,EAASuE,UACT,2EACA,SAAA/H,GAAS,IACGuS,EAAa/O,EAAb+O,SAGW,oBAAfvS,EAAMoC,OACNmQ,EAASsD,SAAU,EACnBtD,EAASyR,OAAQ,GAIrB,IAEImF,EAAQ,GAFE,aAAc,YAAa,aAAathB,SAAS7H,EAAMoC,QAKjEuI,GAAGid,eAAeplB,KAAK4J,GAAQ,GAE/B+c,EAAQ/c,EAAOV,MAAQ,IAAO,KAIlCoc,aAAa1b,EAAO2b,OAAOxV,UAG3BnG,EAAO2b,OAAOxV,SAAWxJ,WAAW,WAAA,OAAM4B,GAAGid,eAAeplB,KAAK4J,GAAQ,IAAQ+c,qCAMrF,IACI/c,EAAWtK,KAAXsK,OACA5I,EAAa4I,EAAb5I,SAyDR,GAtDAjB,EAAGC,KAAK4J,EAAQA,EAAOd,MAAO,4BAA6B,SAAAtL,GAAA,OAASuS,GAAS0H,WAAWzX,KAAK4J,EAAQpM,KAGrGuC,EAAGC,KAAK4J,EAAQA,EAAOd,MAAO,2CAA4C,SAAAtL,GAAA,OACtEuS,GAAS8H,eAAe7X,KAAK4J,EAAQpM,KAKzCuC,EAAGC,KAAK4J,EAAQA,EAAOd,MAAO,UAAW,WACrC1E,EAAapD,EAASoQ,QAASxH,EAAOgd,UACtCxiB,EAAapD,EAASwP,QAAQK,MAAOjH,EAAOgd,YAIhD7mB,EAAGC,KAAK4J,EAAQA,EAAOd,MAAO,QAAS,WAE/Bc,EAAOf,SAAWe,EAAOyS,SAAWzS,EAAO/D,OAAO8Y,YAElD/U,EAAO8G,YAKf3Q,EAAGC,KAAK4J,EAAQA,EAAOd,MAAO,kCAAmC,SAAAtL,GAAA,OAC7DuS,GAASsG,eAAerW,KAAK4J,EAAQpM,KAIzCuC,EAAGC,KAAK4J,EAAQA,EAAOd,MAAO,eAAgB,SAAAtL,GAAA,OAASuS,GAASmG,aAAalW,KAAK4J,EAAQpM,KAG1FuC,EAAGC,KAAK4J,EAAQA,EAAOd,MAAO,8CAA+C,SAAAtL,GAAA,OACzE2K,GAAGwc,aAAa3kB,KAAK4J,EAAQpM,KAIjCuC,EAAGC,KAAK4J,EAAQA,EAAOd,MAAO,iCAAkC,SAAAtL,GAAA,OAAS2K,GAAGkd,aAAarlB,KAAK4J,EAAQpM,KAItGuC,EAAGC,KAAK4J,EAAQA,EAAOd,MAAO,UAAW,WAChCc,EAAOwX,KAKRxX,EAAOwX,IAAIvU,UAAYjD,EAAOwX,IAAIyF,aAElCjd,EAAOwX,IAAI0F,eAAe7X,KAAK,WAAA,OAAMrF,EAAOwX,IAAIhX,SAAQ+E,MAAM,WAAA,OAAMvF,EAAOQ,WAK/ER,EAAOlL,UAAUyJ,IAAMyB,EAAO/D,OAAO4Y,cAAgB7U,EAAOmd,QAAS,CAErE,IAAM9lB,EAAUuE,EAAWxF,KAAK4J,EAAhB,IAA4BA,EAAO/D,OAAOC,WAAW+B,OAGrE,IAAKvL,EAAGc,QAAQ6D,GACZ,OAIJlB,EAAGC,KAAK4J,EAAQ5I,EAASuE,UAAW,mBAAoB,SAAA/H,KACnCwD,EAASuE,UAAWtE,GAGxBoE,SAAS7H,EAAMuN,SAAY9J,EAAQ4D,SAASrH,EAAMuN,WAO3DnB,EAAO/D,OAAO6Y,cACd9U,EAAOV,OACPpE,EAAS9D,EAASuE,UAAWqE,EAAO/D,OAAOC,WAAW4Y,gBAKtD9U,EAAOod,OACPpd,EAAO8G,UACP9G,EAAOQ,QAEPR,EAAOwc,iBAMfxc,EAAOlL,UAAUyJ,IAAMyB,EAAO/D,OAAO+Y,oBACrC7e,EAAGC,KACC4J,EACA5I,EAASC,QACT,cACA,SAAAzD,GACIA,EAAMiX,mBAEV,GAKR1U,EAAGC,KAAK4J,EAAQA,EAAOd,MAAO,eAAgB,WAE1Cc,EAAOkD,QAAQjD,KACXuH,OAAQxH,EAAOwH,OACfgF,MAAOxM,EAAOwM,UAKtBrW,EAAGC,KAAK4J,EAAQA,EAAOd,MAAO,aAAc,WAExCiH,GAASqI,cAAcpY,KAAK4J,EAAQ,SAGpCA,EAAOkD,QAAQjD,KAAMkM,MAAOnM,EAAOmM,UAIvChW,EAAGC,KAAK4J,EAAQA,EAAOd,MAAO,mBAAoB,SAAAtL,GAE9CoM,EAAOkD,QAAQjD,KAAMS,QAAS9M,EAAMkD,OAAO4J,YAI/CvK,EAAGC,KAAK4J,EAAQA,EAAOd,MAAO,gBAAiB,SAAAtL,GAE3CuS,GAASqI,cAAcpY,KAAK4J,EAAQ,UAAW,KAAMpM,EAAMkD,OAAO4J,WAKtE,IAAM2c,EAAcrd,EAAO/D,OAAOpG,OAAOyL,QAAQ,QAAS,YAAYsH,KAAK,KAE3EzS,EAAGC,KAAK4J,EAAQA,EAAOd,MAAOme,EAAa,SAAAzpB,GAAS,IAAA0pB,EAC1B1pB,EAAhBkD,OAAAA,OAD0CtB,IAAA8nB,KAAAA,EAI7B,UAAf1pB,EAAMoC,OACNc,EAASkJ,EAAOd,MAAM4I,OAG1BlR,EAAaR,KAAK4J,EAAQ5I,EAASuE,UAAW/H,EAAMoC,MAAM,EAAMc,mCAKlElD,EAAO2pB,EAAgBC,GAAkB,IACnCxd,EAAWtK,KAAXsK,OACFyd,EAAgBzd,EAAO/D,OAAO+P,UAAUwR,GAE1CE,GAAW,EADUhrB,EAAGQ,SAASuqB,KAKjCC,EAAWD,EAAcrnB,KAAK4J,EAAQpM,IAItC8pB,GAAYhrB,EAAGQ,SAASqqB,IACxBA,EAAennB,KAAK4J,EAAQpM,gCAK/BJ,EAASwC,EAAMunB,EAAgBC,GAAkC,IAAA/nB,EAAAC,KAAhBC,IAAgBJ,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,KAAAA,UAAA,GAC1DyK,EAAWtK,KAAXsK,OACFyd,EAAgBzd,EAAO/D,OAAO+P,UAAUwR,GACxCG,EAAmBjrB,EAAGQ,SAASuqB,GAErCtnB,EAAGC,KACC4J,EACAxM,EACAwC,EACA,SAAApC,GAAA,OAAS6B,EAAKmoB,MAAMhqB,EAAO2pB,EAAgBC,IAC3C7nB,IAAYgoB,sCAKT,IAAApS,EAAA7V,KACCsK,EAAWtK,KAAXsK,OACA5I,EAAa4I,EAAb5I,SAGFymB,EAAa/gB,EAAQC,KAAO,SAAW,QA0I7C,GAvII3F,EAASwP,QAAQpG,MACjBpO,MAAMmF,KAAKH,EAASwP,QAAQpG,MAAMzK,QAAQ,SAAAmT,GACtCqC,EAAKU,KAAK/C,EAAQ,QAASlJ,EAAOwc,WAAY,UAKtD9mB,KAAKuW,KAAK7U,EAASwP,QAAQE,QAAS,QAAS9G,EAAO8G,QAAS,WAG7DpR,KAAKuW,KAAK7U,EAASwP,QAAQG,OAAQ,QAAS/G,EAAO+G,OAAQ,UAG3DrR,KAAKuW,KAAK7U,EAASwP,QAAQI,YAAa,QAAShH,EAAO2c,QAAS,eAGjEjnB,KAAKuW,KACD7U,EAASwP,QAAQK,KACjB,QACA,WACIjH,EAAOwM,OAASxM,EAAOwM,OAE3B,QAIJ9W,KAAKuW,KAAK7U,EAASwP,QAAQO,SAAU,QAAS,WAAA,OAAMnH,EAAO4c,mBAG3DlnB,KAAKuW,KACD7U,EAASwP,QAAQQ,WACjB,QACA,WACIpH,EAAOoH,WAAW9R,UAEtB,cAIJI,KAAKuW,KACD7U,EAASwP,QAAQnI,IACjB,QACA,WACIuB,EAAOvB,IAAM,UAEjB,OAIJ/I,KAAKuW,KAAK7U,EAASwP,QAAQjI,QAAS,QAASqB,EAAOrB,QAAS,WAG7DjJ,KAAKuW,KAAK7U,EAASwP,QAAQM,SAAU,QAAS,SAAAtT,GAE1CA,EAAMkX,kBAEN3E,GAASgK,WAAW/Z,KAAK4J,EAAQpM,KAMrC8B,KAAKuW,KACD7U,EAASwP,QAAQM,SACjB,QACA,SAAAtT,GACI,IAAMuoB,EAAOvoB,EAAMgX,OAGb,GAAI,IAAInP,SAAS0gB,KAKV,KAATA,GAMJvoB,EAAMiX,iBAGNjX,EAAMkX,kBAGN3E,GAASgK,WAAW/Z,KAAK4J,EAAQpM,IAX7BuS,GAASkF,mBAAmBjV,KAAK4J,EAAQ,MAAM,KAavD,MACA,GAIJtK,KAAKuW,KAAK7U,EAAS8P,SAAS6B,KAAM,UAAW,SAAAnV,GACrB,KAAhBA,EAAMgX,OACNzE,GAASgK,WAAW/Z,KAAK4J,EAAQpM,KAKzC8B,KAAKuW,KAAK7U,EAASkQ,OAAOC,KAAM,sBAAuB,SAAA3T,GACnD,IAAMkqB,EAAO1mB,EAASiQ,SAASkG,wBACzBN,EAAU,IAAM6Q,EAAKpQ,OAAS9Z,EAAM+Z,MAAQmQ,EAAKlQ,MACvDha,EAAMmqB,cAAcnlB,aAAa,aAAcqU,KAInDvX,KAAKuW,KAAK7U,EAASkQ,OAAOC,KAAM,sDAAuD,SAAA3T,GACnF,IAAM2T,EAAO3T,EAAMmqB,cACb5B,EAAOvoB,EAAM8kB,QAAU9kB,EAAM8kB,QAAU9kB,EAAMgX,MAGnD,IAAIlY,EAAGoB,cAAcF,IAAoB,KAATuoB,GAAwB,KAATA,EAA/C,CAKA,IAAM3b,EAAO+G,EAAKyW,aAPA,kBAUZC,GAAQ,UAAW,WAAY,SAASxiB,SAAS7H,EAAMoC,MAGzDwK,GAAQyd,GACR1W,EAAK5M,gBAdS,kBAedqF,EAAOQ,SACCyd,GAAQje,EAAOyX,UACvBlQ,EAAK3O,aAjBS,iBAiBe,IAC7BoH,EAAO6G,YAOX/J,EAAQU,MAAO,CACf,IAAM8J,EAAS5L,EAAYtF,KAAK4J,EAAQ,uBACxC5N,MAAMmF,KAAK+P,GAAQvR,QAAQ,SAAArE,GAAA,OAAS6Z,EAAKU,KAAKva,EAAOmsB,EAAY,SAAAjqB,GAAA,OAAS8I,EAAQ9I,EAAMuN,YAI5FzL,KAAKuW,KACD7U,EAASkQ,OAAOC,KAChBsW,EACA,SAAAjqB,GACI,IAAM2T,EAAO3T,EAAMmqB,cAGfG,EAAS3W,EAAK1H,aAAa,cAE3BnN,EAAGkC,MAAMspB,KACTA,EAAS3W,EAAKhP,OAGlBgP,EAAK5M,gBAAgB,cAErBqF,EAAOG,YAAc+d,EAAS3W,EAAKqC,IAAM5J,EAAO2H,UAEpD,QAIJjS,KAAKuW,KAAK7U,EAASiQ,SAAU,kCAAmC,SAAAzT,GAAA,OAC5DuS,GAASgH,kBAAkB/W,KAAK4J,EAAQpM,KAIxCkJ,EAAQG,UACR7K,MAAMmF,KAAKmE,EAAYtF,KAAK4J,EAAQ,wBAAwBjK,QAAQ,SAAAvC,GAChE+X,EAAKU,KAAKzY,EAAS,QAAS,SAAAI,GAAA,OAASuS,GAASgE,gBAAgB/T,KAAK4J,EAAQpM,EAAMuN,YAMrFnB,EAAO/D,OAAO0Y,eAAiBjiB,EAAGc,QAAQ4D,EAASqQ,QAAQE,WAC3DjS,KAAKuW,KAAK7U,EAASqQ,QAAQtH,YAAa,QAAS,WAElB,IAAvBH,EAAOG,cAIXH,EAAO/D,OAAO8R,YAAc/N,EAAO/D,OAAO8R,WAE1C5H,GAAS0H,WAAWzX,KAAK4J,MAKjCtK,KAAKuW,KACD7U,EAASkQ,OAAOE,OAChBqW,EACA,SAAAjqB,GACIoM,EAAOwH,OAAS5T,EAAMuN,OAAO5I,OAEjC,UAIJ7C,KAAKuW,KAAK7U,EAAS+O,SAAU,wBAAyB,SAAAvS,GAClDwD,EAAS+O,SAASyR,OAAS5X,EAAOV,OAAwB,eAAf1L,EAAMoC,OAIrDN,KAAKuW,KAAK7U,EAAS+O,SAAU,oDAAqD,SAAAvS,GAC9EwD,EAAS+O,SAASsD,SAAW,YAAa,cAAchO,SAAS7H,EAAMoC,QAI3EN,KAAKuW,KAAK7U,EAAS+O,SAAU,mBAAoB,SAAAvS,GAAS,IAC9CqI,EAA6B+D,EAA7B/D,OAAQ7E,EAAqB4I,EAArB5I,SAAUukB,EAAW3b,EAAX2b,OACpBwC,EAA2B,YAAfvqB,EAAMoC,KASxB,GANA4E,EAAYxD,EAAS+O,SAAUlK,EAAOC,WAAW6b,aAAcoG,GAG/D5f,GAAGid,eAAeplB,KAAK4J,EAAQme,GAG3BA,EAAW,CAEXxhB,WAAW,WACP/B,EAAYxD,EAAS+O,SAAUlK,EAAOC,WAAW6b,cAAc,IAChE,GAGH,IAAMgF,EAAQxR,EAAKjM,MAAQ,IAAO,IAGlCoc,aAAaC,EAAOxV,UAGpBwV,EAAOxV,SAAWxJ,WAAW,WAAA,OAAM4B,GAAGid,eAAeplB,KAAK4J,GAAQ,IAAQ+c,MAKlFrnB,KAAKuW,KACD7U,EAASkQ,OAAOE,OAChB,QACA,SAAA5T,GAGI,IAAMmS,EAAWnS,EAAMwqB,kCAHlBC,GAMWzqB,EAAM0qB,QAAS1qB,EAAM2qB,QAAQzjB,IAAI,SAAAvC,GAAA,OAAUwN,GAAYxN,EAAQA,IAN1EimB,EAAAhmB,EAAA6lB,EAAA,GAMEtF,EANFyF,EAAA,GAMKvF,EANLuF,EAAA,GASCC,EAAYvQ,KAAKwQ,KAAKxQ,KAAKyQ,IAAI5F,GAAK7K,KAAKyQ,IAAI1F,GAAKF,EAAIE,GAG5DjZ,EAAOyc,eAAegC,EAAY,IAZ7B,IAeGjX,EAAWxH,EAAOd,MAAlBsI,QACW,IAAdiX,GAAmBjX,EAAS,IAAsB,IAAfiX,GAAoBjX,EAAS,IACjE5T,EAAMiX,kBAGd,UACA,SAhvBN+Q,+HCZL,IAAegD,EAAAA,EAQR,WAMR,IAAIC,EAAU,aACVC,KACAC,KACAC,KAmDJ,SAASC,EAAQC,EAAUC,GAEzB,GAAKD,EAAL,CAEA,IAAIE,EAAIJ,EAAoBE,GAM5B,GAHAH,EAAkBG,GAAYC,EAGzBC,EAGL,KAAOA,EAAE5sB,QACP4sB,EAAE,GAAGF,EAAUC,GACfC,EAAEC,OAAO,EAAG,IAUhB,SAASC,EAAiB7oB,EAAM8oB,GAE1B9oB,EAAKL,OAAMK,GAAQ+oB,QAAS/oB,IAG5B8oB,EAAa/sB,QAASiE,EAAKqR,OAAS+W,GAASU,IAC3C9oB,EAAK+oB,SAAWX,GAASpoB,GASjC,SAASgpB,EAASze,EAAM0e,EAAYjpB,EAAMkpB,GACxC,IAKIC,EACAjrB,EANAkrB,EAAM9mB,SACN+mB,EAAQrpB,EAAKqpB,MACbC,GAAYtpB,EAAKupB,YAAc,GAAK,EACpCC,EAAmBxpB,EAAKypB,QAAUrB,EAClCsB,EAAenf,EAAK7G,QAAQ,cAAe,IAI/CwlB,EAAWA,GAAY,EAEnB,iBAAiBxiB,KAAK6D,IACxB4e,GAAQ,GAGRjrB,EAAIkrB,EAAIhnB,cAAc,SACpBunB,IAAM,aACRzrB,EAAEyd,KAAO+N,GACA,+BAA+BhjB,KAAK6D,IAE7CrM,EAAIkrB,EAAIhnB,cAAc,QACpB0H,IAAM4f,IAGRxrB,EAAIkrB,EAAIhnB,cAAc,WACpB0H,IAAMS,EACRrM,EAAEmrB,WAAkBtqB,IAAVsqB,GAA6BA,GAGzCnrB,EAAE+lB,OAAS/lB,EAAEgmB,QAAUhmB,EAAE0rB,aAAe,SAAUC,GAChD,IAAIhb,EAASgb,EAAGtqB,KAAK,GAIrB,GAAI4pB,GAAS,cAAejrB,EAC1B,IACOA,EAAE4rB,MAAMC,QAAQhuB,SAAQ8S,EAAS,KACtC,MAAOyT,GAGPzT,EAAS,IAKb,GAAc,KAAVA,IAEFqa,GAAY,GAGGI,EACb,OAAON,EAASze,EAAM0e,EAAYjpB,EAAMkpB,GAK5CD,EAAW1e,EAAMsE,EAAQgb,EAAGG,oBAII,IAA9BR,EAAiBjf,EAAMrM,IAAckrB,EAAIa,KAAK1oB,YAAYrD,GA+ChE,SAASgsB,EAAOC,EAAOC,EAAMC,GAC3B,IAAI5B,EACAzoB,EASJ,GANIoqB,GAAQA,EAAK5mB,OAAMilB,EAAW2B,GAGlCpqB,GAAQyoB,EAAW4B,EAAOD,OAGtB3B,EAAU,CACZ,GAAIA,KAAYJ,EACd,KAAM,SAENA,EAAcI,IAAY,GArDhC,SAAmB0B,EAAOlB,EAAYjpB,GAIpC,IAGIsqB,EACArf,EAJAsf,GAFJJ,EAAQA,EAAM1qB,KAAO0qB,GAASA,IAEPpuB,OACnBumB,EAAIiI,EACJ7B,KAqBJ,IAhBA4B,EAAK,SAAS/f,EAAMsE,EAAQmb,GAM1B,GAJc,KAAVnb,GAAe6Z,EAAcjpB,KAAK8K,GAIxB,KAAVsE,EAAe,CACjB,IAAImb,EACC,OADiBtB,EAAcjpB,KAAK8K,KAI3CggB,GACiBtB,EAAWP,IAIzBzd,EAAE,EAAGA,EAAIqX,EAAGrX,IAAK+d,EAASmB,EAAMlf,GAAIqf,EAAItqB,GA+B7CwqB,CAAUL,EAAO,SAAUzB,GAEzBG,EAAiB7oB,EAAM0oB,GAGvBF,EAAQC,EAAUC,IACjB1oB,GAiDL,OAxCAkqB,EAAO3F,MAAQ,SAAekG,EAAMzqB,GAOlC,OAxOF,SAAmB0qB,EAAWzB,GAE5ByB,EAAYA,EAAUjrB,KAAOirB,GAAaA,GAE1C,IAGIJ,EACA7B,EACAkC,EALA7B,KACA7d,EAAIyf,EAAU3uB,OACdwuB,EAAatf,EAejB,IARAqf,EAAK,SAAU7B,EAAUC,GACnBA,EAAc3sB,QAAQ+sB,EAAarpB,KAAKgpB,KAE5C8B,GACiBtB,EAAWH,IAIvB7d,KACLwd,EAAWiC,EAAUzf,IAGrB0f,EAAIrC,EAAkBG,IAEpB6B,EAAG7B,EAAUkC,IAKXpC,EAAoBE,GAAYF,EAAoBE,QACtDhpB,KAAK6qB,GAkMTM,CAAUH,EAAM,SAAU3B,GAExBD,EAAiB7oB,EAAM8oB,KAGlBoB,GAQTA,EAAO1C,KAAO,SAAciB,GAC1BD,EAAQC,OAOVyB,EAAOvK,MAAQ,WACb0I,KACAC,KACAC,MAQF2B,EAAOW,UAAY,SAAmBpC,GACpC,OAAOA,KAAYJ,GAKd6B,GA9RHY,EAAAC,QAAiB5C,6CCEN,SAAS6C,GAAWltB,GAC/B,OAAO,IAAIuP,QAAQ,SAACC,EAASC,GACzB2c,GAAOpsB,GACHirB,QAASzb,EACT+D,MAAO9D,MC2BnB,SAAS0d,GAAoBlhB,GACrBA,IAAS9K,KAAKke,MAAM+N,YACpBjsB,KAAKke,MAAM+N,WAAY,GAEvBjsB,KAAKwJ,MAAMkB,SAAWI,IACtB9K,KAAKwJ,MAAMkB,QAAUI,EACrB5J,EAAaR,KAAKV,KAAMA,KAAKwJ,MAAOsB,EAAO,OAAS,UAI5D,IAAMuW,IACFvE,MADU,WACF,IAAA/c,EAAAC,KAEJkF,EAAYlF,KAAK0B,SAASC,QAAS3B,KAAKuG,OAAOC,WAAW0X,OAAO,GAGjEmD,GAAM6K,eAAexrB,KAAKV,MAGrBhD,EAAGE,OAAOqB,OAAO4tB,OASlB9K,GAAMiE,MAAM5kB,KAAKV,MARjB+rB,GAAW/rB,KAAKuG,OAAO6a,KAAKC,MAAMC,KAC7B3R,KAAK,WACF0R,GAAMiE,MAAM5kB,KAAKX,KAEpB8P,MAAM,SAAAuC,GACHrS,EAAKoL,MAAMkH,KAAK,2BAA4BD,MAS5D8Z,eAxBU,SAwBKlwB,GAAO,IAAAowB,GACFpvB,EAAGM,OAAOtB,GAASA,EAAQgE,KAAKuG,OAAO2Y,OAAO9e,MAAM,KADlDisB,EAAAvpB,EAAAspB,EAAA,GAEZE,EAAU,IAFED,EAAA,GAAAA,EAAA,GAKlB,GAFArsB,KAAK0B,SAASC,QAAQoF,MAAMwlB,cAAmBD,EAA/C,IAEItsB,KAAKZ,UAAUyJ,GAAI,CACnB,IACM2jB,GADS,IACUF,GAAV,IAEftsB,KAAKwJ,MAAMzC,MAAM0lB,UAAjB,eAA4CD,EAA5C,OAKRlH,MAtCU,WAsCF,IAAAzP,EAAA7V,KACEsK,EAAStK,KAeT4c,EAASD,IAXX4C,KAAMjV,EAAO/D,OAAOgZ,KAAKjC,OACzByB,SAAUzU,EAAOyU,SAEjB2N,QAAQ,EACRC,UAAU,EACV3f,OAAO,EACPyJ,OAAO,EACPmW,YAAa,EACbC,QAAS,QACTnkB,aAAc1I,KAAKuG,OAAOmL,WAAWmO,YAKrC3V,EAASI,EAAOd,MAAMW,aAAa,OAGnCnN,EAAGkC,MAAMgL,KACTA,EAASI,EAAOd,MAAMW,aAAaG,EAAO/D,OAAO9D,WAAWyb,MAAMrZ,KAGtE,IA/FShG,EA+FHgG,GA/FGhG,EA+FUqL,EA9FnBlN,EAAGkC,MAAML,GACF,KAGP7B,EAAGG,OAAOC,OAAOyB,IACVA,EAIJA,EAAIkN,MADG,mCACYG,OAAO4gB,GAAKjuB,GAwF5B0iB,EAASpe,EAAc,UACvB0H,EAAMgB,EAAOvB,EAAO/D,OAAO6a,KAAKC,MAAME,OAAQ1c,EAAI+X,GACxD2E,EAAOre,aAAa,MAAO2H,GAC3B0W,EAAOre,aAAa,kBAAmB,IACvCqe,EAAOre,aAAa,oBAAqB,IACzCqe,EAAOre,aAAa,QAAS,YAlCzB,IAwCEvB,EAAUwB,EAAc,OAASye,OAHpBtX,EAAXsX,OAGuChd,MAAO0F,EAAO/D,OAAOC,WAAWmb,iBAC/EhgB,EAAQW,YAAYif,GACpBjX,EAAOd,MAAQ3F,EAAelC,EAAS2I,EAAOd,OAG9C0E,GAAMrC,EAAOvB,EAAO/D,OAAO6a,KAAKC,MAAMzY,IAAK/D,GAAK,QAAQ8K,KAAK,SAAAjB,GACzD,IAAI1R,EAAGkC,MAAMwP,GAAb,CAKA,IAAM7P,EAAM,IAAIC,IAAI4P,EAAS,GAAGqe,iBAGhCluB,EAAImuB,SAAcnuB,EAAImuB,SAAS5sB,MAAM,KAAK,GAA1C,OAGAyI,GAAG2c,UAAU9kB,KAAK4J,EAAQzL,EAAI6d,MAAM7M,MAAM,iBAK9CvF,EAAO4T,MAAQ,IAAI3f,OAAO4tB,MAAMc,OAAO1L,GACnCvC,UAAW1U,EAAO/D,OAAOyY,UACzBlI,MAAOxM,EAAOwM,QAGlBxM,EAAOd,MAAMkB,QAAS,EACtBJ,EAAOd,MAAMiB,YAAc,EAGvBH,EAAOlL,UAAUyJ,IACjByB,EAAO4T,MAAMgP,mBAIjB5iB,EAAOd,MAAMsB,KAAO,WAEhB,OADAkhB,GAAoBtrB,KAAK4J,GAAQ,GAC1BA,EAAO4T,MAAMpT,QAGxBR,EAAOd,MAAM2H,MAAQ,WAEjB,OADA6a,GAAoBtrB,KAAK4J,GAAQ,GAC1BA,EAAO4T,MAAM/M,SAGxB7G,EAAOd,MAAM2jB,KAAO,WAChB7iB,EAAO6G,QACP7G,EAAOG,YAAc,GAxFrB,IA4FEA,EAAgBH,EAAOd,MAAvBiB,YACNnO,OAAOgD,eAAegL,EAAOd,MAAO,eAChCjK,IAD+C,WAE3C,OAAOkL,GAEXF,IAJ+C,SAI3C4F,GAAM,IAIE+N,EAAiC5T,EAAjC4T,MAAO1U,EAA0Bc,EAA1Bd,MAAOkB,EAAmBJ,EAAnBI,OAAQoH,EAAWxH,EAAXwH,OACxBsb,EAAe1iB,IAAWwT,EAAM+N,UAGtCziB,EAAM8O,SAAU,EAChBpX,EAAaR,KAAK4J,EAAQd,EAAO,WAGjC4E,QAAQC,QAAQ+e,GAAgBlP,EAAMmP,UAAU,IAE3C1d,KAAK,WAAA,OAAMuO,EAAMoP,eAAend,KAEhCR,KAAK,WAAA,OAAMyd,GAAgBlP,EAAM/M,UAEjCxB,KAAK,WAAA,OAAMyd,GAAgBlP,EAAMmP,UAAUvb,KAC3CjC,MAAM,iBAOnB,IAAI4G,EAAQnM,EAAO/D,OAAOkQ,MAAM+I,SAChCljB,OAAOgD,eAAegL,EAAOd,MAAO,gBAChCjK,IADgD,WAE5C,OAAOkX,GAEXlM,IAJgD,SAI5CvO,GACAsO,EAAO4T,MACFqP,gBAAgBvxB,GAChB2T,KAAK,WACF8G,EAAQza,EACRkF,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,gBAE3CqG,MAAM,SAAAuC,GAEgB,UAAfA,EAAMob,MACN/c,GAASyJ,aAAaxZ,KAAK4J,WA1I3C,IAiJEwH,EAAWxH,EAAO/D,OAAlBuL,OACNxV,OAAOgD,eAAegL,EAAOd,MAAO,UAChCjK,IAD0C,WAEtC,OAAOuS,GAEXvH,IAJ0C,SAItCvO,GACAsO,EAAO4T,MAAMmP,UAAUrxB,GAAO2T,KAAK,WAC/BmC,EAAS9V,EACTkF,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,qBAzJhD,IA+JEsN,EAAUxM,EAAO/D,OAAjBuQ,MACNxa,OAAOgD,eAAegL,EAAOd,MAAO,SAChCjK,IADyC,WAErC,OAAOuX,GAEXvM,IAJyC,SAIrCvO,GACA,IAAM4D,IAAS5C,EAAGO,QAAQvB,IAASA,EAEnCsO,EAAO4T,MAAMmP,UAAUztB,EAAS,EAAI0K,EAAO/D,OAAOuL,QAAQnC,KAAK,WAC3DmH,EAAQlX,EACRsB,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,qBAzKhD,IA+KE+V,EAASjV,EAAO/D,OAAhBgZ,KACNjjB,OAAOgD,eAAegL,EAAOd,MAAO,QAChCjK,IADwC,WAEpC,OAAOggB,GAEXhV,IAJwC,SAIpCvO,GACA,IAAM4D,EAAS5C,EAAGO,QAAQvB,GAASA,EAAQsO,EAAO/D,OAAOgZ,KAAKjC,OAE9DhT,EAAO4T,MAAMuP,QAAQ7tB,GAAQ+P,KAAK,WAC9B4P,EAAO3f,OAMnB,IAAI8tB,OAAAA,EACJpjB,EAAO4T,MACFyP,cACAhe,KAAK,SAAA9M,GACF6qB,EAAa7qB,IAEhBgN,MAAM,SAAAuC,GACHyD,EAAK1K,MAAMkH,KAAKD,KAGxB9V,OAAOgD,eAAegL,EAAOd,MAAO,cAChCjK,IAD8C,WAE1C,OAAOmuB,KAKfpxB,OAAOgD,eAAegL,EAAOd,MAAO,SAChCjK,IADyC,WAErC,OAAO+K,EAAOG,cAAgBH,EAAO2H,YAK7C7D,QAAQqS,KAAKnW,EAAO4T,MAAM0P,gBAAiBtjB,EAAO4T,MAAM2P,mBAAmBle,KAAK,SAAAme,GAC5E,IAAM5O,EA9QlB,SAAwBlH,EAAOkD,GAC3B,IACMgE,EADW,SAAX6O,EAAYC,EAAGC,GAAJ,OAAiB,IAANA,EAAUD,EAAID,EAASE,EAAGD,EAAIC,GAC5CF,CAAS/V,EAAOkD,GAC9B,OAAUlD,EAAQkH,EAAlB,IAA2BhE,EAASgE,EA2QdgP,CAAeJ,EAAW,GAAIA,EAAW,IACvDzM,GAAM6K,eAAexrB,KAAKmV,EAAMqJ,KAIpC5U,EAAO4T,MAAMiQ,aAAa7jB,EAAO/D,OAAOyY,WAAWrP,KAAK,SAAAye,GACpD9jB,EAAO/D,OAAOyY,UAAYoP,IAI9B9jB,EAAO4T,MAAMmQ,gBAAgB1e,KAAK,SAAA3C,GAC9B1C,EAAO/D,OAAOyG,MAAQA,EACtBnE,GAAG0c,SAAS7kB,KAAKmV,KAIrBvL,EAAO4T,MAAMoQ,iBAAiB3e,KAAK,SAAA9M,GAC/B4H,EAAc5H,EACd3B,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,gBAI5Cc,EAAO4T,MAAMqQ,cAAc5e,KAAK,SAAA9M,GAC5ByH,EAAOd,MAAMyI,SAAWpP,EACxB3B,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,oBAI5Cc,EAAO4T,MAAMsQ,gBAAgB7e,KAAK,SAAAkK,GAC9BvP,EAAOd,MAAMG,WAAakQ,EAC1BpI,GAASqL,MAAMpc,KAAK4J,KAGxBA,EAAO4T,MAAMzd,GAAG,YAAa,SAAAmC,GAAmB,IAAA6rB,EAAA7rB,EAAhB6b,KACtBiQ,QADsC5uB,IAAA2uB,KAAAA,GAClBrpB,IAAI,SAAA9G,GAAA,OnBvQhB4L,EmBuQiC5L,EAAI8E,KnBtQrDurB,EAAWtrB,SAASurB,yBACpB9wB,EAAUuF,SAASF,cAAc,OACvCwrB,EAASrsB,YAAYxE,GACrBA,EAAQ6O,UAAYzC,EACbykB,EAASE,WAAWvrB,UALxB,IAAmB4G,EAChBykB,EACA7wB,ImBsQE2T,GAASoM,WAAWnd,KAAK4J,EAAQokB,KAGrCpkB,EAAO4T,MAAMzd,GAAG,SAAU,YAEtB6J,EAAO4T,MAAM4Q,YAAYnf,KAAK,SAAAjF,GAC1BshB,GAAoBtrB,KAAK4J,GAASI,GAC7BA,GACDxJ,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,aAI5CxM,EAAGc,QAAQwM,EAAO4T,MAAMpgB,UAAYwM,EAAOlL,UAAUyJ,KACvCyB,EAAO4T,MAAMpgB,QAIrBoF,aAAa,YAAa,KAIxCoH,EAAO4T,MAAMzd,GAAG,OAAQ,WACpBurB,GAAoBtrB,KAAK4J,GAAQ,GACjCpJ,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,aAG5Cc,EAAO4T,MAAMzd,GAAG,QAAS,WACrBurB,GAAoBtrB,KAAK4J,GAAQ,KAGrCA,EAAO4T,MAAMzd,GAAG,aAAc,SAAA2O,GAC1B9E,EAAOd,MAAM8O,SAAU,EACvB7N,EAAc2E,EAAK2f,QACnB7tB,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,gBAG5Cc,EAAO4T,MAAMzd,GAAG,WAAY,SAAA2O,GACxB9E,EAAOd,MAAM8N,SAAWlI,EAAKmI,QAC7BrW,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,YAGL,IAA/BuG,SAASX,EAAKmI,QAAS,KACvBrW,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,kBAK5Cc,EAAO4T,MAAMqQ,cAAc5e,KAAK,SAAA9M,GACxBA,IAAUyH,EAAOd,MAAMyI,WACvB3H,EAAOd,MAAMyI,SAAWpP,EACxB3B,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,uBAKpDc,EAAO4T,MAAMzd,GAAG,SAAU,WACtB6J,EAAOd,MAAM8O,SAAU,EACvBpX,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,YAG5Cc,EAAO4T,MAAMzd,GAAG,QAAS,WACrB6J,EAAOd,MAAMkB,QAAS,EACtBxJ,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,WAG5Cc,EAAO4T,MAAMzd,GAAG,QAAS,SAAAW,GACrBkJ,EAAOd,MAAM4I,MAAQhR,EACrBF,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,WAI5CvC,WAAW,WAAA,OAAM4B,GAAGuc,MAAM1kB,KAAK4J,IAAS,KC5XhD,SAAS0kB,GAAehzB,GACpB,IAWMizB,EAAQ3yB,OAAOoG,SAVjBwsB,OAAQ,KACRC,OAAQ,KACRC,OAAQ,KACRC,MAAO,IACPC,MAAO,IACPC,OAAQ,IACRC,MAAO,IACPC,KAAM,MAG8B3oB,KAAK,SAAAmoB,GAAA,OAASA,EAAMlpB,SAAS/J,KAErE,OAAIizB,EAEOA,EAAMnoB,KAAK,SAAAjE,GAAA,OAASA,IAAU7G,IAGlC,UAYX,SAASgwB,GAAoBlhB,GACrBA,IAAS9K,KAAKke,MAAM+N,YACpBjsB,KAAKke,MAAM+N,WAAY,GAEvBjsB,KAAKwJ,MAAMkB,SAAWI,IACtB9K,KAAKwJ,MAAMkB,QAAUI,EACrB5J,EAAaR,KAAKV,KAAMA,KAAKwJ,MAAOsB,EAAO,OAAS,UAI5D,IrB5D0B5N,GqB4DpBskB,IACF1E,MADY,WACJ,IAAA/c,EAAAC,KAEJkF,EAAYlF,KAAK0B,SAASC,QAAS3B,KAAKuG,OAAOC,WAAW0X,OAAO,GAGjEsD,GAAQ0K,eAAexrB,KAAKV,MAGxBhD,EAAGE,OAAOqB,OAAOmxB,KAAO1yB,EAAGQ,SAASe,OAAOmxB,GAAGzC,QAC9CzL,GAAQ8D,MAAM5kB,KAAKV,OAGnB+rB,GAAW/rB,KAAKuG,OAAO6a,KAAKI,QAAQF,KAAKzR,MAAM,SAAAuC,GAC3CrS,EAAKoL,MAAMkH,KAAK,6BAA8BD,KAKlD7T,OAAOoxB,wBAA0BpxB,OAAOoxB,4BAGxCpxB,OAAOoxB,wBAAwBnvB,KAAK,WAChCghB,GAAQ8D,MAAM5kB,KAAKX,KAIvBxB,OAAOqxB,wBAA0B,WAC7BrxB,OAAOoxB,wBAAwBtvB,QAAQ,SAAAV,GACnCA,SAOhBkwB,SApCY,SAoCHC,GAAS,IAAAja,EAAA7V,KAId,GAAIhD,EAAGQ,SAASwC,KAAKke,MAAM6R,cAAe,CAAA,IAC9B/iB,EAAUhN,KAAKke,MAAM6R,eAArB/iB,MAER,GAAIhQ,EAAGkC,MAAM8N,GAGT,OAFAhN,KAAKuG,OAAOyG,MAAQA,OACpBnE,GAAG0c,SAAS7kB,KAAKV,MAMzB,IAAMiD,EAAMjD,KAAKuG,OAAOxJ,KAAKulB,OACzBtlB,EAAGM,OAAO2F,KAASjG,EAAGkC,MAAM+D,IAG5BiL,GAFYrC,EAAO7L,KAAKuG,OAAO6a,KAAKI,QAAQ5Y,IAAKknB,EAAS7sB,IAGrD0M,KAAK,SAAAC,GACE5S,EAAGE,OAAO0S,KACViG,EAAKtP,OAAOyG,MAAQ4C,EAAOogB,MAAM,GAAGC,QAAQjjB,MAC5CnE,GAAG0c,SAAS7kB,KAAKmV,MAGxBhG,MAAM,eAKnBqc,eAnEY,WAoER,IAAMhN,EAAQlf,KAAKuG,OAAO2Y,MAAM9e,MAAM,KACtCJ,KAAK0B,SAASC,QAAQoF,MAAMwlB,cAAmB,IAAMrN,EAAM,GAAKA,EAAM,GAAtE,KAIJoG,MAzEY,WA0ER,IAAMhb,EAAStK,KAGTkwB,EAAY5lB,EAAOd,MAAMW,aAAa,MAC5C,GAAKnN,EAAGkC,MAAMgxB,KAAcA,EAAUnxB,WAAW,YAAjD,CAKA,IAAImL,EAASI,EAAOd,MAAMW,aAAa,OAGnCnN,EAAGkC,MAAMgL,KACTA,EAASI,EAAOd,MAAMW,aAAanK,KAAKuG,OAAO9D,WAAWyb,MAAMrZ,KAIpE,IA9IShG,EA8IHixB,GA9IGjxB,EA8IeqL,EA7IxBlN,EAAGkC,MAAML,GACF,KAIJA,EAAIkN,MADG,gEACYG,OAAO4gB,GAAKjuB,GAyI5BgG,EAAgByF,EAAO7B,SpBvJjC,IAAoB+P,KAAK0D,MAAsB,IAAhB1D,KAAK2D,UoB6J1BlW,EAAY9C,EAAc,OAAS0B,GAAAA,EAAI+c,OAH1BtX,EAAXsX,SAIRtX,EAAOd,MAAQ3F,EAAeoC,EAAWqE,EAAOd,OAGhD,IAAM2mB,EAAY,SAAAC,GAAA,MAAA,8BAAwCN,EAAxC,IAAmDjkB,EAAnD,eAGlB8Y,GAAUwL,EAAU,UAAW,KAC1BtgB,MAAM,WAAA,OAAM8U,GAAUwL,EAAU,MAAO,OACvCtgB,MAAM,WAAA,OAAM8U,GAAUwL,EAAU,SAChCxgB,KAAK,SAAAkV,GAAA,OAAShc,GAAG2c,UAAU9kB,KAAK4J,EAAQua,EAAMha,OAC9C8E,KAAK,SAAAwgB,GAEGA,EAAUpqB,SAAS,YACpBuE,EAAO5I,SAASkgB,OAAO7a,MAAM8e,eAAiB,WAGrDhW,MAAM,cAIXvF,EAAO4T,MAAQ,IAAI3f,OAAOmxB,GAAGzC,OAAOpoB,GAChCirB,QAAAA,EACAO,YACItR,SAAUzU,EAAO/D,OAAOwY,SAAW,EAAI,EACvCuR,GAAIhmB,EAAO/D,OAAO+pB,GAClB7f,SAAUnG,EAAOlL,UAAUyJ,GAAK,EAAI,EACpC6hB,IAAK,EACL6F,SAAU,EACVC,eAAgB,EAChBC,eAAgB,EAChBC,UAAW,EACXhoB,YAAa,EAIbioB,gBAAiBpyB,OAASA,OAAOsS,SAAS6L,KAAO,KAGjDkU,eAAgBtmB,EAAOmH,SAAS6L,OAAS,EAAI,EAC7CuT,aAAcvmB,EAAO/D,OAAOkL,SAASuI,UAEzC7Z,QACI2wB,QADI,SACI5yB,GAEJ,IAAKoM,EAAOd,MAAM4I,MAAO,CACrB,IAAMqU,EAAOvoB,EAAMkR,KAEb2hB,GAEEC,EAAG,uOACHC,EAAG,uHACHC,IAAK,qIACLC,IAAK,uFACLC,IAAK,wFACP3K,IAAS,2BAEfnc,EAAOd,MAAM4I,OAAUqU,KAAAA,EAAMsK,QAAAA,GAE7B7vB,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,WAGhD6nB,wBApBI,WAqBAnwB,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,iBAAiB,GACrDwB,QAASV,EAAOd,MAAMwB,WAG9BsmB,qBAzBI,SAyBiBpzB,GAEjB,IAAMqzB,EAAWrzB,EAAMuN,OAGvBnB,EAAOd,MAAMgoB,aAAeD,EAASE,kBAErCvwB,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,eAE5CkoB,QAlCI,SAkCIxzB,GAEJ,IAAIlB,EAAGQ,SAAS8M,EAAOd,MAAMsB,MAA7B,CAIA,IAAMymB,EAAWrzB,EAAMuN,OAGvB+V,GAAQqO,SAASnvB,KAAK4J,EAAQwlB,GAG9BxlB,EAAOd,MAAMsB,KAAO,WAChBkhB,GAAoBtrB,KAAK4J,GAAQ,GACjCinB,EAASI,aAGbrnB,EAAOd,MAAM2H,MAAQ,WACjB6a,GAAoBtrB,KAAK4J,GAAQ,GACjCinB,EAASK,cAGbtnB,EAAOd,MAAM2jB,KAAO,WAChBoE,EAASM,aAGbvnB,EAAOd,MAAMyI,SAAWsf,EAAShD,cACjCjkB,EAAOd,MAAMkB,QAAS,EAGtBJ,EAAOd,MAAMiB,YAAc,EAC3BnO,OAAOgD,eAAegL,EAAOd,MAAO,eAChCjK,IAD+C,WAE3C,OAAOnC,OAAOm0B,EAASjD,mBAE3B/jB,IAJ+C,SAI3C4F,GAEI7F,EAAOI,SAAWJ,EAAO4T,MAAM+N,WAC/B3hB,EAAO4T,MAAM3M,OAIjBjH,EAAOd,MAAM8O,SAAU,EACvBpX,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,WAGxC+nB,EAAS/I,OAAOrY,MAKxB7T,OAAOgD,eAAegL,EAAOd,MAAO,gBAChCjK,IADgD,WAE5C,OAAOgyB,EAASE,mBAEpBlnB,IAJgD,SAI5CvO,GACAu1B,EAAShE,gBAAgBvxB,MAKjCM,OAAOgD,eAAegL,EAAOd,MAAO,WAChCjK,IAD2C,WAEvC,OAAOyvB,GAAeuC,EAASO,uBAEnCvnB,IAJ2C,SAIvCvO,GACAu1B,EAASQ,mBAAmB/C,GAAehzB,OAlExC,IAuEL8V,EAAWxH,EAAO/D,OAAlBuL,OACNxV,OAAOgD,eAAegL,EAAOd,MAAO,UAChCjK,IAD0C,WAEtC,OAAOuS,GAEXvH,IAJ0C,SAItCvO,GACA8V,EAAS9V,EACTu1B,EAASlE,UAAmB,IAATvb,GACnB5Q,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,mBA/ErC,IAoFLsN,EAAUxM,EAAO/D,OAAjBuQ,MACNxa,OAAOgD,eAAegL,EAAOd,MAAO,SAChCjK,IADyC,WAErC,OAAOuX,GAEXvM,IAJyC,SAIrCvO,GACA,IAAM4D,EAAS5C,EAAGO,QAAQvB,GAASA,EAAQ8a,EAC3CA,EAAQlX,EACR2xB,EAAS3xB,EAAS,OAAS,YAC3BsB,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,mBAKhDlN,OAAOgD,eAAegL,EAAOd,MAAO,cAChCjK,IAD8C,WAE1C,OAAOgyB,EAAS5D,iBAKxBrxB,OAAOgD,eAAegL,EAAOd,MAAO,SAChCjK,IADyC,WAErC,OAAO+K,EAAOG,cAAgBH,EAAO2H,YAK7C3H,EAAOjL,QAAQoX,MAAQ8a,EAASS,4BAG5B1nB,EAAOlL,UAAUyJ,IACjByB,EAAOd,MAAMtG,aAAa,YAAa,GAG3ChC,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,cACxCtI,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,kBAGxCyoB,cAAc3nB,EAAO2b,OAAOiM,WAG5B5nB,EAAO2b,OAAOiM,UAAYC,YAAY,WAElC7nB,EAAOd,MAAM8N,SAAWia,EAASa,0BAGC,OAA9B9nB,EAAOd,MAAM6oB,cAAyB/nB,EAAOd,MAAM6oB,aAAe/nB,EAAOd,MAAM8N,WAC/EpW,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,YAI5Cc,EAAOd,MAAM6oB,aAAe/nB,EAAOd,MAAM8N,SAGX,IAA1BhN,EAAOd,MAAM8N,WACb2a,cAAc3nB,EAAO2b,OAAOiM,WAG5BhxB,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,oBAE7C,KAGHvC,WAAW,WAAA,OAAM4B,GAAGuc,MAAM1kB,KAAK4J,IAAS,MAE5CgoB,cAxLI,SAwLUp0B,GAEV,IAzVKq0B,EAyVChB,EAAWrzB,EAAMuN,OAoBvB,OAjBAwmB,cAAc3nB,EAAO2b,OAAOlE,SAEbzX,EAAOd,MAAM8O,UAAY,EAAG,GAAGvS,SAAS7H,EAAMkR,QAIzD9E,EAAOd,MAAM8O,SAAU,EACvBpX,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,WAUpCtL,EAAMkR,MACV,KAAM,EAEFlO,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,cAGxCc,EAAOd,MAAM8N,SAAWia,EAASa,yBACjClxB,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,YAExC,MAEJ,KAAK,EACDwiB,GAAoBtrB,KAAK4J,GAAQ,GAG7BA,EAAOd,MAAM+V,MAEbgS,EAASM,YACTN,EAASI,aAETzwB,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,SAG5C,MAEJ,KAAK,EAEGc,EAAOd,MAAMkB,SAAWJ,EAAO4T,MAAM+N,UACrC3hB,EAAOd,MAAM2H,SAEb6a,GAAoBtrB,KAAK4J,GAAQ,GAEjCpJ,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,WAGxCc,EAAO2b,OAAOlE,QAAUoQ,YAAY,WAChCjxB,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,eACzC,IAKCc,EAAOd,MAAMyI,WAAasf,EAAShD,gBACnCjkB,EAAOd,MAAMyI,SAAWsf,EAAShD,cACjCrtB,EAAaR,KAAK4J,EAAQA,EAAOd,MAAO,mBAI5CiH,GAAS0I,eAAezY,KACpB4J,GA9ZXioB,EA+Z2BhB,EAASiB,4BA9ZrDx1B,EAAGkC,MAAMqzB,GACFA,EAGJrlB,EAAOqlB,EAAOntB,IAAI,SAAAqtB,GAAA,OAASzD,GAAeyD,SA8ZzB,MAEJ,KAAK,EAEInoB,EAAOwM,OACRxM,EAAO4T,MAAMwU,SAEjB1G,GAAoBtrB,KAAK4J,GAAQ,GAQzCpJ,EAAaR,KAAK4J,EAAQA,EAAO5I,SAASuE,UAAW,eAAe,GAChEwgB,KAAMvoB,EAAMkR,cC1d9B5F,IAEFsT,MAFU,WAID9c,KAAKwJ,OAMVtE,EAAYlF,KAAK0B,SAASuE,UAAWjG,KAAKuG,OAAOC,WAAWlG,KAAKmE,QAAQ,MAAOzE,KAAKM,OAAO,GAG5F4E,EAAYlF,KAAK0B,SAASuE,UAAWjG,KAAKuG,OAAOC,WAAWiC,SAAShE,QAAQ,MAAOzE,KAAKyI,WAAW,GAIhGzI,KAAKylB,SACLvgB,EAAYlF,KAAK0B,SAASuE,UAAWjG,KAAKuG,OAAOC,WAAWlG,KAAKmE,QAAQ,MAAO,UAAU,GAI1FzE,KAAK+c,UAEL/c,KAAK0B,SAASC,QAAUwB,EAAc,OAClCyB,MAAO5E,KAAKuG,OAAOC,WAAW+B,QAIlC9G,EAAKzB,KAAKwJ,MAAOxJ,KAAK0B,SAASC,SAG/B3B,KAAK0B,SAASkgB,OAASze,EAAc,OACjCyB,MAAO5E,KAAKuG,OAAOC,WAAWob,SAGlC5hB,KAAK0B,SAASC,QAAQW,YAAYtC,KAAK0B,SAASkgB,SAGhD5hB,KAAKuJ,QACLS,EAAMK,OAAO3J,KAAKV,MACXA,KAAKgd,UACZwE,GAAQ1E,MAAMpc,KAAKV,MACZA,KAAKoa,SACZiH,GAAMvE,MAAMpc,KAAKV,OAvCjBA,KAAKmL,MAAMkH,KAAK,6BCEtBsgB,GAAAA,WAMF,SAAAA,EAAYroB,GAAQ,IAAAvK,EAAAC,KAAAsN,EAAAtN,KAAA2yB,GAChB3yB,KAAKsK,OAASA,EACdtK,KAAKuiB,YAAcjY,EAAO/D,OAAOub,IAAIS,YACrCviB,KAAK+hB,SAAU,EACf/hB,KAAKunB,aAAc,EACnBvnB,KAAK0B,UACDuE,UAAW,KACX2sB,iBAAkB,MAEtB5yB,KAAK6yB,QAAU,KACf7yB,KAAK8yB,OAAS,KACd9yB,KAAK+yB,UAAY,KACjB/yB,KAAKG,UACLH,KAAKgzB,YAAc,KACnBhzB,KAAKizB,eAAiB,KAGtBjzB,KAAKwnB,eAAiB,IAAIpZ,QAAQ,SAACC,EAASC,GAExCvO,EAAKU,GAAG,SAAU4N,GAGlBtO,EAAKU,GAAG,QAAS6N,KAGrBtO,KAAK+K,gDAYF,IAAA8K,EAAA7V,KACCA,KAAKuN,UAEAvQ,EAAGE,OAAOqB,OAAO+jB,SAAYtlB,EAAGE,OAAOqB,OAAO+jB,OAAO4Q,KAUtDlzB,KAAKslB,QATLyG,GAAW/rB,KAAKsK,OAAO/D,OAAO6a,KAAKK,UAAUH,KACxC3R,KAAK,WACFkG,EAAKyP,UAERzV,MAAM,WAEHgG,EAAKsd,QAAQ,QAAS,IAAIxkB,MAAM,qEAW5C,IAAAqI,EAAAhX,KAGJA,KAAKozB,iBAAiB,KAAO,WAG7BpzB,KAAKwnB,eAAe7X,KAAK,WACrBqH,EAAKqc,iBAAiB,0BAI1BrzB,KAAKsW,YAGLtW,KAAKszB,8CA8BLtzB,KAAK0B,SAASuE,UAAY9C,EAAc,OACpCyB,MAAO5E,KAAKsK,OAAO/D,OAAOC,WAAWsb,MAEzC9hB,KAAKsK,OAAO5I,SAASuE,UAAU3D,YAAYtC,KAAK0B,SAASuE,WAGzDqc,OAAO4Q,IAAI1hB,SAAS+hB,aAAajR,OAAO4Q,IAAIM,eAAeC,UAAUC,SAGrEpR,OAAO4Q,IAAI1hB,SAASmiB,UAAU3zB,KAAKsK,OAAO/D,OAAOub,IAAI9H,UAIrDha,KAAK0B,SAASkxB,iBAAmB,IAAItQ,OAAO4Q,IAAIU,mBAAmB5zB,KAAK0B,SAASuE,WAGjFjG,KAAK6zB,kDAMI,IAAAnc,EAAA1X,KACDiG,EAAcjG,KAAKsK,OAAO5I,SAA1BuE,UAER,IAEIjG,KAAK8yB,OAAS,IAAIxQ,OAAO4Q,IAAIY,UAAU9zB,KAAK0B,SAASkxB,kBAGrD5yB,KAAK8yB,OAAOtzB,iBACR8iB,OAAO4Q,IAAIa,sBAAsBC,KAAKC,mBACtC,SAAA/1B,GAAA,OAASwZ,EAAKwc,mBAAmBh2B,KACjC,GAEJ8B,KAAK8yB,OAAOtzB,iBAAiB8iB,OAAO4Q,IAAIiB,aAAaH,KAAKI,SAAU,SAAAhiB,GAAA,OAASsF,EAAK2c,UAAUjiB,KAAQ,GAGpG,IAAM7D,EAAU,IAAI+T,OAAO4Q,IAAIoB,WAC/B/lB,EAAQgmB,SAAWv0B,KAAKw0B,OAIxBjmB,EAAQkmB,kBAAoBxuB,EAAUyuB,YACtCnmB,EAAQomB,mBAAqB1uB,EAAUiB,aACvCqH,EAAQqmB,qBAAuB3uB,EAAUyuB,YACzCnmB,EAAQsmB,sBAAwB5uB,EAAUiB,aAG1CqH,EAAQumB,wBAAyB,EAGjCvmB,EAAQwmB,oBAAoB/0B,KAAKsK,OAAOwM,OAExC9W,KAAK8yB,OAAOe,WAAWtlB,GACzB,MAAOtP,GACLe,KAAKq0B,UAAUp1B,4CAQM,IAAAma,EAAApZ,KACzB,KADyBH,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,IAIrB,OAFAoyB,cAAcjyB,KAAKizB,qBACnBjzB,KAAK0B,SAASuE,UAAUhB,gBAAgB,mBAU5CjF,KAAKizB,eAAiBd,YANP,WACX,IAAMhiB,EAAOD,GAAWsI,KAAKtE,IAAIkF,EAAKyZ,QAAQmC,mBAAoB,IAC5DvhB,EAAW7G,EAAS,gBAAiBwM,EAAK9O,OAAO/D,QAAjD,MAA8D4J,EACpEiJ,EAAK1X,SAASuE,UAAU/C,aAAa,kBAAmBuQ,IAGlB,gDAO3BvV,GAAO,IAAA0b,EAAA5Z,KAEtB,GAAKA,KAAKuN,QAAV,CAKA,IAAMiE,EAAW,IAAI8Q,OAAO4Q,IAAI+B,qBAGhCzjB,EAAS0jB,6CAA8C,EACvD1jB,EAAS2jB,kBAAmB,EAI5Bn1B,KAAK6yB,QAAU30B,EAAMk3B,cAAcp1B,KAAKsK,OAAQkH,GAGhDxR,KAAK+yB,UAAY/yB,KAAK6yB,QAAQwC,eAGzBr4B,EAAGkC,MAAMc,KAAK+yB,YACf/yB,KAAK+yB,UAAU1yB,QAAQ,SAAAi1B,GACnB,GAAiB,IAAbA,IAAgC,IAAdA,GAAmBA,EAAW1b,EAAKtP,OAAO2H,SAAU,CACtE,IAAMsjB,EAAc3b,EAAKtP,OAAO5I,SAASiQ,SAEzC,GAAI3U,EAAGc,QAAQy3B,GAAc,CACzB,IAAMC,EAAgB,IAAM5b,EAAKtP,OAAO2H,SAAWqjB,EAC7Ch3B,EAAM6E,EAAc,QACtByB,MAAOgV,EAAKtP,OAAO/D,OAAOC,WAAWiY,OAGzCngB,EAAIyI,MAAMmR,KAAUsd,EAAc1pB,WAAlC,IACAypB,EAAYjzB,YAAYhE,OAOxC0B,KAAK6yB,QAAQxF,UAAUrtB,KAAKsK,OAAOwH,QAInC9R,KAAK6yB,QAAQrzB,iBAAiB8iB,OAAO4Q,IAAIiB,aAAaH,KAAKI,SAAU,SAAAhiB,GAAA,OAASwH,EAAKya,UAAUjiB,KAG7F9V,OAAOS,KAAKulB,OAAO4Q,IAAIuC,QAAQzB,MAAM3zB,QAAQ,SAAAC,GACzCsZ,EAAKiZ,QAAQrzB,iBAAiB8iB,OAAO4Q,IAAIuC,QAAQzB,KAAK1zB,GAAO,SAAApC,GAAA,OAAS0b,EAAK8b,UAAUx3B,OAIzF8B,KAAKmzB,QAAQ,6CASPj1B,GAAO,IAAAic,EAAAna,KACLiG,EAAcjG,KAAKsK,OAAO5I,SAA1BuE,UAIF0vB,EAAKz3B,EAAM03B,QAGXp0B,EAAgB,SAAAlB,GAClB,IAAMpC,EAAAA,MAAcoC,EAAKmE,QAAQ,KAAM,IAAI6H,cAC3CpL,EAAaR,KAAKyZ,EAAK7P,OAAQ6P,EAAK7P,OAAOd,MAAOtL,IAGtD,OAAQA,EAAMoC,MACV,KAAKgiB,OAAO4Q,IAAIuC,QAAQzB,KAAK6B,OAGzB71B,KAAKmzB,QAAQ,UAGb3xB,EAActD,EAAMoC,MAGpBN,KAAK81B,eAAc,GAEdH,EAAGI,aAEJJ,EAAG3d,MAAQ/R,EAAUyuB,YACrBiB,EAAGza,OAASjV,EAAUiB,cAK1B,MAEJ,KAAKob,OAAO4Q,IAAIuC,QAAQzB,KAAKgC,kBAKzBx0B,EAActD,EAAMoC,MAyBpBN,KAAKi2B,UACL,MAEJ,KAAK3T,OAAO4Q,IAAIuC,QAAQzB,KAAKkC,wBAKzB10B,EAActD,EAAMoC,MAEpBN,KAAKm2B,eAEL,MAEJ,KAAK7T,OAAO4Q,IAAIuC,QAAQzB,KAAKoC,yBAMzB50B,EAActD,EAAMoC,MAEpBN,KAAK81B,gBAEL91B,KAAKq2B,gBAEL,MAEJ,KAAK/T,OAAO4Q,IAAIuC,QAAQzB,KAAKsC,QAC7B,KAAKhU,OAAO4Q,IAAIuC,QAAQzB,KAAKuC,SAC7B,KAAKjU,OAAO4Q,IAAIuC,QAAQzB,KAAKwC,SAC7B,KAAKlU,OAAO4Q,IAAIuC,QAAQzB,KAAKyC,WAC7B,KAAKnU,OAAO4Q,IAAIuC,QAAQzB,KAAK0C,MACzBl1B,EAActD,EAAMoC,yCAYtBpC,GACN8B,KAAK22B,SACL32B,KAAKsK,OAAOa,MAAMkH,KAAK,YAAanU,uCAQ5B,IAAAkd,EAAApb,KACAiG,EAAcjG,KAAKsK,OAAO5I,SAA1BuE,UACJkK,OAAAA,EAGJnQ,KAAKsK,OAAO7J,GAAG,QAAS,WACpB2a,EAAK0X,OAAO8D,oBAGhB52B,KAAKsK,OAAO7J,GAAG,UAAW,WAEtB,OADA0P,EAAOiL,EAAK9Q,OAAOG,cAIvBzK,KAAKsK,OAAO7J,GAAG,SAAU,WACrB,IAAMo2B,EAAazb,EAAK9Q,OAAOG,YAE3BzN,EAAGkC,MAAMkc,EAAK2X,YAIlB3X,EAAK2X,UAAU1yB,QAAQ,SAACi1B,EAAUvzB,GAC1BoO,EAAOmlB,GAAYA,EAAWuB,IAC9Bzb,EAAKyX,QAAQiE,iBACb1b,EAAK2X,UAAUpJ,OAAO5nB,EAAO,QAOzCxD,OAAOiB,iBAAiB,SAAU,WAC1B4b,EAAKyX,SACLzX,EAAKyX,QAAQkE,OAAO9wB,EAAUyuB,YAAazuB,EAAUiB,aAAcob,OAAO4Q,IAAI8D,SAASC,yCAQ5F,IAAAxb,EAAAzb,KACKiG,EAAcjG,KAAKsK,OAAO5I,SAA1BuE,UAEHjG,KAAKwnB,gBACNxnB,KAAKq2B,gBAITr2B,KAAKwnB,eACA7X,KAAK,WAEF8L,EAAK/Z,SAASkxB,iBAAiBsE,aAE/B,IACSzb,EAAK8L,cAEN9L,EAAKoX,QAAQsE,KAAKlxB,EAAUyuB,YAAazuB,EAAUiB,aAAcob,OAAO4Q,IAAI8D,SAASC,QAIrFxb,EAAKoX,QAAQtS,SAGjB9E,EAAK8L,aAAc,EACrB,MAAO6P,GAGL3b,EAAK4Y,UAAU+C,MAGtBvnB,MAAM,sDAQX7P,KAAK0B,SAASuE,UAAUc,MAAMswB,OAAS,GAGvCr3B,KAAK+hB,SAAU,EAGX/hB,KAAKsK,OAAOG,YAAczK,KAAKsK,OAAO2H,UACtCjS,KAAKsK,OAAOQ,8CAShB9K,KAAK0B,SAASuE,UAAUc,MAAMswB,OAAS,EAGvCr3B,KAAK+hB,SAAU,EAGf/hB,KAAKsK,OAAO6G,yCAWRnR,KAAKunB,aACLvnB,KAAKq2B,gBAITr2B,KAAKmzB,QAAQ,SAGbnzB,KAAKi2B,4CAMC,IAAAha,EAAAjc,KAENA,KAAKwnB,eACA7X,KAAK,WAEEsM,EAAK4W,SACL5W,EAAK4W,QAAQyE,UAIjBrb,EAAKuL,eAAiB,IAAIpZ,QAAQ,SAAAC,GAC9B4N,EAAKxb,GAAG,SAAU4N,GAClB4N,EAAK3R,OAAOa,MAAMC,IAAI6Q,EAAK4W,WAI/B5W,EAAK4X,eAERhkB,MAAM,8CAOP3R,GAAgB,IAAA,IAAAq5B,EAAAv3B,KAAAc,EAAAjB,UAAA/C,OAANiE,EAAMrE,MAAAoE,EAAA,EAAAA,EAAA,EAAA,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAND,EAAMC,EAAA,GAAAnB,UAAAmB,GACpB,IAAMw2B,EAAWx3B,KAAKG,OAAOjC,GAEzBlB,EAAGU,MAAM85B,IACTA,EAASn3B,QAAQ,SAAA0kB,GACT/nB,EAAGQ,SAASunB,IACZA,EAAQ9jB,MAAMs2B,EAAMx2B,gCAYjC7C,EAAOyB,GAON,OANK3C,EAAGU,MAAMsC,KAAKG,OAAOjC,MACtB8B,KAAKG,OAAOjC,OAGhB8B,KAAKG,OAAOjC,GAAOsC,KAAKb,GAEjBK,8CAWMmQ,EAAMtO,GAAM,IAAA41B,EAAAz3B,KACzBA,KAAKsK,OAAOa,MAAMC,IAAlB,8BAAoDvJ,GAEpD7B,KAAKgzB,YAAc/rB,WAAW,WAC1BwwB,EAAKd,SACLc,EAAKpE,iBAAiB,uBACvBljB,4CAOUtO,GACR7E,EAAGC,gBAAgB+C,KAAKgzB,eACzBhzB,KAAKsK,OAAOa,MAAMC,IAAlB,8BAAoDvJ,GAEpDmkB,aAAahmB,KAAKgzB,aAClBhzB,KAAKgzB,YAAc,sCA/hBvB,OACIhzB,KAAKsK,OAAOf,SAAWvJ,KAAKsK,OAAOyS,SAAW/c,KAAKsK,OAAO/D,OAAOub,IAAIvU,UAAYvQ,EAAGkC,MAAMc,KAAKuiB,4CA2DnG,MAAUmV,8CAAQ/a,IAXdgb,eAAgB,2BAChBC,aAAc,2BACdC,OAAQt5B,OAAOsS,SAAS7R,SACxB84B,GAAIC,KAAKC,MACTC,SAAU,IACVC,UAAW,IACXC,SAAUn4B,KAAKuiB,oBA1FrBoQ,GCHAzoB,IAEFkuB,eAFW,SAEI93B,EAAMmC,GAAY,IAAA1C,EAAAC,KACzBhD,EAAGM,OAAOmF,GACVc,EAAcjD,EAAMN,KAAKwJ,OACrBqB,IAAKpI,IAEFzF,EAAGU,MAAM+E,IAChBA,EAAWpC,QAAQ,SAAAg4B,GACf90B,EAAcjD,EAAMP,EAAKyJ,MAAO6uB,MAO5CC,OAhBW,SAgBJt8B,GAAO,IAAA6Z,EAAA7V,KACLqL,EAAQrP,EAAO,mBAMpBgO,EAAMiB,eAAevK,KAAKV,MAG1BA,KAAKs3B,QAAQ52B,KACTV,KACA,WAEI6V,EAAKxW,QAAQ2L,WAGbxH,EAAcqS,EAAKrM,OACnBqM,EAAKrM,MAAQ,KAGTxM,EAAGc,QAAQ+X,EAAKnU,SAASuE,YACzB4P,EAAKnU,SAASuE,UAAUhB,gBAAgB,SAV1C,IAcMyG,EAAkB1P,EAAlB0P,QAASpL,EAAStE,EAATsE,KAdfi4B,EAAAz1B,EAe4C4I,EAf5C,GAAA,GAAA8sB,EAAAD,EAeO9vB,SAAAA,OAfP3I,IAAA04B,EAekBhW,GAAUxY,MAf5BwuB,EAemC3tB,EAfnC0tB,EAemC1tB,IAC/B4tB,EAAuB,UAAbhwB,EAAuBnI,EAAO,MACxCmC,EAA0B,UAAbgG,MAA8BoC,IAAAA,GAEjDvO,OAAOgF,OAAOuU,GACVpN,SAAAA,EACAnI,KAAAA,EAEAlB,UAAWiJ,EAAQG,MAAMlI,EAAMmI,EAAUoN,EAAKtP,OAAOmC,aAErDc,MAAOrG,EAAcs1B,EAASh2B,KAIlCoT,EAAKnU,SAASuE,UAAU3D,YAAYuT,EAAKrM,OAGrCxM,EAAGO,QAAQvB,EAAM+iB,YACjBlJ,EAAKtP,OAAOwY,SAAW/iB,EAAM+iB,UAI7BlJ,EAAKtM,UACDsM,EAAKtP,OAAOmyB,aACZ7iB,EAAKrM,MAAMtG,aAAa,cAAe,IAEvC2S,EAAKtP,OAAOwY,UACZlJ,EAAKrM,MAAMtG,aAAa,WAAY,IAEnClG,EAAGkC,MAAMlD,EAAM4lB,UAChB/L,EAAK+L,OAAS5lB,EAAM4lB,QAEpB/L,EAAKtP,OAAOgZ,KAAKjC,QACjBzH,EAAKrM,MAAMtG,aAAa,OAAQ,IAEhC2S,EAAKtP,OAAOuQ,OACZjB,EAAKrM,MAAMtG,aAAa,QAAS,IAEjC2S,EAAKtP,OAAOmC,aACZmN,EAAKrM,MAAMtG,aAAa,cAAe,KAK/C2F,GAAGsc,aAAazkB,KAAKmV,GAGjBA,EAAKtM,SACLW,GAAOkuB,eAAe13B,KAAKmV,EAAM,SAAUnK,GAI/CmK,EAAKtP,OAAOyG,MAAQhR,EAAMgR,MAG1BxD,GAAMsT,MAAMpc,KAAKmV,GAGbA,EAAKtM,UAED,WAAYvN,GACZkO,GAAOkuB,eAAe13B,KAAKmV,EAAM,QAAS7Z,EAAM6d,QAIpDhE,EAAKrM,MAAMuB,SAIX8K,EAAKtM,SAAYsM,EAAK4P,UAAY5P,EAAKzW,UAAUyJ,KAEjDA,GAAGuc,MAAM1kB,KAAKmV,GAIlBA,EAAKnE,WAAWvC,WAEpB,IAtGAnP,KAAKmL,MAAMkH,KAAK,2BCEtBsmB,GAAAA,WACF,SAAAA,EAAYltB,EAAQpM,GAAS,IAAAU,EAAAC,KAmFzB,GAnFyBsN,EAAAtN,KAAA24B,GACzB34B,KAAKimB,UAGLjmB,KAAKslB,OAAQ,EACbtlB,KAAKiiB,SAAU,EACfjiB,KAAK44B,QAAS,EAGd54B,KAAK4J,MAAQvB,EAAQuB,MAGrB5J,KAAKwJ,MAAQiC,EAGTzO,EAAGM,OAAO0C,KAAKwJ,SACfxJ,KAAKwJ,MAAQnG,SAASyC,iBAAiB9F,KAAKwJ,SAI3CjL,OAAOs6B,QAAU74B,KAAKwJ,iBAAiBqvB,QAAW77B,EAAGa,SAASmC,KAAKwJ,QAAUxM,EAAGU,MAAMsC,KAAKwJ,UAE5FxJ,KAAKwJ,MAAQxJ,KAAKwJ,MAAM,IAI5BxJ,KAAKuG,OAAS8D,KAEVyU,GACA6Z,EAAK7Z,SACLzf,MACC,WACG,IACI,OAAOwO,KAAKC,MAAM/N,EAAKyJ,MAAMW,aAAa,qBAC5C,MAAOlL,GACL,UAJP,IAULe,KAAK0B,UACDuE,UAAW,KACXwL,SAAU,KACVP,WACAa,WACAJ,YACAC,UACAJ,UACI+I,MAAO,KACPlH,KAAM,KACN2F,UACA9H,aAKRlR,KAAKyR,UACD6L,OAAQ,KACR9G,cAAe,EACfiH,KAAM,IAAI7f,SAIdoC,KAAK0R,YACD4L,QAAQ,GAIZtd,KAAKX,SACDoX,SACAzL,YAKJhL,KAAKmL,MAAQ,IAAIwX,GAAQ3iB,KAAKuG,OAAO4E,OAGrCnL,KAAKmL,MAAMC,IAAI,SAAUpL,KAAKuG,QAC9BvG,KAAKmL,MAAMC,IAAI,UAAW/C,IAGtBrL,EAAGC,gBAAgB+C,KAAKwJ,QAAWxM,EAAGc,QAAQkC,KAAKwJ,OAMvD,GAAIxJ,KAAKwJ,MAAMjI,KACXvB,KAAKmL,MAAMkH,KAAK,6BAKpB,GAAKrS,KAAKuG,OAAOgH,QAOjB,GAAKlF,EAAQG,QAAQI,IAArB,CAMA,IAAMkS,EAAQ9a,KAAKwJ,MAAMvH,WAAU,GACnC6Y,EAAMiE,UAAW,EACjB/e,KAAK0B,SAASo3B,SAAWhe,EAIzB,IAAMxa,EAAON,KAAKwJ,MAAMivB,QAAQnsB,cAG5BiV,EAAS,KACT1iB,EAAM,KAGV,OAAQyB,GACJ,IAAK,MAKD,GAHAihB,EAASvhB,KAAKwJ,MAAMrD,cAAc,UAG9BnJ,EAAGc,QAAQyjB,IAaX,GAXA1iB,EAAM2d,GAAS+E,EAAOpX,aAAa,QACnCnK,KAAKyI,SbjJlB,SAA0B5J,GAE7B,MAAI,wDAAwD4I,KAAK5I,GACtD2jB,GAAUhB,QAIjB,wDAAwD/Z,KAAK5I,GACtD2jB,GAAUnB,MAGd,KasIyB0X,CAAiBl6B,EAAIiN,YAGrC9L,KAAK0B,SAASuE,UAAYjG,KAAKwJ,MAC/BxJ,KAAKwJ,MAAQ+X,EAGbvhB,KAAK0B,SAASuE,UAAUzB,UAAY,GAGhC3F,EAAIm6B,OAAOl8B,OAAQ,CACnB,IAAMm8B,GAAU,IAAK,QAEjBA,EAAOlzB,SAASlH,EAAIq6B,aAAa35B,IAAI,eACrCS,KAAKuG,OAAOwY,UAAW,GAEvBka,EAAOlzB,SAASlH,EAAIq6B,aAAa35B,IAAI,WACrCS,KAAKuG,OAAOgZ,KAAKjC,QAAS,GAK1Btd,KAAKgd,WACLhd,KAAKuG,OAAOmC,YAAcuwB,EAAOlzB,SAASlH,EAAIq6B,aAAa35B,IAAI,gBAC/DS,KAAKuG,OAAO+pB,GAAKzxB,EAAIq6B,aAAa35B,IAAI,OAEtCS,KAAKuG,OAAOmC,aAAc,QAKlC1I,KAAKyI,SAAWzI,KAAKwJ,MAAMW,aAAanK,KAAKuG,OAAO9D,WAAWyb,MAAMzV,UAGrEzI,KAAKwJ,MAAMvE,gBAAgBjF,KAAKuG,OAAO9D,WAAWyb,MAAMzV,UAI5D,GAAIzL,EAAGkC,MAAMc,KAAKyI,YAAcnM,OAAOS,KAAKylB,IAAWzc,SAAS/F,KAAKyI,UAEjE,YADAzI,KAAKmL,MAAMiH,MAAM,kCAKrBpS,KAAKM,KAAOmiB,GAAMla,MAElB,MAEJ,IAAK,QACL,IAAK,QACDvI,KAAKM,KAAOA,EACZN,KAAKyI,SAAW+Z,GAAUxY,MAGtBhK,KAAKwJ,MAAM8e,aAAa,iBACxBtoB,KAAKuG,OAAOmyB,aAAc,GAE1B14B,KAAKwJ,MAAM8e,aAAa,cACxBtoB,KAAKuG,OAAOwY,UAAW,IAEvB/e,KAAKwJ,MAAM8e,aAAa,gBAAkBtoB,KAAKwJ,MAAM8e,aAAa,yBAClEtoB,KAAKuG,OAAOmC,aAAc,GAE1B1I,KAAKwJ,MAAM8e,aAAa,WACxBtoB,KAAKuG,OAAOuQ,OAAQ,GAEpB9W,KAAKwJ,MAAM8e,aAAa,UACxBtoB,KAAKuG,OAAOgZ,KAAKjC,QAAS,GAG9B,MAEJ,QAEI,YADAtd,KAAKmL,MAAMiH,MAAM,kCAKzBpS,KAAKZ,UAAYiJ,EAAQG,MAAMxI,KAAKM,KAAMN,KAAKyI,SAAUzI,KAAKuG,OAAOmC,aAGhE1I,KAAKZ,UAAUwJ,KAKpB5I,KAAKO,kBAGLP,KAAKsW,UAAY,IAAI4P,GAAUlmB,MAG/BA,KAAKwN,QAAU,IAAIH,EAAQrN,MAG3BA,KAAKwJ,MAAMjI,KAAOvB,KAGbhD,EAAGc,QAAQkC,KAAK0B,SAASuE,aAC1BjG,KAAK0B,SAASuE,UAAY9C,EAAc,OACxC1B,EAAKzB,KAAKwJ,MAAOxJ,KAAK0B,SAASuE,YAInC4C,GAAGsc,aAAazkB,KAAKV,MAGrBwJ,GAAMsT,MAAMpc,KAAKV,MAGbA,KAAKuG,OAAO4E,OACZ1K,EAAGC,KAAKV,KAAMA,KAAK0B,SAASuE,UAAWjG,KAAKuG,OAAOpG,OAAO+S,KAAK,KAAM,SAAAhV,GACjE6B,EAAKoL,MAAMC,IAAX,UAAyBlN,EAAMoC,SAMnCN,KAAKuJ,SAAYvJ,KAAKylB,UAAYzlB,KAAKZ,UAAUyJ,KACjDA,GAAGuc,MAAM1kB,KAAKV,MAIlBA,KAAKsW,UAAUrQ,YAGfjG,KAAKsW,UAAUqJ,SAGf3f,KAAK0R,WAAa,IAAIiS,GAAW3jB,MAG7BA,KAAKuG,OAAOub,IAAIvU,UAChBvN,KAAK8hB,IAAM,IAAI6Q,GAAI3yB,OAInBA,KAAKuG,OAAOwY,UACZ/e,KAAK8K,QAxDL9K,KAAKmL,MAAMiH,MAAM,iCA7GjBpS,KAAKmL,MAAMiH,MAAM,iCAPjBpS,KAAKmL,MAAMiH,MAAM,yCAZjBpS,KAAKmL,MAAMiH,MAAM,qFA+NrB,OAAKpV,EAAGQ,SAASwC,KAAKwJ,MAAMsB,MAKrB9K,KAAKwJ,MAAMsB,OAJP,qCAWN9K,KAAK+hB,SAAY/kB,EAAGQ,SAASwC,KAAKwJ,MAAM2H,QAI7CnR,KAAKwJ,MAAM2H,2CAmCJnV,IAEQgB,EAAGO,QAAQvB,GAASA,GAASgE,KAAK+hB,SAG7C/hB,KAAK8K,OAEL9K,KAAKmR,uCAQLnR,KAAKuJ,SACLvJ,KAAKmR,QACLnR,KAAKoR,WACEpU,EAAGQ,SAASwC,KAAKwJ,MAAM2jB,OAC9BntB,KAAKwJ,MAAM2jB,yCAQfntB,KAAKyK,YAAc,iCAOhBqC,GACH9M,KAAKyK,YAAczK,KAAKyK,aAAezN,EAAGG,OAAO2P,GAAYA,EAAW9M,KAAKuG,OAAOuG,0CAOhFA,GACJ9M,KAAKyK,YAAczK,KAAKyK,aAAezN,EAAGG,OAAO2P,GAAYA,EAAW9M,KAAKuG,OAAOuG,iDAgIzEqH,GACX,IAAMrC,EAAS9R,KAAKwJ,MAAMsN,MAAQ,EAAI9W,KAAK8R,OAC3C9R,KAAK8R,OAASA,GAAU9U,EAAGG,OAAOgX,GAAQA,EAAO,0CAOtCA,GACXnU,KAAK+mB,gBAAgB5S,0CA0QVnY,GACXyV,GAAS7R,OAAOc,KAAKV,KAAMhE,GAAO,qCA2E9BqM,EAAQY,SACRjJ,KAAKwJ,MAAM2vB,wEAQJv5B,GAEX,GAAII,KAAKZ,UAAUyJ,KAAO7I,KAAKynB,QAAS,CAEpC,IAAM2R,EAAW5zB,EAASxF,KAAK0B,SAASuE,UAAWjG,KAAKuG,OAAOC,WAAW4Y,cAGpEja,OAA0B,IAAXvF,OAAyBE,GAAaF,EAGrDy5B,EAASn0B,EAAYlF,KAAK0B,SAASuE,UAAWjG,KAAKuG,OAAOC,WAAW4Y,aAAcja,GAQzF,GALIk0B,GAAUr5B,KAAKuG,OAAOkK,SAAS1K,SAAS,cAAgB/I,EAAGkC,MAAMc,KAAKuG,OAAOiL,WAC7Ef,GAASgK,WAAW/Z,KAAKV,MAAM,GAI/Bq5B,IAAWD,EAAU,CACrB,IAAME,EAAYD,EAAS,iBAAmB,gBAC9Cn4B,EAAaR,KAAKV,KAAMA,KAAKwJ,MAAO8vB,GAGxC,OAAQD,EAGZ,OAAO,6BAQRn7B,EAAOyB,GACNc,EAAGC,KAAKV,KAAMA,KAAK0B,SAASuE,UAAW/H,EAAOyB,gCAQ7CzB,EAAOyB,GACRiB,EAAKF,KAAKV,KAAMA,KAAK0B,SAASuE,UAAW/H,EAAOyB,+BAQhDzB,EAAOyB,GACPgB,EAAIX,KAAK0B,SAASuE,UAAW/H,EAAOyB,mCAUhCA,GAAwB,IAAAkW,EAAA7V,KAAdu5B,EAAc15B,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,IAAAA,UAAA,GAC5B,GAAKG,KAAKslB,MAAV,CAIA,IAAMiD,EAAO,WAETllB,SAASgM,KAAKtI,MAAM2c,SAAW,GAG/B7N,EAAKqI,MAAQ,KAGTqb,GACIj9B,OAAOS,KAAK8Y,EAAKnU,UAAU5E,SAE3B0G,EAAcqS,EAAKnU,SAASwP,QAAQpG,MACpCtH,EAAcqS,EAAKnU,SAAS+P,UAC5BjO,EAAcqS,EAAKnU,SAAS+O,UAC5BjN,EAAcqS,EAAKnU,SAASC,SAG5BkU,EAAKnU,SAASwP,QAAQpG,KAAO,KAC7B+K,EAAKnU,SAAS+P,SAAW,KACzBoE,EAAKnU,SAAS+O,SAAW,KACzBoF,EAAKnU,SAASC,QAAU,MAIxB3E,EAAGQ,SAASmC,IACZA,M/Bl5Bb,WACCK,MAAQA,KAAKO,iBACbP,KAAKO,eAAeF,QAAQ,SAAA8M,GAAQ,IACxBrP,EAAqCqP,EAArCrP,QAASwC,EAA4B6M,EAA5B7M,KAAMX,EAAsBwN,EAAtBxN,SAAUN,EAAY8N,EAAZ9N,QACjCvB,EAAQ2B,oBAAoBa,EAAMX,EAAUN,KAGhDW,KAAKO,oB+B+4BmBG,KAAKmV,GAGrBhS,EAAegS,EAAKnU,SAASo3B,SAAUjjB,EAAKnU,SAASuE,WAGrD/E,EAAaR,KAAKmV,EAAMA,EAAKnU,SAASo3B,SAAU,aAAa,GAGzD97B,EAAGQ,SAASmC,IACZA,EAASe,KAAKmV,EAAKnU,SAASo3B,UAIhCjjB,EAAKyP,OAAQ,EAGbre,WAAW,WACP4O,EAAKnU,SAAW,KAChBmU,EAAKrM,MAAQ,MACd,OAKXxJ,KAAKmtB,OAGDntB,KAAKuJ,SAELyc,aAAahmB,KAAKimB,OAAOhE,SAGzBpZ,GAAGyJ,qBAAqB5R,KAAKV,MAAM,GAGnCuoB,KACOvoB,KAAKgd,WAEZiV,cAAcjyB,KAAKimB,OAAOiM,WAC1BD,cAAcjyB,KAAKimB,OAAOlE,SAGP,OAAf/hB,KAAKke,OAAkBlhB,EAAGQ,SAASwC,KAAKke,MAAMoZ,UAC9Ct3B,KAAKke,MAAMoZ,UAIf/O,KACOvoB,KAAKoa,UAGO,OAAfpa,KAAKke,OACLle,KAAKke,MAAMsb,SAAS7pB,KAAK4Y,GAI7BthB,WAAWshB,EAAM,wCAQhBjoB,GACL,OAAO+H,EAAQc,KAAKzI,KAAKV,KAAMM,mCArwB/B,OAAOnE,QAAQ6D,KAAKyI,WAAa+Z,GAAUxY,uCAI3C,OAAO7N,QAAQ6D,KAAKgd,WAAahd,KAAKoa,2CAItC,OAAOje,QAAQ6D,KAAKyI,WAAa+Z,GAAUhB,yCAI3C,OAAOrlB,QAAQ6D,KAAKyI,WAAa+Z,GAAUnB,uCAI3C,OAAOllB,QAAQ6D,KAAKM,OAASmiB,GAAMla,uCAInC,OAAOpM,QAAQ6D,KAAKM,OAASmiB,GAAMna,uCA8BnC,OAAOnM,QAAQ6D,KAAKslB,QAAUtlB,KAAK0K,SAAW1K,KAAK0nB,sCAOnD,OAAOvrB,QAAQ6D,KAAKwJ,MAAMkB,wCAO1B,OAAOvO,QAAQ6D,KAAK0K,QAA+B,IAArB1K,KAAKyK,2CAOnC,OAAOtO,QAAQ6D,KAAKwJ,MAAMke,yCAyDd1rB,GAEZ,GAAKgE,KAAKiS,SAAV,CAKA,IAAMwnB,EAAez8B,EAAGG,OAAOnB,IAAUA,EAAQ,EAGjDgE,KAAKwJ,MAAMiB,YAAcgvB,EAAejhB,KAAKvE,IAAIjY,EAAOgE,KAAKiS,UAAY,EAGzEjS,KAAKmL,MAAMC,IAAX,cAA6BpL,KAAKyK,YAAlC,6BAOA,OAAOrN,OAAO4C,KAAKwJ,MAAMiB,8CAMd,IACH6M,EAAatX,KAAKwJ,MAAlB8N,SAGR,OAAIta,EAAGG,OAAOma,GACHA,EAMPA,GAAYA,EAASxa,QAAUkD,KAAKiS,SAAW,EACxCqF,EAASkJ,IAAI,GAAKxgB,KAAKiS,SAG3B,kCAOP,OAAO9V,QAAQ6D,KAAKwJ,MAAM8O,0CAQ1B,IAAMohB,EAAehjB,WAAW1W,KAAKuG,OAAO0L,UAGtC0nB,GAAgB35B,KAAKwJ,WAAayI,SAClCA,EAAYjV,EAAGG,OAAOw8B,IAAiBA,IAAiBC,EAAAA,EAAeD,EAAJ,EAGzE,OAAOD,GAAgBznB,+BAOhBpP,GACP,IAAIiP,EAASjP,EAIT7F,EAAGM,OAAOwU,KACVA,EAAS1U,OAAO0U,IAIf9U,EAAGG,OAAO2U,KACXA,EAAS9R,KAAKwN,QAAQjO,IAAI,WAIzBvC,EAAGG,OAAO2U,KACRA,EAAW9R,KAAKuG,OAAhBuL,QAIHA,EAlBQ,IAmBRA,EAnBQ,GAsBRA,EArBQ,IAsBRA,EAtBQ,GA0BZ9R,KAAKuG,OAAOuL,OAASA,EAGrB9R,KAAKwJ,MAAMsI,OAASA,GAGf9U,EAAGkC,MAAM2D,IAAU7C,KAAK8W,OAAShF,EAAS,IAC3C9R,KAAK8W,OAAQ,mBAQjB,OAAO1Z,OAAO4C,KAAKwJ,MAAMsI,oCAwBnBP,GACN,IAAI3R,EAAS2R,EAGRvU,EAAGO,QAAQqC,KACZA,EAASI,KAAKwN,QAAQjO,IAAI,UAIzBvC,EAAGO,QAAQqC,KACZA,EAASI,KAAKuG,OAAOuQ,OAIzB9W,KAAKuG,OAAOuQ,MAAQlX,EAGpBI,KAAKwJ,MAAMsN,MAAQlX,kBAOnB,OAAOzD,QAAQ6D,KAAKwJ,MAAMsN,wCAQ1B,OAAK9W,KAAKuJ,YAINvJ,KAAKynB,UAMLtrB,QAAQ6D,KAAKwJ,MAAMqwB,cACnB19B,QAAQ6D,KAAKwJ,MAAMswB,8BACnB39B,QAAQ6D,KAAKwJ,MAAMuwB,aAAe/5B,KAAKwJ,MAAMuwB,YAAYj9B,sCAQvDd,GACN,IAAIya,EAAQ,KAERzZ,EAAGG,OAAOnB,KACVya,EAAQza,GAGPgB,EAAGG,OAAOsZ,KACXA,EAAQzW,KAAKwN,QAAQjO,IAAI,UAGxBvC,EAAGG,OAAOsZ,KACXA,EAAQzW,KAAKuG,OAAOkQ,MAAM+I,UAI1B/I,EAAQ,KACRA,EAAQ,IAERA,EAAQ,IACRA,EAAQ,GAGPzW,KAAKuG,OAAOkQ,MAAMpX,QAAQ0G,SAAS0Q,IAMxCzW,KAAKuG,OAAOkQ,MAAM+I,SAAW/I,EAG7BzW,KAAKwJ,MAAMgoB,aAAe/a,GARtBzW,KAAKmL,MAAMkH,KAAX,sBAAsCoE,EAAtC,qBAeJ,OAAOrZ,OAAO4C,KAAKwJ,MAAMgoB,4CAQjBx1B,GACR,IAAMuK,EAASvG,KAAKuG,OAAOyE,QACrB3L,EAAUW,KAAKX,QAAQ2L,QAE7B,GAAK3L,EAAQvC,OAAb,CAIA,IAAIkO,IACChO,EAAGkC,MAAMlD,IAAUoB,OAAOpB,GAC3BgE,KAAKwN,QAAQjO,IAAI,WACjBgH,EAAOiZ,SACPjZ,EAAO0S,SACTnS,KAAK9J,EAAGG,QAEV,IAAKkC,EAAQ0G,SAASiF,GAAU,CAC5B,IAAMnI,EtBvqBX,SAAiBnF,EAAOmF,GAC3B,OAAK7F,EAAGU,MAAMA,IAAWA,EAAMZ,OAIxBY,EAAM6N,OAAO,SAACyuB,EAAMC,GAAP,OAAiBzhB,KAAKyQ,IAAIgR,EAAOp3B,GAAS2V,KAAKyQ,IAAI+Q,EAAOn3B,GAASo3B,EAAOD,IAHnF,KsBqqBWE,CAAQ76B,EAAS2L,GAC/BhL,KAAKmL,MAAMkH,KAAX,+BAA+CrH,EAA/C,WAAiEnI,EAAjE,YACAmI,EAAUnI,EAId3B,EAAaR,KAAKV,KAAMA,KAAKwJ,MAAO,oBAAoB,GACpDwB,QAAAA,IAIJzE,EAAOiZ,SAAWxU,EAGlBhL,KAAKwJ,MAAMwB,QAAUA,mBAOrB,OAAOhL,KAAKwJ,MAAMwB,mCAQbhP,GACL,IAAM4D,EAAS5C,EAAGO,QAAQvB,GAASA,EAAQgE,KAAKuG,OAAOgZ,KAAKjC,OAC5Dtd,KAAKuG,OAAOgZ,KAAKjC,OAAS1d,EAC1BI,KAAKwJ,MAAM+V,KAAO3f,kBAkDlB,OAAOzD,QAAQ6D,KAAKwJ,MAAM+V,mCAOnBvjB,GACPkO,GAAOouB,OAAO53B,KAAKV,KAAMhE,mBAOzB,OAAOgE,KAAKwJ,MAAMkkB,wCAOX1xB,GACFgE,KAAK+c,QAKVlU,GAAG2c,UAAU9kB,KAAKV,KAAMhE,GAAO,GAAO6T,MAAM,cAJxC7P,KAAKmL,MAAMkH,KAAK,oDAWpB,OAAKrS,KAAK+c,QAIH/c,KAAKwJ,MAAMW,aAAa,UAHpB,oCAUFnO,GACT,IAAM4D,EAAS5C,EAAGO,QAAQvB,GAASA,EAAQgE,KAAKuG,OAAOwY,SACvD/e,KAAKuG,OAAOwY,SAAWnf,kBAOvB,OAAOzD,QAAQ6D,KAAKuG,OAAOwY,6CAed/iB,GACbyV,GAASlH,IAAI7J,KAAKV,KAAMhE,GAAO,mBAMhB,IAAAwhB,EACmBxd,KAAKyR,SAA/BsI,EADOyD,EACPzD,QAASvD,EADFgH,EACEhH,aACjB,OAAOuD,EAAUvD,GAAgB,iCAQxBxa,GACTyV,GAASqM,YAAYpd,KAAKV,KAAMhE,GAAO,mBAOvC,OAAQyV,GAAS+M,gBAAgB9d,KAAKV,WAAaga,mCAQ/Che,GACJ,IAAMm+B,EACG,qBADHA,EAEM,SAIZ,GAAK9xB,EAAQU,IAAb,CAKA,IAAMnJ,EAAS5C,EAAGO,QAAQvB,GAASA,EAAQgE,KAAK+I,MAAQoxB,EAGxDn6B,KAAKwJ,MAAMR,0BAA0BpJ,EAASu6B,EAAaA,oBAO3D,OAAK9xB,EAAQU,IAIN/I,KAAKwJ,MAAM4wB,uBAHP,yCAiME95B,EAAMmI,EAAU4xB,GAC7B,OAAOhyB,EAAQG,MAAMlI,EAAMmI,EAAU4xB,sCAQvBx7B,EAAKgG,GACnB,OAAOkK,GAAWlQ,EAAKgG,iCAQdP,GAAwB,IAAdjF,EAAcQ,UAAA/C,OAAA,QAAAgD,IAAAD,UAAA,GAAAA,UAAA,MAC7B+B,EAAU,KAUd,OARI5E,EAAGM,OAAOgH,GACV1C,EAAUlF,MAAMmF,KAAKwB,SAASyC,iBAAiBxB,IACxCtH,EAAGa,SAASyG,GACnB1C,EAAUlF,MAAMmF,KAAKyC,GACdtH,EAAGU,MAAM4G,KAChB1C,EAAU0C,EAAS3B,OAAO3F,EAAGc,UAG7Bd,EAAGkC,MAAM0C,GACF,KAGJA,EAAQwD,IAAI,SAAAk1B,GAAA,OAAK,IAAI3B,EAAK2B,EAAGj7B,WAxkCtCs5B,UA4kCNA,GAAK7Z,UzBtmCqB5hB,GyBsmCA4hB,GzBrmCfjR,KAAKC,MAAMD,KAAKG,UAAU9Q","file":"plyr.min.js","sourcesContent":["// ==========================================================================\n// Type checking utils\n// ==========================================================================\n\nconst getConstructor = input => (input !== null && typeof input !== 'undefined' ? input.constructor : null);\nconst instanceOf = (input, constructor) => Boolean(input && constructor && input instanceof constructor);\nconst isNullOrUndefined = input => input === null || typeof input === 'undefined';\nconst isObject = input => getConstructor(input) === Object;\nconst isNumber = input => getConstructor(input) === Number && !Number.isNaN(input);\nconst isString = input => getConstructor(input) === String;\nconst isBoolean = input => getConstructor(input) === Boolean;\nconst isFunction = input => getConstructor(input) === Function;\nconst isArray = input => Array.isArray(input);\nconst isWeakMap = input => instanceOf(input, WeakMap);\nconst isNodeList = input => instanceOf(input, NodeList);\nconst isElement = input => instanceOf(input, Element);\nconst isTextNode = input => getConstructor(input) === Text;\nconst isEvent = input => instanceOf(input, Event);\nconst isKeyboardEvent = input => instanceOf(input, KeyboardEvent);\nconst isCue = input => instanceOf(input, window.TextTrackCue) || instanceOf(input, window.VTTCue);\nconst isTrack = input => instanceOf(input, TextTrack) || (!isNullOrUndefined(input) && isString(input.kind));\n\nconst isEmpty = input =>\n isNullOrUndefined(input) ||\n ((isString(input) || isArray(input) || isNodeList(input)) && !input.length) ||\n (isObject(input) && !Object.keys(input).length);\n\nconst isUrl = input => {\n // Accept a URL object\n if (instanceOf(input, window.URL)) {\n return true;\n }\n\n // Add the protocol if required\n let string = input;\n if (!input.startsWith('http://') || !input.startsWith('https://')) {\n string = `http://${input}`;\n }\n\n try {\n return !isEmpty(new URL(string).hostname);\n } catch (e) {\n return false;\n }\n};\n\nexport default {\n nullOrUndefined: isNullOrUndefined,\n object: isObject,\n number: isNumber,\n string: isString,\n boolean: isBoolean,\n function: isFunction,\n array: isArray,\n weakMap: isWeakMap,\n nodeList: isNodeList,\n element: isElement,\n textNode: isTextNode,\n event: isEvent,\n keyboardEvent: isKeyboardEvent,\n cue: isCue,\n track: isTrack,\n url: isUrl,\n empty: isEmpty,\n};\n","// ==========================================================================\n// Event utils\n// ==========================================================================\n\nimport is from './is';\n\n// Check for passive event listener support\n// https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n// https://www.youtube.com/watch?v=NPM6172J22g\nconst supportsPassiveListeners = (() => {\n // Test via a getter in the options object to see if the passive property is accessed\n let supported = false;\n try {\n const options = Object.defineProperty({}, 'passive', {\n get() {\n supported = true;\n return null;\n },\n });\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n // Do nothing\n }\n\n return supported;\n})();\n\n// Toggle event listener\nexport function toggleListener(element, event, callback, toggle = false, passive = true, capture = false) {\n // Bail if no element, event, or callback\n if (!element || !('addEventListener' in element) || is.empty(event) || !is.function(callback)) {\n return;\n }\n\n // Allow multiple events\n const events = event.split(' ');\n\n // Build options\n // Default to just the capture boolean for browsers with no passive listener support\n let options = capture;\n\n // If passive events listeners are supported\n if (supportsPassiveListeners) {\n options = {\n // Whether the listener can be passive (i.e. default never prevented)\n passive,\n // Whether the listener is a capturing listener or not\n capture,\n };\n }\n\n // If a single node is passed, bind the event listener\n events.forEach(type => {\n if (this && this.eventListeners && toggle) {\n // Cache event listener\n this.eventListeners.push({ element, type, callback, options });\n }\n\n element[toggle ? 'addEventListener' : 'removeEventListener'](type, callback, options);\n });\n}\n\n// Bind event handler\nexport function on(element, events = '', callback, passive = true, capture = false) {\n toggleListener.call(this, element, events, callback, true, passive, capture);\n}\n\n// Unbind event handler\nexport function off(element, events = '', callback, passive = true, capture = false) {\n toggleListener.call(this, element, events, callback, false, passive, capture);\n}\n\n// Bind once-only event handler\nexport function once(element, events = '', callback, passive = true, capture = false) {\n function onceCallback(...args) {\n off(element, events, onceCallback, passive, capture);\n callback.apply(this, args);\n }\n\n toggleListener.call(this, element, events, onceCallback, true, passive, capture);\n}\n\n// Trigger event\nexport function triggerEvent(element, type = '', bubbles = false, detail = {}) {\n // Bail if no element\n if (!is.element(element) || is.empty(type)) {\n return;\n }\n\n // Create and dispatch the event\n const event = new CustomEvent(type, {\n bubbles,\n detail: Object.assign({}, detail, {\n plyr: this,\n }),\n });\n\n // Dispatch the event\n element.dispatchEvent(event);\n}\n\n// Unbind all cached event listeners\nexport function unbindListeners() {\n if (this && this.eventListeners) {\n this.eventListeners.forEach(item => {\n const { element, type, callback, options } = item;\n element.removeEventListener(type, callback, options);\n });\n\n this.eventListeners = [];\n }\n}\n\n// Run method when / if player is ready\nexport function ready() {\n return new Promise(\n resolve => (this.ready ? setTimeout(resolve, 0) : on.call(this, this.elements.container, 'ready', resolve)),\n ).then(() => {});\n}\n","// ==========================================================================\n// Element utils\n// ==========================================================================\n\nimport { toggleListener } from './events';\nimport is from './is';\n\n// Wrap an element\nexport function wrap(elements, wrapper) {\n // Convert `elements` to an array, if necessary.\n const targets = elements.length ? elements : [elements];\n\n // Loops backwards to prevent having to clone the wrapper on the\n // first element (see `child` below).\n Array.from(targets)\n .reverse()\n .forEach((element, index) => {\n const child = index > 0 ? wrapper.cloneNode(true) : wrapper;\n\n // Cache the current parent and sibling.\n const parent = element.parentNode;\n const sibling = element.nextSibling;\n\n // Wrap the element (is automatically removed from its current\n // parent).\n child.appendChild(element);\n\n // If the element had a sibling, insert the wrapper before\n // the sibling to maintain the HTML structure; otherwise, just\n // append it to the parent.\n if (sibling) {\n parent.insertBefore(child, sibling);\n } else {\n parent.appendChild(child);\n }\n });\n}\n\n// Set attributes\nexport function setAttributes(element, attributes) {\n if (!is.element(element) || is.empty(attributes)) {\n return;\n }\n\n // Assume null and undefined attributes should be left out,\n // Setting them would otherwise convert them to \"null\" and \"undefined\"\n Object.entries(attributes)\n .filter(([, value]) => !is.nullOrUndefined(value))\n .forEach(([key, value]) => element.setAttribute(key, value));\n}\n\n// Create a DocumentFragment\nexport function createElement(type, attributes, text) {\n // Create a new \n const element = document.createElement(type);\n\n // Set all passed attributes\n if (is.object(attributes)) {\n setAttributes(element, attributes);\n }\n\n // Add text node\n if (is.string(text)) {\n element.innerText = text;\n }\n\n // Return built element\n return element;\n}\n\n// Inaert an element after another\nexport function insertAfter(element, target) {\n if (!is.element(element) || !is.element(target)) {\n return;\n }\n\n target.parentNode.insertBefore(element, target.nextSibling);\n}\n\n// Insert a DocumentFragment\nexport function insertElement(type, parent, attributes, text) {\n if (!is.element(parent)) {\n return;\n }\n\n parent.appendChild(createElement(type, attributes, text));\n}\n\n// Remove element(s)\nexport function removeElement(element) {\n if (is.nodeList(element) || is.array(element)) {\n Array.from(element).forEach(removeElement);\n return;\n }\n\n if (!is.element(element) || !is.element(element.parentNode)) {\n return;\n }\n\n element.parentNode.removeChild(element);\n}\n\n// Remove all child elements\nexport function emptyElement(element) {\n if (!is.element(element)) {\n return;\n }\n\n let { length } = element.childNodes;\n\n while (length > 0) {\n element.removeChild(element.lastChild);\n length -= 1;\n }\n}\n\n// Replace element\nexport function replaceElement(newChild, oldChild) {\n if (!is.element(oldChild) || !is.element(oldChild.parentNode) || !is.element(newChild)) {\n return null;\n }\n\n oldChild.parentNode.replaceChild(newChild, oldChild);\n\n return newChild;\n}\n\n// Get an attribute object from a string selector\nexport function getAttributesFromSelector(sel, existingAttributes) {\n // For example:\n // '.test' to { class: 'test' }\n // '#test' to { id: 'test' }\n // '[data-test=\"test\"]' to { 'data-test': 'test' }\n\n if (!is.string(sel) || is.empty(sel)) {\n return {};\n }\n\n const attributes = {};\n const existing = existingAttributes;\n\n sel.split(',').forEach(s => {\n // Remove whitespace\n const selector = s.trim();\n const className = selector.replace('.', '');\n const stripped = selector.replace(/[[\\]]/g, '');\n\n // Get the parts and value\n const parts = stripped.split('=');\n const key = parts[0];\n const value = parts.length > 1 ? parts[1].replace(/[\"']/g, '') : '';\n\n // Get the first character\n const start = selector.charAt(0);\n\n switch (start) {\n case '.':\n // Add to existing classname\n if (is.object(existing) && is.string(existing.class)) {\n existing.class += ` ${className}`;\n }\n\n attributes.class = className;\n break;\n\n case '#':\n // ID selector\n attributes.id = selector.replace('#', '');\n break;\n\n case '[':\n // Attribute selector\n attributes[key] = value;\n\n break;\n\n default:\n break;\n }\n });\n\n return attributes;\n}\n\n// Toggle hidden\nexport function toggleHidden(element, hidden) {\n if (!is.element(element)) {\n return;\n }\n\n let hide = hidden;\n\n if (!is.boolean(hide)) {\n hide = !element.hidden;\n }\n\n if (hide) {\n element.setAttribute('hidden', '');\n } else {\n element.removeAttribute('hidden');\n }\n}\n\n// Mirror Element.classList.toggle, with IE compatibility for \"force\" argument\nexport function toggleClass(element, className, force) {\n if (is.nodeList(element)) {\n return Array.from(element).map(e => toggleClass(e, className, force));\n }\n\n if (is.element(element)) {\n let method = 'toggle';\n if (typeof force !== 'undefined') {\n method = force ? 'add' : 'remove';\n }\n\n element.classList[method](className);\n return element.classList.contains(className);\n }\n\n return false;\n}\n\n// Has class name\nexport function hasClass(element, className) {\n return is.element(element) && element.classList.contains(className);\n}\n\n// Element matches selector\nexport function matches(element, selector) {\n const prototype = { Element };\n\n function match() {\n return Array.from(document.querySelectorAll(selector)).includes(this);\n }\n\n const matches =\n prototype.matches ||\n prototype.webkitMatchesSelector ||\n prototype.mozMatchesSelector ||\n prototype.msMatchesSelector ||\n match;\n\n return matches.call(element, selector);\n}\n\n// Find all elements\nexport function getElements(selector) {\n return this.elements.container.querySelectorAll(selector);\n}\n\n// Find a single element\nexport function getElement(selector) {\n return this.elements.container.querySelector(selector);\n}\n\n// Trap focus inside container\nexport function trapFocus(element = null, toggle = false) {\n if (!is.element(element)) {\n return;\n }\n\n const focusable = getElements.call(this, 'button:not(:disabled), input:not(:disabled), [tabindex]');\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n\n const trap = event => {\n // Bail if not tab key or not fullscreen\n if (event.key !== 'Tab' || event.keyCode !== 9) {\n return;\n }\n\n // Get the current focused element\n const focused = document.activeElement;\n\n if (focused === last && !event.shiftKey) {\n // Move focus to first element that can be tabbed if Shift isn't used\n first.focus();\n event.preventDefault();\n } else if (focused === first && event.shiftKey) {\n // Move focus to last element that can be tabbed if Shift is used\n last.focus();\n event.preventDefault();\n }\n };\n\n toggleListener.call(this, this.elements.container, 'keydown', trap, toggle, false);\n}\n\n// Set focus and tab focus class\nexport function setFocus(element = null, tabFocus = false) {\n if (!is.element(element)) {\n return;\n }\n\n // Set regular focus\n element.focus();\n\n // If we want to mimic keyboard focus via tab\n if (tabFocus) {\n toggleClass(element, this.config.classNames.tabFocus);\n }\n}\n","// ==========================================================================\n// Animation utils\n// ==========================================================================\n\nimport { toggleHidden } from './elements';\nimport is from './is';\n\nexport const transitionEndEvent = (() => {\n const element = document.createElement('span');\n\n const events = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend',\n };\n\n const type = Object.keys(events).find(\n event => element.style[event] !== undefined,\n );\n\n return is.string(type) ? events[type] : false;\n})();\n\n// Force repaint of element\nexport function repaint(element) {\n setTimeout(() => {\n try {\n toggleHidden(element, true);\n element.offsetHeight; // eslint-disable-line\n toggleHidden(element, false);\n } catch (e) {\n // Do nothing\n }\n }, 0);\n}\n","// ==========================================================================\n// Browser sniffing\n// Unfortunately, due to mixed support, UA sniffing is required\n// ==========================================================================\n\nconst browser = {\n isIE: /* @cc_on!@ */ false || !!document.documentMode,\n isWebkit: 'WebkitAppearance' in document.documentElement.style && !/Edge/.test(navigator.userAgent),\n isIPhone: /(iPhone|iPod)/gi.test(navigator.platform),\n isIos: /(iPad|iPhone|iPod)/gi.test(navigator.platform),\n};\n\nexport default browser;\n","// ==========================================================================\n// Plyr support checks\n// ==========================================================================\n\nimport { transitionEndEvent } from './utils/animation';\nimport browser from './utils/browser';\nimport { createElement } from './utils/elements';\nimport is from './utils/is';\n\n// Default codecs for checking mimetype support\nconst defaultCodecs = {\n 'audio/ogg': 'vorbis',\n 'audio/wav': '1',\n 'video/webm': 'vp8, vorbis',\n 'video/mp4': 'avc1.42E01E, mp4a.40.2',\n 'video/ogg': 'theora',\n};\n\n// Check for feature support\nconst support = {\n // Basic support\n audio: 'canPlayType' in document.createElement('audio'),\n video: 'canPlayType' in document.createElement('video'),\n\n // Check for support\n // Basic functionality vs full UI\n check(type, provider, playsinline) {\n const canPlayInline = browser.isIPhone && playsinline && support.playsinline;\n const api = support[type] || provider !== 'html5';\n const ui = api && support.rangeInput && (type !== 'video' || !browser.isIPhone || canPlayInline);\n\n return {\n api,\n ui,\n };\n },\n\n // Picture-in-picture support\n // Safari only currently\n pip: (() => !browser.isIPhone && is.function(createElement('video').webkitSetPresentationMode))(),\n\n // Airplay support\n // Safari only currently\n airplay: is.function(window.WebKitPlaybackTargetAvailabilityEvent),\n\n // Inline playback support\n // https://webkit.org/blog/6784/new-video-policies-for-ios/\n playsinline: 'playsInline' in document.createElement('video'),\n\n // Check for mime type support against a player instance\n // Credits: http://diveintohtml5.info/everything.html\n // Related: http://www.leanbackplayer.com/test/h5mt.html\n mime(inputType) {\n const [mediaType] = inputType.split('/');\n if (!this.isHTML5 || mediaType !== this.type) {\n return false;\n }\n\n let type;\n if (inputType && inputType.includes('codecs=')) {\n // Use input directly\n type = inputType;\n } else if (inputType === 'audio/mpeg') {\n // Skip codec\n type = 'audio/mpeg;';\n } else if (inputType in defaultCodecs) {\n // Use codec\n type = `${inputType}; codecs=\"${defaultCodecs[inputType]}\"`;\n }\n\n try {\n return Boolean(type && this.media.canPlayType(type).replace(/no/, ''));\n } catch (err) {\n return false;\n }\n },\n\n // Check for textTracks support\n textTracks: 'textTracks' in document.createElement('video'),\n\n // Sliders\n rangeInput: (() => {\n const range = document.createElement('input');\n range.type = 'range';\n return range.type === 'range';\n })(),\n\n // Touch\n // NOTE: Remember a device can be mouse + touch enabled so we check on first touch event\n touch: 'ontouchstart' in document.documentElement,\n\n // Detect transitions support\n transitions: transitionEndEvent !== false,\n\n // Reduced motion iOS & MacOS setting\n // https://webkit.org/blog/7551/responsive-design-for-motion/\n reducedMotion: 'matchMedia' in window && window.matchMedia('(prefers-reduced-motion)').matches,\n};\n\nexport default support;\n","// ==========================================================================\n// Plyr HTML5 helpers\n// ==========================================================================\n\nimport support from './support';\nimport { removeElement } from './utils/elements';\nimport { triggerEvent } from './utils/events';\n\nconst html5 = {\n getSources() {\n if (!this.isHTML5) {\n return [];\n }\n\n const sources = Array.from(this.media.querySelectorAll('source'));\n\n // Filter out unsupported sources\n return sources.filter(source => support.mime.call(this, source.getAttribute('type')));\n },\n\n // Get quality levels\n getQualityOptions() {\n // Get sizes from elements\n return html5.getSources\n .call(this)\n .map(source => Number(source.getAttribute('size')))\n .filter(Boolean);\n },\n\n extend() {\n if (!this.isHTML5) {\n return;\n }\n\n const player = this;\n\n // Quality\n Object.defineProperty(player.media, 'quality', {\n get() {\n // Get sources\n const sources = html5.getSources.call(player);\n const source = sources.find(source => source.getAttribute('src') === player.source);\n\n // Return size, if match is found\n return source && Number(source.getAttribute('size'));\n },\n set(input) {\n // Get sources\n const sources = html5.getSources.call(player);\n\n // Get first match for requested size\n const source = sources.find(source => Number(source.getAttribute('size')) === input);\n\n // No matching source found\n if (!source) {\n return;\n }\n\n // Get current state\n const { currentTime, paused, preload, readyState } = player.media;\n\n // Set new source\n player.media.src = source.getAttribute('src');\n\n // Prevent loading if preload=\"none\" and the current source isn't loaded (#1044)\n if (preload !== 'none' || readyState) {\n // Restore time\n player.once('loadedmetadata', () => {\n player.currentTime = currentTime;\n\n // Resume playing\n if (!paused) {\n player.play();\n }\n });\n\n // Load new source\n player.media.load();\n }\n\n // Trigger change event\n triggerEvent.call(player, player.media, 'qualitychange', false, {\n quality: input,\n });\n },\n });\n },\n\n // Cancel current network requests\n // See https://github.com/sampotts/plyr/issues/174\n cancelRequests() {\n if (!this.isHTML5) {\n return;\n }\n\n // Remove child sources\n removeElement(html5.getSources.call(this));\n\n // Set blank video src attribute\n // This is to prevent a MEDIA_ERR_SRC_NOT_SUPPORTED error\n // Info: http://stackoverflow.com/questions/32231579/how-to-properly-dispose-of-an-html5-video-and-close-socket-or-connection\n this.media.setAttribute('src', this.config.blankVideo);\n\n // Load the new empty source\n // This will cancel existing requests\n // See https://github.com/sampotts/plyr/issues/174\n this.media.load();\n\n // Debugging\n this.debug.log('Cancelled network requests');\n },\n};\n\nexport default html5;\n","// ==========================================================================\n// Object utils\n// ==========================================================================\n\nimport is from './is';\n\n// Clone nested objects\nexport function cloneDeep(object) {\n return JSON.parse(JSON.stringify(object));\n}\n\n// Get a nested value in an object\nexport function getDeep(object, path) {\n return path.split('.').reduce((obj, key) => obj && obj[key], object);\n}\n\n// Deep extend destination object with N more objects\nexport function extend(target = {}, ...sources) {\n if (!sources.length) {\n return target;\n }\n\n const source = sources.shift();\n\n if (!is.object(source)) {\n return target;\n }\n\n Object.keys(source).forEach(key => {\n if (is.object(source[key])) {\n if (!Object.keys(target).includes(key)) {\n Object.assign(target, { [key]: {} });\n }\n\n extend(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n });\n\n return extend(target, ...sources);\n}\n","// ==========================================================================\n// String utils\n// ==========================================================================\n\nimport is from './is';\n\n// Generate a random ID\nexport function generateId(prefix) {\n return `${prefix}-${Math.floor(Math.random() * 10000)}`;\n}\n\n// Format string\nexport function format(input, ...args) {\n if (is.empty(input)) {\n return input;\n }\n\n return input.toString().replace(/{(\\d+)}/g, (match, i) => args[i].toString());\n}\n\n// Get percentage\nexport function getPercentage(current, max) {\n if (current === 0 || max === 0 || Number.isNaN(current) || Number.isNaN(max)) {\n return 0;\n }\n\n return (current / max * 100).toFixed(2);\n}\n\n// Replace all occurances of a string in a string\nexport function replaceAll(input = '', find = '', replace = '') {\n return input.replace(\n new RegExp(find.toString().replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1'), 'g'),\n replace.toString(),\n );\n}\n\n// Convert to title case\nexport function toTitleCase(input = '') {\n return input.toString().replace(/\\w\\S*/g, text => text.charAt(0).toUpperCase() + text.substr(1).toLowerCase());\n}\n\n// Convert string to pascalCase\nexport function toPascalCase(input = '') {\n let string = input.toString();\n\n // Convert kebab case\n string = replaceAll(string, '-', ' ');\n\n // Convert snake case\n string = replaceAll(string, '_', ' ');\n\n // Convert to title case\n string = toTitleCase(string);\n\n // Convert to pascal case\n return replaceAll(string, ' ', '');\n}\n\n// Convert string to pascalCase\nexport function toCamelCase(input = '') {\n let string = input.toString();\n\n // Convert to pascal case\n string = toPascalCase(string);\n\n // Convert first character to lowercase\n return string.charAt(0).toLowerCase() + string.slice(1);\n}\n\n// Remove HTML from a string\nexport function stripHTML(source) {\n const fragment = document.createDocumentFragment();\n const element = document.createElement('div');\n fragment.appendChild(element);\n element.innerHTML = source;\n return fragment.firstChild.innerText;\n}\n\n// Like outerHTML, but also works for DocumentFragment\nexport function getHTML(element) {\n const wrapper = document.createElement('div');\n wrapper.appendChild(element);\n return wrapper.innerHTML;\n}\n","// ==========================================================================\n// Plyr internationalization\n// ==========================================================================\n\nimport is from './utils/is';\nimport { getDeep } from './utils/objects';\nimport { replaceAll } from './utils/strings';\n\nconst i18n = {\n get(key = '', config = {}) {\n if (is.empty(key) || is.empty(config)) {\n return '';\n }\n\n let string = getDeep(config.i18n, key);\n\n if (is.empty(string)) {\n return '';\n }\n\n const replace = {\n '{seektime}': config.seekTime,\n '{title}': config.title,\n };\n\n Object.entries(replace).forEach(([key, value]) => {\n string = replaceAll(string, key, value);\n });\n\n return string;\n },\n};\n\nexport default i18n;\n","// ==========================================================================\n// Array utils\n// ==========================================================================\n\nimport is from './is';\n\n// Remove duplicates in an array\nexport function dedupe(array) {\n if (!is.array(array)) {\n return array;\n }\n\n return array.filter((item, index) => array.indexOf(item) === index);\n}\n\n// Get the closest value in an array\nexport function closest(array, value) {\n if (!is.array(array) || !array.length) {\n return null;\n }\n\n return array.reduce((prev, curr) => (Math.abs(curr - value) < Math.abs(prev - value) ? curr : prev));\n}\n","// ==========================================================================\n// Plyr storage\n// ==========================================================================\n\nimport is from './utils/is';\nimport { extend } from './utils/objects';\n\nclass Storage {\n constructor(player) {\n this.enabled = player.config.storage.enabled;\n this.key = player.config.storage.key;\n }\n\n // Check for actual support (see if we can use it)\n static get supported() {\n try {\n if (!('localStorage' in window)) {\n return false;\n }\n\n const test = '___test';\n\n // Try to use it (it might be disabled, e.g. user is in private mode)\n // see: https://github.com/sampotts/plyr/issues/131\n window.localStorage.setItem(test, test);\n window.localStorage.removeItem(test);\n\n return true;\n } catch (e) {\n return false;\n }\n }\n\n get(key) {\n if (!Storage.supported || !this.enabled) {\n return null;\n }\n\n const store = window.localStorage.getItem(this.key);\n\n if (is.empty(store)) {\n return null;\n }\n\n const json = JSON.parse(store);\n\n return is.string(key) && key.length ? json[key] : json;\n }\n\n set(object) {\n // Bail if we don't have localStorage support or it's disabled\n if (!Storage.supported || !this.enabled) {\n return;\n }\n\n // Can only store objectst\n if (!is.object(object)) {\n return;\n }\n\n // Get current storage\n let storage = this.get();\n\n // Default to empty object\n if (is.empty(storage)) {\n storage = {};\n }\n\n // Update the working copy of the values\n extend(storage, object);\n\n // Update storage\n window.localStorage.setItem(this.key, JSON.stringify(storage));\n }\n}\n\nexport default Storage;\n","// ==========================================================================\n// Fetch wrapper\n// Using XHR to avoid issues with older browsers\n// ==========================================================================\n\nexport default function fetch(url, responseType = 'text') {\n return new Promise((resolve, reject) => {\n try {\n const request = new XMLHttpRequest();\n\n // Check for CORS support\n if (!('withCredentials' in request)) {\n return;\n }\n\n request.addEventListener('load', () => {\n if (responseType === 'text') {\n try {\n resolve(JSON.parse(request.responseText));\n } catch (e) {\n resolve(request.responseText);\n }\n } else {\n resolve(request.response);\n }\n });\n\n request.addEventListener('error', () => {\n throw new Error(request.status);\n });\n\n request.open('GET', url, true);\n\n // Set the required response type\n request.responseType = responseType;\n\n request.send();\n } catch (e) {\n reject(e);\n }\n });\n}\n","// ==========================================================================\n// Sprite loader\n// ==========================================================================\n\nimport Storage from '../storage';\nimport fetch from './fetch';\nimport is from './is';\n\n// Load an external SVG sprite\nexport default function loadSprite(url, id) {\n if (!is.string(url)) {\n return;\n }\n\n const prefix = 'cache';\n const hasId = is.string(id);\n let isCached = false;\n\n const exists = () => document.getElementById(id) !== null;\n\n const update = (container, data) => {\n container.innerHTML = data;\n\n // Check again incase of race condition\n if (hasId && exists()) {\n return;\n }\n\n // Inject the SVG to the body\n document.body.insertAdjacentElement('afterbegin', container);\n };\n\n // Only load once if ID set\n if (!hasId || !exists()) {\n const useStorage = Storage.supported;\n\n // Create container\n const container = document.createElement('div');\n container.setAttribute('hidden', '');\n\n if (hasId) {\n container.setAttribute('id', id);\n }\n\n // Check in cache\n if (useStorage) {\n const cached = window.localStorage.getItem(`${prefix}-${id}`);\n isCached = cached !== null;\n\n if (isCached) {\n const data = JSON.parse(cached);\n update(container, data.content);\n }\n }\n\n // Get the sprite\n fetch(url)\n .then(result => {\n if (is.empty(result)) {\n return;\n }\n\n if (useStorage) {\n window.localStorage.setItem(\n `${prefix}-${id}`,\n JSON.stringify({\n content: result,\n }),\n );\n }\n\n update(container, result);\n })\n .catch(() => {});\n }\n}\n","// ==========================================================================\n// Time utils\n// ==========================================================================\n\nimport is from './is';\n\n// Time helpers\nexport const getHours = value => parseInt((value / 60 / 60) % 60, 10);\nexport const getMinutes = value => parseInt((value / 60) % 60, 10);\nexport const getSeconds = value => parseInt(value % 60, 10);\n\n// Format time to UI friendly string\nexport function formatTime(time = 0, displayHours = false, inverted = false) {\n // Bail if the value isn't a number\n if (!is.number(time)) {\n return formatTime(null, displayHours, inverted);\n }\n\n // Format time component to add leading zero\n const format = value => `0${value}`.slice(-2);\n\n // Breakdown to hours, mins, secs\n let hours = getHours(time);\n const mins = getMinutes(time);\n const secs = getSeconds(time);\n\n // Do we need to display hours?\n if (displayHours || hours > 0) {\n hours = `${hours}:`;\n } else {\n hours = '';\n }\n\n // Render\n return `${inverted && time > 0 ? '-' : ''}${hours}${format(mins)}:${format(secs)}`;\n}\n","// ==========================================================================\n// Plyr controls\n// TODO: This needs to be split into smaller files and cleaned up\n// ==========================================================================\n\nimport captions from './captions';\nimport html5 from './html5';\nimport i18n from './i18n';\nimport support from './support';\nimport { repaint, transitionEndEvent } from './utils/animation';\nimport { dedupe } from './utils/arrays';\nimport browser from './utils/browser';\nimport { createElement, emptyElement, getAttributesFromSelector, getElement, getElements, hasClass, matches, removeElement, setAttributes, setFocus, toggleClass, toggleHidden } from './utils/elements';\nimport { off, on } from './utils/events';\nimport is from './utils/is';\nimport loadSprite from './utils/loadSprite';\nimport { extend } from './utils/objects';\nimport { getPercentage, replaceAll, toCamelCase, toTitleCase } from './utils/strings';\nimport { formatTime, getHours } from './utils/time';\n\n// TODO: Don't export a massive object - break down and create class\nconst controls = {\n // Get icon URL\n getIconUrl() {\n const url = new URL(this.config.iconUrl, window.location);\n const cors = url.host !== window.location.host || (browser.isIE && !window.svg4everybody);\n\n return {\n url: this.config.iconUrl,\n cors,\n };\n },\n\n // Find the UI controls\n findElements() {\n try {\n this.elements.controls = getElement.call(this, this.config.selectors.controls.wrapper);\n\n // Buttons\n this.elements.buttons = {\n play: getElements.call(this, this.config.selectors.buttons.play),\n pause: getElement.call(this, this.config.selectors.buttons.pause),\n restart: getElement.call(this, this.config.selectors.buttons.restart),\n rewind: getElement.call(this, this.config.selectors.buttons.rewind),\n fastForward: getElement.call(this, this.config.selectors.buttons.fastForward),\n mute: getElement.call(this, this.config.selectors.buttons.mute),\n pip: getElement.call(this, this.config.selectors.buttons.pip),\n airplay: getElement.call(this, this.config.selectors.buttons.airplay),\n settings: getElement.call(this, this.config.selectors.buttons.settings),\n captions: getElement.call(this, this.config.selectors.buttons.captions),\n fullscreen: getElement.call(this, this.config.selectors.buttons.fullscreen),\n };\n\n // Progress\n this.elements.progress = getElement.call(this, this.config.selectors.progress);\n\n // Inputs\n this.elements.inputs = {\n seek: getElement.call(this, this.config.selectors.inputs.seek),\n volume: getElement.call(this, this.config.selectors.inputs.volume),\n };\n\n // Display\n this.elements.display = {\n buffer: getElement.call(this, this.config.selectors.display.buffer),\n currentTime: getElement.call(this, this.config.selectors.display.currentTime),\n duration: getElement.call(this, this.config.selectors.display.duration),\n };\n\n // Seek tooltip\n if (is.element(this.elements.progress)) {\n this.elements.display.seekTooltip = this.elements.progress.querySelector(\n `.${this.config.classNames.tooltip}`,\n );\n }\n\n return true;\n } catch (error) {\n // Log it\n this.debug.warn('It looks like there is a problem with your custom controls HTML', error);\n\n // Restore native video controls\n this.toggleNativeControls(true);\n\n return false;\n }\n },\n\n // Create icon\n createIcon(type, attributes) {\n const namespace = 'http://www.w3.org/2000/svg';\n const iconUrl = controls.getIconUrl.call(this);\n const iconPath = `${!iconUrl.cors ? iconUrl.url : ''}#${this.config.iconPrefix}`;\n\n // Create \n const icon = document.createElementNS(namespace, 'svg');\n setAttributes(\n icon,\n extend(attributes, {\n role: 'presentation',\n focusable: 'false',\n }),\n );\n\n // Create the to reference sprite\n const use = document.createElementNS(namespace, 'use');\n const path = `${iconPath}-${type}`;\n\n // Set `href` attributes\n // https://github.com/sampotts/plyr/issues/460\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/xlink:href\n if ('href' in use) {\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n } else {\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', path);\n }\n\n // Add to \n icon.appendChild(use);\n\n return icon;\n },\n\n // Create hidden text label\n createLabel(type, attr = {}) {\n // Skip i18n for abbreviations and brand names\n const universals = {\n pip: 'PIP',\n airplay: 'AirPlay',\n };\n const text = universals[type] || i18n.get(type, this.config);\n\n const attributes = Object.assign({}, attr, {\n class: [attr.class, this.config.classNames.hidden].filter(Boolean).join(' '),\n });\n return createElement('span', attributes, text);\n },\n\n // Create a badge\n createBadge(text) {\n if (is.empty(text)) {\n return null;\n }\n\n const badge = createElement('span', {\n class: this.config.classNames.menu.value,\n });\n\n badge.appendChild(\n createElement(\n 'span',\n {\n class: this.config.classNames.menu.badge,\n },\n text,\n ),\n );\n\n return badge;\n },\n\n // Create a
to hide the standard controls and UI\n setAspectRatio(input) {\n const [x, y] = (is.string(input) ? input : this.config.ratio).split(':');\n const padding = 100 / x * y;\n this.elements.wrapper.style.paddingBottom = `${padding}%`;\n\n if (this.supported.ui) {\n const height = 240;\n const offset = (height - padding) / (height / 50);\n\n this.media.style.transform = `translateY(-${offset}%)`;\n }\n },\n\n // API Ready\n ready() {\n const player = this;\n\n // Get Vimeo params for the iframe\n const options = {\n loop: player.config.loop.active,\n autoplay: player.autoplay,\n // muted: player.muted,\n byline: false,\n portrait: false,\n title: false,\n speed: true,\n transparent: 0,\n gesture: 'media',\n playsinline: !this.config.fullscreen.iosNative,\n };\n const params = buildUrlParams(options);\n\n // Get the source URL or ID\n let source = player.media.getAttribute('src');\n\n // Get from
if needed\n if (is.empty(source)) {\n source = player.media.getAttribute(player.config.attributes.embed.id);\n }\n\n const id = parseId(source);\n\n // Build an iframe\n const iframe = createElement('iframe');\n const src = format(player.config.urls.vimeo.iframe, id, params);\n iframe.setAttribute('src', src);\n iframe.setAttribute('allowfullscreen', '');\n iframe.setAttribute('allowtransparency', '');\n iframe.setAttribute('allow', 'autoplay');\n\n // Get poster, if already set\n const { poster } = player;\n\n // Inject the package\n const wrapper = createElement('div', { poster, class: player.config.classNames.embedContainer });\n wrapper.appendChild(iframe);\n player.media = replaceElement(wrapper, player.media);\n\n // Get poster image\n fetch(format(player.config.urls.vimeo.api, id), 'json').then(response => {\n if (is.empty(response)) {\n return;\n }\n\n // Get the URL for thumbnail\n const url = new URL(response[0].thumbnail_large);\n\n // Get original image\n url.pathname = `${url.pathname.split('_')[0]}.jpg`;\n\n // Set and show poster\n ui.setPoster.call(player, url.href).catch(() => {});\n });\n\n // Setup instance\n // https://github.com/vimeo/player.js\n player.embed = new window.Vimeo.Player(iframe, {\n autopause: player.config.autopause,\n muted: player.muted,\n });\n\n player.media.paused = true;\n player.media.currentTime = 0;\n\n // Disable native text track rendering\n if (player.supported.ui) {\n player.embed.disableTextTrack();\n }\n\n // Create a faux HTML5 API using the Vimeo API\n player.media.play = () => {\n assurePlaybackState.call(player, true);\n return player.embed.play();\n };\n\n player.media.pause = () => {\n assurePlaybackState.call(player, false);\n return player.embed.pause();\n };\n\n player.media.stop = () => {\n player.pause();\n player.currentTime = 0;\n };\n\n // Seeking\n let { currentTime } = player.media;\n Object.defineProperty(player.media, 'currentTime', {\n get() {\n return currentTime;\n },\n set(time) {\n // Vimeo will automatically play on seek if the video hasn't been played before\n\n // Get current paused state and volume etc\n const { embed, media, paused, volume } = player;\n const restorePause = paused && !embed.hasPlayed;\n\n // Set seeking state and trigger event\n media.seeking = true;\n triggerEvent.call(player, media, 'seeking');\n\n // If paused, mute until seek is complete\n Promise.resolve(restorePause && embed.setVolume(0))\n // Seek\n .then(() => embed.setCurrentTime(time))\n // Restore paused\n .then(() => restorePause && embed.pause())\n // Restore volume\n .then(() => restorePause && embed.setVolume(volume))\n .catch(() => {\n // Do nothing\n });\n },\n });\n\n // Playback speed\n let speed = player.config.speed.selected;\n Object.defineProperty(player.media, 'playbackRate', {\n get() {\n return speed;\n },\n set(input) {\n player.embed\n .setPlaybackRate(input)\n .then(() => {\n speed = input;\n triggerEvent.call(player, player.media, 'ratechange');\n })\n .catch(error => {\n // Hide menu item (and menu if empty)\n if (error.name === 'Error') {\n controls.setSpeedMenu.call(player, []);\n }\n });\n },\n });\n\n // Volume\n let { volume } = player.config;\n Object.defineProperty(player.media, 'volume', {\n get() {\n return volume;\n },\n set(input) {\n player.embed.setVolume(input).then(() => {\n volume = input;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n },\n });\n\n // Muted\n let { muted } = player.config;\n Object.defineProperty(player.media, 'muted', {\n get() {\n return muted;\n },\n set(input) {\n const toggle = is.boolean(input) ? input : false;\n\n player.embed.setVolume(toggle ? 0 : player.config.volume).then(() => {\n muted = toggle;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n },\n });\n\n // Loop\n let { loop } = player.config;\n Object.defineProperty(player.media, 'loop', {\n get() {\n return loop;\n },\n set(input) {\n const toggle = is.boolean(input) ? input : player.config.loop.active;\n\n player.embed.setLoop(toggle).then(() => {\n loop = toggle;\n });\n },\n });\n\n // Source\n let currentSrc;\n player.embed\n .getVideoUrl()\n .then(value => {\n currentSrc = value;\n })\n .catch(error => {\n this.debug.warn(error);\n });\n\n Object.defineProperty(player.media, 'currentSrc', {\n get() {\n return currentSrc;\n },\n });\n\n // Ended\n Object.defineProperty(player.media, 'ended', {\n get() {\n return player.currentTime === player.duration;\n },\n });\n\n // Set aspect ratio based on video size\n Promise.all([player.embed.getVideoWidth(), player.embed.getVideoHeight()]).then(dimensions => {\n const ratio = getAspectRatio(dimensions[0], dimensions[1]);\n vimeo.setAspectRatio.call(this, ratio);\n });\n\n // Set autopause\n player.embed.setAutopause(player.config.autopause).then(state => {\n player.config.autopause = state;\n });\n\n // Get title\n player.embed.getVideoTitle().then(title => {\n player.config.title = title;\n ui.setTitle.call(this);\n });\n\n // Get current time\n player.embed.getCurrentTime().then(value => {\n currentTime = value;\n triggerEvent.call(player, player.media, 'timeupdate');\n });\n\n // Get duration\n player.embed.getDuration().then(value => {\n player.media.duration = value;\n triggerEvent.call(player, player.media, 'durationchange');\n });\n\n // Get captions\n player.embed.getTextTracks().then(tracks => {\n player.media.textTracks = tracks;\n captions.setup.call(player);\n });\n\n player.embed.on('cuechange', ({ cues = [] }) => {\n const strippedCues = cues.map(cue => stripHTML(cue.text));\n captions.updateCues.call(player, strippedCues);\n });\n\n player.embed.on('loaded', () => {\n // Assure state and events are updated on autoplay\n player.embed.getPaused().then(paused => {\n assurePlaybackState.call(player, !paused);\n if (!paused) {\n triggerEvent.call(player, player.media, 'playing');\n }\n });\n\n if (is.element(player.embed.element) && player.supported.ui) {\n const frame = player.embed.element;\n\n // Fix keyboard focus issues\n // https://github.com/sampotts/plyr/issues/317\n frame.setAttribute('tabindex', -1);\n }\n });\n\n player.embed.on('play', () => {\n assurePlaybackState.call(player, true);\n triggerEvent.call(player, player.media, 'playing');\n });\n\n player.embed.on('pause', () => {\n assurePlaybackState.call(player, false);\n });\n\n player.embed.on('timeupdate', data => {\n player.media.seeking = false;\n currentTime = data.seconds;\n triggerEvent.call(player, player.media, 'timeupdate');\n });\n\n player.embed.on('progress', data => {\n player.media.buffered = data.percent;\n triggerEvent.call(player, player.media, 'progress');\n\n // Check all loaded\n if (parseInt(data.percent, 10) === 1) {\n triggerEvent.call(player, player.media, 'canplaythrough');\n }\n\n // Get duration as if we do it before load, it gives an incorrect value\n // https://github.com/sampotts/plyr/issues/891\n player.embed.getDuration().then(value => {\n if (value !== player.media.duration) {\n player.media.duration = value;\n triggerEvent.call(player, player.media, 'durationchange');\n }\n });\n });\n\n player.embed.on('seeked', () => {\n player.media.seeking = false;\n triggerEvent.call(player, player.media, 'seeked');\n });\n\n player.embed.on('ended', () => {\n player.media.paused = true;\n triggerEvent.call(player, player.media, 'ended');\n });\n\n player.embed.on('error', detail => {\n player.media.error = detail;\n triggerEvent.call(player, player.media, 'error');\n });\n\n // Rebuild UI\n setTimeout(() => ui.build.call(player), 0);\n },\n};\n\nexport default vimeo;\n","// ==========================================================================\n// YouTube plugin\n// ==========================================================================\n\nimport controls from '../controls';\nimport ui from '../ui';\nimport { dedupe } from '../utils/arrays';\nimport { createElement, replaceElement, toggleClass } from '../utils/elements';\nimport { triggerEvent } from '../utils/events';\nimport fetch from '../utils/fetch';\nimport is from '../utils/is';\nimport loadImage from '../utils/loadImage';\nimport loadScript from '../utils/loadScript';\nimport { format, generateId } from '../utils/strings';\n\n// Parse YouTube ID from URL\nfunction parseId(url) {\n if (is.empty(url)) {\n return null;\n }\n\n const regex = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#&?]*).*/;\n return url.match(regex) ? RegExp.$2 : url;\n}\n\n// Standardise YouTube quality unit\nfunction mapQualityUnit(input) {\n const qualities = {\n hd2160: 2160,\n hd1440: 1440,\n hd1080: 1080,\n hd720: 720,\n large: 480,\n medium: 360,\n small: 240,\n tiny: 144,\n };\n\n const entry = Object.entries(qualities).find(entry => entry.includes(input));\n\n if (entry) {\n // Get the match corresponding to the input\n return entry.find(value => value !== input);\n }\n\n return 'default';\n}\n\nfunction mapQualityUnits(levels) {\n if (is.empty(levels)) {\n return levels;\n }\n\n return dedupe(levels.map(level => mapQualityUnit(level)));\n}\n\n// Set playback state and trigger change (only on actual change)\nfunction assurePlaybackState(play) {\n if (play && !this.embed.hasPlayed) {\n this.embed.hasPlayed = true;\n }\n if (this.media.paused === play) {\n this.media.paused = !play;\n triggerEvent.call(this, this.media, play ? 'play' : 'pause');\n }\n}\n\nconst youtube = {\n setup() {\n // Add embed class for responsive\n toggleClass(this.elements.wrapper, this.config.classNames.embed, true);\n\n // Set aspect ratio\n youtube.setAspectRatio.call(this);\n\n // Setup API\n if (is.object(window.YT) && is.function(window.YT.Player)) {\n youtube.ready.call(this);\n } else {\n // Load the API\n loadScript(this.config.urls.youtube.sdk).catch(error => {\n this.debug.warn('YouTube API failed to load', error);\n });\n\n // Setup callback for the API\n // YouTube has it's own system of course...\n window.onYouTubeReadyCallbacks = window.onYouTubeReadyCallbacks || [];\n\n // Add to queue\n window.onYouTubeReadyCallbacks.push(() => {\n youtube.ready.call(this);\n });\n\n // Set callback to process queue\n window.onYouTubeIframeAPIReady = () => {\n window.onYouTubeReadyCallbacks.forEach(callback => {\n callback();\n });\n };\n }\n },\n\n // Get the media title\n getTitle(videoId) {\n // Try via undocumented API method first\n // This method disappears now and then though...\n // https://github.com/sampotts/plyr/issues/709\n if (is.function(this.embed.getVideoData)) {\n const { title } = this.embed.getVideoData();\n\n if (is.empty(title)) {\n this.config.title = title;\n ui.setTitle.call(this);\n return;\n }\n }\n\n // Or via Google API\n const key = this.config.keys.google;\n if (is.string(key) && !is.empty(key)) {\n const url = format(this.config.urls.youtube.api, videoId, key);\n\n fetch(url)\n .then(result => {\n if (is.object(result)) {\n this.config.title = result.items[0].snippet.title;\n ui.setTitle.call(this);\n }\n })\n .catch(() => {});\n }\n },\n\n // Set aspect ratio\n setAspectRatio() {\n const ratio = this.config.ratio.split(':');\n this.elements.wrapper.style.paddingBottom = `${100 / ratio[0] * ratio[1]}%`;\n },\n\n // API ready\n ready() {\n const player = this;\n\n // Ignore already setup (race condition)\n const currentId = player.media.getAttribute('id');\n if (!is.empty(currentId) && currentId.startsWith('youtube-')) {\n return;\n }\n\n // Get the source URL or ID\n let source = player.media.getAttribute('src');\n\n // Get from
if needed\n if (is.empty(source)) {\n source = player.media.getAttribute(this.config.attributes.embed.id);\n }\n\n // Replace the