import{ORIGIN as K,esc as f,fill as Q,withUtm as X,slugOf as ue,assetSrc as je,identityPath as Ue,lockupHtml as fe,secondaryLinks as He,modelsTbodyHtml as Re,pairHtml as Be,leadersHtml as Fe,defaultPair as ge,compareUrl as De,compareIdentityHtml as qe,pickerItemHtml as ze,num as M,longDate as Pe}from"./render.js";const i=(e,t=document)=>t.querySelector(e),x=(e,t=document)=>[...t.querySelectorAll(e)],w=i("stealthmark-map"),Oe=K+"/data/v1/",s={snap:null,L:{},byId:new Map,models:[],assets:[],groupName:e=>e};async function oe(e,t){const a=new AbortController,l=setTimeout(()=>a.abort(),t);try{const o=await fetch(e,{credentials:"omit",signal:a.signal});if(!o.ok)throw new Error(String(o.status));return{data:await o.json(),date:o.headers.get("date")}}finally{clearTimeout(l)}}const se=e=>String(e??"").normalize("NFKD").toLowerCase().replace(/\p{M}/gu,"").replace(/[^\p{L}\p{N}]/gu,""),ne=e=>e.split(/[,\s]+/).map(se).filter(Boolean),We=()=>[...s.models].sort((e,t)=>(t.score??-1)-(e.score??-1)||e.name.localeCompare(t.name));function D(e=document){for(const t of x(".lname",e))t.scrollWidth>t.clientWidth+1?t.setAttribute("data-scroll",""):t.removeAttribute("data-scroll")}document.addEventListener("error",e=>{const t=e.target;t?.tagName==="IMG"&&t.closest(".mount")&&t.replaceWith(Object.assign(document.createElement("i"),{className:"dot"}))},!0);const q=i("[data-lb]"),g={type:"all",q:"",sort:"score",dir:"desc",open:!1},he=(e,t=ne(g.q))=>(g.type!=="open"||e.dataset.open==="1")&&(g.type!=="local"||e.dataset.local==="1")&&t.every(a=>se(e.dataset.search).includes(a)),be=8;function B(){const e=g.dir==="asc"?1:-1,t=ne(g.q);let a=0,l=0;for(const n of x("tbody",q)){const c=n.dataset.group==="partial",b=x("tr[data-model]",n).sort((u,r)=>{const m=parseFloat(u.dataset[g.sort]),d=parseFloat(r.dataset[g.sort]),k=Number.isNaN(m),y=Number.isNaN(d);return k!==y?k?1:-1:m!==d?(m-d)*e:u.dataset.name.localeCompare(r.dataset.name)||u.dataset.model.localeCompare(r.dataset.model)});let p=0;for(const u of b){n.append(u);const r=he(u,t);r&&p++,u.hidden=!r||(c?!g.open:!g.open&&p>be)}c?(l=p,i(".lb-sep",n).hidden=!g.open||!p,n.hidden=!b.length):a=p}i("[data-no-match]").hidden=!(!a&&!l);const o=i("[data-more]");o.hidden=!(a>be||l>0),o.textContent=g.open?o.dataset.fewer:o.dataset.all,o.setAttribute("aria-expanded",String(g.open)),i(".filter-search [data-clear]").hidden=!(g.q||g.type!=="all"),x("th[aria-sort]",q).forEach(n=>n.removeAttribute("aria-sort")),i(`.sort[data-sort="${g.sort}"]`)?.closest("th").setAttribute("aria-sort",g.dir==="asc"?"ascending":"descending"),G=x("tr[data-model]",q).filter(n=>!he(n)).map(n=>n.dataset.model),C&&G.includes(C)&&(C="",A=null),Me(),D(q)}x("input[name=type]").forEach(e=>e.addEventListener("change",()=>{g.type=e.value,B()})),i("#model-search").addEventListener("input",e=>{g.q=e.target.value,B()}),document.addEventListener("click",e=>{if(e.target.closest("[data-clear]")){g.q="",g.type="all",i("#model-search").value="",i("input[name=type][value=all]").checked=!0,B(),i("#model-search").focus();return}const t=e.target.closest(".sort");if(t){const a=t.dataset.sort;g.dir=g.sort===a&&g.dir==="desc"?"asc":"desc",g.sort=a,B();return}if(e.target.closest("[data-more]")){g.open=!g.open,B();return}});const T=i("[data-cmp]"),Z=i("#cmp-go"),N=i("#picker");let z=[T.dataset.a,T.dataset.b],ke=!1,O="a",re=null;function ye(e){const t=s.byId.get(z[e==="a"?0:1]);t&&(i(`[data-side=${e}]`,T).innerHTML=qe(t,s.L,s.assets),D(T))}function ie(){const[e,t]=z.map(o=>s.byId.get(o));if(!e||!t)return;ye("a"),ye("b");const a=(o,n)=>{i(`[data-cell=${o}]`,T).textContent=n};a("score-a",M(e.score,s.L)),a("gi-a",M(e.general,s.L)),a("vi-a",M(e.visual,s.L)),a("score-b",M(t.score,s.L)),a("gi-b",M(t.general,s.L)),a("vi-b",M(t.visual,s.L)),i(".cmp-grid",T).toggleAttribute("data-wide-score",[e.score,t.score].some(o=>String(M(o,s.L)).length>4));const l=e.id===t.id;i("[data-cmp-note]",T).hidden=!l,l?(Z.setAttribute("aria-disabled","true"),Z.removeAttribute("href")):(Z.removeAttribute("aria-disabled"),Z.href=De(ue(e.detailUrl),ue(t.detailUrl)))}function ve(){const e=ne(i("#pk-search").value),t=We().filter(a=>!e.length||e.every(l=>se([a.name,a.revealedName,...a.aliases||[]].join(" ")).includes(l)));i("#pk-list").innerHTML=t.map(a=>ze(a,O,s.L,s.assets)).join(""),i(".pk-empty",N).hidden=t.length>0,D(N)}document.addEventListener("click",e=>{const t=e.target.closest("[data-change]");if(t){O=t.closest("[data-side]").dataset.side,re=t,i("#picker-title").textContent=O==="a"?s.L.first||"First model":s.L.second||"Second model",i("#pk-search").value="",ve(),N.showModal(),i("#pk-search").focus();return}const a=e.target.closest("[data-select]");if(a){z[O==="a"?0:1]=a.dataset.select,ke=!0,N.close(),ie(),i(`[data-side=${O}] [data-change]`,T)?.focus();return}(e.target.closest("[data-pk-close]")||e.target===N)&&N.close()}),i("#pk-search").addEventListener("input",ve),N.addEventListener("close",()=>{re?.isConnected&&re.focus()});const Ve=i("[data-ci-nav]"),W=i(".ci-btn",Ve),j=i("#ci-menu");W.addEventListener("click",()=>{const e=j.hidden;j.hidden=!e,W.setAttribute("aria-expanded",String(e)),e&&i("a",j).focus()}),j.addEventListener("click",e=>{e.target.closest("a")&&(j.hidden=!0,W.setAttribute("aria-expanded","false"))}),document.addEventListener("keydown",e=>{e.key==="Escape"&&!j.hidden&&(j.hidden=!0,W.setAttribute("aria-expanded","false"),W.focus())});const xe=x(".chapter");let le=!1;function we(){le=!1;let e=null;for(const a of xe)a.getBoundingClientRect().top<=140&&(e=a);const t=e&&i("#evidence").getBoundingClientRect().bottom>140;for(const a of x("[data-ci]"))a.toggleAttribute("aria-current",!!t&&a.dataset.ci===e?.dataset.task);for(const a of x("[data-ci]"))a.hasAttribute("aria-current")?a.setAttribute("aria-current","true"):a.removeAttribute("aria-current");i("[data-ci-current]").textContent=(e?i(".chapter-name",e):i(".chapter-name",xe[0])).textContent}addEventListener("scroll",()=>{le||(le=!0,requestAnimationFrame(we))},{passive:!0});const Ge=e=>!e.dataset.publicFrom||Date.now()>=Date.parse(e.dataset.publicFrom);let V=null;function $e(){V&&(V.iframe.remove(),V.poster.hidden=!1,V=null)}function Ye(e){$e();const t=e.closest(".film"),a=e.parentElement,l=document.createElement("iframe");l.src=`https://www.youtube-nocookie.com/embed/${t.dataset.film}?autoplay=1&playsinline=1&rel=0`,l.title=i(".film-label",t).textContent,l.allow="autoplay; fullscreen; encrypted-media; picture-in-picture",l.allowFullscreen=!0,l.referrerPolicy="strict-origin-when-cross-origin",e.hidden=!0,a.append(l),V={iframe:l,poster:e},l.focus()}function P(){for(const e of x(".film-row")){const t=x(".film",e),a=t.filter(Ge);for(const n of a){const c=i("img",n);!c.getAttribute("src")&&c.dataset.src&&(c.loading="lazy",c.src=c.dataset.src)}const l=t.find(n=>n.dataset.current==="1"&&a.includes(n))||a[0];for(const n of t)n.dataset.current=n===l?"1":"",n.hidden=n!==l;e.hidden=!l;const o=i(".film-choices",e);if(o){const n=a.filter(p=>p!==l);o.hidden=!n.length,e.classList.toggle("has-choices",n.length>0);const c=i(".film-choice-list",o),b=n.map(p=>p.dataset.film).join(",");c.dataset.want!==b&&(c.dataset.want=b,c.innerHTML=n.map(p=>`
  • `).join(""))}}}document.addEventListener("click",e=>{const t=e.target.closest("[data-film-play]");if(t){e.preventDefault(),Ye(t);return}const a=e.target.closest("[data-film-pick]");if(a){$e();const l=a.closest(".film-row");x(".film",l).forEach(o=>{o.dataset.current=o.dataset.film===a.dataset.filmPick?"1":""}),P(),i(".film-poster",i('.film[data-current="1"]',l))?.focus()}}),setInterval(()=>{document.hidden||P()},6e4),document.addEventListener("visibilitychange",()=>{document.hidden||P()}),addEventListener("pageshow",P),document.addEventListener("click",async e=>{const t=e.target.closest("[data-copy]");if(!t)return;const a=document.getElementById(t.dataset.copy),l=i(".copy-status");let o=!1;try{await navigator.clipboard.writeText(a.textContent.trim()),o=!0}catch{try{const n=a.closest("details");n&&(n.open=!0);const c=document.createRange(),b=getSelection();c.selectNodeContents(a),b.removeAllRanges(),b.addRange(c),o=document.execCommand("copy")}catch{}}l.textContent=o?t.dataset.done:l.dataset.fail});const _e=` .map{border:0!important;border-radius:0!important;padding:0!important;background:transparent!important;box-shadow:none!important} .top{height:48px;padding:0!important;border:0!important;margin:0!important;display:flex;align-items:center} .top-actions,.title-stack h2,.title-stack .caption,.toolbar,.bottom,.estimate-cta,.share,.inspector,.chooser,.tooltip,.metric-tooltip,.overlay{display:none!important} .composition{display:grid!important;grid-template-columns:minmax(0,1fr);grid-template-rows:var(--plot-w,600px) auto;row-gap:16px;position:relative;align-items:start;margin:0!important} .plot{grid-column:1;grid-row:1;width:420px!important;height:420px!important;min-width:0;margin:0 0 0 calc((100% - var(--plot-w,600px)) / 2)!important;border:0!important;transform:scale(var(--plot-s,1.4286));transform-origin:0 0;background:transparent!important} .plot svg>rect:first-child{fill:transparent!important} .plot svg text,.plot-axis-label{font-size:calc(14px / var(--plot-s,1.4286))!important} .plot svg [data-map-point],.plot svg [data-map-label],.plot svg [data-map-connector],.plot svg .target-halo,.plot svg .reference-ring{visibility:hidden!important} .space-layer{position:absolute;top:0;left:calc((100% - var(--plot-w,600px)) / 2);width:var(--plot-w,600px);height:var(--plot-w,600px);z-index:3} .sl-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible} .sl-hit{position:absolute;padding:0;margin:0;border:0;background:transparent;border-radius:50%;cursor:pointer;transform:translate(-50%,-50%)} .sl-hit:focus-visible{outline:2px solid #e8c27c;outline-offset:2px} .space-dock{grid-column:1;grid-row:2;width:100%;height:var(--dock-h,120px);overflow-y:auto;border-top:1px solid rgba(243,239,226,.16);padding:12px 0 0;color:#f3efe2;font-family:'DM Sans',sans-serif;scrollbar-width:thin;min-width:0} .dk-hint{font-size:14px;line-height:1.5;color:#a4b3a6;margin:0} .dk-model{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1.2fr) minmax(0,.8fr);gap:8px 24px;align-items:center} .dk-id{display:grid;gap:8px;min-width:0;justify-items:start} .dk-act{display:grid;gap:4px;justify-items:start;min-width:0} .dk-scores{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0} .dk-scores div{min-width:0}.dk-scores dt{font-size:13px;color:#a4b3a6;margin:0} .dk-scores dd{margin:0;font-size:32px;line-height:1.1;font-weight:400;letter-spacing:-.03em;font-variant-numeric:tabular-nums} .dk-scores .gi dd{color:#8cc7b5}.dk-scores .vi dd{color:#efa175} .dk-tags{display:flex;flex-wrap:wrap;gap:6px} .dk-tag{display:inline-block;font-size:13px;padding:1px 10px;border:1px solid rgba(243,239,226,.16);border-radius:999px;color:#a4b3a6} .dk-links{display:flex;flex-wrap:wrap;gap:0 14px;font-size:13px;margin:0} .dk-links a{color:#a4b3a6;min-height:32px;display:inline-flex;align-items:center} .dk-links a.view{color:#e8c27c;font-weight:600;font-size:14px;min-height:36px} .dk-btn{min-height:44px;padding:0 14px;background:none;border:1px solid #a4b3a6;border-radius:4px;color:#f3efe2;cursor:pointer;font:600 14px 'DM Sans',sans-serif;justify-self:start} .dk-btn:hover{border-color:#e8c27c;color:#e8c27c} .dk-title{font-size:14px;font-weight:600;color:#e8c27c;margin:0 0 4px} .dk-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px} .dk-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;align-items:center;border-top:1px solid rgba(243,239,226,.16);padding:6px 0} .dk-list .lockup,.dk-model .lockup{display:inline-flex;align-items:center;gap:10px;color:#f3efe2;text-decoration:none;min-width:0;max-width:100%} .dk-list .mount,.dk-model .mount{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;background:#fcfcf5;border-radius:6px} .dk-list .mount img,.dk-model .mount img{width:72%;height:72%;object-fit:contain} .dk-list .mount .dot,.dk-model .mount .dot{width:8px;height:8px;border-radius:50%;background:#26392f} .dk-list .lname,.dk-model .lname{font-size:18px;font-weight:600;line-height:1.2;white-space:nowrap;overflow-x:auto;scrollbar-width:none;min-width:0} .dk-list .arrow,.dk-model .arrow{flex:none;color:#a4b3a6} .dk-list .sc{grid-column:1/-1;font-size:13px;color:#a4b3a6;font-variant-numeric:tabular-nums} .dk-list button{grid-row:1;grid-column:2;min-height:44px;min-width:64px;background:#e8c27c;color:#0b1813;border:0;border-radius:4px;font:600 14px 'DM Sans',sans-serif;cursor:pointer} .sr-only{position:absolute!important;left:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0} @media (max-width:759px){.dk-model{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 12px}.dk-act{grid-column:1/-1;grid-auto-flow:column;justify-content:start;gap:12px}.dk-scores dd{font-size:24px}.dk-scores{gap:4px}.dk-list{grid-template-columns:1fr}.dk-list .sc{display:none}}`;let G=[],C="",A=null,Y="",Le="",$=null,I=null,S=null,de=!1;const L={hint:"Select a model to inspect its scores.",view:"View model",clear:"Clear selection",choose:"Choose a model at this position",close:"Close",select:"Select"};function Me(e=!1){if(!de)return;const t=[g.type,G.join(",")].join("|");if(t===Le&&!e)return;Le=t;const a={compare:"all",axes:{x:"general",y:"visual"},range:"full",routers:"all",presentation:"embed",theme:"dark",type:g.type};G.length&&(a.exclude=G),w.config=a}function ce(){const e=w.clientWidth||600,t=innerWidth<760,a=Math.max(240,Math.min(600,e));return w.style.setProperty("--plot-w",a+"px"),w.style.setProperty("--plot-s",String(a/420)),w.style.setProperty("--dock-h",t?"112px":"120px"),{plotW:a,phone:t}}const Ee=new Set,Ce=(e,t)=>``;function Ae(e,t,a,l){const o=Ue(e);if(!o||Ee.has(e.id))return`${Ce(t,a)}`;const n=Math.round(l*.72*10)/10;return``}let ee=[],U=null,pe=20;function F(){if(!de||!S||!$)return;const{plotW:e,phone:t}=ce(),a=$.getBoundingClientRect(),l=t?16:20;pe=l;const o=S.querySelector(".plot svg"),n=[];for(const p of x("[data-map-point]",o)){const u=p.querySelector("circle.model-marker"),r=s.byId.get(p.dataset.mapPoint);if(!u||!r)continue;const m=u.getBoundingClientRect();n.push({m:r,x:m.left+m.width/2-a.left,y:m.top+m.height/2-a.top})}n.sort((p,u)=>(p.m.score??-1)-(u.m.score??-1)||(p.m.id!m.closest("[data-map-label]"));if(p&&u){const m=new DOMPoint(+u[1],+u[2]).matrixTransform(p),d=r.filter(y=>+y.getAttribute("y")>+u[2]),k=r.filter(y=>+y.getAttribute("x")<+u[1]);U={ox:m.x-a.left,oy:m.y-a.top,xRow:Math.max(...d.map(y=>y.getBoundingClientRect().bottom))-a.top,yLeft:Math.min(...k.map(y=>y.getBoundingClientRect().left))-a.left}}}catch{U=null}let c="",b="";for(const p of n)c+=Ae(p.m,p.x,p.y,l),b+=``;$.innerHTML=`${b}`;for(const p of x(".sl-svg image",$))p.addEventListener("error",()=>{const u=p.parentNode,r=u.dataset.mk;Ee.add(r);const m=n.find(d=>d.m.id===r);m&&(u.innerHTML=Ce(m.x,m.y))});Se(),Ie()}function Ie(){const e=$?.querySelector(".sl-svg");if(!e)return;const t=i(".sl-guides",e),a=i(".sl-top",e);t.innerHTML="",a.innerHTML="";const l=Y||C,o=ee.find(c=>c.m.id===l);if(!o)return;const n="#e8c27c";if(U&&Number.isFinite(o.m.general)&&Number.isFinite(o.m.visual)){const c=(b,p,u,r)=>`${r.toFixed(1)}`;t.innerHTML=``+c(o.x,U.xRow+20,"middle",o.m.general)+c(U.yLeft-8,o.y+5,"end",o.m.visual)}a.innerHTML=Ae(o.m,o.x,o.y,pe)+``}function H(e){A||Y===e||(Y=e,Se(),Ie())}function Je(e,t){const a=(n,c,b="")=>`${c}`,l=He(e,s.L).join(""),o=`${e.router==="confirmed"?`${f(s.L.router)}`:e.router==="suspected"?`${f(s.L.suspectedRouter)}`:""}${e.estimated?`${f(s.L.estimated)}`:""}${e.partial?`${f(s.L.partialCoverage)}`:""}`;return`
    ${fe(e,e.detailUrl,"s",s.assets)}${o?`
    ${o}
    `:""}
    ${f(s.L.score)}
    ${M(e.score,s.L)}
    ${f(s.L.general)}
    ${M(e.general,s.L)}
    ${f(s.L.visual)}
    ${M(e.visual,s.L)}
    ${e.partial&&e.missing?.length?`

    ${f(Q(s.L.notScoredIn,{tasks:e.missing.join(", ")}))}

    `:""}${t?``:""}
    `}function Se(){if(!I)return;let e;if(A){const t=A.map(a=>s.byId.get(a)).filter(Boolean);e=`

    ${f(L.choose)}

      ${t.map(a=>`
    • ${fe(a,a.detailUrl,"s",s.assets)}${f(s.L.score)} ${M(a.score,s.L)} \xB7 ${f(s.L.general)} ${M(a.general,s.L)} \xB7 ${f(s.L.visual)} ${M(a.visual,s.L)}
    • `).join("")}
    `}else{const t=s.byId.get(Y||C);e=t?Je(t,t.id===C):`

    ${f(L.hint)}

    `}I.dataset.html!==e&&(I.dataset.html=e,I.innerHTML=e,D(I))}function Ke(){$.addEventListener("click",e=>{const t=e.target.closest(".sl-hit");if(e.stopPropagation(),!t)return;const a=ee.find(r=>r.m.id===t.dataset.hit);if(!a)return;const l=$.getBoundingClientRect(),o=e.detail===0,n=o?a.x:e.clientX-l.left,c=o?a.y:e.clientY-l.top,b=innerWidth<760?12:14,p=ee.filter(r=>Math.hypot(r.x-n,r.y-c)r.m.id),u=p.length>1?p:[a.m.id];Y="",u.length>1?A=u.sort((r,m)=>(s.byId.get(m).score??0)-(s.byId.get(r).score??0)):(C=u[0],A=null),F()});for(const e of["pointerdown","pointerup","pointermove","pointerleave","mousedown","mouseup","touchstart"])$.addEventListener(e,t=>t.stopPropagation());$.addEventListener("pointerover",e=>{const t=e.target.closest(".sl-hit");t&&H(t.dataset.hit)}),$.addEventListener("pointerout",e=>{e.target.closest(".sl-hit")&&H("")}),$.addEventListener("focusin",e=>{const t=e.target.closest(".sl-hit");t&&H(t.dataset.hit)}),$.addEventListener("focusout",()=>H(""))}function Qe(){I.addEventListener("click",e=>{if(e.target.closest("[data-dk-clear]")){C="",F();return}if(e.target.closest("[data-dk-close]")){A=null,F();return}const t=e.target.closest("[data-dk-pick]");t&&(C=t.dataset.dkPick,A=null,F())})}function Xe(){const e=w.shadowRoot;if(!e)return;let t=!1;const a=()=>{if(!i("style[data-space]",e)){const c=document.createElement("style");c.dataset.space="",c.textContent=_e,e.append(c)}if(S=i(".composition",e),!S)return!1;i(".space-layer",S)?$=i(".space-layer",S):($=document.createElement("div"),$.className="space-layer",S.append($),Ke()),i(".space-dock",S)?I=i(".space-dock",S):(I=document.createElement("aside"),I.className="space-dock",I.setAttribute("aria-live","polite"),S.append(I),Qe());const o=i(".brand-name",e);o?.firstChild?.nodeType===3&&o.firstChild.textContent!=="StealthMark "&&(o.firstChild.textContent="StealthMark ");const n=i(".plot > p.sr-only",e);if(n){const c=n.textContent.replace(/^\d+\s+models?\s+plotted\.\s*/,"");c!==n.textContent&&(n.textContent=c)}for(const c of x('a[href^="http"]',e))c.target!=="_blank"&&(c.target="_blank",c.rel="noopener noreferrer");return!0},l=()=>{a()&&F()};new MutationObserver(o=>{t||o.every(n=>n.target.nodeType===1&&n.target.closest?.(".space-layer, .space-dock"))||(t=!0,requestAnimationFrame(()=>{try{l()}finally{t=!1}}))}).observe(e,{childList:!0,subtree:!0}),new ResizeObserver(()=>{ce(),requestAnimationFrame(l)}).observe(w),w.addEventListener("keydown",o=>{o.key==="Escape"&&(C="",A=null,F())}),document.addEventListener("keydown",o=>{o.key==="Escape"&&(C||A)&&!N.open&&j.hidden&&w.contains(document.activeElement)&&(C="",A=null,F())}),ce(),l()}async function Ze(e){w.setAttribute("data-feed",e),await import("/shared/v1/stealthmark-map.js"),await customElements.whenDefined("stealthmark-map");for(let t=0;t<30&&!w.shadowRoot?.querySelector(".plot svg");t++)await new Promise(a=>setTimeout(a,400)),t===12&&e!=="/data/stealthmark-map.json"&&w.setAttribute("data-feed","/data/stealthmark-map.json");if(w.shadowRoot?.querySelector(".plot svg"))i(".map-note",w)?.remove(),de=!0,Xe(),Me(!0);else{const t=i(".map-note",w);t&&(t.textContent=`${s.L.mapFailed||"The map could not load."} ${s.L.mapFallback||"Use the results table below."}`)}}{const e=t=>{const a=t.target?.closest?.("a.lockup[data-model]");return a&&!a.closest("dialog")?a:null};document.addEventListener("pointerover",t=>{if(t.pointerType==="touch")return;const a=e(t);a&&s.byId.has(a.dataset.model)&&H(a.dataset.model)}),document.addEventListener("pointerout",t=>{t.pointerType!=="touch"&&e(t)&&!t.relatedTarget?.closest?.("a.lockup[data-model]")&&H("")}),document.addEventListener("focusin",t=>{const a=e(t);a&&s.byId.has(a.dataset.model)&&H(a.dataset.model)}),document.addEventListener("focusout",t=>{e(t)&&H("")})}function et(e,t){const a=new Set(["general","visual","overall"]),l=o=>o?.startsWith("/")?K+o:o;return{schemaVersion:e.schemaVersion,stealthmarkVersion:e.stealthmarkVersion,revision:e.revision,rendererRevision:e.rendererRevision,metrics:e.metrics.filter(o=>a.has(o.id)).map(o=>o.id==="overall"?{...o,name:s.L.scoreFull,shortName:s.L.scoreFull}:o),models:e.models.map(o=>{const n={...o,href:X(t.get(o.id)?.detailUrl||l(o.href)),galleryHref:X(l(o.galleryHref)),metrics:Object.fromEntries(Object.entries(o.metrics).filter(([c])=>a.has(c)))};for(const c of["position","total","company","defaultEdition","selectionRevision"])delete n[c];return n}),families:e.families.map(o=>({id:o.id,name:o.name,href:X(l(o.href)),members:o.members})),pages:e.pages,presets:[]}}const Te=(e,t,a)=>{const l=b=>Math.round(a(b)*10),o=Math.max(...e.map(l)),n=Math.min(...e.map(l)),c=b=>e.filter(p=>l(p)===b).sort((p,u)=>t(p)[r.id,r])),b=new Map(a.models.map(r=>[r.id,r])),p=e.models.map(r=>{const m=c.get(r.id),d=b.get(r.id);return{...m||{id:r.id,officialHfUrl:"",cardUrl:"",ggufUrl:""},name:r.name,revealedName:d?.revealedName||m?.revealedName||"",aliases:d?.aliases||m?.aliases||[],logo:d?.logo??m?.logo??"",favicon:d?.favicon??m?.favicon??"",detailUrl:K+r.href,score:r.score,general:r.general,visual:r.visual,estimated:!!r.estimated,open:d?d.access==="open":!!m?.open,local:d?d.local===!0:!!m?.local,router:d?d.routerStatus||"":m?.router||"",partial:d?!!(d.partial?.general||d.partial?.visual):!!m?.partial,missing:d?[...new Set([...d.missing?.general||[],...d.missing?.visual||[]])].map(s.groupName):m?.missing||[]}});s.models=p,s.byId=new Map(p.map(r=>[r.id,r]));const u=r=>{try{r()}catch{}};return u(()=>{const r=e.stealthmarkVersion,m=n.stealthmarkVersion,d=l?new Date(l):new Date;if(i("[data-snapshot]").textContent=Q(s.L.pageSnapshot,{date:Pe(d.toISOString())}),r!==m){i("[data-version]").textContent=r,w.setAttribute("aria-label",Q(s.L.mapLabel,{version:r}));const k=String(d.getUTCFullYear());i("[data-cite-text]").textContent=Q(s.L.citeText,{year:k,version:r});const y=i("[data-cite-bibtex]");y.textContent=y.textContent.replace(/(version = \{)[^}]*/,`$1${r}`).replace(/(year = \{)[^}]*/,`$1${k}`)}}),u(()=>{const r=["overall","open","local"].map(m=>{const d=e.awards?.categories?.find(k=>k.id===m);return d&&{id:m,label:s.L.leaders[m],entries:d.winners.map(k=>({id:k.id,name:k.name,detailUrl:K+k.href,score:k.score}))}}).filter(Boolean);r.length===3&&(i("[data-leaders]").innerHTML=Fe(r,s.L,s.byId,s.assets),ke||(z=ge(p,r))),z.every(m=>s.byId.has(m))||(z=ge(p,[])),ie()}),u(()=>{const r=Re(p,s.L,s.assets);i("tbody[data-group=complete]",q).innerHTML=r.complete,i("tbody[data-group=partial]",q).innerHTML=`${f(s.L.partialHeading)}${r.partial}`,B()}),u(()=>{const r=new Map(n.games.map(d=>[`${d.chainId}|${d.modelId}`,d])),m=d=>s.byId.has(d)&&s.byId.get(d).router!=="confirmed";for(const d of n.tasks){const k=i(`.chapter[data-task="${d.id}"] .pair-slot`);if(!k)continue;let y,_;if(d.kind==="svg"){const R=new Map;for(const h of t.results){if(h.group!==d.group)continue;const E=`${h.group}|${h.model}`;o[E]?h.id===o[E]&&R.set(h.model,h):R.has(h.model)||R.set(h.model,h)}const te=[...R.values()].filter(h=>m(h.model)&&Number.isFinite(h.score)),{high:ae,low:J}=Te(te,h=>h.model,h=>h.score),v=h=>{const E=s.byId.get(h.model),me=[d.high,d.low].find(Ne=>Ne.resultId===h.id);return{...me||{kind:"svg",resultId:h.id,resultDate:"",media:{src:h.media}},modelId:h.model,modelName:E.name,modelUrl:E.detailUrl,score:h.score,detailUrl:me?.detailUrl||`${E.detailUrl}/${d.group}`}};y=v(ae),_=v(J)}else{const R=t.games.filter(v=>v.group===d.group&&m(v.model)&&Number.isFinite(v.score)&&r.get(`${d.group}|${v.model}`)?.complete===!0);if(!R.length)continue;const{high:te,low:ae}=Te(R,v=>v.model,v=>v.score),J=v=>{const h=s.byId.get(v.model),E=r.get(`${d.group}|${v.model}`);return Math.abs(E.score-v.score)<.05&&E.poster?{kind:"game",chainId:d.group,modelId:v.model,modelName:h.name,modelUrl:h.detailUrl,score:v.score,coverage:E.coverage,levels:E.levels,poster:E.poster,detailUrl:`${h.detailUrl}#game-${d.group}`}:null};if(y=J(te),_=J(ae),!y||!_)continue}k.innerHTML=Be({...d,high:y,low:_},s.L,s.byId,s.assets)}}),D(),p}(async()=>{const[e,t,a]=await Promise.all([oe("/data/snapshot.json",8e3).then(o=>o.data).catch(()=>null),oe("/data/preferred-results.json",8e3).then(o=>o.data).catch(()=>({})),Promise.all(["stealthmark.json","benchmark-scores.json","stealthmark-map.json"].map(o=>oe(Oe+o,4500))).then(([o,n,c])=>({c:o.data,d:n.data,b:c.data,date:o.date})).catch(()=>null)]);s.snap=e,e&&(s.L=e.copy,s.assets=e.assets,s.groupName=o=>e.groupNames[o]||o,s.models=e.models,s.byId=new Map(e.models.map(o=>[o.id,o])),Object.assign(L,{hint:s.L.hint||L.hint,view:s.L.viewModel||L.view,clear:s.L.clearSelection||L.clear,choose:s.L.chooseAt||L.choose,close:s.L.close||L.close,select:s.L.select||L.select}));let l="/data/stealthmark-map.json";if(e&&a&&Array.isArray(a.c?.models)&&a.c.models.length&&Array.isArray(a.d?.results)&&Array.isArray(a.d?.games)&&Array.isArray(a.b?.models)&&a.c.stealthmarkVersion===a.b.stealthmarkVersion)try{const o=tt(a,t);l=URL.createObjectURL(new Blob([JSON.stringify(et(a.b,new Map(o.map(n=>[n.id,n]))))],{type:"application/json"}))}catch{}else e&&ie();P(),we(),D(),Ze(l)})(),P(),B();