{"version":3,"file":"TrainingOverridesAPI.CpDvhND0.mjs","names":["React","API_BASE","React.useState","getSlugFromPathname","API_BASE","__legacyOverrideHOC_DataObserverContext","_jsx","React.useState","React.useRef","React.useCallback","__legacyOverrideHOC_DataObserverContext","_jsx"],"sources":["https:/framerusercontent.com/modules/doJVDnvT0PyPSfW78jHB/9uhbIuvNJ1i1BfQu9vbh/UseEventsDataAPI.js","https:/framerusercontent.com/modules/czjD80wts50Gv4Ndszp9/HqOy0IDLepVv3j8Oet2e/MemberLookupOverride.js","https:/framerusercontent.com/modules/F59wnzDpZTiCukIL8rTW/LlLAW90LSv2BiaMobH3q/TrainingOverridesAPI.js"],"sourcesContent":["// UseEventsDataAPI.ts - Fetches from cn-tools backend API (SECURE)\nimport React from\"react\";const API_BASE=\"https://cn-tools.onrender.com\";const CACHE_TTL_MS=2*60*60*1e3;const EVENTS_LIST_CACHE_KEY=\"cn.events.list.v1\";const EVENT_BY_SLUG_CACHE_PREFIX=\"cn.events.bySlug.v1.\";async function getJson(url){const response=await fetch(url);if(!response.ok){throw new Error(`HTTP ${response.status}`);}return response.json();}function hasLocalStorage(){return typeof window!==\"undefined\"&&typeof window.localStorage!==\"undefined\";}function readCache(key){if(!hasLocalStorage())return null;try{const raw=window.localStorage.getItem(key);if(!raw)return null;const parsed=JSON.parse(raw);if(!parsed||parsed.version!==1||typeof parsed.cachedAt!==\"number\"||typeof parsed.expiresAt!==\"number\"){return null;}return parsed;}catch{return null;}}function writeCache(key,data,ttlMs=CACHE_TTL_MS){if(!hasLocalStorage())return;try{const now=Date.now();const payload={version:1,cachedAt:now,expiresAt:now+ttlMs,data};window.localStorage.setItem(key,JSON.stringify(payload));}catch{// Ignore storage quota/privacy errors.\n}}function isFresh(expiresAt){return Number.isFinite(expiresAt)&&expiresAt>Date.now();}// Fetch all events from API\nexport function useAirtableEvents(){const[events,setEvents]=React.useState([]);React.useEffect(()=>{let isCancelled=false;const cached=readCache(EVENTS_LIST_CACHE_KEY);if(cached&&Array.isArray(cached.data)&&!isCancelled){setEvents(cached.data);}async function run(){try{const data=await getJson(`${API_BASE}/events`);if(!isCancelled&&data.success&&Array.isArray(data.events)){setEvents(data.events);writeCache(EVENTS_LIST_CACHE_KEY,data.events);}}catch(error){// If cached data is still fresh, silently keep it.\nif(!cached||!isFresh(cached.expiresAt)){console.error(\"Error fetching events:\",error);}}}run();return()=>{isCancelled=true;};},[]);return events;}// Fetch single event by slug\nexport function useEventBySlug(slug){const[event,setEvent]=React.useState(null);React.useEffect(()=>{if(!slug){setEvent(null);return;}let isCancelled=false;const cacheKey=`${EVENT_BY_SLUG_CACHE_PREFIX}${encodeURIComponent(slug)}`;const cached=readCache(cacheKey);if(cached?.data&&!isCancelled){setEvent(cached.data);}async function run(){try{const data=await getJson(`${API_BASE}/events/by-slug/${encodeURIComponent(slug)}`);if(!isCancelled){const nextEvent=data.success&&data.event?data.event:null;setEvent(nextEvent);if(nextEvent){writeCache(cacheKey,nextEvent);}}}catch(error){if(!isCancelled&&!(cached&&isFresh(cached.expiresAt))){setEvent(null);}if(!cached||!isFresh(cached.expiresAt)){console.error(\"Error fetching event:\",error);}}}run();return()=>{isCancelled=true;};},[slug]);return event;}\nexport const __FramerMetadata__ = {\"exports\":{\"useEventBySlug\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAirtableEvents\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EventItem\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./UseEventsDataAPI.map","import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";const API_BASE=\"https://cn-tools.onrender.com\";const EMAIL_REGEX=/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;const store={email:\"\",status:\"idle\",isMember:false,alreadyRegisteredForEvent:false,registrationStatus:\"not_checked\",trainingSlug:\"\",name:\"\",firstName:\"\",lastName:\"\",fullName:\"\",avatarUrl:\"\",error:\"\"};const listeners=new Set;let debounceTimer=null;function emit(){listeners.forEach(listener=>listener());}function setStore(patch){Object.assign(store,patch);emit();}function subscribe(listener){listeners.add(listener);return()=>{listeners.delete(listener);};}function useMembershipStore(){const[snapshot,setSnapshot]=React.useState({...store});React.useEffect(()=>{const update=()=>setSnapshot({...store});return subscribe(update);},[]);return snapshot;}export function useMemberLookupState(){return useMembershipStore();}export async function runMemberLookupNow(emailInput,explicitTrainingSlug=\"\"){const email=normalizeEmail(emailInput??store.email);await checkMembership(email,explicitTrainingSlug);return{...store};}function normalizeEmail(value){return String(value||\"\").trim().toLowerCase();}function getSlugFromPathname(pathname){const parts=String(pathname||\"\").split(\"/\").filter(Boolean);if(!parts.length)return\"\";const roots=new Set([\"academy\",\"training\",\"events\"]);if(parts.length>=2&&roots.has(parts[0])){return String(parts[1]||\"\").trim().toLowerCase();}if(parts.length>=3&&roots.has(parts[1])){return String(parts[2]||\"\").trim().toLowerCase();}return\"\";}function statusToMembershipValue(status){if(status===\"found\")return\"member\";if(status===\"not_found\")return\"non-member\";return\"unknown\";}export function resetMemberLookupState(){setStore({email:\"\",status:\"idle\",isMember:false,alreadyRegisteredForEvent:false,registrationStatus:\"not_checked\",trainingSlug:\"\",name:\"\",firstName:\"\",lastName:\"\",fullName:\"\",avatarUrl:\"\",error:\"\"});}async function checkMembership(emailInput,explicitTrainingSlug=\"\"){const email=normalizeEmail(emailInput);const trainingSlug=String(explicitTrainingSlug||\"\").trim().toLowerCase()||(typeof window!==\"undefined\"?getSlugFromPathname(window.location.pathname||\"\"):\"\");const pageUrl=typeof window!==\"undefined\"?window.location.href||\"\":\"\";if(!email){setStore({email:\"\",status:\"idle\",isMember:false,alreadyRegisteredForEvent:false,registrationStatus:\"not_checked\",trainingSlug,name:\"\",firstName:\"\",lastName:\"\",fullName:\"\",avatarUrl:\"\",error:\"\"});return;}if(!EMAIL_REGEX.test(email)){setStore({email,status:\"invalid\",isMember:false,alreadyRegisteredForEvent:false,registrationStatus:\"not_checked\",trainingSlug,name:\"\",firstName:\"\",lastName:\"\",fullName:\"\",avatarUrl:\"\",error:\"Voer een geldig e-mailadres in.\"});return;}setStore({email,status:\"checking\",trainingSlug,error:\"\"});try{const params=new URLSearchParams({email});if(trainingSlug)params.set(\"trainingSlug\",trainingSlug);if(pageUrl)params.set(\"pageUrl\",pageUrl);const response=await fetch(`${API_BASE}/members/check?${params.toString()}`);if(!response.ok){throw new Error(`HTTP ${response.status}`);}const data=await response.json();if(!data?.success){throw new Error(data?.error||\"Onbekende fout\");}const exists=data?.exists===true;const alreadyRegisteredForEvent=data?.alreadyRegisteredForEvent===true;const registrationStatus=alreadyRegisteredForEvent?\"already_registered\":\"not_registered\";const name=exists?String(data?.member?.name||\"\").trim():\"\";const firstName=exists?String(data?.member?.firstName||\"\").trim():\"\";const lastName=exists?String(data?.member?.lastName||\"\").trim():\"\";const fullName=exists?String(data?.member?.fullName||\"\").trim():\"\";const avatarUrl=exists?String(data?.member?.avatarUrl||\"\").trim():\"\";setStore({email,status:exists?\"found\":\"not_found\",isMember:exists,alreadyRegisteredForEvent,registrationStatus,trainingSlug,name,firstName,lastName,fullName,avatarUrl,error:\"\"});}catch(error){setStore({email,status:\"error\",isMember:false,alreadyRegisteredForEvent:false,registrationStatus:\"not_checked\",trainingSlug,name:\"\",firstName:\"\",lastName:\"\",fullName:\"\",avatarUrl:\"\",error:error?.message||\"Kon lidmaatschap niet controleren.\"});}}function debouncedCheck(email,explicitTrainingSlug=\"\",delayMs=350){if(debounceTimer){window.clearTimeout(debounceTimer);}debounceTimer=window.setTimeout(()=>{checkMembership(email,explicitTrainingSlug);},delayMs);}/**\n * Apply to the email input in Framer.\n * - Keeps shared email state.\n * - Runs automatic lookup (debounced) on change.\n * - Forces immediate lookup on blur.\n */export const MemberEmailInput=props=>{const membership=useMembershipStore();const explicitTrainingSlug=String(props?.trainingSlug||\"\").trim();const handleEmailInput=event=>{const nextEmail=String(event?.target?.value||\"\");setStore({email:nextEmail});debouncedCheck(nextEmail,explicitTrainingSlug);};return{value:membership.email,onFocus:event=>{const focusedEmail=String(event?.target?.value||\"\");if(focusedEmail&&normalizeEmail(focusedEmail)!==normalizeEmail(store.email)){handleEmailInput(event);}if(typeof props?.onFocus===\"function\"){props.onFocus(event);}},onInput:event=>{handleEmailInput(event);if(typeof props?.onInput===\"function\"){props.onInput(event);}},onChange:event=>{handleEmailInput(event);if(typeof props?.onChange===\"function\"){props.onChange(event);}},onBlur:event=>{const emailFromEvent=normalizeEmail(String(event?.target?.value||\"\"));const nextEmail=emailFromEvent||normalizeEmail(store.email);const trainingSlug=String(explicitTrainingSlug||\"\").trim().toLowerCase()||(typeof window!==\"undefined\"?getSlugFromPathname(window.location.pathname||\"\"):\"\");const isSettled=store.status===\"found\"||store.status===\"not_found\";const sameContext=nextEmail&&normalizeEmail(store.email)===nextEmail&&String(store.trainingSlug||\"\").trim().toLowerCase()===trainingSlug;// Avoid flicker: when email/slug are unchanged and we already have a settled lookup,\n// keep the current state instead of bouncing through \"checking\" on blur.\nif(!nextEmail||sameContext&&isSettled){if(typeof props?.onBlur===\"function\"){props.onBlur(event);}return;}if(debounceTimer){window.clearTimeout(debounceTimer);debounceTimer=null;}checkMembership(nextEmail,explicitTrainingSlug);if(typeof props?.onBlur===\"function\"){props.onBlur(event);}}};};/**\n * Apply to a text layer to show live member-check status.\n */export const MemberStatusText=()=>{const membership=useMembershipStore();if(membership.status===\"idle\"){return{text:\"\"};}if(membership.status===\"checking\"){return{text:\"Lidmaatschap controleren...\"};}if(membership.status===\"invalid\"){return{text:\"Voer een geldig e-mailadres in.\"};}if(membership.status===\"found\"){if(membership.alreadyRegisteredForEvent){return{text:\"Je bent al aangemeld voor deze training.\"};}const suffix=membership.fullName?` (${membership.fullName})`:\"\";return{text:`Member verified${suffix}`};}if(membership.status===\"not_found\"){if(membership.alreadyRegisteredForEvent){return{text:\"Je bent al aangemeld voor deze training.\"};}return{text:\"Geen member record gevonden (je kunt wel aanmelden).\"};}return{text:`Controle mislukt: ${membership.error||\"Onbekende fout\"}`};};/**\n * Apply to a hidden/text input that you send to webhook as membership status.\n * Value: \"member\" | \"non-member\" | \"unknown\"\n */export const MemberStatusField=()=>{const membership=useMembershipStore();const value=statusToMembershipValue(membership.status);return{value,defaultValue:value};};/**\n * Optional: apply to a hidden/text input to send boolean member flag.\n * Value: \"true\" | \"false\"\n */export const MemberBooleanField=()=>{const membership=useMembershipStore();return{value:membership.isMember?\"true\":\"false\"};};/**\n * Optional: apply to hidden/text input to send member avatar URL in webhook payload.\n */export const MemberAvatarField=()=>{const membership=useMembershipStore();return{value:membership.avatarUrl||\"\"};};/**\n * Optional: apply to hidden/text input to send first name in webhook payload.\n */export const MemberFirstNameField=()=>{const membership=useMembershipStore();return{value:membership.firstName||\"\"};};/**\n * Optional: apply to hidden/text input to send last name in webhook payload.\n */export const MemberLastNameField=()=>{const membership=useMembershipStore();return{value:membership.lastName||\"\"};};/**\n * Optional: apply to hidden/text input to send full name in webhook payload.\n */export const MemberFullNameField=()=>{const membership=useMembershipStore();return{value:membership.fullName||\"\"};};/**\n * Optional: apply to hidden/text input to send display name in webhook payload.\n */export const MemberNameField=()=>{const membership=useMembershipStore();return{value:membership.name||\"\"};};/**\n * Optional: apply to hidden/text input to send event-level registration status.\n * Value: \"already_registered\" | \"not_registered\"\n */export const MemberRegistrationStatusField=()=>{const membership=useMembershipStore();return{value:membership.registrationStatus};};/**\n * Optional: apply to hidden/text input to send event-level registration flag.\n * Value: \"true\" | \"false\"\n */export const MemberAlreadyRegisteredField=()=>{const membership=useMembershipStore();return{value:membership.alreadyRegisteredForEvent?\"true\":\"false\"};};/**\n * Optional: apply to a button when you want manual re-check.\n */export const MemberRecheckButton=()=>{const membership=useMembershipStore();return{onTap:()=>checkMembership(membership.email)};};import{useContext as __legacyOverrideHOC_useContext}from\"react\";import{DataObserverContext as __legacyOverrideHOC_DataObserverContext}from\"framer\";export function withMemberEmailInput(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...MemberEmailInput(props)});};}withMemberEmailInput.displayName=\"MemberEmailInput\";export function withMemberStatusText(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...MemberStatusText(props)});};}withMemberStatusText.displayName=\"MemberStatusText\";export function withMemberStatusField(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...MemberStatusField(props)});};}withMemberStatusField.displayName=\"MemberStatusField\";export function withMemberBooleanField(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...MemberBooleanField(props)});};}withMemberBooleanField.displayName=\"MemberBooleanField\";export function withMemberAvatarField(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...MemberAvatarField(props)});};}withMemberAvatarField.displayName=\"MemberAvatarField\";export function withMemberFirstNameField(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...MemberFirstNameField(props)});};}withMemberFirstNameField.displayName=\"MemberFirstNameField\";export function withMemberLastNameField(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...MemberLastNameField(props)});};}withMemberLastNameField.displayName=\"MemberLastNameField\";export function withMemberFullNameField(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...MemberFullNameField(props)});};}withMemberFullNameField.displayName=\"MemberFullNameField\";export function withMemberNameField(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...MemberNameField(props)});};}withMemberNameField.displayName=\"MemberNameField\";export function withMemberRegistrationStatusField(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...MemberRegistrationStatusField(props)});};}withMemberRegistrationStatusField.displayName=\"MemberRegistrationStatusField\";export function withMemberAlreadyRegisteredField(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...MemberAlreadyRegisteredField(props)});};}withMemberAlreadyRegisteredField.displayName=\"MemberAlreadyRegisteredField\";export function withMemberRecheckButton(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...MemberRecheckButton(props)});};}withMemberRecheckButton.displayName=\"MemberRecheckButton\";\nexport const __FramerMetadata__ = {\"exports\":{\"MemberStatusText\":{\"type\":\"override\",\"name\":\"MemberStatusText\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMemberBooleanField\":{\"type\":\"reactHoc\",\"name\":\"withMemberBooleanField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MemberFirstNameField\":{\"type\":\"override\",\"name\":\"MemberFirstNameField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMemberStatusField\":{\"type\":\"reactHoc\",\"name\":\"withMemberStatusField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MemberStatusField\":{\"type\":\"override\",\"name\":\"MemberStatusField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMemberAvatarField\":{\"type\":\"reactHoc\",\"name\":\"withMemberAvatarField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMemberNameField\":{\"type\":\"reactHoc\",\"name\":\"withMemberNameField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMemberStatusText\":{\"type\":\"reactHoc\",\"name\":\"withMemberStatusText\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMemberAlreadyRegisteredField\":{\"type\":\"reactHoc\",\"name\":\"withMemberAlreadyRegisteredField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MembershipStatus\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MemberEmailInput\":{\"type\":\"override\",\"name\":\"MemberEmailInput\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMemberFirstNameField\":{\"type\":\"reactHoc\",\"name\":\"withMemberFirstNameField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMemberRegistrationStatusField\":{\"type\":\"reactHoc\",\"name\":\"withMemberRegistrationStatusField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MemberRecheckButton\":{\"type\":\"override\",\"name\":\"MemberRecheckButton\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MemberLastNameField\":{\"type\":\"override\",\"name\":\"MemberLastNameField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MembershipStore\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMemberEmailInput\":{\"type\":\"reactHoc\",\"name\":\"withMemberEmailInput\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMemberRecheckButton\":{\"type\":\"reactHoc\",\"name\":\"withMemberRecheckButton\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MemberNameField\":{\"type\":\"override\",\"name\":\"MemberNameField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMemberLastNameField\":{\"type\":\"reactHoc\",\"name\":\"withMemberLastNameField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MemberAvatarField\":{\"type\":\"override\",\"name\":\"MemberAvatarField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"resetMemberLookupState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMemberFullNameField\":{\"type\":\"reactHoc\",\"name\":\"withMemberFullNameField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMemberLookupState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MemberAlreadyRegisteredField\":{\"type\":\"override\",\"name\":\"MemberAlreadyRegisteredField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"runMemberLookupNow\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MemberFullNameField\":{\"type\":\"override\",\"name\":\"MemberFullNameField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MemberRegistrationStatusField\":{\"type\":\"override\",\"name\":\"MemberRegistrationStatusField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MemberBooleanField\":{\"type\":\"override\",\"name\":\"MemberBooleanField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MemberLookupOverride.map","/**\n * Training Overrides (events + signup)\n *\n * This file is the single source of truth for event-aware Framer overrides.\n */import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{useLocaleInfo}from\"framer\";import{useAirtableEvents,useEventBySlug}from\"https://framerusercontent.com/modules/doJVDnvT0PyPSfW78jHB/9uhbIuvNJ1i1BfQu9vbh/UseEventsDataAPI.js\";import{useMemberLookupState,runMemberLookupNow}from\"https://framerusercontent.com/modules/czjD80wts50Gv4Ndszp9/HqOy0IDLepVv3j8Oet2e/MemberLookupOverride.js\";const FEW_LEFT_THRESHOLD=3;const API_BASE=\"https://cn-tools.onrender.com\";const MIN_SUBMIT_DELAY_MS=2e3// Reject submissions faster than 2 seconds (bot detection)\n;const submitStore={state:\"idle\"};const pageLoadTime=typeof window!==\"undefined\"?Date.now():0;const submitListeners=new Set;function emitSubmitState(){submitListeners.forEach(listener=>listener());}function setSubmitState(state){submitStore.state=state;emitSubmitState();}function useSubmitState(){const[state,setState]=React.useState(submitStore.state);React.useEffect(()=>{const listener=()=>setState(submitStore.state);submitListeners.add(listener);return()=>{submitListeners.delete(listener);};},[]);return state;}function normalizeSlug(value){if(typeof value!==\"string\")return\"\";const raw=value.trim().toLowerCase();if(!raw)return\"\";if(raw.includes(\"/\")){const clean=raw.split(\"?\")[0].split(\"#\")[0];const parts=clean.split(\"/\").filter(Boolean);return parts[parts.length-1]||\"\";}return raw;}function extractSlugFromUnknown(value,depth=0){if(depth>3||value===null||value===undefined)return\"\";const direct=normalizeSlug(value);if(direct)return direct;if(typeof value!==\"object\")return\"\";const record=value;const keys=[\"slug\",\"href\",\"url\",\"path\",\"pathname\",\"value\",\"link\",\"page\",\"to\"];for(const key of keys){const nested=extractSlugFromUnknown(record[key],depth+1);if(nested)return nested;}return\"\";}function resolveSlugFromProps(props){return extractSlugFromUnknown(props.eventSlug);}/** Set on the card frame by `EventCardAvailability` so nested buttons/text can resolve the slug without their own `eventSlug` prop. */const ATTR_CN_EVENT_SLUG=\"data-cn-event-slug\";function readSlugFromAncestor(node){if(!node)return\"\";const el=node.closest(`[${ATTR_CN_EVENT_SLUG}]`);return el?.getAttribute(ATTR_CN_EVENT_SLUG)?.trim()||\"\";}function assignFramerRef(typedProps,node){const r=typedProps.ref;if(!r)return;if(typeof r===\"function\")r(node);else if(r&&typeof r===\"object\"&&\"current\"in r){r.current=node;}}function getSlugFromPathname(pathname){const parts=String(pathname||\"\").split(\"/\").filter(Boolean);if(!parts.length)return null;const roots=new Set([\"academy\",\"training\",\"events\"]);if(parts.length>=2&&roots.has(parts[0])){return normalizeSlug(parts[1])||null;}if(parts.length>=3&&roots.has(parts[1])){return normalizeSlug(parts[2])||null;}return null;}function useDetailSlugFromUrl(){const[slug,setSlug]=React.useState(null);React.useEffect(()=>{if(typeof window===\"undefined\")return;const update=()=>setSlug(getSlugFromPathname(window.location.pathname));update();window.addEventListener(\"popstate\",update);return()=>window.removeEventListener(\"popstate\",update);},[]);return slug;}function usePageUrl(){const[url,setUrl]=React.useState(\"\");React.useEffect(()=>{if(typeof window===\"undefined\")return;const update=()=>setUrl(window.location.href||\"\");update();window.addEventListener(\"popstate\",update);window.addEventListener(\"hashchange\",update);return()=>{window.removeEventListener(\"popstate\",update);window.removeEventListener(\"hashchange\",update);};},[]);return url;}function getTrainingSlugFromSearch(search){if(typeof search!==\"string\"||!search)return null;const params=new URLSearchParams(search.startsWith(\"?\")?search:`?${search}`);const t=params.get(\"training\")?.trim();return t?normalizeSlug(t)||null:null;}function useTrainingSlugFromQuery(){const[slug,setSlug]=React.useState(null);React.useEffect(()=>{if(typeof window===\"undefined\")return;const update=()=>setSlug(getTrainingSlugFromSearch(window.location.search));update();window.addEventListener(\"popstate\",update);return()=>window.removeEventListener(\"popstate\",update);},[]);return slug;}function getLocalePrefixFromPathname(pathname){const parts=String(pathname||\"\").split(\"/\").filter(Boolean);if(parts[0]===\"nl\")return\"/nl\";return\"\";}function useTryAgainUrl(){const trainingSlug=useTrainingSlugFromQuery();const[url,setUrl]=React.useState(\"\");React.useEffect(()=>{if(typeof window===\"undefined\")return;const pathname=window.location.pathname||\"\";const prefix=getLocalePrefixFromPathname(pathname);const base=\"https://hello.createnew.co\";const next=trainingSlug?`${base}${prefix}/academy/${trainingSlug}`:`${base}${prefix}/academy`;setUrl(next);},[trainingSlug]);return url;}function readStringProp(props,keys){for(const key of keys){const value=props[key];if(typeof value===\"string\"&&value.trim()){return value.trim();}}return null;}/** When true, availability data is returned without `slug` / `onTap` (non-clickable). */function readDisplayOnlyProp(props){if(props.displayOnly===true||props.displayOnly===\"true\")return true;if(props.noNavigation===true||props.noNavigation===\"true\")return true;if(props.linkToDetail===false||props.linkToDetail===\"false\")return true;return false;}function resolveAvailabilityVariantName(state,props){const fallback={available:\"available\",few_left:\"few_left\",sold_out:\"sold_out\"};const keysByState={available:[\"availableVariant\",\"variantAvailable\",\"available\"],few_left:[\"fewLeftVariant\",\"variantFewLeft\",\"fewLeft\"],sold_out:[\"soldOutVariant\",\"variantSoldOut\",\"soldOut\"]};return readStringProp(props,keysByState[state])||fallback[state];}function resolveFormVariantName(state,props){const fallback={idle:\"default\",checking:\"checking\",redirecting:\"redirecting\",already_registered:\"already_registered\",member:\"member\",non_member:\"non_member\",success:\"success\",error:\"error\",sold_out:\"sold_out\"};const keysByState={idle:[\"idleVariant\",\"defaultVariant\",\"variantDefault\",\"default\"],checking:[\"checkingVariant\",\"variantChecking\",\"checking\"],redirecting:[\"redirectingVariant\",\"variantRedirecting\",\"redirecting\"],already_registered:[\"alreadyRegisteredVariant\",\"variantAlreadyRegistered\",\"alreadyRegistered\"],member:[\"memberVariant\",\"variantMember\",\"member\"],non_member:[\"nonMemberVariant\",\"variantNonMember\",\"nonMember\"],success:[\"successVariant\",\"variantSuccess\",\"success\"],error:[\"errorVariant\",\"variantError\",\"error\"],sold_out:[\"soldOutVariant\",\"variantSoldOut\",\"soldOut\"]};return readStringProp(props,keysByState[state])||fallback[state];}function toFiniteNumber(value){const numeric=Number(value);return Number.isFinite(numeric)?numeric:null;}function getSeatsRemaining(event){if(!event)return null;return toFiniteNumber(event?.rsvp?.seatsRemaining);}function getRsvpMax(event){if(!event)return null;return toFiniteNumber(event?.rsvp?.totalSeats);}function getRsvpCount(event){if(!event)return null;return toFiniteNumber(event?.rsvp?.rsvpCount);}function getAvailabilityState(event){if(!event)return\"available\";const seats=getSeatsRemaining(event);if(event.isSoldOut||seats===null||seats<=0)return\"sold_out\";if(seats<=FEW_LEFT_THRESHOLD)return\"few_left\";return\"available\";}function readInputValue(names){if(typeof document===\"undefined\")return\"\";for(const name of names){const escaped=window?.CSS?.escape?window.CSS.escape(name):name;const byName=document.querySelector(`input[name=\"${escaped}\"], textarea[name=\"${escaped}\"], select[name=\"${escaped}\"]`);if(byName&&\"value\"in byName&&String(byName.value||\"\").trim()){return String(byName.value||\"\").trim();}const byId=document.getElementById(name);if(byId&&\"value\"in byId&&String(byId.value||\"\").trim()){return String(byId.value||\"\").trim();}}return\"\";}function getLocaleQuick(){if(typeof window===\"undefined\")return\"nl\";return window.location.pathname.split(\"/\").filter(Boolean)[0]===\"nl\"?\"nl\":\"en\";}function getAvailabilityText(event){if(!event)return\"\";const state=getAvailabilityState(event);// Past trainings: show capacity (max) from Airtable, not remaining spots\nif(event.isPastEvent){const max=getRsvpMax(event);if(max===null)return\"\";const n=Math.max(0,max);return getLocaleQuick()===\"nl\"?`Capaciteit: ${n} plekken`:`Capacity: ${n} seats`;}const seats=Math.max(0,getSeatsRemaining(event)||0);if(state===\"sold_out\")return\"Volgeboekt\";if(state===\"few_left\")return`Laatste ${seats} plekken`;return`Nog ${seats} plekken beschikbaar`;}function withAvailabilityData(event,props,fallbackSlug=\"\"){const displayOnly=readDisplayOnlyProp(props);const currentVariant=readStringProp(props,[\"variant\"])||resolveAvailabilityVariantName(\"available\",props);const state=getAvailabilityState(event);const seatsForDisplay=event?.isPastEvent?getRsvpMax(event):getSeatsRemaining(event);const seats=seatsForDisplay;const rsvpCount=getRsvpCount(event);const rsvpMax=getRsvpMax(event);const resolvedSlug=event?.slug||fallbackSlug||\"\";const href=resolvedSlug?`/academy/${resolvedSlug}`:\"#\";const navigation=displayOnly||!resolvedSlug?{}:{slug:href,// onTap ensures navigation fires on mobile (touch devices trigger hover\n// on first tap, blocking Framer's link system from firing)\nonTap:()=>{window.location.href=href;}};return{variant:event?resolveAvailabilityVariantName(state,props):currentVariant,seatsRemaining:seats===null?\"\":`${Math.max(0,seats)}`,availabilityText:event?getAvailabilityText(event):\"\",isSoldOut:event?state===\"sold_out\":false,isPastEvent:Boolean(event?.isPastEvent),rsvpCount:rsvpCount===null?\"\":`${Math.max(0,rsvpCount)}`,rsvpMax:rsvpMax===null?\"\":`${Math.max(0,rsvpMax)}`,eventSlug:resolvedSlug,...navigation};}function getFormStateFromMembership(status){if(status===\"checking\")return\"checking\";if(status===\"found\")return\"member\";if(status===\"not_found\")return\"non_member\";if(status===\"error\")return\"error\";return\"idle\";}/** When `event.isPastEvent` (API: Start time before now), show this instead of date + time. */function getPastEventScheduleCopy(locale){if(locale===\"nl\"){return{dateText:\"Deze training is afgelopen\",timeText:\"\"};}return{dateText:\"This training has ended\",timeText:\"\"};}function getRegisterCtaLabel(locale){return locale===\"nl\"?\"Boek je plek\":\"Book your spot\";}function useEventCardScheduleAndCta(props){const events=useAirtableEvents();const slugFromProps=resolveSlugFromProps(props);const slugFromUrl=useDetailSlugFromUrl();const activeSlug=slugFromProps||slugFromUrl||\"\";const event=activeSlug?events.find(item=>item.slug===activeSlug)||null:null;const locale=useLocale();const isPast=Boolean(event?.isPastEvent);let dateText=\"\";let timeText=\"\";if(event){if(isPast){const past=getPastEventScheduleCopy(locale);dateText=past.dateText;timeText=past.timeText;}else{dateText=formatEventDate(event.startTime,locale);timeText=getEventTimeText(event);}}const primaryCtaLabel=isPast?\"\":getRegisterCtaLabel(locale);const primaryCtaHref=activeSlug?`/academy/${activeSlug}`:\"#\";return{event,activeSlug,locale,dateText,timeText,isPastEvent:isPast,primaryCtaLabel,primaryCtaHref};}/**\n * Slug from props or URL, or (after mount) from the nearest ancestor with `data-cn-event-slug`\n * (emitted by `EventCardAvailability` on the card root). Lets nested buttons/text omit `eventSlug`.\n */function useEventCardScheduleFromAncestor(props){const propsRef=React.useRef(props);propsRef.current=props;const explicitSlug=resolveSlugFromProps(props);const[inheritedSlug,setInheritedSlug]=React.useState(\"\");const mergedRef=React.useCallback(node=>{assignFramerRef(propsRef.current,node);setInheritedSlug(readSlugFromAncestor(node));},[]);const mergedSlug=explicitSlug||inheritedSlug;const mergedProps={...props,eventSlug:mergedSlug};const schedule=useEventCardScheduleAndCta(mergedProps);return{...schedule,mergedRef};}/**\n * Apply on overview and detail elements.\n * Lookup order: eventSlug prop -> URL slug.\n * Shared implementation — do not call `Override` exports as functions (Framer's `Override` type is not always callable).\n *\n * Past events (`isPastEvent` from API): `dateText` / `TimeText` show an end-state message; `timeText` is empty.\n * Spread `...typedProps` so Framer layer controls (e.g. `DateText`, `ButtonLabel`) still merge.\n */function useEventCardAvailability(props,options){const typedProps=options?.displayOnly===true?{...props,displayOnly:true}:props;const schedule=useEventCardScheduleAndCta(typedProps);const{event,activeSlug,dateText,timeText,isPastEvent,primaryCtaLabel,primaryCtaHref}=schedule;return{...typedProps,...withAvailabilityData(event,typedProps,activeSlug),dateText,timeText,DateText:dateText,TimeText:timeText,isPastEvent,// Past: keep canvas button link/label; detail signup uses its own variant (\"keep me posted\") in Framer.\n...isPastEvent?{}:{primaryCtaLabel,primaryCtaHref,PrimaryCtaLabel:primaryCtaLabel,PrimaryCtaHref:primaryCtaHref},[ATTR_CN_EVENT_SLUG]:activeSlug||undefined};}export const EventCardAvailability=props=>useEventCardAvailability(props);/**\n * Backward-compatible alias for older Framer bindings.\n */export const EventAvailabilityBySlug=EventCardAvailability;/**\n * Same as EventCardAvailability but never sets `slug` / `onTap` — use when you only\n * bind seats/variant text and the frame must not navigate (e.g. text inside a card).\n */export const EventCardAvailabilityDisplayOnly=props=>useEventCardAvailability(props,{displayOnly:true});/**\n * Primary CTA for **upcoming** trainings: register label + `/academy/{slug}`.\n * **Past** trainings: does not override href/label/tap — keeps your Framer canvas link (e.g. `./academy`).\n * RichText labels still need to match in the editor (props alone may not replace nested text).\n */export const EventCardPrimaryButton=props=>{const typedProps=props;const{primaryCtaLabel,primaryCtaHref,mergedRef,isPastEvent}=useEventCardScheduleFromAncestor(typedProps);if(isPastEvent){return{...typedProps,ref:mergedRef};}const go=()=>{if(!primaryCtaHref||primaryCtaHref===\"#\")return;window.location.href=primaryCtaHref;};return{...typedProps,ref:mergedRef,ButtonLabel:primaryCtaLabel,buttonLabel:primaryCtaLabel,children:primaryCtaLabel,text:primaryCtaLabel,label:primaryCtaLabel,href:primaryCtaHref,link:primaryCtaHref,onTap:go,onClick:go};};/** Optional: attach to the date text layer if date/time are separate from the card frame. */export const EventCardDateText=props=>{const typedProps=props;const{dateText,mergedRef}=useEventCardScheduleFromAncestor(typedProps);return{...typedProps,ref:mergedRef,DateText:dateText,dateText,text:dateText,children:dateText};};/** Optional: attach to the time text layer. */export const EventCardTimeText=props=>{const typedProps=props;const{timeText,mergedRef}=useEventCardScheduleFromAncestor(typedProps);return{...typedProps,ref:mergedRef,TimeText:timeText,timeText,text:timeText,children:timeText};};/**\n * Apply on detail page elements. Slug comes from URL.\n */export const DetailAvailability=props=>{const typedProps=props;const slug=useDetailSlugFromUrl();const event=useEventBySlug(slug);return{...typedProps,...withAvailabilityData(event,typedProps,slug||\"\")};};/**\n * Apply on signup form root component.\n * Priority: sold_out > already_registered > submit redirecting/success/error > member lookup state > idle\n */export const SignupFormVariant=props=>{const typedProps=props;const slug=useDetailSlugFromUrl();const pageUrl=usePageUrl();const event=useEventBySlug(slug);const membership=useMemberLookupState();const submitState=useSubmitState();let state=getFormStateFromMembership(membership.status);if(event&&getAvailabilityState(event)===\"sold_out\")state=\"sold_out\";else if(membership.alreadyRegisteredForEvent)state=\"already_registered\";else if(submitState===\"checking\")state=\"redirecting\";else if(submitState===\"success\")state=\"success\";else if(submitState===\"error\")state=\"error\";const{onTap:_onTap,...availabilityData}=withAvailabilityData(event,typedProps,slug||\"\");return{...availabilityData,variant:resolveFormVariantName(state,typedProps),formState:state,isMember:membership.isMember,alreadyRegisteredForEvent:membership.alreadyRegisteredForEvent,registrationStatus:membership.registrationStatus,membershipStatus:membership.status,trainingSlug:event?.slug||slug||\"\",pageUrl:pageUrl||\"\",name:membership.name||\"\",firstName:membership.firstName||\"\",lastName:membership.lastName||\"\",fullName:membership.fullName||\"\",avatarUrl:membership.avatarUrl||\"\"};};/**\n * Apply to hidden/text form field \"trainingSlug\".\n * Value comes from current detail-page URL.\n */export const SignupTrainingSlugField=()=>{const slug=useDetailSlugFromUrl();const value=slug||\"\";return{value,defaultValue:value};};/**\n * Apply to hidden/text form field \"pageUrl\".\n * Value is the current browser URL.\n */export const SignupPageUrlField=()=>{const pageUrl=usePageUrl();const value=pageUrl||\"\";return{value,defaultValue:value};};/**\n * Apply to the submit button of the signup form when using Stripe Checkout flow.\n * - Creates checkout session via cn_services\n * - Redirects browser to Stripe checkoutUrl from API response\n * - Expects form to provide at least email + trainingSlug\n */export const SignupStartStripeCheckout=props=>{const typedProps=props;const slug=useDetailSlugFromUrl()||\"\";const pageUrl=usePageUrl();const event=useEventBySlug(slug);const membership=useMemberLookupState();const submitState=useSubmitState();const startCheckout=async(...args)=>{const maybeEvent=args?.[0];if(maybeEvent&&typeof maybeEvent.preventDefault===\"function\"){maybeEvent.preventDefault();}if(maybeEvent&&typeof maybeEvent.stopPropagation===\"function\"){maybeEvent.stopPropagation();}if(submitStore.state===\"checking\")return;// Trigger native form validation so required fields show their errors.\nconst form=(maybeEvent?.target)?.closest?.(\"form\");if(form&&typeof form.reportValidity===\"function\"){if(!form.reportValidity())return;}if(event&&getAvailabilityState(event)===\"sold_out\"){window.location.href=\"mailto:academy@createnew.co\";return;}if(membership.alreadyRegisteredForEvent){setSubmitState(\"error\");return;}// Bot detection: honeypot field (bots fill all fields)\nconst honeypot=readInputValue([\"website\",\"url\",\"homepage\",\"fax\"]);if(honeypot){console.warn(\"[SignupStartStripeCheckout] Honeypot field filled — likely bot\");setSubmitState(\"error\");return;}// Bot detection: submissions faster than 2 seconds are suspicious\nif(pageLoadTime&&Date.now()-pageLoadTime<MIN_SUBMIT_DELAY_MS){console.warn(\"[SignupStartStripeCheckout] Submission too fast — likely bot\");setSubmitState(\"error\");return;}const email=membership.email||readInputValue([\"email\",\"Email\",\"e-mail\",\"mail\"]);const trainingSlug=slug||readInputValue([\"trainingSlug\",\"training_slug\",\"slug\"]);const firstNameInput=readInputValue([\"firstName\",\"first_name\"]);const lastNameInput=readInputValue([\"lastName\",\"last_name\"]);const name=membership.fullName||membership.name||readInputValue([\"name\",\"fullName\",\"full_name\"])||[firstNameInput,lastNameInput].filter(Boolean).join(\" \").trim();const companyName=readInputValue([\"companyName\",\"company_name\",\"company\"]);const vatNumber=readInputValue([\"vatNumber\",\"vat_number\",\"vat\"]);const cocNumber=readInputValue([\"cocNumber\",\"coc_number\",\"coc\",\"kvk\",\"kvkNumber\",\"kvk_number\"]);const billingStreet=readInputValue([\"billingStreet\",\"billing_street\",\"street\",\"address\"]);const billingHouseNumber=readInputValue([\"billingHouseNumber\",\"billing_house_number\",\"houseNumber\",\"house_number\",\"number\"]);const billingPostalCode=readInputValue([\"billingPostalCode\",\"billing_postal_code\",\"postalCode\",\"postal_code\",\"postcode\"]);const billingCity=readInputValue([\"billingCity\",\"billing_city\",\"city\"]);const billingCountry=readInputValue([\"billingCountry\",\"billing_country\",\"country\"]);if(!email||!trainingSlug){setSubmitState(\"error\");return;}// Always run a fresh lookup before proceeding — the cached store state\n// may be stale (e.g. person paid in another tab, alreadyRegisteredForEvent\n// is still false in this session).\nconst membershipSnapshot=await runMemberLookupNow(email,trainingSlug);if(membershipSnapshot.status===\"invalid\"){setSubmitState(\"error\");return;}if(membershipSnapshot.alreadyRegisteredForEvent){// Store already has alreadyRegisteredForEvent: true from runMemberLookupNow.\n// SignupFormVariant will switch to \"already_registered\" variant automatically.\nsetSubmitState(\"idle\");return;}const membershipStatus=membershipSnapshot.isMember?\"member\":\"non_member\";setSubmitState(\"checking\");try{const response=await fetch(`${API_BASE}/payments/create-checkout-session-ngyc9ksjavdwrfxu384mzq`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({email,trainingSlug,pageUrl,membershipStatus,name,companyName,vatNumber,cocNumber,billingStreet,billingHouseNumber,billingPostalCode,billingCity,billingCountry})});const data=await response.json().catch(()=>null);const checkoutUrl=String(data?.checkoutUrl||\"\").trim();if(response.status===409){// Already paid — re-run member lookup so the store reflects\n// alreadyRegisteredForEvent: true and the form switches to\n// the already_registered variant automatically.\nawait runMemberLookupNow(email,trainingSlug);setSubmitState(\"idle\");return;}if(!response.ok||!checkoutUrl){setSubmitState(\"error\");return;}window.location.href=checkoutUrl;}catch{setSubmitState(\"error\");}finally{typedProps?.onTap?.(...args);}};return{type:\"button\",disabled:submitState===\"checking\",onTap:startCheckout,onClick:startCheckout};};/** Optional submit-state helpers */export const SignupSubmissionSuccess=props=>{const typedProps=props;return{onTap:(...args)=>{const slug=typeof window!==\"undefined\"?getSlugFromPathname(window.location.pathname||\"\")||\"\":\"\";runMemberLookupNow(undefined,slug).then(snapshot=>{if(snapshot.alreadyRegisteredForEvent){setSubmitState(\"idle\");return;}setSubmitState(\"success\");}).catch(()=>{setSubmitState(\"success\");});typedProps?.onTap?.(...args);}};};export const SignupSubmissionError=props=>{const typedProps=props;return{onTap:(...args)=>{setSubmitState(\"error\");typedProps?.onTap?.(...args);}};};export const SignupSubmissionReset=props=>{const typedProps=props;return{onTap:(...args)=>{setSubmitState(\"idle\");typedProps?.onTap?.(...args);}};};function useLocale(){// Prefer Framer's locale context (requires Framer localization plugin to be active)\nconst{activeLocale}=useLocaleInfo();const framerCode=(activeLocale?.code||\"\").toLowerCase();if(framerCode)return framerCode.startsWith(\"nl\")?\"nl\":\"en\";// Fallback: read locale from URL pathname (/nl/... = Dutch, anything else = English)\nconst[locale,setLocale]=React.useState(\"nl\");React.useEffect(()=>{const update=()=>setLocale(window.location.pathname.split(\"/\").filter(Boolean)[0]===\"nl\"?\"nl\":\"en\");update();window.addEventListener(\"popstate\",update);return()=>window.removeEventListener(\"popstate\",update);},[]);return locale;}function formatEventDate(iso,locale){if(!iso)return\"\";try{// Dutch: \"13 april 2026\", English: \"April 13, 2026\" — visually distinct per locale\nreturn new Date(iso).toLocaleDateString(locale===\"nl\"?\"nl-NL\":\"en-US\",{timeZone:\"Europe/Amsterdam\",day:\"numeric\",month:\"long\",year:\"numeric\"});}catch{return\"\";}}function formatEventTime(iso){if(!iso)return\"\";try{return new Date(iso).toLocaleTimeString(\"nl-NL\",{timeZone:\"Europe/Amsterdam\",hour:\"2-digit\",minute:\"2-digit\"});}catch{return\"\";}}/** Same range string as EventDetailWhen — `14:00 – 16:00` or start only if no end. */function getEventTimeText(event){if(!event)return\"\";const start=formatEventTime(event.startTime);const end=formatEventTime(event.endTime);return start&&end?`${start} – ${end}`:start||\"\";}/**\n * Apply to the \"When\" component that has dateText + timeText property controls.\n * Returns both props in one override.\n */export const EventDetailWhen=props=>{const typedProps=props;const slug=useDetailSlugFromUrl();const event=useEventBySlug(slug);const locale=useLocale();if(!event)return{...typedProps};if(event.isPastEvent){const past=getPastEventScheduleCopy(locale);return{...typedProps,dateText:past.dateText,timeText:past.timeText,DateText:past.dateText,TimeText:past.timeText};}const dateText=formatEventDate(event.startTime,locale);const timeText=getEventTimeText(event);return{...typedProps,dateText,timeText,DateText:dateText,TimeText:timeText};};/**\n * Apply to the Where component on the training detail page.\n * Component needs two property controls: locationName (string) and locationUrl (string).\n * onClick is a Safari fallback — Safari loses link interactivity after Framer locale switch.\n */export const EventDetailWhere=()=>{const slug=useDetailSlugFromUrl();const event=useEventBySlug(slug);if(!event)return{};const url=event.locationUrl||\"\";return{locationName:event.location||\"\",locationUrl:url,onClick:url?e=>{e.preventDefault();window.open(url,\"_blank\",\"noopener,noreferrer\");}:undefined};};/**\n * Apply to the \"Try again\" link on the payment failed page.\n * Reads ?training= from URL (set by backend cancel_url) and links to that training,\n * or to academy overview when no training param is present.\n */export const PaymentFailedTryAgainLink=()=>{const href=useTryAgainUrl();return{href};};/**\n * Apply to the \"Back to training\" link on the payment success page.\n * Reads ?training= from URL (set by backend success_url) and links to that training,\n * or to academy overview when no training param is present.\n */export const PaymentSuccessBackLink=()=>{const url=useTryAgainUrl();return{onClick:e=>{e.preventDefault();window.location.href=url;},onTap:()=>{window.location.href=url;},href:url,link:url};};import{useContext as __legacyOverrideHOC_useContext}from\"react\";import{DataObserverContext as __legacyOverrideHOC_DataObserverContext}from\"framer\";export function withEventCardAvailability(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...EventCardAvailability(props)});};}withEventCardAvailability.displayName=\"EventCardAvailability\";export function withEventCardAvailabilityDisplayOnly(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...EventCardAvailabilityDisplayOnly(props)});};}withEventCardAvailabilityDisplayOnly.displayName=\"EventCardAvailabilityDisplayOnly\";export function withEventCardPrimaryButton(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...EventCardPrimaryButton(props)});};}withEventCardPrimaryButton.displayName=\"EventCardPrimaryButton\";export function withEventCardDateText(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...EventCardDateText(props)});};}withEventCardDateText.displayName=\"EventCardDateText\";export function withEventCardTimeText(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...EventCardTimeText(props)});};}withEventCardTimeText.displayName=\"EventCardTimeText\";export function withDetailAvailability(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...DetailAvailability(props)});};}withDetailAvailability.displayName=\"DetailAvailability\";export function withSignupFormVariant(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...SignupFormVariant(props)});};}withSignupFormVariant.displayName=\"SignupFormVariant\";export function withSignupTrainingSlugField(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...SignupTrainingSlugField(props)});};}withSignupTrainingSlugField.displayName=\"SignupTrainingSlugField\";export function withSignupPageUrlField(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...SignupPageUrlField(props)});};}withSignupPageUrlField.displayName=\"SignupPageUrlField\";export function withSignupStartStripeCheckout(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...SignupStartStripeCheckout(props)});};}withSignupStartStripeCheckout.displayName=\"SignupStartStripeCheckout\";export function withSignupSubmissionSuccess(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...SignupSubmissionSuccess(props)});};}withSignupSubmissionSuccess.displayName=\"SignupSubmissionSuccess\";export function withSignupSubmissionError(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...SignupSubmissionError(props)});};}withSignupSubmissionError.displayName=\"SignupSubmissionError\";export function withSignupSubmissionReset(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...SignupSubmissionReset(props)});};}withSignupSubmissionReset.displayName=\"SignupSubmissionReset\";export function withEventDetailWhen(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...EventDetailWhen(props)});};}withEventDetailWhen.displayName=\"EventDetailWhen\";export function withEventDetailWhere(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...EventDetailWhere(props)});};}withEventDetailWhere.displayName=\"EventDetailWhere\";export function withPaymentFailedTryAgainLink(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...PaymentFailedTryAgainLink(props)});};}withPaymentFailedTryAgainLink.displayName=\"PaymentFailedTryAgainLink\";export function withPaymentSuccessBackLink(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...PaymentSuccessBackLink(props)});};}withPaymentSuccessBackLink.displayName=\"PaymentSuccessBackLink\";\nexport const __FramerMetadata__ = {\"exports\":{\"withEventCardAvailabilityDisplayOnly\":{\"type\":\"reactHoc\",\"name\":\"withEventCardAvailabilityDisplayOnly\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SignupPageUrlField\":{\"type\":\"override\",\"name\":\"SignupPageUrlField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EventCardPrimaryButton\":{\"type\":\"override\",\"name\":\"EventCardPrimaryButton\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPaymentSuccessBackLink\":{\"type\":\"reactHoc\",\"name\":\"withPaymentSuccessBackLink\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSignupFormVariant\":{\"type\":\"reactHoc\",\"name\":\"withSignupFormVariant\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SignupSubmissionError\":{\"type\":\"override\",\"name\":\"SignupSubmissionError\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSignupSubmissionReset\":{\"type\":\"reactHoc\",\"name\":\"withSignupSubmissionReset\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSignupTrainingSlugField\":{\"type\":\"reactHoc\",\"name\":\"withSignupTrainingSlugField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PaymentSuccessBackLink\":{\"type\":\"override\",\"name\":\"PaymentSuccessBackLink\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EventCardAvailabilityDisplayOnly\":{\"type\":\"override\",\"name\":\"EventCardAvailabilityDisplayOnly\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SignupSubmissionSuccess\":{\"type\":\"override\",\"name\":\"SignupSubmissionSuccess\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EventCardDateText\":{\"type\":\"override\",\"name\":\"EventCardDateText\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EventCardAvailability\":{\"type\":\"override\",\"name\":\"EventCardAvailability\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SignupTrainingSlugField\":{\"type\":\"override\",\"name\":\"SignupTrainingSlugField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withEventCardPrimaryButton\":{\"type\":\"reactHoc\",\"name\":\"withEventCardPrimaryButton\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withEventDetailWhen\":{\"type\":\"reactHoc\",\"name\":\"withEventDetailWhen\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withDetailAvailability\":{\"type\":\"reactHoc\",\"name\":\"withDetailAvailability\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPaymentFailedTryAgainLink\":{\"type\":\"reactHoc\",\"name\":\"withPaymentFailedTryAgainLink\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SignupSubmissionReset\":{\"type\":\"override\",\"name\":\"SignupSubmissionReset\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withEventCardTimeText\":{\"type\":\"reactHoc\",\"name\":\"withEventCardTimeText\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SignupStartStripeCheckout\":{\"type\":\"override\",\"name\":\"SignupStartStripeCheckout\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EventDetailWhen\":{\"type\":\"override\",\"name\":\"EventDetailWhen\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withEventCardAvailability\":{\"type\":\"reactHoc\",\"name\":\"withEventCardAvailability\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SignupFormVariant\":{\"type\":\"override\",\"name\":\"SignupFormVariant\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSignupSubmissionSuccess\":{\"type\":\"reactHoc\",\"name\":\"withSignupSubmissionSuccess\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSignupSubmissionError\":{\"type\":\"reactHoc\",\"name\":\"withSignupSubmissionError\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PaymentFailedTryAgainLink\":{\"type\":\"override\",\"name\":\"PaymentFailedTryAgainLink\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSignupPageUrlField\":{\"type\":\"reactHoc\",\"name\":\"withSignupPageUrlField\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EventDetailWhere\":{\"type\":\"override\",\"name\":\"EventDetailWhere\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withEventCardDateText\":{\"type\":\"reactHoc\",\"name\":\"withEventCardDateText\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withEventDetailWhere\":{\"type\":\"reactHoc\",\"name\":\"withEventDetailWhere\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSignupStartStripeCheckout\":{\"type\":\"reactHoc\",\"name\":\"withSignupStartStripeCheckout\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DetailAvailability\":{\"type\":\"override\",\"name\":\"DetailAvailability\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EventCardTimeText\":{\"type\":\"override\",\"name\":\"EventCardTimeText\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EventAvailabilityBySlug\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TrainingOverridesAPI.map"],"mappings":"wNAC+M,eAAe,EAAQ,EAAI,CAAC,IAAM,EAAS,MAAM,MAAM,EAAI,CAAC,GAAG,CAAC,EAAS,GAAI,MAAU,MAAM,QAAQ,EAAS,SAAS,CAAE,OAAO,EAAS,MAAM,CAAE,SAAS,GAAiB,CAAC,OAAc,IAAS,QAAoB,EAAO,eAAe,OAAa,SAAS,EAAU,EAAI,CAAC,GAAG,CAAC,GAAiB,CAAC,OAAO,KAAK,GAAG,CAAC,IAAM,EAAI,EAAO,aAAa,QAAQ,EAAI,CAAC,GAAG,CAAC,EAAI,OAAO,KAAK,IAAM,EAAO,KAAK,MAAM,EAAI,CAAqH,MAAjH,CAAC,GAAQ,EAAO,UAAU,GAAG,OAAO,EAAO,UAAW,UAAU,OAAO,EAAO,WAAY,SAAiB,KAAa,OAAa,CAAC,OAAO,MAAO,SAAS,EAAW,EAAI,EAAK,EAAM,EAAa,CAAK,MAAiB,CAAQ,GAAG,CAAC,IAAM,EAAI,KAAK,KAAK,CAAO,EAAQ,CAAC,QAAQ,EAAE,SAAS,EAAI,UAAU,EAAI,EAAM,OAAK,CAAC,EAAO,aAAa,QAAQ,EAAI,KAAK,UAAU,EAAQ,CAAC,MAAO,GAC99B,SAAS,EAAQ,EAAU,CAAC,OAAO,OAAO,SAAS,EAAU,EAAE,EAAU,KAAK,KAAK,CACrF,SAAgB,GAAmB,CAAC,GAAK,CAAC,EAAO,GAAWA,EAAM,SAAS,EAAE,CAAC,CACqD,OADpD,EAAM,cAAc,CAAC,IAAI,EAAY,GAAY,EAAO,EAAU,EAAsB,CAAI,GAAQ,MAAM,QAAQ,EAAO,KAAK,EAAE,CAAC,GAAa,EAAU,EAAO,KAAK,CAAE,eAAe,GAAK,CAAC,GAAG,CAAC,IAAM,EAAK,MAAM,EAAQ,GAAGC,EAAS,SAAS,CAAI,CAAC,GAAa,EAAK,SAAS,MAAM,QAAQ,EAAK,OAAO,GAAE,EAAU,EAAK,OAAO,CAAC,EAAW,EAAsB,EAAK,OAAO,QAAS,EAAM,EACxc,CAAC,GAAQ,CAAC,EAAQ,EAAO,UAAU,GAAE,QAAQ,MAAM,yBAAyB,EAAM,EAAU,OAAN,GAAK,KAAW,CAAC,EAAY,KAAS,EAAE,CAAC,CAAQ,EAC1I,SAAgB,EAAe,EAAK,CAAC,GAAK,CAAC,EAAM,GAAUD,EAAM,SAAS,KAAK,CAAksB,OAAjsB,EAAM,cAAc,CAAC,GAAG,CAAC,EAAK,CAAC,EAAS,KAAK,CAAC,OAAQ,IAAI,EAAY,GAAY,EAAS,GAAG,KAA6B,mBAAmB,EAAK,GAAS,EAAO,EAAU,EAAS,CAAI,GAAQ,MAAM,CAAC,GAAa,EAAS,EAAO,KAAK,CAAE,eAAe,GAAK,CAAC,GAAG,CAAC,IAAM,EAAK,MAAM,EAAQ,GAAGC,EAAS,kBAAkB,mBAAmB,EAAK,GAAG,CAAC,GAAG,CAAC,EAAY,CAAC,IAAM,EAAU,EAAK,SAAS,EAAK,MAAM,EAAK,MAAM,KAAK,EAAS,EAAU,CAAI,GAAW,EAAW,EAAS,EAAU,QAAU,EAAM,CAAI,CAAC,GAAa,EAAE,GAAQ,EAAQ,EAAO,UAAU,GAAG,EAAS,KAAK,EAAK,CAAC,GAAQ,CAAC,EAAQ,EAAO,UAAU,GAAE,QAAQ,MAAM,wBAAwB,EAAM,EAAU,OAAN,GAAK,KAAW,CAAC,EAAY,KAAS,CAAC,EAAK,CAAC,CAAQ,iCAJ/vB,CAAMA,EAAS,gCAAsC,EAAa,KAAQ,IAAU,EAAsB,oBAA0B,GAA2B,0BCDoO,SAAS,IAAM,CAAC,EAAU,QAAQ,GAAU,GAAU,CAAC,CAAE,SAAS,EAAS,EAAM,CAAC,OAAO,OAAO,EAAM,EAAM,CAAC,IAAM,CAAE,SAAS,GAAU,EAAS,CAAyB,OAAxB,EAAU,IAAI,EAAS,KAAW,CAAC,EAAU,OAAO,EAAS,EAAI,SAAS,GAAoB,CAAC,GAAK,CAAC,EAAS,GAAaC,EAAe,CAAC,GAAG,EAAM,CAAC,CAA8F,OAA7F,MAAqE,OAA/B,EAAY,CAAC,GAAG,EAAM,CAAC,CAAyB,CAAG,EAAE,CAAC,CAAQ,EAAU,SAAgB,IAAsB,CAAC,OAAO,GAAoB,CAAE,eAAsB,EAAmB,EAAW,EAAqB,GAAG,CAAuG,OAAlD,MAAM,EAA9C,EAAe,GAAY,EAAM,MAAM,CAA6B,EAAqB,CAAO,CAAC,GAAG,EAAM,CAAE,SAAS,EAAe,EAAM,CAAC,OAAO,OAAO,GAAO,GAAG,CAAC,MAAM,CAAC,aAAa,CAAE,SAASC,GAAoB,EAAS,CAAC,IAAM,EAAM,OAAO,GAAU,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAM,OAAO,MAAM,GAAG,IAAM,EAAM,IAAI,IAAI,CAAC,UAAU,WAAW,SAAS,CAAC,CAAuL,OAAnL,EAAM,QAAQ,GAAG,EAAM,IAAI,EAAM,GAAG,CAAS,OAAO,EAAM,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,CAAK,EAAM,QAAQ,GAAG,EAAM,IAAI,EAAM,GAAG,CAAS,OAAO,EAAM,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,CAAQ,GAAI,SAAS,GAAwB,EAAO,CAA+E,OAA3E,IAAS,QAAc,SAAY,IAAS,YAAkB,aAAmB,UAA2P,eAAe,EAAgB,EAAW,EAAqB,GAAG,CAAC,IAAM,EAAM,EAAe,EAAW,CAAO,EAAa,OAAO,GAAsB,GAAG,CAAC,MAAM,CAAC,aAAa,GAAU,IAAS,OAA8D,GAAlDA,GAAoB,EAAO,SAAS,UAAU,GAAG,EAAW,EAAe,IAAS,OAAqC,GAAzB,EAAO,SAAS,MAAM,GAAM,GAAG,CAAC,EAAM,CAAC,EAAS,CAAC,MAAM,GAAG,OAAO,OAAO,SAAS,GAAM,0BAA0B,GAAM,mBAAmB,cAAc,eAAa,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,CAAC,CAAC,OAAQ,GAAG,CAAC,EAAY,KAAK,EAAM,CAAC,CAAC,EAAS,CAAC,QAAM,OAAO,UAAU,SAAS,GAAM,0BAA0B,GAAM,mBAAmB,cAAc,eAAa,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,kCAAkC,CAAC,CAAC,OAAQ,EAAS,CAAC,QAAM,OAAO,WAAW,eAAa,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAM,EAAO,IAAI,gBAAgB,CAAC,QAAM,CAAC,CAAI,GAAa,EAAO,IAAI,eAAe,EAAa,CAAI,GAAQ,EAAO,IAAI,UAAU,EAAQ,CAAC,IAAM,EAAS,MAAM,MAAM,GAAGC,EAAS,iBAAiB,EAAO,UAAU,GAAG,CAAC,GAAG,CAAC,EAAS,GAAI,MAAU,MAAM,QAAQ,EAAS,SAAS,CAAE,IAAM,EAAK,MAAM,EAAS,MAAM,CAAC,GAAG,CAAC,GAAM,QAAS,MAAU,MAAM,GAAM,OAAO,iBAAiB,CAAE,IAAM,EAAO,GAAM,SAAS,GAAW,EAA0B,GAAM,4BAA4B,GAAW,EAAmB,EAA0B,qBAAqB,iBAAuB,EAAK,EAAO,OAAO,GAAM,QAAQ,MAAM,GAAG,CAAC,MAAM,CAAC,GAAS,EAAU,EAAO,OAAO,GAAM,QAAQ,WAAW,GAAG,CAAC,MAAM,CAAC,GAAS,EAAS,EAAO,OAAO,GAAM,QAAQ,UAAU,GAAG,CAAC,MAAM,CAAC,GAAS,EAAS,EAAO,OAAO,GAAM,QAAQ,UAAU,GAAG,CAAC,MAAM,CAAC,GAAS,EAAU,EAAO,OAAO,GAAM,QAAQ,WAAW,GAAG,CAAC,MAAM,CAAC,GAAG,EAAS,CAAC,QAAM,OAAO,EAAO,QAAQ,YAAY,SAAS,EAAO,4BAA0B,qBAAmB,eAAa,OAAK,YAAU,WAAS,WAAS,YAAU,MAAM,GAAG,CAAC,OAAQ,EAAM,CAAC,EAAS,CAAC,QAAM,OAAO,QAAQ,SAAS,GAAM,0BAA0B,GAAM,mBAAmB,cAAc,eAAa,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAO,SAAS,qCAAqC,CAAC,EAAG,SAAS,GAAe,EAAM,EAAqB,GAAG,EAAQ,IAAI,CAAI,GAAe,EAAO,aAAa,EAAc,CAAE,EAAc,EAAO,eAAe,CAAC,EAAgB,EAAM,EAAqB,EAAG,EAAQ,CAiCj9H,SAAgB,GAAqB,EAAE,CAAC,MAAO,KAAQ,EAA+BC,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,EAAiB,EAAM,CAAC,CAAC,EAAwD,SAAgB,GAAqB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,EAAiB,EAAM,CAAC,CAAC,EAAwD,SAAgB,GAAsB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAkB,EAAM,CAAC,CAAC,EAA0D,SAAgB,GAAuB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAmB,EAAM,CAAC,CAAC,EAA4D,SAAgB,GAAsB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAkB,EAAM,CAAC,CAAC,EAA0D,SAAgB,GAAyB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAqB,EAAM,CAAC,CAAC,EAAgE,SAAgB,GAAwB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAoB,EAAM,CAAC,CAAC,EAA8D,SAAgB,GAAwB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAoB,EAAM,CAAC,CAAC,EAA8D,SAAgB,GAAoB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAgB,EAAM,CAAC,CAAC,EAAsD,SAAgB,GAAkC,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAA8B,EAAM,CAAC,CAAC,EAAkF,SAAgB,GAAiC,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAA6B,EAAM,CAAC,CAAC,EAAgF,SAAgB,GAAwB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAoB,EAAM,CAAC,CAAC,oEAjCvlG,IAA4B,IAiCiN,CAjC3MF,EAAS,gCAAsC,EAAY,6BAAmC,EAAM,CAAC,MAAM,GAAG,OAAO,OAAO,SAAS,GAAM,0BAA0B,GAAM,mBAAmB,cAAc,aAAa,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,CAAO,EAAU,IAAI,IAAQ,EAAc,KAKvY,EAAiB,GAAO,CAAC,IAAM,EAAW,GAAoB,CAAO,EAAqB,OAAO,GAAO,cAAc,GAAG,CAAC,MAAM,CAAO,EAAiB,GAAO,CAAC,IAAM,EAAU,OAAO,GAAO,QAAQ,OAAO,GAAG,CAAC,EAAS,CAAC,MAAM,EAAU,CAAC,CAAC,GAAe,EAAU,EAAqB,EAAG,MAAM,CAAC,MAAM,EAAW,MAAM,QAAQ,GAAO,CAAC,IAAM,EAAa,OAAO,GAAO,QAAQ,OAAO,GAAG,CAAI,GAAc,EAAe,EAAa,GAAG,EAAe,EAAM,MAAM,EAAE,EAAiB,EAAM,CAAK,OAAO,GAAO,SAAU,YAAY,EAAM,QAAQ,EAAM,EAAI,QAAQ,GAAO,CAAC,EAAiB,EAAM,CAAI,OAAO,GAAO,SAAU,YAAY,EAAM,QAAQ,EAAM,EAAI,SAAS,GAAO,CAAC,EAAiB,EAAM,CAAI,OAAO,GAAO,UAAW,YAAY,EAAM,SAAS,EAAM,EAAI,OAAO,GAAO,CAAuE,IAAM,EAAvD,EAAe,OAAO,GAAO,QAAQ,OAAO,GAAG,CAAC,EAAiC,EAAe,EAAM,MAAM,CAAO,EAAa,OAAO,GAAsB,GAAG,CAAC,MAAM,CAAC,aAAa,GAAU,IAAS,OAA8D,GAAlDD,GAAoB,EAAO,SAAS,UAAU,GAAG,EAAW,EAAU,EAAM,SAAS,SAAS,EAAM,SAAS,YAAkB,EAAY,GAAW,EAAe,EAAM,MAAM,GAAG,GAAW,OAAO,EAAM,cAAc,GAAG,CAAC,MAAM,CAAC,aAAa,GAAG,EAEnvC,GAAG,CAAC,GAAW,GAAa,EAAU,CAAI,OAAO,GAAO,QAAS,YAAY,EAAM,OAAO,EAAM,CAAE,OAAQ,AAAqD,KAAnC,EAAO,aAAa,EAAc,CAAe,MAAM,EAAgB,EAAU,EAAqB,CAAI,OAAO,GAAO,QAAS,YAAY,EAAM,OAAO,EAAM,EAAI,EAEhR,MAAqB,CAAC,IAAM,EAAW,GAAoB,CAAwoB,OAApoB,EAAW,SAAS,OAAc,CAAC,KAAK,GAAG,CAAK,EAAW,SAAS,WAAkB,CAAC,KAAK,8BAA8B,CAAK,EAAW,SAAS,UAAiB,CAAC,KAAK,kCAAkC,CAAK,EAAW,SAAS,QAAY,EAAW,0BAAiC,CAAC,KAAK,2CAA2C,CAAwE,CAAC,KAAK,kBAA/D,EAAW,SAAS,KAAK,EAAW,SAAS,GAAG,KAA0C,CAAK,EAAW,SAAS,YAAgB,EAAW,0BAAiC,CAAC,KAAK,2CAA2C,CAAQ,CAAC,KAAK,uDAAuD,CAAQ,CAAC,KAAK,qBAAqB,EAAW,OAAO,mBAAmB,EAGzwB,OAAsB,CAAuC,IAAM,EAAM,GAAjC,GAAoB,CAAgD,OAAO,CAAC,MAAM,CAAC,QAAM,aAAa,EAAM,EAGpJ,QAAoE,CAAC,MAA5B,GAAoB,CAAyB,SAAS,OAAO,QAAQ,EAE9G,QAAmE,CAAC,MAA5B,GAAoB,CAAyB,WAAW,GAAG,EAEnG,QAAsE,CAAC,MAA5B,GAAoB,CAAyB,WAAW,GAAG,EAEtG,QAAqE,CAAC,MAA5B,GAAoB,CAAyB,UAAU,GAAG,EAEpG,QAAqE,CAAC,MAA5B,GAAoB,CAAyB,UAAU,GAAG,EAEpG,QAAiE,CAAC,MAA5B,GAAoB,CAAyB,MAAM,GAAG,EAG5F,QAA+E,CAAC,MAA5B,GAAoB,CAAyB,mBAAmB,EAGpH,QAA8E,CAAC,MAA5B,GAAoB,CAAyB,0BAA0B,OAAO,QAAQ,EAEzI,OAAwB,CAAC,IAAM,EAAW,GAAoB,CAAC,MAAM,CAAC,UAAU,EAAgB,EAAW,MAAM,CAAC,EAA6U,GAAqB,YAAY,mBAA0M,GAAqB,YAAY,mBAA4M,GAAsB,YAAY,oBAA+M,GAAuB,YAAY,qBAA8M,GAAsB,YAAY,oBAAmN,GAAyB,YAAY,uBAAoN,GAAwB,YAAY,sBAAmN,GAAwB,YAAY,sBAA2M,GAAoB,YAAY,kBAAmO,GAAkC,YAAY,gCAA+O,GAAiC,YAAY,+BAA4N,GAAwB,YAAY,yBC5B9iG,SAAS,IAAiB,CAAC,EAAgB,QAAQ,GAAU,GAAU,CAAC,CAAE,SAAS,EAAe,EAAM,CAAC,EAAY,MAAM,EAAM,IAAiB,CAAE,SAAS,IAAgB,CAAC,GAAK,CAAC,EAAM,GAAUI,EAAe,EAAY,MAAM,CAAuJ,OAAtJ,MAAoB,CAAC,IAAM,MAAa,EAAS,EAAY,MAAM,CAA+B,OAA9B,EAAgB,IAAI,EAAS,KAAW,CAAC,EAAgB,OAAO,EAAS,GAAK,EAAE,CAAC,CAAQ,EAAO,SAAS,EAAc,EAAM,CAAC,GAAG,OAAO,GAAQ,SAAS,MAAM,GAAG,IAAM,EAAI,EAAM,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,EAAI,MAAM,GAAG,GAAG,EAAI,SAAS,IAAI,CAAC,CAA6C,IAAM,EAAtC,EAAI,MAAM,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,GAAqB,MAAM,IAAI,CAAC,OAAO,QAAQ,CAAC,OAAO,EAAM,EAAM,OAAO,IAAI,GAAI,OAAO,EAAK,SAAS,GAAuB,EAAM,EAAM,EAAE,CAAC,GAAG,EAAM,GAAG,GAAQ,KAAwB,MAAM,GAAG,IAAM,EAAO,EAAc,EAAM,CAAC,GAAG,EAAO,OAAO,EAAO,GAAG,OAAO,GAAQ,SAAS,MAAM,GAAG,IAAM,EAAO,EAAoF,IAAI,IAAM,IAA7E,CAAC,OAAO,OAAO,MAAM,OAAO,WAAW,QAAQ,OAAO,OAAO,KAAK,CAAuB,CAAC,IAAM,EAAO,GAAuB,EAAO,GAAK,EAAM,EAAE,CAAC,GAAG,EAAO,OAAO,EAAQ,MAAM,GAAI,SAAS,GAAqB,EAAM,CAAC,OAAO,GAAuB,EAAM,UAAU,CAAuL,SAAS,GAAqB,EAAK,CAAoE,OAA/D,GAAuB,EAAK,QAAQ,IAAI,EAAmB,GAAG,EAAY,aAAa,EAAmB,EAAE,MAAM,EAAvG,GAA6G,SAAS,GAAgB,EAAW,EAAK,CAAC,IAAM,EAAE,EAAW,IAAQ,IAAY,OAAO,GAAI,WAAW,EAAE,EAAK,CAAS,GAAG,OAAO,GAAI,UAAU,YAAY,IAAG,EAAE,QAAQ,IAAO,SAAS,GAAoB,EAAS,CAAC,IAAM,EAAM,OAAO,GAAU,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAM,OAAO,OAAO,KAAK,IAAM,EAAM,IAAI,IAAI,CAAC,UAAU,WAAW,SAAS,CAAC,CAA+J,OAA3J,EAAM,QAAQ,GAAG,EAAM,IAAI,EAAM,GAAG,CAAS,EAAc,EAAM,GAAG,EAAE,KAAS,EAAM,QAAQ,GAAG,EAAM,IAAI,EAAM,GAAG,EAAS,EAAc,EAAM,GAAG,EAAe,KAAM,SAAS,GAAsB,CAAC,GAAK,CAAC,EAAK,GAASA,EAAe,KAAK,CAAsP,OAArP,MAAoB,CAAC,GAAU,IAAS,OAAY,OAAO,IAAM,MAAW,EAAQ,GAAoB,EAAO,SAAS,SAAS,CAAC,CAAqD,OAApD,GAAQ,CAAC,EAAO,iBAAiB,WAAW,EAAO,KAAW,EAAO,oBAAoB,WAAW,EAAO,EAAG,EAAE,CAAC,CAAQ,EAAM,SAAS,GAAY,CAAC,GAAK,CAAC,EAAI,GAAQA,EAAe,GAAG,CAAgU,OAA/T,MAAoB,CAAC,GAAU,IAAS,OAAY,OAAO,IAAM,MAAW,EAAO,EAAO,SAAS,MAAM,GAAG,CAAkG,OAAjG,GAAQ,CAAC,EAAO,iBAAiB,WAAW,EAAO,CAAC,EAAO,iBAAiB,aAAa,EAAO,KAAW,CAAC,EAAO,oBAAoB,WAAW,EAAO,CAAC,EAAO,oBAAoB,aAAa,EAAO,GAAK,EAAE,CAAC,CAAQ,EAAK,SAAS,GAA0B,EAAO,CAAC,GAAG,OAAO,GAAS,UAAU,CAAC,EAAO,OAAO,KAAkF,IAAM,EAAtE,IAAI,gBAAgB,EAAO,WAAW,IAAI,CAAC,EAAO,IAAI,IAAS,CAAgB,IAAI,WAAW,EAAE,MAAM,CAAC,OAAO,GAAE,EAAc,EAAE,EAAO,KAAM,SAAS,IAA0B,CAAC,GAAK,CAAC,EAAK,GAASA,EAAe,KAAK,CAA0P,OAAzP,MAAoB,CAAC,GAAU,IAAS,OAAY,OAAO,IAAM,MAAW,EAAQ,GAA0B,EAAO,SAAS,OAAO,CAAC,CAAqD,OAApD,GAAQ,CAAC,EAAO,iBAAiB,WAAW,EAAO,KAAW,EAAO,oBAAoB,WAAW,EAAO,EAAG,EAAE,CAAC,CAAQ,EAAM,SAAS,GAA4B,EAAS,CAA4F,OAA/E,OAAO,GAAU,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,QAAQ,CAAU,KAAK,KAAW,MAAY,GAAI,SAAS,IAAgB,CAAC,IAAM,EAAa,IAA0B,CAAM,CAAC,EAAI,GAAQA,EAAe,GAAG,CAAgU,OAA/T,MAAoB,CAAC,GAAU,IAAS,OAAY,OAAmD,IAAM,EAAO,GAA1C,EAAO,SAAS,UAAU,GAAqD,CAAO,EAAK,6BAA2H,EAAnF,EAAa,GAAG,IAAO,EAAO,WAAW,IAAe,GAAG,IAAO,EAAO,UAAsB,EAAG,CAAC,EAAa,CAAC,CAAQ,EAAK,SAAS,EAAe,EAAM,EAAK,CAAC,IAAI,IAAM,KAAO,EAAK,CAAC,IAAM,EAAM,EAAM,GAAK,GAAG,OAAO,GAAQ,UAAU,EAAM,MAAM,CAAE,OAAO,EAAM,MAAM,CAAG,OAAO,KAA+F,SAAS,GAAoB,EAAM,CAAmN,OAA/M,EAAM,cAAc,IAAM,EAAM,cAAc,QAAsB,EAAM,eAAe,IAAM,EAAM,eAAe,QAAsB,EAAM,eAAe,IAAO,EAAM,eAAe,QAAkC,SAAS,GAA+B,EAAM,EAAM,CAAgR,OAAO,EAAe,EAApM,CAAC,UAAU,CAAC,mBAAmB,mBAAmB,YAAY,CAAC,SAAS,CAAC,iBAAiB,iBAAiB,UAAU,CAAC,SAAS,CAAC,iBAAiB,iBAAiB,UAAU,CAAC,CAAyC,GAAO,EAA/S,CAAC,UAAU,YAAY,SAAS,WAAW,SAAS,WAAW,CAA2P,GAAQ,SAAS,GAAuB,EAAM,EAAM,CAAmxB,OAAO,EAAe,EAApkB,CAAC,KAAK,CAAC,cAAc,iBAAiB,iBAAiB,UAAU,CAAC,SAAS,CAAC,kBAAkB,kBAAkB,WAAW,CAAC,YAAY,CAAC,qBAAqB,qBAAqB,cAAc,CAAC,mBAAmB,CAAC,2BAA2B,2BAA2B,oBAAoB,CAAC,OAAO,CAAC,gBAAgB,gBAAgB,SAAS,CAAC,WAAW,CAAC,mBAAmB,mBAAmB,YAAY,CAAC,QAAQ,CAAC,iBAAiB,iBAAiB,UAAU,CAAC,MAAM,CAAC,eAAe,eAAe,QAAQ,CAAC,SAAS,CAAC,iBAAiB,iBAAiB,UAAU,CAAC,CAAyC,GAAO,EAAlzB,CAAC,KAAK,UAAU,SAAS,WAAW,YAAY,cAAc,mBAAmB,qBAAqB,OAAO,SAAS,WAAW,aAAa,QAAQ,UAAU,MAAM,QAAQ,SAAS,WAAW,CAA2nB,GAAQ,SAAS,EAAe,EAAM,CAAC,IAAM,EAAQ,OAAO,EAAM,CAAC,OAAO,OAAO,SAAS,EAAQ,CAAC,EAAQ,KAAM,SAAS,EAAkB,EAAM,CAAuB,OAAlB,EAAyB,EAAe,GAAO,MAAM,eAAe,CAAvD,KAAyD,SAAS,EAAW,EAAM,CAAuB,OAAlB,EAAyB,EAAe,GAAO,MAAM,WAAW,CAAnD,KAAqD,SAAS,GAAa,EAAM,CAAuB,OAAlB,EAAyB,EAAe,GAAO,MAAM,UAAU,CAAlD,KAAoD,SAAS,EAAqB,EAAM,CAAC,GAAG,CAAC,EAAM,MAAM,YAAY,IAAM,EAAM,EAAkB,EAAM,CAA2G,OAAvG,EAAM,WAAW,IAAQ,MAAM,GAAO,EAAQ,WAAc,GAAO,GAAyB,WAAiB,YAAa,SAAS,EAAe,EAAM,CAAC,GAAG,OAAO,SAAW,IAAY,MAAM,GAAG,IAAI,IAAM,KAAQ,EAAM,CAAC,IAAM,EAAQ,GAAQ,KAAK,OAAO,EAAO,IAAI,OAAO,EAAK,CAAC,EAAW,EAAO,SAAS,cAAc,eAAe,EAAQ,qBAAqB,EAAQ,mBAAmB,EAAQ,IAAI,CAAC,GAAG,GAAQ,UAAU,GAAQ,OAAO,EAAO,OAAO,GAAG,CAAC,MAAM,CAAE,OAAO,OAAO,EAAO,OAAO,GAAG,CAAC,MAAM,CAAE,IAAM,EAAK,SAAS,eAAe,EAAK,CAAC,GAAG,GAAM,UAAU,GAAM,OAAO,EAAK,OAAO,GAAG,CAAC,MAAM,CAAE,OAAO,OAAO,EAAK,OAAO,GAAG,CAAC,MAAM,CAAG,MAAM,GAAI,SAAS,IAAgB,CAA2C,OAAhC,IAAS,QAA8B,EAAO,SAAS,SAAS,MAAM,IAAI,CAAC,OAAO,QAAQ,CAAC,KAAK,KAArE,KAA+E,KAAM,SAAS,GAAoB,EAAM,CAAC,GAAG,CAAC,EAAM,MAAM,GAAG,IAAM,EAAM,EAAqB,EAAM,CACjlO,GAAG,EAAM,YAAY,CAAC,IAAM,EAAI,EAAW,EAAM,CAAC,GAAG,IAAM,KAAK,MAAM,GAAG,IAAM,EAAE,KAAK,IAAI,EAAE,EAAI,CAAC,OAAO,IAAgB,GAAG,KAAK,eAAe,EAAE,UAAU,aAAa,EAAE,QAAS,IAAM,EAAM,KAAK,IAAI,EAAE,EAAkB,EAAM,EAAE,EAAE,CAAiG,OAA7F,IAAQ,WAAiB,aAAgB,IAAQ,WAAiB,WAAW,EAAM,UAAgB,OAAO,EAAM,sBAAuB,SAAS,EAAqB,EAAM,EAAM,EAAa,GAAG,CAAC,IAAM,EAAY,GAAoB,EAAM,CAAO,EAAe,EAAe,EAAM,CAAC,UAAU,CAAC,EAAE,GAA+B,YAAY,EAAM,CAAO,EAAM,EAAqB,EAAM,CAA2F,EAApE,GAAO,YAAY,EAAW,EAAM,CAAC,EAAkB,EAAM,CAAmC,EAAU,GAAa,EAAM,CAAO,EAAQ,EAAW,EAAM,CAAO,EAAa,GAAO,MAAM,GAAc,GAAS,EAAK,EAAa,YAAY,IAAe,IAAU,EAAW,GAAa,CAAC,EAAa,EAAE,CAAC,CAAC,KAAK,EAE57B,UAAU,CAAC,EAAO,SAAS,KAAK,GAAO,CAAC,MAAM,CAAC,QAAQ,EAAM,GAA+B,EAAM,EAAM,CAAC,EAAe,eAAe,IAAQ,KAAK,GAAG,GAAG,KAAK,IAAI,EAAE,EAAM,GAAG,iBAAiB,EAAM,GAAoB,EAAM,CAAC,GAAG,UAAU,EAAM,IAAQ,WAAW,GAAM,YAAY,EAAQ,GAAO,YAAa,UAAU,IAAY,KAAK,GAAG,GAAG,KAAK,IAAI,EAAE,EAAU,GAAG,QAAQ,IAAU,KAAK,GAAG,GAAG,KAAK,IAAI,EAAE,EAAQ,GAAG,UAAU,EAAa,GAAG,EAAW,CAAE,SAAS,GAA2B,EAAO,CAAyJ,OAArJ,IAAS,WAAiB,WAAc,IAAS,QAAc,SAAY,IAAS,YAAkB,aAAgB,IAAS,QAAc,QAAc,OAAuG,SAAS,GAAyB,EAAO,CAA8E,OAA1E,IAAS,KAAY,CAAC,SAAS,6BAA6B,SAAS,GAAG,CAAQ,CAAC,SAAS,0BAA0B,SAAS,GAAG,CAAE,SAAS,GAAoB,EAAO,CAAC,OAAO,IAAS,KAAK,eAAe,iBAAkB,SAAS,GAA2B,EAAM,CAAC,IAAM,EAAO,GAAmB,CAAO,EAAc,GAAqB,EAAM,CAAO,EAAY,GAAsB,CAAO,EAAW,GAAe,GAAa,GAAS,EAAM,GAAW,EAAO,KAAK,GAAM,EAAK,OAAO,EAAW,EAAO,KAAW,EAAO,IAAW,CAAO,EAAO,EAAQ,GAAO,YAAiB,EAAS,GAAO,EAAS,GAAG,GAAG,EAAO,GAAG,EAAO,CAAC,IAAM,EAAK,GAAyB,EAAO,CAAC,EAAS,EAAK,SAAS,EAAS,EAAK,cAAe,EAAS,GAAgB,EAAM,UAAU,EAAO,CAAC,EAAS,GAAiB,EAAM,CAAG,IAAM,EAAgB,EAAO,GAAG,GAAoB,EAAO,CAAO,EAAe,EAAW,YAAY,IAAa,IAAI,MAAM,CAAC,QAAM,aAAW,SAAO,WAAS,WAAS,YAAY,EAAO,kBAAgB,iBAAe,CAGvyD,SAAS,EAAiC,EAAM,CAAC,IAAM,EAASC,EAAa,EAAM,CAAC,EAAS,QAAQ,EAAM,IAAM,EAAa,GAAqB,EAAM,CAAM,CAAC,EAAc,GAAkBD,EAAe,GAAG,CAAO,EAAUE,EAAkB,GAAM,CAAC,GAAgB,EAAS,QAAQ,EAAK,CAAC,EAAiB,GAAqB,EAAK,CAAC,EAAG,EAAE,CAAC,CAAO,EAAW,GAAc,EAAuH,MAAM,CAAC,GAA/C,GAA/C,CAAC,GAAG,EAAM,UAAU,EAAW,CAAuD,CAAoB,YAAU,CAOzgB,SAAS,GAAyB,EAAM,EAAQ,CAAC,IAAM,EAAW,GAAS,cAAc,GAAK,CAAC,GAAG,EAAM,YAAY,GAAK,CAAC,EAAiE,CAAC,QAAM,aAAW,WAAS,WAAS,cAAY,kBAAgB,kBAA5G,GAA2B,EAAW,CAA+F,MAAM,CAAC,GAAG,EAAW,GAAG,EAAqB,EAAM,EAAW,EAAW,CAAC,WAAS,WAAS,SAAS,EAAS,SAAS,EAAS,cACvZ,GAAG,EAAY,EAAE,CAAC,CAAC,kBAAgB,iBAAe,gBAAgB,EAAgB,eAAe,EAAe,EAAE,GAAoB,GAAY,IAAA,GAAU,CAoCs6B,SAAS,IAAW,CACtlC,GAAK,CAAC,gBAAc,IAAe,CAAO,GAAY,GAAc,MAAM,IAAI,aAAa,CAAC,GAAG,EAAW,OAAO,EAAW,WAAW,KAAK,CAAC,KAAK,KAClJ,GAAK,CAAC,EAAO,GAAWF,EAAe,KAAK,CAA4O,OAA3O,MAAoB,CAAC,IAAM,MAAW,EAAU,EAAO,SAAS,SAAS,MAAM,IAAI,CAAC,OAAO,QAAQ,CAAC,KAAK,KAAK,KAAK,KAAK,CAAqD,OAApD,GAAQ,CAAC,EAAO,iBAAiB,WAAW,EAAO,KAAW,EAAO,oBAAoB,WAAW,EAAO,EAAG,EAAE,CAAC,CAAQ,EAAQ,SAAS,GAAgB,EAAI,EAAO,CAAC,GAAG,CAAC,EAAI,MAAM,GAAG,GAAG,CAChW,OAAO,IAAI,KAAK,EAAI,CAAC,mBAAmB,IAAS,KAAK,QAAQ,QAAQ,CAAC,SAAS,mBAAmB,IAAI,UAAU,MAAM,OAAO,KAAK,UAAU,CAAC,MAAO,CAAC,MAAM,IAAK,SAAS,GAAgB,EAAI,CAAC,GAAG,CAAC,EAAI,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,KAAK,EAAI,CAAC,mBAAmB,QAAQ,CAAC,SAAS,mBAAmB,KAAK,UAAU,OAAO,UAAU,CAAC,MAAO,CAAC,MAAM,IAA2F,SAAS,GAAiB,EAAM,CAAC,GAAG,CAAC,EAAM,MAAM,GAAG,IAAM,EAAM,GAAgB,EAAM,UAAU,CAAO,EAAI,GAAgB,EAAM,QAAQ,CAAC,OAAO,GAAO,EAAI,GAAG,EAAM,KAAK,IAAM,GAAO,GAe5Q,SAAgB,GAA0B,EAAE,CAAC,MAAO,KAAQ,EAA+BG,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAsB,EAAM,CAAC,CAAC,EAAkE,SAAgB,GAAqC,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAiC,EAAM,CAAC,CAAC,EAAwF,SAAgB,GAA2B,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAuB,EAAM,CAAC,CAAC,EAAoE,SAAgB,GAAsB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAkB,EAAM,CAAC,CAAC,EAA0D,SAAgB,GAAsB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAkB,EAAM,CAAC,CAAC,EAA0D,SAAgB,GAAuB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAmB,EAAM,CAAC,CAAC,EAA4D,SAAgB,GAAsB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAkB,EAAM,CAAC,CAAC,EAA0D,SAAgB,GAA4B,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAwB,EAAM,CAAC,CAAC,EAAsE,SAAgB,GAAuB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAmB,EAAM,CAAC,CAAC,EAA4D,SAAgB,GAA8B,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAA0B,EAAM,CAAC,CAAC,EAA0E,SAAgB,GAA4B,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,EAAwB,EAAM,CAAC,CAAC,EAAsE,SAAgB,GAA0B,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAsB,EAAM,CAAC,CAAC,EAAkE,SAAgB,GAA0B,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAsB,EAAM,CAAC,CAAC,EAAkE,SAAgB,GAAoB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAgB,EAAM,CAAC,CAAC,EAAsD,SAAgB,GAAqB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAiB,EAAM,CAAC,CAAC,EAAwD,SAAgB,GAA8B,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAA0B,EAAM,CAAC,CAAC,EAA0E,SAAgB,GAA2B,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,EAAuB,EAAM,CAAC,CAAC,0FArEn8I,IAA4B,IAAkC,KAAkJ,KAA6J,CAAM,GAAmB,EAAQ,GAAS,gCAAsC,GAAoB,IACxf,EAAY,CAAC,MAAM,OAAO,CAAO,EAAoB,IAAS,OAAuB,EAAX,KAAK,KAAK,CAAS,EAAgB,IAAI,IAA2xC,EAAmB,qBAc3vC,GAAsB,GAAO,GAAyB,EAAM,CAKvN,GAAiC,GAAO,GAAyB,EAAM,CAAC,YAAY,GAAK,CAAC,CAI1F,GAAuB,GAAO,CAAC,IAAM,EAAW,EAAW,CAAC,kBAAgB,iBAAe,YAAU,eAAa,EAAiC,EAAW,CAAC,GAAG,EAAa,MAAM,CAAC,GAAG,EAAW,IAAI,EAAU,CAAE,IAAM,MAAO,CAAI,CAAC,GAAgB,IAAiB,MAAW,EAAO,SAAS,KAAK,IAAiB,MAAM,CAAC,GAAG,EAAW,IAAI,EAAU,YAAY,EAAgB,YAAY,EAAgB,SAAS,EAAgB,KAAK,EAAgB,MAAM,EAAgB,KAAK,EAAe,KAAK,EAAe,MAAM,EAAG,QAAQ,EAAG,EAA6G,GAAkB,GAAO,CAAC,IAAM,EAAW,EAAW,CAAC,WAAS,aAAW,EAAiC,EAAW,CAAC,MAAM,CAAC,GAAG,EAAW,IAAI,EAAU,SAAS,EAAS,WAAS,KAAK,EAAS,SAAS,EAAS,EAA+D,GAAkB,GAAO,CAAC,IAAM,EAAW,EAAW,CAAC,WAAS,aAAW,EAAiC,EAAW,CAAC,MAAM,CAAC,GAAG,EAAW,IAAI,EAAU,SAAS,EAAS,WAAS,KAAK,EAAS,SAAS,EAAS,EAE3mC,GAAmB,GAAO,CAAC,IAAM,EAAW,EAAY,EAAK,GAAsB,CAAO,EAAM,EAAe,EAAK,CAAC,MAAM,CAAC,GAAG,EAAW,GAAG,EAAqB,EAAM,EAAW,GAAM,GAAG,CAAC,EAG7L,GAAkB,GAAO,CAAC,IAAM,EAAW,EAAY,EAAK,GAAsB,CAAO,EAAQ,GAAY,CAAO,EAAM,EAAe,EAAK,CAAO,EAAW,IAAsB,CAAO,EAAY,IAAgB,CAAK,EAAM,GAA2B,EAAW,OAAO,CAAI,GAAO,EAAqB,EAAM,GAAG,WAAW,EAAM,WAAmB,EAAW,0BAA0B,EAAM,qBAA6B,IAAc,WAAW,EAAM,cAAsB,IAAc,UAAU,EAAM,UAAkB,IAAc,UAAQ,EAAM,SAAQ,GAAK,CAAC,MAAM,EAAO,GAAG,GAAkB,EAAqB,EAAM,EAAW,GAAM,GAAG,CAAC,MAAM,CAAC,GAAG,EAAiB,QAAQ,GAAuB,EAAM,EAAW,CAAC,UAAU,EAAM,SAAS,EAAW,SAAS,0BAA0B,EAAW,0BAA0B,mBAAmB,EAAW,mBAAmB,iBAAiB,EAAW,OAAO,aAAa,GAAO,MAAM,GAAM,GAAG,QAAQ,GAAS,GAAG,KAAK,EAAW,MAAM,GAAG,UAAU,EAAW,WAAW,GAAG,SAAS,EAAW,UAAU,GAAG,SAAS,EAAW,UAAU,GAAG,UAAU,EAAW,WAAW,GAAG,EAG3mC,OAA4B,CAAmC,IAAM,EAA7B,GAAsB,EAAmB,GAAG,MAAM,CAAC,QAAM,aAAa,EAAM,EAGpH,OAAuB,CAA4B,IAAM,EAAnB,GAAY,EAAsB,GAAG,MAAM,CAAC,QAAM,aAAa,EAAM,EAK3G,GAA0B,GAAO,CAAC,IAAM,EAAW,EAAY,EAAK,GAAsB,EAAE,GAAS,EAAQ,GAAY,CAAO,EAAM,EAAe,EAAK,CAAO,EAAW,IAAsB,CAAO,EAAY,IAAgB,CAAO,EAAc,MAAM,GAAG,IAAO,CAAC,IAAM,EAAW,IAAO,GAA2L,GAArL,GAAY,OAAO,EAAW,gBAAiB,YAAY,EAAW,gBAAgB,CAAK,GAAY,OAAO,EAAW,iBAAkB,YAAY,EAAW,iBAAiB,CAAK,EAAY,QAAQ,WAAW,OAChhB,IAAM,GAAM,GAAY,SAAS,UAAU,OAAO,CAAC,GAAG,GAAM,OAAO,EAAK,gBAAiB,YAAe,CAAC,EAAK,gBAAgB,CAAC,OAAQ,GAAG,GAAO,EAAqB,EAAM,GAAG,WAAW,CAAC,EAAO,SAAS,KAAK,8BAA8B,OAAQ,GAAG,EAAW,0BAA0B,CAAC,EAAe,QAAQ,CAAC,OACrP,GAAnD,EAAe,CAAC,UAAU,MAAM,WAAW,MAAM,CAAC,CAAa,CAAC,QAAQ,KAAK,iEAAiE,CAAC,EAAe,QAAQ,CAAC,OACtL,GAAG,GAAc,KAAK,KAAK,CAAC,EAAa,GAAoB,CAAC,QAAQ,KAAK,+DAA+D,CAAC,EAAe,QAAQ,CAAC,OAAQ,IAAM,EAAM,EAAW,OAAO,EAAe,CAAC,QAAQ,QAAQ,SAAS,OAAO,CAAC,CAAO,EAAa,GAAM,EAAe,CAAC,eAAe,gBAAgB,OAAO,CAAC,CAAO,EAAe,EAAe,CAAC,YAAY,aAAa,CAAC,CAAO,EAAc,EAAe,CAAC,WAAW,YAAY,CAAC,CAAO,EAAK,EAAW,UAAU,EAAW,MAAM,EAAe,CAAC,OAAO,WAAW,YAAY,CAAC,EAAE,CAAC,EAAe,EAAc,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,CAAC,MAAM,CAAO,GAAY,EAAe,CAAC,cAAc,eAAe,UAAU,CAAC,CAAO,EAAU,EAAe,CAAC,YAAY,aAAa,MAAM,CAAC,CAAO,EAAU,EAAe,CAAC,YAAY,aAAa,MAAM,MAAM,YAAY,aAAa,CAAC,CAAO,EAAc,EAAe,CAAC,gBAAgB,iBAAiB,SAAS,UAAU,CAAC,CAAO,EAAmB,EAAe,CAAC,qBAAqB,uBAAuB,cAAc,eAAe,SAAS,CAAC,CAAO,EAAkB,EAAe,CAAC,oBAAoB,sBAAsB,aAAa,cAAc,WAAW,CAAC,CAAO,EAAY,EAAe,CAAC,cAAc,eAAe,OAAO,CAAC,CAAO,EAAe,EAAe,CAAC,iBAAiB,kBAAkB,UAAU,CAAC,CAAC,GAAG,CAAC,GAAO,CAAC,EAAa,CAAC,EAAe,QAAQ,CAAC,OAGt3C,IAAM,EAAmB,MAAM,EAAmB,EAAM,EAAa,CAAC,GAAG,EAAmB,SAAS,UAAU,CAAC,EAAe,QAAQ,CAAC,OAAQ,GAAG,EAAmB,0BAA0B,CAEhM,EAAe,OAAO,CAAC,OAAQ,IAAM,EAAiB,EAAmB,SAAS,SAAS,aAAa,EAAe,WAAW,CAAC,GAAG,CAAC,IAAM,EAAS,MAAM,MAAM,GAAG,GAAS,0DAA0D,CAAC,OAAO,OAAO,QAAQ,CAAC,eAAe,mBAAmB,CAAC,KAAK,KAAK,UAAU,CAAC,QAAM,eAAa,UAAQ,mBAAiB,OAAK,eAAY,YAAU,YAAU,gBAAc,qBAAmB,oBAAkB,cAAY,iBAAe,CAAC,CAAC,CAAC,CAAO,EAAK,MAAM,EAAS,MAAM,CAAC,UAAU,KAAK,CAAO,EAAY,OAAO,GAAM,aAAa,GAAG,CAAC,MAAM,CAAC,GAAG,EAAS,SAAS,IAAI,CAG5lB,MAAM,EAAmB,EAAM,EAAa,CAAC,EAAe,OAAO,CAAC,OAAQ,GAAG,CAAC,EAAS,IAAI,CAAC,EAAY,CAAC,EAAe,QAAQ,CAAC,OAAQ,EAAO,SAAS,KAAK,OAAkB,CAAC,EAAe,QAAQ,QAAS,CAAC,GAAY,QAAQ,GAAG,EAAK,GAAI,MAAM,CAAC,KAAK,SAAS,SAAS,IAAc,WAAW,MAAM,EAAc,QAAQ,EAAc,EAAoD,EAAwB,GAAO,CAAC,IAAM,EAAW,EAAM,MAAM,CAAC,OAAO,GAAG,IAAO,CAAiG,EAAmB,IAAA,GAAjG,IAAS,OAAkE,GAAtD,GAAoB,EAAO,SAAS,UAAU,GAAG,EAAE,GAAwC,CAAC,KAAK,GAAU,CAAC,GAAG,EAAS,0BAA0B,CAAC,EAAe,OAAO,CAAC,OAAQ,EAAe,UAAU,EAAG,CAAC,UAAU,CAAC,EAAe,UAAU,EAAG,CAAC,GAAY,QAAQ,GAAG,EAAK,EAAG,EAAgB,GAAsB,GAAO,CAAC,IAAM,EAAW,EAAM,MAAM,CAAC,OAAO,GAAG,IAAO,CAAC,EAAe,QAAQ,CAAC,GAAY,QAAQ,GAAG,EAAK,EAAG,EAAgB,GAAsB,GAAO,CAAC,IAAM,EAAW,EAAM,MAAM,CAAC,OAAO,GAAG,IAAO,CAAC,EAAe,OAAO,CAAC,GAAY,QAAQ,GAAG,EAAK,EAAG,EAM/iC,GAAgB,GAAO,CAAC,IAAM,EAAW,EAA8C,EAAM,EAAnC,GAAsB,CAAiC,CAAO,EAAO,IAAW,CAAC,GAAG,CAAC,EAAM,MAAM,CAAC,GAAG,EAAW,CAAC,GAAG,EAAM,YAAY,CAAC,IAAM,EAAK,GAAyB,EAAO,CAAC,MAAM,CAAC,GAAG,EAAW,SAAS,EAAK,SAAS,SAAS,EAAK,SAAS,SAAS,EAAK,SAAS,SAAS,EAAK,SAAS,CAAE,IAAM,EAAS,GAAgB,EAAM,UAAU,EAAO,CAAO,EAAS,GAAiB,EAAM,CAAC,MAAM,CAAC,GAAG,EAAW,WAAS,WAAS,SAAS,EAAS,SAAS,EAAS,EAIzgB,OAAqB,CAAmC,IAAM,EAAM,EAAnC,GAAsB,CAAiC,CAAC,GAAG,CAAC,EAAM,MAAM,EAAE,CAAC,IAAM,EAAI,EAAM,aAAa,GAAG,MAAM,CAAC,aAAa,EAAM,UAAU,GAAG,YAAY,EAAI,QAAQ,EAAI,GAAG,CAAC,EAAE,gBAAgB,CAAC,EAAO,KAAK,EAAI,SAAS,sBAAsB,EAAG,IAAA,GAAU,EAIlS,QAAiE,CAAC,KAAxB,IAAgB,CAAa,EAIvE,MAA2B,CAAC,IAAM,EAAI,IAAgB,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,gBAAgB,CAAC,EAAO,SAAS,KAAK,GAAM,UAAU,CAAC,EAAO,SAAS,KAAK,GAAM,KAAK,EAAI,KAAK,EAAI,EAAuV,GAA0B,YAAY,wBAA+O,GAAqC,YAAY,mCAAsO,GAA2B,YAAY,yBAAkN,GAAsB,YAAY,oBAA6M,GAAsB,YAAY,oBAA+M,GAAuB,YAAY,qBAA8M,GAAsB,YAAY,oBAAyN,GAA4B,YAAY,0BAAqN,GAAuB,YAAY,qBAA8N,GAA8B,YAAY,4BAAiO,GAA4B,YAAY,0BAA2N,GAA0B,YAAY,wBAAyN,GAA0B,YAAY,wBAA6M,GAAoB,YAAY,kBAAyM,GAAqB,YAAY,mBAA4N,GAA8B,YAAY,4BAA+N,GAA2B,YAAY"}