{"version":3,"sources":["components/molecules/municipality-select/index.ts","components/molecules/political-candidate/index.ts","components/molecules/navigation/index.ts","services/SearchService.ts","services/AdService.ts","services/LatestNewsService.ts","services/LocalNewsService.ts","services/DisqusService.ts","services/NORTVTrackingService.ts","services/CMP.ts","services/ElectoralResultService.js","components/organisms/hero/index.ts","components/organisms/search/index.ts","components/organisms/inline-search/index.ts","components/organisms/electoral-result/index.js","components/organisms/brussel-stemt/index.ts","index.ts","components/atoms/embed/config.ts","components/atoms/embed/EmbedBlocker.tsx","components/atoms/embed/EmbedBlockerContainer.tsx","components/atoms/embed/Embed.tsx","components/atoms/embed/index.tsx","components/atoms/toast/index.tsx","components/molecules/comments/index.ts","components/molecules/video/Clevercast.ts","components/molecules/video/index.ts","components/molecules/popup/index.ts","components/molecules/share/index.ts","components/organisms/header/index.ts","components/organisms/ads/index.ts","components/organisms/gallery/index.ts","components/organisms/event-search/filters/SearchFilter.tsx","components/organisms/event-search/filters/RadioFilterOption.tsx","components/organisms/event-search/constants/dates.ts","components/organisms/event-search/filters/DateFilter.tsx","components/organisms/event-search/filters/RadioFilter.jsx","components/organisms/event-search/filters/RadioFilterIndicator.tsx","components/organisms/event-search/filters/Filters.tsx","components/organisms/event-search/EventSearch.tsx","components/organisms/event-search/EventSearchTeaser.tsx","components/organisms/event-search/EventSearchPager.tsx","components/organisms/event-search/services/FiltersConverterService.ts","components/organisms/event-search/services/EventSearchService.ts","components/organisms/event-search/EventSearchOverview.jsx","components/organisms/event-search/index.tsx","components/organisms/feedback/index.tsx","components/organisms/timeline/TimelineItem.tsx","components/organisms/timeline/TimelineDay.tsx","components/organisms/timeline/Timeline.tsx","components/organisms/timeline/index.tsx","components/atoms/link/Link.tsx","components/molecules/section-title/SectionTitle.tsx","components/organisms/local-news/LocalNewsDropdown.tsx","components/organisms/local-news/LocalNewsBlock.tsx","components/organisms/local-news/index.tsx","components/organisms/electoral-header/ElectoralHeader.tsx","components/organisms/electoral-header/index.tsx","components/organisms/electoral-list/index.js","utils/SideloadTeasers.ts","utils/api.ts","consts/config.ts","consts/ads.ts","consts/date.ts","utils/DateFormat.ts","components/molecules/teaser/TeaserRating.tsx","components/molecules/teaser/Teaser.tsx"],"names":["select","document","querySelector","addEventListener","event","window","location","href","target","value","Array","from","querySelectorAll","forEach","politicalCandidate","politicalCandidateHeader","politicalCandidateInfo","preventDefault","classList","toggle","onResize","navigation","navigationList","scrollWidth","clientWidth","Math","ceil","scrollLeft","onScroll","scrollRight","scrollBy","left","behavior","SearchServiceClass","_createClass","_classCallCheck","search","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","query","facets","date","page","params","response","json","wrap","_context","prev","next","URLSearchParams","append","concat","d","m","y","facet","encodeURIComponent","toString","fetch","decodeURIComponent","method","credentials","sent","abrupt","stop","_x","_x2","_x3","_x4","apply","arguments","SearchService","AdServiceInstance","_this","kaching","loadKaching","Promise","resolve","reject","today","Date","kachingCacheIdentifier","getFullYear","getMonth","getDate","getHours","loadjs","KACHING_SCRIPT_URL","numRetries","success","KaChing","error","depsNotFound","console","log","getVideoURL","kachingTimeoutDelay","kachingTimeout","videoURL","getVideoUrl","e","detail","format","url","clearTimeout","setTimeout","t0","init","_callee2","_context2","reset","type","map","_ref3","adSlot","i","prefix","setAttribute","defineSlot","KACHING_CONFIG","AdService","LatestNewsService","getLatestNews","_args","length","undefined","getFrontDomain","getLatestNewsByDay","_ref2","timestamp","day","LocalNewsService","LOCALSTORAGE_KEY","getLocations","drupalSettings","municipalities","DisqusService","load","NORTV_EVENTS","isAdmin","includes","NORTVTrackingService","_class","udata","pageData","contentData","myTMS","rmpPlayers","trackPageView","trackContentView","trackArticleTagClick","trackWebformSubmission","push","_objectSpread","event_name","content","trackInteraction","name","details","interaction_name","interaction_details1","trackFormSubmit","form_name","tag","dataset","nortvTag","webforms","pageTitle","form","submitButton","innerText","trackClevercastVideo","player","_window$myTMS","_window$myTMS$rmpPlay","CustomConsentType","FUNCTIONAL","SOCIAL","getConsentData","__cmp","getCustomPurposeConsent","id","customPurposeConsents","Boolean","ElectoralResultService","formatElectoralBarGraphResults","results","formattedResults","parties","partiesPerCanton","partiesFromFlanders","partiesFromBrussels","nl","fr","isMultiLanguage","hasCantons","activeCanton","canton","complete","pollingStationCounted","pollingStationTotal","formatElectoralPieChart2019Results","seats","firstNlParty","firstFrParty","_nl$parties","_fr$parties","_slicedToArray","cantons","total","fetchElectoralResults","_callee3","dataUrl","_context3","getElectoralBarGraph2019Results","_ref4","_callee4","_context4","getElectoralPieChart2019Results","_ref5","_callee5","_context5","_x5","getElectoralResults","_ref6","_callee6","_context6","_x6","heroParallaxImgs","scrollHandler","pageYOffset","image","positionFactor","style","transform","requestAnimationFrame","inlineSearch","inputField","getElementById","electoralBarGraphContainer","electoralPieChartContainer","electoralBarGraph2019Container","electoralPieChart2019Container","electoralBarGraph2024Container","electoralPieChart2024Container","brusselStemtContainer","_brusselStemtContaine","title","intro","then","renderBrusselStemt","dynamicDate","dateText","textContent","formatDate","email","get","emailInput","editIntervalDay","checked","button","toggleError","show","errorMessage","HTMLElement","display","handleSubmit","_button$closest","emailValue","closest","getAttribute","match","separator","baseUrl","split","newUrl","key","embedConfig","initConsent","handleOnClick","addListener","message","EmbedBlocker","onButtonClick","_jsx","className","children","_jsxs","onClick","EmbedBlockerContainer","_useState","useState","_useState2","consent","setConsent","useEffect","Embed","embed","instgrm","Embeds","process","parse","replace","domNode","script","createElement","src","attribs","async","head","appendChild","embedCode","htmlEmbed","ReactDOM","createRoot","render","toast","root","Toaster","commentsContainer","openButton","add","Clevercast","container","play","pause","loadSuccess","getCommUrl","_this$container$datas","itemId","options","playerConfig","clevercastLoaded","config","CLEVERCAST","ACCOUNT_ID","t1","t2","autoplay","autoload","captions_default","captions_default_show","chromecast","account_id","item_id","comm_url","comm_url_prefetch","responsive","RMP","_this$player","_this$player2","this","initContainers","clevercastContainers","clevercastContainer","video","youtubeEmbeds","consentStatus","consentData","onConsentStatusReady","_window$__cmp","consentExists","youtubeEmbed","links","link","indexOf","substring","onclick","open","BASE_URL","openPopupFromLink","popup","radio","close","appIframe","isNaN","data","height","setInterval","_appIframe$contentWin","contentWindow","getElementsByTagName","_appIframe$contentWin2","iframeBody","scrollHeight","parseInt","parent","postMessage","copy","navigator","clipboard","writeText","duration","fontSize","ariaProps","role","lastScrollTop","header","hamburger","overlayMenu","overlayMenuClose","disableBodyScroll","remove","enableBodyScroll","scrollTop","documentElement","top","offsetHeight","galleries","gallery","pageDots","flkty","Flickity","freeScroll","contain","imagesLoaded","prevNextButtons","wrapAround","cellAlign","groupCells","layout","img","imgSlideParent","width","getBoundingClientRect","reloadCells","resize","onload","onresize","on","io","IntersectionObserver","entries","entry","isIntersecting","unobserve","observe","initGallery","SearchFilter","Field","input","htmlFor","placeholder","autoComplete","viewBox","xlinkHref","RadioFilterOption","option","years","currentYear","result","generateYears","months","label","days","val","index","DateFilter","values","component","date_ranges","onChange","year","month","RadioFilter","expandable","expandableLimit","expandableMoreText","expandableLessText","highlighted","expanded","setExpanded","fmlDunnoLength","processedOptions","slice","showCustomDate","defaultProps","Infinity","RadioFilterIndicator","filter","selectedOptionsString","selectedOptionsAsString","join","first","second","Filters","filters","setValues","t","Form","onSubmit","initialValues","finalFormValues","Object","keys","_Fragment","submit","filterComponent","FormSpy","subscription","dirty","formSpyValues","EventSearch","loading","sidebar","sidebarOpen","setSidebarOpen","xmlns","fill","EventSearchTeaser","eventLabel","eventImage","isMust","isSelect","agendaFallbackImage","Teaser","dateString","category","EventSearchPager","pageCount","activePage","changePage","ReactPaginate","containerClassName","breakClassName","pageClassName","pageLinkClassName","activeClassName","initialPage","forcePage","disableInitialCallback","pageRangeDisplayed","marginPagesDisplayed","onPageChange","selected","scrollTo","FiltersConverterService","converters","radioConverter","string","find","xxx","stringify","slugs","filterOption","textConverter","filterConverters","parts","filterKey","object","part","slug","valueAsString","EventSearchService","parameters","headers","body","JSON","events","pagination","currentPage","totalItems","totalPages","pages","EventSearchOverview","_React$Component","_inherits","_super","_createSuper","props","call","componentDidMount","componentDidUpdate","prevProps","hasUpdatedFilters","pathname","hasUpdatedPage","hash","timeout","getFilterValues","getPage","setState","t3","t4","t5","t6","t7","t8","t9","filtersString","basePath","setFilterValues","history","setPage","showResults","toggleFilterPageSidebar","_this$state","state","React","Fragment","agendaPath","labels","topics","Component","EventSearchOverviewWithRouter","BrowserRouter","Route","path","eventSearchOverviewContainer","Feedback","default","rootEl","i18n","TimelineItem","item","timelineTeaserRef","useRef","setFormattedDate","useLayoutEffect","updateDate","_timelineTeaserRef$cu","dynamicDateElement","current","newFormattedDate","intervalId","clearInterval","dangerouslySetInnerHTML","__html","html","ref","TimelineDay","allowPolling","_React$useState","_React$useState2","items","setItems","_React$useState3","_React$useState4","newItems","setNewItems","loadDay","checkForUpdates","interval","showUpdates","updates","buttonText","renderShowUpdates","formatTimelineDate","Timeline","endOfToday","getTime","endOfYesterday","setDays","prevState","lastDay","lastDayPlusOne","subDays","_toConsumableArray","Link","text","theme","cn","SectionTitle","LocalNewsDropdown","setLocation","locations","useMemo","sort","a","b","_a$text","localeCompare","LocalNewsBlock","settings","localNewsBlockRef","setLoading","_useState3","_useState4","_useState5","_useState6","teasers","setTeasers","moreNewsLink","updateLocalNews","_yield$LatestNewsServ","dropdownPrefix","newLocation","teaser","topic","localNewsSettings","dropdownText","localNewsContainer","ElectoralHeader","_topic$subOptions2","_topic$subOptions3","currentUrl","_topic$subOptions","subOption","setTopic","styles","control","baseStyles","isFocused","borderRadius","padding","borderColor","boxShadow","menuList","base","color","menu","zIndex","indicatorSeparator","textWrap","Select","makeAChoice","isSearchable","selectedOption","selectedTopic","backgroundColor","whiteSpace","overflow","maxMenuHeight","makeAChoice2","defaultValue","electoralSelect","_electoralSelect$data","electoralSelectTopics","electoralSelectCopy","electoralSelectCurrent","ElectoralList","wrapper","active","toggleElectoralPartiesLang","lang","electoralListLists","langPartiesAll","selectedLangParties","el","parentElement","currentLang","initLangToggle","langToggle","electoralPartiesNL","electoralPartiesFr","langToggleBtns","langToggleBtn","firstLangToggleBtn","addEvent","party","bind","electoralListWrapper","electoralListParties","electoralListParty","sideloadByUrl","status","sideloadTeasers","ajaxTeaser","ajax","sideload","teaserHtml","outerHTML","_window$frontDomain","frontDomain","CURRENT_SITE","pageInfo","site","adunit","_drupalSettings$pageI","platform","targeting","article_id","currentPath","article_taglist","_drupalSettings$pageI2","tags","page_type","_drupalSettings$pageI3","adPageType","author","_drupalSettings$pageI4","endYear","generateYearsFrom","now","parsedDate","diffInMinutes","differenceInMinutes","hours","locale","nlBE","minutes","fullDate","isToday","isYesterday","formattedDate","RatingStar","TeaserRating","rating","Number","alt"],"mappings":"sEAAA,WACE,IAAMA,EAAmCC,SAASC,cAChD,8BAGI,OAANF,QAAM,IAANA,KAAQG,iBAAiB,UAAU,SAACC,GAClCC,OAAOC,SAASC,KAAOH,EAAMI,OAAOC,KACtC,GACD,CARD,E,oBCCgDC,MAAMC,KAClDV,SAASW,iBAAiB,+BAGRC,SAAQ,SAACC,GAC3B,IAAMC,EACJD,EAAmBZ,cACjB,qCAGEc,EACJF,EAAmBZ,cACjB,mCAGAa,GAA4BC,GAC9BD,EAAyBZ,iBAAiB,SAAS,SAACC,GAClDA,EAAMa,iBAENH,EAAmBI,UAAUC,OAAO,YACtC,GAEJ,G,oBCvBF,IAAMC,EAAW,WACf,IAAMC,EAAapB,SAASC,cAAc,yBACpCoB,EAAiBrB,SAASC,cAAc,+BAEzCoB,GAAmBD,IAIxBA,EAAWH,UAAUC,OACnB,gBACAG,EAAeC,YAAcD,EAAeE,aAG9CH,EAAWH,UAAUC,OACnB,aACAM,KAAKC,KAAKJ,EAAeK,YACvBL,EAAeC,YAAcD,EAAeE,aAElD,EAEMI,EAAW,WACf,IAAMP,EAAapB,SAASC,cAAc,yBACpCoB,EAAiBrB,SAASC,cAAc,+BAEzCoB,GAAmBD,IAIxBA,EAAWH,UAAUC,OAAO,YAAaG,EAAeK,WAAa,GACrEN,EAAWH,UAAUC,OACnB,aACAM,KAAKC,KAAKJ,EAAeK,YACvBL,EAAeC,YAAcD,EAAeE,aAElD,EAEAnB,OAAOF,iBAAiB,SAAUiB,GAClCA,IAEA,IAAME,EAAiBrB,SAASC,cAAc,+BAE1CoB,IACFA,EAAenB,iBAAiB,SAAUyB,GAC1CA,KAGF,IAAMD,EAAa1B,SAASC,cAAc,gBACpC2B,EAAc5B,SAASC,cAAc,iBAEvCyB,GAAcE,IAChBF,EAAWxB,iBAAiB,SAAS,WAC/BmB,GACFA,EAAeQ,SAAS,CACtBC,MAAO,GACPC,SAAU,UAGhB,IAEAH,EAAY1B,iBAAiB,SAAS,WAChCmB,GACFA,EAAeQ,SAAS,CACtBC,KAAM,GACNC,SAAU,UAGhB,I,sXClEIC,EAAkBC,aAAA,SAAAD,IAAAE,YAAA,KAAAF,GAAA,KACtBG,OAAM,eAAAC,EAAAC,YAAAC,cAAAC,MAAG,SAAAC,EACPC,EACAC,EACAC,EAKAC,GAAY,IAAAC,EAAAC,EAAAC,EAAA,OAAAT,cAAAU,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAuBX,OArBKN,EAAS,IAAIO,gBAEfX,GACFI,EAAOQ,OAAO,IAAKZ,GAGjBE,IAAS,MAAOA,GAAQ,MAAOA,GAAQ,MAAOA,IAChDE,EAAOQ,OACL,OAAO,GAADC,OACH,MAAOX,EAAOA,EAAKY,EAAI,GAAE,KAAAD,OAAI,MAAOX,EAAOA,EAAKa,EAAI,GAAE,KAAAF,OACvD,MAAOX,EAAOA,EAAKc,EAAI,KAK7Bf,EAAO9B,SAAQ,SAAC8C,GAAK,OACnBb,EAAOQ,OAAO,WAAYM,mBAAmBD,GAAO,IAGlDd,GACFC,EAAOQ,OAAO,OAAQT,EAAKgB,YAC5BX,EAAAE,KAAA,EAEsBU,MAAM,gBAADP,OACVQ,mBAAmBjB,EAAOe,aAC1C,CACEG,OAAQ,MACRC,YAAa,gBAEf,KAAD,EANa,OAARlB,EAAQG,EAAAgB,KAAAhB,EAAAE,KAAA,GAQKL,EAASC,OAAO,KAAD,GAAxB,OAAJA,EAAIE,EAAAgB,KAAAhB,EAAAiB,OAAA,SAEHnB,GAAI,yBAAAE,EAAAkB,OAAA,GAAA3B,EAAA,KACZ,gBAAA4B,EAAAC,EAAAC,EAAAC,GAAA,OAAAnC,EAAAoC,MAAA,KAAAC,UAAA,EA5CK,EA4CL,IAGGC,EAAgB,IAAI1C,E,yBC5CpB2C,EAAiB1C,aAAA,SAAA0C,IAAA,IAAAC,EAAA,KAAA1C,YAAA,KAAAyC,GAAA,KACrBE,QAAe,KAAK,KAEpBC,YAAc,kBACZ,IAAIC,SAAQ,SAACC,EAASC,GACpB,IAAMC,EAAQ,IAAIC,KACZC,EAAsB,GAAA9B,OAAM4B,EAAMG,eAAa/B,OACnD4B,EAAMI,WAAa,GAAChC,OACnB4B,EAAMK,WAASjC,OAAG4B,EAAMM,YAE3BC,IAAO,GAADnC,OAAIoC,IAAkB,KAAApC,OAAI8B,GAA0B,CACxDO,WAAY,EACZC,QAAS,WACPhB,EAAKC,QAAU,IAAIzE,OAAOyF,QAC1BzF,OAAOyE,QAAUD,EAAKC,QACtBG,EAAQJ,EAAKC,QACf,EACAiB,MAAO,SAACC,GACNC,QAAQC,IAAIF,EACd,GAEJ,GAAG,EAAD,KAEJG,YAAc,kBACZ,IAAInB,QAAO,eAAA3C,EAAAC,YAAAC,cAAAC,MAAC,SAAAC,EAAOwC,EAASC,GAAM,IAAAkB,EAAAC,EAAAC,EAAA,OAAA/D,cAAAU,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAE+B,GADzDgD,EAAsB,IACxBC,EAAuD,KAAInD,EAAAC,KAAA,EAGxD0B,EAAKC,QAAQ,CAAD5B,EAAAE,KAAA,eAAAF,EAAAE,KAAA,EACTyB,EAAKE,cAAc,KAAD,MAGtBF,EAAKC,QAAQ,CAAD5B,EAAAE,KAAA,gBAAAF,EAAAE,KAAA,EACsByB,EAAKC,QAAQyB,cAAc,KAAD,EAE7C,QAFbD,EAAuBpD,EAAAgB,OAGzBjE,SAASE,iBAAiB,uBAAuB,SAACqG,GAC5CA,EAAEC,QAA8B,UAApBD,EAAEC,OAAOC,SACvBJ,EAAWE,EAAEC,OAAOE,IACpBC,aAAaP,GACbpB,EAAQqB,GAEZ,IAEID,IACFO,aAAaP,GACbA,EAAiB,MAGnBA,EAAiBQ,YAAW,WAC1B3B,GACF,GAAGkB,IAEHnB,EAAQqB,GACT,QAAApD,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA4D,GAAA5D,EAAA,SAGH+C,QAAQC,IAAI,mBAAahD,EAAA4D,IACzB5B,EAAMhC,EAAA4D,IAAI,yBAAA5D,EAAAkB,OAAA,GAAA3B,EAAA,mBAEb,gBAAA4B,EAAAC,GAAA,OAAAjC,EAAAoC,MAAA,KAAAC,UAAE,CAAF,CArCU,GAqCR,EAAD,KAEJqC,KAAIzE,YAAAC,cAAAC,MAAG,SAAAwE,IAAA,OAAAzE,cAAAU,MAAA,SAAAgE,GAAA,cAAAA,EAAA9D,KAAA8D,EAAA7D,MAAA,UACAyB,EAAKC,QAAQ,CAADmC,EAAA7D,KAAA,eAAA6D,EAAA7D,KAAA,EACTyB,EAAKE,cAAc,KAAD,EAAAkC,EAAA7D,KAAA,sBAAA6D,EAAA7D,KAAA,EAElByB,EAAKC,QAAQoC,QAAQ,KAAD,EA8BzB,MA3BW,CACZ,CACEC,KAAM,qBAER,CACEA,KAAM,aAER,CACEA,KAAM,oBAER,CACEA,KAAM,0BAIJC,KAAI,SAAAC,GAAe,IAAZF,EAAIE,EAAJF,KAWX,OAVkCzG,MAAMC,KACtCV,SAASW,iBAAiB,WAAD2C,OAAY4D,KAG/BtG,SAAQ,SAACyG,EAAQC,GACvB,IAAMC,EAAkB,0BAATL,EAAmC,IAAM,IACxDG,EAAOG,aAAa,KAAK,MAADlE,OAAQ4D,EAAI,KAAA5D,OAAIiE,GAAMjE,OAAGgE,EAAI,IACrD1C,EAAKC,QAAQ4C,WAAWP,EAAK,GAAD5D,OAAKiE,GAAMjE,OAAGgE,EAAI,GAChD,IAEO,IACT,IAAGN,EAAA7D,KAAA,GAEGyB,EAAKC,QAAQiC,KAAKY,KAAgB,KAAD,oBAAAV,EAAA7C,OAAA,GAAA4C,EAAA,IACxC,IAGGY,EAAY,IAAIhD,E,gBCvGTiD,EAAiB3F,aAAA,SAAA2F,IAAA1F,YAAA,KAAA0F,EAAA,IAAjBA,EACJC,cAAaxF,YAAAC,cAAAC,MAAG,SAAAC,IAAA,IAAAnC,EAAAqG,EAAA5D,EAAAgF,EAAArD,UAAA,OAAAnC,cAAAU,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAKpB,OAL2B9C,EAAQyH,EAAAC,OAAA,QAAAC,IAAAF,EAAA,GAAAA,EAAA,GAAG,GACnCpB,EAAG,GAAApD,OAAM2E,cAAgB,oBAEzB5H,IACFqG,GAAG,IAAApD,OAAQjD,IACZ4C,EAAAE,KAAA,EAEsBU,MAAM6C,EAAK,CAChC3C,OAAQ,MACRC,YAAa,gBACZ,KAAD,EAHY,OAARlB,EAAQG,EAAAgB,KAAAhB,EAAAiB,OAAA,SAKPpB,EAASC,QAAM,wBAAAE,EAAAkB,OAAA,GAAA3B,EAAA,KAbboF,EAgBJM,mBAAkB,eAAAC,EAAA9F,YAAAC,cAAAC,MAAG,SAAAwE,EAAOqB,GAAiB,IAAAC,EAAAvF,EAAA,OAAAR,cAAAU,MAAA,SAAAgE,GAAA,cAAAA,EAAA9D,KAAA8D,EAAA7D,MAAA,OACG,OAA/CkF,EAAM5B,YAAO,IAAItB,KAAKiD,GAAY,cAAapB,EAAA7D,KAAA,EAE9BU,MAAM,GAADP,OAAI2E,cAAgB,oBAAA3E,OAAmB+E,GAAO,CACxEtE,OAAQ,MACRC,YAAa,gBACZ,KAAD,EAHY,OAARlB,EAAQkE,EAAA/C,KAAA+C,EAAA9C,OAAA,SAKPpB,EAASC,QAAM,wBAAAiE,EAAA7C,OAAA,GAAA4C,EAAA,KACvB,gBAAA3C,GAAA,OAAA+D,EAAA3D,MAAA,KAAAC,UAAA,EATwB,GCpBpB,IAAM6D,EAAgBrG,aAAA,SAAAqG,IAAApG,YAAA,KAAAoG,EAAA,IAAhBA,EACJC,iBAAmB,yBADfD,EAGJE,aAAe,WACpB,OAAIpI,OAAOqI,gBAAkBrI,OAAOqI,eAAeC,eAC1CtI,OAAOqI,eAAeC,eAGxB,EACT,ECPK,IAAMC,EAAa1G,aAAA,SAAA0G,IAAAzG,YAAA,KAAAyG,EAAA,IAAbA,EACJC,KAAO,WACZnD,IAAO,6CAA6C,WAClD,GAEJ,E,aCPIoD,EACa,kBADbA,EAEU,eAFVA,EAGS,cAHTA,EAIS,cAJTA,EAKO,uBAGPC,EACJ1I,OAAOC,SAASC,OACfF,OAAOC,SAASC,KAAKyI,SAAS,mBAC7B3I,OAAOC,SAASC,KAAKyI,SAAS,+BAC9B3I,OAAOC,SAASC,KAAKyI,SAAS,2BAE5BC,EAAoB/G,aAAA,SAAA+G,IAAA9G,YAAA,KAAA8G,EAAA,IAAAC,EAApBD,IACGlC,KAAO,WACRgC,IAGJ1I,OAAO8I,MAAQ9I,OAAO8I,OAAS,GAC/B9I,OAAO+I,SAAW/I,OAAO+I,UAAY,CAAC,EACtC/I,OAAOgJ,YAAchJ,OAAOgJ,aAAe,GAG3ChJ,OAAOiJ,MAAQjJ,OAAOiJ,OAAS,CAAC,EAChCjJ,OAAOiJ,MAAMC,WAAalJ,OAAOiJ,MAAMC,YAAc,GAErDN,EAAqBO,gBACrBP,EAAqBQ,mBACrBR,EAAqBS,uBACrBT,EAAqBU,yBACvB,EAjBIV,EAmBGO,cAAgB,WACjBT,GACJ1I,OAAO8I,MAAMS,KAAIC,YAAC,CAChBC,WAAYhB,GACTzI,OAAO+I,UAEd,EAzBIH,EA2BGQ,iBAAmB,WACnBpJ,OAAOgJ,YAAYrB,SAAUe,GAElC1I,OAAO8I,MAAMS,KAAK,CAChBE,WAAYhB,EACZiB,QAAS1J,OAAOgJ,aAEpB,EAlCIJ,EAoCGe,iBAAmB,SAACC,EAAeC,GACpCnB,GAEJ1I,OAAO8I,MAAMS,KAAK,CAChBE,WAAYhB,EACZqB,iBAAkBF,EAClBG,qBAAsBF,GAE1B,EA5CIjB,EA8CGoB,gBAAkB,SAACJ,GACpBlB,GAEJ1I,OAAO8I,MAAMS,KAAK,CAChBE,WAAYhB,EACZwB,UAAWL,GAEf,EArDIhB,EAuDGS,qBAAuB,WACxBX,GAGF9I,SAASW,iBAAiB,oBACvBC,SAAQ,SAAC0J,GACZA,EAAIpK,iBAAiB,SAAS,WAC5B8I,EAAqBe,iBACnBlB,EACAyB,EAAIC,QAAQC,SAEhB,GACF,GACF,EApEIxB,EAsEGU,uBAAyB,WAC9B,IAAIZ,EAAJ,CAEA,IAAM2B,EAAWzK,SAASW,iBAAiB,qBACrC+J,EAAY1K,SAASC,cAAc,MAEzCwK,EAAS7J,SAAQ,SAAC+J,GAChB,IAAMC,EAAeD,EAAK1K,cAAc,2BAEnC2K,GAELA,EAAa1K,iBAAiB,SAAS,WACrC8I,EAAqBoB,gBAAyB,OAATM,QAAS,IAATA,OAAS,EAATA,EAAWG,UAClD,GACF,GAbmB,CAcrB,EArFI7B,EAuFG8B,qBAAuB,SAACC,GAAiB,IAADC,EAAAC,EACjC,QAAZD,EAAA5K,OAAOiJ,aAAK,IAAA2B,GAAY,QAAZC,EAAZD,EAAc1B,kBAAU,IAAA2B,GAAxBA,EAA0BtB,KAAKoB,EACjC,ECvGF,IAUMG,EAAoB,CACxBC,WAAY,EACZC,OAAQ,GASJC,EAAiB,WAAH,OAASC,MAAM,yBAA0B,EAgCvDC,EAA0B,SAACC,GAC/B,GAAIH,IAAkB,CACpB,IAAQI,EAA0BJ,IAA1BI,sBAER,GAAIA,EACF,OAAOC,QAAQD,EAAsBD,GAEzC,CAGA,OAAO,CACT,EAhDEpL,OAAOkL,MAAQlL,OAAOkL,OAAU,WAAO,E,aChB5BK,EAAsB1J,aAAA,SAAA0J,IAAAzJ,YAAA,KAAAyJ,EAAA,IAsIlC1C,EAtIY0C,IACJC,+BAA8B,eAAAxJ,EAAAC,YAAAC,cAAAC,MAAG,SAAAC,EAAOqJ,GAAO,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAA9J,cAAAU,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OA+CnD,OA9CG2I,EAAmBD,EAGrBE,EAIEF,EAJFE,QACAC,EAGEH,EAHFG,iBACAC,EAEEJ,EAFFI,oBACAC,EACEL,EADFK,oBAGEH,IACMI,EAAWJ,EAAXI,GAAIC,EAAOL,EAAPK,GAERD,GAAMC,IACRN,EAAiBO,iBAAkB,IAInCL,IACFF,EAAiBQ,YAAa,GAG5BL,GAAuBC,KACzBJ,EAAmBI,GACFI,YAAa,EAC9BR,EAAiBS,aAAe,qCAEhCT,EAAiBE,iBAAmB,CAClC,CACEQ,OAAQ,qCACRC,SAAUR,EAAoBF,QAAQ,GAAGU,SACzCC,sBACET,EAAoBF,QAAQ,GAAGW,sBACjCC,oBACEV,EAAoBF,QAAQ,GAAGY,oBACjCZ,QAASE,EAAoBF,SAE/B,CACES,OAAQ,oCACRC,SAAUP,EAAoBH,QAAQ,GAAGU,SACzCC,sBACER,EAAoBH,QAAQ,GAAGW,sBACjCC,oBACET,EAAoBH,QAAQ,GAAGY,oBACjCZ,QAASG,EAAoBH,WAGlC9I,EAAAiB,OAAA,SAEM4H,GAAgB,wBAAA7I,EAAAkB,OAAA,GAAA3B,EAAA,KACxB,gBAAA4B,GAAA,OAAAhC,EAAAoC,MAAA,KAAAC,UAAA,EAlDoC,GAD1BkH,EAqDJiB,mCAAkC,eAAAzE,EAAA9F,YAAAC,cAAAC,MAAG,SAAAwE,EAAO8E,GAAO,IAAAC,EAAAK,EAAAC,EAAAS,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAA3K,cAAAU,MAAA,SAAAgE,GAAA,cAAAA,EAAA9D,KAAA8D,EAAA7D,MAAA,OAiDvD,OAhDK2I,EAAmBD,EAEjBM,EAAkBN,EAAlBM,GAAIC,EAAcP,EAAdO,GAAIS,EAAUhB,EAAVgB,MAEZV,GAAMC,IAIJD,EAAGJ,SAAWI,EAAGJ,QAAQhE,OAAS,IAAGiF,EAAAE,YACtBf,EAAGJ,QAAO,GAA1Be,EAAYE,EAAA,IAGXZ,EAAGL,SAAWK,EAAGL,QAAQhE,OAAS,IAAGkF,EAAAC,YACtBd,EAAGL,QAAO,GAA1BgB,EAAYE,EAAA,IAGfnB,EAAiBQ,YAAa,EAE9BR,EAAiBqB,QAAU,CACzB,CACEX,OAAQ,8BACRC,WAAUK,GAAeA,EAAaL,SACtCC,sBAAuBI,EACnBA,EAAaJ,sBACb,EACJC,oBAAqBG,EACjBA,EAAaH,oBACb,EACJZ,QAASI,EAAGJ,SAEd,CACES,OAAQ,2BACRC,WAAUM,GAAeA,EAAaN,SACtCC,sBAAuBK,EACnBA,EAAaL,sBACb,EACJC,oBAAqBI,EACjBA,EAAaJ,oBACb,EACJZ,QAASK,EAAGL,WAKdc,IACFf,EAAiBsB,MAAQ,CACvBrB,QAASc,IAEZ7F,EAAA9C,OAAA,SAEM4H,GAAgB,wBAAA9E,EAAA7C,OAAA,GAAA4C,EAAA,KACxB,gBAAA1C,GAAA,OAAA8D,EAAA3D,MAAA,KAAAC,UAAA,EApDwC,GArD9BkH,EA2GJ0B,sBAAqB,eAAAjG,EAAA/E,YAAAC,cAAAC,MAAG,SAAA+K,EAAOC,GAAO,IAAAzK,EAAA,OAAAR,cAAAU,MAAA,SAAAwK,GAAA,cAAAA,EAAAtK,KAAAsK,EAAArK,MAAA,cAAAqK,EAAAtK,KAAA,EAAAsK,EAAArK,KAAA,EAElBU,MAAM0J,EAAS,CACpCxJ,OAAQ,MACRC,YAAa,gBACZ,KAAD,EAHY,OAARlB,EAAQ0K,EAAAvJ,KAAAuJ,EAAAtJ,OAAA,SAKPpB,EAASC,QAAM,cAAAyK,EAAAtK,KAAA,EAAAsK,EAAA3G,GAAA2G,EAAA,SAAAA,EAAAtJ,OAAA,SAAAsJ,EAAA3G,IAAA,yBAAA2G,EAAArJ,OAAA,GAAAmJ,EAAA,kBAIzB,gBAAAhJ,GAAA,OAAA8C,EAAA5C,MAAA,KAAAC,UAAA,EAX2B,GA3GjBkH,EAwHJ8B,gCAA+B,eAAAC,EAAArL,YAAAC,cAAAC,MAAG,SAAAoL,EAAOJ,GAAO,IAAA1B,EAAA,OAAAvJ,cAAAU,MAAA,SAAA4K,GAAA,cAAAA,EAAA1K,KAAA0K,EAAAzK,MAAA,cAAAyK,EAAAzK,KAAA,EAC/BwI,EAAuB0B,sBAAsBE,GAAS,KAAD,EAA9D,OAAP1B,EAAO+B,EAAA3J,KAAA2J,EAAA1J,OAAA,SACNyH,EAAuBC,+BAA+BC,IAAQ,wBAAA+B,EAAAzJ,OAAA,GAAAwJ,EAAA,KACtE,gBAAApJ,GAAA,OAAAmJ,EAAAlJ,MAAA,KAAAC,UAAA,EAHqC,GAxH3BkH,EA6HJkC,gCAA+B,eAAAC,EAAAzL,YAAAC,cAAAC,MAAG,SAAAwL,EAAOR,GAAO,IAAA1B,EAAA,OAAAvJ,cAAAU,MAAA,SAAAgL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA7K,KAAA,EAC/BwI,EAAuB0B,sBAAsBE,GAAS,KAAD,EAA9D,OAAP1B,EAAOmC,EAAA/J,KAAA+J,EAAA9J,OAAA,SACNyH,EAAuBiB,mCAAmCf,IAAQ,wBAAAmC,EAAA7J,OAAA,GAAA4J,EAAA,KAC1E,gBAAAE,GAAA,OAAAH,EAAAtJ,MAAA,KAAAC,UAAA,EAHqC,GA7H3BkH,EAkIJuC,oBAAmB,eAAAC,EAAA9L,YAAAC,cAAAC,MAAG,SAAA6L,EAAOb,GAAO,IAAA1B,EAAA,OAAAvJ,cAAAU,MAAA,SAAAqL,GAAA,cAAAA,EAAAnL,KAAAmL,EAAAlL,MAAA,cAAAkL,EAAAlL,KAAA,EACnBwI,EAAuB0B,sBAAsBE,GAAS,KAAD,EAA9D,OAAP1B,EAAOwC,EAAApK,KAAAoK,EAAAnK,OAAA,SACN2H,GAAO,wBAAAwC,EAAAlK,OAAA,GAAAiK,EAAA,KACf,gBAAAE,GAAA,OAAAH,EAAA3J,MAAA,KAAAC,UAAA,EAHyB,E,qBClI5B,WACE,IAAM8J,EACJvO,SAASW,iBAAiB,wBAStB6N,EAAgB,WACpB,IAAQC,EAAgBrO,OAAhBqO,YAERF,EAAiB3N,SAAQ,SAAC8N,GARP,IAACC,IAFJ,GAWDF,EAAyBC,EAP5BE,MAAMC,UAAS,kBAAAvL,OAAqBqL,EAAc,SAQ9D,GACF,EAEMhN,EAAW,WACfvB,OAAO0O,sBAAsBN,EAC/B,EAOID,IAJFnO,OAAOF,iBAAiB,SAAUyB,GAClCA,IAMH,CA/BD,E,sBCAA,qD,qBCAA,WACE,IAAMoN,EAAuC/O,SAASC,cACpD,wBAGE8O,GACFA,EAAa7O,iBAAiB,UAAU,SAACC,GACvCA,EAAMa,iBAEN,IAAMgO,EAAsChP,SAASiP,eACnD,SAGED,IACF5O,OAAOC,SAASC,KAAI,iBAAAgD,OAAoB0L,EAAWxO,OAEvD,GAEH,CAlBD,E,uBCAA,WACE,IAAM0O,EAA6BlP,SAASC,cAC1C,kCAEIkP,EAA6BnP,SAASC,cAC1C,kCAEImP,EAAiCpP,SAASC,cAC9C,uCAEIoP,EAAiCrP,SAASC,cAC9C,uCAEIqP,EAAiCtP,SAASC,cAC9C,uCAEIsP,EAAiCvP,SAASC,cAC9C,uCAGEiP,GACF,4DAGEC,GACF,4DAGEC,GACF,4DAGEC,GACF,4DAGEC,GACF,4DAGEC,GACF,2DAEH,CA3CD,E,uBCAA,WACE,IAAMC,EAA+CxP,SAASC,cAC5D,+BAGF,GAAIuP,EAAuB,CACzB,IAAAC,EAAyBD,EAAsBjF,QAAvCmF,EAAKD,EAALC,MAAOC,EAAKF,EAALE,MAEf,+BAAgBC,MAAK,SAAAxN,IACnByN,EADwCzN,EAAlByN,oBACHL,EAAuBE,EAAOC,EACnD,GACF,CACD,CAZD,E,0ECIsClP,MAAMC,KACxCV,SAASW,iBAAiB,wBAGfC,SAAQ,SAACkP,GACpB,IAAMC,EAAWD,EAAYvF,QAAQuF,aAAe,GAEpDA,EAAYE,YAAcC,YAAWF,EACvC,IAEA/G,IAAqBlC,OAGvB,WACE,IACMoJ,EADY,IAAI9M,gBAAgBhD,OAAOC,SAAS8B,QAC9BgO,IAAI,SAE5B,GAAID,EAAO,CACT,IAAME,EAAapQ,SAASiP,eAC1B,cAEEmB,IACFA,EAAW5P,MAAQsD,mBAAmBoM,GAE1C,CAEA,IAAMG,EAAkBrQ,SAASiP,eAC/B,qBAEEoB,IACFA,EAAgBC,SAAU,EAE7B,CAnBD,GAqBA,WACE,IAAMF,EAAapQ,SAASiP,eAC1B,wBAEIsB,EAASvQ,SAASiP,eACtB,2BAGF,GAAImB,GAAcG,EAAQ,CACxB,IAIMC,EAAc,SAACC,GACnB,IAAMC,EAAe1Q,SAASC,cAC5B,mCAGEyQ,aAAwBC,cAC1BD,EAAa9B,MAAMgC,QAAUH,EAAO,QAAU,OAElD,EAEMI,EAAe,SAACtK,GAAc,IAADuK,EACjCvK,EAAEvF,iBACF,IAAM+P,EAAaX,EAAW5P,MACxBkG,EAAyB,QAAtBoK,EAAGP,EAAOS,QAAQ,YAAI,IAAAF,OAAA,EAAnBA,EAAqBG,aAAa,QAE9C,GAAmBF,EAlBNG,MAAM,+BAyBnB,GAFAV,GAAY,GAER9J,EAAK,CACP,IAAMyK,EAAYzK,EAAIqC,SAAS,KAAO,IAAM,IACtCqI,EAAU1K,EAAI2K,MAAM,KAAK,GACzBC,EAAM,GAAAhO,OAAM8N,GAAO9N,OAAG6N,EAAS,UAAA7N,OAASK,mBAC5CoN,IAEF3Q,OAAOC,SAASC,KAAOgR,CACzB,OAbEd,GAAY,EAchB,EAEAD,EAAOrQ,iBAAiB,QAAS2Q,GACjCT,EAAWlQ,iBAAiB,YAAY,SAACqG,GACzB,UAAVA,EAAEgL,KACJV,EAAatK,EAEjB,GACF,CACD,CApDD,G,4CCtCaiL,EAAc,CACzBC,aAAa,EACbC,cAAe,WACbtR,OAAOkL,MAAM,aAAc,KAAM,KACnC,EACAqG,aAAa,EACbC,QACE,2M,OCCSC,EAA0B,SAAHzP,GAAA,IAAM0P,EAAa1P,EAAb0P,cAAa,OACrDC,cAAA,OAAKC,UAAU,gBAAeC,SAC5BC,eAAA,OAAKF,UAAU,yBAAwBC,SAAA,CACrCF,cAAA,OAAKC,UAAU,yBAAwBC,SAAET,EAAYI,UACrDM,eAAA,UACEhL,KAAK,SACL8K,UAAU,mBACVG,QAASL,EAAcG,SAAA,CAEvBF,cAAA,QAAMC,UAAU,YAChBD,cAAA,QAAMC,UAAU,YAAWC,SAAC,6BAG5B,ECTKG,EAAmC,SAAHhQ,GAAsB,IAAhB6P,EAAQ7P,EAAR6P,SACjDI,EAA8BC,mBAASd,EAAYC,aAAYc,EAAArF,YAAAmF,EAAA,GAAxDG,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAoB1B,OAlBAG,qBAAU,WACHlB,EAAYG,aAIjBvR,OAAOkL,MACL,mBACA,CACE,UACA,WACEmH,EAAWlH,YAAwBL,IAAkBE,QACvD,GACA,GAEF,KAEJ,GAAG,IAEIoH,EACLP,EAEAF,cAACF,EAAY,CAACC,cAAeN,EAAYE,eAE7C,E,iBC/BaiB,EAAmB,SAAHvQ,GAAmB,IAAbwQ,EAAKxQ,EAALwQ,MAOjC,OANAF,qBAAU,WACJtS,OAAOyS,SACTzS,OAAOyS,QAAQC,OAAOC,SAE1B,GAAG,IAGDhB,cAAA,OAAAE,SACGe,IAAMJ,EAAO,CACZK,QAAO,SAACC,GACN,GAAqB,WAAjBA,EAAQhM,KAAmB,CAC7B,IAAMiM,EAASnT,SAASoT,cAAc,UACtCD,EAAOE,IAAMH,EAAQI,QAAQD,IAC7BF,EAAOI,OAAQ,EACfvT,SAASwT,KAAKC,YAAYN,EAC5B,CACF,KAIR,ECtBmC1S,MAAMC,KACrCV,SAASW,iBAAiB,sBAGrBC,SAAQ,SAACgS,GACd,IAAMc,EAAY5P,mBAAmB8O,EAAMrI,QAAQoJ,WAAa,IACnDC,IAASC,WAAWjB,GAE5BkB,OACH/B,cAACK,EAAqB,CAAAH,SACpBF,cAACY,EAAK,CAACC,MAAOc,MAGpB,I,sBChBF,WACE,IAAMK,EAAQ/T,SAASC,cAAc,iBAErC,GAAK8T,EAAL,CAIA,IAAMC,EAAOJ,IAASC,WAAWE,GAE7BC,GACFA,EAAKF,OAAO/B,cAACkC,UAAO,IALtB,CAOD,CAZD,GCDA,IAAMC,EACJlU,SAASC,cAAc,mBAEzB,GAAIiU,EAAmB,CACrB,IAAMC,EAAiCD,EAAkBjU,cACvD,wBAGF,GAAIiU,GAAqBC,EAErBD,EAAkBjU,cAAc,kBAGhCkU,EAAWjU,iBAAiB,SAAS,WACnCyI,IAAcC,OACdsL,EAAkBjT,UAAUmT,IAAI,YAClC,GAGN,C,2DCfaC,EAAUpS,aAMrB,SAAAoS,EAAYC,GAAyB,IAAD1P,EAAA,KAAA1C,YAAA,KAAAmS,GAAA,KAL5BC,UAAgC,KAAK,KACrCvJ,OAAc,KAAK,KACnBwJ,KAAmB,WAAO,EAAE,KAC5BC,MAAoB,WAAO,EAAE,KAOrC1N,KAAO,WACLrB,IAAO,8CAA+C,CACpDE,WAAY,EACZC,QAAShB,EAAK6P,YACd3O,MAAO,SAACC,GACNC,QAAQC,IAAIF,EACd,GAEJ,EAAE,KAEF2O,WAAa,kBACX,IAAI3P,QAAO,eAAA3C,EAAAC,YAAAC,cAAAC,MAAS,SAAAC,EAAOwC,EAASC,GAAM,IAAAyB,EAAA,OAAApE,cAAAU,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEnBwE,IAAUzB,cAAa,OAApCQ,EAAGzD,EAAAgB,KAETe,EAAQ0B,GAAKzD,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAA4D,GAAA5D,EAAA,SAEb+B,EAAQ,IAAI,yBAAA/B,EAAAkB,OAAA,GAAA3B,EAAA,kBAEf,gBAAA4B,EAAAC,GAAA,OAAAjC,EAAAoC,MAAA,KAAAC,UAAE,CAAF,CARU,GAQR,EAAD,KAEJgQ,YAAWpS,YAAAC,cAAAC,MAAG,SAAAwE,IAAA,IAAA4N,EAAAnJ,EAAAoJ,EAAAC,EAAAC,EAAA,OAAAxS,cAAAU,MAAA,SAAAgE,GAAA,cAAAA,EAAA9D,KAAA8D,EAAA7D,MAAA,WACRyB,EAAK0P,WAAoC,QAAvBK,EAAC/P,EAAK0P,UAAU/J,eAAO,IAAAoK,GAAtBA,EAAwBI,iBAAgB,CAAA/N,EAAA7D,KAAA,SAa5C,OAZjByB,EAAK0P,UAAU/J,QAAQwK,iBAAmB,OAElCvJ,EAAO5G,EAAK0P,UAAZ9I,GACAoJ,EAAWhQ,EAAK0P,UAAU/J,QAA1BqK,OAAM5N,EAAAH,GAQAmO,IAAOC,WAAWC,WAAUlO,EAAAmO,GAC/BP,EAAM5N,EAAA7D,KAAA,EACCyB,EAAK8P,aAAY,OAAA1N,EAAAoO,GAAApO,EAAA/C,KAR7B4Q,EAAuB,CAC3BQ,UAAU,EACVC,SAAU,MACVC,iBAAkB,KAClBC,uBAAuB,EACvBC,YAAY,EACZC,WAAU1O,EAAAH,GACV8O,QAAO3O,EAAAmO,GACPS,SAAQ5O,EAAAoO,GACRS,mBAAmB,GAGff,EAAoC,CACxCtJ,KACAsK,YAAY,EACZjB,WAGFjQ,EAAKmG,OAAS,IAAK3K,OAAe2V,IAAIjB,GACtC9L,IAAqB8B,qBAAqBlG,EAAKmG,QAAQ,QAGzDnG,EAAK2P,KAAO,WAAO,IAADyB,EACL,QAAXA,EAAApR,EAAKmG,cAAM,IAAAiL,GAAXA,EAAazB,MACf,EAEA3P,EAAK4P,MAAQ,WAAO,IAADyB,EACN,QAAXA,EAAArR,EAAKmG,cAAM,IAAAkL,GAAXA,EAAazB,OACf,EAAE,yBAAAxN,EAAA7C,OAAA,GAAA4C,EAAA,KA5DFmP,KAAK5B,UAAYA,EACjB4B,KAAKpP,MACP,ICbIqP,EAAiB,WACrB,IAAMC,EACJpW,SAASW,iBAAiB,2BAE5BF,MAAMC,KAAK0V,GAAsBxV,QAAO,eAAAwB,EAAAC,YAAAC,cAAAC,MAAC,SAAAC,EAAO6T,GAAmB,OAAA/T,cAAAU,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACjE,IAAIkR,EAAWgC,GAAqB,wBAAApT,EAAAkB,OAAA,GAAA3B,EAAA,KACrC,gBAAA4B,GAAA,OAAAhC,EAAAoC,MAAA,KAAAC,UAAE,CAAF,CAFuC,GAG1C,GAkCA,WACE,IAAM6R,EAAQtW,SAASC,cAAc,gBAC/BsW,EAAgBvW,SAASW,iBAAiB,qBAE5C2V,GApCO,WACX,IAAME,EAAgBpW,OAAOkL,MAAM,iBAkBA,MAAlB,OAAbkL,QAAa,IAAbA,OAAa,EAAbA,EAAeC,aACjBN,KAEAA,IAEA/V,OAAOkL,MACL,mBACA,CAAC,WAvBwB,SAAvBoL,IACJ,IAAAC,EAAuCvW,OAAOkL,MAAM,iBAA5CsL,EAAaD,EAAbC,cAAeH,EAAWE,EAAXF,YAEnBG,GAAiBH,EACnBN,KAEAA,IAEA/V,OAAOkL,MACL,mBACA,CAAC,UAAWoL,GAAsB,GAClC,MAGN,GASuC,GACnC,MAGN,CAOI5P,GAGEyP,GACFA,EAAc3V,SAAQ,SAACiW,GAErBA,EAAarP,aAAa,yBAA0B,iBACtD,GAEH,CAdD,G,QCzCA,WACE,IAAMsP,EAA6BrW,MAAMC,KACvCV,SAASW,iBAAiB,mCAa5BmW,EAAM3P,KAAI,SAAC4P,GACT,IAAM7P,GACwB,IAA5B6P,EAAKzW,KAAK0W,QAAQ,KACdD,EAAKzW,KAAK2W,UAAUF,EAAKzW,KAAK0W,QAAQ,KAAO,GAC7C,SAEN,OAAI9P,EACM6P,EAAKG,QAjBS,SAAChQ,GAAY,OAAK,SAAC/G,GAG3C,OAFAA,EAAMa,iBAECZ,OAAO+W,KAAK,GAAD7T,OACb8T,IAAQ,gBAAA9T,OAAe4D,GAC1B,QACA,uBAEJ,CAAE,CASyBmQ,CAAkBnQ,GAGpC,IACT,IAWwCzG,MAAMC,KAC5CV,SAASW,iBAAiB,iBAGdC,SAAQ,SAAC0W,GACrBA,EAAMpX,iBAAiB,SAAS,WAdhB,IAACgH,EAAeqQ,EAAfrQ,EAeLoQ,EAAM/M,QAAQrD,KAfMqQ,EAeAD,EAAM/M,QAAQgN,OAAS,QAdvDnX,OAAOoX,QACPpX,OAAO+W,KAAK,GAAD7T,OACN8T,IAAQ,kBAAA9T,OAAiBiU,GAAKjU,OAAG4D,EAAI,IAAA5D,OAAO4D,GAASA,GACxD,QACA,uBAWF,GACF,IAEA,IAAMuQ,EAAsCzX,SAASiP,eACnD,aAGF,GAAIwI,EAAW,CAQbrX,OAAOF,iBAAiB,WAPD,SAACC,GACjBuX,MAAMvX,EAAMwX,QACfF,EAAUG,OAASzX,EAAMwX,KACzBF,EAAU7I,MAAMgJ,OAAM,GAAAtU,OAAMnD,EAAMwX,KAAI,MAE1C,IAEmD,GACnDvX,OAAOyX,aAAY,WAAO,IAADC,EACvB,GAEgB,KADS,QAAvBA,EAAAL,EAAUM,qBAAa,IAAAD,OAAA,EAAvBA,EAAyB9X,SAASgY,qBAAqB,QACpDjQ,QACH,CAAC,IAADkQ,EACMC,EACmB,QADTD,EACdR,EAAUM,qBAAa,IAAAE,OAAA,EAAvBA,EAAyBjY,SAASgY,qBAAqB,QAAQ,GAE7DE,GACEA,EAAWC,eAAiBC,SAASX,EAAUG,SACjDxX,OAAOiY,OAAOC,YAAYJ,EAAWC,aAAc,IAGzD,CACF,GAAG,IACL,CACD,CA5ED,GCEInY,SAASW,iBAAoC,kBAErCC,SAAQ,SAACmW,GACjBA,EAAK7W,iBAAiB,SAAS,SAACqG,GAC9BA,EAAEvF,iBAEF,IAAQuX,EAASxB,EAAKxM,QAAdgO,KAERC,UAAUC,UAAUC,UAAUtY,OAAOC,SAASC,MAAMsP,MAAK,WACvDmE,IAAMnO,QAAQ2S,EAAgB,CAC5BI,SAAU,IACV/J,MAAO,CACLgK,SAAU,UAEZC,UAAW,CACTC,KAAM,SACN,YAAa,WAGnB,GACF,GACF,I,2BCvBF,WACE,IAAIC,EAEEC,EAA6BhZ,SAASC,cAAc,iBACpDgZ,EACJjZ,SAASC,cAAc,oBACnBiZ,EAAqClZ,SAASC,cAClD,uBAEIkZ,EAA0CnZ,SAASC,cACvD,wBAGF,GAAI+Y,GAAUC,GAAaC,GAAeC,EAAkB,CAa1DF,EAAU/Y,iBAAiB,SAZL,WACpB+Y,EAAUzR,aAAa,gBAAiB,QACxC0R,EAAYjY,UAAUmT,IAAI,WAC1BgF,YAAkBF,EACpB,IASAC,EAAiBjZ,iBAAiB,SAPX,WACrB+Y,EAAUzR,aAAa,gBAAiB,SACxC0R,EAAYjY,UAAUoY,OAAO,WAC7BC,YAAiBJ,EACnB,GAIF,CAiBIF,GACF5Y,OAAOF,iBAAiB,UAhBT,WACf,GAAI8Y,EAAQ,CACV,IAAMO,EACJnZ,OAAOqO,aAAezO,SAASwZ,gBAAgBD,UAG/CP,EAAOpK,MAAM6K,IADXF,EAAYR,GAAiBQ,EAAY,IACD,EAAvBP,EAAOU,aAAoB,KAE3B,IAGrBX,EAAgBQ,CAClB,CACF,GAKD,CAhDD,GCCE5R,IAAUb,O,oCCCZ,WACE,IAAM6S,EAA8BlZ,MAAMC,KACxCV,SAASW,iBAAiB,mBA4D5BgZ,EAAU/Y,SAAQ,SAACgZ,GAAO,OAzDN,SAACA,GACnB,IAAQC,EAAaD,EAAQrP,QAArBsP,SAEFC,EAAQ,IAAIC,IAASH,EAAS,CAClCI,YAAY,EACZC,SAAS,EACTC,cAAc,EACdC,iBAAiB,EACjBN,SAAUnO,QAAQmO,GAClBO,YAAY,EACZC,UAAW,OACXC,YAAY,IAGRC,EAAS,WACoB9Z,MAAMC,KACrCkZ,EAAQjZ,iBAAiB,QAGtBC,SAAQ,SAAC4Z,GACZ,IAAMC,EACJD,EAAIxJ,QAAQ,mBAEVyJ,IACFA,EAAe7L,MAAM8L,MAAK,GAAApX,OAAMkX,EAAIG,wBAAwBD,MAAK,MAErE,IAEAZ,EAAMc,cACNd,EAAMe,QACR,EAEAza,OAAO0a,OAAS,WACdP,GACF,EAEAna,OAAO2a,SAAW,WAChBR,GACF,EAEAT,EAAMkB,GAAG,UAAU,WACjBT,GACF,IAEA,IAAMU,EAAK,IAAIC,sBAAqB,SAACC,GACnCA,EAAQva,SAAQ,SAACwa,IACc,IAAzBA,EAAMC,iBACRd,IAEAU,EAAGK,UAAU1B,GAEjB,GACF,IAEAqB,EAAGM,QAAQ3B,EACb,CAE+B4B,CAAY5B,EAAQ,GACpD,CA/DD,G,iECIa6B,EAA0B,SAAHrZ,GAAA,IAAM4H,EAAI5H,EAAJ4H,KAAI,OAC5C+H,cAAA,YAAUC,UAAU,gBAAeC,SACjCF,cAAC2J,IAAK,CAAC1R,KAAMA,EAAM9C,KAAK,SAAQ+K,SAC7B,SAAA9J,GAAA,IAAGwT,EAAKxT,EAALwT,MAAK,OACPzJ,eAAA,SAAO0J,QAASD,EAAM3R,KAAKiI,SAAA,CACzBF,cAAA,QAAAnI,YAAA,CACE4B,GAAImQ,EAAM3R,KACVgI,UAAU,uBACV6J,YAAY,4BACZC,aAAa,MACb5U,KAAK,SACDyU,IAEN5J,cAAA,UAAQ7K,KAAK,SAAS8K,UAAU,wBAAuBC,SACrDF,cAAA,OAAKgK,QAAQ,YAAW9J,SACtBF,cAAA,OAAKiK,UAAU,uBAGb,GAhB0BhS,IAmB7B,ECjBAiS,EAA+B,SAAH7Z,GAAA,IAAM4H,EAAI5H,EAAJ4H,KAAMkS,EAAM9Z,EAAN8Z,OAAM,OACzDnK,cAAC2J,IAAK,CAAC1R,KAAMA,EAAMxJ,MAAO0b,EAAO3K,IAAKrK,KAAK,QAAO+K,SAC/C,SAAA9J,GAAgB,IAAbwT,EAAKxT,EAALwT,MACF,OACE5J,cAAA,OAAKC,UAAU,kBAAiBC,SAC9BC,eAAA,SACEF,UAAU,6BACV4J,QAAO,GAAAtY,OAAKqY,EAAM3R,KAAI,KAAA1G,OAAIqY,EAAMnb,OAAQyR,SAAA,CAExCF,cAAA,QAAAnI,YAAA,CACE4B,GAAE,GAAAlI,OAAKqY,EAAM3R,KAAI,KAAA1G,OAAIqY,EAAMnb,OAC3BwR,UAAU,yBACV9K,KAAK,SACDyU,IAEN5J,cAAA,QAAMC,UAAU,yBAAwBC,SAAEiK,EAAOxM,YAIzD,GACM,ECrBJyM,EAXgB,WAIpB,IAHA,IAAMC,GAAc,IAAIjX,MAAOE,cACzBgX,EAAS,GAEN/U,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1B+U,EAAO1S,KAAKyS,EAAc9U,GAG5B,OAAO+U,CACT,CAEcC,GAERC,EAA6C,CACjD,CACEC,MAAO,UACPhc,MAAO,KAET,CACEgc,MAAO,WACPhc,MAAO,KAET,CACEgc,MAAO,QACPhc,MAAO,KAET,CACEgc,MAAO,QACPhc,MAAO,KAET,CACEgc,MAAO,MACPhc,MAAO,KAET,CACEgc,MAAO,OACPhc,MAAO,KAET,CACEgc,MAAO,OACPhc,MAAO,KAET,CACEgc,MAAO,WACPhc,MAAO,KAET,CACEgc,MAAO,YACPhc,MAAO,KAET,CACEgc,MAAO,UACPhc,MAAO,MAET,CACEgc,MAAO,WACPhc,MAAO,MAET,CACEgc,MAAO,WACPhc,MAAO,OAILic,EAAOhc,MAAMC,KAAK,IAAID,MAAM,KAAK,SAACic,EAAKC,GAAK,OAAKA,EAAQ,CAAC,ICpDnDC,EAAwB,SAAHxa,GAAA,IAAMya,EAAMza,EAANya,OAAQL,EAAKpa,EAALoa,MAAO/L,EAAIrO,EAAJqO,KAAI,OACzDyB,eAAA,OAAKF,UAAS,oBAAA1O,OAAsBmN,EAAO,cAAgB,IAAKwB,SAAA,CAC9DC,eAAA,OAAKF,UAAU,0BAAyBC,SAAA,CACtCF,cAAA,SAAOC,UAAU,2BAA0BC,SAAEuK,IAC7CzK,cAAC2J,IAAK,CAAC1R,KAAK,OAAO8S,UAAU,SAAQ7K,SAClC,SAAA9J,GAAgB,IAAbwT,EAAKxT,EAALwT,MAOF,OANIkB,EAAOE,aAAsC,WAAvBF,EAAOE,aAG/BpB,EAAMqB,WAIN9K,eAAA,SAAAtI,wBAAA,CAAQoI,UAAU,6BAAgC2J,GAAK,IAAA1J,SAAA,CACrDF,cAAA,UAAQ,aAAW,kBAClBoK,EAAMhV,KAAI,SAAC8V,GAAI,OACdlL,cAAA,UAAmBvR,MAAOyc,EAAKhL,SAC5BgL,GADUA,EAEJ,OAIjB,OAGJlL,cAAA,OAAKC,UAAU,2BAA0BC,SACvCC,eAAA,SAAOF,UAAU,2BAA0BC,SAAA,CAAC,eAE1CF,cAAC2J,IAAK,CAAC1R,KAAK,QAAQ8S,UAAU,SAAQ7K,SACnC,SAAA7K,GAAgB,IAAbuU,EAAKvU,EAALuU,MAOF,OANIkB,EAAOE,aAAsC,WAAvBF,EAAOE,aAG/BpB,EAAMqB,WAIN9K,eAAA,SAAAtI,wBAAA,CAAQoI,UAAU,6BAAgC2J,GAAK,IAAA1J,SAAA,CACrDF,cAAA,UAAQ,aAAW,mBAClBwK,EAAOpV,KAAI,SAAC+V,GAAK,OAChBnL,cAAA,UAA0BvR,MAAO0c,EAAM1c,MAAMyR,SAC1CiL,EAAMV,OADIU,EAAMV,MAEV,OAIjB,SAINzK,cAAA,OAAKC,UAAU,yBAAwBC,SACrCC,eAAA,SAAOF,UAAU,2BAA0BC,SAAA,CAAC,SAE1CF,cAAC2J,IAAK,CAAC1R,KAAK,MAAM8S,UAAU,SAAQ7K,SACjC,SAAAvE,GAAgB,IAAbiO,EAAKjO,EAALiO,MAOF,OANIkB,EAAOE,aAAsC,WAAvBF,EAAOE,aAG/BpB,EAAMqB,WAIN9K,eAAA,SAAAtI,wBAAA,CAAQoI,UAAU,6BAAgC2J,GAAK,IAAA1J,SAAA,CACrDF,cAAA,UAAQ,aAAW,iBAClB0K,EAAKtV,KAAI,SAACkB,GAAG,OACZ0J,cAAA,UAAkBvR,MAAO6H,EAAI4J,SAC1B5J,GADUA,EAEJ,OAIjB,WAIF,ECjFF8U,EAAc,SAAH/a,GAUV,IATLya,EAAMza,EAANya,OACAL,EAAKpa,EAALoa,MACAxS,EAAI5H,EAAJ4H,KACA6K,EAAOzS,EAAPyS,QACAuI,EAAUhb,EAAVgb,WACAC,EAAejb,EAAfib,gBACAC,EAAkBlb,EAAlBkb,mBACAC,EAAkBnb,EAAlBmb,mBACAC,EAAWpb,EAAXob,YAEAnL,EAAgCC,oBAAS,GAAMC,EAAArF,YAAAmF,EAAA,GAAxCoL,EAAQlL,EAAA,GAAEmL,EAAWnL,EAAA,GAEtBoL,EAAiB9I,EAAQ9M,OACzB6V,EAAmBH,EACrB5I,EACAA,EAAQgJ,MAAM,EAAGR,GAEfS,EACK,gBAAT9T,GAAiD,WAAvB6S,EAAOE,YAEnC,OACE7K,eAAA,YACEF,UAAS,eAAA1O,OAAiBka,EAAc,kBAAoB,IAAKvL,SAAA,CAEjEF,cAAA,MAAIC,UAAU,sBAAqBC,SAAEuK,IACrCzK,cAAA,OAAKC,UAAU,wBAAuBC,SACnC2L,EAAiBzW,KAAI,SAAC+U,GAAM,OAC3BnK,cAACkK,EAAiB,CAACjS,KAAMA,EAAMkS,OAAQA,GAAaA,EAAO3K,IAAO,MAGtEQ,cAAC6K,EAAU,CAACJ,MAAM,eAAeK,OAAQA,EAAQpM,KAAMqN,IACtDV,GAAcO,EAAiBN,GAC9BtL,cAAA,UACEC,UAAU,uBACVG,QAAS,kBAAMuL,GAAaD,EAAS,EACrCvW,KAAK,SAAQ+K,SAEZwL,EAAWF,EAAqBD,MAK3C,EAmBAH,EAAYY,aAAe,CACzBlB,OAAQ,CAAC,EACTO,YAAY,EACZC,gBAAiBW,IACjBV,mBAAoB,GACpBC,mBAAoB,GACpBC,aAAa,GAGAL,QC/DFc,EAAkC,SAAH7b,GAA2B,IAArB8b,EAAM9b,EAAN8b,OAAQ1d,EAAK4B,EAAL5B,MACxD,IAAKA,GAAmB,KAAVA,GAAgC,SAAhB0d,EAAOhX,KACnC,OAAO,KAGT,IAAIiX,EAAwB,GAE5B,GAAoB,WAAhBD,EAAOhX,KAAmB,CAC5B,IAAMkX,EAA0BF,EAAOrJ,QACpCqJ,QAAO,SAAChC,GAAM,OAAK1b,IAAU0b,EAAO3K,GAAG,IACvCpK,KAAI,SAAC+U,GAAM,OAAKA,EAAOxM,KAAK,IAM/B,GAJI0O,EAAwBrW,QAAU,IACpCoW,EAAwBC,EAAwBC,KAAK,SAGnDD,EAAwBrW,OAAS,EAAG,CACtC,IAAMuW,EAAQF,EAAwBP,MAAM,GAAI,GAC1CU,EAASH,EAAwBP,MACrCO,EAAwBrW,OAAS,GAGnCoW,EAAqB,GAAA7a,OAAMgb,EAAMD,KAAK,MAAK,QAAA/a,OAAOib,EAAO,GAC3D,CACF,MACEJ,EAAwB3d,EAG1B,OACEuR,cAAC2J,IAAK,CAAC1R,KAAMkU,EAAO3M,IAAIU,SACrB,SAAA9J,GAAA,IAAGwT,EAAKxT,EAALwT,MAAK,OACPzJ,eAAA,UACEF,UAAU,YACVG,QAAS,WAGPwJ,EAAMqB,UACR,EACA9V,KAAK,SAAQ+K,SAAA,CAEZiM,EAAOxO,MAAM,KAAEqC,cAAA,UAAAE,SAASkM,MAClB,GAIjB,EC7CaK,EAAqB,SAAHpc,GAAwC,IAAlCqc,EAAOrc,EAAPqc,QAAS5B,EAAMza,EAANya,OAAQ6B,EAAStc,EAATsc,UAChDC,EAAS,KAEb,OACE5M,cAAC6M,IAAI,CAACC,SAAUH,EAAWI,cAAejC,EAAO5K,SAC9C,SAAA9J,GAAA,IAAW4W,EAAe5W,EAAvB0U,OAAyBhM,EAAY1I,EAAZ0I,aAAclG,EAAIxC,EAAJwC,KAAI,OAC7CuH,eAAA,QAAMF,UAAU,uBAAuB6M,SAAUhO,EAAaoB,SAAA,CAC3D+M,OAAOC,KAAKpC,GAAQ9U,OAAS,GAC5BgK,cAAAmN,WAAA,CAAAjN,SACEC,eAAA,OAAKF,UAAU,mCAAkCC,SAAA,CAC/CF,cAAA,OAAKC,UAAU,yCAAwCC,SACpDwM,EAAQtX,KAAI,SAAC+W,GAAW,OACvBnM,cAACkM,EAAoB,CACnBC,OAAQA,EACR1d,MAAOqc,EAAOqB,EAAO3M,MAChB2M,EAAO3M,IACZ,MAGNQ,cAAA,OAAKC,UAAU,8BAA6BC,SAC1CF,cAAA,UACE7K,KAAK,SACL8K,UAAU,gBACVG,QAAS,WACPxH,EAAK1D,MAAM,CAAC,GACZ0D,EAAKwU,QACP,EAAElN,SACH,4BAOTF,cAAA,OAAKC,UAAU,8BAA6BC,SACzCwM,EAAQtX,KAAI,SAAC+W,EAAavB,GACzB,IAAIyC,EAAkB,KAEtB,OAAQlB,EAAOhX,MACb,IAAK,OACHkY,EAAkBrN,cAAC0J,EAAY,CAACzR,KAAMkU,EAAO3M,MAC7C,MACF,IAAK,SACH6N,EACErN,cAACoL,EAAW,CACVN,OAAQkC,EACR/U,KAAMkU,EAAO3M,IACbiL,MAAO0B,EAAOxO,MACdmF,QAASqJ,EAAOrJ,QAChBuI,WAAYc,EAAOd,WACnBC,gBAAiBa,EAAOb,gBACxBC,mBAAoBY,EAAOZ,mBAC3BC,mBAAoBW,EAAOX,mBAC3BC,YAAuB,IAAVb,GACRuB,EAAO3M,KAGhB,MACF,QACE,OAAO,EAGX,OAAO6N,CACT,MAEFrN,cAACsN,IAAO,CAACC,aAAc,CAAEzC,QAAQ,EAAM0C,OAAO,GAAOtN,SAClD,SAAA7K,GAAuC,IAA5BoY,EAAapY,EAArByV,OAiBF,OAjB8BzV,EAALmY,QAEa,qBAAzBC,EAAcrd,OACnBqd,EAAcrd,OAAO4F,OAAS,IAChCpB,aAAagY,GAEbA,EAAI/X,YAAW,WACb+D,EAAKwU,SACLxU,EAAK1D,OACP,GAAG,OAGL0D,EAAKwU,SACLxU,EAAK1D,UAIF,IACT,MAEG,GAIf,EChGawY,EAAyB,SAAHrd,GAAuC,IAAjCsd,EAAOtd,EAAPsd,QAASC,EAAOvd,EAAPud,QAAS7V,EAAO1H,EAAP0H,QACzDuI,EAAsCC,oBAAS,GAAMC,EAAArF,YAAAmF,EAAA,GAA9CuN,EAAWrN,EAAA,GAAEsN,EAActN,EAAA,GAElC,OACEL,eAAA,OAAKF,UAAU,eAAcC,SAAA,CAC3BC,eAAA,OAAKF,UAAS,wBAAA1O,OAA0Bsc,EAAc,WAAa,IAAK3N,SAAA,CACtEC,eAAA,UACEF,UAAU,gDACV9K,KAAK,SACLiL,QAAS,kBAAM0N,GAAgBD,EAAY,EAAC3N,SAAA,CAE5CF,cAAA,QAAMC,UAAU,YAChBD,cAAA,QAAMC,UAAU,YAAWC,SAAC,iBAC5BF,cAAA,QAAMC,UAAU,YAAWC,SACzBF,cAAA,OACE+N,MAAM,6BACNC,KAAK,UACLrF,MAAM,KACN9C,OAAO,KACPmE,QAAQ,YAAW9J,SAEnBF,cAAA,QAAMxO,EAAE,ySAIdwO,cAAA,OAAKC,UAAU,gCAA+BC,SAAE0N,OAElD5N,cAAA,OAAKC,UAAS,yBAAA1O,OAA2Boc,EAAU,aAAe,IAAKzN,SACpEnI,MAIT,E,QClBakW,EAA+B,SAAH5d,GAAmB,IAAbjC,EAAKiC,EAALjC,MACzC8f,EAAa,KACbC,EAAa/f,EAAMuO,OAEnBvO,EAAMggB,OACRF,EAAa,OACJ9f,EAAMigB,WACfH,EAAa,gBAGI,OAAfC,GAAsC,KAAfA,KAEzBA,EADgC9f,OAAOqI,eAA/B4X,qBAIV,OACEtO,cAACuO,IAAM,CACL5Q,MAAOvP,EAAMuP,MACbhB,MAAOwR,EACPK,WAAYpgB,EAAMwC,KAClB6Z,MAAOyD,GAAc,GACrBvZ,IAAKvG,EAAMuG,IACX8Z,SAAUrgB,EAAMqgB,SAChBngB,SAAUF,EAAME,UAyEtB,E,iBC7GaogB,GAA8B,SAAHre,GAA+C,IAAzCse,EAASte,EAATse,UAAWC,EAAUve,EAAVue,WAAYC,EAAUxe,EAAVwe,WAQnE,OACE7O,cAAA,OAAKC,UAAU,gBAAeC,SAC5BF,cAAC8O,IAAa,CACZC,mBAAmB,cACnBC,eAAe,cACfC,cAAc,oBACdC,kBAAkB,oBAClBC,gBAAgB,YAChBR,UAAWA,EACXS,YAAaR,EAAa,EAC1BS,UAAWT,EAAa,EACxBU,wBAAsB,EACtBC,mBAAoB,EACpBC,qBAAsB,EACtBC,aArBmB,SAACrhB,GACxB,IAAMyC,EAAOzC,EAAMshB,SAAW,EAE9Bb,EAAWhe,GACXxC,OAAOshB,SAAS,EAAG,EACrB,KAoBF,ECnCMC,GAAuB1f,aAAA,SAAA0f,IAAAzf,YAAA,KAAAyf,EAAA,IAAvBA,GACGC,WAAa,CAClBC,eAAgB,CACd7O,MAAO,SAAC8O,EAAgB5D,GAGtB,OAFeA,EAAOrJ,QAAQkN,MAAK,SAACC,GAAQ,OAAKA,EAAIzQ,MAAQuQ,CAAM,IAErDvQ,GAChB,EACA0Q,UAAW,SAAC/F,EAAgBgC,GAC1B,IAAMgE,EAAQ,GAERC,EAAejE,EAAOrJ,QAAQkN,MAClC,SAACC,GAAQ,OAAKA,EAAIzQ,MAAQ2K,CAAM,IAOlC,OAJIiG,GACFD,EAAMvY,KAAKwY,EAAa5Q,KAGnB2Q,EAAM7D,KAAK,IACpB,GAEF+D,cAAe,CACbpP,MAAO,SAAC8O,GAAc,OAAKA,CAAM,EACjCG,UAAW,SAACH,GAAc,OAAKA,CAAM,IAxBrCH,GA4BGM,UAAY,SAACpF,EAAa4B,EAAc4D,GAC7C,IAAMC,EAAkB,GAcxB,OAZAtD,OAAOC,KAAKpC,GAAQjc,SAAQ,SAAC2Q,GAC3B,IAAM2M,EAASO,EAAQsD,MAAK,SAACC,GAAQ,OAAKA,EAAIzQ,MAAQA,CAAG,IAE5CgR,EAAcrE,EAAnB3M,IAEF/Q,EAAQ6hB,EAAiB9Q,GAAK0Q,UAAUpF,EAAOtL,GAAM2M,GAEvDqE,GAAa/hB,GACf8hB,EAAM3Y,KAAK,GAADrG,OAAIif,EAAS,KAAAjf,OAAI9C,GAE/B,IAEO8hB,EAAMjE,KAAK,MAAQ,EAC5B,EA5CIsD,GA8CG3O,MAAQ,SAAC8O,EAAgBrD,EAAc4D,GAC5C,IAAMC,EAAQR,EAAOzQ,MAAM,KACrBmR,EAAc,CAAC,EAgBrB,OAdAF,EAAM1hB,SAAQ,SAAC6hB,GACb,IAAMC,EAAOD,EAAKpR,MAAM,KAAK,GACvBsR,EAAgBF,EAAKpR,MAAM,KAAK,GAEtC,GAAIqR,GAAQC,EAAe,CACzB,IAAMzE,EAASO,EAAQsD,MAAK,SAACC,GAAQ,OAAKA,EAAIzQ,MAAQmR,CAAI,IAElDnR,EAAQ2M,EAAR3M,IACF/Q,EAAQ6hB,EAAiB9Q,GAAKyB,MAAM2P,EAAezE,GAEzDsE,EAAOjR,GAAO/Q,CAChB,CACF,GAAG,CAAC,GAEGgiB,CACT,EAGab,UCpETiB,GAAkB3gB,aAAA,SAAA2gB,IAAA1gB,YAAA,KAAA0gB,EAAA,IAAlBA,GACGzgB,OAAM,eAAAC,EAAAC,YAAAC,cAAAC,MAAG,SAAAC,EAAOqa,GAAW,IAAAgG,EAAA/f,EAAAC,EAAA+E,EAAArD,UAAA,OAAAnC,cAAAU,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAgB7B,OAfG0f,EAAkB,CACtBjgB,KAFoCkF,EAAAC,OAAA,QAAAC,IAAAF,EAAA,GAAAA,EAAA,GAAG,GAKzCkX,OAAOC,KAAKpC,GAAQjc,SAAQ,SAAC2Q,GAOzBsR,EAAWtR,GALH,WAARA,GACQ,QAARA,GACQ,UAARA,GACQ,SAARA,EAEkBsL,EAAOtL,GAEP,CAACsL,EAAOtL,GAE9B,IAAGtO,EAAAE,KAAA,EAEoBU,MAAM,qBAAsB,CACjDE,OAAQ,OACR+e,QAAS,CACP,eAAgB,oBAElBC,KAAMC,KAAKf,UAAUY,KACpB,KAAD,EANY,OAAR/f,EAAQG,EAAAgB,KAAAhB,EAAAE,KAAA,EAQKL,EAASC,OAAO,KAAD,EAAxB,OAAJA,EAAIE,EAAAgB,KAAAhB,EAAAiB,OAAA,SAEH,CACL2H,QAAS9I,EAAKkgB,OACdC,WAAY,CACVC,YAAapgB,EAAKH,KAClBwK,MAAOrK,EAAKqgB,WACZC,WAAYtgB,EAAKugB,SAEpB,yBAAArgB,EAAAkB,OAAA,GAAA3B,EAAA,KACF,gBAAA4B,GAAA,OAAAhC,EAAAoC,MAAA,KAAAC,UAAA,EApCY,GAuCAme,UC5BTW,GAAmB,SAAAC,GAAAC,YAAAF,EAAAC,GAAA,IAAAE,EAAAC,YAAAJ,GACvB,SAAAA,EAAYK,GAAQ,IAADhf,EAAA1C,YAAA,KAAAqhB,IACjB3e,EAAA8e,EAAAG,KAAA,KAAMD,IA2BRE,kBAAoB,WAClBlf,EAAKzC,SAASyN,MAChB,EAAChL,EAEDmf,mBAAqB,SAACC,GAEpB,IAAMC,EACJrf,EAAKgf,MAAMvjB,SAAS6jB,WAAaF,EAAU3jB,SAAS6jB,SAChDC,EAAiBvf,EAAKgf,MAAMvjB,SAAS+jB,OAASJ,EAAU3jB,SAAS+jB,MAEnEH,GAAqBE,IACvBvf,EAAKzC,SAASyN,MAGlB,EAAChL,EAEDzC,OAAME,YAAAC,cAAAC,MAAG,SAAAC,IAAA,IAAAqa,EAAAja,EAAAyhB,EAAA,OAAA/hB,cAAAU,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAMA,OALD0Z,EAASjY,EAAK0f,kBACd1hB,EAAOgC,EAAK2f,UAEZF,EAAUzd,YAAW,WACzBhC,EAAK4f,SAAS,CAAE9E,SAAS,GAC3B,GAAG,KAAIzc,EAAA4D,GAAAjC,EAAA3B,EAAAkS,GAAAvL,IAAA3G,EAAAmS,GAAAxL,IAAA3G,EAAAwhB,GAAA,GAAAxhB,EAAAE,KAAA,EAIOyf,GAAmBzgB,OAAO0a,EAAQja,GAAK,OAAAK,EAAAyhB,GAAAzhB,EAAAgB,KAAAhB,EAAA0hB,IAAA,EAAA1hB,EAAAmS,IAAAnS,EAAAwhB,GAAAxhB,EAAAyhB,IAAAzhB,EAAA2hB,GAAA,GAAA3hB,EAAA4hB,GAAA,CACjDnF,SAAS,GAAKzc,EAAA6hB,IAAA,EAAA7hB,EAAAkS,IAAAlS,EAAA0hB,GAAA1hB,EAAA2hB,GAAA3hB,EAAA4hB,IAAA5hB,EAAA8hB,GAEhB,WACE3kB,OAAOuG,aAAa0d,EACtB,EAACphB,EAAA4D,GAPE2d,SAAQX,KAAA5gB,EAAA4D,GAAA5D,EAAA6hB,GAAA7hB,EAAA8hB,IAAA,yBAAA9hB,EAAAkB,OAAA,GAAA3B,EAAA,KASdoC,EAED0f,gBAAkB,WAChB,IAIMU,EAFFpgB,EAAKgf,MADPvjB,SAAY6jB,SAGiBjR,QAAQrO,EAAKqgB,SAAU,IAEtD,OAAOtD,GAAwB3O,MAC7BgS,EACApgB,EAAK6Z,QACL7Z,EAAKyd,iBAET,EAACzd,EAEDsgB,gBAAkB,SAACrI,GACGjY,EAAKgf,MAAjBuB,QAEAxb,KAAK,GAADrG,OACPsB,EAAKqgB,SAAQ,KAAA3hB,OAAIqe,GAAwBM,UAC1CpF,EACAjY,EAAK6Z,QACL7Z,EAAKyd,mBAGX,EAACzd,EAED2f,QAAU,WACR,IAAMH,EAAOhkB,OAAOC,SAAS+jB,KAAKnR,QAAQ,IAAK,IAE/C,OAAOyE,OAAO0M,GAAQ,GAAKA,CAC7B,EAACxf,EAEDwgB,QAAU,SAACxiB,GACTxC,OAAOC,SAAS+jB,KAAOxhB,EAAO,CAChC,EAACgC,EAEDygB,YAAc,WACRjlB,OAAOklB,yBACTllB,OAAOklB,yBAEX,EAAC1gB,EAEDkP,OAAS,WACP,IAAAyR,EAAyC3gB,EAAK4gB,MAAtC9F,EAAO6F,EAAP7F,QAAS7T,EAAO0Z,EAAP1Z,QAASqX,EAAUqC,EAAVrC,WAEpBvD,EACJ5N,cAACyM,EAAO,CACNC,QAAS7Z,EAAK6Z,QACd5B,OAAQjY,EAAK0f,kBACb5F,UAAW9Z,EAAKsgB,gBAChBG,YAAazgB,EAAKygB,cAIhBvb,EACJoI,eAAAgN,WAAA,CAAAjN,SAAA,CACEF,cAAA,OAAKC,UAAU,sBAAqBC,SAClCC,eAAA,OAAKF,UAAU,+BAA8BC,SAAA,CAC3CF,cAAA,UAAAE,SAASiR,EAAW9V,QAAgB,IACd,IAArB8V,EAAW9V,MAAc,YAAc,kBAG5C2E,cAAA,OAAKC,UAAU,aAAYC,SACxBpG,EAAQ1E,KAAI,SAAChH,GAAK,OACjB4R,cAAC0T,IAAMC,SAAQ,CAAAzT,SACbF,cAACiO,EAAiB,CAAC7f,MAAOA,KADPA,EAAMuG,IAEV,MAGpBwc,EAAWG,WAAa,GACvBtR,cAAC0O,GAAgB,CACfC,UAAWwC,EAAWG,WACtB1C,WAAYuC,EAAWC,YAAc,EACrCvC,WAAYhc,EAAKwgB,aAMzB,OACErT,cAAC0N,EAAW,CAACC,QAASA,EAASC,QAASA,EAAS7V,QAASA,GAE9D,EA9IE,IAAQ6b,EAAevlB,OAAfulB,WAsBN,OApBF/gB,EAAK4gB,MAAQ,CACX9F,SAAS,EACT7T,QAAS,GACTqX,WAAY,CACVC,YAAa,EACb/V,MAAO,EACPiW,WAAY,IAIhBze,EAAKqgB,SAAWU,GAAc,aAC9B/gB,EAAK6Z,QAAUre,OAAOqe,QACtB7Z,EAAKyd,iBAAmB,CACtBlgB,OAAQwf,GAAwBC,WAAWQ,cAC3CwD,OAAQjE,GAAwBC,WAAWC,eAC3C9E,YAAa4E,GAAwBC,WAAWC,eAChDxZ,IAAKsZ,GAAwBC,WAAWQ,cACxClF,MAAOyE,GAAwBC,WAAWQ,cAC1CnF,KAAM0E,GAAwBC,WAAWQ,cACzCyD,OAAQlE,GAAwBC,WAAWC,gBAC3Cjd,CACJ,CAAC,OAAA3C,YAAAshB,EAAA,CA3BsB,CAASkC,IAAMK,WAgKzBC,GAXuB,WAAH,OACjChU,cAACiU,IAAa,CAAA/T,SACZF,cAACkU,IAAK,CAACC,KAAK,IAAIpJ,UAAWyG,MACb,GChKlB,WACE,IAAM4C,EAA+BnmB,SAASC,cAC5C,kCAGEkmB,GACWvS,IAASC,WAAWsS,GAE5BrS,OAAO/B,cAACwR,GAAmB,IAEnC,CAVD,G,OCDE,qDAAqB3T,MAAK,SAAAxN,GAA4B,IAAhBgkB,EAAQhkB,EAAjBikB,QACrBC,EAAgCtmB,SAASC,cAAc,aAEzDqmB,GACW1S,IAASC,WAAWyS,GAE5BxS,OAAO/B,cAACqU,EAAQ,CAACG,KAAMvD,KAAKhQ,MAAMsT,EAAO/b,QAAQgc,MAAQ,MAElE,I,yCCDWC,GAA0B,SAAHpkB,GAAkB,IAAZqkB,EAAIrkB,EAAJqkB,KAClCC,EAAoBC,iBAAuB,MACjDtU,EAA6BC,mBAAiB,IAArCsU,EAAwC1Z,YAAAmF,EAAA,GAAxB,GA4BzB,OA1BAwU,2BAAgB,WACd,IAAMC,EAAa,WAAO,IAADC,EACjBC,EAAiF,QAA5BD,EAAGL,EAAkBO,eAAO,IAAAF,OAAA,EAAzBA,EAA2B9mB,cAAc,uBACvG,GAAI+mB,EAAoB,CACtB,IAAMrkB,EAAOqkB,EAAmBzc,QAAQuF,YAClCoX,EAAmBjX,YAAWtN,GAAQ,IAE5CqD,QAAQC,IAAI,QAEZ2gB,EAAiBM,GAEjBF,EAAmBhX,YAAckX,CACnC,CACF,EAEAJ,IAEA,IAAMK,EAAatP,aAAY,WAC7BiP,GACF,GAAG,KAEH,OAAO,WACLM,cAAcD,EAChB,CACF,GAAG,IAGDpV,cAAA,OACEC,UAAU,wBACVqV,wBAAyB,CAAEC,OAAQb,EAAKc,MACxCC,IAAKd,GAGX,ECnCae,GAAyB,SAAHrlB,GAA+B,IAAzBiG,EAAGjG,EAAHiG,IAAKqf,EAAYtlB,EAAZslB,aAC5CC,EAA0BlC,IAAMnT,SAAS,IAAGsV,EAAA1a,YAAAya,EAAA,GAArCE,EAAKD,EAAA,GAAEE,EAAQF,EAAA,GACtBG,EAAgCtC,IAAMnT,SAAS,IAAG0V,EAAA9a,YAAA6a,EAAA,GAA3CE,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAE5BtV,qBAAU,WACR,IAAMyV,EAAO,eAAAhgB,EAAA9F,YAAAC,cAAAC,MAAG,SAAAC,IAAA,IAAAqlB,EAAA,OAAAvlB,cAAAU,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACMyE,IAAkBM,mBAAmBG,GAAK,KAAD,EAAvDwf,EAAK5kB,EAAAgB,KAEX6jB,EAASD,GAAO,wBAAA5kB,EAAAkB,OAAA,GAAA3B,EAAA,KACjB,kBAJY,OAAA2F,EAAA3D,MAAA,KAAAC,UAAA,KAMb0jB,GACF,GAAG,CAAC9f,IAEJqK,qBAAU,WACR,IAAM0V,EAAe,eAAAhhB,EAAA/E,YAAAC,cAAAC,MAAG,SAAAwE,IAAA,IAAAkhB,EAAA,OAAA3lB,cAAAU,MAAA,SAAAgE,GAAA,cAAAA,EAAA9D,KAAA8D,EAAA7D,MAAA,cAAA6D,EAAA7D,KAAA,EACCyE,IAAkBM,mBAAmBG,GAAK,KAAD,EAA1D4f,EAAQjhB,EAAA/C,KAEdikB,EAAYD,GAAU,wBAAAjhB,EAAA7C,OAAA,GAAA4C,EAAA,KACvB,kBAJoB,OAAAK,EAAA5C,MAAA,KAAAC,UAAA,KAMrB,GAAIijB,EAAc,CAChB,IAAMW,EAAWxQ,aAAY,WAC3BuQ,GACF,GAAG,KAEH,OAAO,kBAAMhB,cAAciB,EAAU,CACvC,CACF,GAAG,CAAChgB,EAAKqf,IAEThV,qBAAU,WACJuV,EAASlgB,OAAS,GACpB+f,EAASG,EAEb,GAAG,CAACA,IAEJ,IAAMK,EAAc,WAClBR,EAASG,EACX,EAkCA,OACE/V,eAAA,OAAKF,UAAU,eAAcC,SAAA,CAjCL,WACxB,IAAMsW,EAAUN,EAASlgB,OAAS8f,EAAM9f,OAExC,GAAIwgB,GAAW,EACb,OAAO,KAGT,IAAMC,EACQ,IAAZD,EACErW,eAAA,QAAMF,UAAU,YAAWC,SAAA,CAAC,QACrBF,cAAA,QAAAE,SAAM,uBAGbC,eAAA,QAAMF,UAAU,YAAWC,SAAA,CAAC,WAClBC,eAAA,QAAAD,SAAA,CAAOsW,EAAQ,wBAI7B,OACErW,eAAA,UACEF,UAAU,gDACV9K,KAAK,SACLiL,QAASmW,EAAYrW,SAAA,CAErBF,cAAA,OAAKC,UAAU,sBAAsB0I,MAAM,OAAO9C,OAAO,OAAM3F,SAC7DF,cAAA,OAAKiK,UAAU,UAAUtB,MAAM,OAAO9C,OAAO,WAE9C4Q,IAGP,CAIKC,GACD1W,cAAA,MAAIC,UAAU,YAAWC,SAAEyW,YAAmBrgB,KAC5B,IAAjBwf,EAAM9f,QACLgK,cAAA,KAAGC,UAAU,kBAAiBC,SAAC,yCAEhC4V,EAAM1gB,KAAI,SAACsf,GAAI,OACd1U,cAACyU,GAAY,CAACC,KAAMA,GAAQ,MAIpC,EC3FakC,GAAe,WAC1B,IAAAtW,EAAwBC,mBAAS,CAC/BsW,eAAaC,UACbC,eAAiBD,YACjBtW,EAAArF,YAAAmF,EAAA,GAHKoK,EAAIlK,EAAA,GAAEwW,EAAOxW,EAAA,GAcpB,OACEL,eAAA,OAAKF,UAAU,WAAUC,SAAA,CACtBwK,EAAKtV,KAAI,SAACkB,EAAKsU,GAAK,OACnBzK,eAAAgN,WAAA,CAAAjN,SAAA,CACEF,cAAC0V,GAAW,CACVpf,IAAKA,EACLqf,aAAwB,IAAV/K,GAAY,GAAArZ,OAClB+E,EAAG,KAAA/E,OAAIqZ,IAEN,IAAVA,GACC5K,cAAA,OAAKC,UAAU,6BAA4BC,SACzCF,cAAA,OAAKC,UAAU,oCAGlB,IAELD,cAAA,OAAKC,UAAU,gBAAeC,SAC5BC,eAAA,UACEF,UAAU,mBACV9K,KAAK,SACLiL,QA7BY,WAClB4W,GAAQ,SAACC,GACP,IAAMC,EAAUD,EAAUA,EAAUjhB,OAAS,GACvCmhB,EAAiBC,aAAQF,EAAS,GAExC,MAAM,GAAN3lB,OAAA8lB,aAAWJ,GAAS,CAAEE,EAAeL,WACvC,GACF,EAsB6B5W,SAAA,CAErBF,cAAA,OAAKC,UAAU,YACfD,cAAA,OAAKC,UAAU,aAAYC,SACzBF,cAAA,QAAMC,UAAU,YAAWC,SAAC,wBAMxC,GC9CA,WACE,IAAMqU,EAAStmB,SAASC,cAAc,6BAElCqmB,GACW1S,IAASC,WAAWyS,GAE5BxS,OAAO/B,cAAC4W,GAAQ,IAExB,CARD,G,aCOaU,GAAkB,SAAHjnB,GAA+B,IAAzB2U,EAAI3U,EAAJ2U,KAAMuS,EAAIlnB,EAAJknB,KAAMC,EAAKnnB,EAALmnB,MAC5C,OACExX,cAAA,KAAGzR,KAAMyW,EAAM/E,UAAWwX,aAAG,OAAQzS,EAAI,SAAAzT,OAAYimB,GAAU,IAAItX,SACjEF,cAAA,QAAMC,UAAU,aAAYC,SAAEqX,KAGpC,ECLaG,GAA0B,SAAHrnB,GAAyB,IAAnBsN,EAAKtN,EAALsN,MAAOqH,EAAI3U,EAAJ2U,KAC/C,OACEhF,cAAA,OAAKC,UAAU,gBAAeC,SAC5BF,cAAA,OAAKC,UAAU,uBAAsBC,SACnCC,eAAA,OAAKF,UAAU,qBAAoBC,SAAA,CACjCF,cAAA,OAAKC,UAAU,+BAA8BC,SAC3CF,cAAA,MAAIC,UAAU,uBAAsBC,SAAEvC,MAExCqC,cAAA,OAAKC,UAAU,sBAAqBC,SAClCF,cAACsX,GAAI,CAACtS,KAAMA,EAAKrQ,IAAK4iB,KAAMvS,EAAKuS,eAM7C,EChBaI,GAA+B,SAAHtnB,GAIlC,IAHLoa,EAAKpa,EAALoa,MACAmN,EAAWvnB,EAAXunB,YACAtpB,EAAQ+B,EAAR/B,SAEMupB,EAAiCC,mBACrC,kBAAMvhB,IAAiBE,cAAc,GACrC,IAYF,OACE0J,eAAA,OAAKF,UAAU,YAAWC,SAAA,CACxBF,cAAA,SAAO6J,QAAQ,eAAc3J,SAAEuK,IAC/BtK,eAAA,UACE1G,GAAG,eACHxB,KAAK,eACLxJ,MAAe,OAARH,QAAQ,IAARA,OAAQ,EAARA,EAAUmL,GACjBwG,UAAU,YACVgL,SAjBuB,SAAC7c,GAC5B,IAAMqL,EAAKrL,EAAMI,OAAOC,MAClBH,EAAWiI,IAAiBE,eAAeuZ,MAC/C,SAAC0E,GAAuB,OAAKA,EAAKjb,KAAOA,CAAE,IAG7Cme,EAAYtpB,EACd,EAUqC4R,SAAA,CAE/BF,cAAA,UAAQvR,MAAM,GAAEyR,SAAC,sBACP,OAAT2X,QAAS,IAATA,OAAS,EAATA,EACGE,MAAK,SAACC,EAAGC,GAAC,IAAAC,EAAA,OAAW,QAAXA,EAAKF,EAAET,YAAI,IAAAW,OAAA,EAANA,EAAQC,cAAcF,EAAEV,KAAK,IAC7CniB,KAAI,SAAC+U,GAAM,OACVnK,cAAA,UAAQvR,MAAO0b,EAAO1Q,GAAGyG,SACtBiK,EAAOoN,MADqBpN,EAAO1Q,GAE7B,SAKrB,EChCa2e,GAA4B,SAAH/nB,GAAsB,IAAhBgoB,EAAQhoB,EAARgoB,SACpCC,EAAoB1D,iBAAO,MAEjCtU,EAA8BC,oBAAS,GAAMC,EAAArF,YAAAmF,EAAA,GAAtCqN,EAAOnN,EAAA,GAAE+X,EAAU/X,EAAA,GAC1BgY,EAAgCjY,qBAA6BkY,EAAAtd,YAAAqd,EAAA,GAAtDlqB,EAAQmqB,EAAA,GAAEb,EAAWa,EAAA,GAC5BC,EAA8BnY,mBAAS,IAAGoY,EAAAxd,YAAAud,EAAA,GAAnCE,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAEpBG,EAAexqB,GAAYA,EAASqG,IAAMrG,EAASqG,IAAM,YAoB/D,OAlBAgM,qBAAU,WACR,IAAMoY,EAAe,eAAA3iB,EAAA9F,YAAAC,cAAAC,MAAG,SAAAC,IAAA,IAAAuoB,EAAAlD,EAAA,OAAAvlB,cAAAU,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAEP,OADfmnB,GAAW,GACXM,EAAW,IAAI3nB,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAGWyE,IAAkBC,cAAsB,OAARxH,QAAQ,IAARA,OAAQ,EAARA,EAAUmL,IAAI,KAAD,EAAAuf,EAAA9nB,EAAAgB,KAA7D4jB,EAAKkD,EAALlD,MAERyC,GAAW,GACXM,EAAW/C,EAAMhK,MAAM,EAAG,IAAI5a,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA4D,GAAA5D,EAAA,SAE9B+C,QAAQC,IAAGhD,EAAA4D,IAAQ,yBAAA5D,EAAAkB,OAAA,GAAA3B,EAAA,mBAEtB,kBAZoB,OAAA2F,EAAA3D,MAAA,KAAAC,UAAA,KAcrBqmB,GACF,GAAG,CAACzqB,IAGF0R,cAAA,OAAKC,UAAU,mBAAmBwV,IAAK6C,EAAkBpY,SACvDF,cAAA,OAAKC,UAAU,sCAAqCC,SAClDC,eAAA,OAAKF,UAAU,wBAAuBC,SAAA,CACpCF,cAAC0X,GAAY,CACX/Z,MAAO0a,EAAS1a,MAChBqH,KAAM,CACJrQ,IAAKmkB,EACLvB,KAAM,iBAGT5J,GAAW3N,cAAA,OAAKC,UAAU,cACzB0N,GACAxN,eAAA,OAAKF,UAAU,4BAA2BC,SAAA,CACxCF,cAAA,OAAKC,UAAU,2BAA0BC,SACvCF,cAAC2X,GAAiB,CAChBlN,MAAO4N,EAASY,eAChB3qB,SAAUA,EACVspB,YAAa,SAACsB,GAAW,OAAKtB,EAAYsB,EAAY,MAGzDN,EAAQ5iB,OAAS,GAChBgK,cAAA,MAAIC,UAAU,wBAAuBC,SAClC0Y,EAAQxjB,KAAI,SAAC+jB,GAAW,OACvBnZ,cAAA,MAAAE,SACEF,cAACuO,IAAM,CACL9D,MAAO0O,EAAO1O,MACd9V,IAAKwkB,EAAOxkB,IACZgJ,MAAOwb,EAAOxb,MACdhB,MAAOwc,EAAOxc,MACdyc,MAAOD,EAAOC,MACdxoB,KAAMuoB,EAAO9iB,aAPR8iB,EAAO1f,GASX,SAMfuG,cAAA,OAAKC,UAAU,8BAA6BC,SAC1CF,cAACsX,GAAI,CAACtS,KAAM8T,EAAcvB,KAAK,wBAM3C,GCxFA,WACE,IAAM8B,EAAoB,CACxB1b,MAAO,2BACPsb,eAAgB,oBAChBK,aAAc,qBAIdrrB,SAASW,iBAAiB,2BAEHC,SAAQ,SAAC0qB,GACnB1X,IAASC,WAAWyX,GAE5BxX,OAAO/B,cAACoY,GAAc,CAACC,SAAUgB,IACxC,GACD,CAfD,G,sBCeaG,GAA6B,SAAHnpB,GAAsC,IAADopB,EAAAC,EAA/B5F,EAAMzjB,EAANyjB,OAAQtN,EAAInW,EAAJmW,KAAMmT,EAAUtpB,EAAVspB,WACzDrZ,EAA0BC,mBACxBoZ,EACK7F,EAAO9D,MACN,SAACoJ,GAAK,IAAAQ,EAAA,OACJR,EAAMzkB,MAAQglB,IACM,QADIC,EACxBR,EAAM,sBAAc,IAAAQ,OAAA,EAApBA,EAAsB5J,MACpB,SAAC6J,GAAS,OAAKA,EAAUllB,MAAQglB,CAAU,IAC5C,SAEL1jB,GACLuK,EAAArF,YAAAmF,EAAA,GAVM8Y,EAAK5Y,EAAA,GAAEsZ,EAAQtZ,EAAA,GAYhBuZ,EAAuB,CAC3BC,QAAS,SAACC,EAAU7jB,GAAA,IAAI8jB,EAAS9jB,EAAT8jB,UAAS,OAAAriB,wBAAA,GAC5BoiB,GAAU,IACbE,aAAc,EACdC,QAAS,SACTvU,OAAQ,OACRwU,YAAaH,EAAY,QAAU,UACnCI,UAAWJ,EAAY,oBAAsB,OAC7C,UAAW,CACTG,YAAaH,EAAY,QAAU,YACpC,EAEHK,SAAU,SAACC,GAAI,OAAA3iB,wBAAA,GACV2iB,GAAI,IACPC,MAAO,SAAO,EAEhBC,KAAM,SAACF,GAAI,OAAA3iB,wBAAA,GACN2iB,GAAI,IACPG,OAAQ,KAAG,EAEbxQ,OAAQ,SAAC4P,GAAM,OAAAliB,wBAAA,GACVkiB,GAAM,IACTK,QAAS,OACTK,MAAO,oBAAkB,EAE3BG,mBAAoB,SAACb,GAAM,OAAAliB,wBAAA,GACtBkiB,GAAM,IACTlb,QAAS,QAAM,EAEjB0D,UAAW,SAACwX,GAAM,OAAAliB,wBAAA,GACbkiB,GAAM,IACTpR,MAAO,MACP,4CAA2C9Q,wBAAA,GACtCkiB,GAAM,IACTpR,MAAO,UACR,EAEHmB,YAAa,SAACiQ,GAAM,OAAAliB,wBAAA,GACfkiB,GAAM,IACTc,SAAU,UAAQ,GAItB,OACE1a,eAAA,OAAKF,UAAU,mCAAkCC,SAAA,CAC/CF,cAAC8a,KAAM,CACLhY,QAASgR,EACThK,YAAatD,EAAKuU,YAClBC,cAAc,EACdvsB,MAAO2qB,EACPnO,SAAU,SAACgQ,GACT,IAAMC,EAAgBD,EAEL,OAAbC,QAAa,IAAbA,KAAevmB,IACjBtG,OAAOC,SAASC,KAAO2sB,EAAcvmB,IAErCmlB,EAASoB,EAEb,EACAnB,OAAMliB,wBAAA,GAECkiB,GAAM,IACT5P,OAAQ,SAAC4P,EAAM1kB,GAAA,IAAIuQ,EAAIvQ,EAAJuQ,KAAI,OAAA/N,wBAAA,GAClBkiB,GAAM,IACTU,MAAO,QACPU,gBAAsB,OAAJvV,QAAI,IAAJA,KAAiBjR,IAAM,UAAY,UACrD,SAAU,CACRwmB,gBAAsB,OAAJvV,QAAI,IAAJA,KAAiBjR,IAAM,UAAY,YACtD,EAEHmV,YAAa,SAACiQ,GAAM,OAAAliB,wBAAA,GACfkiB,GAAM,IACTqB,WAAY,SACZC,SAAU,UAAQ,IAIxBC,cAAe,MAEhBlC,KAA+B,QAArBK,EAACL,EAAM,sBAAc,IAAAK,IAApBA,EAAsBzjB,SAChCgK,cAAC8a,KAAM,CACLhR,YAAatD,EAAK+U,aAClBzY,QAASsW,EAAM,eACfoC,aAAkC,QAAtB9B,EAAEN,EAAM,sBAAc,IAAAM,OAAA,EAApBA,EAAsB1J,MAClC,SAAC6J,GAAS,OAAKA,EAAUllB,MAAQglB,CAAU,IAE7CI,OAAMliB,wBAAA,GAECkiB,GAAM,IACT5P,OAAQ,SAAC4P,GAAM,OAAAliB,wBAAA,GACVkiB,GAAM,IACTU,MAAO,QACPU,gBAAiB,QACjB,SAAU,CACRA,gBAAiB,YAClB,IAIPlQ,SAAU,SAACgQ,GACT5sB,OAAOC,SAASC,KAAQ0sB,EAA0BtmB,GACpD,MAKV,GCvIA,WACE,IAAM8mB,EAAiDxtB,SAASC,cAC9D,2BAGF,GAAKutB,EAAL,CAEA,IAAAC,EAIID,EAAgBjjB,QAHKsb,EAAM4H,EAA7BC,sBACqBnV,EAAIkV,EAAzBE,oBACwBjC,EAAU+B,EAAlCG,uBAGEJ,GAAmB3H,GAAUtN,GAAQmT,GACvC5X,kBACE/B,cAACwZ,GAAe,CACd1F,OAAQ7C,KAAKhQ,MAAM6S,GACnBtN,KAAMyK,KAAKhQ,MAAMuF,GACjBmT,WAAY1I,KAAKhQ,MAAM0Y,KAEzB8B,EAfwB,CAkB7B,CAvBD,G,ICHMK,GAAa5rB,aAGjB,SAAA4rB,EAAYC,GAAU,IAADlpB,EAAA,KAAA1C,YAAA,KAAA2rB,GAAA,KAFrBE,OAAS,KAAK,KAUdC,2BAA6B,SAACC,GAC5B,IAAMC,EAAqBtpB,EAAKkpB,QAAQntB,iBACtC,yBAGIwtB,EAAiBvpB,EAAKkpB,QAAQntB,iBAAiB,qBAC/CytB,EAAsBxpB,EAAKkpB,QAAQntB,iBAAiB,oBAAD2C,OACnC2qB,EAAI,MAG1B7E,aAAI+E,GAAgBvtB,SAAQ,SAACytB,GACTA,EACRC,cAAc1f,MAAMgC,QAAU,MAC1C,IAEAwY,aAAIgF,GAAqBxtB,SAAQ,SAACytB,GACNA,EACRC,cAAc1f,MAAMgC,QAAU,MAClD,IAEAwY,aAAI8E,GAAoBttB,SAAQ,SAACytB,GACLA,EACRptB,UAAUoY,OAAO,cACrC,IAEAzU,EAAK2pB,YAAcN,CACrB,EAAE,KAEFO,eAAiB,WACf,IAAMC,EAAa7pB,EAAKkpB,QAAQ7tB,cAAc,8BAExCyuB,EAAqB9pB,EAAKkpB,QAAQntB,iBACtC,wBAGIguB,EAAqB/pB,EAAKkpB,QAAQntB,iBACtC,wBAGF,GACE8tB,GACEC,EAAmB3mB,QACnB4mB,EAAmB5mB,OACrB,CACA,IAAM6mB,EAAiBhqB,EAAKkpB,QAAQntB,iBAClC,kCAGF8tB,EAAW7f,MAAMgC,QAAU,QAC3BhM,EAAKopB,2BAA2BppB,EAAK2pB,aAErCnF,aAAIwF,GAAgBhuB,SAAQ,SAACiuB,GAC3B,IAAQZ,EAASY,EAActkB,QAAvB0jB,KAEJA,IAASrpB,EAAK2pB,aAChBM,EAAc5tB,UAAUmT,IAAI,aAG9Bya,EAAc3uB,iBAAiB,SAAS,SAACC,GACvCA,EAAMa,iBAEFitB,IAASrpB,EAAK2pB,cAChB3pB,EAAKopB,2BAA2BC,GAEhC7E,aAAIwF,GAAgBhuB,SAAQ,SAACytB,GAC3BA,EAAGptB,UAAUoY,OAAO,YACtB,IAEAwV,EAAc5tB,UAAUmT,IAAI,aAEhC,GACF,GACF,MAAO,GACyB,IAA9Bsa,EAAmB3mB,QACW,IAA9B4mB,EAAmB5mB,OACnB,CACA,IAGM+mB,EAHiBlqB,EAAKkpB,QAAQntB,iBAClC,kCAEwC,GAEtCmuB,IACFA,EAAmBR,cAAcA,cAAc1f,MAAMgC,QAAU,OAEnE,CACF,EAAE,KAEFme,SAAW,SAACC,GACNpqB,EAAKmpB,QAAQnpB,EAAKmpB,OAAO9sB,UAAUoY,OAAO,aAE1CzU,EAAKmpB,SAAWiB,GAClBpqB,EAAKmpB,OAASiB,EACdA,EAAM/tB,UAAUmT,IAAI,eAEpBxP,EAAKmpB,OAAS,KACdiB,EAAM/tB,UAAUoY,OAAO,aAE3B,EAxGEnD,KAAKqY,YAAc,KACnBrY,KAAK4X,QAAUA,EAEf5X,KAAKsY,iBACLtY,KAAK6Y,SAASE,KAAK/Y,KACrB,IAuG8BlW,SAASW,iBACrC,2BAGoBC,SAAQ,SAACsuB,GAC7B,IAIMC,EAJgBD,EAAqBjvB,cACzC,yBAGyCU,iBACzC,+BAIFyoB,aAAI+F,GAAsBvuB,SAAQ,SAACwuB,GACjCA,EAAmBlvB,iBAAiB,SAAS,SAACC,GAC5CA,EAAMa,iBAENouB,EAAmBd,cAAcrtB,UAAUC,OAAO,cACpD,GACF,IAEA,IAAI2sB,GAAcqB,EACpB,I,4BCrIF,WACE,IAAMG,EAAa,eAAAjtB,EAAAC,YAAAC,cAAAC,MAAG,SAAAC,EAAOkE,GAAW,IAAA5D,EAAA,OAAAR,cAAAU,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACfU,MAAM6C,EAAK,CAChC3C,OAAQ,QACP,KAAD,EAFY,GAIU,OAJlBjB,EAAQG,EAAAgB,MAIDqrB,OAAc,CAAArsB,EAAAE,KAAA,eAAAF,EAAAiB,OAAA,SAClB,IAAE,cAAAjB,EAAAiB,OAAA,SAGJpB,EAASwmB,QAAM,wBAAArmB,EAAAkB,OAAA,GAAA3B,EAAA,KACvB,gBAVkB4B,GAAA,OAAAhC,EAAAoC,MAAA,KAAAC,UAAA,KAYb8qB,EACJvvB,SAASW,iBAAiC,qBAEtCgqB,EAA6C,CAAC,EAEpDlqB,MAAMC,KAAK6uB,GAAiB3uB,SAAQ,SAAC4uB,GACnC,IAAMC,EAAOD,EAAWjlB,QAAkB,SAErCklB,IAECA,KAAQ9E,IACZA,EAAQ8E,GAAQ,IAGlB9E,EAAQ8E,GAAK,GAAAnsB,OAAA8lB,aAAOuB,EAAQ8E,IAAK,CAAED,IACrC,IAEAxQ,OAAOC,KAAK0L,GAAS/pB,SAAQ,SAAC8F,GAC5B,IAAMgpB,EAAQ,eAAAvnB,EAAA9F,YAAAC,cAAAC,MAAG,SAAAwE,IAAA,IAAA4oB,EAAA,OAAArtB,cAAAU,MAAA,SAAAgE,GAAA,cAAAA,EAAA9D,KAAA8D,EAAA7D,MAAA,cAAA6D,EAAA7D,KAAA,EACUksB,EAAc3oB,GAAK,KAAD,EAArCipB,EAAU3oB,EAAA/C,KAEhB0mB,EAAQjkB,GAAK9F,SAAQ,SAACytB,GACpBA,EAAGuB,UAAYD,CACjB,IAAG,wBAAA3oB,EAAA7C,OAAA,GAAA4C,EAAA,KACJ,kBANa,OAAAoB,EAAA3D,MAAA,KAAAC,UAAA,KAQdirB,IAAW9f,MAAK,WACc5P,SAASW,iBACnC,uBAGkBC,SAAQ,SAACkP,GAC3B,IAAqBnN,EAASmN,EAAYvF,QAAlCuF,YACRA,EAAYE,YAAcC,aAAWtN,GAAQ,GAC/C,GACF,GACF,GACD,CAlDD,E,4ICFO,IAAMsF,EAAiB,WAAH,IAAA4nB,EAAA,OACP,QAAlBA,EAAAzvB,OAAO0vB,mBAAW,IAAAD,OAAA,EAAlBA,EAAoB5c,QAAQ,OAAQ,MAAO,EAAG,E,uRCDzC,I,QAAMmE,EAAY,WACvB,OAD2B3S,UAAAsD,OAAA,QAAAC,IAAAvD,UAAA,GAAAA,UAAA,GAAGsO,QAE5B,IAAK,MACL,IAAK,cACH,MAAO,+BAET,IAAK,OACL,IAAK,UACH,MAAO,2BAIT,QACE,MAAO,uBAGb,CAhByB,GAkBZiC,EAAS,CACpB+a,aACE3vB,OAAOqI,gBAAkBrI,OAAOqI,eAAeunB,SAC3C5vB,OAAOqI,eAAeunB,SAASC,KAC/B,QACNhb,WAAY,CACVC,WAAY,WCxBRzM,EAAmBrI,OAAnBqI,eAEK/C,EAAsB,WACjC,OADqCjB,UAAAsD,OAAA,QAAAC,IAAAvD,UAAA,GAAAA,UAAA,GAAGsO,QAEtC,IAAK,QACL,IAAK,MACL,IAAK,cACH,MAAO,wEAMT,QACE,MAAO,6DAGb,CAfmC,GAiBtBrL,EAAiB,CAC5B4O,OAAO,EACP4Z,OAAO,SAAD5sB,OAAkC,QAAlC6sB,EAAW1nB,EAAeunB,gBAAQ,IAAAG,OAAA,EAAvBA,EAAyBjpB,MAC1CkpB,SAAU,MACVC,UAAW,CACTC,WAAY7nB,EAAeyd,KAAKqK,YAAYtd,QAAQ,QAAS,IAC7Dud,gBAAwC,QAAzBC,EAAEhoB,EAAeunB,gBAAQ,IAAAS,OAAA,EAAvBA,EAAyBC,KAO1CC,UAAkC,QAAzBC,EAAEnoB,EAAeunB,gBAAQ,IAAAY,OAAA,EAAvBA,EAAyBC,WACpC5C,KAAM,KACN6C,OAA+B,QAAzBC,EAAEtoB,EAAeunB,gBAAQ,IAAAe,OAAA,EAAvBA,EAAyBD,SCtB/B3U,EAZoB,SAAC6U,GAIzB,IAHA,IAAI5U,GAAc,IAAIjX,MAAOE,cACvBgX,EAAS,GAERD,GAAe4U,GACpB3U,EAAO1S,KAAKyS,GACZA,GAAe,EAGjB,OAAOC,CACT,CAEc4U,CAAkB,MAE1B1U,EAAS,CACb,CACEC,MAAO,UACPhc,MAAO,KAET,CACEgc,MAAO,WACPhc,MAAO,KAET,CACEgc,MAAO,QACPhc,MAAO,KAET,CACEgc,MAAO,QACPhc,MAAO,KAET,CACEgc,MAAO,MACPhc,MAAO,KAET,CACEgc,MAAO,OACPhc,MAAO,KAET,CACEgc,MAAO,OACPhc,MAAO,KAET,CACEgc,MAAO,WACPhc,MAAO,KAET,CACEgc,MAAO,YACPhc,MAAO,KAET,CACEgc,MAAO,UACPhc,MAAO,MAET,CACEgc,MAAO,WACPhc,MAAO,MAET,CACEgc,MAAO,WACPhc,MAAO,OAILic,EAAOhc,MAAMC,KAAK,IAAID,MAAM,KAAK,SAACic,EAAKC,GAAK,OAAKA,EAAQ,CAAC,G,kCCjEhE,iHAGa1M,EAAa,SAACtN,GACzB,IAAMuuB,EAAM,IAAI/rB,KACVgsB,EAAa,IAAIhsB,KAAsB,IAAjBiT,SAASzV,IAG/ByuB,EAAgBC,YAAoBH,EAAKC,GAEzCG,EAAQ7qB,YAAO0qB,GAAcD,EAAK,KAAM,CAC5CK,OAAQC,MAEJC,EAAUhrB,YAAO0qB,GAAcD,EAAK,KAAM,CAC9CK,OAAQC,MAGJE,EAAWjrB,YAAO0qB,GAAcD,EAAK,aAAc,CACvDK,OAAQC,MAeV,OAZIJ,GAAiB,GACH,aACPA,GAAiB,GACb,GAAA9tB,OAAMguB,EAAK,KAAAhuB,OAAImuB,EAAO,KAC1BE,YAAQR,GACJ,WAAA7tB,OAAcguB,EAAK,KAAAhuB,OAAImuB,EAAO,KAClCG,YAAYT,GACR,YAAA7tB,OAAeguB,EAAK,KAAAhuB,OAAImuB,EAAO,KAE/B,GAAAnuB,OAAMouB,EAAQ,KAAApuB,OAAIguB,EAAK,KAAAhuB,OAAImuB,EAAO,IAInD,EAEa/I,EAAqB,SAAC/lB,GACjC,IAAIkvB,EAAgBprB,YAAO,IAAItB,KAAKxC,GAAO,aAAc,CACvD4uB,OAAQC,MASV,OANIG,YAAQhvB,GACVkvB,EAAgB,UACPD,YAAYjvB,KACrBkvB,EAAgB,aAGXA,CACT,C,8FC9CMC,EAAa,WAAH,OACd/f,cAAA,QAAMC,UAAU,eAAcC,SAC5BF,cAAA,OACE2I,MAAM,KACN9C,OAAO,KACPmE,QAAQ,YACR+D,MAAM,6BAA4B7N,SAElCF,cAAA,QACEgO,KAAK,eACLxc,EAAE,8GAGD,EAOIwuB,EAA0B,SAAH3vB,GAAoB,IAAd4vB,EAAM5vB,EAAN4vB,OAexC,OACE9f,eAAA,OAAKF,UAAU,gBAAeC,SAAA,CAZHxR,MAAK+D,WAAC,EAAD4kB,YAAI3oB,MAAMwxB,OAAOD,MAEvB7qB,KAAI,SAACsf,EAAM9J,GAAK,OAAK5K,cAAC+f,EAAU,GAAMnV,EAAS,IAI9Clc,MAAK+D,WAAC,EAAD4kB,YAAI3oB,MAAMwxB,OAT9B,EAS6CD,MAE/B7qB,KAAI,SAACsf,EAAM9J,GAAK,OAAK5K,cAAC+f,EAAU,GAAMnV,EAAS,MAS7E,ECtBa2D,EAAoB,SAAHle,GAavB,IAZLsE,EAAGtE,EAAHsE,IACAgI,EAAKtM,EAALsM,MACA8N,EAAKpa,EAALoa,MACA2O,EAAK/oB,EAAL+oB,MACA3K,EAAQpe,EAARoe,SACAngB,EAAQ+B,EAAR/B,SACAqP,EAAKtN,EAALsN,MACAqT,EAAI3gB,EAAJ2gB,KACApgB,EAAIP,EAAJO,KACA4d,EAAUne,EAAVme,WACArZ,EAAI9E,EAAJ8E,KACA8qB,EAAM5vB,EAAN4vB,OAEMH,EAAgBlvB,EAAOsN,YAAWtN,EAAKiB,YAAc,KAE3D,OACEsO,eAAA,KACE5R,KAAMoG,EACNsL,UAAU,yDAAwDC,SAAA,CAElEC,eAAA,OAAKF,UAAU,gBAAeC,SAAA,CAC5BF,cAAA,OAAKsB,IAAK3E,EAAOgM,MAAM,MAAM9C,OAAO,MAAMsa,IAAI,GAAGxS,QAAQ,SACxDsS,GACC9f,eAAA,OAAKF,UAAU,sDAAqDC,SAAA,CAClEF,cAAA,OAAKC,UAAU,cACfD,cAAA,OAAKC,UAAU,eAAcC,SAC3BF,cAACggB,EAAY,CAACC,OAAQA,SAIlB,UAAT9qB,GACC6K,cAAA,OAAKC,UAAU,eAAcC,SAC3BF,cAAA,OACE2I,MAAM,KACN9C,OAAO,KACPmE,QAAQ,YACRgE,KAAK,OACLD,MAAM,6BAA4B7N,SAElCF,cAAA,QACExO,EAAE,o/BACFwc,KAAK,iBAMf7N,eAAA,OAAKF,UAAU,kBAAiBC,SAAA,CAC7BuK,GACCtK,eAAA,OAAKF,UAAU,qBAAoBC,SAAA,CACjCF,cAAA,OAAKC,UAAU,cACfD,cAAA,OAAKC,UAAU,eAAcC,SAAEuK,OAGnCzK,cAAA,MAAIC,UAAU,gBAAeC,SAAEvC,IAC9BqT,GAAQA,EAAK,IACZhR,cAAA,OACEC,UAAU,sBACVqV,wBAAyB,CAAEC,OAAQvE,EAAK,MAG5C7Q,eAAA,OAAKF,UAAU,OAAMC,SAAA,CAClBuK,GACCzK,cAAA,OAAKC,UAAU,aAAYC,SACzBF,cAAA,QAAAE,SAAOuK,MAGVgE,GACCzO,cAAA,OAAKC,UAAU,aAAYC,SACzBF,cAAA,QAAAE,SAAOuO,MAGVngB,GACC0R,cAAA,OAAKC,UAAU,aAAYC,SACzBF,cAAA,QAAAE,SAAO5R,MAGV8qB,GACCpZ,cAAA,OAAKC,UAAU,aAAYC,SACzBF,cAAA,QAAAE,SAAOkZ,MAGV0G,GACC9f,cAAA,OAAKC,UAAU,aAAYC,SACzBF,cAAA,QAAAE,SAAO4f,MAGVtR,GACCxO,cAAA,OAAKC,UAAU,aAAYC,SACzBF,cAAA,QAAAE,SAAOsO,cAOrB,C","file":"js/global.3c90eb90.chunk.js","sourcesContent":["(() => {\n const select: HTMLSelectElement | null = document.querySelector(\n \"[data-municipality-select]\"\n );\n\n select?.addEventListener(\"change\", (event: any) => {\n window.location.href = event.target.value;\n });\n})();\n","(() => {\n const politicalCandidates: HTMLDivElement[] = Array.from(\n document.querySelectorAll(\"[data-political-candidate]\")\n );\n\n politicalCandidates.forEach((politicalCandidate) => {\n const politicalCandidateHeader: HTMLAnchorElement | undefined =\n politicalCandidate.querySelector(\n \"[data-political-candidate-header]\"\n ) as HTMLAnchorElement;\n\n const politicalCandidateInfo: HTMLDivElement | undefined =\n politicalCandidate.querySelector(\n \"[data-political-candidate-info]\"\n ) as HTMLDivElement;\n\n if (politicalCandidateHeader && politicalCandidateInfo) {\n politicalCandidateHeader.addEventListener(\"click\", (event) => {\n event.preventDefault();\n\n politicalCandidate.classList.toggle(\"show-info\");\n });\n }\n });\n})();\n","const onResize = () => {\n const navigation = document.querySelector(\".navigation-secondary\");\n const navigationList = document.querySelector(\".navigation-secondary__list\");\n\n if (!navigationList || !navigation) {\n return;\n }\n\n navigation.classList.toggle(\n \"is-scrollable\",\n navigationList.scrollWidth > navigationList.clientWidth\n );\n\n navigation.classList.toggle(\n \"show-right\",\n Math.ceil(navigationList.scrollLeft) <\n navigationList.scrollWidth - navigationList.clientWidth\n );\n};\n\nconst onScroll = () => {\n const navigation = document.querySelector(\".navigation-secondary\");\n const navigationList = document.querySelector(\".navigation-secondary__list\");\n\n if (!navigationList || !navigation) {\n return;\n }\n\n navigation.classList.toggle(\"show-left\", navigationList.scrollLeft > 0);\n navigation.classList.toggle(\n \"show-right\",\n Math.ceil(navigationList.scrollLeft) <\n navigationList.scrollWidth - navigationList.clientWidth\n );\n};\n\nwindow.addEventListener(\"resize\", onResize);\nonResize();\n\nconst navigationList = document.querySelector(\".navigation-secondary__list\");\n\nif (navigationList) {\n navigationList.addEventListener(\"scroll\", onScroll);\n onScroll();\n}\n\nconst scrollLeft = document.querySelector(\".scroll-left\");\nconst scrollRight = document.querySelector(\".scroll-right\");\n\nif (scrollLeft && scrollRight) {\n scrollLeft.addEventListener(\"click\", () => {\n if (navigationList) {\n navigationList.scrollBy({\n left: -50,\n behavior: \"smooth\",\n });\n }\n });\n\n scrollRight.addEventListener(\"click\", () => {\n if (navigationList) {\n navigationList.scrollBy({\n left: 50,\n behavior: \"smooth\",\n });\n }\n });\n}\n","class SearchServiceClass {\n search = async (\n query: string,\n facets: string[],\n date: {\n d: string;\n m: string;\n y: string;\n },\n page: number\n ) => {\n const params = new URLSearchParams();\n\n if (query) {\n params.append(\"q\", query);\n }\n\n if (date && (\"d\" in date || \"m\" in date || \"y\" in date)) {\n params.append(\n \"date\",\n `${\"d\" in date ? date.d : \"\"}|${\"m\" in date ? date.m : \"\"}|${\n \"y\" in date ? date.y : \"\"\n }`\n );\n }\n\n facets.forEach((facet) =>\n params.append(\"facets[]\", encodeURIComponent(facet))\n );\n\n if (page) {\n params.append(\"page\", page.toString());\n }\n\n const response = await fetch(\n `/search/json?${decodeURIComponent(params.toString())}`,\n {\n method: \"GET\",\n credentials: \"same-origin\",\n }\n );\n\n const json = await response.json();\n\n return json;\n };\n}\n\nconst SearchService = new SearchServiceClass();\nexport { SearchService };\n","import loadjs from \"loadjs\";\n\nimport { KACHING_CONFIG, KACHING_SCRIPT_URL } from \"consts\";\n\nclass AdServiceInstance {\n kaching: any = null;\n\n loadKaching = () =>\n new Promise((resolve, reject) => {\n const today = new Date();\n const kachingCacheIdentifier = `${today.getFullYear()}${\n today.getMonth() + 1\n }${today.getDate()}${today.getHours()}`;\n\n loadjs(`${KACHING_SCRIPT_URL}?${kachingCacheIdentifier}`, {\n numRetries: 3,\n success: () => {\n this.kaching = new window.KaChing();\n window.kaching = this.kaching;\n resolve(this.kaching);\n },\n error: (depsNotFound) => {\n console.log(depsNotFound);\n },\n });\n });\n\n getVideoURL = () =>\n new Promise(async (resolve, reject) => {\n const kachingTimeoutDelay = 2000;\n let kachingTimeout: ReturnType | null = null;\n\n try {\n if (!this.kaching) {\n await this.loadKaching();\n }\n\n if (this.kaching) {\n let videoURL: string | null = await this.kaching.getVideoUrl();\n\n if (videoURL === null) {\n document.addEventListener(\"KaChing.render.init\", (e: any) => {\n if (e.detail && e.detail.format === \"video\") {\n videoURL = e.detail.url;\n clearTimeout(kachingTimeout!);\n resolve(videoURL);\n }\n });\n\n if (kachingTimeout) {\n clearTimeout(kachingTimeout);\n kachingTimeout = null;\n }\n\n kachingTimeout = setTimeout(() => {\n reject();\n }, kachingTimeoutDelay);\n } else {\n resolve(videoURL);\n }\n }\n } catch (e) {\n console.log(\"❌ Ads error\", e);\n reject(e);\n }\n });\n\n init = async () => {\n if (!this.kaching) {\n await this.loadKaching();\n } else {\n await this.kaching.reset();\n }\n\n const slots = [\n {\n type: \"large_leaderboard\",\n },\n {\n type: \"rectangle\",\n },\n {\n type: \"medium_rectangle\",\n },\n {\n type: \"billboard_leaderboard\",\n },\n ];\n\n slots.map(({ type }) => {\n const adSlots: HTMLDivElement[] = Array.from(\n document.querySelectorAll(`.ad--ad_${type}`)\n );\n\n adSlots.forEach((adSlot, i) => {\n const prefix = type === \"billboard_leaderboard\" ? \"b\" : \"t\";\n adSlot.setAttribute(\"id\", `ad_${type}-${prefix}${i + 1}`);\n this.kaching.defineSlot(type, `${prefix}${i + 1}`);\n });\n\n return null;\n });\n\n await this.kaching.init(KACHING_CONFIG);\n };\n}\n\nconst AdService = new AdServiceInstance();\nexport { AdService };\n","import { format } from \"date-fns\";\n\nimport { getFrontDomain } from \"utils\";\n\nexport class LatestNewsService {\n static getLatestNews = async (location = \"\") => {\n let url = `${getFrontDomain()}/api/news/latest`;\n\n if (location) {\n url += `/${location}`;\n }\n\n const response = await fetch(url, {\n method: \"GET\",\n credentials: \"same-origin\",\n });\n\n return response.json();\n };\n\n static getLatestNewsByDay = async (timestamp: number) => {\n const day = format(new Date(timestamp), \"dd-MM-yyyy\");\n\n const response = await fetch(`${getFrontDomain()}/api/news/daily/${day}`, {\n method: \"GET\",\n credentials: \"same-origin\",\n });\n\n return response.json();\n };\n}\n","export class LocalNewsService {\n static LOCALSTORAGE_KEY = \"bruzzlocalnewslocation\";\n\n static getLocations = () => {\n if (window.drupalSettings && window.drupalSettings.municipalities) {\n return window.drupalSettings.municipalities;\n }\n\n return [];\n };\n}\n","import loadjs from \"loadjs\";\n\nexport class DisqusService {\n static load = () => {\n loadjs(\"https://brusselnieuws.disqus.com/embed.js\", () => {\n // Loaded\n });\n };\n}\n","const NORTV_EVENTS = {\n PAGE_NAVIGATION: \"page navigation\",\n CONTENT_VIEW: \"content view\",\n INTERACTION: \"interaction\",\n FORM_SUBMIT: \"form submit\",\n CLICK_TAG: \"click: artikel label\",\n};\n\nconst isAdmin =\n window.location.href &&\n (window.location.href.includes(\"admin.bruzz.be\") ||\n window.location.href.includes(\"admin-development.bruzz.be\") ||\n window.location.href.includes(\"admin-staging.bruzz.be\"));\n\nclass NORTVTrackingService {\n static init = () => {\n if (isAdmin) return;\n\n // universal data layer\n window.udata = window.udata || [];\n window.pageData = window.pageData || {};\n window.contentData = window.contentData || [];\n\n // clevercast video tracking\n window.myTMS = window.myTMS || {};\n window.myTMS.rmpPlayers = window.myTMS.rmpPlayers || [];\n\n NORTVTrackingService.trackPageView();\n NORTVTrackingService.trackContentView();\n NORTVTrackingService.trackArticleTagClick();\n NORTVTrackingService.trackWebformSubmission();\n };\n\n static trackPageView = () => {\n if (isAdmin) return;\n window.udata.push({\n event_name: NORTV_EVENTS.PAGE_NAVIGATION,\n ...window.pageData,\n });\n };\n\n static trackContentView = () => {\n if (!window.contentData.length || isAdmin) return;\n\n window.udata.push({\n event_name: NORTV_EVENTS.CONTENT_VIEW,\n content: window.contentData,\n });\n };\n\n static trackInteraction = (name?: string, details?: string) => {\n if (isAdmin) return;\n\n window.udata.push({\n event_name: NORTV_EVENTS.INTERACTION,\n interaction_name: name,\n interaction_details1: details,\n });\n };\n\n static trackFormSubmit = (name?: string) => {\n if (isAdmin) return;\n\n window.udata.push({\n event_name: NORTV_EVENTS.FORM_SUBMIT,\n form_name: name,\n });\n };\n\n static trackArticleTagClick = () => {\n if (isAdmin) return;\n\n const tags: NodeListOf =\n document.querySelectorAll(\"[data-nortv-tag]\");\n tags.forEach((tag) => {\n tag.addEventListener(\"click\", () => {\n NORTVTrackingService.trackInteraction(\n NORTV_EVENTS.CLICK_TAG,\n tag.dataset.nortvTag\n );\n });\n });\n };\n\n static trackWebformSubmission = () => {\n if (isAdmin) return;\n\n const webforms = document.querySelectorAll(\"[data-nortv-form]\");\n const pageTitle = document.querySelector(\"h1\");\n\n webforms.forEach((form) => {\n const submitButton = form.querySelector(\".webform-button--submit\");\n\n if (!submitButton) return;\n\n submitButton.addEventListener(\"click\", () => {\n NORTVTrackingService.trackFormSubmit(pageTitle?.innerText);\n });\n });\n };\n\n static trackClevercastVideo = (player: any) => {\n window.myTMS?.rmpPlayers?.push(player);\n };\n}\n\nexport { NORTVTrackingService };\n","const PresetType = {\n PEBBLE: \"PEBBLE\",\n ADHESE: \"ADHESE\",\n};\n\nconst PresetPurposes = {\n PEBBLE: [2, 3, 4, 7, 9],\n ADHESE: [2, 3, 4, 7, 9],\n};\n\nconst CustomConsentType = {\n FUNCTIONAL: 1,\n SOCIAL: 2,\n};\n\nconst init = () => {\n window.__cmp = window.__cmp || (() => {});\n};\n\n/* eslint-disable-next-line */\n// @ts-ignore\nconst getConsentData = () => __cmp(\"noncompliant_getTCData\");\n\nconst getConsentString = () => {\n if (getConsentData()) {\n const { tcString } = getConsentData();\n\n if (tcString) {\n return tcString;\n }\n }\n\n // CMP: default true if consentmanager changes syntax\n return \"\";\n};\n\nconst getPurposeConsent = (id: string) => {\n if (getConsentData()) {\n const { purpose } = getConsentData();\n\n if (purpose) {\n const { consents } = purpose;\n\n if (consents) {\n return Boolean(consents[id]);\n }\n }\n }\n\n // CMP: default true if consentmanager changes syntax\n return true;\n};\n\nconst getCustomPurposeConsent = (id: number) => {\n if (getConsentData()) {\n const { customPurposeConsents } = getConsentData();\n\n if (customPurposeConsents) {\n return Boolean(customPurposeConsents[id]);\n }\n }\n\n // CMP: default true if consentmanager changes syntax\n return true;\n};\n\nconst getPresetConsent = (preset: any) => {\n /* eslint-disable-next-line */\n // @ts-ignore\n const presetPurposes = PresetPurposes[preset];\n\n return presetPurposes.reduce(\n (acc: string, value: string) => acc && getPurposeConsent(value),\n getPurposeConsent(presetPurposes[0]) // init value\n );\n};\n\ninit();\n\nexport {\n getConsentString,\n getPurposeConsent,\n CustomConsentType,\n getCustomPurposeConsent,\n PresetType,\n getPresetConsent,\n};\n","export class ElectoralResultService {\n static formatElectoralBarGraphResults = async (results) => {\n let formattedResults = results;\n\n const {\n parties,\n partiesPerCanton,\n partiesFromFlanders,\n partiesFromBrussels,\n } = results;\n\n if (parties) {\n const { nl, fr } = parties;\n\n if (nl && fr) {\n formattedResults.isMultiLanguage = true;\n }\n }\n\n if (partiesPerCanton) {\n formattedResults.hasCantons = true;\n }\n\n if (partiesFromFlanders && partiesFromBrussels) {\n formattedResults = partiesFromBrussels;\n formattedResults.hasCantons = true;\n formattedResults.activeCanton = \"Vlaams Parlement (heel Vlaanderen)\";\n\n formattedResults.partiesPerCanton = [\n {\n canton: \"Vlaams Parlement (heel Vlaanderen)\",\n complete: partiesFromFlanders.parties[0].complete,\n pollingStationCounted:\n partiesFromFlanders.parties[0].pollingStationCounted,\n pollingStationTotal:\n partiesFromFlanders.parties[0].pollingStationTotal,\n parties: partiesFromFlanders.parties,\n },\n {\n canton: \"Vlaams Parlement (de Brusselaars)\",\n complete: partiesFromBrussels.parties[0].complete,\n pollingStationCounted:\n partiesFromBrussels.parties[0].pollingStationCounted,\n pollingStationTotal:\n partiesFromBrussels.parties[0].pollingStationTotal,\n parties: partiesFromBrussels.parties,\n },\n ];\n }\n\n return formattedResults;\n };\n\n static formatElectoralPieChart2019Results = async (results) => {\n const formattedResults = results;\n\n const { nl, fr, seats } = results;\n\n if (nl && fr) {\n let firstNlParty;\n let firstFrParty;\n\n if (nl.parties && nl.parties.length > 0) {\n [firstNlParty] = nl.parties;\n }\n\n if (fr.parties && fr.parties.length > 0) {\n [firstFrParty] = fr.parties;\n }\n\n formattedResults.hasCantons = true;\n\n formattedResults.cantons = [\n {\n canton: \"Nederlandse taalgroep (VGC)\",\n complete: firstNlParty ? firstNlParty.complete : false,\n pollingStationCounted: firstNlParty\n ? firstNlParty.pollingStationCounted\n : 0,\n pollingStationTotal: firstNlParty\n ? firstNlParty.pollingStationTotal\n : 0,\n parties: nl.parties,\n },\n {\n canton: \"Franse taalgroep (Cocof)\",\n complete: firstFrParty ? firstFrParty.complete : false,\n pollingStationCounted: firstFrParty\n ? firstFrParty.pollingStationCounted\n : 0,\n pollingStationTotal: firstFrParty\n ? firstFrParty.pollingStationTotal\n : 0,\n parties: fr.parties,\n },\n ];\n }\n\n if (seats) {\n formattedResults.total = {\n parties: seats,\n };\n }\n\n return formattedResults;\n };\n\n static fetchElectoralResults = async (dataUrl) => {\n try {\n const response = await fetch(dataUrl, {\n method: \"GET\",\n credentials: \"same-origin\",\n });\n\n return response.json();\n } catch (error) {\n return error;\n }\n };\n\n static getElectoralBarGraph2019Results = async (dataUrl) => {\n const results = await ElectoralResultService.fetchElectoralResults(dataUrl);\n return ElectoralResultService.formatElectoralBarGraphResults(results);\n };\n\n static getElectoralPieChart2019Results = async (dataUrl) => {\n const results = await ElectoralResultService.fetchElectoralResults(dataUrl);\n return ElectoralResultService.formatElectoralPieChart2019Results(results);\n };\n\n static getElectoralResults = async (dataUrl) => {\n const results = await ElectoralResultService.fetchElectoralResults(dataUrl);\n return results;\n };\n}\n","(() => {\n const heroParallaxImgs: NodeListOf | null =\n document.querySelectorAll(\"[data-hero-parallax]\");\n\n const intensity = 0.1;\n\n const setTranslate = (positionFactor: number, el: HTMLElement) => {\n const translateEl = el;\n translateEl.style.transform = `translate3d(0, ${positionFactor}px, 0)`;\n };\n\n const scrollHandler = () => {\n const { pageYOffset } = window;\n\n heroParallaxImgs.forEach((image) => {\n setTranslate(pageYOffset * intensity, image);\n });\n };\n\n const onScroll = () => {\n window.requestAnimationFrame(scrollHandler);\n };\n\n const initParallax = () => {\n window.addEventListener(\"scroll\", onScroll);\n onScroll();\n };\n\n if (heroParallaxImgs) {\n initParallax();\n }\n})();\n","import(\"./app\");\n","(() => {\n const inlineSearch: HTMLFormElement | null = document.querySelector(\n \"[data-inline-search]\"\n );\n\n if (inlineSearch) {\n inlineSearch.addEventListener(\"submit\", (event) => {\n event.preventDefault();\n\n const inputField: HTMLInputElement | null = document.getElementById(\n \"query\"\n ) as HTMLInputElement;\n\n if (inputField) {\n window.location.href = `agenda/search:${inputField.value}`;\n }\n });\n }\n})();\n","(() => {\n const electoralBarGraphContainer = document.querySelector(\n \"#electoral-bar-graph-container\"\n );\n const electoralPieChartContainer = document.querySelector(\n \"#electoral-pie-chart-container\"\n );\n const electoralBarGraph2019Container = document.querySelector(\n \"#electoral-bar-graph-2019-container\"\n );\n const electoralPieChart2019Container = document.querySelector(\n \"#electoral-pie-chart-2019-container\"\n );\n const electoralBarGraph2024Container = document.querySelector(\n \"#electoral-bar-graph-2024-container\"\n );\n const electoralPieChart2024Container = document.querySelector(\n \"#electoral-pie-chart-2024-container\"\n );\n\n if (electoralBarGraphContainer) {\n import(\"./ElectoralBarGraph/ElectoralBarGraph\");\n }\n\n if (electoralPieChartContainer) {\n import(\"./ElectoralPieChart/ElectoralPieChart\");\n }\n\n if (electoralBarGraph2019Container) {\n import(\"./ElectoralBarGraph2019/ElectoralBarGraph2019\");\n }\n\n if (electoralPieChart2019Container) {\n import(\"./ElectoralPieChart2019/ElectoralPieChart2019\");\n }\n\n if (electoralBarGraph2024Container) {\n import(\"./ElectoralBarGraph2024/ElectoralBarGraph2024\");\n }\n\n if (electoralPieChart2024Container) {\n import(\"./ElectoralPieChart2024/ElectoralPieChart2024\");\n }\n})();\n","(() => {\n const brusselStemtContainer: HTMLDivElement | null = document.querySelector(\n \".js-brussel-stemt-container\"\n );\n\n if (brusselStemtContainer) {\n const { title, intro } = brusselStemtContainer.dataset;\n\n import(\"./app\").then(({ renderBrusselStemt }) => {\n renderBrusselStemt(brusselStemtContainer, title, intro);\n });\n }\n})();\n","import { NORTVTrackingService } from \"services\";\nimport { formatDate } from \"utils\";\n\n(() => {\n const dynamicDates: HTMLElement[] = Array.from(\n document.querySelectorAll(\"[data-dynamic-date]\")\n );\n\n dynamicDates.forEach((dynamicDate) => {\n const dateText = dynamicDate.dataset.dynamicDate || \"\";\n\n dynamicDate.textContent = formatDate(dateText);\n });\n\n NORTVTrackingService.init();\n})();\n\n(() => {\n const urlParams = new URLSearchParams(window.location.search);\n const email = urlParams.get(\"email\");\n\n if (email) {\n const emailInput = document.getElementById(\n \"edit-email\"\n ) as HTMLInputElement;\n if (emailInput) {\n emailInput.value = decodeURIComponent(email);\n }\n }\n\n const editIntervalDay = document.getElementById(\n \"edit-interval-day\"\n ) as HTMLInputElement;\n if (editIntervalDay) {\n editIntervalDay.checked = true;\n }\n})();\n\n(() => {\n const emailInput = document.getElementById(\n \"newsletter-email-cta\"\n ) as HTMLInputElement;\n const button = document.getElementById(\n \"newsletter-email-button\"\n ) as HTMLButtonElement;\n\n if (emailInput && button) {\n const validateEmail = (email: string) => {\n return email.match(/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/);\n };\n\n const toggleError = (show: boolean) => {\n const errorMessage = document.querySelector(\n \".newsletter-email-error-message\"\n );\n\n if (errorMessage instanceof HTMLElement) {\n errorMessage.style.display = show ? \"block\" : \"none\";\n }\n };\n\n const handleSubmit = (e: Event) => {\n e.preventDefault();\n const emailValue = emailInput.value;\n const url = button.closest(\"a\")?.getAttribute(\"href\");\n\n if (!validateEmail(emailValue)) {\n toggleError(true);\n return;\n }\n\n toggleError(false);\n\n if (url) {\n const separator = url.includes(\"?\") ? \"&\" : \"?\";\n const baseUrl = url.split(\"?\")[0];\n const newUrl = `${baseUrl}${separator}email=${encodeURIComponent(\n emailValue\n )}`;\n window.location.href = newUrl;\n }\n };\n\n button.addEventListener(\"click\", handleSubmit);\n emailInput.addEventListener(\"keypress\", (e) => {\n if (e.key === \"Enter\") {\n handleSubmit(e);\n }\n });\n }\n})();\n","export const embedConfig = {\n initConsent: true,\n handleOnClick: () => {\n window.__cmp(\"showScreen\", null, null);\n },\n addListener: true,\n message:\n \"Hier staat een bericht dat wij overnamen van sociale media, dat cookies wilt gebruiken waarvoor je geen toestemming hebt gegeven. Klik hier om die toestemming alsnog te geven en dit bericht te lezen.\",\n};\n","import { FC } from \"react\";\n\nimport { embedConfig } from \"./config\";\n\ninterface Props {\n onButtonClick: () => void;\n}\n\nexport const EmbedBlocker: FC = ({ onButtonClick }) => (\n
\n
\n
{embedConfig.message}
\n \n \n Cookies aanpassen\n \n
\n
\n);\n","import { useState, useEffect, FC } from \"react\";\n\nimport { CustomConsentType, getCustomPurposeConsent } from \"services\";\n\nimport { embedConfig } from \"./config\";\n\nimport { EmbedBlocker } from \"./EmbedBlocker\";\n\ninterface Props {\n children: React.ReactNode;\n}\n\nexport const EmbedBlockerContainer: FC = ({ children }) => {\n const [consent, setConsent] = useState(embedConfig.initConsent);\n\n useEffect(() => {\n if (!embedConfig.addListener) {\n return;\n }\n\n window.__cmp(\n \"addEventListener\",\n [\n \"consent\",\n () => {\n setConsent(getCustomPurposeConsent(CustomConsentType.SOCIAL));\n },\n false,\n ],\n null\n );\n }, []);\n\n return consent ? (\n children\n ) : (\n \n );\n};\n","import { FC, useEffect } from \"react\";\nimport parse from \"html-react-parser\";\n\ninterface Props {\n embed: string;\n}\n\nexport const Embed: FC = ({ embed }) => {\n useEffect(() => {\n if (window.instgrm) {\n window.instgrm.Embeds.process();\n }\n }, []);\n\n return (\n
\n {parse(embed, {\n replace(domNode) {\n if (domNode.type === \"script\") {\n const script = document.createElement(\"script\");\n script.src = domNode.attribs.src;\n script.async = true;\n document.head.appendChild(script);\n }\n },\n })}\n
\n );\n};\n","import ReactDOM from \"react-dom/client\";\n\nimport { EmbedBlockerContainer } from \"./EmbedBlockerContainer\";\nimport { Embed } from \"./Embed\";\n\n(() => {\n const embeds: HTMLDivElement[] = Array.from(\n document.querySelectorAll(\"[data-html-embed]\")\n );\n\n embeds.forEach((embed) => {\n const embedCode = decodeURIComponent(embed.dataset.htmlEmbed || \"\");\n const root = ReactDOM.createRoot(embed);\n\n root.render(\n \n \n \n );\n });\n})();\n","import ReactDOM from \"react-dom/client\";\nimport { Toaster } from \"react-hot-toast\";\n\n(() => {\n const toast = document.querySelector(\".js-hot-toast\");\n\n if (!toast) {\n return;\n }\n\n const root = ReactDOM.createRoot(toast);\n\n if (root) {\n root.render();\n }\n})();\n","import { DisqusService } from \"services\";\n\nconst commentsContainer: HTMLElement | null =\n document.querySelector(\"[data-comments]\");\n\nif (commentsContainer) {\n const openButton: HTMLElement | null = commentsContainer.querySelector(\n \"[data-comments-open]\"\n );\n\n if (commentsContainer && openButton) {\n const disqusContainer: HTMLElement | null =\n commentsContainer.querySelector(\"[data-disqus]\");\n\n if (disqusContainer) {\n openButton.addEventListener(\"click\", () => {\n DisqusService.load();\n commentsContainer.classList.add(\"is-active\");\n });\n }\n }\n}\n","import loadjs from \"loadjs\";\nimport { config } from \"consts\";\n\nimport { KachingOptions, KachingPlayerConfig } from \"@types\";\nimport { AdService, NORTVTrackingService } from \"services\";\n\nexport class Clevercast {\n private container: HTMLElement | null = null;\n private player: any = null;\n private play: () => void = () => {};\n private pause: () => void = () => {};\n\n constructor(container: HTMLElement) {\n this.container = container;\n this.init();\n }\n\n init = () => {\n loadjs(\"https://player.clevercast.com/js/api.min.js\", {\n numRetries: 3,\n success: this.loadSuccess,\n error: (depsNotFound: any) => {\n console.log(depsNotFound);\n },\n });\n };\n\n getCommUrl = () =>\n new Promise(async (resolve, reject) => {\n try {\n const url = (await AdService.getVideoURL()) as string;\n\n resolve(url);\n } catch (e) {\n resolve(\"\");\n }\n });\n\n loadSuccess = async () => {\n if (this.container && !this.container.dataset?.clevercastLoaded) {\n this.container.dataset.clevercastLoaded = \"true\";\n\n const { id } = this.container;\n const { itemId } = this.container.dataset;\n\n const options: KachingOptions = {\n autoplay: false,\n autoload: \"off\",\n captions_default: \"nl\",\n captions_default_show: true,\n chromecast: true,\n account_id: config.CLEVERCAST.ACCOUNT_ID,\n item_id: itemId,\n comm_url: await this.getCommUrl(),\n comm_url_prefetch: false,\n };\n\n const playerConfig: KachingPlayerConfig = {\n id,\n responsive: true,\n options,\n };\n\n this.player = new (window as any).RMP(playerConfig);\n NORTVTrackingService.trackClevercastVideo(this.player);\n }\n\n this.play = () => {\n this.player?.play();\n };\n\n this.pause = () => {\n this.player?.pause();\n };\n };\n}\n","import { Clevercast } from \"./Clevercast\";\n\nconst initContainers = () => {\n const clevercastContainers: NodeListOf =\n document.querySelectorAll(\"[data-clevercast-video]\");\n\n Array.from(clevercastContainers).forEach(async (clevercastContainer) => {\n new Clevercast(clevercastContainer);\n });\n};\n\nconst init = () => {\n const consentStatus = window.__cmp(\"consentStatus\");\n\n const onConsentStatusReady = () => {\n const { consentExists, consentData } = window.__cmp(\"consentStatus\");\n\n if (consentExists && consentData) {\n initContainers();\n } else {\n initContainers();\n\n window.__cmp(\n \"addEventListener\",\n [\"consent\", onConsentStatusReady, false],\n null\n );\n }\n };\n\n if (consentStatus?.consentData !== \"\") {\n initContainers();\n } else {\n initContainers();\n\n window.__cmp(\n \"addEventListener\",\n [\"settings\", onConsentStatusReady, false],\n null\n );\n }\n};\n\n(() => {\n const video = document.querySelector(\"[data-video]\");\n const youtubeEmbeds = document.querySelectorAll(\".wm-embed-youtube\");\n\n if (video) {\n init();\n }\n\n if (youtubeEmbeds) {\n youtubeEmbeds.forEach((youtubeEmbed) => {\n // Add tracking attribute to youtube embeds.\n youtubeEmbed.setAttribute(\"data-tms-video-percent\", \"0,25,50,75,100\");\n });\n }\n})();\n\nexport { init as initClevercastContainers };\n","import { BASE_URL } from \"consts\";\n\n(() => {\n const links: HTMLAnchorElement[] = Array.from(\n document.querySelectorAll(`a[href*='bruzz.be/live/popup']`)\n );\n\n const openPopupFromLink = (type: string) => (event: any) => {\n event.preventDefault();\n\n return window.open(\n `${BASE_URL}/live/popup#${type}`,\n \"popup\",\n \"width=440,height=710\"\n );\n };\n\n links.map((link) => {\n const type =\n link.href.indexOf(\"#\") !== -1\n ? link.href.substring(link.href.indexOf(\"#\") + 1)\n : \"listen\";\n\n if (type) {\n return (link.onclick = openPopupFromLink(type));\n }\n\n return null;\n });\n\n const openPopup = (type?: string, radio?: string) => {\n window.close();\n window.open(\n `${BASE_URL}/live/popup/#/${radio}${type ? `/${type}` : type}`,\n \"popup\",\n \"width=440,height=710\"\n );\n };\n\n const popupTriggers: HTMLDivElement[] = Array.from(\n document.querySelectorAll(\"[data-popup]\")\n );\n\n popupTriggers.forEach((popup) => {\n popup.addEventListener(\"click\", () => {\n openPopup(popup.dataset.type, popup.dataset.radio || \"bruzz\");\n });\n });\n\n const appIframe: HTMLIFrameElement | null = document.getElementById(\n \"liveFrame\"\n ) as HTMLIFrameElement;\n\n if (appIframe) {\n const receiveMessage = (event: any) => {\n if (!isNaN(event.data)) {\n appIframe.height = event.data;\n appIframe.style.height = `${event.data}px`;\n }\n };\n\n window.addEventListener(\"message\", receiveMessage, false);\n window.setInterval(() => {\n if (\n appIframe.contentWindow?.document.getElementsByTagName(\"body\")\n .length !== 0\n ) {\n const iframeBody =\n appIframe.contentWindow?.document.getElementsByTagName(\"body\")[0];\n\n if (iframeBody) {\n if (iframeBody.scrollHeight !== parseInt(appIframe.height)) {\n window.parent.postMessage(iframeBody.scrollHeight, \"*\");\n }\n }\n }\n }, 800);\n }\n})();\n","import toast from \"react-hot-toast\";\n\n(() => {\n const linkShare =\n document.querySelectorAll(\".js-link-share\");\n\n linkShare.forEach((link) => {\n link.addEventListener(\"click\", (e) => {\n e.preventDefault();\n\n const { copy } = link.dataset;\n\n navigator.clipboard.writeText(window.location.href).then(() => {\n toast.success(copy as string, {\n duration: 2000,\n style: {\n fontSize: \"1.2rem\",\n },\n ariaProps: {\n role: \"status\",\n \"aria-live\": \"polite\",\n },\n });\n });\n });\n });\n})();\n","import { disableBodyScroll, enableBodyScroll } from \"body-scroll-lock\";\n\n(() => {\n let lastScrollTop: number;\n\n const header: HTMLElement | null = document.querySelector(\"[data-header]\");\n const hamburger: HTMLButtonElement | null =\n document.querySelector(\"[data-hamburger]\");\n const overlayMenu: HTMLDivElement | null = document.querySelector(\n \"[data-overlay-menu]\"\n );\n const overlayMenuClose: HTMLDivElement | null = document.querySelector(\n \"[data-overlay-close]\"\n );\n\n if (header && hamburger && overlayMenu && overlayMenuClose) {\n const onOverlayOpen = () => {\n hamburger.setAttribute(\"aria-expanded\", \"true\");\n overlayMenu.classList.add(\"is-open\");\n disableBodyScroll(overlayMenu);\n };\n\n const onOverlayClose = () => {\n hamburger.setAttribute(\"aria-expanded\", \"false\");\n overlayMenu.classList.remove(\"is-open\");\n enableBodyScroll(overlayMenu);\n };\n\n hamburger.addEventListener(\"click\", onOverlayOpen);\n overlayMenuClose.addEventListener(\"click\", onOverlayClose);\n }\n\n const onScroll = () => {\n if (header) {\n const scrollTop =\n window.pageYOffset || document.documentElement.scrollTop;\n\n if (scrollTop > lastScrollTop && scrollTop > 50) {\n header.style.top = header.offsetHeight * -1 + \"px\";\n } else {\n header.style.top = \"0\";\n }\n\n lastScrollTop = scrollTop;\n }\n };\n\n if (header) {\n window.addEventListener(\"scroll\", onScroll);\n }\n})();\n","import { AdService } from \"services\";\n\n(() => {\n AdService.init();\n})();\n","import \"flickity-imagesloaded\";\nimport Flickity from \"flickity\";\nimport \"flickity/css/flickity.css\";\n\n(() => {\n const galleries: HTMLDivElement[] = Array.from(\n document.querySelectorAll(\"[data-gallery]\")\n );\n\n const initGallery = (gallery: HTMLElement) => {\n const { pageDots } = gallery.dataset;\n\n const flkty = new Flickity(gallery, {\n freeScroll: false,\n contain: true,\n imagesLoaded: true,\n prevNextButtons: true,\n pageDots: Boolean(pageDots),\n wrapAround: false,\n cellAlign: \"left\",\n groupCells: true,\n });\n\n const layout = () => {\n const imgs: HTMLImageElement[] = Array.from(\n gallery.querySelectorAll(\"img\")\n );\n\n imgs.forEach((img) => {\n const imgSlideParent: HTMLDivElement | null =\n img.closest(\".gallery__slide\");\n\n if (imgSlideParent) {\n imgSlideParent.style.width = `${img.getBoundingClientRect().width}px`;\n }\n });\n\n flkty.reloadCells();\n flkty.resize();\n };\n\n window.onload = () => {\n layout();\n };\n\n window.onresize = () => {\n layout();\n };\n\n flkty.on(\"settle\", () => {\n layout();\n });\n\n const io = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting === true) {\n layout();\n\n io.unobserve(gallery);\n }\n });\n });\n\n io.observe(gallery);\n };\n\n galleries.forEach((gallery) => initGallery(gallery));\n})();\n","import { FC } from \"react\";\n\nimport { Field } from \"react-final-form\";\n\ninterface Props {\n name: string;\n}\n\nexport const SearchFilter: FC = ({ name }) => (\n
\n \n {({ input }) => (\n \n )}\n \n
\n);\n","import { FC } from \"react\";\n\nimport { Field } from \"react-final-form\";\n\ninterface Props {\n name: string;\n option: {\n key: string;\n title: string;\n };\n}\n\nexport const RadioFilterOption: FC = ({ name, option }) => (\n \n {({ input }) => {\n return (\n
\n \n \n {option.title}\n \n
\n );\n }}\n
\n);\n","const generateYears = () => {\n const currentYear = new Date().getFullYear();\n const result = [];\n\n for (let i = 0; i < 3; i += 1) {\n result.push(currentYear + i);\n }\n\n return result;\n};\n\nconst years = generateYears();\n\nconst months: { label: string; value: string }[] = [\n {\n label: \"Januari\",\n value: \"1\",\n },\n {\n label: \"Februari\",\n value: \"2\",\n },\n {\n label: \"Maart\",\n value: \"3\",\n },\n {\n label: \"April\",\n value: \"4\",\n },\n {\n label: \"Mei\",\n value: \"5\",\n },\n {\n label: \"Juni\",\n value: \"6\",\n },\n {\n label: \"Juli\",\n value: \"7\",\n },\n {\n label: \"Augustus\",\n value: \"8\",\n },\n {\n label: \"September\",\n value: \"9\",\n },\n {\n label: \"Oktober\",\n value: \"10\",\n },\n {\n label: \"November\",\n value: \"11\",\n },\n {\n label: \"December\",\n value: \"12\",\n },\n];\n\nconst days = Array.from(new Array(31), (val, index) => index + 1);\n\nexport { days, months, years };\n","import { FC } from \"react\";\n\nimport { Field } from \"react-final-form\";\n\nimport { days, months, years } from \"../constants/dates\";\n\ninterface Props {\n values?: any;\n label: string;\n show: boolean;\n}\n\nexport const DateFilter: FC = ({ values, label, show }) => (\n
\n
\n \n \n {({ input }) => {\n if (values.date_ranges && values.date_ranges !== \"custom\") {\n /* eslint-disable-next-line */\n // @ts-ignore\n input.onChange();\n }\n\n return (\n \n );\n }}\n \n
\n
\n \n
\n
\n \n
\n
\n);\n","import { useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { RadioFilterOption } from \"./RadioFilterOption\";\nimport { DateFilter } from \"./DateFilter\";\n\nconst RadioFilter = ({\n values,\n label,\n name,\n options,\n expandable,\n expandableLimit,\n expandableMoreText,\n expandableLessText,\n highlighted,\n}) => {\n const [expanded, setExpanded] = useState(false);\n\n const fmlDunnoLength = options.length;\n const processedOptions = expanded\n ? options\n : options.slice(0, expandableLimit);\n\n const showCustomDate =\n name === \"date_ranges\" && values.date_ranges === \"custom\";\n\n return (\n \n

{label}

\n
\n {processedOptions.map((option) => (\n \n ))}\n
\n \n {expandable && fmlDunnoLength > expandableLimit && (\n setExpanded(!expanded)}\n type=\"button\"\n >\n {expanded ? expandableLessText : expandableMoreText}\n \n )}\n \n );\n};\n\nRadioFilter.propTypes = {\n values: PropTypes.shape({}),\n label: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n })\n ).isRequired,\n expandable: PropTypes.bool,\n expandableLimit: PropTypes.number,\n expandableMoreText: PropTypes.string,\n expandableLessText: PropTypes.string,\n highlighted: PropTypes.bool,\n};\n\nRadioFilter.defaultProps = {\n values: {},\n expandable: false,\n expandableLimit: Infinity,\n expandableMoreText: \"\",\n expandableLessText: \"\",\n highlighted: false,\n};\n\nexport default RadioFilter;\n","import { FC } from \"react\";\n\nimport { Field } from \"react-final-form\";\n\ninterface Props {\n filter: {\n key: string;\n title: string;\n type: string;\n options: any[];\n };\n value: string;\n}\n\nexport const RadioFilterIndicator: FC = ({ filter, value }) => {\n if (!value || value === \"\" || filter.type === \"date\") {\n return null;\n }\n\n let selectedOptionsString = \"\";\n\n if (filter.type === \"radios\") {\n const selectedOptionsAsString = filter.options\n .filter((option) => value === option.key)\n .map((option) => option.title);\n\n if (selectedOptionsAsString.length <= 2) {\n selectedOptionsString = selectedOptionsAsString.join(\" en \");\n }\n\n if (selectedOptionsAsString.length > 2) {\n const first = selectedOptionsAsString.slice(0, -1);\n const second = selectedOptionsAsString.slice(\n selectedOptionsAsString.length - 1\n );\n\n selectedOptionsString = `${first.join(\", \")} en ${second[0]}`;\n }\n } else {\n selectedOptionsString = value;\n }\n\n return (\n \n {({ input }) => (\n {\n /* eslint-disable-next-line */\n // @ts-ignore\n input.onChange();\n }}\n type=\"button\"\n >\n {filter.title}: {selectedOptionsString}\n \n )}\n \n );\n};\n","import { Form, FormSpy } from \"react-final-form\";\n\nimport { SearchFilter } from \"./SearchFilter\";\nimport RadioFilter from \"./RadioFilter\";\nimport { RadioFilterIndicator } from \"./RadioFilterIndicator\";\nimport { FC } from \"react\";\n\ninterface Props {\n filters: any;\n values: any;\n setValues: (values: any) => void;\n showResults: (values: any) => void;\n}\n\nexport const Filters: FC = ({ filters, values, setValues }) => {\n let t: any = null;\n\n return (\n
\n {({ values: finalFormValues, handleSubmit, form }) => (\n \n {Object.keys(values).length > 0 && (\n <>\n
\n
\n {filters.map((filter: any) => (\n \n ))}\n
\n
\n {\n form.reset({});\n form.submit();\n }}\n >\n Wis alle filters\n \n
\n
\n \n )}\n
\n {filters.map((filter: any, index: number) => {\n let filterComponent = null;\n\n switch (filter.type) {\n case \"text\":\n filterComponent = ;\n break;\n case \"radios\":\n filterComponent = (\n \n );\n break;\n default:\n return false;\n }\n\n return filterComponent;\n })}\n
\n \n {({ values: formSpyValues, dirty }) => {\n if (dirty) {\n if (typeof formSpyValues.search !== \"undefined\") {\n if (formSpyValues.search.length > 2) {\n clearTimeout(t);\n\n t = setTimeout(() => {\n form.submit();\n form.reset();\n }, 500);\n }\n } else {\n form.submit();\n form.reset();\n }\n }\n\n return null;\n }}\n \n
\n )}\n \n );\n};\n","import React, { FC, useState } from \"react\";\n\ninterface Props {\n loading: boolean;\n sidebar: React.ReactElement;\n content: React.ReactElement;\n}\n\nexport const EventSearch: FC = ({ loading, sidebar, content }) => {\n const [sidebarOpen, setSidebarOpen] = useState(false);\n\n return (\n
\n
\n setSidebarOpen(!sidebarOpen)}\n >\n \n Open filters\n \n \n \n \n \n \n
{sidebar}
\n
\n
\n {content}\n
\n
\n );\n};\n","import { FC } from \"react\";\n\nimport { Teaser } from \"components/molecules/teaser/Teaser\";\n\ninterface Props {\n event: {\n title: string;\n date: string;\n category: string;\n location: string;\n url: string;\n image: string;\n isMust: boolean;\n isSelect: boolean;\n languages: string[];\n languageUrls: {\n [key: string]: string;\n };\n key: string;\n };\n}\n\nexport const EventSearchTeaser: FC = ({ event }) => {\n let eventLabel = null;\n let eventImage = event.image;\n\n if (event.isMust) {\n eventLabel = \"Must\";\n } else if (event.isSelect) {\n eventLabel = \"Bruzz select\";\n }\n\n if (eventImage === null || eventImage === \"\") {\n const { agendaFallbackImage } = window.drupalSettings;\n eventImage = agendaFallbackImage;\n }\n\n return (\n \n );\n\n /* return (\n \n \n \n
\n
\n
\n
{event.date}
\n
\n
\n
\n {eventLabel && {eventLabel}}\n {event.date && (\n
{event.date}
\n )}\n

\n \n {event.title}\n \n

\n
\n {event.category && (\n
{event.category}
\n )}\n {event.location && (\n \n \n \n \n {event.location}\n \n )}\n {event.languages && event.languages.length > 0 && (\n
\n \n \n \n\n Ook in:\n {event.languages.map((eventLanguage: any) => {\n if (event.languageUrls && event.languageUrls[eventLanguage]) {\n return (\n \n {eventLanguage}\n \n );\n }\n\n return (\n {eventLanguage}\n );\n })}\n
\n )}\n
\n
\n
\n ); */\n};\n","import { FC } from \"react\";\nimport ReactPaginate from \"react-paginate\";\n\ninterface Props {\n pageCount: number;\n activePage: number;\n changePage: (page: number) => void;\n}\n\nexport const EventSearchPager: FC = ({ pageCount, activePage, changePage }) => {\n const handleChangePage = (event: any) => {\n const page = event.selected + 1;\n\n changePage(page);\n window.scrollTo(0, 0);\n };\n\n return (\n
\n \n
\n );\n};\n","class FiltersConverterService {\n static converters = {\n radioConverter: {\n parse: (string: string, filter: any) => {\n const option = filter.options.find((xxx: any) => xxx.key === string);\n\n return option.key;\n },\n stringify: (option: string, filter: any) => {\n const slugs = [];\n\n const filterOption = filter.options.find(\n (xxx: any) => xxx.key === option\n );\n\n if (filterOption) {\n slugs.push(filterOption.key);\n }\n\n return slugs.join(\",\");\n },\n },\n textConverter: {\n parse: (string: string) => string,\n stringify: (string: string) => string,\n },\n };\n\n static stringify = (values: any, filters: any, filterConverters: any) => {\n const parts: string[] = [];\n\n Object.keys(values).forEach((key) => {\n const filter = filters.find((xxx: any) => xxx.key === key);\n\n const { key: filterKey } = filter;\n\n const value = filterConverters[key].stringify(values[key], filter);\n\n if (filterKey && value) {\n parts.push(`${filterKey}:${value}`);\n }\n });\n\n return parts.join(\"/\") || \"\";\n };\n\n static parse = (string: string, filters: any, filterConverters: any) => {\n const parts = string.split(\"/\");\n const object: any = {};\n\n parts.forEach((part) => {\n const slug = part.split(\":\")[0];\n const valueAsString = part.split(\":\")[1];\n\n if (slug && valueAsString) {\n const filter = filters.find((xxx: any) => xxx.key === slug);\n\n const { key } = filter;\n const value = filterConverters[key].parse(valueAsString, filter);\n\n object[key] = value;\n }\n }, {});\n\n return object;\n };\n}\n\nexport default FiltersConverterService;\n","class EventSearchService {\n static search = async (values: any, page = 0) => {\n const parameters: any = {\n page,\n };\n\n Object.keys(values).forEach((key) => {\n if (\n key === \"search\" ||\n key === \"day\" ||\n key === \"month\" ||\n key === \"year\"\n ) {\n parameters[key] = values[key];\n } else {\n parameters[key] = [values[key]];\n }\n });\n\n const response = await fetch(\"/api/publiq/search\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(parameters),\n });\n\n const json = await response.json();\n\n return {\n results: json.events,\n pagination: {\n currentPage: json.page,\n total: json.totalItems,\n totalPages: json.pages,\n },\n };\n };\n}\n\nexport default EventSearchService;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { BrowserRouter, Route } from \"react-router-dom\";\n\nimport { Filters } from \"./filters/Filters\";\nimport { EventSearch } from \"./EventSearch\";\nimport { EventSearchTeaser } from \"./EventSearchTeaser\";\nimport { EventSearchPager } from \"./EventSearchPager\";\n\nimport FiltersConverterService from \"./services/FiltersConverterService\";\nimport EventSearchService from \"./services/EventSearchService\";\n\nclass EventSearchOverview extends React.Component {\n constructor(props) {\n super(props);\n\n const { agendaPath } = window;\n\n this.state = {\n loading: false,\n results: [],\n pagination: {\n currentPage: 0,\n total: 0,\n totalPages: 0,\n },\n };\n\n this.basePath = agendaPath || \"/uitagenda\";\n this.filters = window.filters;\n this.filterConverters = {\n search: FiltersConverterService.converters.textConverter,\n labels: FiltersConverterService.converters.radioConverter,\n date_ranges: FiltersConverterService.converters.radioConverter,\n day: FiltersConverterService.converters.textConverter,\n month: FiltersConverterService.converters.textConverter,\n year: FiltersConverterService.converters.textConverter,\n topics: FiltersConverterService.converters.radioConverter,\n };\n }\n\n componentDidMount = () => {\n this.search().then();\n };\n\n componentDidUpdate = (prevProps) => {\n /* eslint-disable */\n const hasUpdatedFilters =\n this.props.location.pathname !== prevProps.location.pathname;\n const hasUpdatedPage = this.props.location.hash !== prevProps.location.hash;\n\n if (hasUpdatedFilters || hasUpdatedPage) {\n this.search().then();\n }\n /* eslint-enable */\n };\n\n search = async () => {\n const values = this.getFilterValues();\n const page = this.getPage();\n\n const timeout = setTimeout(() => {\n this.setState({ loading: true });\n }, 400);\n\n this.setState(\n {\n ...(await EventSearchService.search(values, page)),\n loading: false,\n },\n () => {\n window.clearTimeout(timeout);\n }\n );\n };\n\n getFilterValues = () => {\n const {\n location: { pathname },\n } = this.props;\n\n const filtersString = pathname.replace(this.basePath, \"\");\n\n return FiltersConverterService.parse(\n filtersString,\n this.filters,\n this.filterConverters\n );\n };\n\n setFilterValues = (values) => {\n const { history } = this.props;\n\n history.push(\n `${this.basePath}/${FiltersConverterService.stringify(\n values,\n this.filters,\n this.filterConverters\n )}`\n );\n };\n\n getPage = () => {\n const hash = window.location.hash.replace(\"#\", \"\");\n\n return isNaN(+hash) ? 0 : +hash; // eslint-disable-line\n };\n\n setPage = (page) => {\n window.location.hash = page - 1;\n };\n\n showResults = () => {\n if (window.toggleFilterPageSidebar) {\n window.toggleFilterPageSidebar();\n }\n };\n\n render = () => {\n const { loading, results, pagination } = this.state;\n\n const sidebar = (\n \n );\n\n const content = (\n <>\n
\n
\n {pagination.total}{\" \"}\n {pagination.total === 1 ? \"resultaat\" : \"resultaten\"}\n
\n
\n
\n {results.map((event) => (\n \n \n \n ))}\n
\n {pagination.totalPages > 1 && (\n \n )}\n \n );\n\n return (\n \n );\n };\n}\n\nconst EventSearchOverviewWithRouter = () => (\n \n \n \n);\n\nEventSearchOverview.propTypes = {\n location: PropTypes.objectOf(PropTypes.any).isRequired,\n history: PropTypes.shape({}).isRequired,\n};\n\nexport default EventSearchOverviewWithRouter;\n","import ReactDOM from \"react-dom/client\";\n\nimport EventSearchOverview from \"./EventSearchOverview\";\n\n(() => {\n const eventSearchOverviewContainer = document.querySelector(\n \"[data-events-search-container]\"\n );\n\n if (eventSearchOverviewContainer) {\n const root = ReactDOM.createRoot(eventSearchOverviewContainer);\n\n root.render();\n }\n})();\n","import ReactDOM from \"react-dom/client\";\n\n(() => {\n import(\"./Feedback\").then(({ default: Feedback }) => {\n const rootEl: HTMLDivElement | null = document.querySelector(\"#feedback\");\n\n if (rootEl) {\n const root = ReactDOM.createRoot(rootEl);\n\n root.render();\n }\n });\n})();\n","import { FC, useLayoutEffect, useRef, useState } from \"react\";\nimport { formatDate } from \"utils\";\n\ninterface Props {\n item: {\n created: string;\n html: string;\n };\n}\n\nexport const TimelineItem: FC = ({ item }) => {\n const timelineTeaserRef = useRef(null);\n const [, setFormattedDate] = useState(\"\");\n\n useLayoutEffect(() => {\n const updateDate = () => {\n const dynamicDateElement: HTMLDivElement | null | undefined = timelineTeaserRef.current?.querySelector(\"[data-dynamic-date]\");\n if (dynamicDateElement) {\n const date = dynamicDateElement.dataset.dynamicDate;\n const newFormattedDate = formatDate(date || \"\");\n \n console.log(\"test\")\n // Update state to trigger re-render\n setFormattedDate(newFormattedDate);\n // Also update the textContent for the dynamic date element\n dynamicDateElement.textContent = newFormattedDate;\n }\n };\n\n updateDate();\n\n const intervalId = setInterval(() => {\n updateDate();\n }, 60000);\n\n return () => {\n clearInterval(intervalId);\n };\n }, []);\n\n return (\n \n );\n};\n","import React, { FC, useEffect } from \"react\";\n\nimport { LatestNewsService } from \"services\";\nimport { formatTimelineDate } from \"utils\";\n\nimport { TimelineItem } from \"./TimelineItem\";\n\ninterface Props {\n day: number;\n allowPolling: boolean;\n}\n\nexport const TimelineDay: FC = ({ day, allowPolling }) => {\n const [items, setItems] = React.useState([]);\n const [newItems, setNewItems] = React.useState([]);\n\n useEffect(() => {\n const loadDay = async () => {\n const items = await LatestNewsService.getLatestNewsByDay(day);\n\n setItems(items);\n };\n\n loadDay();\n }, [day]);\n\n useEffect(() => {\n const checkForUpdates = async () => {\n const newItems = await LatestNewsService.getLatestNewsByDay(day);\n\n setNewItems(newItems);\n };\n\n if (allowPolling) {\n const interval = setInterval(() => {\n checkForUpdates();\n }, 10 * 1000);\n\n return () => clearInterval(interval);\n }\n }, [day, allowPolling]);\n\n useEffect(() => {\n if (newItems.length > 0) {\n setItems(newItems);\n }\n }, [newItems]);\n\n const showUpdates = () => {\n setItems(newItems);\n };\n\n const renderShowUpdates = () => {\n const updates = newItems.length - items.length;\n\n if (updates <= 0) {\n return null;\n }\n\n const buttonText =\n updates === 1 ? (\n \n Toon 1 nieuwe update\n \n ) : (\n \n Toon de {updates} nieuwe updates\n \n );\n\n return (\n \n \n \n \n {buttonText}\n \n );\n };\n\n return (\n
\n {renderShowUpdates()}\n

{formatTimelineDate(day)}

\n {items.length === 0 && (\n

Er is nog geen nieuws voor deze dag.

\n )}\n {items.map((item) => (\n \n ))}\n
\n );\n};\n","import { FC, useState } from \"react\";\nimport { endOfToday, endOfYesterday, subDays } from \"date-fns\";\n\nimport { TimelineDay } from \"./TimelineDay\";\n\nexport const Timeline: FC = () => {\n const [days, setDays] = useState([\n endOfToday().getTime(),\n endOfYesterday().getTime(),\n ]);\n\n const showNextDay = () => {\n setDays((prevState) => {\n const lastDay = prevState[prevState.length - 1];\n const lastDayPlusOne = subDays(lastDay, 1);\n\n return [...prevState, lastDayPlusOne.getTime()];\n });\n };\n\n return (\n
\n {days.map((day, index) => (\n <>\n \n {index === 0 && (\n
\n
\n
\n )}\n \n ))}\n
\n \n
\n
\n Meer laden\n
\n \n
\n
\n );\n};\n","import ReactDOM from \"react-dom/client\";\n\nimport { Timeline } from \"./Timeline\";\n\n(() => {\n const rootEl = document.querySelector(\"[data-timeline-container]\");\n\n if (rootEl) {\n const root = ReactDOM.createRoot(rootEl);\n\n root.render();\n }\n})();\n","import { FC } from \"react\";\nimport cn from \"clsx\";\n\nimport { BruzzThemes } from \"@types\";\n\ninterface Props {\n link: string;\n text: string;\n theme?: BruzzThemes;\n}\n\nexport const Link: FC = ({ link, text, theme }) => {\n return (\n \n {text}\n \n );\n};\n","import { FC } from \"react\";\n\nimport { Link } from \"components/atoms/link/Link\";\n\ninterface Props {\n title: string;\n link: {\n url: string;\n text: string;\n };\n}\n\nexport const SectionTitle: FC = ({ title, link }) => {\n return (\n
\n
\n
\n
\n

{title}

\n
\n
\n \n
\n
\n
\n
\n );\n};\n","import { FC, useMemo } from \"react\";\n\nimport { LocalNewsLocation } from \"@types\";\nimport { LocalNewsService } from \"services\";\n\ninterface Props {\n label: string;\n setLocation: (location: LocalNewsLocation) => void;\n location?: LocalNewsLocation;\n}\n\nexport const LocalNewsDropdown: FC = ({\n label,\n setLocation,\n location,\n}) => {\n const locations: LocalNewsLocation[] = useMemo(\n () => LocalNewsService.getLocations(),\n []\n );\n\n const handleChangeLocation = (event: any) => {\n const id = event.target.value;\n const location = LocalNewsService.getLocations().find(\n (item: LocalNewsLocation) => item.id === id\n );\n\n setLocation(location);\n };\n\n return (\n
\n \n \n \n {locations\n ?.sort((a, b) => a.text?.localeCompare(b.text))\n .map((option) => (\n \n ))}\n \n
\n );\n};\n","import { useEffect, useState, useRef, FC } from \"react\";\n\nimport { LatestNewsService } from \"services\";\nimport { LocalNewsLocation } from \"@types\";\n\nimport { Teaser } from \"components/molecules/teaser/Teaser\";\nimport { SectionTitle } from \"components/molecules/section-title/SectionTitle\";\nimport { Link } from \"components/atoms/link/Link\";\n\nimport { LocalNewsDropdown } from \"./LocalNewsDropdown\";\n\ninterface Props {\n settings: {\n title: string;\n dropdownPrefix: string;\n dropdownText: string;\n };\n}\n\nexport const LocalNewsBlock: FC = ({ settings }) => {\n const localNewsBlockRef = useRef(null);\n\n const [loading, setLoading] = useState(false);\n const [location, setLocation] = useState();\n const [teasers, setTeasers] = useState([]);\n\n const moreNewsLink = location && location.url ? location.url : \"/gemeente\";\n\n useEffect(() => {\n const updateLocalNews = async () => {\n setLoading(true);\n setTeasers([]);\n\n try {\n const { items } = await LatestNewsService.getLatestNews(location?.id);\n\n setLoading(false);\n setTeasers(items.slice(0, 4));\n } catch (error) {\n console.log(error);\n }\n };\n\n updateLocalNews();\n }, [location]);\n\n return (\n
\n
\n
\n \n {loading &&
}\n {!loading && (\n
\n
\n setLocation(newLocation)}\n />\n
\n {teasers.length > 0 && (\n
    \n {teasers.map((teaser: any) => (\n
  • \n \n
  • \n ))}\n
\n )}\n
\n )}\n
\n \n
\n
\n
\n
\n );\n};\n","import ReactDOM from \"react-dom/client\";\n\nimport { LocalNewsBlock } from \"./LocalNewsBlock\";\n\n(() => {\n const localNewsSettings = {\n title: \"Nieuws uit jouw gemeente\",\n dropdownPrefix: \"Kies een gemeente\",\n dropdownText: \"Kies een gemeente\",\n };\n\n const localNewsBlockContainers: NodeListOf =\n document.querySelectorAll(\"[data-local-news-block]\");\n\n localNewsBlockContainers.forEach((localNewsContainer) => {\n const root = ReactDOM.createRoot(localNewsContainer);\n\n root.render();\n });\n})();\n","import { FC, useState } from \"react\";\nimport Select, { StylesConfig } from \"react-select\";\n\ninterface ITopic {\n label: string;\n url: string | null;\n \"sub-options\"?: ITopic[];\n}\n\ninterface Props {\n topics: ITopic[];\n copy: {\n title: string;\n makeAChoice: string;\n makeAChoice2: string;\n };\n currentUrl: string;\n}\n\nexport const ElectoralHeader: FC = ({ topics, copy, currentUrl }) => {\n const [topic, setTopic] = useState(\n currentUrl\n ? (topics.find(\n (topic) =>\n topic.url === currentUrl ||\n topic[\"sub-options\"]?.find(\n (subOption) => subOption.url === currentUrl\n )\n ) as ITopic)\n : undefined\n );\n\n const styles: StylesConfig = {\n control: (baseStyles, { isFocused }) => ({\n ...baseStyles,\n borderRadius: 0,\n padding: \"0.5rem\",\n height: \"54px\",\n borderColor: isFocused ? \"black\" : \"#828282\",\n boxShadow: isFocused ? \"0 0 0px 1px black\" : \"none\",\n \"&:hover\": {\n borderColor: isFocused ? \"black\" : \"#828282\",\n },\n }),\n menuList: (base) => ({\n ...base,\n color: \"black\",\n }),\n menu: (base) => ({\n ...base,\n zIndex: 100,\n }),\n option: (styles) => ({\n ...styles,\n padding: \"1rem\",\n color: \"black !important\",\n }),\n indicatorSeparator: (styles) => ({\n ...styles,\n display: \"none\",\n }),\n container: (styles) => ({\n ...styles,\n width: \"50%\",\n \"@media only screen and (max-width: 768px)\": {\n ...styles,\n width: \"100%\",\n },\n }),\n placeholder: (styles) => ({\n ...styles,\n textWrap: \"nowrap\",\n }),\n };\n\n return (\n
\n {\n const selectedTopic = selectedOption as ITopic;\n\n if (selectedTopic?.url) {\n window.location.href = selectedTopic.url;\n } else {\n setTopic(selectedTopic);\n }\n }}\n styles={\n {\n ...styles,\n option: (styles, { data }) => ({\n ...styles,\n color: \"black\",\n backgroundColor: (data as ITopic)?.url ? \"#FEEBF9\" : \"#D9F7F5\",\n \":hover\": {\n backgroundColor: (data as ITopic)?.url ? \"#FDBCEB\" : \"#80E4DF\",\n },\n }),\n placeholder: (styles) => ({\n ...styles,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n }),\n } as StylesConfig\n }\n maxMenuHeight={500}\n />\n {topic && !!topic[\"sub-options\"]?.length && (\n subOption.url === currentUrl\n )}\n styles={\n {\n ...styles,\n option: (styles) => ({\n ...styles,\n color: \"black\",\n backgroundColor: \"white\",\n \":hover\": {\n backgroundColor: \"#80E4DF\",\n },\n }),\n } as StylesConfig\n }\n onChange={(selectedOption) => {\n window.location.href = (selectedOption as ITopic).url!;\n }}\n />\n )}\n
\n );\n};\n","import { render } from \"react-dom\";\nimport { ElectoralHeader } from \"./ElectoralHeader\";\n\n(() => {\n const electoralSelect: HTMLSelectElement | undefined = document.querySelector(\n \"[data-electoral-select]\"\n ) as HTMLSelectElement;\n\n if (!electoralSelect) return;\n\n const {\n electoralSelectTopics: topics,\n electoralSelectCopy: copy,\n electoralSelectCurrent: currentUrl,\n } = electoralSelect.dataset;\n\n if (electoralSelect && topics && copy && currentUrl) {\n render(\n ,\n electoralSelect\n );\n }\n})();\n","class ElectoralList {\n active = null;\n\n constructor(wrapper) {\n this.currentLang = \"nl\";\n this.wrapper = wrapper;\n\n this.initLangToggle();\n this.addEvent.bind(this);\n }\n\n toggleElectoralPartiesLang = (lang) => {\n const electoralListLists = this.wrapper.querySelectorAll(\n \".electoral-list__list\"\n );\n\n const langPartiesAll = this.wrapper.querySelectorAll(\"[data-party-lang]\");\n const selectedLangParties = this.wrapper.querySelectorAll(\n `[data-party-lang-${lang}]`\n );\n\n [...langPartiesAll].forEach((el) => {\n const langParty = el;\n langParty.parentElement.style.display = \"none\";\n });\n\n [...selectedLangParties].forEach((el) => {\n const selectedLangParty = el;\n selectedLangParty.parentElement.style.display = \"flex\";\n });\n\n [...electoralListLists].forEach((el) => {\n const electoralListList = el;\n electoralListList.classList.remove(\"show-people\");\n });\n\n this.currentLang = lang;\n };\n\n initLangToggle = () => {\n const langToggle = this.wrapper.querySelector(\"[data-electoral-list-lang]\");\n\n const electoralPartiesNL = this.wrapper.querySelectorAll(\n \"[data-party-lang-nl]\"\n );\n\n const electoralPartiesFr = this.wrapper.querySelectorAll(\n \"[data-party-lang-fr]\"\n );\n\n if (\n langToggle &&\n !!electoralPartiesNL.length &&\n !!electoralPartiesFr.length\n ) {\n const langToggleBtns = this.wrapper.querySelectorAll(\n \"[data-electoral-list-lang-btn]\"\n );\n\n langToggle.style.display = \"block\";\n this.toggleElectoralPartiesLang(this.currentLang);\n\n [...langToggleBtns].forEach((langToggleBtn) => {\n const { lang } = langToggleBtn.dataset;\n\n if (lang === this.currentLang) {\n langToggleBtn.classList.add(\"is-active\");\n }\n\n langToggleBtn.addEventListener(\"click\", (event) => {\n event.preventDefault();\n\n if (lang !== this.currentLang) {\n this.toggleElectoralPartiesLang(lang);\n\n [...langToggleBtns].forEach((el) => {\n el.classList.remove(\"is-active\");\n });\n\n langToggleBtn.classList.add(\"is-active\");\n }\n });\n });\n } else if (\n electoralPartiesNL.length === 0 &&\n electoralPartiesFr.length === 0\n ) {\n const langToggleBtns = this.wrapper.querySelectorAll(\n \"[data-electoral-list-lang-btn]\"\n );\n const firstLangToggleBtn = langToggleBtns[0];\n\n if (firstLangToggleBtn) {\n firstLangToggleBtn.parentElement.parentElement.style.display = \"none\";\n }\n }\n };\n\n addEvent = (party) => {\n if (this.active) this.active.classList.remove(\"is-active\");\n\n if (this.active !== party) {\n this.active = party;\n party.classList.add(\"is-active\");\n } else {\n this.active = null;\n party.classList.remove(\"is-active\");\n }\n };\n}\n\n(() => {\n const electoralListWrappers = document.querySelectorAll(\n \".electoral-list-wrapper\"\n );\n\n electoralListWrappers.forEach((electoralListWrapper) => {\n const electoralList = electoralListWrapper.querySelector(\n \"[data-electoral-list]\"\n );\n\n const electoralListParties = electoralList.querySelectorAll(\n \"[data-electoral-list-party]\"\n );\n\n // Show people when clicking on party image.\n [...electoralListParties].forEach((electoralListParty) => {\n electoralListParty.addEventListener(\"click\", (event) => {\n event.preventDefault();\n\n electoralListParty.parentElement.classList.toggle(\"show-people\");\n });\n });\n\n new ElectoralList(electoralListWrapper);\n });\n})();\n","import { formatDate } from \"./DateFormat\";\n\n(() => {\n const sideloadByUrl = async (url: string) => {\n const response = await fetch(url, {\n method: \"GET\",\n });\n\n if (response.status !== 200) {\n return \"\";\n }\n\n return response.text();\n };\n\n const sideloadTeasers =\n document.querySelectorAll(\"[data-wm-js-ajax]\");\n\n const teasers: { [k: string]: HTMLDivElement[] } = {};\n\n Array.from(sideloadTeasers).forEach((ajaxTeaser) => {\n const ajax = ajaxTeaser.dataset[\"wmJsAjax\"];\n\n if (!ajax) return;\n\n if (!(ajax in teasers)) {\n teasers[ajax] = [];\n }\n\n teasers[ajax] = [...teasers[ajax], ajaxTeaser];\n });\n\n Object.keys(teasers).forEach((url) => {\n const sideload = async () => {\n const teaserHtml = await sideloadByUrl(url);\n\n teasers[url].forEach((el) => {\n el.outerHTML = teaserHtml;\n });\n };\n\n sideload().then(() => {\n const dynamicDateElements = document.querySelectorAll(\n \"[data-dynamic-date]\"\n );\n\n dynamicDateElements.forEach((dynamicDate) => {\n const { dynamicDate: date } = dynamicDate.dataset;\n dynamicDate.textContent = formatDate(date || \"\");\n });\n });\n });\n})();\n","export const getFrontDomain = () =>\n window.frontDomain?.replace(/\\/+$/, \"\") || \"\";\n","export const BASE_URL = ((env = process.env.REACT_APP_APP_ENV) => {\n switch (env) {\n case \"dev\":\n case \"development\": {\n return \"https://development.bruzz.be\";\n }\n case \"stag\":\n case \"staging\": {\n return \"https://staging.bruzz.be\";\n }\n case \"prod\":\n case \"production\":\n default: {\n return \"https://www.bruzz.be\";\n }\n }\n})();\n\nexport const config = {\n CURRENT_SITE:\n window.drupalSettings && window.drupalSettings.pageInfo\n ? window.drupalSettings.pageInfo.site\n : \"bruzz\",\n CLEVERCAST: {\n ACCOUNT_ID: \"WXv1JD\",\n },\n};\n","const { drupalSettings } = window;\n\nexport const KACHING_SCRIPT_URL = ((env = process.env.REACT_APP_APP_ENV) => {\n switch (env) {\n case \"local\":\n case \"dev\":\n case \"development\": {\n return \"https://previewshared.mediahuis.be/ka-ching/bruzz/ka-ching.umd.dev.js\";\n }\n case \"stag\":\n case \"staging\":\n case \"prod\":\n case \"production\":\n default: {\n return \"https://shared.mediahuis.be/ka-ching/bruzz/ka-ching.umd.js\";\n }\n }\n})();\n\nexport const KACHING_CONFIG = {\n video: true,\n adunit: `bruzz/${drupalSettings.pageInfo?.type}`,\n platform: \"www\",\n targeting: {\n article_id: drupalSettings.path.currentPath.replace(\"node/\", \"\"),\n article_taglist: drupalSettings.pageInfo?.tags,\n /**\n * There are only three options for `page_type`:\n * - homepage = \"home\"\n * - overview page = \"overview\"\n * - article page = \"detail\"\n */\n page_type: drupalSettings.pageInfo?.adPageType,\n lang: \"nl\",\n author: drupalSettings.pageInfo?.author,\n },\n};\n","const generateYearsFrom = (endYear: number) => {\n let currentYear = new Date().getFullYear();\n const result = [];\n\n while (currentYear >= endYear) {\n result.push(currentYear);\n currentYear -= 1;\n }\n\n return result;\n};\n\nconst years = generateYearsFrom(2004);\n\nconst months = [\n {\n label: \"Januari\",\n value: \"1\",\n },\n {\n label: \"Februari\",\n value: \"2\",\n },\n {\n label: \"Maart\",\n value: \"3\",\n },\n {\n label: \"April\",\n value: \"4\",\n },\n {\n label: \"Mei\",\n value: \"5\",\n },\n {\n label: \"Juni\",\n value: \"6\",\n },\n {\n label: \"Juli\",\n value: \"7\",\n },\n {\n label: \"Augustus\",\n value: \"8\",\n },\n {\n label: \"September\",\n value: \"9\",\n },\n {\n label: \"Oktober\",\n value: \"10\",\n },\n {\n label: \"November\",\n value: \"11\",\n },\n {\n label: \"December\",\n value: \"12\",\n },\n];\n\nconst days = Array.from(new Array(31), (val, index) => index + 1);\n\nexport { days, months, years };\n","import { differenceInMinutes, format, isToday, isYesterday } from \"date-fns\";\nimport { nlBE } from \"date-fns/locale\";\n\nexport const formatDate = (date: string) => {\n const now = new Date();\n const parsedDate = new Date(parseInt(date) * 1000);\n let formattedDate = \"\";\n\n const diffInMinutes = differenceInMinutes(now, parsedDate);\n\n const hours = format(parsedDate || now, \"HH\", {\n locale: nlBE,\n });\n const minutes = format(parsedDate || now, \"mm\", {\n locale: nlBE,\n });\n\n const fullDate = format(parsedDate || now, \"dd/MM/yyyy\", {\n locale: nlBE,\n });\n\n if (diffInMinutes <= 15) {\n formattedDate = \"Net binnen\";\n } else if (diffInMinutes <= 60) {\n formattedDate = `${hours}.${minutes}u`;\n } else if (isToday(parsedDate)) {\n formattedDate = `Vandaag ${hours}.${minutes}u`;\n } else if (isYesterday(parsedDate)) {\n formattedDate = `Gisteren ${hours}.${minutes}u`;\n } else {\n formattedDate = `${fullDate} ${hours}.${minutes}u`;\n }\n\n return formattedDate;\n};\n\nexport const formatTimelineDate = (date: number) => {\n let formattedDate = format(new Date(date), \"dd/MM/yyyy\", {\n locale: nlBE,\n });\n\n if (isToday(date)) {\n formattedDate = \"Vandaag\";\n } else if (isYesterday(date)) {\n formattedDate = \"Gisteren \";\n }\n\n return formattedDate;\n};\n","import { FC } from \"react\";\n\nconst RatingStar = () => (\n \n \n \n \n \n);\n\ninterface Props {\n rating: number;\n}\n\nexport const TeaserRating: FC = ({ rating }) => {\n const SCORE = 5;\n\n const renderStars = () => {\n const numberOfStarsArray = Array(...Array(Number(rating)));\n\n return numberOfStarsArray.map((item, index) => );\n };\n\n const renderEmptyStars = () => {\n const numberOfStarsArray = Array(...Array(Number(SCORE - rating)));\n\n return numberOfStarsArray.map((item, index) => );\n };\n\n return (\n
\n {renderStars()}\n {renderEmptyStars()}\n
\n );\n};\n","import { FC } from \"react\";\n\nimport { formatDate } from \"utils\";\n\nimport { TeaserRating } from \"./TeaserRating\";\n\ninterface Props {\n url: string;\n image: string;\n label: string;\n topic?: string;\n category?: string;\n location?: string;\n title: string;\n body?: string[];\n date?: number;\n dateString?: string;\n type?: string;\n rating?: number;\n}\n\nexport const Teaser: FC = ({\n url,\n image,\n label,\n topic,\n category,\n location,\n title,\n body,\n date,\n dateString,\n type,\n rating,\n}) => {\n const formattedDate = date ? formatDate(date.toString()) : null;\n\n return (\n \n
\n \"\"\n {rating && (\n
\n
\n
\n \n
\n
\n )}\n {type === \"video\" && (\n
\n \n \n \n
\n )}\n
\n
\n {label && (\n
\n
\n
{label}
\n
\n )}\n

{title}

\n {body && body[0] && (\n \n )}\n
\n {label && (\n
\n {label}\n
\n )}\n {category && (\n
\n {category}\n
\n )}\n {location && (\n
\n {location}\n
\n )}\n {topic && (\n
\n {topic}\n
\n )}\n {formattedDate && (\n
\n {formattedDate}\n
\n )}\n {dateString && (\n
\n {dateString}\n
\n )}\n
\n
\n \n );\n};\n"],"sourceRoot":""}