{"version":3,"file":"SmartSearch.DhDCckxR.mjs","names":["SLUG","L.withPageTags","S.applyLock","L.currentScope","L.tagsFromSearch","S.findSection","S.PAGE","S.TAXONOMY","S.lockLabels","L.tagLabel","useRef","L.dropdownBox","p","T","L.broaderWord","L.zeroTitle","L.scopedZeroHint","L.rowCap","L.seeAllHref","L.seeAllLabel","_Fragment","L.resultsHeader","L.scopeLine","L.labelForSlug","L.sectionColor","L.longDate","L.SELECT_FIELD","L.SCOPE_KEYS","L.slugifyLabel","useState","useRef","L.createSequencer","L.searchable","useCallback","L.liveText","L.liveFills","L.planApplied","L.SLOW_MS","L.TIMEOUT_MS","D.requestScope","L.queryBody","L.isGoodResponse","L.scopeTags","L.tagLabel","D.pageChipTexts","L.createScheduler","L.KEYSTROKE","D.lockProps","S.resolveLock","L.isPhone","L.hashFocusStep","L.qFromSearch","L.scopeKeyForName","L.datesAfter","L.placeLabels","D.lockedLabels","L.scopedHelp","D.useScopedBox","L.ALL_VALUE","L.planUndo","S.escapeHref","D.ScopedResults","L.scopedPlaceholder","L.scopedAria","L.datePill","L.undoLabel","L.mobileFiltersLabel","p","L.broaderWord","L.zeroTitle","L.resultsHeader","L.scopeLine","L.labelForSlug","L.sectionColor","L.longDate","D.T","D.BROWSE_CSS","D.scopeControls","__esmMin","ne","init_ssg_sandbox_shims","init_npm_react_18_3_1","window","navigator","Ha","ce","init_npm_react_dom_18_3_1","c","p","_e","de","addPropertyControls","ControlType","init_framer_CaDWdxiz","scopeKeyForName","name","SCOPE_KEYS","SELECT_FIELD","k","slugifyLabel","key","SLUG_FOR_RENAMED_LABEL","label","scopeFromSearch","params","search","scope","v","URL_PARAM","SLUG$1","qFromSearch","readsAll","s","optionForSlug","slug","o","selectedOption","planApplied","a","applied","wanted","fills","selects","opt","from","sent","to","datesAfter","action","dates","planUndo","f","liveFills","queryBody","q","flags","searchable","createScheduler","kTimer","sTimer","settledQ","clearAll","timers","settle","t","send","SETTLED","KEYSTROKE","createSequencer","n","id","quoted","resultsHeader","total","scopeLine","labels","tagLabels","joinAnd","items","undoLabel","COUNT_WORDS","ymd","m","iso","datePill","day","MONTHS_SHORT","d","longDate","MONTHS_LONG","broaderWord","words","best","raw","w","STOP","zeroTitle","liveText","kind","mobileFiltersLabel","parserSet","readerSet","isGoodResponse","r","sectionColor","SECTION_TEXT","labelForSlug","currentScope","fromUrl","hashFocusStep","tagsFromSearch","out","withPageTags","extra","tags","scopeTags","tagLabel","chip","chipTexts","placeLabels","keys","locked","x","scopedPlaceholder","COPY","scopedAria","scopedHelp","scopedZeroHint","hasTags","seeAllLabel","seeAllHref","parts","tag","isPhone","viewportWidth","rowCap","phone","dropdownBox","top","field","viewportHeight","ALL_VALUE","SLOW_MS","TIMEOUT_MS","SCOPED_COPY","init_SmartSearchLogic","findSection","TAXONOMY","sectionOfCategory","inSection","section","category","pageLock","pathname","lock","resolveLock","props","warn","SLUG","applyLock","l","LOCK_KEYS","owner","lockLabels","cat","escapeHref","PAGE","init_SmartSearchScope","requestScope","categoryProp","lockProps","scopeControls","lockedLabels","pageChipTexts","panel","root","el","useScopedBox","quiet","closeRef","onDown","e","raf","measure","place","ScopedResults","p$5","T$1","SCOPED_CSS","Body","b","BOX_Z","WayOut","cls","pad","p$6","word","cap","shown","skeleton","seeAll","Skel","i","ScopedRow","p$7","h","p$8","BROWSE_CSS","init_SmartSearchScoped","init_jsx_runtime","warnOnce","warned","msg","selectEl","all","readSelects","setSelect","value","findNativeList","links","own","list","next","hideEl","showEl","decorateSelects","wrap","tagged","collapsed","T","sendClick","url","endpoint","data","body","JWN_SmartSearch","setQ","phase","setPhase","rows","setRows","setTotal","shownQ","setShownQ","inFlight","setInFlight","slow","setSlow","setFills","setDates","residual","setResidual","live","setLive","selVer","setSelVer","host","setHost","narrow","setNarrow","filtersOpen","setFiltersOpen","focused","setFocused","mode","setMode","setLock","open","setOpen","setPhone","box","setBox","shownScope","setShownScope","setTagLabels","rootRef","fieldRef","boxRef","modeRef","lockRef","sentScopeRef","inputRef","nativeRef","seqRef","abortRef","timersRef","settledRef","qRef","fillsRef","datesRef","putDates","active","scoped","openIfFocused","stopTimers","invalidate","fail","applyParsed","before","kept","plan","done","run","ctl","text","offset","json","got","prev","err","runRef","schedRef","fn","ms","sched","rerun","lockKey","found","onResize","stopFocus","focusIfHash","start","attempt","input","stop","step","obs","poll","q0","onChange","programmatic","target","ro","parserFills","scopedLabels","emptyHelp","ready","showBox","onInput","onKey","onFieldFocus","now","settleText","removeFill","removeDates","undo","searchAllSections","showMore","retry","onRowClick","shownText","wayOut","chipCount","showBlock","shared","results","Results","listId","scopedResults","onRootKey","CSS","ex","Chip","p$1","p$2","Skeleton","ResultRow","p$3","p$4","init_SmartSearch"],"sources":["https:/framerusercontent.com/modules/ppnMKQOvaY4G9mx10lDQ/x4AmEyxOegyaXwqR0Rwn/SmartSearchLogic.js","https:/framerusercontent.com/modules/JNvUAyyiIoj64bTkbWVw/y0qmAaFJzISMTmdwPhRp/SmartSearchScope.js","https:/framerusercontent.com/modules/dguXlTyx6hQyR3Fay50y/QFpar2aKIBvgfB9Rw4I2/SmartSearchScoped.js","https:/framerusercontent.com/modules/KAhhiRgQg6CZszXqHzy9/YUMofX2Nj04QDvlLDDwy/SmartSearch.js"],"sourcesContent":["// JWN_SmartSearch_Logic.ts - pure logic for JWN_SmartSearch.tsx (Framer code file, no React, no DOM)\n//\n// Created: 2026-10-10 14:10 EDT | Author: Claude (Builder, Step 4110.ui.2, task reciSrOui1ZSI1dqf)\n// Last modified: 2026-10-26 01:45 EDT | Author: Claude (Builder, Step 4536.page.2, task recRF6xYprk2IPSHy) |\n//   the off-/browse copy, the Tags chips (?tags=), the cap link and the drop-down box (design TPR-10490).\n// Lands in Framer through `Website/Framer Components/framer-sync` at merge (Framer file SmartSearchLogic.tsx, id oSUNL6k); never hand-paste.\n//\n// Everything the search box DECIDES lives here so node can test it:\n//   URL to scope, label to slug, the All-only fill rule, the undo rule, request bodies, the\n//   keystroke/settle scheduler and the reader-facing copy. JWN_SmartSearch.tsx only renders and\n//   touches the DOM. Tests: test/smart-search.assert.mjs (node --experimental-strip-types).\n//\n// Specs: blueprint TPR-6090 section 4 (the /query seam), the Step's own R1-R7, and the design\n// spec TPR recrL0YBLvHRd5xcN (direction A, \"Results replace the list\").\n// ── Scope keys, URL params and the native selects ──\nexport const SCOPE_KEYS=[\"section\",\"category\",\"tag\"];// The native CMS filter writes these URL params (measured 2026-10-10 with headless Chromium on\n// www.jewishworldnews.org/browse: each select change rewrites ?section=, ?category=, ?tag=).\nexport const URL_PARAM={section:\"section\",category:\"category\",tag:\"tag\"};// The native selects are found by the END of their `name`. Framer names a form field\n// <breakpoint node id><field id>, and each breakpoint renders its own copy of the form, so the\n// prefix changes with the viewport while the 9-character field id does not. Measured 2026-10-10:\n// V33CBqTm6k6QUhxlMB at 1280, n9BDIbHgXk6QUhxlMB at 375, AYr_Kdhoek6QUhxlMB at 600 and 810,\n// oYhgqz3P1k6QUhxlMB at 1000 and 1199, bare k6QUhxlMB at 1440.\nexport const SELECT_FIELD={section:\"k6QUhxlMB\",category:\"fJVf59vXX\",tag:\"cwefg1qO5\"};export function scopeKeyForName(name){if(!name)return null;return SCOPE_KEYS.find(k=>name.endsWith(SELECT_FIELD[k]))||null;}// The value of the \"All\" option in every native select (measured).\nexport const ALL_VALUE=\"__all__\";// Label -> URL slug, the rule the native filter uses. Checked against all 123 measured options\n// in test/smart-search-selectmap.json: lowercase, \"&\" -> \"and\", dots and apostrophes dropped,\n// any other run of non-alphanumerics -> \"-\".\n// A label renamed while its CMS slug stayed is the one exception: the search index stores the CMS\n// slug and /editorial links carry it, so the renamed label must keep answering that slug.\n// The exception is per select: the Category select carries an option with the same words\n// (Publisher's notes, slug publishers-notes), so a rename applies only to the select it was made on,\n// and a label read with no select named takes the plain rule.\nexport const SLUG_FOR_RENAMED_LABEL={section:{\"publisher's notes\":\"editorial\"}};export function slugifyLabel(label,key){const kept=key?SLUG_FOR_RENAMED_LABEL[key]?.[String(label||\"\").trim().toLowerCase().replace(/’/g,\"'\")]:undefined;if(kept)return kept;return String(label||\"\").toLowerCase().replace(/&/g,\"and\").replace(/[.'’]/g,\"\").replace(/[^a-z0-9]+/g,\"-\").replace(/^-+|-+$/g,\"\");}// \"?section=local&tag=youth\" -> { section: \"local\", tag: \"youth\" }. One slug each; anything that\n// is not a slug is ignored, because the Worker refuses a malformed scope with a 400.\nconst SLUG=/^[a-z0-9][a-z0-9-]{0,99}$/;export function scopeFromSearch(search){const params=new URLSearchParams(search||\"\");const scope={};for(const key of SCOPE_KEYS){const v=(params.get(URL_PARAM[key])||\"\").trim().toLowerCase();if(v&&SLUG.test(v))scope[key]=v;}return scope;}export function qFromSearch(search){return(new URLSearchParams(search||\"\").get(\"q\")||\"\").trim().slice(0,200);}export function readsAll(s){return!!s&&(s.value===ALL_VALUE||s.value===\"\");}export function optionForSlug(s,slug){if(!s||!slug)return null;return s.options.find(o=>o.value!==ALL_VALUE&&o.slug===slug)||null;}export function selectedOption(s){if(!s||readsAll(s))return null;return s.options.find(o=>o.value===s.value)||null;}// THE ALL-ONLY RULE (blueprint 4c, R2). `applied` fills a select only when that select reads All.\n// A select the reader set is never changed, whatever the parser said. A slug with no matching\n// option is skipped (the select cannot show it). tags: only the first is applied.\n// Dates follow the same rule, per bound (Step 4110.parse.2): `sent` is the pill the request carried\n// in its scope, and the Worker never lets the parser override a bound the scope set, so a sent\n// bound stays and the parser fills only a bound the pill lacked.\nexport function planApplied(applied,selects,sent=null){const a=applied||{};const wanted={section:a.section,category:a.category,tag:Array.isArray(a.tags)?a.tags[0]:undefined};const fills=[];for(const key of SCOPE_KEYS){const slug=wanted[key];if(!slug)continue;const s=selects[key];if(!readsAll(s))continue;const opt=optionForSlug(s,slug);if(!opt)continue;fills.push({key,value:opt.value,label:opt.label,slug:opt.slug});}const from=sent?.from||a.date_from||undefined;const to=sent?.to||a.date_to||undefined;return{fills,dates:from||to?{from,to}:null};}export function datesAfter(action,dates){if(action===\"remove-dates\"||action===\"undo\"||action===\"search-all\")return null;return dates&&(dates.from||dates.to)?{...dates}:null;}// THE UNDO RULE (R4). Undo resets every select the parser filled AND that still holds the value\n// the parser put there. A filled select the reader has since changed by hand is the reader's now,\n// and a select the parser never filled is never touched.\nexport function planUndo(fills,selects){return fills.filter(f=>selects[f.key]?.value===f.value).map(f=>f.key);}// Which fills are still the parser's (the \"FROM YOUR WORDS\" tag and the chips follow this).\nexport function liveFills(fills,selects){return fills.filter(f=>selects[f.key]?.value===f.value);}// ── Request bodies ──\nexport const PAGE_SIZE=12;export const KEYSTROKE={parse:false,log:false};export const SETTLED={parse:true,log:true};export function queryBody(q,scope,flags,page,offset=0,dates=null){const s={...scope};if(dates?.from)s.date_from=dates.from;if(dates?.to)s.date_to=dates.to;return{q:q.trim(),collection:\"articles\",scope:s,parse:flags.parse,log:flags.log,page,limit:PAGE_SIZE,offset};}export const MIN_CHARS=2;export function searchable(q){return q.trim().length>=MIN_CHARS;}// ── The keystroke / settle scheduler (R3) ──\n//\n// Every keystroke: a keystroke request 300 ms after the last key (parse:false, log:false), and a\n// settle 800 ms after the last key (parse:true, log:true). Enter settles at once. A query settles\n// EXACTLY ONCE: Enter after the idle settle, or a second Enter, sends nothing new for the same text.\n// Under 2 trimmed characters nothing is sent and nothing is scheduled.\nexport const KEYSTROKE_MS=300;export const SETTLE_MS=800;export function createScheduler(timers,send){let kTimer=null;let sTimer=null;let settledQ=null;const clearAll=()=>{if(kTimer!==null)timers.clear(kTimer);if(sTimer!==null)timers.clear(sTimer);kTimer=sTimer=null;};const settle=q=>{clearAll();const t=q.trim();if(!searchable(t)||t===settledQ)return;settledQ=t;send(t,SETTLED);};return{input(q){clearAll();const t=q.trim();if(!searchable(t))return;if(t!==settledQ)settledQ=null;kTimer=timers.set(()=>{kTimer=null;send(t,KEYSTROKE);},KEYSTROKE_MS);sTimer=timers.set(()=>{sTimer=null;settle(t);},SETTLE_MS);},enter(q){settle(q);},cancel(){clearAll();},// Clear (button, Escape, emptied field) forgets the settled text, so typing it again settles again.\nforget(){clearAll();settledQ=null;}};}// ── Newest-answer-wins ──\nexport function createSequencer(){let n=0;return{next:()=>++n,isCurrent:id=>id===n};}// ── Reader-facing copy (design spec section 6). Curly quotes; hyphens, never en or em dashes. ──\nexport function quoted(q){return\"“\"+q+\"”\";}export function resultsHeader(total,q){return total===1?`1 article for ${quoted(q)}`:`${total} articles for ${quoted(q)}`;}// tagLabels (Step 4536.page.2, design spec section 7) adds \", tagged Holidays and Food\" before the full stop.\nexport function scopeLine(labels,tagLabels=[]){const where=labels.length?`In ${labels.join(\" \\xb7 \")}`:\"In all sections\";return`${where}${tagLabels.length?`, tagged ${joinAnd(tagLabels)}`:\"\"}. Best match first.`;}// \"A\", \"A and B\", \"A, B and C\".\nexport function joinAnd(items){if(items.length<2)return items.join(\"\");return`${items.slice(0,-1).join(\", \")} and ${items[items.length-1]}`;}const COUNT_WORDS=[\"\",\"it\",\"both\",\"all three\",\"all four\",\"all five\"];export function undoLabel(n){if(n<1)return\"\";return\"Undo \"+(COUNT_WORDS[n]||`all ${n}`);}const MONTHS_SHORT=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function ymd(iso){const m=/^(\\d{4})-(\\d{2})-(\\d{2})/.exec(iso||\"\");return m?[Number(m[1]),Number(m[2]),Number(m[3])]:null;}// \"Sep 1-30, 2026\", \"Sep 28 - Oct 3, 2026\", \"Dec 28, 2026 - Jan 3, 2027\", \"From Sep 1, 2026\", \"Until Sep 30, 2026\".\n// The design spec draws an en dash; JW's copy rule allows hyphens only, so a hyphen it is.\nexport function datePill(from,to){const f=from?ymd(from):null;const t=to?ymd(to):null;const day=d=>`${MONTHS_SHORT[d[1]-1]} ${d[2]}`;if(f&&t){if(f[0]===t[0]&&f[1]===t[1]){if(f[2]===t[2])return`${day(f)}, ${f[0]}`;return`${MONTHS_SHORT[f[1]-1]} ${f[2]}-${t[2]}, ${f[0]}`;}if(f[0]===t[0])return`${day(f)} - ${day(t)}, ${f[0]}`;return`${day(f)}, ${f[0]} - ${day(t)}, ${t[0]}`;}if(f)return`From ${day(f)}, ${f[0]}`;if(t)return`Until ${day(t)}, ${t[0]}`;return\"\";}// \"September 14, 2026\" in America/New_York. A bare YYYY-MM-DD is a calendar date, not an instant,\n// so it is printed as written rather than shifted a day by a timezone.\nconst MONTHS_LONG=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];export function longDate(iso){if(!iso)return\"\";if(/^\\d{4}-\\d{2}-\\d{2}$/.test(iso)){const d=ymd(iso);return`${MONTHS_LONG[d[1]-1]} ${d[2]}, ${d[0]}`;}const t=new Date(iso);if(isNaN(t.getTime()))return\"\";return new Intl.DateTimeFormat(\"en-US\",{timeZone:\"America/New_York\",month:\"long\",day:\"numeric\",year:\"numeric\"}).format(t);}// The zero-result \"Search “word”\" button: the longest word of 4+ letters that is not a stop word.\n// Hidden (null) for a one-word query.\nconst STOP=new Set([\"about\",\"after\",\"also\",\"been\",\"before\",\"from\",\"have\",\"into\",\"just\",\"more\",\"most\",\"over\",\"some\",\"than\",\"that\",\"their\",\"them\",\"then\",\"there\",\"these\",\"they\",\"this\",\"what\",\"when\",\"where\",\"which\",\"while\",\"with\",\"would\",\"your\"]);export function broaderWord(q){const words=q.trim().split(/\\s+/).filter(Boolean);if(words.length<2)return null;let best=null;for(const raw of words){const w=raw.replace(RegExp(\"^[^\\\\p{L}\\\\p{N}]+|[^\\\\p{L}\\\\p{N}]+$\",\"gu\"),\"\");if(w.length<4||STOP.has(w.toLowerCase()))continue;if(!best||w.length>best.length)best=w;}return best;}export function zeroTitle(q,labels){return`No articles match ${quoted(q)}`+(labels.length?` in ${labels.join(\" \\xb7 \")}`:\"\");}export function liveText(kind,q,total=0){if(kind===\"error\")return\"Search is not responding\";if(kind===\"none\")return`No results for ${q}`;return`${total} results for ${q}`;}export function mobileFiltersLabel(parserSet,readerSet){if(parserSet>0)return`Filters \\xb7 ${parserSet} set from your words ▾`;if(readerSet>0)return`Filters \\xb7 ${readerSet} set ▾`;return\"Filters ▾\";}export const COPY={label:\"Search articles\",placeholder:\"Try “Hanukkah events”\",help:\"Searches inside the Section, Category and Tag you choose below.\",examples:[\"Hanukkah events\",\"Albany community news\",\"Israel hostage families\"],clearAria:\"Clear search\",clear:\"Clear\",more:\"Show more results\",appliedTitle:\"Set from your words\",residual:r=>`Still searching the words: ${r}`,selectTag:\"FROM YOUR WORDS\",chipAria:label=>`Remove ${label}`,zeroHint:\"Try fewer filters or a broader word.\",searchAll:\"Search all sections\",searchWord:w=>`Search ${quoted(w)}`,slow:q=>`Still searching for ${quoted(q)}…`,error:\"Search is not responding right now. Your filters still work, so the article list is back below.\",retry:\"Try again\"};export function isGoodResponse(r){return!!r&&r.ok===true&&Array.isArray(r.results)&&typeof r.total===\"number\";}export const SLOW_MS=1500;export const TIMEOUT_MS=8e3;// ── Section label colour in a result row (design spec section 2) ──\n// Live values measured on /browse cards 2026-10-10, except: World and Culture use the spec's picked\n// text colours (#3d5a9e, #8a44a8), and Opinions (live #c8733a, 3.1:1 on the card) and Featured (navbar\n// gold #c8a820, 2.0:1) fall under 4.5:1, so they take the existing navy token rather than a new colour.\nexport const SECTION_TEXT={local:\"#2d6a4f\",world:\"#3d5a9e\",culture:\"#8a44a8\",opinions:\"#1a2744\",featured:\"#1a2744\",editorial:\"#c0392b\"};export function sectionColor(slug){return slug&&SECTION_TEXT[slug]||\"#1a2744\";}// A result carries slugs; the row shows the select's own label when the page has it.\nexport function labelForSlug(s,slug){if(!slug)return\"\";const opt=optionForSlug(s,slug);if(opt)return opt.label;return slug.split(\"-\").map(w=>w===\"and\"?\"&\":w.charAt(0).toUpperCase()+w.slice(1)).join(\" \");}// Labels of the selects currently set (scope line, zero-result title), in Section, Category, Tag order.\nexport function setLabels(selects){return SCOPE_KEYS.map(k=>selectedOption(selects[k])?.label).filter(x=>!!x);}// The scope a request carries. The URL params are the source (the native filter writes them, and a\n// shared /browse?category=... link sets the selects from them). A select the page has decides its own\n// key, because a change event fires before the native filter has rewritten the URL; a select the page\n// lacks falls back to the URL (fail soft).\nexport function currentScope(search,selects){const fromUrl=scopeFromSearch(search);const scope={};for(const key of SCOPE_KEYS){const s=selects[key];if(!s){if(fromUrl[key])scope[key]=fromUrl[key];continue;}const opt=selectedOption(s);if(opt&&opt.slug)scope[key]=opt.slug;}return scope;}// ── #search focus (Task 4513) ──\n// /browse#search puts the cursor in the field. The FramerAuth SDK hides the body\n// (visibility: hidden) while it checks access, and a hidden input drops focus(), so one call at\n// mount loses that race (measured 2026-10-19: 8 of 10 direct loads). The component asks this on\n// every try, from the hash trigger until it is done, and stops at the first \"stop\".\nexport const FOCUS_HASH=\"#search\";export const FOCUS_WAIT_MS=1e4// the bound: past it, no more tries\n;export const FOCUS_POLL_MS=250// the fallback poll beside the body MutationObserver\n;export function hashFocusStep(s){if(s.hash!==FOCUS_HASH)return\"stop\";if(!s.idle)return\"stop\"// never steal focus from where the reader put it\n;if(s.elapsedMs>=FOCUS_WAIT_MS)return\"stop\";return s.visible?\"focus\":\"wait\";}// ── Off /browse: a section or category page (Step 4536.page.2) ──\n// Design spec TPR-10490 (direction B, \"Drop-down over the page\") with the architect's cut TPR-10495:\n// the instance has no named Section holding the article list, so results open over the page (desktop)\n// or under the field (phone) and never touch the page's own grid. Every string and number it shows is\n// decided here.\n// The panel's Tags chips write ?tags=<slug>, once per chip (measured on /local/events 2026-10-20).\n// Read all of them: lowercased, each a slug the Worker accepts, no repeats, at most 5, in URL order.\nexport const MAX_PAGE_TAGS=5;export function tagsFromSearch(search){const out=[];for(const raw of new URLSearchParams(search||\"\").getAll(\"tags\")){const v=raw.trim().toLowerCase();if(v&&SLUG.test(v)&&!out.includes(v))out.push(v);}return out.slice(0,MAX_PAGE_TAGS);}// The chips narrow whatever scope the lock and the selects decided; they never widen it. With no tag in\n// the scope, one chip goes out as scope.tag and two or more as scope.tags. A tag the scope already holds\n// stays scope.tag, and the chips beside it go out as scope.tags (the Worker ANDs tag with tags).\nexport function withPageTags(scope,tags){const out={...scope};const extra=tags.filter(t=>t!==scope.tag);if(!extra.length)return out;if(!out.tag&&extra.length===1)out.tag=extra[0];else out.tags=extra.slice(0,MAX_PAGE_TAGS);return out;}// Every tag the request carries, scope.tag first: the scope line names them all.\nexport function scopeTags(scope){return[...scope.tag?[scope.tag]:[],...scope.tags||[]];}// A tag shows as its chip's own visible text when a chip on the page slugifies to it; otherwise as the\n// slug with hyphens turned to spaces and the first letter capitalised (\"capital-district\" -> \"Capital district\").\nexport function tagLabel(slug,chipTexts=[]){const chip=chipTexts.find(t=>slugifyLabel(t)===slug);if(chip)return chip.trim();const words=slug.replace(/-/g,\" \");return words.charAt(0).toUpperCase()+words.slice(1);}// The labels the copy names (blueprint Part D): for each key, the lock's label when the lock sets it,\n// else the label of the select the page has for it. With nothing locked this is setLabels(selects).\nexport function placeLabels(locked,selects,keys=SCOPE_KEYS){return keys.map(k=>locked[k]||selectedOption(selects[k])?.label).filter(x=>!!x);}export function scopedPlaceholder(labels){return labels.length?`Search ${labels[labels.length-1]}`:COPY.placeholder;}export function scopedAria(labels){return labels.length?`Search articles in ${labels.join(\" \\xb7 \")}`:COPY.label;}// \"Searches Local · Events only.\" Empty on a page that locks nothing (the line has nothing true to say).\nexport function scopedHelp(labels){return labels.length?`Searches ${labels.join(\" \\xb7 \")} only.`:\"\";}export function scopedZeroHint(hasTags){return hasTags?\"Try a broader word, fewer tags, or search every section.\":\"Try a broader word, or search every section.\";}export const SCOPED_COPY={close:\"Close\",// COPY.error says the article list is back below, which is false where the list was never hidden.\nerror:\"Search is not responding right now. The articles on this page are not affected.\"};// \"See all 13 in Local · Events\" -> /browse with the same section, category and first tag, and the words.\nexport function seeAllLabel(total,labels){return`See all ${total}`+(labels.length?` in ${labels.join(\" \\xb7 \")}`:\"\");}export function seeAllHref(scope,q){const parts=[];if(scope.section)parts.push(\"section=\"+encodeURIComponent(scope.section));if(scope.category)parts.push(\"category=\"+encodeURIComponent(scope.category));const tag=scopeTags(scope)[0];if(tag)parts.push(\"tag=\"+encodeURIComponent(tag));parts.push(\"q=\"+encodeURIComponent(q));return`/browse?${parts.join(\"&\")}#search`;}// Phone below 810 px of viewport, desktop from 810 (the design's two layouts, D9).\nexport const PHONE_BELOW=810;export function isPhone(viewportWidth){return viewportWidth<PHONE_BELOW;}export function rowCap(phone){return phone?3:5;}export const DROP_WIDTH=680;export function dropdownBox(field,viewportWidth,viewportHeight){const top=field.bottom+8;return{left:field.left,top,width:Math.max(0,Math.min(DROP_WIDTH,viewportWidth-field.left-24)),maxHeight:Math.max(0,viewportHeight-top-24)};}\nexport const __FramerMetadata__ = {\"exports\":{\"FieldBox\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createSequencer\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"resultsHeader\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"readsAll\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"mobileFiltersLabel\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SelectOption\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"qFromSearch\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"undoLabel\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"scopedZeroHint\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FocusState\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Applied\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hashFocusStep\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"currentScope\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"placeLabels\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"COPY\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"rowCap\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"scopeLine\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Dates\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"URL_PARAM\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Flags\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"broaderWord\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SLUG_FOR_RENAMED_LABEL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SELECT_FIELD\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"seeAllLabel\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Timers\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"selectedOption\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Fill\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SETTLE_MS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"longDate\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"setLabels\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"joinAnd\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FOCUS_POLL_MS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"scopeTags\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PAGE_SIZE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SCOPED_COPY\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Scheduler\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SelectState\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Result\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"slugifyLabel\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"sectionColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ScopeKey\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MIN_CHARS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isGoodResponse\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"liveFills\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"zeroTitle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SETTLED\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isPhone\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FOCUS_HASH\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MAX_PAGE_TAGS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPageTags\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"KEYSTROKE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"queryBody\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createScheduler\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FocusStep\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"planApplied\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"tagLabel\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"planUndo\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"seeAllHref\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"dropdownBox\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QueryBody\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"optionForSlug\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"scopeFromSearch\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RerunAction\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TIMEOUT_MS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"scopedAria\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SECTION_TEXT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ALL_VALUE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FillPlan\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"datesAfter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"KEYSTROKE_MS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QueryResponse\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FOCUS_WAIT_MS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"scopeKeyForName\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SelectStates\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"quoted\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PHONE_BELOW\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QueryScope\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"scopedHelp\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DROP_WIDTH\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"scopedPlaceholder\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"tagsFromSearch\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"searchable\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SLOW_MS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"liveText\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DropBox\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Scope\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SCOPE_KEYS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"labelForSlug\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"datePill\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SmartSearchLogic.map","// JWN_SmartSearch_Scope.ts - the per-page scope rule for JWN_SmartSearch (Framer code file, no React, no DOM)\n//\n// Created: 2026-10-20 00:20 EDT | Author: Claude (Builder, Step 4536.scope.1, task recRsnw88VmSsKNpj) |\n//   the taxonomy, the page-path lock, the property-control resolve and the lock-over-scope rule.\n// Lands in Framer through `Website/Framer Components/framer-sync` as the code file SmartSearchScope.tsx.\n// That Framer file does not exist yet, so the manifest lists this path under `pending` until a person\n// creates it and its id is measured (framer-sync/README.md, \"A file with no Framer code file yet\").\n//\n// One instance of JWN_SmartSearch can sit on any page. On /local/events it searches Local > Events\n// only, on /local all of Local, on /browse everything. The LOCK is what fixes that: the instance's\n// property controls, else the page path, set section and category, and the lock beats the native\n// selects and the URL params. Step 4536.page.2 wires this into the component, Step 4536.scope.2\n// into the navbar. Tests: test/smart-search-scope.assert.mjs (node --experimental-strip-types).\n//\n// Specs: blueprint TPR-10341 (Task 4536, Decision reckR67Mhx91LeMNp) and the Step's own R1-R6.\n// This module imports nothing: the Logic module's slugifyLabel is checked against these labels by\n// the test, not called at runtime.\nconst LOCK_KEYS=[\"section\",\"category\",\"tag\"];export const TAXONOMY=[{slug:\"local\",label:\"Local\",categories:[{slug:\"community-news\",label:\"Community News\"},{slug:\"events\",label:\"Events\"}]},{slug:\"world\",label:\"World\",categories:[{slug:\"us-national\",label:\"U.S. / National\"},{slug:\"israel-and-middle-east\",label:\"Israel & Middle East\"},{slug:\"global\",label:\"Global\"}]},{slug:\"culture\",label:\"Culture\",categories:[{slug:\"arts-and-entertainment\",label:\"Arts & Entertainment\"},{slug:\"food-and-travel\",label:\"Food & Travel\"},{slug:\"health-science-and-tech\",label:\"Health Science & Tech\"}]},{slug:\"opinions\",label:\"Opinions\",categories:[{slug:\"columns\",label:\"Columns\"},{slug:\"personal-stories\",label:\"Personal Stories\"},{slug:\"religion-and-philosophy\",label:\"Religion & Philosophy\"},{slug:\"letters-and-forum\",label:\"Letters & Forum\"}]},{slug:\"featured\",label:\"Featured\",categories:[]},{slug:\"editorial\",label:\"Publisher's notes\",categories:[{slug:\"publishers-notes\",label:\"Publisher’s notes\"}]}];export function findSection(slug){return TAXONOMY.find(s=>s.slug===slug)||null;}// The section a category belongs to, or null for a slug the taxonomy does not hold.\nexport function sectionOfCategory(slug){return TAXONOMY.find(s=>s.categories.some(c=>c.slug===slug))?.slug||null;}function inSection(section,category){return!!findSection(section)?.categories.some(c=>c.slug===category);}// ── The page path lock ──\n// \"/local/events\" -> { section: \"local\", category: \"events\" }. The first segment must be a section,\n// the second a category of THAT section; any other segment adds nothing, and a page that is not a\n// section page (\"/browse\", \"/about\", \"/\") locks nothing. Case and trailing slashes are normalised.\nexport function pageLock(pathname){const parts=String(pathname||\"\").toLowerCase().split(\"/\").filter(Boolean);const section=findSection(parts[0]);if(!section)return{};const lock={section:section.slug};if(inSection(section.slug,parts[1]))lock.category=parts[1];return lock;}export const PAGE=\"page\";export const ALL=\"all\";export const ANY=\"any\";const SLUG=/^[a-z0-9][a-z0-9-]{0,99}$/;export function resolveLock(props,pathname,warn=m=>console.warn(m)){const p=props||{};const section=String(p.section||PAGE).trim().toLowerCase();const category=String(p.category||ANY).trim().toLowerCase();let lock;if(section===PAGE)lock=pageLock(pathname);else if(section===ALL)lock={};else if(findSection(section)){lock={section};if(category!==ANY){if(inSection(section,category))lock.category=category;else warn(`JWN_SmartSearch: category \"${category}\" is not in section \"${section}\"; searching all of ${section}`);}}else{warn(`JWN_SmartSearch: section \"${section}\" is not a section; using the page path`);lock=pageLock(pathname);}const tag=String(p.tag||\"\").trim().toLowerCase();if(tag){if(SLUG.test(tag))lock.tag=tag;else warn(`JWN_SmartSearch: tag \"${p.tag}\" is not a tag slug; ignored`);}return lock;}// ── The lock over the request scope ──\n// scope is what currentScope() in JWN_SmartSearch_Logic.ts computed from the selects and the URL.\n// A key the lock sets replaces the scope's; an unlocked key keeps its value. Under a section lock a\n// scope category from ANOTHER section is dropped, because it would empty the page (a shared\n// ?category=global link opened on /local). Keys come back in section, category, tag order.\nexport function applyLock(lock,scope){const l=lock||{};const out={};for(const key of LOCK_KEYS){const v=l[key]??scope?.[key];if(v)out[key]=v;}if(l.section&&!l.category&&out.category){const owner=sectionOfCategory(out.category);if(owner&&owner!==l.section)delete out.category;}// Any key that is not a scope key (none today) passes through untouched, after the three.\nfor(const key of Object.keys(scope||{})){if(!LOCK_KEYS.includes(key))out[key]=scope[key];}return out;}// ── Display ──\n// Labels for scopeLine() in JWN_SmartSearch_Logic.ts, in section, category, tag order (tag as its slug).\nexport function lockLabels(lock){const l=lock||{};const out=[];const section=findSection(l.section);if(section)out.push(section.label);if(l.category){const cat=TAXONOMY.flatMap(s=>s.categories).find(c=>c.slug===l.category);if(cat)out.push(cat.label);}if(l.tag)out.push(l.tag);return out;}// The \"Search all sections\" way out of a locked instance: the same words on /browse.\nexport function escapeHref(q){return`/browse?q=${encodeURIComponent(String(q??\"\"))}#search`;}\nexport const __FramerMetadata__ = {\"exports\":{\"escapeHref\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TAXONOMY\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TaxSection\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Lock\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LockProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PAGE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"pageLock\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TaxCategory\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"resolveLock\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"findSection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ALL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ANY\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LockKey\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"sectionOfCategory\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"lockLabels\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"applyLock\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SmartSearchScope.map","// JWN_SmartSearch_Scoped.tsx - JWN_SmartSearch's results off /browse, its request scope and its scope controls\n//\n// Created: 2026-10-26 01:45 EDT | Author: Claude (Builder, Step 4536.page.2, task recRF6xYprk2IPSHy) |\n//   the drop-down (desktop) and inline (phone) results of design spec TPR-10490 direction B, with the\n//   architect's cut TPR-10495; moved out of JWN_SmartSearch.tsx so that file stays under 800 lines.\n// Lands in Framer through `Website/Framer Components/framer-sync` as the code file SmartSearchScoped.tsx.\n// That Framer file does not exist yet, so the manifest lists this path under `pending` until a person\n// creates it and its id is measured (framer-sync/README.md, \"A file with no Framer code file yet\").\n//\n// What lives here, exported so the navbar search sheet (Stage 4536.2, blueprint TPR-10494) can reuse it:\n//   T (the tokens), requestScope (lock over the selects and the URL, then the Tags chips),\n//   scopeControls / lockProps (the instance's Section, Category and Tag controls), pageChipTexts,\n//   ScopedResults and ScopedRow, useScopedBox. Every decision is in JWN_SmartSearch_Logic.ts and _Scope.ts.\n//   BROWSE_CSS is the /browse view's CSS, kept beside T so JWN_SmartSearch.tsx stays under 800 lines.\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{createPortal}from\"react-dom\";import*as L from\"https://framerusercontent.com/modules/ppnMKQOvaY4G9mx10lDQ/x4AmEyxOegyaXwqR0Rwn/SmartSearchLogic.js\";import*as S from\"https://framerusercontent.com/modules/JNvUAyyiIoj64bTkbWVw/y0qmAaFJzISMTmdwPhRp/SmartSearchScope.js\";// ── Tokens (design spec section 9; the /browse spec's own T object) ──\nexport const T={head:\"Volkhov, serif\",ui:\"Satoshi, system-ui, sans-serif\",navy:\"#1a2744\",body:\"#4a4a4a\",muted:\"#6b6b6b\",card:\"#f5f0e5\",fill:\"#e8e2d4\",border:\"#c9c0ab\",blue:\"#3d5a9e\",tint:\"#e9eef8\",err:\"#a33a2c\",errBg:\"#fbecea\",ring:\"0 0 0 3px rgba(61,90,158,.35)\",shadow:\"0 12px 32px rgba(26,39,68,.18)\",foot:\"#faf7f0\",rule:\"#eee6d6\"};// Under the site navbar (a sticky z-index 10, measured on /local/events 2026-10-26) and over the page\n// container (z-index 0) the article grid sits in.\nconst BOX_Z=9;// ── The request scope (blueprint Part B) ──\n// The lock beats the selects and the URL; the page's Tags chips then narrow what is left.\nexport function requestScope(lock,search,selects){return L.withPageTags(S.applyLock(lock,L.currentScope(search,selects)),L.tagsFromSearch(search));}// ── The instance's scope controls (blueprint Part A) ──\n// One Section enum, one Category enum per section that has categories, shown only beside its section,\n// and a Tag string. Titles are part of Framer's stored key: never rename one once instances exist. Options come from S.TAXONOMY. Framer stores only non-default values, so an instance\n// placed before these controls existed reads the defaults: the page path decides.\nexport function categoryProp(section){const s=S.findSection(section);return s?\"category\"+s.label.replace(/[^A-Za-z0-9]/g,\"\"):\"\";}export function lockProps(p){const section=p.section||S.PAGE;return{section,category:p[categoryProp(section)]||S.ANY,tag:p.tag||\"\"};}export function scopeControls(ControlType){const out={section:{type:ControlType.Enum,title:\"Section\",defaultValue:S.PAGE,options:[S.PAGE,S.ALL,...S.TAXONOMY.map(s=>s.slug)],optionTitles:[\"From the page\",\"All sections\",...S.TAXONOMY.map(s=>s.label)]}};for(const s of S.TAXONOMY){if(!s.categories.length)continue;out[categoryProp(s.slug)]={type:ControlType.Enum,// Framer keys a placed instance's stored value on the control TITLE (criterion reckV8WtMxthH2L9V),\n// so each section's control needs its own title: four \"Category\" titles would share one value.\ntitle:`${s.label} Category`,defaultValue:S.ANY,options:[S.ANY,...s.categories.map(c=>c.slug)],optionTitles:[`All of ${s.label}`,...s.categories.map(c=>c.label)],hidden:props=>props.section!==s.slug};}out.tag={type:ControlType.String,title:\"Tag\",defaultValue:\"\",placeholder:\"a tag slug, e.g. holidays\"};return out;}// The lock's own label for each key it sets, for L.placeLabels.\nexport function lockedLabels(lock,chipTexts=[]){const l=lock||{};const out={};if(l.section)out.section=S.lockLabels({section:l.section})[0];if(l.category)out.category=S.lockLabels({category:l.category})[0];if(l.tag)out.tag=L.tagLabel(l.tag,chipTexts);return out;}// The visible text of each chip in the filter panel the field sits in: the leaf elements' text.\nexport function pageChipTexts(root){const panel=root?.closest('[data-framer-name=\"Filters\"]')||root?.closest('[data-framer-name*=\"Filter\"]');if(!panel)return[];const out=[];for(const el of Array.from(panel.querySelectorAll(\"*\"))){if(el.children.length||root?.contains(el))continue;const t=(el.textContent||\"\").trim();if(t&&t.length<=40)out.push(t);}return out;}export function useScopedBox(a){const quiet=useRef(false);const closeRef=useRef(a.close);closeRef.current=a.close;useEffect(()=>{if(!a.scoped)return;const onDown=e=>{const t=e.target;if(a.rootRef.current?.contains(t)||a.boxRef.current?.contains(t))return;closeRef.current();};document.addEventListener(\"pointerdown\",onDown,true);return()=>document.removeEventListener(\"pointerdown\",onDown,true);},[a.scoped]);useEffect(()=>{if(!a.showBox||a.phone)return;let raf=0;const measure=()=>{const r=a.fieldRef.current?.getBoundingClientRect();if(r)a.setBox(L.dropdownBox({left:r.left,bottom:r.bottom},window.innerWidth,window.innerHeight));};const place=()=>{cancelAnimationFrame(raf);raf=requestAnimationFrame(measure);};measure();window.addEventListener(\"scroll\",place,true);window.addEventListener(\"resize\",place);return()=>{cancelAnimationFrame(raf);window.removeEventListener(\"scroll\",place,true);window.removeEventListener(\"resize\",place);};},[a.showBox,a.phone]);const onRootKey=e=>{if(e.key!==\"Escape\"||!a.scoped)return;e.preventDefault();closeRef.current();quiet.current=true;a.inputRef.current?.focus();quiet.current=false;};return{quiet,onRootKey};}export function ScopedResults(p){if(p.phone){if(p.emptyHelp)return /*#__PURE__*/_jsx(\"p\",{className:\"jwn-sd-help\",style:{margin:\"8px 0 0\",font:`13px/1.45 ${T.ui}`,color:T.muted},children:p.emptyHelp});return /*#__PURE__*/_jsxs(\"div\",{className:\"jwn-sd jwn-sd-inline\",style:{marginTop:12},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:SCOPED_CSS}}),/*#__PURE__*/_jsx(Body,{...p})]});}if(!p.box||typeof document===\"undefined\")return null;const b=p.box;return /*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(\"div\",{ref:p.boxRef,className:\"jwn-sd jwn-sd-box\",style:{position:\"fixed\",left:b.left,top:b.top,width:b.width,maxHeight:b.maxHeight,zIndex:BOX_Z,display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",background:\"#fff\",border:`1px solid ${T.border}`,borderRadius:10,boxShadow:T.shadow,fontFamily:T.ui,color:T.navy},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:SCOPED_CSS}}),p.emptyHelp?/*#__PURE__*/_jsx(\"p\",{className:\"jwn-sd-help\",style:{margin:0,padding:\"16px 20px\"},children:p.emptyHelp}):/*#__PURE__*/_jsx(Body,{...p})]}),document.body);}function WayOut(p){const cls=p.primary?\"jwn-sd-primary\":\"jwn-sd-link\";return p.wayOut?/*#__PURE__*/_jsx(\"a\",{className:cls,href:p.wayOut,children:L.COPY.searchAll}):/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:cls,onClick:p.onSearchAll,children:L.COPY.searchAll});}function Body(p){const pad=p.phone?\"0\":\"20px\";if(p.phase===\"error\"){return /*#__PURE__*/_jsxs(\"div\",{className:\"jwn-sd-error\",style:{background:T.errBg,borderLeft:`4px solid ${T.err}`,padding:\"16px 20px\"},children:[/*#__PURE__*/_jsx(\"p\",{style:{margin:\"0 0 12px\",font:`15px/1.5 ${T.ui}`,color:T.err},children:L.SCOPED_COPY.error}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"jwn-sd-btn\",style:{color:T.err,borderColor:T.err},onClick:p.onRetry,children:L.COPY.retry})]});}if(p.phase===\"zero\"){const word=L.broaderWord(p.q);return /*#__PURE__*/_jsxs(\"div\",{style:{padding:pad},children:[/*#__PURE__*/_jsx(\"p\",{style:{margin:\"0 0 8px\",font:`19px/1.3 ${T.head}`,color:T.navy},children:L.zeroTitle(p.q,p.labels)}),/*#__PURE__*/_jsx(\"p\",{style:{margin:\"0 0 16px\",font:`15px/1.5 ${T.ui}`,color:T.body},children:L.scopedZeroHint(p.tagLabels.length>0)}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",gap:8},children:[/*#__PURE__*/_jsx(WayOut,{...p,primary:true}),word?/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"jwn-sd-btn\",onClick:()=>p.onSearchWord(word),children:L.COPY.searchWord(word)}):null]})]});}const cap=L.rowCap(p.phone);const shown=p.rows.slice(0,cap);const skeleton=p.slow&&(p.phase===\"loading\"||!shown.length);const more=!skeleton&&p.total>shown.length;const seeAll=more?/*#__PURE__*/_jsx(\"a\",{className:p.phone?\"jwn-sd-seeall\":\"jwn-sd-link\",href:L.seeAllHref(p.scope,p.q),children:L.seeAllLabel(p.total,p.labels)}):null;return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"flex-start\",justifyContent:\"space-between\",gap:12,padding:p.phone?\"0 0 12px\":\"20px 20px 16px\",borderBottom:p.phone?\"none\":`1px solid ${T.border}`,flex:\"none\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{minWidth:0},children:[/*#__PURE__*/_jsx(\"p\",{style:{margin:0,font:`23px/1.25 ${T.head}`,color:T.navy},children:skeleton?L.COPY.slow(p.q):L.resultsHeader(p.total,p.q)}),/*#__PURE__*/_jsx(\"p\",{style:{margin:\"4px 0 0\",font:`13px/1.45 ${T.ui}`,color:T.muted},children:L.scopeLine(p.labels,p.tagLabels)})]}),p.phone?/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"jwn-sd-btn\",onClick:p.onClear,children:L.COPY.clear}):/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"jwn-sd-btn\",onClick:p.onClose,children:L.SCOPED_COPY.close})]}),/*#__PURE__*/_jsx(\"ol\",{id:p.listId,style:{listStyle:\"none\",margin:0,padding:0,overflowY:p.phone?\"visible\":\"auto\",flex:\"1 1 auto\",minHeight:0,display:\"flex\",flexDirection:\"column\",gap:p.phone?8:0,opacity:p.fading?.55:1},children:skeleton?[0,1,2].slice(0,p.phone?2:3).map(i=>/*#__PURE__*/_jsx(\"li\",{children:/*#__PURE__*/_jsx(Skel,{phone:p.phone})},i)):shown.map(r=>/*#__PURE__*/_jsx(\"li\",{children:/*#__PURE__*/_jsx(ScopedRow,{r:r,phone:p.phone,onClick:()=>p.onRowClick(r)})},r.rank+\":\"+r.slug))}),p.phone?/*#__PURE__*/_jsxs(\"div\",{children:[seeAll?/*#__PURE__*/_jsx(\"div\",{style:{marginTop:12},children:seeAll}):null,/*#__PURE__*/_jsx(\"div\",{style:{marginTop:12},children:/*#__PURE__*/_jsx(WayOut,{...p})})]}):/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",gap:12,padding:\"12px 20px\",borderTop:`1px solid ${T.border}`,background:T.foot,flex:\"none\"},children:[/*#__PURE__*/_jsx(\"span\",{children:seeAll}),/*#__PURE__*/_jsx(WayOut,{...p})]})]});}// The /browse ResultRow anatomy at the drop-down's sizes (desktop) or as a white card (phone).\nexport function ScopedRow(p){const{r,phone}=p;const w=phone?72:120;const h=phone?72:68;const section=r.section?S.lockLabels({section:r.section})[0]||L.labelForSlug(undefined,r.section):\"\";const category=r.category?S.lockLabels({category:r.category})[0]||L.labelForSlug(undefined,r.category):\"\";return /*#__PURE__*/_jsxs(\"a\",{href:r.url,className:phone?\"jwn-sd-card\":\"jwn-sd-row\",onClick:p.onClick,children:[r.image?/*#__PURE__*/_jsx(\"img\",{src:r.image,alt:\"\",loading:\"lazy\",width:w,height:h,style:{width:w,height:h,flex:\"none\",borderRadius:4,objectFit:\"cover\"}}):/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{width:w,height:h,flex:\"none\",borderRadius:4,background:T.fill,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",font:`19px/1 ${T.head}`,color:T.muted},children:\"JW\"}),/*#__PURE__*/_jsxs(\"div\",{style:{minWidth:0,flex:1},children:[section||category?/*#__PURE__*/_jsxs(\"div\",{style:{font:`700 11px/1.4 ${T.ui}`,textTransform:\"uppercase\",letterSpacing:\".06em\",marginBottom:4},children:[section?/*#__PURE__*/_jsx(\"span\",{style:{color:L.sectionColor(r.section)},children:section}):null,section&&category?/*#__PURE__*/_jsx(\"span\",{style:{color:T.muted},children:\" \\xb7 \"}):null,category?/*#__PURE__*/_jsx(\"span\",{style:{color:T.muted},children:category}):null]}):null,/*#__PURE__*/_jsx(\"span\",{className:\"jwn-sd-title\",style:{font:`${phone?17:19}px/1.25 ${T.head}`,color:T.navy,WebkitLineClamp:phone?3:2},children:r.title}),!phone&&r.summary?/*#__PURE__*/_jsx(\"span\",{className:\"jwn-sd-summary\",style:{font:`15px/1.5 ${T.ui}`,color:T.body},children:r.summary}):null,r.date?/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\",marginTop:4,font:`italic 13px/1.4 ${T.ui}`,color:T.muted},children:L.longDate(r.date)}):null]})]});}function Skel(p){const w=p.phone?72:120;const h=p.phone?72:68;return /*#__PURE__*/_jsxs(\"div\",{\"aria-hidden\":\"true\",className:p.phone?\"jwn-sd-card\":\"jwn-sd-row\",children:[/*#__PURE__*/_jsx(\"div\",{style:{width:w,height:h,flex:\"none\",borderRadius:4,background:T.fill}}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,minWidth:0},children:[/*#__PURE__*/_jsx(\"div\",{style:{height:11,width:\"30%\",background:T.fill,borderRadius:4,marginBottom:8}}),/*#__PURE__*/_jsx(\"div\",{style:{height:19,width:\"85%\",background:T.fill,borderRadius:4}})]})]});}const SCOPED_CSS=`\n.jwn-sd, .jwn-sd * { box-sizing: border-box; }\n.jwn-sd-help { font: 13px/1.45 ${T.ui}; color: ${T.muted}; }\n.jwn-sd button { cursor: pointer; font-family: ${T.ui}; }\n.jwn-sd-row { display: flex; gap: 16px; align-items: flex-start; padding: 12px 20px; border-bottom: 1px solid ${T.rule}; text-decoration: none; min-width: 0; background: #fff; }\n.jwn-sd-row:hover { background: ${T.card}; }\n.jwn-sd-card { display: flex; gap: 12px; align-items: flex-start; padding: 12px; background: #fff; border-radius: 8px; text-decoration: none; min-width: 0; }\n.jwn-sd-title { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }\n.jwn-sd-row:hover .jwn-sd-title, .jwn-sd-card:hover .jwn-sd-title { text-decoration: underline; }\n.jwn-sd-summary { display: block; margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n.jwn-sd-btn { min-height: 44px; padding: 0 16px; background: #fff; border: 1px solid ${T.border}; border-radius: 6px; font-size: 15px; color: ${T.navy}; flex: none; }\n.jwn-sd-primary { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; background: ${T.navy}; color: #fff; border: 0; border-radius: 4px; font: 700 15px/1.2 ${T.ui}; text-decoration: none; }\n.jwn-sd-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0; border: 0; background: transparent; font: 15px/1.3 ${T.ui}; color: ${T.blue}; text-decoration: underline; }\n.jwn-sd-seeall { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 44px; border: 1px solid ${T.border}; border-radius: 4px; background: ${T.card}; font: 15px/1.3 ${T.ui}; color: ${T.navy}; text-decoration: none; }\n.jwn-sd a:focus-visible, .jwn-sd button:focus-visible { outline: 2px solid ${T.blue}; outline-offset: 0; box-shadow: ${T.ring}; }\n.jwn-sd-inline ol { gap: 8px; }\n`;// JWN_SmartSearch.tsx's own CSS on /browse, kept beside T so that file stays under 800 lines.\nexport const BROWSE_CSS=`\n.jwn-ss, .jwn-ss * { box-sizing: border-box; }\n.jwn-ss-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }\n.jwn-ss-input { width: 100%; height: 48px; padding: 0 44px 0 40px; background: #fff; border: 1px solid ${T.border}; border-radius: 4px; font: 16px/1.2 ${T.ui}; color: ${T.navy}; outline: none; -webkit-appearance: none; appearance: none; }\n.jwn-ss-input::placeholder { color: ${T.muted}; opacity: 1; }\n.jwn-ss-input::-webkit-search-cancel-button { display: none; }\n.jwn-ss-input:focus { border-color: ${T.blue}; box-shadow: ${T.ring}; }\n.jwn-ss button { cursor: pointer; font-family: ${T.ui}; }\n.jwn-ss button:focus-visible, .jwn-ss-row:focus-visible { outline: 2px solid ${T.blue}; outline-offset: 0; box-shadow: ${T.ring}; }\n.jwn-ss-x { width: 44px; height: 44px; border: 0; background: transparent; color: ${T.muted}; font-size: 22px; line-height: 1; border-radius: 4px; }\n.jwn-ss-spin { width: 16px; height: 16px; border: 2px solid ${T.fill}; border-top-color: ${T.blue}; border-radius: 50%; animation: jwn-ss-rot .8s linear infinite; }\n@keyframes jwn-ss-rot { to { transform: rotate(360deg); } }\n.jwn-ss-example { display: block; width: 100%; min-height: 44px; padding: 0; border: 0; background: transparent; text-align: left; font-size: 14px; color: ${T.blue}; }\n.jwn-ss-example:hover { text-decoration: underline; }\n.jwn-ss-chip { display: inline-flex; align-items: center; height: 36px; padding: 0 0 0 14px; background: #fff; border: 1px solid ${T.blue}; border-radius: 999px; font: 14px/1 ${T.ui}; color: ${T.blue}; }\n.jwn-ss-chip-x { position: relative; width: 28px; height: 28px; margin: 0 4px 0 2px; border: 0; background: transparent; color: ${T.blue}; font-size: 18px; line-height: 1; border-radius: 50%; }\n.jwn-ss-chip-x::before { content: \"\"; position: absolute; inset: -8px; }\n.jwn-ss-undo { min-height: 44px; padding: 0; border: 0; background: transparent; font-size: 14px; font-weight: 700; color: ${T.blue}; text-decoration: underline; }\n.jwn-ss-btn { min-height: 44px; padding: 0 16px; background: transparent; border: 1px solid ${T.border}; border-radius: 4px; font-size: 14px; color: ${T.navy}; flex: none; }\n.jwn-ss-filters { width: 100%; margin-top: 12px; text-align: left; }\n.jwn-ss-primary { min-height: 44px; padding: 0 16px; background: ${T.navy}; color: #fff; border: 0; border-radius: 4px; font-size: 15px; font-weight: 700; }\n.jwn-ss-row:hover .jwn-ss-title { text-decoration: underline; }\n.jwn-ss-title { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }\n.jwn-ss-summary { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; margin-top: 4px; }\n.jwn-ss-results, .jwn-ss-applied { transition: opacity 200ms ease; }\n@media (prefers-reduced-motion: reduce) {\n  .jwn-ss-results, .jwn-ss-applied { transition: none; }\n  .jwn-ss-spin { animation-duration: 2.4s; }\n}\n`;\nexport const __FramerMetadata__ = {\"exports\":{\"lockedLabels\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"categoryProp\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ScopeProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"lockProps\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ScopedBoxArgs\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ScopedPhase\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ScopedResultsProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ScopedRow\":{\"type\":\"reactComponent\",\"name\":\"ScopedRow\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"ScopedResults\":{\"type\":\"reactComponent\",\"name\":\"ScopedResults\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"T\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BROWSE_CSS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"pageChipTexts\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"scopeControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ScopedRowData\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useScopedBox\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"requestScope\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// JWN_SmartSearch.tsx - Framer Code Component: the /browse article search box\n//\n// Created: 2026-10-10 14:45 EDT | Author: Claude (Builder, Step 4110.ui.2, task reciSrOui1ZSI1dqf)\n// Last modified: 2026-10-26 01:45 EDT | Author: Claude (Builder, Step 4536.page.2, task recRF6xYprk2IPSHy) |\n//   Section, Category and Tag controls; the request is the lock over the selects (blueprint TPR-10341);\n//   off /browse results open over the page or under the field (design TPR-10490, JWN_SmartSearch_Scoped).\n//   /browse is built to design direction A, design spec TPR recrL0YBLvHRd5xcN, blueprint TPR-6090 section 4.\n// Previously: 2026-10-11 18:20 EDT | Author: Claude (Builder, Step 4438.sync.1, task rec5slqVMpNVw0ytu) |\n//   the logic import uses the Framer file name ./SmartSearchLogic.tsx, and the paste text names the\n//   Framer files (Decision recePn5wppTKQ29Uw, blueprint TPR-6935).\n//\n// Lands in Framer through `Website/Framer Components/framer-sync` at merge (Framer file SmartSearch.tsx, id pfvPqdN); never hand-paste.\n//\n// What it does. The reader types; 300 ms after the last key a keystroke query goes out\n// (parse:false, log:false); 800 ms after the last key, or on Enter, the settled query goes out once\n// (parse:true, log:true). Results replace the native article list (which is hidden while a query is\n// active and comes back on clear, under 2 characters, or on error). When the settled answer carries\n// `applied`, the parser's Section / Category / Tag are put into the native selects that read All,\n// never into one the reader set, and a \"Set from your words\" block offers a one-tap undo.\n//\n// Every decision lives in JWN_SmartSearch_Logic.ts and is tested by\n// test/smart-search.assert.mjs. This file renders and touches the page DOM, nothing else.\n//\n// Fail soft: no select found -> search still runs on the URL scope, one console warning. No named\n// Section holding the native list -> the page is not /browse, and JWN_SmartSearch_Scoped.tsx renders.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState,useEffect,useRef,useCallback}from\"react\";import{createPortal}from\"react-dom\";import*as L from\"https://framerusercontent.com/modules/ppnMKQOvaY4G9mx10lDQ/x4AmEyxOegyaXwqR0Rwn/SmartSearchLogic.js\";import*as S from\"https://framerusercontent.com/modules/JNvUAyyiIoj64bTkbWVw/y0qmAaFJzISMTmdwPhRp/SmartSearchScope.js\";import*as D from\"https://framerusercontent.com/modules/dguXlTyx6hQyR3Fay50y/QFpar2aKIBvgfB9Rw4I2/SmartSearchScoped.js\";const T=D.T// the tokens (design spec section 2)\n;// ── The page DOM seam: the only code here that reads or writes Framer's own elements ──\nconst warned=new Set;function warnOnce(key,msg){if(warned.has(key))return;warned.add(key);console.warn(\"JWN_SmartSearch: \"+msg);}// Matched by the field id at the END of the name (the prefix is per breakpoint); when Framer has\n// more than one breakpoint's copy in the DOM, the visible one wins.\nfunction selectEl(key){const all=Array.from(document.querySelectorAll(`select[name$=\"${L.SELECT_FIELD[key]}\"]`));return all.find(s=>s.offsetParent!==null)||all[0]||null;}function readSelects(){const out={};for(const key of L.SCOPE_KEYS){const s=selectEl(key);if(!s){warnOnce(\"select-\"+key,`the ${key} select was not found; searching with the URL scope only.`);continue;}out[key]={value:s.value,options:Array.from(s.options).map(o=>({value:o.value,label:o.text,slug:L.slugifyLabel(o.text,key)}))};}return out;}// A change WE dispatch must not read as the reader's own choice, so the change listener skips\n// while this counter is up (dispatchEvent runs listeners synchronously).\nlet programmatic=0;function setSelect(key,value){const s=selectEl(key);if(!s)return false;if(s.value===value)return true;programmatic++;try{s.value=value;s.dispatchEvent(new Event(\"change\",{bubbles:true}));}finally{programmatic--;}return true;}// The native list is the parent of the article links in the same Framer Section as this\n// component, and See More is its next sibling, a \"Button CTA\" (measured 2026-10-10). Only that\n// Section counts (blueprint Part C): a page with no named Section around the field is not /browse,\n// and its own lists are never hidden.\nfunction findNativeList(root,own){const scope=root?.closest('[data-framer-name=\"Section\"]');if(!scope)return null;const links=scope.querySelectorAll('a[href*=\"news-posts/\"]');for(const a of Array.from(links)){if(root?.contains(a)||own?.contains(a))continue;const list=a.parentElement;if(!list)continue;const next=list.nextElementSibling;return{list,seeMore:next&&next.getAttribute(\"data-framer-name\")===\"Button CTA\"?next:null};}return null;}function hideEl(el){if(!el||el.dataset.jwnSsHidden)return;el.dataset.jwnSsPrev=el.style.display;el.dataset.jwnSsHidden=\"1\";el.style.display=\"none\";}function showEl(el){if(!el||!el.dataset.jwnSsHidden)return;el.style.display=el.dataset.jwnSsPrev||\"\";delete el.dataset.jwnSsHidden;delete el.dataset.jwnSsPrev;}// The \"FROM YOUR WORDS\" tag and the 3 px left rule on a select the parser filled (spec 4.4),\n// and the mobile collapse of the selects (spec 5). Both act on the select's wrapper.\nfunction decorateSelects(tagged,collapsed){for(const key of L.SCOPE_KEYS){const s=selectEl(key);const wrap=s?.parentElement;if(!wrap||!wrap.parentElement)continue;const id=\"jwn-ss-tag-\"+key;let tag=document.getElementById(id);if(tagged.has(key)&&!collapsed){if(!tag){tag=document.createElement(\"div\");tag.id=id;tag.textContent=L.COPY.selectTag;Object.assign(tag.style,{font:`700 11px/1.4 ${T.ui}`,color:T.blue,letterSpacing:\".06em\",textTransform:\"uppercase\",margin:\"0 0 4px 0\"});wrap.parentElement.insertBefore(tag,wrap);}if(wrap.dataset.jwnSsRule===undefined)wrap.dataset.jwnSsRule=wrap.style.boxShadow;wrap.style.boxShadow=`inset 3px 0 0 ${T.blue}`;}else{tag?.remove();if(wrap.dataset.jwnSsRule!==undefined){wrap.style.boxShadow=wrap.dataset.jwnSsRule;delete wrap.dataset.jwnSsRule;}}if(collapsed)hideEl(wrap);else showEl(wrap);}}function sendClick(endpoint,body){const url=endpoint.replace(/\\/+$/,\"\")+\"/click\";const data=JSON.stringify(body);try{// text/plain keeps the beacon a simple request; the Worker parses the body as JSON either way.\nif(navigator.sendBeacon&&navigator.sendBeacon(url,new Blob([data],{type:\"text/plain;charset=UTF-8\"})))return;}catch{}fetch(url,{method:\"POST\",body:data,headers:{\"Content-Type\":\"application/json\"},keepalive:true}).catch(()=>{});}/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n */export default function JWN_SmartSearch(props){const endpoint=(props.endpoint||\"\").replace(/\\/+$/,\"\");const[q,setQ]=useState(\"\");const[phase,setPhase]=useState(\"idle\");const[rows,setRows]=useState([]);const[total,setTotal]=useState(0);const[shownQ,setShownQ]=useState(\"\");const[inFlight,setInFlight]=useState(false);const[slow,setSlow]=useState(false);const[fills,setFills]=useState([]);const[dates,setDates]=useState(null);const[residual,setResidual]=useState(\"\");const[live,setLive]=useState(\"\");const[selVer,setSelVer]=useState(0);const[host,setHost]=useState(null);const[narrow,setNarrow]=useState(false);const[filtersOpen,setFiltersOpen]=useState(false);const[focused,setFocused]=useState(false);// Step 4536.page.2. mode is decided at mount: \"browse\" when a named Section holds the native list,\n// else \"scoped\" (JWN_SmartSearch_Scoped.tsx). null until then, so the server render and hydration agree.\nconst[mode,setMode]=useState(null);const[lock,setLock]=useState({});const[open,setOpen]=useState(false);const[phone,setPhone]=useState(false);const[box,setBox]=useState(null);const[shownScope,setShownScope]=useState({});const[tagLabels,setTagLabels]=useState([]);const rootRef=useRef(null);const fieldRef=useRef(null);const boxRef=useRef(null);const modeRef=useRef(null);const lockRef=useRef({});const sentScopeRef=useRef(null);const inputRef=useRef(null);const nativeRef=useRef(null);const seqRef=useRef(L.createSequencer());const abortRef=useRef(null);const timersRef=useRef({});const settledRef=useRef(null);const qRef=useRef(\"\");const fillsRef=useRef([]);// The pill the next request carries. A ref beside the state, because a handler that changes the\n// pill re-runs in the same tick, before React has re-rendered.\nconst datesRef=useRef(null);const putDates=d=>{datesRef.current=d;setDates(d);};qRef.current=q;fillsRef.current=fills;const active=L.searchable(q)&&phase!==\"idle\";const scoped=mode===\"scoped\";// Off /browse the results open on an answer only while the reader is still in the field.\nconst openIfFocused=()=>{if(modeRef.current===\"scoped\"&&document.activeElement===inputRef.current)setOpen(true);};// ── Requests ──\nconst stopTimers=()=>{clearTimeout(timersRef.current.slow);clearTimeout(timersRef.current.out);};const invalidate=useCallback(()=>{seqRef.current.next();abortRef.current?.abort();stopTimers();setInFlight(false);setSlow(false);},[]);const fail=useCallback(()=>{stopTimers();setInFlight(false);setSlow(false);setPhase(\"error\");setLive(L.liveText(\"error\",\"\"));openIfFocused();},[]);// Put the parser's choices into the selects that read All, keeping fills from an earlier settle\n// that the reader has not touched (so their undo stays reachable).\nconst applyParsed=useCallback((applied,sent)=>{const before=readSelects();const kept=L.liveFills(fillsRef.current,before);const plan=L.planApplied(applied,before,sent);const done=plan.fills.filter(f=>setSelect(f.key,f.value));setFills([...kept,...done]);putDates(plan.dates);setResidual(applied?.residual||\"\");setSelVer(v=>v+1);},[]);const run=useCallback((text,flags,kind,offset=0)=>{if(!endpoint){warnOnce(\"endpoint\",\"no Search API URL is set.\");return;}const id=seqRef.current.next();abortRef.current?.abort();const ctl=new AbortController;abortRef.current=ctl;stopTimers();if(kind!==\"keystroke\")settledRef.current=kind===\"more\"?settledRef.current:{q:text,flags};setInFlight(true);setSlow(false);if(kind!==\"more\")setPhase(p=>p===\"idle\"||p===\"error\"?\"loading\":p);timersRef.current.slow=setTimeout(()=>{if(seqRef.current.isCurrent(id)){setSlow(true);openIfFocused();}},L.SLOW_MS);timersRef.current.out=setTimeout(()=>{if(!seqRef.current.isCurrent(id))return;ctl.abort();fail();},L.TIMEOUT_MS);const sent=datesRef.current;const scope=D.requestScope(lockRef.current,window.location.search,readSelects());sentScopeRef.current=scope;const body=L.queryBody(text,scope,flags,window.location.pathname,offset,sent);fetch(endpoint+\"/query\",{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(body),signal:ctl.signal}).then(r=>r.json().catch(()=>null)).then(json=>{if(!seqRef.current.isCurrent(id))return;if(!L.isGoodResponse(json))return fail();stopTimers();setInFlight(false);setSlow(false);// Off /browse the parser never sets the page's own selects: that would refilter its grid.\nif(flags.parse&&modeRef.current!==\"scoped\")applyParsed(json.applied,sent);setShownScope(scope);setTagLabels(L.scopeTags(scope).map(t=>L.tagLabel(t,D.pageChipTexts(rootRef.current))));openIfFocused();const got=json.results.map((r,i)=>({...r,rank:offset+i+1,qid:json.query_id}));setRows(prev=>kind===\"more\"?[...prev,...got]:got);setTotal(json.total);setShownQ(text);setPhase(json.total===0?\"zero\":\"results\");if(kind===\"settled\")setLive(json.total===0?L.liveText(\"none\",text):L.liveText(\"results\",text,json.total));}).catch(err=>{if(err?.name===\"AbortError\"&&!seqRef.current.isCurrent(id))return;if(seqRef.current.isCurrent(id))fail();});},[endpoint,applyParsed,fail]);const runRef=useRef(run);runRef.current=run;const schedRef=useRef(null);if(!schedRef.current){schedRef.current=L.createScheduler({set:(fn,ms)=>setTimeout(fn,ms),clear:h=>clearTimeout(h)},(text,flags)=>runRef.current(text,flags,flags.parse?\"settled\":\"keystroke\"));}const sched=schedRef.current;// A re-run after the reader or a button changed the scope: same words, parser off.\nconst rerun=useCallback((flags=L.KEYSTROKE)=>{const text=qRef.current.trim();if(!L.searchable(text))return;sched.cancel();runRef.current(text,flags,\"settled\");},[sched]);const clearAll=useCallback(()=>{sched.forget();invalidate();setQ(\"\");setRows([]);setTotal(0);setPhase(\"idle\");setFiltersOpen(false);inputRef.current?.focus();},[sched,invalidate]);// The lock is computed in the browser, never in the server render (blueprint Part B), before the\n// page wiring below sends a ?q= request.\nconst lockKey=JSON.stringify(D.lockProps(props));useEffect(()=>{lockRef.current=S.resolveLock(D.lockProps(props),window.location.pathname);setLock(lockRef.current);},[lockKey]);// ── Page wiring: list host, #search, ?q=, hand changes to the selects ──\nuseEffect(()=>{const root=rootRef.current;const el=document.createElement(\"div\");el.setAttribute(\"data-jwn-smart-search-results\",\"\");const found=findNativeList(root,el);if(found&&found.list.parentElement){nativeRef.current=found;found.list.parentElement.insertBefore(el,found.list);setHost(el);}modeRef.current=found&&found.list.parentElement?\"browse\":\"scoped\";setMode(modeRef.current);const onResize=()=>setPhone(L.isPhone(window.innerWidth));onResize();window.addEventListener(\"resize\",onResize);readSelects()// warns once for any select it cannot find\n;// #search puts the cursor in the field. FramerAuth hides the body (visibility: hidden) while it\n// checks access and a hidden input drops focus(), so a single call at mount loses the race\n// (Task 4513). Each trigger starts one wait, replacing any running one; L.hashFocusStep decides\n// every try, woken by the body's style/class changes and a fallback poll.\nlet stopFocus=()=>{};const focusIfHash=()=>{stopFocus();const start=Date.now();let done=false;const attempt=()=>{const input=inputRef.current;if(done)return;if(!input||document.activeElement===input)return stop();const active=document.activeElement;const step=L.hashFocusStep({hash:window.location.hash,visible:getComputedStyle(input).visibility===\"visible\"&&input.getClientRects().length>0,idle:!active||active===document.body,elapsedMs:Date.now()-start});if(step===\"stop\")return stop();if(step===\"focus\"){input.focus();if(document.activeElement===input)stop();}};const obs=new MutationObserver(attempt);const poll=setInterval(attempt,L.FOCUS_POLL_MS);const stop=()=>{done=true;obs.disconnect();clearInterval(poll);};stopFocus=stop;obs.observe(document.body,{attributes:true,attributeFilter:[\"style\",\"class\"]});attempt();};focusIfHash();window.addEventListener(\"hashchange\",focusIfHash);const q0=L.qFromSearch(window.location.search);if(L.searchable(q0)){setQ(q0);sched.enter(q0);}const onChange=e=>{if(programmatic>0)return;const t=e.target;if(!t||t.tagName!==\"SELECT\")return;if(!L.scopeKeyForName(t.name))return;setSelVer(v=>v+1);putDates(L.datesAfter(\"select-change\",datesRef.current))// the pill stays: the request carries it\n;if(L.searchable(qRef.current))rerun();};document.addEventListener(\"change\",onChange,true);return()=>{window.removeEventListener(\"resize\",onResize);window.removeEventListener(\"hashchange\",focusIfHash);stopFocus();document.removeEventListener(\"change\",onChange,true);sched.cancel();abortRef.current?.abort();stopTimers();decorateSelects(new Set,false);showEl(nativeRef.current?.list||null);showEl(nativeRef.current?.seeMore||null);el.remove();};},[]);// Narrow layout follows the width of the area the results render in (spec 5: under 600 px).\nuseEffect(()=>{const target=host||rootRef.current;if(!target||typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(()=>setNarrow(target.getBoundingClientRect().width<600));ro.observe(target);return()=>ro.disconnect();},[host]);// One list at a time: hide the native list while a query is active, show it otherwise.\nuseEffect(()=>{let n=nativeRef.current;if(n&&!document.contains(n.list)){n=findNativeList(rootRef.current,host);if(n)nativeRef.current=n;}const hide=L.searchable(q)&&phase!==\"idle\"&&phase!==\"error\";if(hide){hideEl(n?.list||null);hideEl(n?.seeMore||null);}else{showEl(n?.list||null);showEl(n?.seeMore||null);}},[q,phase,host]);const selects=typeof document===\"undefined\"?{}:readSelects();const parserFills=L.liveFills(fills,selects);const collapsed=!scoped&&narrow&&active&&!filtersOpen;const scopedLabels=L.placeLabels(D.lockedLabels(lock),selects,[\"section\",\"category\"]);const emptyHelp=scoped&&focused&&!L.searchable(q)?L.scopedHelp(scopedLabels):\"\";const ready=phase===\"results\"||phase===\"zero\"||phase===\"error\"||phase===\"loading\"&&(rows.length>0||slow);const showBox=scoped&&open&&(!!emptyHelp||active&&ready);const{quiet,onRootKey}=D.useScopedBox({scoped,showBox,phone,rootRef,fieldRef,boxRef,inputRef,close:()=>setOpen(false),setBox});useEffect(()=>{decorateSelects(new Set(parserFills.map(f=>f.key)),collapsed);},[selVer,fills,collapsed]);// ── Handlers ──\nconst onInput=v=>{setQ(v);if(!L.searchable(v)){invalidate();setPhase(\"idle\");setRows([]);if(!v.trim())sched.forget();}sched.input(v);};const onKey=e=>{if(e.key===\"Enter\"){e.preventDefault();sched.enter(q);}else if(e.key===\"Escape\"&&modeRef.current!==\"scoped\"){e.preventDefault();clearAll();}};// Off /browse a focus opens the results, and re-sends when a chip changed the scope since.\nconst onFieldFocus=()=>{setFocused(true);if(modeRef.current!==\"scoped\"||quiet.current)return;setOpen(true);const now=D.requestScope(lockRef.current,window.location.search,readSelects());if(L.searchable(qRef.current)&&JSON.stringify(now)!==JSON.stringify(sentScopeRef.current))rerun();};const settleText=text=>{setQ(text);sched.forget();sched.enter(text);};const removeFill=f=>{setSelect(f.key,L.ALL_VALUE);setFills(fills.filter(x=>x!==f));putDates(L.datesAfter(\"remove-fill\",datesRef.current));setSelVer(v=>v+1);rerun();};const removeDates=()=>{putDates(L.datesAfter(\"remove-dates\",datesRef.current));rerun();};const undo=()=>{for(const key of L.planUndo(fills,readSelects()))setSelect(key,L.ALL_VALUE);setFills([]);putDates(L.datesAfter(\"undo\",datesRef.current));setResidual(\"\");setSelVer(v=>v+1);rerun();inputRef.current?.focus();};const searchAllSections=()=>{for(const key of L.SCOPE_KEYS)setSelect(key,L.ALL_VALUE);setFills([]);putDates(L.datesAfter(\"search-all\",datesRef.current));setResidual(\"\");setSelVer(v=>v+1);rerun({parse:false,log:true});};const showMore=()=>{const s=settledRef.current;putDates(L.datesAfter(\"more\",datesRef.current));if(s)run(s.q,s.flags,\"more\",rows.length);};const retry=()=>{const s=settledRef.current;putDates(L.datesAfter(\"retry\",datesRef.current));if(s)run(s.q,s.flags,\"settled\");else sched.enter(q);};const onRowClick=r=>{if(r.qid)sendClick(endpoint,{query_id:r.qid,slug:r.slug,rank:r.rank});};// ── Render ──\nconst labels=L.placeLabels(D.lockedLabels(lock),selects);const shownText=shownQ||q.trim();const wayOut=Object.keys(lock).length?S.escapeHref(shownText):null;const chipCount=parserFills.length+(dates?1:0);const showBlock=chipCount>0;const readerSet=labels.length-parserFills.length;const shared={phase,rows,total,q:shownText,wayOut,fading:inFlight&&rows.length>0,slow:slow&&inFlight,onClear:clearAll,onRetry:retry,onSearchAll:searchAllSections,onSearchWord:settleText,onRowClick};const results=active?/*#__PURE__*/_jsx(Results,{...shared,labels:labels,selects:selects,narrow:narrow,onMore:showMore}):null;const listId=\"jwn-ss-list\";const scopedResults=showBox?/*#__PURE__*/_jsx(D.ScopedResults,{...shared,phone:phone,box:box,boxRef:boxRef,listId:listId,emptyHelp:emptyHelp,labels:scopedLabels,tagLabels:tagLabels,scope:shownScope,onClose:()=>setOpen(false)}):null;return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:\"jwn-ss\",onKeyDown:onRootKey,style:{width:\"100%\",maxWidth:\"100%\",minWidth:0,fontFamily:T.ui,color:T.navy},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),/*#__PURE__*/_jsx(\"label\",{htmlFor:\"jwn-ss-input\",className:\"jwn-ss-sr\",children:L.COPY.label}),/*#__PURE__*/_jsxs(\"div\",{ref:fieldRef,style:{position:\"relative\"},children:[/*#__PURE__*/_jsxs(\"svg\",{\"aria-hidden\":\"true\",width:\"16\",height:\"16\",viewBox:\"0 0 24 24\",style:{position:\"absolute\",left:14,top:16,color:T.muted},children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"10.5\",cy:\"10.5\",r:\"6.5\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2.2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M15.5 15.5 21 21\",stroke:\"currentColor\",strokeWidth:\"2.2\",strokeLinecap:\"round\"})]}),/*#__PURE__*/_jsx(\"input\",{id:\"jwn-ss-input\",ref:inputRef,className:\"jwn-ss-input\",type:\"search\",autoComplete:\"off\",spellCheck:false,placeholder:scoped?L.scopedPlaceholder(scopedLabels):L.COPY.placeholder,\"aria-label\":scoped?L.scopedAria(scopedLabels):undefined,role:scoped?\"combobox\":undefined,\"aria-expanded\":scoped?showBox:undefined,\"aria-controls\":scoped?listId:undefined,value:q,onChange:e=>onInput(e.target.value),onKeyDown:onKey,onFocus:onFieldFocus,onBlur:()=>setFocused(false)}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",right:2,top:2,width:44,height:44,display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:inFlight?/*#__PURE__*/_jsx(\"span\",{className:\"jwn-ss-spin\",\"aria-hidden\":\"true\"}):q?/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"jwn-ss-x\",\"aria-label\":L.COPY.clearAria,onClick:clearAll,children:\"\\xd7\"}):null})]}),scopedResults,!scoped&&!active&&(focused||q)&&!L.searchable(q)?/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"p\",{style:{margin:\"8px 0 4px\",font:`13px/1.45 ${T.ui}`,color:T.body},children:L.COPY.help}),L.COPY.examples.map(ex=>/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"jwn-ss-example\",onMouseDown:e=>e.preventDefault(),onClick:()=>settleText(ex),children:ex},ex))]}):null,showBlock?/*#__PURE__*/_jsxs(\"div\",{className:\"jwn-ss-applied\",style:{marginTop:12,background:T.tint,borderLeft:`3px solid ${T.blue}`,borderRadius:4,padding:\"12px 16px\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{font:`700 13px/1.4 ${T.ui}`,color:T.navy,marginBottom:8},children:L.COPY.appliedTitle}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",gap:8},children:[parserFills.map(f=>/*#__PURE__*/_jsx(Chip,{label:f.label,onRemove:()=>removeFill(f)},f.key)),dates?/*#__PURE__*/_jsx(Chip,{label:L.datePill(dates.from,dates.to),onRemove:removeDates}):null]}),residual?/*#__PURE__*/_jsx(\"p\",{style:{margin:\"8px 0 0\",font:`13px/1.45 ${T.ui}`,color:T.body},children:L.COPY.residual(residual)}):null,/*#__PURE__*/_jsx(\"div\",{style:{display:narrow?\"block\":\"inline-block\",marginTop:4},children:/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"jwn-ss-undo\",onClick:undo,children:L.undoLabel(chipCount)})})]}):null,!scoped&&narrow&&active?/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"jwn-ss-btn jwn-ss-filters\",\"aria-expanded\":filtersOpen,onClick:()=>setFiltersOpen(o=>!o),children:L.mobileFiltersLabel(parserFills.length,Math.max(0,readerSet))}):null,/*#__PURE__*/_jsx(\"div\",{className:\"jwn-ss-sr\",\"aria-live\":\"polite\",children:live}),results&&!scoped?host?/*#__PURE__*/createPortal(results,host):/*#__PURE__*/_jsx(\"div\",{style:{marginTop:16},children:results}):null]});}// ── Pieces ──\nfunction Chip(p){return /*#__PURE__*/_jsxs(\"span\",{className:\"jwn-ss-chip\",children:[p.label,/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"jwn-ss-chip-x\",\"aria-label\":L.COPY.chipAria(p.label),onClick:p.onRemove,children:\"\\xd7\"})]});}function Results(p){if(p.phase===\"error\"){return /*#__PURE__*/_jsxs(\"div\",{className:\"jwn-ss jwn-ss-results\",style:{background:T.errBg,borderRadius:10,padding:16,marginBottom:24},children:[/*#__PURE__*/_jsx(\"p\",{style:{margin:\"0 0 12px\",font:`15px/1.5 ${T.ui}`,color:T.err},children:L.COPY.error}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"jwn-ss-btn\",style:{color:T.err,borderColor:T.err},onClick:p.onRetry,children:L.COPY.retry})]});}if(p.slow&&(p.phase===\"loading\"||p.rows.length===0)){return /*#__PURE__*/_jsxs(\"div\",{className:\"jwn-ss jwn-ss-results\",style:{marginBottom:24},children:[/*#__PURE__*/_jsx(\"p\",{style:{margin:\"0 0 16px\",font:`15px/1.5 ${T.ui}`,color:T.body},children:L.COPY.slow(p.q)}),[0,1,2].map(i=>/*#__PURE__*/_jsx(Skeleton,{narrow:p.narrow},i))]});}if(p.phase===\"loading\")return null;if(p.phase===\"zero\"){const word=L.broaderWord(p.q);return /*#__PURE__*/_jsxs(\"div\",{className:\"jwn-ss jwn-ss-results\",style:{background:T.card,borderRadius:10,padding:24,marginBottom:24},children:[/*#__PURE__*/_jsx(\"p\",{style:{margin:\"0 0 8px\",font:`19px/1.3 ${T.head}`,color:T.navy},children:L.zeroTitle(p.q,p.labels)}),/*#__PURE__*/_jsx(\"p\",{style:{margin:\"0 0 16px\",font:`15px/1.5 ${T.ui}`,color:T.body},children:L.COPY.zeroHint}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",gap:8},children:[p.wayOut?/*#__PURE__*/_jsx(\"a\",{className:\"jwn-ss-primary\",href:p.wayOut,children:L.COPY.searchAll}):p.labels.length?/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"jwn-ss-primary\",onClick:p.onSearchAll,children:L.COPY.searchAll}):null,word?/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"jwn-ss-btn\",onClick:()=>p.onSearchWord(word),children:L.COPY.searchWord(word)}):null]})]});}return /*#__PURE__*/_jsxs(\"div\",{className:\"jwn-ss jwn-ss-results\",style:{marginBottom:24,opacity:p.fading?.55:1},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:p.narrow?\"column\":\"row\",alignItems:p.narrow?\"flex-start\":\"flex-start\",justifyContent:\"space-between\",gap:12,marginBottom:16},children:[/*#__PURE__*/_jsxs(\"div\",{style:{minWidth:0},children:[/*#__PURE__*/_jsx(\"p\",{style:{margin:0,font:`19px/1.3 ${T.head}`,color:T.navy},children:L.resultsHeader(p.total,p.q)}),/*#__PURE__*/_jsx(\"p\",{style:{margin:\"4px 0 0\",font:`13px/1.45 ${T.ui}`,color:T.muted},children:L.scopeLine(p.labels)})]}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"jwn-ss-btn\",onClick:p.onClear,children:L.COPY.clear})]}),/*#__PURE__*/_jsx(\"ol\",{style:{listStyle:\"none\",margin:0,padding:0,display:\"flex\",flexDirection:\"column\",gap:12},children:p.rows.map(r=>/*#__PURE__*/_jsx(\"li\",{children:/*#__PURE__*/_jsx(ResultRow,{r:r,selects:p.selects,narrow:p.narrow,onClick:()=>p.onRowClick(r)})},r.rank+\":\"+r.slug))}),p.total>p.rows.length?/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"jwn-ss-btn\",style:{width:\"100%\",marginTop:16},onClick:p.onMore,children:L.COPY.more}):null]});}function ResultRow(p){const{r,narrow}=p;const w=narrow?88:176;const h=narrow?88:99;const section=L.labelForSlug(p.selects.section,r.section);const category=L.labelForSlug(p.selects.category,r.category);return /*#__PURE__*/_jsxs(\"a\",{href:r.url,className:\"jwn-ss-row\",onClick:p.onClick,style:{display:\"flex\",gap:16,alignItems:\"flex-start\",background:T.card,borderRadius:10,padding:16,textDecoration:\"none\",minWidth:0},children:[r.image?/*#__PURE__*/_jsx(\"img\",{src:r.image,alt:\"\",loading:\"lazy\",width:w,height:h,style:{width:w,height:h,flex:\"none\",borderRadius:4,objectFit:\"cover\"}}):/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{width:w,height:h,flex:\"none\",borderRadius:4,background:T.fill,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",font:`23px/1 ${T.head}`,color:T.muted},children:\"JW\"}),/*#__PURE__*/_jsxs(\"div\",{style:{minWidth:0,flex:1},children:[section||category?/*#__PURE__*/_jsxs(\"div\",{style:{font:`12px/1.4 ${T.ui}`,textTransform:\"uppercase\",letterSpacing:\".06em\",marginBottom:4},children:[section?/*#__PURE__*/_jsx(\"span\",{style:{color:L.sectionColor(r.section)},children:section}):null,section&&category?/*#__PURE__*/_jsx(\"span\",{style:{color:T.muted},children:\" \\xb7 \"}):null,category?/*#__PURE__*/_jsx(\"span\",{style:{color:T.muted},children:category}):null]}):null,/*#__PURE__*/_jsx(\"span\",{className:\"jwn-ss-title\",style:{font:`${narrow?17:19}px/1.3 ${T.head}`,color:T.navy,WebkitLineClamp:narrow?3:2},children:r.title}),!narrow&&r.summary?/*#__PURE__*/_jsx(\"span\",{className:\"jwn-ss-summary\",style:{font:`15px/1.5 ${T.ui}`,color:T.body},children:r.summary}):null,r.date?/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\",marginTop:4,font:`italic 13px/1.4 ${T.ui}`,color:T.muted},children:L.longDate(r.date)}):null]})]});}function Skeleton(p){const w=p.narrow?88:176;const h=p.narrow?88:99;return /*#__PURE__*/_jsxs(\"div\",{\"aria-hidden\":\"true\",className:\"jwn-ss-skel\",style:{display:\"flex\",gap:16,background:T.card,borderRadius:10,padding:16,marginBottom:12},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:w,height:h,flex:\"none\",borderRadius:4,background:T.fill}}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,minWidth:0},children:[/*#__PURE__*/_jsx(\"div\",{style:{height:12,width:\"30%\",background:T.fill,borderRadius:4,marginBottom:10}}),/*#__PURE__*/_jsx(\"div\",{style:{height:19,width:\"85%\",background:T.fill,borderRadius:4,marginBottom:10}}),/*#__PURE__*/_jsx(\"div\",{style:{height:15,width:\"65%\",background:T.fill,borderRadius:4}})]})]});}// Hover, focus and motion rules need real CSS; everything is scoped under .jwn-ss. It lives with T.\nconst CSS=D.BROWSE_CSS;addPropertyControls(JWN_SmartSearch,{endpoint:{type:ControlType.String,title:\"Search API URL\",defaultValue:\"https://jw-search.eric-belozovsky.workers.dev\",description:\"The jw-search Worker. /query and /click are added to it.\"},...D.scopeControls(ControlType)});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"JWN_SmartSearch\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SmartSearch.map"],"mappings":"A,yOAsBqF,SAAgB8F,GAAgB,EAAK,CAAsB,OAAjBC,GAAwBC,EAAW,KAAK,GAAGD,EAAK,SAASE,GAAaC,EAAE,CAAC,GAAG,IAAK,CAShI,SAAgBC,GAAa,EAAM,EAAI,CAAsI,OAA1HC,EAAIC,GAAuBD,EAAI,GAAG,OAAOE,GAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,KAAK,GAAG,GAAG,IAAA,KAAqC,OAAOA,GAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,QAAQ,SAAS,EAAE,CAAC,CAAC,QAAQ,cAAc,GAAG,CAAC,CAAC,QAAQ,WAAW,EAAE,CAAE,CAExV,SAAgBC,GAAgB,EAAO,CAAC,IAAMC,EAAO,IAAI,gBAAgBC,GAAQ,EAAE,EAAQC,EAAM,CAAC,EAAE,IAAI,IAAMN,KAAOJ,EAAW,CAAC,IAAMW,GAAGH,EAAO,IAAII,GAAUR,EAAI,GAAG,GAAA,CAAI,KAAK,CAAC,CAAC,YAAY,EAAKO,GAAG3G,EAAK,KAAK2G,CAAC,IAAE,EAAMP,GAAKO,EAAE,CAAC,OAAOD,CAAM,CAAC,SAAgBI,GAAY,EAAO,CAAC,OAAO,IAAI,gBAAgBL,GAAQ,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,GAAA,CAAI,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,CAAE,CAAC,SAAgBM,EAAS,EAAE,CAAC,MAAM,CAAC,CAACC,IAAIA,EAAE,QAAA,WAAmBA,EAAE,QAAQ,GAAI,CAAC,SAAgBC,EAAc,EAAE,EAAK,CAA0B,MAAtB,CAACD,GAAG,CAACE,EAAY,KAAYF,EAAE,QAAQ,KAAK,GAAGG,EAAE,QAAA,WAAmBA,EAAE,OAAOD,CAAI,GAAG,IAAK,CAAC,SAAgBE,GAAe,EAAE,CAAgC,MAA5B,CAACJ,GAAGD,EAASC,CAAC,EAAS,KAAYA,EAAE,QAAQ,KAAK,GAAGG,EAAE,QAAQH,EAAE,KAAK,GAAG,IAAK,CAMrsB,SAAgBK,GAAY,EAAQ,EAAQ,EAAK,KAAK,CAAC,IAAMC,EAAEC,GAAS,CAAC,EAAQC,EAAO,CAAC,QAAQF,EAAE,QAAQ,SAASA,EAAE,SAAS,IAAI,MAAM,QAAQA,EAAE,IAAI,EAAEA,EAAE,KAAK,GAAG,IAAA,EAAS,EAAQG,EAAM,CAAC,EAAE,IAAI,IAAMrB,KAAOJ,EAAW,CAAC,IAAMkB,EAAKM,EAAOpB,GAAK,GAAG,CAACc,EAAK,SAAS,IAAMF,EAAEU,EAAQtB,GAAK,GAAG,CAACW,EAASC,CAAC,EAAE,SAAS,IAAMW,EAAIV,EAAcD,EAAEE,CAAI,EAAMS,GAAaF,EAAM,KAAK,CAAC,MAAI,MAAME,EAAI,MAAM,MAAMA,EAAI,MAAM,KAAKA,EAAI,IAAI,CAAC,CAAE,CAAC,IAAMC,EAAKC,GAAM,MAAMP,EAAE,WAAW,IAAA,GAAgBQ,EAAGD,GAAM,IAAIP,EAAE,SAAS,IAAA,GAAU,MAAM,CAAC,QAAM,MAAMM,GAAME,EAAG,CAAC,OAAK,IAAE,EAAE,IAAI,CAAE,CAAC,SAAgBC,EAAW,EAAO,EAAM,CAAgF,OAA5EC,IAAS,gBAAgBA,IAAS,QAAQA,IAAS,aAAoB,KAAYC,IAAQA,EAAM,MAAMA,EAAM,IAAI,CAAC,GAAGA,CAAK,EAAE,IAAK,CAGntB,SAAgBC,GAAS,EAAM,EAAQ,CAAC,OAAOT,EAAM,OAAO,GAAGC,EAAQS,EAAE,IAAI,EAAE,QAAQA,EAAE,KAAK,CAAC,CAAC,IAAI,GAAGA,EAAE,GAAG,CAAE,CAC9G,SAAgBC,GAAU,EAAM,EAAQ,CAAC,OAAOX,EAAM,OAAO,GAAGC,EAAQS,EAAE,IAAI,EAAE,QAAQA,EAAE,KAAK,CAAE,CACmB,SAAgBE,GAAU,EAAE,EAAM,EAAM,EAAK,EAAO,EAAE,EAAM,KAAK,CAAC,IAAMrB,EAAE,CAAC,GAAGN,CAAK,EAAwE,OAAnEuB,GAAO,OAAK,EAAE,UAAUA,EAAM,MAAQA,GAAO,KAAG,EAAE,QAAQA,EAAM,IAAS,CAAC,EAAEK,EAAE,KAAK,EAAE,WAAW,WAAW,MAAMtB,EAAE,MAAMuB,EAAM,MAAM,IAAIA,EAAM,IAAI,OAAK,MAAA,GAAgB,QAAM,CAAE,CAA0B,SAAgBC,EAAW,EAAE,CAAC,OAAOF,EAAE,KAAK,CAAC,CAAC,QAAA,CAAkB,CAM7Z,SAAgBG,GAAgB,EAAO,EAAK,CAAC,IAAIC,EAAO,KAASC,EAAO,KAASC,EAAS,KAAWC,MAAa,CAAIH,IAAS,MAAKI,EAAO,MAAMJ,CAAM,EAAKC,IAAS,MAAKG,EAAO,MAAMH,CAAM,EAAE,EAAO,EAAO,IAAK,EAAQI,EAAO,GAAG,CAACF,EAAS,EAAE,IAAMG,EAAEV,EAAE,KAAK,EAAME,EAAWQ,CAAC,GAAGA,IAAIJ,IAAgB,EAASI,EAAEC,EAAKD,EAAEE,EAAO,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,CAACL,EAAS,EAAE,IAAMG,EAAEV,EAAE,KAAK,EAAME,EAAWQ,CAAC,IAAYA,IAAIJ,IAAS,EAAS,MAAK,EAAOE,EAAO,QAAQ,CAAC,EAAO,KAAKG,EAAKD,EAAEG,EAAS,CAAE,EAAA,GAAc,EAAE,EAAOL,EAAO,QAAQ,CAAC,EAAO,KAAKC,EAAOC,CAAC,CAAE,EAAA,GAAW,EAAE,EAAE,MAAM,EAAE,CAACD,EAAOT,CAAC,CAAE,EAAE,QAAQ,CAACO,EAAS,CAAE,EAC3oB,QAAQ,CAACA,EAAS,EAAE,EAAS,IAAK,CAAC,CAAE,CACrC,SAAgBO,IAAiB,CAAC,IAAIC,EAAE,EAAE,MAAM,CAAC,SAAS,EAAEA,EAAE,UAAU,GAAIC,IAAKD,CAAC,CAAE,CACpF,SAAgBE,EAAO,EAAE,CAAC,MAAM,IAAIjB,EAAE,GAAI,CAAC,SAAgBkB,EAAc,EAAM,EAAE,CAAC,OAAOC,IAAQ,EAAE,iBAAiBF,EAAOjB,CAAC,IAAI,GAAGmB,EAAM,gBAAgBF,EAAOjB,CAAC,GAAI,CACrK,SAAgBoB,EAAU,EAAO,EAAU,CAAC,EAAE,CAA2E,MAAM,GAApEC,EAAO,OAAO,MAAMA,EAAO,KAAK,KAAQ,IAAI,oBAAmCC,EAAU,OAAO,YAAYC,GAAQD,CAAS,IAAI,GAAG,oBAAqB,CACpN,SAAgBC,GAAQ,EAAM,CAAyC,OAArCC,EAAM,OAAO,EAASA,EAAM,KAAK,EAAE,EAAQ,GAAGA,EAAM,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAOA,EAAMA,EAAM,OAAO,IAAK,CAAsE,SAAgBC,GAAU,EAAE,CAAiB,OAAbV,EAAE,EAAQ,GAAS,SAASW,GAAYX,IAAI,OAAOA,IAAK,CAA8F,SAASY,GAAI,EAAI,CAAC,IAAMC,EAAE,2BAA2B,KAAKC,GAAK,EAAE,EAAE,OAAOD,EAAE,CAAC,OAAOA,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAE,CAAC,EAAE,IAAK,CAElgB,SAAgBE,GAAS,EAAK,EAAG,CAAC,IAAMjC,EAAEP,EAAKqC,GAAIrC,CAAI,EAAE,KAAWoB,EAAElB,EAAGmC,GAAInC,CAAE,EAAE,KAAWuC,EAAI,GAAG,GAAGC,EAAaC,EAAE,GAAG,GAAG,GAAGA,EAAE,KAAiU,OAAzTpC,GAAGa,EAAMb,EAAE,KAAKa,EAAE,IAAIb,EAAE,KAAKa,EAAE,GAAOb,EAAE,KAAKa,EAAE,GAAS,GAAGqB,EAAIlC,CAAC,EAAE,IAAIA,EAAE,KAAW,GAAGmC,EAAanC,EAAE,GAAG,GAAG,GAAGA,EAAE,GAAG,GAAGa,EAAE,GAAG,IAAIb,EAAE,KAASA,EAAE,KAAKa,EAAE,GAAS,GAAGqB,EAAIlC,CAAC,EAAE,KAAKkC,EAAIrB,CAAC,EAAE,IAAIb,EAAE,KAAW,GAAGkC,EAAIlC,CAAC,EAAE,IAAIA,EAAE,GAAG,KAAKkC,EAAIrB,CAAC,EAAE,IAAIA,EAAE,KAASb,EAAQ,QAAQkC,EAAIlC,CAAC,EAAE,IAAIA,EAAE,KAAQa,EAAQ,SAASqB,EAAIrB,CAAC,EAAE,IAAIA,EAAE,KAAW,EAAG,CAExU,SAAgBwB,GAAS,EAAI,CAAC,GAAG,CAACL,EAAI,MAAM,GAAG,GAAG,sBAAsB,KAAKA,CAAG,EAAE,CAAC,IAAMI,EAAEN,GAAIE,CAAG,EAAE,MAAM,GAAGM,GAAYF,EAAE,GAAG,GAAG,GAAGA,EAAE,GAAG,IAAIA,EAAE,IAAK,CAAC,IAAM,EAAE,IAAI,KAAKJ,CAAG,EAAiC,OAA5B,MAAM,EAAE,QAAQ,CAAC,EAAQ,GAAU,IAAI,KAAK,eAAe,QAAQ,CAAC,SAAS,mBAAmB,MAAM,OAAO,IAAI,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAE,CAEnN,SAAgBO,EAAY,EAAE,CAAC,IAAMC,EAAMrC,EAAE,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,OAAO,EAAE,GAAGqC,EAAM,OAAO,EAAE,OAAO,KAAK,IAAIC,EAAK,KAAK,IAAI,IAAMC,KAAOF,EAAM,CAAC,IAAMG,EAAED,EAAI,QAAQ,OAAO,sCAAsC,IAAI,EAAE,EAAE,EAAKC,EAAE,OAAO,GAAGC,GAAK,IAAID,EAAE,YAAY,CAAC,IAAc,CAACF,GAAME,EAAE,OAAOF,EAAK,UAAO,EAAKE,EAAE,CAAC,OAAOF,CAAK,CAAC,SAAgBI,GAAU,EAAE,EAAO,CAAC,MAAM,qBAAqBzB,EAAOjB,CAAC,KAAKqB,EAAO,OAAO,OAAOA,EAAO,KAAK,KAAQ,IAAI,GAAI,CAAC,SAAgBsB,GAAS,EAAK,EAAE,EAAM,EAAE,CAAiG,OAA7FC,IAAO,QAAc,2BAA8BA,IAAO,OAAa,kBAAkB5C,IAAU,GAAGmB,EAAM,eAAenB,GAAI,CAAC,SAAgB6C,GAAmB,EAAU,EAAU,CAA+H,OAA3HC,EAAU,EAAQ,gBAAgBA,EAAU,wBAA2BC,EAAU,EAAQ,gBAAgBA,EAAU,QAAc,WAAY,CAAgtB,SAAgBC,GAAe,EAAE,CAAC,MAAM,CAAC,CAACC,GAAGA,EAAE,KAAK,IAAM,MAAM,QAAQA,EAAE,OAAO,GAAG,OAAOA,EAAE,OAAQ,QAAS,CAIjuD,SAAgBC,GAAa,EAAK,CAAC,OAAOtE,GAAMuE,GAAavE,IAAO,SAAU,CACtN,SAAgBwE,EAAa,EAAE,EAAK,CAAC,GAAG,CAACxE,EAAK,MAAM,GAAG,IAAMS,EAAIV,EAAcD,EAAEE,CAAI,EAA0B,OAArBS,EAAWA,EAAI,MAAaT,EAAK,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG4D,IAAI,MAAM,IAAIA,EAAE,OAAO,CAAC,CAAC,CAAC,YAAY,EAAEA,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAE,CAK3M,SAAgBa,EAAa,EAAO,EAAQ,CAAC,IAAMC,EAAQrF,GAAgBE,CAAM,EAAQC,EAAM,CAAC,EAAE,IAAI,IAAMN,KAAOJ,EAAW,CAAC,IAAMgB,EAAEU,EAAQtB,GAAK,GAAG,CAACY,EAAE,CAAI4E,EAAQxF,KAAK,EAAMA,GAAKwF,EAAQxF,IAAK,QAAS,CAAC,IAAMuB,EAAIP,GAAeJ,CAAC,EAAKW,GAAKA,EAAI,OAAK,EAAMvB,GAAKuB,EAAI,KAAK,CAAC,OAAOjB,CAAM,CAO3R,SAAgBmF,GAAc,EAAE,CACW,OADP7E,EAAE,OAAA,WAAkC,CAACA,EAAE,MACxEA,EAAE,WAAA,IAA+B,OAAcA,EAAE,QAAQ,QAAQ,MAAO,CAO/C,SAAgB8E,EAAe,EAAO,CAAC,IAAMC,EAAI,CAAC,EAAE,IAAI,IAAMlB,KAAO,IAAI,gBAAgBpE,GAAQ,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,CAAC,IAAME,EAAEkE,EAAI,KAAK,CAAC,CAAC,YAAY,EAAKlE,GAAG3G,EAAK,KAAK2G,CAAC,GAAG,CAACoF,EAAI,SAASpF,CAAC,GAAEoF,EAAI,KAAKpF,CAAC,CAAE,CAAC,OAAOoF,EAAI,MAAM,EAAA,CAAe,CAAE,CAGvQ,SAAgBC,GAAa,EAAM,EAAK,CAAC,IAAMD,EAAI,CAAC,GAAGrF,CAAK,EAAQuF,EAAMC,EAAK,OAAO,GAAG,IAAIxF,EAAM,GAAG,EAAwH,OAAlHuF,EAAM,SAAqB,CAACF,EAAI,KAAKE,EAAM,SAAS,EAAE,EAAI,IAAIA,EAAM,GAAQ,EAAI,KAAKA,EAAM,MAAM,EAAA,CAAe,GAASF,CAAI,CACzO,SAAgBI,GAAU,EAAM,CAAC,MAAM,CAAC,GAAGzF,EAAM,IAAI,CAACA,EAAM,GAAG,EAAE,CAAC,EAAE,GAAGA,EAAM,MAAM,CAAC,CAAC,CAAE,CAEvF,SAAgB0F,GAAS,EAAK,EAAU,CAAC,EAAE,CAAC,IAAMC,EAAKC,EAAU,KAAK,GAAGnG,GAAa,CAAC,IAAIe,CAAI,EAAE,GAAGmF,EAAK,OAAOA,EAAK,KAAK,EAAE,IAAM1B,EAAMzD,EAAK,QAAQ,KAAK,GAAG,EAAE,OAAOyD,EAAM,OAAO,CAAC,CAAC,CAAC,YAAY,EAAEA,EAAM,MAAM,CAAC,CAAE,CAEnN,SAAgB4B,GAAY,EAAO,EAAQ,EAAKvG,EAAW,CAAC,OAAOwG,EAAK,IAAI,GAAGC,EAAOvG,IAAIkB,GAAeM,EAAQxB,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAACwG,CAAC,CAAE,CAAC,SAAgBC,GAAkB,EAAO,CAAC,OAAOhD,EAAO,OAAO,UAAUA,EAAOA,EAAO,OAAO,KAAKiD,EAAK,WAAY,CAAC,SAAgBC,GAAW,EAAO,CAAC,OAAOlD,EAAO,OAAO,sBAAsBA,EAAO,KAAK,KAAQ,IAAIiD,EAAK,KAAM,CACnX,SAAgBE,GAAW,EAAO,CAAC,OAAOnD,EAAO,OAAO,YAAYA,EAAO,KAAK,KAAQ,EAAE,QAAQ,EAAG,CAAC,SAAgBoD,EAAe,EAAQ,CAAC,OAAOC,EAAQ,2DAA2D,8CAA+C,CAEvQ,SAAgBC,GAAY,EAAM,EAAO,CAAC,MAAM,WAAWxD,KAASE,EAAO,OAAO,OAAOA,EAAO,KAAK,KAAQ,IAAI,GAAI,CAAC,SAAgBuD,GAAW,EAAM,EAAE,CAAC,IAAMC,EAAM,CAAC,EAAKzG,EAAM,SAAQyG,EAAM,KAAK,WAAW,mBAAmBzG,EAAM,OAAO,CAAC,EAAKA,EAAM,UAASyG,EAAM,KAAK,YAAY,mBAAmBzG,EAAM,QAAQ,CAAC,EAAE,IAAM0G,EAAIjB,GAAUzF,CAAK,CAAC,CAAC,GAA4F,OAAtF0G,GAAID,EAAM,KAAK,OAAO,mBAAmBC,CAAG,CAAC,EAAED,EAAM,KAAK,KAAK,mBAAmB7E,CAAC,CAAC,EAAQ,WAAW6E,EAAM,KAAK,GAAG,EAAE,QAAS,CACpc,SAAgBE,GAAQ,EAAc,CAAC,OAAOC,EAAA,GAA0B,CAAC,SAAgBC,GAAO,EAAM,CAAC,OAAOC,EAAM,EAAE,CAAE,CAA6B,SAAgBC,GAAY,EAAM,EAAc,EAAe,CAAC,IAAMC,EAAIC,EAAM,OAAO,EAAE,MAAM,CAAC,KAAKA,EAAM,KAAK,MAAI,MAAM,KAAK,IAAI,EAAE,KAAK,IAAA,IAAeL,EAAcK,EAAM,KAAK,EAAE,CAAC,EAAE,UAAU,KAAK,IAAI,EAAEC,EAAeF,EAAI,EAAE,CAAC,CAAE,C,mFAnFzY,EAAW,CAAC,UAAU,WAAW,KAAK,EAEtC,GAAU,CAAC,QAAQ,UAAU,SAAS,WAAW,IAAI,KAAK,EAK1D,GAAa,CAAC,QAAQ,YAAY,SAAS,YAAY,IAAI,WAAW,EACtE,GAAU,UAQV,GAAuB,CAAC,QAAQ,CAAC,oBAAoB,WAAW,CAAC,EAExE1N,EAAK,4BAW4B,GAAU,CAAC,MAAM,GAAM,IAAI,EAAK,EAAe,GAAQ,CAAC,MAAM,GAAK,IAAI,EAAI,EAWiC,GAAY,CAAC,GAAG,KAAK,OAAO,YAAY,WAAW,UAAU,EAAiG,EAAa,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,EAIhY,GAAY,CAAC,UAAU,WAAW,QAAQ,QAAQ,MAAM,OAAO,OAAO,SAAS,YAAY,UAAU,WAAW,UAAU,EAE1H,mBAAK,IAAI,IAAI,4LAA6N,CAAC,EAAw0B,EAAK,CAAC,MAAM,kBAAkB,YAAY,wBAAwB,KAAK,kEAAkE,SAAS,CAAC,kBAAkB,wBAAwB,yBAAyB,EAAE,UAAU,eAAe,MAAM,QAAQ,KAAK,oBAAoB,aAAa,sBAAsB,SAAS,GAAG,8BAA8BuL,IAAI,UAAU,kBAAkB,SAAS,GAAO,UAAUjF,IAAQ,SAAS,uCAAuC,UAAU,sBAAsB,WAAW,GAAG,UAAUiD,EAAOuB,CAAC,IAAI,KAAK,GAAG,uBAAuBvB,EAAOjB,CAAC,EAAE,GAAG,MAAM,kGAAkG,MAAM,WAAW,EAA8H,GAAQ,KAAkB,GAAW,IAI/4D,GAAa,CAAC,MAAM,UAAU,MAAM,UAAU,QAAQ,UAAU,SAAS,UAAU,SAAS,UAAU,UAAU,SAAS,EA8B+I,GAAY,CAAC,MAAM,QACxS,MAAM,iFAAiF,C,OC/Eu4B,SAAgB4F,EAAY,EAAK,CAAC,OAAOC,EAAS,KAAK,GAAGnH,EAAE,OAAOE,CAAI,GAAG,IAAK,CAC7iC,SAAgBkH,GAAkB,EAAK,CAAC,OAAOD,EAAS,KAAK,GAAGnH,EAAE,WAAW,KAAK,GAAGzB,EAAE,OAAO2B,CAAI,CAAC,CAAC,EAAE,MAAM,IAAK,CAAC,SAASmH,GAAU,EAAQ,EAAS,CAAC,MAAM,CAAC,CAACH,EAAYI,CAAO,CAAC,EAAE,WAAW,KAAK,GAAG/I,EAAE,OAAOgJ,CAAQ,CAAE,CAI3N,SAAgBC,EAAS,EAAS,CAAC,IAAMrB,EAAM,OAAOsB,GAAU,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,OAAO,EAAQH,EAAQJ,EAAYf,EAAM,EAAE,EAAE,GAAG,CAACmB,EAAQ,MAAM,CAAC,EAAE,IAAMI,EAAK,CAAC,QAAQJ,EAAQ,IAAI,EAA6D,OAAxDD,GAAUC,EAAQ,KAAKnB,EAAM,EAAE,IAAE,EAAK,SAASA,EAAM,IAAUuB,CAAK,CAA+G,SAAgBC,GAAY,EAAM,EAAS,EAAK,GAAG,QAAQ,KAAKzE,CAAC,EAAE,CAAC,IAAM1E,EAAEoJ,GAAO,CAAC,EAAQN,EAAQ,OAAO9I,EAAE,SAAA,MAAa,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,EAAQ+I,EAAS,OAAO/I,EAAE,UAAA,KAAa,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,EAAMkJ,EAAQJ,IAAA,OAAe,EAAKE,EAASC,CAAQ,EAAUH,IAAA,MAAc,EAAK,CAAC,EAAUJ,EAAYI,CAAO,GAAG,EAAK,CAAC,SAAO,EAAKC,IAAA,QAAmBF,GAAUC,EAAQC,CAAQ,EAAE,EAAK,SAASA,EAAcM,EAAK,8BAA8BN,EAAS,uBAAuBD,EAAQ,sBAAsBA,GAAS,KAASO,EAAK,6BAA6BP,EAAQ,wCAAwC,EAAE,EAAKE,EAASC,CAAQ,GAAG,IAAMrB,EAAI,OAAO5H,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,EAAkH,OAA7G4H,IAAQ0B,EAAK,KAAK1B,CAAG,EAAE,EAAK,IAAIA,EAASyB,EAAK,yBAAyBrJ,EAAE,IAAI,6BAA6B,GAAUkJ,CAAK,CAKpqC,SAAgBK,GAAU,EAAK,EAAM,CAAC,IAAMC,EAAEN,GAAM,CAAC,EAAQ3C,EAAI,CAAC,EAAE,IAAI,IAAM3F,KAAO6I,EAAU,CAAC,IAAMtI,EAAEqI,EAAE5I,IAAMM,IAAQN,GAAQO,IAAE,EAAIP,GAAKO,EAAE,CAAC,GAAGqI,EAAE,SAAS,CAACA,EAAE,UAAUjD,EAAI,SAAS,CAAC,IAAMmD,EAAMd,GAAkBrC,EAAI,QAAQ,EAAKmD,GAAOA,IAAQF,EAAE,SAAQ,OAAOjD,EAAI,QAAS,CACnR,IAAI,IAAM3F,KAAO,OAAO,KAAKM,GAAO,CAAC,CAAC,EAAOuI,EAAU,SAAS7I,CAAG,IAAE,EAAIA,GAAKM,EAAMN,IAAM,OAAO2F,CAAI,CAErG,SAAgBoD,EAAW,EAAK,CAAC,IAAMH,EAAEN,GAAM,CAAC,EAAQ3C,EAAI,CAAC,EAAQuC,EAAQJ,EAAYc,EAAE,OAAO,EAAqC,GAAhCV,GAAQvC,EAAI,KAAKuC,EAAQ,KAAK,EAAKU,EAAE,SAAS,CAAC,IAAMI,EAAIjB,EAAS,QAAQ,GAAGnH,EAAE,UAAU,CAAC,CAAC,KAAK,GAAGzB,EAAE,OAAOyJ,EAAE,QAAQ,EAAKI,GAAIrD,EAAI,KAAKqD,EAAI,KAAK,CAAE,CAA0B,OAAtBJ,EAAE,KAAIjD,EAAI,KAAKiD,EAAE,GAAG,EAASjD,CAAI,CAC/R,SAAgBsD,GAAW,EAAE,CAAC,MAAM,aAAa,mBAAmB,OAAO/G,GAAG,EAAE,CAAC,EAAE,QAAS,C,0CAdtF,EAAU,CAAC,UAAU,WAAW,KAAK,EAAe,EAAS,CAAC,CAAC,KAAK,QAAQ,MAAM,QAAQ,WAAW,CAAC,CAAC,KAAK,iBAAiB,MAAM,gBAAgB,EAAE,CAAC,KAAK,SAAS,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,QAAQ,MAAM,QAAQ,WAAW,CAAC,CAAC,KAAK,cAAc,MAAM,iBAAiB,EAAE,CAAC,KAAK,yBAAyB,MAAM,sBAAsB,EAAE,CAAC,KAAK,SAAS,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,MAAM,UAAU,WAAW,CAAC,CAAC,KAAK,yBAAyB,MAAM,sBAAsB,EAAE,CAAC,KAAK,kBAAkB,MAAM,eAAe,EAAE,CAAC,KAAK,0BAA0B,MAAM,uBAAuB,CAAC,CAAC,EAAE,CAAC,KAAK,WAAW,MAAM,WAAW,WAAW,CAAC,CAAC,KAAK,UAAU,MAAM,SAAS,EAAE,CAAC,KAAK,mBAAmB,MAAM,kBAAkB,EAAE,CAAC,KAAK,0BAA0B,MAAM,uBAAuB,EAAE,CAAC,KAAK,oBAAoB,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,KAAK,WAAW,MAAM,WAAW,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,YAAY,MAAM,oBAAoB,WAAW,CAAC,CAAC,KAAK,mBAAmB,MAAM,mBAAmB,CAAC,CAAC,CAAC,EAK/rB,EAAK,OAA2D,EAAK,2B,OCHlW,SAAgBkH,GAAa,EAAK,EAAO,EAAQ,CAAC,OAAOvP,GAAeC,GAAYwO,EAAKvO,EAAesG,EAAOiB,CAAO,CAAC,EAAEtH,EAAiBqG,CAAM,CAAC,CAAE,CAInJ,SAAgBgJ,EAAa,EAAQ,CAAC,IAAMzI,EAAE3G,EAAciO,CAAO,EAAE,OAAOtH,EAAE,WAAWA,EAAE,MAAM,QAAQ,gBAAgB,EAAE,EAAE,EAAG,CAAC,SAAgB0I,GAAU,EAAE,CAAC,IAAMpB,EAAQ9I,EAAE,SAAS,OAAO,MAAM,CAAC,UAAQ,SAASA,EAAEiK,EAAanB,CAAO,IAAI,MAAM,IAAI9I,EAAE,KAAK,EAAE,CAAE,CAAC,SAAgBmK,EAAc,EAAY,CAAC,IAAM5D,EAAI,CAAC,QAAQ,CAAC,KAAKnG,EAAY,KAAK,MAAM,UAAU,aAAatF,EAAO,QAAQ,CAACA,EAAO,MAAM,GAAA6N,EAAc,IAAI,GAAGnH,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,gBAAgB,eAAe,GAAAmH,EAAc,IAAI,GAAGnH,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,IAAMA,KAAKzG,EAAgByG,EAAE,WAAW,SAAgB,EAAIyI,EAAazI,EAAE,IAAI,GAAG,CAAC,KAAKpB,EAAY,KAEzmB,MAAM,GAAGoB,EAAE,MAAM,WAAW,aAAa,MAAM,QAAQ,CAAC,MAAM,GAAGA,EAAE,WAAW,IAAI,GAAGzB,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,UAAUyB,EAAE,QAAQ,GAAGA,EAAE,WAAW,IAAI,GAAGzB,EAAE,KAAK,CAAC,EAAE,OAAO,GAAOqJ,EAAM,UAAU5H,EAAE,IAAI,GAAyG,MAAtG,GAAI,IAAI,CAAC,KAAKpB,EAAY,OAAO,MAAM,MAAM,aAAa,GAAG,YAAY,2BAA2B,EAASmG,CAAI,CACzT,SAAgB6D,GAAa,EAAK,EAAU,CAAC,EAAE,CAAC,IAAMZ,EAAEN,GAAM,CAAC,EAAQ3C,EAAI,CAAC,EAA+K,OAA1KiD,EAAE,UAAQ,EAAI,QAAQxO,EAAa,CAAC,QAAQwO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAMA,EAAE,WAAS,EAAI,SAASxO,EAAa,CAAC,SAASwO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAMA,EAAE,MAAI,EAAI,IAAIvO,GAAWuO,EAAE,IAAI1C,CAAS,GAASP,CAAI,CACtQ,SAAgB8D,GAAc,EAAK,CAAC,IAAMC,EAAMC,GAAM,QAAQ,8BAA8B,GAAGA,GAAM,QAAQ,8BAA8B,EAAE,GAAG,CAACD,EAAM,MAAM,CAAC,EAAE,IAAM/D,EAAI,CAAC,EAAE,IAAI,IAAMiE,KAAM,MAAM,KAAKF,EAAM,iBAAiB,GAAG,CAAC,EAAE,CAAC,GAAGE,EAAG,SAAS,QAAQD,GAAM,SAASC,CAAE,EAAE,SAAS,IAAM,GAAGA,EAAG,aAAa,GAAA,CAAI,KAAK,EAAK,GAAG,EAAE,QAAQ,IAAGjE,EAAI,KAAK,CAAC,CAAE,CAAC,OAAOA,CAAI,CAAC,SAAgBkE,GAAa,EAAE,CAAC,IAAMC,EAAMxP,EAAO,EAAK,EAAQyP,EAASzP,EAAO4G,EAAE,KAAK,EAAghC,MAA9gC,GAAS,QAAQA,EAAE,MAAMjC,MAAc,CAAC,GAAG,CAACiC,EAAE,OAAO,OAAO,IAAM8I,EAAO,GAAG,CAAC,IAAMpH,EAAEqH,EAAE,OAAU/I,EAAE,QAAQ,SAAS,SAAS0B,CAAC,GAAG1B,EAAE,OAAO,SAAS,SAAS0B,CAAC,GAASmH,EAAS,QAAQ,CAAE,EAAuD,OAArD,SAAS,iBAAiB,cAAcC,EAAO,EAAI,MAAY,SAAS,oBAAoB,cAAcA,EAAO,EAAI,CAAE,EAAE,CAAC9I,EAAE,MAAM,CAAC,EAAEjC,MAAc,CAAC,GAAG,CAACiC,EAAE,SAASA,EAAE,MAAM,OAAO,IAAIgJ,EAAI,EAAQC,MAAY,CAAC,IAAMhF,EAAEjE,EAAE,SAAS,SAAS,sBAAsB,EAAKiE,GAAEjE,EAAE,OAAO3G,GAAc,CAAC,KAAK4K,EAAE,KAAK,OAAOA,EAAE,MAAM,EAAErG,EAAO,WAAWA,EAAO,WAAW,CAAC,CAAE,EAAQsL,MAAU,CAAC,qBAAqBF,CAAG,EAAE,EAAI,sBAAsBC,CAAO,CAAE,EAAiG,OAA/FA,EAAQ,EAAErL,EAAO,iBAAiB,SAASsL,EAAM,EAAI,EAAEtL,EAAO,iBAAiB,SAASsL,CAAK,MAAY,CAAC,qBAAqBF,CAAG,EAAEpL,EAAO,oBAAoB,SAASsL,EAAM,EAAI,EAAEtL,EAAO,oBAAoB,SAASsL,CAAK,CAAE,CAAE,EAAE,CAAClJ,EAAE,QAAQA,EAAE,KAAK,CAAC,EAA6K,CAAC,QAAM,UAAlK,GAAG,CAAI+I,EAAE,MAAM,UAAW/I,EAAE,SAAc+I,EAAE,eAAe,EAAEF,EAAS,QAAQ,EAAE,EAAM,QAAQ,GAAK7I,EAAE,SAAS,SAAS,MAAM,EAAE,EAAM,QAAQ,GAAM,CAAwB,CAAE,CAAC,SAAgBmJ,GAAc,EAAE,CAAC,GAAG7P,EAAE,MAAmK,OAAzJA,EAAE,UAA8B,gBAAK,IAAI,CAAC,UAAU,cAAc,MAAM,CAAC,OAAO,UAAU,KAAK,aAAaC,EAAE,KAAK,MAAMA,EAAE,KAAK,EAAE,SAASD,EAAE,SAAS,CAAC,EAAsB,gBAAM,MAAM,CAAC,UAAU,uBAAuB,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,CAAc,gBAAK,QAAQ,CAAC,wBAAwB,CAAC,OAAOgQ,CAAU,CAAC,CAAC,EAAe,gBAAKC,EAAK,CAAC,GAAGjQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,GAAG,CAACA,EAAE,KAAK,OAAO,SAAW,IAAY,OAAO,KAAK,IAAMkQ,EAAElQ,EAAE,IAAI,MAAoB,gBAA0B,gBAAM,MAAM,CAAC,IAAIA,EAAE,OAAO,UAAU,oBAAoB,MAAM,CAAC,SAAS,QAAQ,KAAKkQ,EAAE,KAAK,IAAIA,EAAE,IAAI,MAAMA,EAAE,MAAM,UAAUA,EAAE,UAAU,OAAOC,EAAM,QAAQ,OAAO,cAAc,SAAS,SAAS,SAAS,WAAW,OAAO,OAAO,aAAalQ,EAAE,SAAS,aAAa,GAAG,UAAUA,EAAE,OAAO,WAAWA,EAAE,GAAG,MAAMA,EAAE,IAAI,EAAE,SAAS,CAAc,gBAAK,QAAQ,CAAC,wBAAwB,CAAC,OAAO+P,CAAU,CAAC,CAAC,EAAEhQ,EAAE,UAAuB,gBAAK,IAAI,CAAC,UAAU,cAAc,MAAM,CAAC,OAAO,EAAE,QAAQ,WAAW,EAAE,SAASA,EAAE,SAAS,CAAC,EAAe,gBAAKiQ,EAAK,CAAC,GAAGjQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,CAAE,CAAC,SAASoQ,EAAO,EAAE,CAAC,IAAMC,EAAIzL,EAAE,QAAQ,iBAAiB,cAAc,OAAOA,EAAE,OAAoB,gBAAK,IAAI,CAAC,UAAUyL,EAAI,KAAKzL,EAAE,OAAO,SAAAoH,EAAgB,SAAS,CAAC,EAAe,gBAAK,SAAS,CAAC,KAAK,SAAS,UAAUqE,EAAI,QAAQzL,EAAE,YAAY,SAAAoH,EAAgB,SAAS,CAAC,CAAE,CAAC,SAASiE,EAAK,EAAE,CAAC,IAAMK,EAAItQ,EAAE,MAAM,IAAI,OAAO,GAAGA,EAAE,QAAQ,QAAS,MAAoB,gBAAM,MAAM,CAAC,UAAU,eAAe,MAAM,CAAC,WAAWC,EAAE,MAAM,WAAW,aAAaA,EAAE,MAAM,QAAQ,WAAW,EAAE,SAAS,CAAc,gBAAK,IAAI,CAAC,MAAM,CAAC,OAAO,WAAW,KAAK,YAAYA,EAAE,KAAK,MAAMA,EAAE,GAAG,EAAE,SAAAmN,GAAuB,KAAK,CAAC,EAAe,gBAAK,SAAS,CAAC,KAAK,SAAS,UAAU,aAAa,MAAM,CAAC,MAAMnN,EAAE,IAAI,YAAYA,EAAE,GAAG,EAAE,QAAQD,EAAE,QAAQ,SAAAgM,EAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAG,GAAGhM,EAAE,QAAQ,OAAO,CAAC,IAAMwQ,EAAKtQ,EAAcF,EAAE,CAAC,EAAE,MAAoB,gBAAM,MAAM,CAAC,MAAM,CAAC,QAAQsQ,CAAG,EAAE,SAAS,CAAc,gBAAK,IAAI,CAAC,MAAM,CAAC,OAAO,UAAU,KAAK,YAAYrQ,EAAE,OAAO,MAAMA,EAAE,IAAI,EAAE,SAASE,GAAYH,EAAE,EAAEA,EAAE,MAAM,CAAC,CAAC,EAAe,gBAAK,IAAI,CAAC,MAAM,CAAC,OAAO,WAAW,KAAK,YAAYC,EAAE,KAAK,MAAMA,EAAE,IAAI,EAAE,SAASG,EAAiBJ,EAAE,UAAU,OAAO,CAAC,CAAC,CAAC,EAAe,gBAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,SAAS,OAAO,IAAI,CAAC,EAAE,SAAS,CAAc,gBAAKoQ,EAAO,CAAC,GAAGpQ,EAAE,QAAQ,EAAI,CAAC,EAAEwQ,EAAkB,gBAAK,SAAS,CAAC,KAAK,SAAS,UAAU,aAAa,YAAYxQ,EAAE,aAAawQ,CAAI,EAAE,SAAAxE,EAAgB,WAAWwE,CAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,IAAMC,EAAIpQ,GAASL,EAAE,KAAK,EAAQ0Q,EAAM1Q,EAAE,KAAK,MAAM,EAAEyQ,CAAG,EAAQE,EAAS3Q,EAAE,OAAOA,EAAE,QAAQ,WAAW,CAAC0Q,EAAM,QAAyDE,EAAtC,CAACD,GAAU3Q,EAAE,MAAM0Q,EAAM,OAAsC,gBAAK,IAAI,CAAC,UAAU1Q,EAAE,MAAM,gBAAgB,cAAc,KAAKM,GAAaN,EAAE,MAAMA,EAAE,CAAC,EAAE,SAASO,GAAcP,EAAE,MAAMA,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,MAAoB,gBAAMQ,EAAU,CAAC,SAAS,CAAc,gBAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,WAAW,aAAa,eAAe,gBAAgB,IAAI,GAAG,QAAQR,EAAE,MAAM,WAAW,iBAAiB,aAAaA,EAAE,MAAM,OAAO,aAAaC,EAAE,SAAS,KAAK,MAAM,EAAE,SAAS,CAAc,gBAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,CAAc,gBAAK,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,aAAaA,EAAE,OAAO,MAAMA,EAAE,IAAI,EAAE,SAAS0Q,EAAA3E,EAAgB,KAAKhM,EAAE,CAAC,EAAES,EAAgBT,EAAE,MAAMA,EAAE,CAAC,CAAC,CAAC,EAAe,gBAAK,IAAI,CAAC,MAAM,CAAC,OAAO,UAAU,KAAK,aAAaC,EAAE,KAAK,MAAMA,EAAE,KAAK,EAAE,SAASS,EAAYV,EAAE,OAAOA,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,EAAE,MAAmB,gBAAK,SAAS,CAAC,KAAK,SAAS,UAAU,aAAa,QAAQA,EAAE,QAAQ,SAAAgM,EAAgB,KAAK,CAAC,EAAe,gBAAK,SAAS,CAAC,KAAK,SAAS,UAAU,aAAa,QAAQhM,EAAE,QAAQ,SAAAoN,GAAuB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAe,gBAAK,KAAK,CAAC,GAAGpN,EAAE,OAAO,MAAM,CAAC,UAAU,OAAO,OAAO,EAAE,QAAQ,EAAE,UAAUA,EAAE,MAAM,UAAU,OAAO,KAAK,WAAW,UAAU,EAAE,QAAQ,OAAO,cAAc,SAAS,IAAIA,EAAE,MAAM,EAAE,EAAE,QAAQA,EAAE,OAAO,IAAI,CAAC,EAAE,SAAS2Q,EAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE3Q,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,GAAgB,gBAAK,KAAK,CAAC,SAAsB,gBAAK6Q,GAAK,CAAC,MAAM7Q,EAAE,KAAK,CAAC,CAAC,EAAE8Q,CAAC,CAAC,EAAEJ,EAAM,IAAI,GAAgB,gBAAK,KAAK,CAAC,SAAsB,gBAAKK,EAAU,CAAG,IAAE,MAAM/Q,EAAE,MAAM,YAAYA,EAAE,WAAW2K,CAAC,CAAC,CAAC,CAAC,EAAEA,EAAE,KAAK,IAAIA,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE3K,EAAE,MAAmB,gBAAM,MAAM,CAAC,SAAS,CAAC4Q,EAAoB,gBAAK,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAASA,CAAM,CAAC,EAAE,KAAkB,gBAAK,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAsB,gBAAKR,EAAO,CAAC,GAAGpQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,gBAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,eAAe,gBAAgB,WAAW,SAAS,IAAI,GAAG,QAAQ,YAAY,UAAU,aAAaC,EAAE,SAAS,WAAWA,EAAE,KAAK,KAAK,MAAM,EAAE,SAAS,CAAc,gBAAK,OAAO,CAAC,SAAS2Q,CAAM,CAAC,EAAe,gBAAKR,EAAO,CAAC,GAAGpQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CACliM,SAAgB+Q,EAAU,EAAE,CAAC,GAAK,CAAC,IAAE,SAAO/Q,EAAQkK,EAAE0C,EAAM,GAAG,IAAUqE,EAAErE,EAAM,GAAG,GAASc,EAAQ/C,EAAE,QAAQ/K,EAAa,CAAC,QAAQ+K,EAAE,OAAO,CAAC,CAAC,CAAC,IAAIhK,EAAe,IAAA,GAAUgK,EAAE,OAAO,EAAE,GAASgD,EAAShD,EAAE,SAAS/K,EAAa,CAAC,SAAS+K,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAIhK,EAAe,IAAA,GAAUgK,EAAE,QAAQ,EAAE,GAAG,MAAoB,gBAAM,IAAI,CAAC,KAAKA,EAAE,IAAI,UAAUiC,EAAM,cAAc,aAAa,QAAQ5M,EAAE,QAAQ,SAAS,CAAC2K,EAAE,MAAmB,gBAAK,MAAM,CAAC,IAAIA,EAAE,MAAM,IAAI,GAAG,QAAQ,OAAO,MAAMT,EAAE,OAAO+G,EAAE,MAAM,CAAC,MAAM/G,EAAE,OAAO+G,EAAE,KAAK,OAAO,aAAa,EAAE,UAAU,OAAO,CAAC,CAAC,EAAe,gBAAK,MAAM,CAAC,cAAc,OAAO,MAAM,CAAC,MAAM/G,EAAE,OAAO+G,EAAE,KAAK,OAAO,aAAa,EAAE,WAAWhR,EAAE,KAAK,QAAQ,OAAO,WAAW,SAAS,eAAe,SAAS,KAAK,UAAUA,EAAE,OAAO,MAAMA,EAAE,KAAK,EAAE,SAAS,IAAI,CAAC,EAAe,gBAAM,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,CAACyN,GAASC,EAAsB,gBAAM,MAAM,CAAC,MAAM,CAAC,KAAK,gBAAgB1N,EAAE,KAAK,cAAc,YAAY,cAAc,QAAQ,aAAa,CAAC,EAAE,SAAS,CAACyN,EAAqB,gBAAK,OAAO,CAAC,MAAM,CAAC,MAAM9M,GAAe+J,EAAE,OAAO,CAAC,EAAE,SAAS+C,CAAO,CAAC,EAAE,KAAKA,GAASC,EAAsB,gBAAK,OAAO,CAAC,MAAM,CAAC,MAAM1N,EAAE,KAAK,EAAE,SAAS,KAAQ,CAAC,EAAE,KAAK0N,EAAsB,gBAAK,OAAO,CAAC,MAAM,CAAC,MAAM1N,EAAE,KAAK,EAAE,SAAS0N,CAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAkB,gBAAK,OAAO,CAAC,UAAU,eAAe,MAAM,CAAC,KAAK,GAAGf,EAAM,GAAG,GAAG,UAAU3M,EAAE,OAAO,MAAMA,EAAE,KAAK,gBAAgB2M,EAAM,EAAE,CAAC,EAAE,SAASjC,EAAE,KAAK,CAAC,EAAE,CAACiC,GAAOjC,EAAE,QAAqB,gBAAK,OAAO,CAAC,UAAU,iBAAiB,MAAM,CAAC,KAAK,YAAY1K,EAAE,KAAK,MAAMA,EAAE,IAAI,EAAE,SAAS0K,EAAE,OAAO,CAAC,EAAE,KAAKA,EAAE,KAAkB,gBAAK,OAAO,CAAC,MAAM,CAAC,QAAQ,QAAQ,UAAU,EAAE,KAAK,mBAAmB1K,EAAE,KAAK,MAAMA,EAAE,KAAK,EAAE,SAASY,GAAW8J,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,SAASkG,GAAK,EAAE,CAAC,IAAM3G,EAAElK,EAAE,MAAM,GAAG,IAAUiR,EAAEjR,EAAE,MAAM,GAAG,GAAG,MAAoB,gBAAM,MAAM,CAAC,cAAc,OAAO,UAAUA,EAAE,MAAM,cAAc,aAAa,SAAS,CAAc,gBAAK,MAAM,CAAC,MAAM,CAAC,MAAMkK,EAAE,OAAO+G,EAAE,KAAK,OAAO,aAAa,EAAE,WAAWhR,EAAE,IAAI,CAAC,CAAC,EAAe,gBAAM,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,SAAS,CAAc,gBAAK,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,MAAM,WAAWA,EAAE,KAAK,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,EAAe,gBAAK,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,MAAM,WAAWA,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,C,qEAbltEA,EAAE,CAAC,KAAK,iBAAiB,GAAG,iCAAiC,KAAK,UAAU,KAAK,UAAU,MAAM,UAAU,KAAK,UAAU,KAAK,UAAU,OAAO,UAAU,KAAK,UAAU,KAAK,UAAU,IAAI,UAAU,MAAM,UAAU,KAAK,gCAAgC,OAAO,iCAAiC,KAAK,UAAU,KAAK,SAAS,EAEvU,EAAM,EAW0tE,EAAW;;iCAEhtEA,EAAE,GAAG,WAAWA,EAAE,MAAM;iDACRA,EAAE,GAAG;gHAC0DA,EAAE,KAAK;kCACrFA,EAAE,KAAK;;;;;uFAK8CA,EAAE,OAAO,gDAAgDA,EAAE,KAAK;8GACzCA,EAAE,KAAK,mEAAmEA,EAAE,GAAG;6IAChDA,EAAE,GAAG,WAAWA,EAAE,KAAK;iIACnCA,EAAE,OAAO,oCAAoCA,EAAE,KAAK,mBAAmBA,EAAE,GAAG,WAAWA,EAAE,KAAK;6EAClJA,EAAE,KAAK,mCAAmCA,EAAE,KAAK;;EAGjH,EAAW;;;yGAGiFA,EAAE,OAAO,uCAAuCA,EAAE,GAAG,WAAWA,EAAE,KAAK;sCAC1IA,EAAE,MAAM;;sCAERA,EAAE,KAAK,gBAAgBA,EAAE,KAAK;iDACnBA,EAAE,GAAG;+EACyBA,EAAE,KAAK,mCAAmCA,EAAE,KAAK;oFAC5CA,EAAE,MAAM;8DAC9BA,EAAE,KAAK,sBAAsBA,EAAE,KAAK;;6JAE2DA,EAAE,KAAK;;mIAEjCA,EAAE,KAAK,uCAAuCA,EAAE,GAAG,WAAWA,EAAE,KAAK;kIACtEA,EAAE,KAAK;;6HAEZA,EAAE,KAAK;8FACtCA,EAAE,OAAO,gDAAgDA,EAAE,KAAK;;mEAE3FA,EAAE,KAAK;;;;;;;;;C,OCtCrD,SAASqR,GAAS,EAAI,EAAI,CAAIC,EAAO,IAAI/L,CAAG,IAAS+L,EAAO,IAAI/L,CAAG,EAAE,QAAQ,KAAK,oBAAoBgM,CAAG,EAAE,CAEhI,SAASC,EAAS,EAAI,CAAC,IAAMC,EAAI,MAAM,KAAK,SAAS,iBAAiB,iBAAiB5Q,GAAe0E,GAAK,GAAG,CAAC,EAAE,OAAOkM,EAAI,KAAK,GAAGtL,EAAE,eAAe,IAAI,GAAGsL,EAAI,IAAI,IAAK,CAAC,SAASC,GAAa,CAAC,IAAMxG,EAAI,CAAC,EAAE,IAAI,IAAM3F,KAAOzE,EAAa,CAAC,IAAMqF,EAAEqL,EAASjM,CAAG,EAAMY,EAA2G,EAAIZ,GAAK,CAAC,MAAMY,EAAE,MAAM,QAAQ,MAAM,KAAKA,EAAE,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,MAAMG,EAAE,MAAM,MAAMA,EAAE,KAAK,KAAKvF,GAAeuF,EAAE,KAAKf,CAAG,CAAC,EAAE,CAAC,EAApO8L,GAAS,UAAU9L,EAAI,OAAOA,EAAI,0DAA0D,CAA0I,CAAC,OAAO2F,CAAI,CAEze,SAASyG,GAAU,EAAI,EAAM,CAAC,IAAMxL,EAAEqL,EAASjM,CAAG,EAAE,GAAG,CAACY,EAAE,MAAO,GAAM,GAAGA,EAAE,QAAQyL,EAAM,MAAO,GAAK,KAAe,GAAG,CAAC,EAAE,MAAMA,EAAMzL,EAAE,cAAc,IAAI,MAAM,SAAS,CAAC,QAAQ,EAAI,CAAC,CAAC,CAAE,QAAQ,CAAC,IAAe,CAAC,MAAO,EAAK,CAInP,SAAS0L,GAAe,EAAK,EAAI,CAAC,IAAMhM,EAAMqJ,GAAM,QAAQ,8BAA8B,EAAE,GAAG,CAACrJ,EAAM,OAAO,KAAK,IAAMiM,EAAMjM,EAAM,iBAAiB,wBAAwB,EAAE,IAAI,IAAMY,KAAK,MAAM,KAAKqL,CAAK,EAAE,CAAC,GAAG5C,GAAM,SAASzI,CAAC,GAAGsL,GAAK,SAAStL,CAAC,EAAE,SAAS,IAAMuL,EAAKvL,EAAE,cAAc,GAAG,CAACuL,EAAK,SAAS,IAAMC,EAAKD,EAAK,mBAAmB,MAAM,CAAC,OAAK,QAAQC,GAAMA,EAAK,aAAa,kBAAkB,IAAI,aAAaA,EAAK,IAAI,CAAE,CAAC,OAAO,IAAK,CAAC,SAASC,GAAO,EAAG,CAAK/C,GAAI,GAAG,QAAQ,cAAmB,EAAG,QAAQ,UAAUA,EAAG,MAAM,QAAQ,EAAG,QAAQ,YAAY,IAAI,EAAG,MAAM,QAAQ,OAAO,CAAC,SAASgD,GAAO,EAAG,CAAKhD,GAAKA,EAAG,QAAQ,cAAmB,EAAG,MAAM,QAAQA,EAAG,QAAQ,WAAW,GAAG,OAAOA,EAAG,QAAQ,YAAY,OAAOA,EAAG,QAAQ,UAAU,CAE5uB,SAASiD,GAAgB,EAAO,EAAU,CAAC,IAAI,IAAM7M,KAAOzE,EAAa,CAAuB,IAAMuR,EAApBb,EAASjM,CAAgB,CAAC,EAAE,cAAc,GAAG,CAAC8M,GAAM,CAACA,EAAK,cAAc,SAAS,IAAM5J,EAAG,cAAclD,EAAQgH,EAAI,SAAS,eAAe9D,CAAE,EAAK6J,EAAO,IAAI/M,CAAG,GAAG,CAACgN,GAAehG,IAAK,EAAI,SAAS,cAAc,KAAK,EAAE,EAAI,GAAG9D,EAAG,EAAI,YAAAsD,EAAmB,UAAU,OAAO,OAAOQ,EAAI,MAAM,CAAC,KAAK,gBAAgBiG,EAAE,KAAK,MAAMA,EAAE,KAAK,cAAc,QAAQ,cAAc,YAAY,OAAO,WAAW,CAAC,EAAEH,EAAK,cAAc,aAAa9F,EAAI8F,CAAI,GAAMA,EAAK,QAAQ,YAAY,IAAA,KAAU,EAAK,QAAQ,UAAUA,EAAK,MAAM,WAAU,EAAK,MAAM,UAAU,iBAAiBG,EAAE,SAAajG,GAAK,OAAO,EAAK8F,EAAK,QAAQ,YAAY,IAAA,KAAW,EAAK,MAAM,UAAUA,EAAK,QAAQ,UAAU,OAAOA,EAAK,QAAQ,YAAeE,EAAUL,GAAOG,CAAI,EAAOF,GAAOE,CAAI,CAAE,CAAC,CAAC,SAASI,GAAU,EAAS,EAAK,CAAC,IAAMC,EAAIC,EAAS,QAAQ,OAAO,EAAE,EAAE,SAAeC,EAAK,KAAK,UAAUC,CAAI,EAAE,GAAG,CACp7B,GAAGvO,EAAU,YAAYA,EAAU,WAAWoO,EAAI,IAAI,KAAK,CAACE,CAAI,EAAE,CAAC,KAAK,0BAA0B,CAAC,CAAC,EAAE,MAAO,MAAM,CAAC,CAAC,MAAMF,EAAI,CAAC,OAAO,OAAO,KAAKE,EAAK,QAAQ,CAAC,eAAe,kBAAkB,EAAE,UAAU,EAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,CAGhO,SAAwBE,GAAgB,EAAM,CAAC,IAAMH,GAAU5E,EAAM,UAAU,GAAA,CAAI,QAAQ,OAAO,EAAE,EAAO,CAACtG,EAAEsL,GAAM/R,EAAS,EAAE,EAAO,CAACgS,EAAMC,GAAUjS,EAAS,MAAM,EAAO,CAACkS,EAAKC,IAASnS,EAAS,CAAC,CAAC,EAAO,CAAC4H,GAAMwK,IAAUpS,EAAS,CAAC,EAAO,CAACqS,GAAOC,IAAWtS,EAAS,EAAE,EAAO,CAACuS,EAASC,GAAaxS,EAAS,EAAK,EAAO,CAACyS,GAAKC,GAAS1S,EAAS,EAAK,EAAO,CAAC4F,EAAM+M,GAAU3S,EAAS,CAAC,CAAC,EAAO,CAACoG,GAAMwM,IAAU5S,EAAS,IAAI,EAAO,CAAC6S,GAASC,GAAa9S,EAAS,EAAE,EAAO,CAAC+S,GAAKC,IAAShT,EAAS,EAAE,EAAO,CAACiT,EAAOC,GAAWlT,EAAS,CAAC,EAAO,CAACmT,EAAKC,IAASpT,EAAS,IAAI,EAAO,CAACqT,EAAOC,IAAWtT,EAAS,EAAK,EAAO,CAACuT,GAAYC,IAAgBxT,EAAS,EAAK,EAAO,CAACyT,GAAQC,IAAY1T,EAAS,EAAK,EAEzrB,CAAC2T,GAAKC,IAAS5T,EAAS,IAAI,EAAO,CAAC6M,EAAKgH,IAAS7T,EAAS,CAAC,CAAC,EAAO,CAAC8T,GAAKC,GAAS/T,EAAS,EAAK,EAAO,CAAC2L,GAAMqI,IAAUhU,EAAS,EAAK,EAAO,CAACiU,GAAIC,IAAQlU,EAAS,IAAI,EAAO,CAACmU,GAAWC,GAAepU,EAAS,CAAC,CAAC,EAAO,CAAC+H,GAAUsM,IAAcrU,EAAS,CAAC,CAAC,EAAQsU,EAAQrU,EAAO,IAAI,EAAQsU,GAAStU,EAAO,IAAI,EAAQuU,EAAOvU,EAAO,IAAI,EAAQwU,EAAQxU,EAAO,IAAI,EAAQyU,EAAQzU,EAAO,CAAC,CAAC,EAAQ0U,EAAa1U,EAAO,IAAI,EAAQ2U,EAAS3U,EAAO,IAAI,EAAQ4U,EAAU5U,EAAO,IAAI,EAAQ6U,EAAO7U,EAAOC,GAAkB,CAAC,EAAQ6U,EAAS9U,EAAO,IAAI,EAAQ+U,EAAU/U,EAAO,CAAC,CAAC,EAAQgV,EAAWhV,EAAO,IAAI,EAAQiV,EAAKjV,EAAO,EAAE,EAAQkV,GAASlV,EAAO,CAAC,CAAC,EAE3oBmV,EAASnV,EAAO,IAAI,EAAQoV,EAAS,GAAG,CAAC,EAAS,QAAQ3M,EAAEkK,GAASlK,CAAC,CAAE,EAAE,EAAK,QAAQjC,EAAE,GAAS,QAAQb,EAAM,IAAM0P,EAAOnV,EAAasG,CAAC,GAAGuL,IAAQ,OAAauD,EAAO5B,KAAO,SACjL6B,OAAkB,CAAIf,EAAQ,UAAU,UAAU,SAAS,gBAAgBG,EAAS,SAAQb,EAAQ,EAAI,CAAE,EAC1G0B,MAAe,CAAC,aAAaT,EAAU,QAAQ,IAAI,EAAE,aAAaA,EAAU,QAAQ,GAAG,CAAE,EAAQU,GAAWtV,MAAgB,CAAC0U,EAAO,QAAQ,KAAK,EAAEC,EAAS,SAAS,MAAM,EAAEU,EAAW,EAAEjD,EAAY,EAAK,EAAEE,EAAQ,EAAK,CAAE,EAAE,CAAC,CAAC,EAAQiD,GAAKvV,MAAgB,CAACqV,EAAW,EAAEjD,EAAY,EAAK,EAAEE,EAAQ,EAAK,EAAET,EAAS,OAAO,EAAEe,GAAQ3S,GAAW,QAAQ,EAAE,CAAC,EAAEmV,GAAc,CAAE,EAAE,CAAC,CAAC,EAEnXI,GAAYxV,GAAa,EAAQ,IAAO,CAAC,IAAMyV,EAAOnF,EAAY,EAAQoF,EAAKxV,GAAY6U,GAAS,QAAQU,CAAM,EAAQE,EAAKxV,GAAcmF,EAAQmQ,EAAO7P,CAAI,EAAQgQ,EAAKD,EAAK,MAAM,OAAO,GAAGpF,GAAUrK,EAAE,IAAIA,EAAE,KAAK,CAAC,EAAEqM,EAAS,CAAC,GAAGmD,EAAK,GAAGE,CAAI,CAAC,EAAEX,EAASU,EAAK,KAAK,EAAEjD,EAAYpN,GAAS,UAAU,EAAE,EAAEwN,EAAU,GAAGpO,EAAE,CAAC,CAAE,EAAE,CAAC,CAAC,EAAQmR,EAAI7V,GAAa,EAAK,EAAM,EAAK,EAAO,IAAI,CAAC,GAAG,CAACuR,EAAS,CAACtB,GAAS,WAAW,2BAA2B,EAAE,MAAO,CAAC,IAAM5I,EAAGqN,EAAO,QAAQ,KAAK,EAAEC,EAAS,SAAS,MAAM,EAAE,IAAMmB,EAAI,IAAI,gBAAgB,EAAS,QAAQA,EAAIT,EAAW,EAAKpM,IAAO,cAAY,EAAW,QAAQA,IAAO,OAAO4L,EAAW,QAAQ,CAAC,EAAEkB,EAAK,OAAK,GAAE3D,EAAY,EAAI,EAAEE,EAAQ,EAAK,EAAKrJ,IAAO,QAAO4I,EAAS,GAAGtO,IAAI,QAAQA,IAAI,QAAQ,UAAUA,CAAC,EAAE,EAAU,QAAQ,KAAK,eAAe,CAAImR,EAAO,QAAQ,UAAUrN,CAAE,IAAGiL,EAAQ,EAAI,EAAE8C,GAAc,EAAG,EAAEhV,EAAS,EAAE,EAAU,QAAQ,IAAI,eAAe,CAAKsU,EAAO,QAAQ,UAAUrN,CAAE,IAASyO,EAAI,MAAM,EAAEP,GAAK,EAAE,EAAElV,EAAY,EAAE,IAAMuF,EAAKoP,EAAS,QAAcvQ,EAAMnE,GAAegU,EAAQ,QAAQrR,EAAO,SAAS,OAAOqN,EAAY,CAAC,EAAE,EAAa,QAAQ7L,EAAM,IAAMgN,EAAKlR,GAAYwV,EAAKtR,EAAM6B,EAAMrD,EAAO,SAAS,SAAS+S,EAAOpQ,CAAI,EAAE,MAAM2L,EAAS,SAAS,CAAC,OAAO,OAAO,QAAQ,CAAC,eAAe,kBAAkB,EAAE,KAAK,KAAK,UAAUE,CAAI,EAAE,OAAOqE,EAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAGxM,EAAE,KAAK,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,KAAK,GAAM,CAAC,GAAG,CAACoL,EAAO,QAAQ,UAAUrN,CAAE,EAAE,OAAO,GAAG,CAAC7G,GAAiByV,CAAI,EAAE,OAAOV,GAAK,EAAEF,EAAW,EAAEjD,EAAY,EAAK,EAAEE,EAAQ,EAAK,EACl+ChM,EAAM,OAAO+N,EAAQ,UAAU,UAASmB,GAAYS,EAAK,QAAQrQ,CAAI,EAAEoO,EAAcvP,CAAK,EAAEwP,GAAaxT,GAAYgE,CAAK,CAAC,CAAC,IAAI,GAAG/D,GAAWqG,EAAEpG,GAAgBuT,EAAQ,OAAO,CAAC,CAAC,CAAC,EAAEkB,GAAc,EAAE,IAAMc,EAAID,EAAK,QAAQ,KAAK,EAAE,KAAK,CAAC,GAAG3M,EAAE,KAAK0M,EAAOvG,EAAE,EAAE,IAAIwG,EAAK,QAAQ,EAAE,EAAElE,GAAQ,GAAM9I,IAAO,OAAO,CAAC,GAAGkN,EAAK,GAAGD,CAAG,EAAEA,CAAG,EAAElE,GAASiE,EAAK,KAAK,EAAE/D,GAAU6D,CAAI,EAAElE,EAASoE,EAAK,QAAQ,EAAE,OAAO,SAAS,EAAKhN,IAAO,WAAU2J,GAAQqD,EAAK,QAAQ,EAAEhW,GAAW,OAAO8V,CAAI,EAAE9V,GAAW,UAAU8V,EAAKE,EAAK,KAAK,CAAC,CAAE,CAAC,CAAC,CAAC,MAAM,GAAK,EAAIG,GAAK,OAAO,cAAe1B,EAAO,QAAQ,UAAUrN,CAAE,IAAYqN,EAAO,QAAQ,UAAUrN,CAAE,GAAEkO,GAAK,CAAE,CAAC,CAAE,EAAE,CAAChE,EAASiE,GAAYD,EAAI,CAAC,EAAQc,GAAOxW,EAAOgW,CAAG,EAAE,GAAO,QAAQA,EAAI,IAAMS,GAASzW,EAAO,IAAI,EAAE,AAAsByW,GAAS,UAAQ1V,GAAkB,CAAC,KAAK,EAAG,IAAK,WAAW2V,EAAGC,CAAE,EAAE,MAAM,GAAG,aAAa5G,CAAC,CAAC,GAAG,EAAK,IAAQyG,GAAO,QAAQN,EAAKzP,EAAMA,EAAM,MAAM,UAAU,WAAW,CAAC,EAAG,IAAMmQ,EAAMH,GAAS,QACj7BI,EAAM1W,GAAa,EAAMa,KAAc,CAAC,IAAMkV,EAAKjB,EAAK,QAAQ,KAAK,EAAM/U,EAAagW,CAAI,IAASU,EAAM,OAAO,EAAEJ,GAAO,QAAQN,EAAKzP,EAAM,SAAS,EAAE,EAAE,CAACmQ,CAAK,CAAC,EAAQ7P,GAAS5G,MAAgB,CAACyW,EAAM,OAAO,EAAEnB,GAAW,EAAE3D,EAAK,EAAE,EAAEI,GAAQ,CAAC,CAAC,EAAEC,GAAS,CAAC,EAAEH,EAAS,MAAM,EAAEuB,GAAe,EAAK,EAAEoB,EAAS,SAAS,MAAM,CAAE,EAAE,CAACiC,EAAMnB,EAAU,CAAC,EAEtVqB,GAAQ,KAAK,UAAU7V,GAAY6L,CAAK,CAAC,EAAEvJ,MAAc,CAAC,EAAQ,QAAQrC,GAAcD,GAAY6L,CAAK,EAAE1J,EAAO,SAAS,QAAQ,EAAEwQ,GAAQa,EAAQ,OAAO,CAAE,EAAE,CAACqC,EAAO,CAAC,EAC/KvT,MAAc,CAAC,IAAM0K,EAAKoG,EAAQ,QAAcnG,EAAG,SAAS,cAAc,KAAK,EAAEA,EAAG,aAAa,gCAAgC,EAAE,EAAE,IAAM6I,EAAMnG,GAAe3C,EAAKC,CAAE,EAAK6I,GAAOA,EAAM,KAAK,gBAAe,EAAU,QAAQA,EAAMA,EAAM,KAAK,cAAc,aAAa7I,EAAG6I,EAAM,IAAI,EAAE5D,GAAQjF,CAAE,GAAG,EAAQ,QAAQ6I,GAAOA,EAAM,KAAK,cAAc,SAAS,SAASpD,GAAQa,EAAQ,OAAO,EAAE,IAAMwC,MAAajD,GAAS5S,GAAUiC,EAAO,UAAU,CAAC,EAAE4T,EAAS,EAAE5T,EAAO,iBAAiB,SAAS4T,CAAQ,EAAEvG,EAAY,EAK9f,IAAIwG,MAAc,CAAC,EAAQC,MAAgB,CAACD,EAAU,EAAE,IAAME,EAAM,KAAK,IAAI,EAAMpB,EAAK,GAAYqB,MAAY,CAAC,IAAMC,EAAM1C,EAAS,QAAQ,GAAGoB,EAAK,OAAO,GAAG,CAACsB,GAAO,SAAS,gBAAgBA,EAAM,OAAOC,EAAK,EAAE,IAAMjC,EAAO,SAAS,cAAoBkC,EAAKnW,GAAgB,CAAC,KAAKgC,EAAO,SAAS,KAAK,QAAQ,iBAAiBiU,CAAK,CAAC,CAAC,aAAa,WAAWA,EAAM,eAAe,CAAC,CAAC,OAAO,EAAE,KAAK,CAAChC,GAAQA,IAAS,SAAS,KAAK,UAAU,KAAK,IAAI,EAAE8B,CAAK,CAAC,EAAE,GAAGI,IAAO,OAAO,OAAOD,EAAK,EAAKC,IAAO,UAASF,EAAM,MAAM,EAAK,SAAS,gBAAgBA,GAAMC,EAAK,EAAG,EAAQE,EAAI,IAAI,iBAAiBJ,CAAO,EAAQK,EAAK,YAAYL,EAAQ,GAAe,EAAQE,MAAS,CAAC,EAAK,GAAKE,EAAI,WAAW,EAAE,cAAcC,CAAI,CAAE,EAAE,EAAUH,EAAKE,EAAI,QAAQ,SAAS,KAAK,CAAC,WAAW,GAAK,gBAAgB,CAAC,QAAQ,OAAO,CAAC,CAAC,EAAEJ,EAAQ,CAAE,EAAEF,EAAY,EAAE9T,EAAO,iBAAiB,aAAa8T,CAAW,EAAE,IAAMQ,EAAGrW,GAAc+B,EAAO,SAAS,MAAM,EAAKlD,EAAawX,CAAE,IAAG5F,EAAK4F,CAAE,EAAEd,EAAM,MAAMc,CAAE,GAAG,IAAMC,EAAS,GAAG,CAAC,GAAGC,GAAa,EAAE,OAAO,IAAM,EAAE,EAAE,OAAW,GAAG,EAAE,UAAU,UAAoBtW,GAAkB,EAAE,IAAI,IAAS2R,EAAU,GAAGpO,EAAE,CAAC,EAAEuQ,EAAS7T,EAAa,gBAAgB4T,EAAS,OAAO,CAAC,EAChqCjV,EAAa+U,EAAK,OAAO,GAAE4B,EAAM,EAAE,EAAoD,OAAlD,SAAS,iBAAiB,SAASc,EAAS,EAAI,MAAY,CAACvU,EAAO,oBAAoB,SAAS4T,CAAQ,EAAE5T,EAAO,oBAAoB,aAAa8T,CAAW,EAAED,EAAU,EAAE,SAAS,oBAAoB,SAASU,EAAS,EAAI,EAAEf,EAAM,OAAO,EAAE9B,EAAS,SAAS,MAAM,EAAEU,EAAW,EAAErE,mBAAgB,IAAI,IAAI,EAAK,EAAED,GAAO0D,EAAU,SAAS,MAAM,IAAI,EAAE1D,GAAO0D,EAAU,SAAS,SAAS,IAAI,EAAE1G,EAAG,OAAO,CAAE,CAAE,EAAE,CAAC,CAAC,EAChc3K,MAAc,CAAC,IAAMsU,EAAO3E,GAAMmB,EAAQ,QAAQ,GAAG,CAACwD,GAAQ,OAAO,eAAiB,IAAY,OAAO,IAAMC,EAAG,IAAI,mBAAmBzE,GAAUwE,EAAO,sBAAsB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAqB,OAAnBC,EAAG,QAAQD,CAAM,MAAYC,EAAG,WAAW,CAAE,EAAE,CAAC5E,CAAI,CAAC,EACnP3P,MAAc,CAAC,IAAIgE,EAAEqN,EAAU,QAAWrN,GAAG,CAAC,SAAS,SAASA,EAAE,IAAI,IAAG,EAAEqJ,GAAeyD,EAAQ,QAAQnB,CAAI,EAAK3L,IAAE,EAAU,QAAQA,IAAcrH,EAAasG,CAAC,GAAGuL,IAAQ,QAAQA,IAAQ,SAAiBd,GAAO1J,GAAG,MAAM,IAAI,EAAE0J,GAAO1J,GAAG,SAAS,IAAI,IAAQ2J,GAAO3J,GAAG,MAAM,IAAI,EAAE2J,GAAO3J,GAAG,SAAS,IAAI,EAAG,EAAE,CAACf,EAAEuL,EAAMmB,CAAI,CAAC,EAAE,IAAMtN,GAAQ,OAAO,SAAW,IAAY,CAAC,EAAE6K,EAAY,EAAQsH,GAAY1X,GAAYsF,EAAMC,EAAO,EAAQ0L,GAAU,CAACgE,GAAQlC,GAAQiC,GAAQ,CAAC/B,GAAkB0E,GAAaxW,GAAcC,GAAemL,CAAI,EAAEhH,GAAQ,CAAC,UAAU,UAAU,CAAC,EAAQqS,GAAU3C,GAAQ9B,IAAS,CAACtT,EAAasG,CAAC,EAAE9E,GAAasW,EAAY,EAAE,GAASE,GAAMnG,IAAQ,WAAWA,IAAQ,QAAQA,IAAQ,SAASA,IAAQ,YAAYE,EAAK,OAAO,GAAGO,IAAY2F,GAAQ7C,GAAQzB,KAAO,CAAC,CAACoE,IAAW5C,GAAQ6C,IAAY,CAAC,SAAM,cAAWvW,GAAe,CAAC,SAAO,WAAQ,SAAM,UAAQ,YAAS,SAAO,WAAS,UAAUmS,EAAQ,EAAK,EAAE,SAAM,CAAC,EAAEvQ,MAAc,CAAC4N,GAAgB,IAAI,IAAI4G,GAAY,IAAI,GAAG1R,EAAE,GAAG,CAAC,EAAEiL,EAAS,CAAE,EAAE,CAAC0B,EAAOrN,EAAM2L,EAAS,CAAC,EACphC,IAAM8G,GAAQ,GAAG,CAACtG,EAAKjN,CAAC,EAAM3E,EAAa2E,CAAC,IAAG4Q,GAAW,EAAEzD,EAAS,MAAM,EAAEE,GAAQ,CAAC,CAAC,EAAMrN,EAAE,KAAK,GAAE+R,EAAM,OAAO,GAAGA,EAAM,MAAM/R,CAAC,CAAE,EAAQwT,GAAM,GAAG,CAAI,EAAE,MAAM,SAAS,EAAE,eAAe,EAAEzB,EAAM,MAAMpQ,CAAC,GAAW,EAAE,MAAM,UAAUgO,EAAQ,UAAU,WAAU,EAAE,eAAe,EAAEzN,GAAS,EAAG,EAC7RuR,OAAiB,CAAkB,GAAjB7E,GAAW,EAAI,EAAKe,EAAQ,UAAU,UAAUpG,GAAM,QAAQ,OAAO0F,EAAQ,EAAI,EAAE,IAAMyE,EAAI9X,GAAegU,EAAQ,QAAQrR,EAAO,SAAS,OAAOqN,EAAY,CAAC,EAAKvQ,EAAa+U,EAAK,OAAO,GAAG,KAAK,UAAUsD,CAAG,IAAI,KAAK,UAAU7D,EAAa,OAAO,GAAEmC,EAAM,CAAE,EAAQ2B,GAAW,GAAM,CAAC1G,EAAKoE,CAAI,EAAEU,EAAM,OAAO,EAAEA,EAAM,MAAMV,CAAI,CAAE,EAAQuC,GAAW,GAAG,CAAC/H,GAAUrK,EAAE,IAAIzE,EAAW,EAAE8Q,EAAS/M,EAAM,OAAO,GAAGiF,IAAIvE,CAAC,CAAC,EAAE+O,EAAS7T,EAAa,cAAc4T,EAAS,OAAO,CAAC,EAAElC,EAAU,GAAGpO,EAAE,CAAC,EAAEgS,EAAM,CAAE,EAAQ6B,OAAgB,CAACtD,EAAS7T,EAAa,eAAe4T,EAAS,OAAO,CAAC,EAAE0B,EAAM,CAAE,EAAQ8B,OAAS,CAAC,IAAI,IAAMrU,KAAOzC,GAAW8D,EAAM8K,EAAY,CAAC,EAAEC,GAAUpM,EAAI1C,EAAW,EAAE8Q,EAAS,CAAC,CAAC,EAAE0C,EAAS7T,EAAa,OAAO4T,EAAS,OAAO,CAAC,EAAEtC,EAAY,EAAE,EAAEI,EAAU,GAAGpO,EAAE,CAAC,EAAEgS,EAAM,EAAElC,EAAS,SAAS,MAAM,CAAE,EAAQiE,OAAsB,CAAC,IAAI,IAAMtU,KAAOzE,EAAa6Q,GAAUpM,EAAI1C,EAAW,EAAE8Q,EAAS,CAAC,CAAC,EAAE0C,EAAS7T,EAAa,aAAa4T,EAAS,OAAO,CAAC,EAAEtC,EAAY,EAAE,EAAEI,EAAU,GAAGpO,EAAE,CAAC,EAAEgS,EAAM,CAAC,MAAM,GAAM,IAAI,EAAI,CAAC,CAAE,EAAQgC,OAAa,CAAC,IAAM3T,EAAE8P,EAAW,QAAQI,EAAS7T,EAAa,OAAO4T,EAAS,OAAO,CAAC,EAAKjQ,GAAE8Q,EAAI9Q,EAAE,EAAEA,EAAE,MAAM,OAAO+M,EAAK,MAAM,CAAE,EAAQ6G,OAAU,CAAC,IAAM5T,EAAE8P,EAAW,QAAQI,EAAS7T,EAAa,QAAQ4T,EAAS,OAAO,CAAC,EAAKjQ,EAAE8Q,EAAI9Q,EAAE,EAAEA,EAAE,MAAM,SAAS,EAAO0R,EAAM,MAAMpQ,CAAC,CAAE,EAAQuS,GAAW,GAAG,CAAItP,EAAE,KAAI+H,GAAUE,EAAS,CAAC,SAASjI,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,IAAI,CAAC,CAAE,EAC/4C5B,GAAOrG,GAAcC,GAAemL,CAAI,EAAEhH,EAAO,EAAQoT,GAAU5G,IAAQ5L,EAAE,KAAK,EAAQyS,GAAO,OAAO,KAAKrM,CAAI,CAAC,CAAC,OAAO9K,GAAakX,EAAS,EAAE,KAAWE,GAAUnB,GAAY,QAAQ,MAAiBoB,GAAUD,GAAU,EAAQ3P,GAAU1B,GAAO,OAAOkQ,GAAY,OAAaqB,GAAO,CAAC,QAAM,OAAK,SAAM,EAAEJ,GAAU,UAAO,OAAO1G,GAAUL,EAAK,OAAO,EAAE,KAAKO,IAAMF,EAAS,QAAQvL,GAAS,QAAQ+R,GAAM,YAAYF,GAAkB,aAAaJ,GAAW,aAAU,EAAQa,GAAQhE,EAAoB,gBAAKiE,GAAQ,CAAC,GAAGF,GAAc,UAAe,WAAe,SAAO,OAAOP,EAAQ,CAAC,EAAE,KAAWU,GAAO,cAAoBC,GAAcrB,GAAqB,gBAAKpW,GAAgB,CAAC,GAAGqX,GAAa,SAAU,OAAW,SAAc,UAAiB,aAAU,OAAOpB,GAAuB,aAAU,MAAM9D,GAAW,YAAYJ,EAAQ,EAAK,CAAC,CAAC,EAAE,KAAK,MAAoB,gBAAM,MAAM,CAAC,IAAIO,EAAQ,UAAU,SAAS,UAAUoF,GAAU,MAAM,CAAC,MAAM,OAAO,SAAS,OAAO,SAAS,EAAE,WAAWlI,EAAE,GAAG,MAAMA,EAAE,IAAI,EAAE,SAAS,CAAc,gBAAK,QAAQ,CAAC,wBAAwB,CAAC,OAAOmI,EAAG,CAAC,CAAC,EAAe,gBAAK,QAAQ,CAAC,QAAQ,eAAe,UAAU,YAAY,SAAA5O,EAAgB,KAAK,CAAC,EAAe,gBAAM,MAAM,CAAC,IAAIwJ,GAAS,MAAM,CAAC,SAAS,UAAU,EAAE,SAAS,CAAc,gBAAM,MAAM,CAAC,cAAc,OAAO,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,MAAM,CAAC,SAAS,WAAW,KAAK,GAAG,IAAI,GAAG,MAAM/C,EAAE,KAAK,EAAE,SAAS,CAAc,gBAAK,SAAS,CAAC,GAAG,OAAO,GAAG,OAAO,EAAE,MAAM,KAAK,OAAO,OAAO,eAAe,YAAY,KAAK,CAAC,EAAe,gBAAK,OAAO,CAAC,EAAE,mBAAmB,OAAO,eAAe,YAAY,MAAM,cAAc,OAAO,CAAC,CAAC,CAAC,CAAC,EAAe,gBAAK,QAAQ,CAAC,GAAG,eAAe,IAAIoD,EAAS,UAAU,eAAe,KAAK,SAAS,aAAa,MAAM,WAAW,GAAM,YAAYW,EAAOtT,GAAoBgW,EAAY,EAAAlN,EAAS,YAAY,aAAawK,EAAOrT,GAAa+V,EAAY,EAAE,IAAA,GAAU,KAAK1C,EAAO,WAAW,IAAA,GAAU,gBAAgBA,EAAO6C,GAAQ,IAAA,GAAU,gBAAgB7C,EAAOiE,GAAO,IAAA,GAAU,MAAM/S,EAAE,SAAS,GAAG4R,GAAQ,EAAE,OAAO,KAAK,EAAE,UAAUC,GAAM,QAAQC,GAAa,WAAW7E,GAAW,EAAK,CAAC,CAAC,EAAe,gBAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,OAAO,WAAW,SAAS,eAAe,QAAQ,EAAE,SAASnB,EAAsB,gBAAK,OAAO,CAAC,UAAU,cAAc,cAAc,MAAM,CAAC,EAAE9L,EAAe,gBAAK,SAAS,CAAC,KAAK,SAAS,UAAU,WAAW,aAAAsE,EAAoB,UAAU,QAAQ/D,GAAS,SAAS,GAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAEyS,GAAc,CAAClE,GAAQ,CAACD,IAAS7B,IAAShN,IAAI,CAACtG,EAAasG,CAAC,EAAe,gBAAM,MAAM,CAAC,SAAS,CAAc,gBAAK,IAAI,CAAC,MAAM,CAAC,OAAO,YAAY,KAAK,aAAa+K,EAAE,KAAK,MAAMA,EAAE,IAAI,EAAE,SAAAzG,EAAgB,IAAI,CAAC,EAAAA,EAAS,SAAS,IAAI,GAAiB,gBAAK,SAAS,CAAC,KAAK,SAAS,UAAU,iBAAiB,YAAY,GAAG,EAAE,eAAe,EAAE,YAAY0N,GAAWmB,CAAE,EAAE,SAASA,CAAE,EAAEA,CAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAKR,GAAuB,gBAAM,MAAM,CAAC,UAAU,iBAAiB,MAAM,CAAC,UAAU,GAAG,WAAW5H,EAAE,KAAK,WAAW,aAAaA,EAAE,OAAO,aAAa,EAAE,QAAQ,WAAW,EAAE,SAAS,CAAc,gBAAK,MAAM,CAAC,MAAM,CAAC,KAAK,gBAAgBA,EAAE,KAAK,MAAMA,EAAE,KAAK,aAAa,CAAC,EAAE,SAAAzG,EAAgB,YAAY,CAAC,EAAe,gBAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,SAAS,OAAO,IAAI,CAAC,EAAE,SAAS,CAACiN,GAAY,IAAI,GAAgB,gBAAK6B,GAAK,CAAC,MAAMvT,EAAE,MAAM,aAAaoS,GAAWpS,CAAC,CAAC,EAAEA,EAAE,GAAG,CAAC,EAAEF,GAAmB,gBAAKyT,GAAK,CAAC,MAAM1X,GAAWiE,GAAM,KAAKA,GAAM,EAAE,EAAE,SAASuS,EAAW,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE9F,GAAsB,gBAAK,IAAI,CAAC,MAAM,CAAC,OAAO,UAAU,KAAK,aAAarB,EAAE,KAAK,MAAMA,EAAE,IAAI,EAAE,SAAAzG,EAAgB,SAAS8H,EAAQ,CAAC,CAAC,EAAE,KAAkB,gBAAK,MAAM,CAAC,MAAM,CAAC,QAAQQ,EAAO,QAAQ,eAAe,UAAU,CAAC,EAAE,SAAsB,gBAAK,SAAS,CAAC,KAAK,SAAS,UAAU,cAAc,QAAQuF,GAAK,SAASxW,GAAY+W,EAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC5D,GAAQlC,GAAQiC,EAAoB,gBAAK,SAAS,CAAC,KAAK,SAAS,UAAU,4BAA4B,gBAAgB/B,GAAY,YAAYC,GAAe,GAAG,CAAClO,CAAC,EAAE,SAASjD,GAAqB2V,GAAY,OAAO,KAAK,IAAI,EAAExO,EAAS,CAAC,CAAC,CAAC,EAAE,KAAkB,gBAAK,MAAM,CAAC,UAAU,YAAY,YAAY,SAAS,SAASuJ,EAAI,CAAC,EAAEuG,IAAS,CAAC/D,EAAOpC,EAAkB,gBAAamG,GAAQnG,CAAI,EAAe,gBAAK,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAASmG,EAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,CACzsI,SAASO,GAAK,EAAE,CAAC,MAAoB,gBAAM,OAAO,CAAC,UAAU,cAAc,SAAS,CAACvX,EAAE,MAAmB,gBAAK,SAAS,CAAC,KAAK,SAAS,UAAU,gBAAgB,aAAAyI,EAAoB,SAASzI,EAAE,KAAK,EAAE,QAAQA,EAAE,SAAS,SAAS,GAAM,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,SAASiX,GAAQ,EAAE,CAAC,GAAGjX,EAAE,QAAQ,QAAS,MAAoB,gBAAM,MAAM,CAAC,UAAU,wBAAwB,MAAM,CAAC,WAAWkP,EAAE,MAAM,aAAa,GAAG,QAAQ,GAAG,aAAa,EAAE,EAAE,SAAS,CAAc,gBAAK,IAAI,CAAC,MAAM,CAAC,OAAO,WAAW,KAAK,YAAYA,EAAE,KAAK,MAAMA,EAAE,GAAG,EAAE,SAAAzG,EAAgB,KAAK,CAAC,EAAe,gBAAK,SAAS,CAAC,KAAK,SAAS,UAAU,aAAa,MAAM,CAAC,MAAMyG,EAAE,IAAI,YAAYA,EAAE,GAAG,EAAE,QAAQlP,EAAE,QAAQ,SAAAyI,EAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAG,GAAGzI,EAAE,OAAOA,EAAE,QAAQ,WAAWA,EAAE,KAAK,SAAS,GAAI,MAAoB,gBAAM,MAAM,CAAC,UAAU,wBAAwB,MAAM,CAAC,aAAa,EAAE,EAAE,SAAS,CAAc,gBAAK,IAAI,CAAC,MAAM,CAAC,OAAO,WAAW,KAAK,YAAYkP,EAAE,KAAK,MAAMA,EAAE,IAAI,EAAE,SAAAzG,EAAgB,KAAKzI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAgB,gBAAK0X,GAAS,CAAC,OAAO1X,EAAE,MAAM,EAAEuN,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,GAAGvN,EAAE,QAAQ,UAAU,OAAO,KAAK,GAAGA,EAAE,QAAQ,OAAO,CAAC,IAAMiN,EAAKhN,EAAcD,EAAE,CAAC,EAAE,MAAoB,gBAAM,MAAM,CAAC,UAAU,wBAAwB,MAAM,CAAC,WAAWkP,EAAE,KAAK,aAAa,GAAG,QAAQ,GAAG,aAAa,EAAE,EAAE,SAAS,CAAc,gBAAK,IAAI,CAAC,MAAM,CAAC,OAAO,UAAU,KAAK,YAAYA,EAAE,OAAO,MAAMA,EAAE,IAAI,EAAE,SAAShP,GAAYF,EAAE,EAAEA,EAAE,MAAM,CAAC,CAAC,EAAe,gBAAK,IAAI,CAAC,MAAM,CAAC,OAAO,WAAW,KAAK,YAAYkP,EAAE,KAAK,MAAMA,EAAE,IAAI,EAAE,SAAAzG,EAAgB,QAAQ,CAAC,EAAe,gBAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,SAAS,OAAO,IAAI,CAAC,EAAE,SAAS,CAACzI,EAAE,OAAoB,gBAAK,IAAI,CAAC,UAAU,iBAAiB,KAAKA,EAAE,OAAO,SAAAyI,EAAgB,SAAS,CAAC,EAAEzI,EAAE,OAAO,OAAoB,gBAAK,SAAS,CAAC,KAAK,SAAS,UAAU,iBAAiB,QAAQA,EAAE,YAAY,SAAAyI,EAAgB,SAAS,CAAC,EAAE,KAAKwE,EAAkB,gBAAK,SAAS,CAAC,KAAK,SAAS,UAAU,aAAa,YAAYjN,EAAE,aAAaiN,CAAI,EAAE,SAAAxE,EAAgB,WAAWwE,CAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,MAAoB,gBAAM,MAAM,CAAC,UAAU,wBAAwB,MAAM,CAAC,aAAa,GAAG,QAAQjN,EAAE,OAAO,IAAI,CAAC,EAAE,SAAS,CAAc,gBAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,cAAcA,EAAE,OAAO,SAAS,MAAM,YAAWA,EAAE,OAAO,cAA0B,eAAe,gBAAgB,IAAI,GAAG,aAAa,EAAE,EAAE,SAAS,CAAc,gBAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,CAAc,gBAAK,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,YAAYkP,EAAE,OAAO,MAAMA,EAAE,IAAI,EAAE,SAAS/O,EAAgBH,EAAE,MAAMA,EAAE,CAAC,CAAC,CAAC,EAAe,gBAAK,IAAI,CAAC,MAAM,CAAC,OAAO,UAAU,KAAK,aAAakP,EAAE,KAAK,MAAMA,EAAE,KAAK,EAAE,SAAS9O,EAAYJ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,gBAAK,SAAS,CAAC,KAAK,SAAS,UAAU,aAAa,QAAQA,EAAE,QAAQ,SAAAyI,EAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAe,gBAAK,KAAK,CAAC,MAAM,CAAC,UAAU,OAAO,OAAO,EAAE,QAAQ,EAAE,QAAQ,OAAO,cAAc,SAAS,IAAI,EAAE,EAAE,SAASzI,EAAE,KAAK,IAAI,GAAgB,gBAAK,KAAK,CAAC,SAAsB,gBAAK2X,GAAU,CAAG,IAAE,QAAQ3X,EAAE,QAAQ,OAAOA,EAAE,OAAO,YAAYA,EAAE,WAAWoH,CAAC,CAAC,CAAC,CAAC,EAAEA,EAAE,KAAK,IAAIA,EAAE,IAAI,CAAC,CAAC,CAAC,EAAEpH,EAAE,MAAMA,EAAE,KAAK,OAAoB,gBAAK,SAAS,CAAC,KAAK,SAAS,UAAU,aAAa,MAAM,CAAC,MAAM,OAAO,UAAU,EAAE,EAAE,QAAQA,EAAE,OAAO,SAAAyI,EAAgB,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,CAAC,SAASkP,GAAU,EAAE,CAAC,GAAK,CAAC,IAAE,UAAQ3X,EAAQ2G,EAAEoK,EAAO,GAAG,IAAUrD,EAAEqD,EAAO,GAAG,GAAS5G,EAAQ9J,EAAeL,EAAE,QAAQ,QAAQoH,EAAE,OAAO,EAAQgD,EAAS/J,EAAeL,EAAE,QAAQ,SAASoH,EAAE,QAAQ,EAAE,MAAoB,gBAAM,IAAI,CAAC,KAAKA,EAAE,IAAI,UAAU,aAAa,QAAQpH,EAAE,QAAQ,MAAM,CAAC,QAAQ,OAAO,IAAI,GAAG,WAAW,aAAa,WAAWkP,EAAE,KAAK,aAAa,GAAG,QAAQ,GAAG,eAAe,OAAO,SAAS,CAAC,EAAE,SAAS,CAAC9H,EAAE,MAAmB,gBAAK,MAAM,CAAC,IAAIA,EAAE,MAAM,IAAI,GAAG,QAAQ,OAAO,MAAMT,EAAE,OAAO+G,EAAE,MAAM,CAAC,MAAM/G,EAAE,OAAO+G,EAAE,KAAK,OAAO,aAAa,EAAE,UAAU,OAAO,CAAC,CAAC,EAAe,gBAAK,MAAM,CAAC,cAAc,OAAO,MAAM,CAAC,MAAM/G,EAAE,OAAO+G,EAAE,KAAK,OAAO,aAAa,EAAE,WAAWwB,EAAE,KAAK,QAAQ,OAAO,WAAW,SAAS,eAAe,SAAS,KAAK,UAAUA,EAAE,OAAO,MAAMA,EAAE,KAAK,EAAE,SAAS,IAAI,CAAC,EAAe,gBAAM,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC/E,GAASC,EAAsB,gBAAM,MAAM,CAAC,MAAM,CAAC,KAAK,YAAY8E,EAAE,KAAK,cAAc,YAAY,cAAc,QAAQ,aAAa,CAAC,EAAE,SAAS,CAAC/E,EAAqB,gBAAK,OAAO,CAAC,MAAM,CAAC,MAAM7J,GAAe8G,EAAE,OAAO,CAAC,EAAE,SAAS+C,CAAO,CAAC,EAAE,KAAKA,GAASC,EAAsB,gBAAK,OAAO,CAAC,MAAM,CAAC,MAAM8E,EAAE,KAAK,EAAE,SAAS,KAAQ,CAAC,EAAE,KAAK9E,EAAsB,gBAAK,OAAO,CAAC,MAAM,CAAC,MAAM8E,EAAE,KAAK,EAAE,SAAS9E,CAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAkB,gBAAK,OAAO,CAAC,UAAU,eAAe,MAAM,CAAC,KAAK,GAAG2G,EAAO,GAAG,GAAG,SAAS7B,EAAE,OAAO,MAAMA,EAAE,KAAK,gBAAgB6B,EAAO,EAAE,CAAC,EAAE,SAAS3J,EAAE,KAAK,CAAC,EAAE,CAAC2J,GAAQ3J,EAAE,QAAqB,gBAAK,OAAO,CAAC,UAAU,iBAAiB,MAAM,CAAC,KAAK,YAAY8H,EAAE,KAAK,MAAMA,EAAE,IAAI,EAAE,SAAS9H,EAAE,OAAO,CAAC,EAAE,KAAKA,EAAE,KAAkB,gBAAK,OAAO,CAAC,MAAM,CAAC,QAAQ,QAAQ,UAAU,EAAE,KAAK,mBAAmB8H,EAAE,KAAK,MAAMA,EAAE,KAAK,EAAE,SAAS3O,GAAW6G,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,SAASsQ,GAAS,EAAE,CAAC,IAAM/Q,EAAE3G,EAAE,OAAO,GAAG,IAAU0N,EAAE1N,EAAE,OAAO,GAAG,GAAG,MAAoB,gBAAM,MAAM,CAAC,cAAc,OAAO,UAAU,cAAc,MAAM,CAAC,QAAQ,OAAO,IAAI,GAAG,WAAWkP,EAAE,KAAK,aAAa,GAAG,QAAQ,GAAG,aAAa,EAAE,EAAE,SAAS,CAAc,gBAAK,MAAM,CAAC,MAAM,CAAC,MAAMvI,EAAE,OAAO+G,EAAE,KAAK,OAAO,aAAa,EAAE,WAAWwB,EAAE,IAAI,CAAC,CAAC,EAAe,gBAAM,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,SAAS,CAAc,gBAAK,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,MAAM,WAAWA,EAAE,KAAK,aAAa,EAAE,aAAa,EAAE,CAAC,CAAC,EAAe,gBAAK,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,MAAM,WAAWA,EAAE,KAAK,aAAa,EAAE,aAAa,EAAE,CAAC,CAAC,EAAe,gBAAK,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,MAAM,WAAWA,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,C,iFAzCp8J,EAAE1O,EAE/iB,kBAAO,IAAI,IAIb,GAAa,EAoCX,GAAIC,EAAae,GAAoBgO,GAAgB,CAAC,SAAS,CAAC,KAAK/N,GAAY,OAAO,MAAM,iBAAiB,aAAa,gDAAgD,YAAY,0DAA0D,EAAE,GAAGf,EAAgBe,EAAW,CAAC,CAAC,C"}